@opensea/seaport-js 1.3.0 → 2.0.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 (1058) hide show
  1. package/README.md +1 -1
  2. package/lib/abi/DomainRegistry.js +1 -1
  3. package/lib/abi/DomainRegistry.js.map +1 -1
  4. package/lib/abi/ERC1155.js +1 -1
  5. package/lib/abi/ERC1155.js.map +1 -1
  6. package/lib/abi/ERC20.js +1 -1
  7. package/lib/abi/ERC20.js.map +1 -1
  8. package/lib/abi/ERC721.js +1 -1
  9. package/lib/abi/ERC721.js.map +1 -1
  10. package/lib/abi/Seaport_v1_4.js +1 -1
  11. package/lib/abi/Seaport_v1_4.js.map +1 -1
  12. package/lib/bundle.js +54208 -0
  13. package/lib/constants.js +4 -5
  14. package/lib/constants.js.map +1 -1
  15. package/lib/index.js +1 -1
  16. package/lib/index.js.map +1 -1
  17. package/lib/seaport.d.ts +1 -1
  18. package/lib/seaport.js +412 -676
  19. package/lib/seaport.js.map +1 -1
  20. package/lib/typechain-types/@rari-capital/index.d.ts +2 -0
  21. package/lib/typechain-types/@rari-capital/index.js +3 -0
  22. package/lib/typechain-types/@rari-capital/index.js.map +1 -0
  23. package/lib/typechain-types/@rari-capital/solmate/index.d.ts +2 -0
  24. package/lib/typechain-types/@rari-capital/solmate/index.js +3 -0
  25. package/lib/typechain-types/@rari-capital/solmate/index.js.map +1 -0
  26. package/lib/typechain-types/@rari-capital/solmate/src/index.d.ts +2 -0
  27. package/lib/typechain-types/@rari-capital/solmate/src/index.js +3 -0
  28. package/lib/typechain-types/@rari-capital/solmate/src/index.js.map +1 -0
  29. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.d.ts +189 -0
  30. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.js +3 -0
  31. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.js.map +1 -0
  32. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.d.ts +66 -0
  33. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.js +3 -0
  34. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.js.map +1 -0
  35. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/index.d.ts +2 -0
  36. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/index.js +3 -0
  37. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/index.js.map +1 -0
  38. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC20.d.ts +202 -0
  39. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC20.js +3 -0
  40. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC20.js.map +1 -0
  41. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.d.ts +227 -0
  42. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.js +3 -0
  43. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.js.map +1 -0
  44. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.d.ts +50 -0
  45. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.js +3 -0
  46. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.js.map +1 -0
  47. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/index.d.ts +2 -0
  48. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/index.js +3 -0
  49. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/index.js.map +1 -0
  50. package/lib/typechain-types/@rari-capital/solmate/src/tokens/index.d.ts +5 -0
  51. package/lib/typechain-types/@rari-capital/solmate/src/tokens/index.js +3 -0
  52. package/lib/typechain-types/@rari-capital/solmate/src/tokens/index.js.map +1 -0
  53. package/lib/typechain-types/common.d.ts +21 -0
  54. package/lib/typechain-types/common.js +3 -0
  55. package/lib/typechain-types/common.js.map +1 -0
  56. package/lib/typechain-types/domain-registry/contracts/DomainRegistry.d.ts +97 -0
  57. package/lib/typechain-types/domain-registry/contracts/DomainRegistry.js +3 -0
  58. package/lib/typechain-types/domain-registry/contracts/DomainRegistry.js.map +1 -0
  59. package/lib/typechain-types/domain-registry/contracts/index.d.ts +3 -0
  60. package/lib/typechain-types/domain-registry/contracts/index.js +3 -0
  61. package/lib/typechain-types/domain-registry/contracts/index.js.map +1 -0
  62. package/lib/typechain-types/domain-registry/contracts/interfaces/DomainRegistryInterface.d.ts +97 -0
  63. package/lib/typechain-types/domain-registry/contracts/interfaces/DomainRegistryInterface.js +3 -0
  64. package/lib/typechain-types/domain-registry/contracts/interfaces/DomainRegistryInterface.js.map +1 -0
  65. package/lib/typechain-types/domain-registry/contracts/interfaces/index.d.ts +1 -0
  66. package/lib/typechain-types/domain-registry/contracts/interfaces/index.js +3 -0
  67. package/lib/typechain-types/domain-registry/contracts/interfaces/index.js.map +1 -0
  68. package/lib/typechain-types/domain-registry/index.d.ts +2 -0
  69. package/lib/typechain-types/domain-registry/index.js +3 -0
  70. package/lib/typechain-types/domain-registry/index.js.map +1 -0
  71. package/lib/typechain-types/factories/@rari-capital/index.d.ts +1 -0
  72. package/lib/typechain-types/factories/@rari-capital/index.js +8 -0
  73. package/lib/typechain-types/factories/@rari-capital/index.js.map +1 -0
  74. package/lib/typechain-types/factories/@rari-capital/solmate/index.d.ts +1 -0
  75. package/lib/typechain-types/factories/@rari-capital/solmate/index.js +8 -0
  76. package/lib/typechain-types/factories/@rari-capital/solmate/index.js.map +1 -0
  77. package/lib/typechain-types/factories/@rari-capital/solmate/src/index.d.ts +1 -0
  78. package/lib/typechain-types/factories/@rari-capital/solmate/src/index.js +8 -0
  79. package/lib/typechain-types/factories/@rari-capital/solmate/src/index.js.map +1 -0
  80. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver__factory.d.ts +68 -0
  81. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver__factory.js +98 -0
  82. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver__factory.js.map +1 -0
  83. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155__factory.d.ts +251 -0
  84. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155__factory.js +332 -0
  85. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155__factory.js.map +1 -0
  86. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/index.d.ts +2 -0
  87. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/index.js +11 -0
  88. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/index.js.map +1 -0
  89. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC20__factory.d.ts +236 -0
  90. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC20__factory.js +317 -0
  91. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC20__factory.js.map +1 -0
  92. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver__factory.d.ts +34 -0
  93. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver__factory.js +54 -0
  94. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver__factory.js.map +1 -0
  95. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721__factory.d.ts +262 -0
  96. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721__factory.js +350 -0
  97. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721__factory.js.map +1 -0
  98. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/index.d.ts +2 -0
  99. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/index.js +11 -0
  100. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/index.js.map +1 -0
  101. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/index.d.ts +3 -0
  102. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/index.js +11 -0
  103. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/index.js.map +1 -0
  104. package/lib/typechain-types/factories/domain-registry/contracts/DomainRegistry__factory.d.ts +124 -0
  105. package/lib/typechain-types/factories/domain-registry/contracts/DomainRegistry__factory.js +181 -0
  106. package/lib/typechain-types/factories/domain-registry/contracts/DomainRegistry__factory.js.map +1 -0
  107. package/lib/typechain-types/factories/domain-registry/contracts/index.d.ts +2 -0
  108. package/lib/typechain-types/factories/domain-registry/contracts/index.js +10 -0
  109. package/lib/typechain-types/factories/domain-registry/contracts/index.js.map +1 -0
  110. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/DomainRegistryInterface__factory.d.ts +112 -0
  111. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/DomainRegistryInterface__factory.js +158 -0
  112. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/DomainRegistryInterface__factory.js.map +1 -0
  113. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/index.d.ts +1 -0
  114. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/index.js +9 -0
  115. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/index.js.map +1 -0
  116. package/lib/typechain-types/factories/domain-registry/index.d.ts +1 -0
  117. package/lib/typechain-types/factories/domain-registry/index.js +8 -0
  118. package/lib/typechain-types/factories/domain-registry/index.js.map +1 -0
  119. package/lib/typechain-types/factories/index.d.ts +7 -0
  120. package/lib/typechain-types/factories/index.js +14 -0
  121. package/lib/typechain-types/factories/index.js.map +1 -0
  122. package/lib/typechain-types/factories/seaport-core/index.d.ts +1 -0
  123. package/lib/typechain-types/factories/seaport-core/index.js +8 -0
  124. package/lib/typechain-types/factories/seaport-core/index.js.map +1 -0
  125. package/lib/typechain-types/factories/seaport-core/src/conduit/ConduitController__factory.d.ts +349 -0
  126. package/lib/typechain-types/factories/seaport-core/src/conduit/ConduitController__factory.js +478 -0
  127. package/lib/typechain-types/factories/seaport-core/src/conduit/ConduitController__factory.js.map +1 -0
  128. package/lib/typechain-types/factories/seaport-core/src/conduit/Conduit__factory.d.ts +315 -0
  129. package/lib/typechain-types/factories/seaport-core/src/conduit/Conduit__factory.js +427 -0
  130. package/lib/typechain-types/factories/seaport-core/src/conduit/Conduit__factory.js.map +1 -0
  131. package/lib/typechain-types/factories/seaport-core/src/conduit/index.d.ts +2 -0
  132. package/lib/typechain-types/factories/seaport-core/src/conduit/index.js +11 -0
  133. package/lib/typechain-types/factories/seaport-core/src/conduit/index.js.map +1 -0
  134. package/lib/typechain-types/factories/seaport-core/src/index.d.ts +2 -0
  135. package/lib/typechain-types/factories/seaport-core/src/index.js +9 -0
  136. package/lib/typechain-types/factories/seaport-core/src/index.js.map +1 -0
  137. package/lib/typechain-types/factories/seaport-core/src/lib/AmountDeriver__factory.d.ts +24 -0
  138. package/lib/typechain-types/factories/seaport-core/src/lib/AmountDeriver__factory.js +48 -0
  139. package/lib/typechain-types/factories/seaport-core/src/lib/AmountDeriver__factory.js.map +1 -0
  140. package/lib/typechain-types/factories/seaport-core/src/lib/Assertions__factory.d.ts +480 -0
  141. package/lib/typechain-types/factories/seaport-core/src/lib/Assertions__factory.js +637 -0
  142. package/lib/typechain-types/factories/seaport-core/src/lib/Assertions__factory.js.map +1 -0
  143. package/lib/typechain-types/factories/seaport-core/src/lib/BasicOrderFulfiller__factory.d.ts +516 -0
  144. package/lib/typechain-types/factories/seaport-core/src/lib/BasicOrderFulfiller__factory.js +685 -0
  145. package/lib/typechain-types/factories/seaport-core/src/lib/BasicOrderFulfiller__factory.js.map +1 -0
  146. package/lib/typechain-types/factories/seaport-core/src/lib/ConsiderationBase__factory.d.ts +380 -0
  147. package/lib/typechain-types/factories/seaport-core/src/lib/ConsiderationBase__factory.js +507 -0
  148. package/lib/typechain-types/factories/seaport-core/src/lib/ConsiderationBase__factory.js.map +1 -0
  149. package/lib/typechain-types/factories/seaport-core/src/lib/Consideration__factory.d.ts +2292 -0
  150. package/lib/typechain-types/factories/seaport-core/src/lib/Consideration__factory.js +2977 -0
  151. package/lib/typechain-types/factories/seaport-core/src/lib/Consideration__factory.js.map +1 -0
  152. package/lib/typechain-types/factories/seaport-core/src/lib/CounterManager__factory.d.ts +376 -0
  153. package/lib/typechain-types/factories/seaport-core/src/lib/CounterManager__factory.js +501 -0
  154. package/lib/typechain-types/factories/seaport-core/src/lib/CounterManager__factory.js.map +1 -0
  155. package/lib/typechain-types/factories/seaport-core/src/lib/CriteriaResolution__factory.d.ts +68 -0
  156. package/lib/typechain-types/factories/seaport-core/src/lib/CriteriaResolution__factory.js +106 -0
  157. package/lib/typechain-types/factories/seaport-core/src/lib/CriteriaResolution__factory.js.map +1 -0
  158. package/lib/typechain-types/factories/seaport-core/src/lib/Executor__factory.d.ts +500 -0
  159. package/lib/typechain-types/factories/seaport-core/src/lib/Executor__factory.js +663 -0
  160. package/lib/typechain-types/factories/seaport-core/src/lib/Executor__factory.js.map +1 -0
  161. package/lib/typechain-types/factories/seaport-core/src/lib/FulfillmentApplier__factory.d.ts +44 -0
  162. package/lib/typechain-types/factories/seaport-core/src/lib/FulfillmentApplier__factory.js +75 -0
  163. package/lib/typechain-types/factories/seaport-core/src/lib/FulfillmentApplier__factory.js.map +1 -0
  164. package/lib/typechain-types/factories/seaport-core/src/lib/GettersAndDerivers__factory.d.ts +380 -0
  165. package/lib/typechain-types/factories/seaport-core/src/lib/GettersAndDerivers__factory.js +507 -0
  166. package/lib/typechain-types/factories/seaport-core/src/lib/GettersAndDerivers__factory.js.map +1 -0
  167. package/lib/typechain-types/factories/seaport-core/src/lib/OrderCombiner__factory.d.ts +592 -0
  168. package/lib/typechain-types/factories/seaport-core/src/lib/OrderCombiner__factory.js +785 -0
  169. package/lib/typechain-types/factories/seaport-core/src/lib/OrderCombiner__factory.js.map +1 -0
  170. package/lib/typechain-types/factories/seaport-core/src/lib/OrderFulfiller__factory.d.ts +568 -0
  171. package/lib/typechain-types/factories/seaport-core/src/lib/OrderFulfiller__factory.js +753 -0
  172. package/lib/typechain-types/factories/seaport-core/src/lib/OrderFulfiller__factory.js.map +1 -0
  173. package/lib/typechain-types/factories/seaport-core/src/lib/OrderValidator__factory.d.ts +516 -0
  174. package/lib/typechain-types/factories/seaport-core/src/lib/OrderValidator__factory.js +685 -0
  175. package/lib/typechain-types/factories/seaport-core/src/lib/OrderValidator__factory.js.map +1 -0
  176. package/lib/typechain-types/factories/seaport-core/src/lib/ReentrancyGuard__factory.d.ts +28 -0
  177. package/lib/typechain-types/factories/seaport-core/src/lib/ReentrancyGuard__factory.js +53 -0
  178. package/lib/typechain-types/factories/seaport-core/src/lib/ReentrancyGuard__factory.js.map +1 -0
  179. package/lib/typechain-types/factories/seaport-core/src/lib/SignatureVerification__factory.d.ts +40 -0
  180. package/lib/typechain-types/factories/seaport-core/src/lib/SignatureVerification__factory.js +69 -0
  181. package/lib/typechain-types/factories/seaport-core/src/lib/SignatureVerification__factory.js.map +1 -0
  182. package/lib/typechain-types/factories/seaport-core/src/lib/TokenTransferrer__factory.d.ts +116 -0
  183. package/lib/typechain-types/factories/seaport-core/src/lib/TokenTransferrer__factory.js +168 -0
  184. package/lib/typechain-types/factories/seaport-core/src/lib/TokenTransferrer__factory.js.map +1 -0
  185. package/lib/typechain-types/factories/seaport-core/src/lib/Verifiers__factory.d.ts +500 -0
  186. package/lib/typechain-types/factories/seaport-core/src/lib/Verifiers__factory.js +663 -0
  187. package/lib/typechain-types/factories/seaport-core/src/lib/Verifiers__factory.js.map +1 -0
  188. package/lib/typechain-types/factories/seaport-core/src/lib/ZoneInteraction__factory.d.ts +36 -0
  189. package/lib/typechain-types/factories/seaport-core/src/lib/ZoneInteraction__factory.js +65 -0
  190. package/lib/typechain-types/factories/seaport-core/src/lib/ZoneInteraction__factory.js.map +1 -0
  191. package/lib/typechain-types/factories/seaport-core/src/lib/index.d.ts +18 -0
  192. package/lib/typechain-types/factories/seaport-core/src/lib/index.js +43 -0
  193. package/lib/typechain-types/factories/seaport-core/src/lib/index.js.map +1 -0
  194. package/lib/typechain-types/factories/seaport-types/index.d.ts +1 -0
  195. package/lib/typechain-types/factories/seaport-types/index.js +8 -0
  196. package/lib/typechain-types/factories/seaport-types/index.js.map +1 -0
  197. package/lib/typechain-types/factories/seaport-types/src/index.d.ts +1 -0
  198. package/lib/typechain-types/factories/seaport-types/src/index.js +8 -0
  199. package/lib/typechain-types/factories/seaport-types/src/index.js.map +1 -0
  200. package/lib/typechain-types/factories/seaport-types/src/interfaces/AmountDerivationErrors__factory.d.ts +12 -0
  201. package/lib/typechain-types/factories/seaport-types/src/interfaces/AmountDerivationErrors__factory.js +25 -0
  202. package/lib/typechain-types/factories/seaport-types/src/interfaces/AmountDerivationErrors__factory.js.map +1 -0
  203. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitControllerInterface__factory.d.ts +333 -0
  204. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitControllerInterface__factory.js +450 -0
  205. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitControllerInterface__factory.js.map +1 -0
  206. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitInterface__factory.d.ts +203 -0
  207. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitInterface__factory.js +274 -0
  208. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitInterface__factory.js.map +1 -0
  209. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationEventsAndErrors__factory.d.ts +360 -0
  210. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationEventsAndErrors__factory.js +473 -0
  211. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationEventsAndErrors__factory.js.map +1 -0
  212. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationInterface__factory.d.ts +1705 -0
  213. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationInterface__factory.js +2208 -0
  214. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationInterface__factory.js.map +1 -0
  215. package/lib/typechain-types/factories/seaport-types/src/interfaces/CriteriaResolutionErrors__factory.d.ts +56 -0
  216. package/lib/typechain-types/factories/seaport-types/src/interfaces/CriteriaResolutionErrors__factory.js +83 -0
  217. package/lib/typechain-types/factories/seaport-types/src/interfaces/CriteriaResolutionErrors__factory.js.map +1 -0
  218. package/lib/typechain-types/factories/seaport-types/src/interfaces/FulfillmentApplicationErrors__factory.d.ts +32 -0
  219. package/lib/typechain-types/factories/seaport-types/src/interfaces/FulfillmentApplicationErrors__factory.js +52 -0
  220. package/lib/typechain-types/factories/seaport-types/src/interfaces/FulfillmentApplicationErrors__factory.js.map +1 -0
  221. package/lib/typechain-types/factories/seaport-types/src/interfaces/ReentrancyErrors__factory.d.ts +12 -0
  222. package/lib/typechain-types/factories/seaport-types/src/interfaces/ReentrancyErrors__factory.js +25 -0
  223. package/lib/typechain-types/factories/seaport-types/src/interfaces/ReentrancyErrors__factory.js.map +1 -0
  224. package/lib/typechain-types/factories/seaport-types/src/interfaces/SignatureVerificationErrors__factory.d.ts +28 -0
  225. package/lib/typechain-types/factories/seaport-types/src/interfaces/SignatureVerificationErrors__factory.js +46 -0
  226. package/lib/typechain-types/factories/seaport-types/src/interfaces/SignatureVerificationErrors__factory.js.map +1 -0
  227. package/lib/typechain-types/factories/seaport-types/src/interfaces/TokenTransferrerErrors__factory.d.ts +104 -0
  228. package/lib/typechain-types/factories/seaport-types/src/interfaces/TokenTransferrerErrors__factory.js +145 -0
  229. package/lib/typechain-types/factories/seaport-types/src/interfaces/TokenTransferrerErrors__factory.js.map +1 -0
  230. package/lib/typechain-types/factories/seaport-types/src/interfaces/ZoneInteractionErrors__factory.d.ts +24 -0
  231. package/lib/typechain-types/factories/seaport-types/src/interfaces/ZoneInteractionErrors__factory.js +42 -0
  232. package/lib/typechain-types/factories/seaport-types/src/interfaces/ZoneInteractionErrors__factory.js.map +1 -0
  233. package/lib/typechain-types/factories/seaport-types/src/interfaces/index.d.ts +11 -0
  234. package/lib/typechain-types/factories/seaport-types/src/interfaces/index.js +29 -0
  235. package/lib/typechain-types/factories/seaport-types/src/interfaces/index.js.map +1 -0
  236. package/lib/typechain-types/factories/seaport_v1_4/contracts/Seaport__factory.d.ts +2292 -0
  237. package/lib/typechain-types/factories/seaport_v1_4/contracts/Seaport__factory.js +2977 -0
  238. package/lib/typechain-types/factories/seaport_v1_4/contracts/Seaport__factory.js.map +1 -0
  239. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit__factory.d.ts +311 -0
  240. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit__factory.js +422 -0
  241. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit__factory.js.map +1 -0
  242. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/index.d.ts +1 -0
  243. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/index.js +9 -0
  244. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/index.js.map +1 -0
  245. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController__factory.d.ts +345 -0
  246. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController__factory.js +473 -0
  247. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController__factory.js.map +1 -0
  248. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/index.d.ts +1 -0
  249. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/index.js +9 -0
  250. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/index.js.map +1 -0
  251. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/index.d.ts +2 -0
  252. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/index.js +9 -0
  253. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/index.js.map +1 -0
  254. package/lib/typechain-types/factories/seaport_v1_4/contracts/index.d.ts +2 -0
  255. package/lib/typechain-types/factories/seaport_v1_4/contracts/index.js +10 -0
  256. package/lib/typechain-types/factories/seaport_v1_4/contracts/index.js.map +1 -0
  257. package/lib/typechain-types/factories/seaport_v1_4/index.d.ts +1 -0
  258. package/lib/typechain-types/factories/seaport_v1_4/index.js +8 -0
  259. package/lib/typechain-types/factories/seaport_v1_4/index.js.map +1 -0
  260. package/lib/typechain-types/factories/seaport_v1_5/contracts/Seaport__factory.d.ts +2292 -0
  261. package/lib/typechain-types/factories/seaport_v1_5/contracts/Seaport__factory.js +2977 -0
  262. package/lib/typechain-types/factories/seaport_v1_5/contracts/Seaport__factory.js.map +1 -0
  263. package/lib/typechain-types/factories/seaport_v1_5/contracts/index.d.ts +2 -0
  264. package/lib/typechain-types/factories/seaport_v1_5/contracts/index.js +10 -0
  265. package/lib/typechain-types/factories/seaport_v1_5/contracts/index.js.map +1 -0
  266. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/AmountDerivationErrors__factory.d.ts +12 -0
  267. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/AmountDerivationErrors__factory.js +27 -0
  268. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/AmountDerivationErrors__factory.js.map +1 -0
  269. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitControllerInterface__factory.d.ts +333 -0
  270. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitControllerInterface__factory.js +452 -0
  271. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitControllerInterface__factory.js.map +1 -0
  272. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitInterface__factory.d.ts +203 -0
  273. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitInterface__factory.js +276 -0
  274. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitInterface__factory.js.map +1 -0
  275. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors__factory.d.ts +360 -0
  276. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors__factory.js +475 -0
  277. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors__factory.js.map +1 -0
  278. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationInterface__factory.d.ts +1705 -0
  279. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationInterface__factory.js +2210 -0
  280. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationInterface__factory.js.map +1 -0
  281. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors__factory.d.ts +56 -0
  282. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors__factory.js +85 -0
  283. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors__factory.js.map +1 -0
  284. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors__factory.d.ts +32 -0
  285. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors__factory.js +54 -0
  286. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors__factory.js.map +1 -0
  287. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ReentrancyErrors__factory.d.ts +12 -0
  288. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ReentrancyErrors__factory.js +27 -0
  289. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ReentrancyErrors__factory.js.map +1 -0
  290. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors__factory.d.ts +28 -0
  291. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors__factory.js +48 -0
  292. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors__factory.js.map +1 -0
  293. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors__factory.d.ts +104 -0
  294. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors__factory.js +147 -0
  295. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors__factory.js.map +1 -0
  296. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors__factory.d.ts +24 -0
  297. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors__factory.js +42 -0
  298. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors__factory.js.map +1 -0
  299. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/index.d.ts +1 -0
  300. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/index.js +9 -0
  301. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/index.js.map +1 -0
  302. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/AmountDeriver__factory.d.ts +24 -0
  303. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/AmountDeriver__factory.js +95 -0
  304. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/AmountDeriver__factory.js.map +1 -0
  305. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Assertions__factory.d.ts +480 -0
  306. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Assertions__factory.js +684 -0
  307. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Assertions__factory.js.map +1 -0
  308. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/BasicOrderFulfiller__factory.d.ts +516 -0
  309. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/BasicOrderFulfiller__factory.js +732 -0
  310. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/BasicOrderFulfiller__factory.js.map +1 -0
  311. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ConsiderationBase__factory.d.ts +380 -0
  312. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ConsiderationBase__factory.js +554 -0
  313. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ConsiderationBase__factory.js.map +1 -0
  314. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Consideration__factory.d.ts +2292 -0
  315. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Consideration__factory.js +3024 -0
  316. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Consideration__factory.js.map +1 -0
  317. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CounterManager__factory.d.ts +376 -0
  318. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CounterManager__factory.js +548 -0
  319. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CounterManager__factory.js.map +1 -0
  320. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CriteriaResolution__factory.d.ts +68 -0
  321. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CriteriaResolution__factory.js +153 -0
  322. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CriteriaResolution__factory.js.map +1 -0
  323. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Executor__factory.d.ts +500 -0
  324. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Executor__factory.js +710 -0
  325. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Executor__factory.js.map +1 -0
  326. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/FulfillmentApplier__factory.d.ts +44 -0
  327. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/FulfillmentApplier__factory.js +122 -0
  328. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/FulfillmentApplier__factory.js.map +1 -0
  329. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/GettersAndDerivers__factory.d.ts +380 -0
  330. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/GettersAndDerivers__factory.js +554 -0
  331. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/GettersAndDerivers__factory.js.map +1 -0
  332. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderCombiner__factory.d.ts +592 -0
  333. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderCombiner__factory.js +832 -0
  334. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderCombiner__factory.js.map +1 -0
  335. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderFulfiller__factory.d.ts +568 -0
  336. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderFulfiller__factory.js +800 -0
  337. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderFulfiller__factory.js.map +1 -0
  338. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderValidator__factory.d.ts +516 -0
  339. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderValidator__factory.js +732 -0
  340. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderValidator__factory.js.map +1 -0
  341. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ReentrancyGuard__factory.d.ts +28 -0
  342. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ReentrancyGuard__factory.js +100 -0
  343. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ReentrancyGuard__factory.js.map +1 -0
  344. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/SignatureVerification__factory.d.ts +40 -0
  345. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/SignatureVerification__factory.js +116 -0
  346. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/SignatureVerification__factory.js.map +1 -0
  347. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/TokenTransferrer__factory.d.ts +116 -0
  348. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/TokenTransferrer__factory.js +215 -0
  349. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/TokenTransferrer__factory.js.map +1 -0
  350. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Verifiers__factory.d.ts +500 -0
  351. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Verifiers__factory.js +710 -0
  352. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Verifiers__factory.js.map +1 -0
  353. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ZoneInteraction__factory.d.ts +36 -0
  354. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ZoneInteraction__factory.js +112 -0
  355. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ZoneInteraction__factory.js.map +1 -0
  356. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/index.d.ts +18 -0
  357. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/index.js +43 -0
  358. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/index.js.map +1 -0
  359. package/lib/typechain-types/factories/seaport_v1_5/index.d.ts +1 -0
  360. package/lib/typechain-types/factories/seaport_v1_5/index.js +8 -0
  361. package/lib/typechain-types/factories/seaport_v1_5/index.js.map +1 -0
  362. package/lib/typechain-types/factories/src/contracts/index.d.ts +1 -0
  363. package/lib/typechain-types/factories/src/contracts/index.js +8 -0
  364. package/lib/typechain-types/factories/src/contracts/index.js.map +1 -0
  365. package/lib/typechain-types/factories/src/contracts/test/TestERC1155__factory.d.ts +285 -0
  366. package/lib/typechain-types/factories/src/contracts/test/TestERC1155__factory.js +384 -0
  367. package/lib/typechain-types/factories/src/contracts/test/TestERC1155__factory.js.map +1 -0
  368. package/lib/typechain-types/factories/src/contracts/test/TestERC20USDC__factory.d.ts +290 -0
  369. package/lib/typechain-types/factories/src/contracts/test/TestERC20USDC__factory.js +395 -0
  370. package/lib/typechain-types/factories/src/contracts/test/TestERC20USDC__factory.js.map +1 -0
  371. package/lib/typechain-types/factories/src/contracts/test/TestERC20__factory.d.ts +290 -0
  372. package/lib/typechain-types/factories/src/contracts/test/TestERC20__factory.js +395 -0
  373. package/lib/typechain-types/factories/src/contracts/test/TestERC20__factory.js.map +1 -0
  374. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/TestERC721__factory.d.ts +292 -0
  375. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/TestERC721__factory.js +444 -0
  376. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/TestERC721__factory.js.map +1 -0
  377. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/index.d.ts +1 -0
  378. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/index.js +9 -0
  379. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/index.js.map +1 -0
  380. package/lib/typechain-types/factories/src/contracts/test/TestERC721__factory.d.ts +292 -0
  381. package/lib/typechain-types/factories/src/contracts/test/TestERC721__factory.js +397 -0
  382. package/lib/typechain-types/factories/src/contracts/test/TestERC721__factory.js.map +1 -0
  383. package/lib/typechain-types/factories/src/contracts/test/index.d.ts +4 -0
  384. package/lib/typechain-types/factories/src/contracts/test/index.js +15 -0
  385. package/lib/typechain-types/factories/src/contracts/test/index.js.map +1 -0
  386. package/lib/typechain-types/factories/src/index.d.ts +1 -0
  387. package/lib/typechain-types/factories/src/index.js +8 -0
  388. package/lib/typechain-types/factories/src/index.js.map +1 -0
  389. package/lib/typechain-types/index.d.ts +105 -0
  390. package/lib/typechain-types/index.js +95 -0
  391. package/lib/typechain-types/index.js.map +1 -0
  392. package/lib/typechain-types/seaport-core/index.d.ts +2 -0
  393. package/lib/typechain-types/seaport-core/index.js +3 -0
  394. package/lib/typechain-types/seaport-core/index.js.map +1 -0
  395. package/lib/typechain-types/seaport-core/src/conduit/Conduit.d.ts +156 -0
  396. package/lib/typechain-types/seaport-core/src/conduit/Conduit.js +3 -0
  397. package/lib/typechain-types/seaport-core/src/conduit/Conduit.js.map +1 -0
  398. package/lib/typechain-types/seaport-core/src/conduit/ConduitController.d.ts +268 -0
  399. package/lib/typechain-types/seaport-core/src/conduit/ConduitController.js +3 -0
  400. package/lib/typechain-types/seaport-core/src/conduit/ConduitController.js.map +1 -0
  401. package/lib/typechain-types/seaport-core/src/conduit/index.d.ts +2 -0
  402. package/lib/typechain-types/seaport-core/src/conduit/index.js +3 -0
  403. package/lib/typechain-types/seaport-core/src/conduit/index.js.map +1 -0
  404. package/lib/typechain-types/seaport-core/src/index.d.ts +4 -0
  405. package/lib/typechain-types/seaport-core/src/index.js +3 -0
  406. package/lib/typechain-types/seaport-core/src/index.js.map +1 -0
  407. package/lib/typechain-types/seaport-core/src/lib/AmountDeriver.d.ts +27 -0
  408. package/lib/typechain-types/seaport-core/src/lib/AmountDeriver.js +3 -0
  409. package/lib/typechain-types/seaport-core/src/lib/AmountDeriver.js.map +1 -0
  410. package/lib/typechain-types/seaport-core/src/lib/Assertions.d.ts +216 -0
  411. package/lib/typechain-types/seaport-core/src/lib/Assertions.js +3 -0
  412. package/lib/typechain-types/seaport-core/src/lib/Assertions.js.map +1 -0
  413. package/lib/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.d.ts +216 -0
  414. package/lib/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.js +3 -0
  415. package/lib/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.js.map +1 -0
  416. package/lib/typechain-types/seaport-core/src/lib/Consideration.d.ts +711 -0
  417. package/lib/typechain-types/seaport-core/src/lib/Consideration.js +3 -0
  418. package/lib/typechain-types/seaport-core/src/lib/Consideration.js.map +1 -0
  419. package/lib/typechain-types/seaport-core/src/lib/ConsiderationBase.d.ts +216 -0
  420. package/lib/typechain-types/seaport-core/src/lib/ConsiderationBase.js +3 -0
  421. package/lib/typechain-types/seaport-core/src/lib/ConsiderationBase.js.map +1 -0
  422. package/lib/typechain-types/seaport-core/src/lib/CounterManager.d.ts +216 -0
  423. package/lib/typechain-types/seaport-core/src/lib/CounterManager.js +3 -0
  424. package/lib/typechain-types/seaport-core/src/lib/CounterManager.js.map +1 -0
  425. package/lib/typechain-types/seaport-core/src/lib/CriteriaResolution.d.ts +27 -0
  426. package/lib/typechain-types/seaport-core/src/lib/CriteriaResolution.js +3 -0
  427. package/lib/typechain-types/seaport-core/src/lib/CriteriaResolution.js.map +1 -0
  428. package/lib/typechain-types/seaport-core/src/lib/Executor.d.ts +216 -0
  429. package/lib/typechain-types/seaport-core/src/lib/Executor.js +3 -0
  430. package/lib/typechain-types/seaport-core/src/lib/Executor.js.map +1 -0
  431. package/lib/typechain-types/seaport-core/src/lib/FulfillmentApplier.d.ts +27 -0
  432. package/lib/typechain-types/seaport-core/src/lib/FulfillmentApplier.js +3 -0
  433. package/lib/typechain-types/seaport-core/src/lib/FulfillmentApplier.js.map +1 -0
  434. package/lib/typechain-types/seaport-core/src/lib/GettersAndDerivers.d.ts +216 -0
  435. package/lib/typechain-types/seaport-core/src/lib/GettersAndDerivers.js +3 -0
  436. package/lib/typechain-types/seaport-core/src/lib/GettersAndDerivers.js.map +1 -0
  437. package/lib/typechain-types/seaport-core/src/lib/OrderCombiner.d.ts +216 -0
  438. package/lib/typechain-types/seaport-core/src/lib/OrderCombiner.js +3 -0
  439. package/lib/typechain-types/seaport-core/src/lib/OrderCombiner.js.map +1 -0
  440. package/lib/typechain-types/seaport-core/src/lib/OrderFulfiller.d.ts +216 -0
  441. package/lib/typechain-types/seaport-core/src/lib/OrderFulfiller.js +3 -0
  442. package/lib/typechain-types/seaport-core/src/lib/OrderFulfiller.js.map +1 -0
  443. package/lib/typechain-types/seaport-core/src/lib/OrderValidator.d.ts +216 -0
  444. package/lib/typechain-types/seaport-core/src/lib/OrderValidator.js +3 -0
  445. package/lib/typechain-types/seaport-core/src/lib/OrderValidator.js.map +1 -0
  446. package/lib/typechain-types/seaport-core/src/lib/ReentrancyGuard.d.ts +27 -0
  447. package/lib/typechain-types/seaport-core/src/lib/ReentrancyGuard.js +3 -0
  448. package/lib/typechain-types/seaport-core/src/lib/ReentrancyGuard.js.map +1 -0
  449. package/lib/typechain-types/seaport-core/src/lib/SignatureVerification.d.ts +27 -0
  450. package/lib/typechain-types/seaport-core/src/lib/SignatureVerification.js +3 -0
  451. package/lib/typechain-types/seaport-core/src/lib/SignatureVerification.js.map +1 -0
  452. package/lib/typechain-types/seaport-core/src/lib/TokenTransferrer.d.ts +27 -0
  453. package/lib/typechain-types/seaport-core/src/lib/TokenTransferrer.js +3 -0
  454. package/lib/typechain-types/seaport-core/src/lib/TokenTransferrer.js.map +1 -0
  455. package/lib/typechain-types/seaport-core/src/lib/Verifiers.d.ts +216 -0
  456. package/lib/typechain-types/seaport-core/src/lib/Verifiers.js +3 -0
  457. package/lib/typechain-types/seaport-core/src/lib/Verifiers.js.map +1 -0
  458. package/lib/typechain-types/seaport-core/src/lib/ZoneInteraction.d.ts +27 -0
  459. package/lib/typechain-types/seaport-core/src/lib/ZoneInteraction.js +3 -0
  460. package/lib/typechain-types/seaport-core/src/lib/ZoneInteraction.js.map +1 -0
  461. package/lib/typechain-types/seaport-core/src/lib/index.d.ts +18 -0
  462. package/lib/typechain-types/seaport-core/src/lib/index.js +3 -0
  463. package/lib/typechain-types/seaport-core/src/lib/index.js.map +1 -0
  464. package/lib/typechain-types/seaport-types/index.d.ts +2 -0
  465. package/lib/typechain-types/seaport-types/index.js +3 -0
  466. package/lib/typechain-types/seaport-types/index.js.map +1 -0
  467. package/lib/typechain-types/seaport-types/src/index.d.ts +2 -0
  468. package/lib/typechain-types/seaport-types/src/index.js +3 -0
  469. package/lib/typechain-types/seaport-types/src/index.js.map +1 -0
  470. package/lib/typechain-types/seaport-types/src/interfaces/AmountDerivationErrors.d.ts +27 -0
  471. package/lib/typechain-types/seaport-types/src/interfaces/AmountDerivationErrors.js +3 -0
  472. package/lib/typechain-types/seaport-types/src/interfaces/AmountDerivationErrors.js.map +1 -0
  473. package/lib/typechain-types/seaport-types/src/interfaces/ConduitControllerInterface.d.ts +268 -0
  474. package/lib/typechain-types/seaport-types/src/interfaces/ConduitControllerInterface.js +3 -0
  475. package/lib/typechain-types/seaport-types/src/interfaces/ConduitControllerInterface.js.map +1 -0
  476. package/lib/typechain-types/seaport-types/src/interfaces/ConduitInterface.d.ts +156 -0
  477. package/lib/typechain-types/seaport-types/src/interfaces/ConduitInterface.js +3 -0
  478. package/lib/typechain-types/seaport-types/src/interfaces/ConduitInterface.js.map +1 -0
  479. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.d.ts +216 -0
  480. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.js +3 -0
  481. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.js.map +1 -0
  482. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.d.ts +638 -0
  483. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.js +3 -0
  484. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.js.map +1 -0
  485. package/lib/typechain-types/seaport-types/src/interfaces/CriteriaResolutionErrors.d.ts +27 -0
  486. package/lib/typechain-types/seaport-types/src/interfaces/CriteriaResolutionErrors.js +3 -0
  487. package/lib/typechain-types/seaport-types/src/interfaces/CriteriaResolutionErrors.js.map +1 -0
  488. package/lib/typechain-types/seaport-types/src/interfaces/FulfillmentApplicationErrors.d.ts +27 -0
  489. package/lib/typechain-types/seaport-types/src/interfaces/FulfillmentApplicationErrors.js +3 -0
  490. package/lib/typechain-types/seaport-types/src/interfaces/FulfillmentApplicationErrors.js.map +1 -0
  491. package/lib/typechain-types/seaport-types/src/interfaces/ReentrancyErrors.d.ts +27 -0
  492. package/lib/typechain-types/seaport-types/src/interfaces/ReentrancyErrors.js +3 -0
  493. package/lib/typechain-types/seaport-types/src/interfaces/ReentrancyErrors.js.map +1 -0
  494. package/lib/typechain-types/seaport-types/src/interfaces/SignatureVerificationErrors.d.ts +27 -0
  495. package/lib/typechain-types/seaport-types/src/interfaces/SignatureVerificationErrors.js +3 -0
  496. package/lib/typechain-types/seaport-types/src/interfaces/SignatureVerificationErrors.js.map +1 -0
  497. package/lib/typechain-types/seaport-types/src/interfaces/TokenTransferrerErrors.d.ts +27 -0
  498. package/lib/typechain-types/seaport-types/src/interfaces/TokenTransferrerErrors.js +3 -0
  499. package/lib/typechain-types/seaport-types/src/interfaces/TokenTransferrerErrors.js.map +1 -0
  500. package/lib/typechain-types/seaport-types/src/interfaces/ZoneInteractionErrors.d.ts +27 -0
  501. package/lib/typechain-types/seaport-types/src/interfaces/ZoneInteractionErrors.js +3 -0
  502. package/lib/typechain-types/seaport-types/src/interfaces/ZoneInteractionErrors.js.map +1 -0
  503. package/lib/typechain-types/seaport-types/src/interfaces/index.d.ts +11 -0
  504. package/lib/typechain-types/seaport-types/src/interfaces/index.js +3 -0
  505. package/lib/typechain-types/seaport-types/src/interfaces/index.js.map +1 -0
  506. package/lib/typechain-types/seaport_v1_4/contracts/Seaport.d.ts +711 -0
  507. package/lib/typechain-types/seaport_v1_4/contracts/Seaport.js +3 -0
  508. package/lib/typechain-types/seaport_v1_4/contracts/Seaport.js.map +1 -0
  509. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.d.ts +156 -0
  510. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.js +3 -0
  511. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.js.map +1 -0
  512. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/index.d.ts +1 -0
  513. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/index.js +3 -0
  514. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/index.js.map +1 -0
  515. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.d.ts +268 -0
  516. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.js +3 -0
  517. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.js.map +1 -0
  518. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/index.d.ts +1 -0
  519. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/index.js +3 -0
  520. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/index.js.map +1 -0
  521. package/lib/typechain-types/seaport_v1_4/contracts/conduit/index.d.ts +4 -0
  522. package/lib/typechain-types/seaport_v1_4/contracts/conduit/index.js +3 -0
  523. package/lib/typechain-types/seaport_v1_4/contracts/conduit/index.js.map +1 -0
  524. package/lib/typechain-types/seaport_v1_4/contracts/index.d.ts +3 -0
  525. package/lib/typechain-types/seaport_v1_4/contracts/index.js +3 -0
  526. package/lib/typechain-types/seaport_v1_4/contracts/index.js.map +1 -0
  527. package/lib/typechain-types/seaport_v1_4/index.d.ts +2 -0
  528. package/lib/typechain-types/seaport_v1_4/index.js +3 -0
  529. package/lib/typechain-types/seaport_v1_4/index.js.map +1 -0
  530. package/lib/typechain-types/seaport_v1_5/contracts/Seaport.d.ts +711 -0
  531. package/lib/typechain-types/seaport_v1_5/contracts/Seaport.js +3 -0
  532. package/lib/typechain-types/seaport_v1_5/contracts/Seaport.js.map +1 -0
  533. package/lib/typechain-types/seaport_v1_5/contracts/index.d.ts +3 -0
  534. package/lib/typechain-types/seaport_v1_5/contracts/index.js +3 -0
  535. package/lib/typechain-types/seaport_v1_5/contracts/index.js.map +1 -0
  536. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/AmountDerivationErrors.d.ts +27 -0
  537. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/AmountDerivationErrors.js +3 -0
  538. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/AmountDerivationErrors.js.map +1 -0
  539. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitControllerInterface.d.ts +268 -0
  540. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitControllerInterface.js +3 -0
  541. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitControllerInterface.js.map +1 -0
  542. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitInterface.d.ts +156 -0
  543. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitInterface.js +3 -0
  544. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitInterface.js.map +1 -0
  545. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors.d.ts +216 -0
  546. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors.js +3 -0
  547. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors.js.map +1 -0
  548. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationInterface.d.ts +638 -0
  549. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationInterface.js +3 -0
  550. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationInterface.js.map +1 -0
  551. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors.d.ts +27 -0
  552. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors.js +3 -0
  553. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors.js.map +1 -0
  554. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors.d.ts +27 -0
  555. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors.js +3 -0
  556. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors.js.map +1 -0
  557. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ReentrancyErrors.d.ts +27 -0
  558. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ReentrancyErrors.js +3 -0
  559. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ReentrancyErrors.js.map +1 -0
  560. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors.d.ts +27 -0
  561. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors.js +3 -0
  562. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors.js.map +1 -0
  563. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors.d.ts +27 -0
  564. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors.js +3 -0
  565. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors.js.map +1 -0
  566. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.d.ts +27 -0
  567. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.js +3 -0
  568. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.js.map +1 -0
  569. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/index.d.ts +1 -0
  570. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/index.js +3 -0
  571. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/index.js.map +1 -0
  572. package/lib/typechain-types/seaport_v1_5/contracts/lib/AmountDeriver.d.ts +27 -0
  573. package/lib/typechain-types/seaport_v1_5/contracts/lib/AmountDeriver.js +3 -0
  574. package/lib/typechain-types/seaport_v1_5/contracts/lib/AmountDeriver.js.map +1 -0
  575. package/lib/typechain-types/seaport_v1_5/contracts/lib/Assertions.d.ts +216 -0
  576. package/lib/typechain-types/seaport_v1_5/contracts/lib/Assertions.js +3 -0
  577. package/lib/typechain-types/seaport_v1_5/contracts/lib/Assertions.js.map +1 -0
  578. package/lib/typechain-types/seaport_v1_5/contracts/lib/BasicOrderFulfiller.d.ts +216 -0
  579. package/lib/typechain-types/seaport_v1_5/contracts/lib/BasicOrderFulfiller.js +3 -0
  580. package/lib/typechain-types/seaport_v1_5/contracts/lib/BasicOrderFulfiller.js.map +1 -0
  581. package/lib/typechain-types/seaport_v1_5/contracts/lib/Consideration.d.ts +711 -0
  582. package/lib/typechain-types/seaport_v1_5/contracts/lib/Consideration.js +3 -0
  583. package/lib/typechain-types/seaport_v1_5/contracts/lib/Consideration.js.map +1 -0
  584. package/lib/typechain-types/seaport_v1_5/contracts/lib/ConsiderationBase.d.ts +216 -0
  585. package/lib/typechain-types/seaport_v1_5/contracts/lib/ConsiderationBase.js +3 -0
  586. package/lib/typechain-types/seaport_v1_5/contracts/lib/ConsiderationBase.js.map +1 -0
  587. package/lib/typechain-types/seaport_v1_5/contracts/lib/CounterManager.d.ts +216 -0
  588. package/lib/typechain-types/seaport_v1_5/contracts/lib/CounterManager.js +3 -0
  589. package/lib/typechain-types/seaport_v1_5/contracts/lib/CounterManager.js.map +1 -0
  590. package/lib/typechain-types/seaport_v1_5/contracts/lib/CriteriaResolution.d.ts +27 -0
  591. package/lib/typechain-types/seaport_v1_5/contracts/lib/CriteriaResolution.js +3 -0
  592. package/lib/typechain-types/seaport_v1_5/contracts/lib/CriteriaResolution.js.map +1 -0
  593. package/lib/typechain-types/seaport_v1_5/contracts/lib/Executor.d.ts +216 -0
  594. package/lib/typechain-types/seaport_v1_5/contracts/lib/Executor.js +3 -0
  595. package/lib/typechain-types/seaport_v1_5/contracts/lib/Executor.js.map +1 -0
  596. package/lib/typechain-types/seaport_v1_5/contracts/lib/FulfillmentApplier.d.ts +27 -0
  597. package/lib/typechain-types/seaport_v1_5/contracts/lib/FulfillmentApplier.js +3 -0
  598. package/lib/typechain-types/seaport_v1_5/contracts/lib/FulfillmentApplier.js.map +1 -0
  599. package/lib/typechain-types/seaport_v1_5/contracts/lib/GettersAndDerivers.d.ts +216 -0
  600. package/lib/typechain-types/seaport_v1_5/contracts/lib/GettersAndDerivers.js +3 -0
  601. package/lib/typechain-types/seaport_v1_5/contracts/lib/GettersAndDerivers.js.map +1 -0
  602. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderCombiner.d.ts +216 -0
  603. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderCombiner.js +3 -0
  604. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderCombiner.js.map +1 -0
  605. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderFulfiller.d.ts +216 -0
  606. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderFulfiller.js +3 -0
  607. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderFulfiller.js.map +1 -0
  608. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderValidator.d.ts +216 -0
  609. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderValidator.js +3 -0
  610. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderValidator.js.map +1 -0
  611. package/lib/typechain-types/seaport_v1_5/contracts/lib/ReentrancyGuard.d.ts +27 -0
  612. package/lib/typechain-types/seaport_v1_5/contracts/lib/ReentrancyGuard.js +3 -0
  613. package/lib/typechain-types/seaport_v1_5/contracts/lib/ReentrancyGuard.js.map +1 -0
  614. package/lib/typechain-types/seaport_v1_5/contracts/lib/SignatureVerification.d.ts +27 -0
  615. package/lib/typechain-types/seaport_v1_5/contracts/lib/SignatureVerification.js +3 -0
  616. package/lib/typechain-types/seaport_v1_5/contracts/lib/SignatureVerification.js.map +1 -0
  617. package/lib/typechain-types/seaport_v1_5/contracts/lib/TokenTransferrer.d.ts +27 -0
  618. package/lib/typechain-types/seaport_v1_5/contracts/lib/TokenTransferrer.js +3 -0
  619. package/lib/typechain-types/seaport_v1_5/contracts/lib/TokenTransferrer.js.map +1 -0
  620. package/lib/typechain-types/seaport_v1_5/contracts/lib/Verifiers.d.ts +216 -0
  621. package/lib/typechain-types/seaport_v1_5/contracts/lib/Verifiers.js +3 -0
  622. package/lib/typechain-types/seaport_v1_5/contracts/lib/Verifiers.js.map +1 -0
  623. package/lib/typechain-types/seaport_v1_5/contracts/lib/ZoneInteraction.d.ts +27 -0
  624. package/lib/typechain-types/seaport_v1_5/contracts/lib/ZoneInteraction.js +3 -0
  625. package/lib/typechain-types/seaport_v1_5/contracts/lib/ZoneInteraction.js.map +1 -0
  626. package/lib/typechain-types/seaport_v1_5/contracts/lib/index.d.ts +18 -0
  627. package/lib/typechain-types/seaport_v1_5/contracts/lib/index.js +3 -0
  628. package/lib/typechain-types/seaport_v1_5/contracts/lib/index.js.map +1 -0
  629. package/lib/typechain-types/seaport_v1_5/index.d.ts +2 -0
  630. package/lib/typechain-types/seaport_v1_5/index.js +3 -0
  631. package/lib/typechain-types/seaport_v1_5/index.js.map +1 -0
  632. package/lib/typechain-types/src/contracts/index.d.ts +2 -0
  633. package/lib/typechain-types/src/contracts/index.js +3 -0
  634. package/lib/typechain-types/src/contracts/index.js.map +1 -0
  635. package/lib/typechain-types/src/contracts/test/TestERC1155.d.ts +205 -0
  636. package/lib/typechain-types/src/contracts/test/TestERC1155.js +3 -0
  637. package/lib/typechain-types/src/contracts/test/TestERC1155.js.map +1 -0
  638. package/lib/typechain-types/src/contracts/test/TestERC20.d.ts +242 -0
  639. package/lib/typechain-types/src/contracts/test/TestERC20.js +3 -0
  640. package/lib/typechain-types/src/contracts/test/TestERC20.js.map +1 -0
  641. package/lib/typechain-types/src/contracts/test/TestERC20USDC.d.ts +242 -0
  642. package/lib/typechain-types/src/contracts/test/TestERC20USDC.js +3 -0
  643. package/lib/typechain-types/src/contracts/test/TestERC20USDC.js.map +1 -0
  644. package/lib/typechain-types/src/contracts/test/TestERC721.d.ts +243 -0
  645. package/lib/typechain-types/src/contracts/test/TestERC721.js +3 -0
  646. package/lib/typechain-types/src/contracts/test/TestERC721.js.map +1 -0
  647. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/TestERC721.d.ts +243 -0
  648. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/TestERC721.js +3 -0
  649. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/TestERC721.js.map +1 -0
  650. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/index.d.ts +1 -0
  651. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/index.js +3 -0
  652. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/index.js.map +1 -0
  653. package/lib/typechain-types/src/contracts/test/index.d.ts +4 -0
  654. package/lib/typechain-types/src/contracts/test/index.js +3 -0
  655. package/lib/typechain-types/src/contracts/test/index.js.map +1 -0
  656. package/lib/typechain-types/src/index.d.ts +2 -0
  657. package/lib/typechain-types/src/index.js +3 -0
  658. package/lib/typechain-types/src/index.js.map +1 -0
  659. package/lib/types.d.ts +7 -9
  660. package/lib/utils/approval.d.ts +1 -1
  661. package/lib/utils/approval.js +53 -92
  662. package/lib/utils/approval.js.map +1 -1
  663. package/lib/utils/balance.js +37 -69
  664. package/lib/utils/balance.js.map +1 -1
  665. package/lib/utils/balanceAndApprovalCheck.js +91 -193
  666. package/lib/utils/balanceAndApprovalCheck.js.map +1 -1
  667. package/lib/utils/criteria.js +36 -76
  668. package/lib/utils/criteria.js.map +1 -1
  669. package/lib/utils/eip712/Eip712MerkleTree.js +64 -101
  670. package/lib/utils/eip712/Eip712MerkleTree.js.map +1 -1
  671. package/lib/utils/eip712/bulk-orders.js +21 -56
  672. package/lib/utils/eip712/bulk-orders.js.map +1 -1
  673. package/lib/utils/eip712/defaults.js +28 -61
  674. package/lib/utils/eip712/defaults.js.map +1 -1
  675. package/lib/utils/eip712/utils.js +17 -49
  676. package/lib/utils/eip712/utils.js.map +1 -1
  677. package/lib/utils/fulfill.d.ts +4 -4
  678. package/lib/utils/fulfill.js +305 -463
  679. package/lib/utils/fulfill.js.map +1 -1
  680. package/lib/utils/gcd.js +7 -7
  681. package/lib/utils/gcd.js.map +1 -1
  682. package/lib/utils/item.js +37 -92
  683. package/lib/utils/item.js.map +1 -1
  684. package/lib/utils/merkletree.js +11 -17
  685. package/lib/utils/merkletree.js.map +1 -1
  686. package/lib/utils/order.d.ts +1 -2
  687. package/lib/utils/order.js +50 -103
  688. package/lib/utils/order.js.map +1 -1
  689. package/lib/utils/usecase.d.ts +2 -2
  690. package/lib/utils/usecase.js +46 -146
  691. package/lib/utils/usecase.js.map +1 -1
  692. package/package.json +48 -66
  693. package/src/abi/DomainRegistry.ts +142 -0
  694. package/src/abi/ERC1155.ts +316 -0
  695. package/src/abi/ERC20.ts +314 -0
  696. package/src/abi/ERC721.ts +334 -0
  697. package/src/abi/Seaport_v1_4.ts +2815 -0
  698. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.dbg.json +4 -0
  699. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.json +323 -0
  700. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.dbg.json +4 -0
  701. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.json +89 -0
  702. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC20.sol/ERC20.dbg.json +4 -0
  703. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC20.sol/ERC20.json +308 -0
  704. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.dbg.json +4 -0
  705. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.json +341 -0
  706. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.dbg.json +4 -0
  707. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.json +45 -0
  708. package/src/artifacts/build-info/8ec2a72c7ffed75938dc5db96ad993ab.json +1 -0
  709. package/src/artifacts/build-info/adb0dc5cdbe2af0ab1658ae96afea5af.json +1 -0
  710. package/src/artifacts/build-info/c314db703fc0cbcdaeb2d52354fe2c12.json +1 -0
  711. package/src/artifacts/domain-registry/contracts/DomainRegistry.sol/DomainRegistry.dbg.json +4 -0
  712. package/src/artifacts/domain-registry/contracts/DomainRegistry.sol/DomainRegistry.json +149 -0
  713. package/src/artifacts/domain-registry/contracts/interfaces/DomainRegistryInterface.sol/DomainRegistryInterface.dbg.json +4 -0
  714. package/src/artifacts/domain-registry/contracts/interfaces/DomainRegistryInterface.sol/DomainRegistryInterface.json +149 -0
  715. package/src/artifacts/seaport-core/src/conduit/Conduit.sol/Conduit.dbg.json +4 -0
  716. package/src/artifacts/seaport-core/src/conduit/Conduit.sol/Conduit.json +395 -0
  717. package/src/artifacts/seaport-core/src/conduit/ConduitController.sol/ConduitController.dbg.json +4 -0
  718. package/src/artifacts/seaport-core/src/conduit/ConduitController.sol/ConduitController.json +446 -0
  719. package/src/artifacts/seaport-core/src/lib/AmountDeriver.sol/AmountDeriver.dbg.json +4 -0
  720. package/src/artifacts/seaport-core/src/lib/AmountDeriver.sol/AmountDeriver.json +16 -0
  721. package/src/artifacts/seaport-core/src/lib/Assertions.sol/Assertions.dbg.json +4 -0
  722. package/src/artifacts/seaport-core/src/lib/Assertions.sol/Assertions.json +605 -0
  723. package/src/artifacts/seaport-core/src/lib/BasicOrderFulfiller.sol/BasicOrderFulfiller.dbg.json +4 -0
  724. package/src/artifacts/seaport-core/src/lib/BasicOrderFulfiller.sol/BasicOrderFulfiller.json +653 -0
  725. package/src/artifacts/seaport-core/src/lib/Consideration.sol/Consideration.dbg.json +4 -0
  726. package/src/artifacts/seaport-core/src/lib/Consideration.sol/Consideration.json +2945 -0
  727. package/src/artifacts/seaport-core/src/lib/ConsiderationBase.sol/ConsiderationBase.dbg.json +4 -0
  728. package/src/artifacts/seaport-core/src/lib/ConsiderationBase.sol/ConsiderationBase.json +475 -0
  729. package/src/artifacts/seaport-core/src/lib/ConsiderationDecoder.sol/ConsiderationDecoder.dbg.json +4 -0
  730. package/src/artifacts/seaport-core/src/lib/ConsiderationDecoder.sol/ConsiderationDecoder.json +10 -0
  731. package/src/artifacts/seaport-core/src/lib/ConsiderationEncoder.sol/ConsiderationEncoder.dbg.json +4 -0
  732. package/src/artifacts/seaport-core/src/lib/ConsiderationEncoder.sol/ConsiderationEncoder.json +10 -0
  733. package/src/artifacts/seaport-core/src/lib/CounterManager.sol/CounterManager.dbg.json +4 -0
  734. package/src/artifacts/seaport-core/src/lib/CounterManager.sol/CounterManager.json +469 -0
  735. package/src/artifacts/seaport-core/src/lib/CriteriaResolution.sol/CriteriaResolution.dbg.json +4 -0
  736. package/src/artifacts/seaport-core/src/lib/CriteriaResolution.sol/CriteriaResolution.json +74 -0
  737. package/src/artifacts/seaport-core/src/lib/Executor.sol/Executor.dbg.json +4 -0
  738. package/src/artifacts/seaport-core/src/lib/Executor.sol/Executor.json +631 -0
  739. package/src/artifacts/seaport-core/src/lib/FulfillmentApplier.sol/FulfillmentApplier.dbg.json +4 -0
  740. package/src/artifacts/seaport-core/src/lib/FulfillmentApplier.sol/FulfillmentApplier.json +43 -0
  741. package/src/artifacts/seaport-core/src/lib/GettersAndDerivers.sol/GettersAndDerivers.dbg.json +4 -0
  742. package/src/artifacts/seaport-core/src/lib/GettersAndDerivers.sol/GettersAndDerivers.json +475 -0
  743. package/src/artifacts/seaport-core/src/lib/LowLevelHelpers.sol/LowLevelHelpers.dbg.json +4 -0
  744. package/src/artifacts/seaport-core/src/lib/LowLevelHelpers.sol/LowLevelHelpers.json +10 -0
  745. package/src/artifacts/seaport-core/src/lib/OrderCombiner.sol/OrderCombiner.dbg.json +4 -0
  746. package/src/artifacts/seaport-core/src/lib/OrderCombiner.sol/OrderCombiner.json +753 -0
  747. package/src/artifacts/seaport-core/src/lib/OrderFulfiller.sol/OrderFulfiller.dbg.json +4 -0
  748. package/src/artifacts/seaport-core/src/lib/OrderFulfiller.sol/OrderFulfiller.json +721 -0
  749. package/src/artifacts/seaport-core/src/lib/OrderValidator.sol/OrderValidator.dbg.json +4 -0
  750. package/src/artifacts/seaport-core/src/lib/OrderValidator.sol/OrderValidator.json +653 -0
  751. package/src/artifacts/seaport-core/src/lib/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +4 -0
  752. package/src/artifacts/seaport-core/src/lib/ReentrancyGuard.sol/ReentrancyGuard.json +21 -0
  753. package/src/artifacts/seaport-core/src/lib/SignatureVerification.sol/SignatureVerification.dbg.json +4 -0
  754. package/src/artifacts/seaport-core/src/lib/SignatureVerification.sol/SignatureVerification.json +37 -0
  755. package/src/artifacts/seaport-core/src/lib/TokenTransferrer.sol/TokenTransferrer.dbg.json +4 -0
  756. package/src/artifacts/seaport-core/src/lib/TokenTransferrer.sol/TokenTransferrer.json +136 -0
  757. package/src/artifacts/seaport-core/src/lib/Verifiers.sol/Verifiers.dbg.json +4 -0
  758. package/src/artifacts/seaport-core/src/lib/Verifiers.sol/Verifiers.json +631 -0
  759. package/src/artifacts/seaport-core/src/lib/ZoneInteraction.sol/ZoneInteraction.dbg.json +4 -0
  760. package/src/artifacts/seaport-core/src/lib/ZoneInteraction.sol/ZoneInteraction.json +33 -0
  761. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/CalldataPointerLib.dbg.json +4 -0
  762. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/CalldataPointerLib.json +10 -0
  763. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/CalldataReaders.dbg.json +4 -0
  764. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/CalldataReaders.json +10 -0
  765. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryPointerLib.dbg.json +4 -0
  766. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryPointerLib.json +10 -0
  767. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryReaders.dbg.json +4 -0
  768. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryReaders.json +10 -0
  769. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryWriters.dbg.json +4 -0
  770. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryWriters.json +10 -0
  771. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/ReturndataPointerLib.dbg.json +4 -0
  772. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/ReturndataPointerLib.json +10 -0
  773. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/ReturndataReaders.dbg.json +4 -0
  774. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/ReturndataReaders.json +10 -0
  775. package/src/artifacts/seaport-types/src/interfaces/AmountDerivationErrors.sol/AmountDerivationErrors.dbg.json +4 -0
  776. package/src/artifacts/seaport-types/src/interfaces/AmountDerivationErrors.sol/AmountDerivationErrors.json +16 -0
  777. package/src/artifacts/seaport-types/src/interfaces/ConduitControllerInterface.sol/ConduitControllerInterface.dbg.json +4 -0
  778. package/src/artifacts/seaport-types/src/interfaces/ConduitControllerInterface.sol/ConduitControllerInterface.json +441 -0
  779. package/src/artifacts/seaport-types/src/interfaces/ConduitInterface.sol/ConduitInterface.dbg.json +4 -0
  780. package/src/artifacts/seaport-types/src/interfaces/ConduitInterface.sol/ConduitInterface.json +265 -0
  781. package/src/artifacts/seaport-types/src/interfaces/ConsiderationEventsAndErrors.sol/ConsiderationEventsAndErrors.dbg.json +4 -0
  782. package/src/artifacts/seaport-types/src/interfaces/ConsiderationEventsAndErrors.sol/ConsiderationEventsAndErrors.json +464 -0
  783. package/src/artifacts/seaport-types/src/interfaces/ConsiderationInterface.sol/ConsiderationInterface.dbg.json +4 -0
  784. package/src/artifacts/seaport-types/src/interfaces/ConsiderationInterface.sol/ConsiderationInterface.json +2199 -0
  785. package/src/artifacts/seaport-types/src/interfaces/CriteriaResolutionErrors.sol/CriteriaResolutionErrors.dbg.json +4 -0
  786. package/src/artifacts/seaport-types/src/interfaces/CriteriaResolutionErrors.sol/CriteriaResolutionErrors.json +74 -0
  787. package/src/artifacts/seaport-types/src/interfaces/FulfillmentApplicationErrors.sol/FulfillmentApplicationErrors.dbg.json +4 -0
  788. package/src/artifacts/seaport-types/src/interfaces/FulfillmentApplicationErrors.sol/FulfillmentApplicationErrors.json +43 -0
  789. package/src/artifacts/seaport-types/src/interfaces/ReentrancyErrors.sol/ReentrancyErrors.dbg.json +4 -0
  790. package/src/artifacts/seaport-types/src/interfaces/ReentrancyErrors.sol/ReentrancyErrors.json +16 -0
  791. package/src/artifacts/seaport-types/src/interfaces/SignatureVerificationErrors.sol/SignatureVerificationErrors.dbg.json +4 -0
  792. package/src/artifacts/seaport-types/src/interfaces/SignatureVerificationErrors.sol/SignatureVerificationErrors.json +37 -0
  793. package/src/artifacts/seaport-types/src/interfaces/TokenTransferrerErrors.sol/TokenTransferrerErrors.dbg.json +4 -0
  794. package/src/artifacts/seaport-types/src/interfaces/TokenTransferrerErrors.sol/TokenTransferrerErrors.json +136 -0
  795. package/src/artifacts/seaport-types/src/interfaces/ZoneInteractionErrors.sol/ZoneInteractionErrors.dbg.json +4 -0
  796. package/src/artifacts/seaport-types/src/interfaces/ZoneInteractionErrors.sol/ZoneInteractionErrors.json +33 -0
  797. package/src/artifacts/seaport-types/src/lib/ConsiderationStructs.sol/StructPointers.dbg.json +4 -0
  798. package/src/artifacts/seaport-types/src/lib/ConsiderationStructs.sol/StructPointers.json +10 -0
  799. package/src/artifacts/seaport_v1_4/contracts/Seaport.sol/Seaport.dbg.json +4 -0
  800. package/src/artifacts/seaport_v1_4/contracts/Seaport.sol/Seaport.json +2945 -0
  801. package/src/artifacts/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.dbg.json +4 -0
  802. package/src/artifacts/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.json +390 -0
  803. package/src/artifacts/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.dbg.json +4 -0
  804. package/src/artifacts/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.json +441 -0
  805. package/src/artifacts/seaport_v1_5/contracts/Seaport.sol/Seaport.dbg.json +4 -0
  806. package/src/artifacts/seaport_v1_5/contracts/Seaport.sol/Seaport.json +2945 -0
  807. package/src/artifacts/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.sol/ZoneInteractionErrors.dbg.json +4 -0
  808. package/src/artifacts/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.sol/ZoneInteractionErrors.json +33 -0
  809. package/src/artifacts/src/contracts/test/TestERC1155.sol/TestERC1155.dbg.json +4 -0
  810. package/src/artifacts/src/contracts/test/TestERC1155.sol/TestERC1155.json +352 -0
  811. package/src/artifacts/src/contracts/test/TestERC20.sol/TestERC20.dbg.json +4 -0
  812. package/src/artifacts/src/contracts/test/TestERC20.sol/TestERC20.json +363 -0
  813. package/src/artifacts/src/contracts/test/TestERC20USDC.sol/TestERC20USDC.dbg.json +4 -0
  814. package/src/artifacts/src/contracts/test/TestERC20USDC.sol/TestERC20USDC.json +363 -0
  815. package/src/artifacts/src/contracts/test/TestERC721.sol/TestERC721.dbg.json +4 -0
  816. package/src/artifacts/src/contracts/test/TestERC721.sol/TestERC721.json +365 -0
  817. package/src/constants.ts +127 -0
  818. package/src/contracts/Conduit.sol +4 -0
  819. package/src/contracts/ConduitController.sol +4 -0
  820. package/src/contracts/DomainRegistry.sol +4 -0
  821. package/src/contracts/Seaport_v1_4.sol +4 -0
  822. package/src/contracts/Seaport_v1_5.sol +4 -0
  823. package/src/contracts/test/TestERC1155.sol +20 -0
  824. package/src/contracts/test/TestERC20.sol +36 -0
  825. package/src/contracts/test/TestERC20USDC.sol +36 -0
  826. package/src/contracts/test/TestERC721.sol +16 -0
  827. package/src/index.ts +3 -0
  828. package/src/seaport.ts +1150 -0
  829. package/src/typechain-types/@rari-capital/index.ts +5 -0
  830. package/src/typechain-types/@rari-capital/solmate/index.ts +5 -0
  831. package/src/typechain-types/@rari-capital/solmate/src/index.ts +5 -0
  832. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.ts +501 -0
  833. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.ts +181 -0
  834. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/index.ts +5 -0
  835. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC20.ts +471 -0
  836. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.ts +563 -0
  837. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.ts +120 -0
  838. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/index.ts +5 -0
  839. package/src/typechain-types/@rari-capital/solmate/src/tokens/index.ts +8 -0
  840. package/src/typechain-types/common.ts +44 -0
  841. package/src/typechain-types/domain-registry/contracts/DomainRegistry.ts +226 -0
  842. package/src/typechain-types/domain-registry/contracts/index.ts +6 -0
  843. package/src/typechain-types/domain-registry/contracts/interfaces/DomainRegistryInterface.ts +226 -0
  844. package/src/typechain-types/domain-registry/contracts/interfaces/index.ts +4 -0
  845. package/src/typechain-types/domain-registry/index.ts +5 -0
  846. package/src/typechain-types/factories/@rari-capital/index.ts +4 -0
  847. package/src/typechain-types/factories/@rari-capital/solmate/index.ts +4 -0
  848. package/src/typechain-types/factories/@rari-capital/solmate/src/index.ts +4 -0
  849. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver__factory.ts +108 -0
  850. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155__factory.ts +338 -0
  851. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/index.ts +5 -0
  852. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC20__factory.ts +320 -0
  853. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver__factory.ts +60 -0
  854. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721__factory.ts +353 -0
  855. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/index.ts +5 -0
  856. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/index.ts +6 -0
  857. package/src/typechain-types/factories/domain-registry/contracts/DomainRegistry__factory.ts +200 -0
  858. package/src/typechain-types/factories/domain-registry/contracts/index.ts +5 -0
  859. package/src/typechain-types/factories/domain-registry/contracts/interfaces/DomainRegistryInterface__factory.ts +168 -0
  860. package/src/typechain-types/factories/domain-registry/contracts/interfaces/index.ts +4 -0
  861. package/src/typechain-types/factories/domain-registry/index.ts +4 -0
  862. package/src/typechain-types/factories/index.ts +10 -0
  863. package/src/typechain-types/factories/seaport-core/index.ts +4 -0
  864. package/src/typechain-types/factories/seaport-core/src/conduit/ConduitController__factory.ts +497 -0
  865. package/src/typechain-types/factories/seaport-core/src/conduit/Conduit__factory.ts +444 -0
  866. package/src/typechain-types/factories/seaport-core/src/conduit/index.ts +5 -0
  867. package/src/typechain-types/factories/seaport-core/src/index.ts +5 -0
  868. package/src/typechain-types/factories/seaport-core/src/lib/AmountDeriver__factory.ts +67 -0
  869. package/src/typechain-types/factories/seaport-core/src/lib/Assertions__factory.ts +661 -0
  870. package/src/typechain-types/factories/seaport-core/src/lib/BasicOrderFulfiller__factory.ts +709 -0
  871. package/src/typechain-types/factories/seaport-core/src/lib/ConsiderationBase__factory.ts +531 -0
  872. package/src/typechain-types/factories/seaport-core/src/lib/Consideration__factory.ts +3001 -0
  873. package/src/typechain-types/factories/seaport-core/src/lib/CounterManager__factory.ts +520 -0
  874. package/src/typechain-types/factories/seaport-core/src/lib/CriteriaResolution__factory.ts +125 -0
  875. package/src/typechain-types/factories/seaport-core/src/lib/Executor__factory.ts +687 -0
  876. package/src/typechain-types/factories/seaport-core/src/lib/FulfillmentApplier__factory.ts +94 -0
  877. package/src/typechain-types/factories/seaport-core/src/lib/GettersAndDerivers__factory.ts +531 -0
  878. package/src/typechain-types/factories/seaport-core/src/lib/OrderCombiner__factory.ts +809 -0
  879. package/src/typechain-types/factories/seaport-core/src/lib/OrderFulfiller__factory.ts +777 -0
  880. package/src/typechain-types/factories/seaport-core/src/lib/OrderValidator__factory.ts +709 -0
  881. package/src/typechain-types/factories/seaport-core/src/lib/ReentrancyGuard__factory.ts +72 -0
  882. package/src/typechain-types/factories/seaport-core/src/lib/SignatureVerification__factory.ts +92 -0
  883. package/src/typechain-types/factories/seaport-core/src/lib/TokenTransferrer__factory.ts +187 -0
  884. package/src/typechain-types/factories/seaport-core/src/lib/Verifiers__factory.ts +687 -0
  885. package/src/typechain-types/factories/seaport-core/src/lib/ZoneInteraction__factory.ts +84 -0
  886. package/src/typechain-types/factories/seaport-core/src/lib/index.ts +21 -0
  887. package/src/typechain-types/factories/seaport-types/index.ts +4 -0
  888. package/src/typechain-types/factories/seaport-types/src/index.ts +4 -0
  889. package/src/typechain-types/factories/seaport-types/src/interfaces/AmountDerivationErrors__factory.ts +35 -0
  890. package/src/typechain-types/factories/seaport-types/src/interfaces/ConduitControllerInterface__factory.ts +460 -0
  891. package/src/typechain-types/factories/seaport-types/src/interfaces/ConduitInterface__factory.ts +280 -0
  892. package/src/typechain-types/factories/seaport-types/src/interfaces/ConsiderationEventsAndErrors__factory.ts +483 -0
  893. package/src/typechain-types/factories/seaport-types/src/interfaces/ConsiderationInterface__factory.ts +2218 -0
  894. package/src/typechain-types/factories/seaport-types/src/interfaces/CriteriaResolutionErrors__factory.ts +93 -0
  895. package/src/typechain-types/factories/seaport-types/src/interfaces/FulfillmentApplicationErrors__factory.ts +62 -0
  896. package/src/typechain-types/factories/seaport-types/src/interfaces/ReentrancyErrors__factory.ts +31 -0
  897. package/src/typechain-types/factories/seaport-types/src/interfaces/SignatureVerificationErrors__factory.ts +56 -0
  898. package/src/typechain-types/factories/seaport-types/src/interfaces/TokenTransferrerErrors__factory.ts +155 -0
  899. package/src/typechain-types/factories/seaport-types/src/interfaces/ZoneInteractionErrors__factory.ts +52 -0
  900. package/src/typechain-types/factories/seaport-types/src/interfaces/index.ts +14 -0
  901. package/src/typechain-types/factories/seaport_v1_4/contracts/Seaport__factory.ts +2998 -0
  902. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit__factory.ts +441 -0
  903. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/index.ts +4 -0
  904. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController__factory.ts +496 -0
  905. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/index.ts +4 -0
  906. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/index.ts +5 -0
  907. package/src/typechain-types/factories/seaport_v1_4/contracts/index.ts +5 -0
  908. package/src/typechain-types/factories/seaport_v1_4/index.ts +4 -0
  909. package/src/typechain-types/factories/seaport_v1_5/contracts/Seaport__factory.ts +2998 -0
  910. package/src/typechain-types/factories/seaport_v1_5/contracts/index.ts +5 -0
  911. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/AmountDerivationErrors__factory.ts +35 -0
  912. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitControllerInterface__factory.ts +460 -0
  913. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitInterface__factory.ts +280 -0
  914. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors__factory.ts +483 -0
  915. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationInterface__factory.ts +2218 -0
  916. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors__factory.ts +93 -0
  917. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors__factory.ts +62 -0
  918. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ReentrancyErrors__factory.ts +31 -0
  919. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors__factory.ts +56 -0
  920. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors__factory.ts +155 -0
  921. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors__factory.ts +52 -0
  922. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/index.ts +4 -0
  923. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/AmountDeriver__factory.ts +67 -0
  924. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/Assertions__factory.ts +661 -0
  925. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/BasicOrderFulfiller__factory.ts +709 -0
  926. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/ConsiderationBase__factory.ts +531 -0
  927. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/Consideration__factory.ts +3001 -0
  928. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/CounterManager__factory.ts +520 -0
  929. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/CriteriaResolution__factory.ts +125 -0
  930. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/Executor__factory.ts +687 -0
  931. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/FulfillmentApplier__factory.ts +94 -0
  932. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/GettersAndDerivers__factory.ts +531 -0
  933. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/OrderCombiner__factory.ts +809 -0
  934. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/OrderFulfiller__factory.ts +777 -0
  935. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/OrderValidator__factory.ts +709 -0
  936. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/ReentrancyGuard__factory.ts +72 -0
  937. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/SignatureVerification__factory.ts +92 -0
  938. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/TokenTransferrer__factory.ts +187 -0
  939. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/Verifiers__factory.ts +687 -0
  940. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/ZoneInteraction__factory.ts +84 -0
  941. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/index.ts +21 -0
  942. package/src/typechain-types/factories/seaport_v1_5/index.ts +4 -0
  943. package/src/typechain-types/factories/src/contracts/index.ts +4 -0
  944. package/src/typechain-types/factories/src/contracts/test/TestERC1155__factory.ts +403 -0
  945. package/src/typechain-types/factories/src/contracts/test/TestERC20USDC__factory.ts +414 -0
  946. package/src/typechain-types/factories/src/contracts/test/TestERC20__factory.ts +414 -0
  947. package/src/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/TestERC721__factory.ts +416 -0
  948. package/src/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/index.ts +4 -0
  949. package/src/typechain-types/factories/src/contracts/test/TestERC721__factory.ts +416 -0
  950. package/src/typechain-types/factories/src/contracts/test/index.ts +7 -0
  951. package/src/typechain-types/factories/src/index.ts +4 -0
  952. package/src/typechain-types/hardhat.d.ts +456 -0
  953. package/src/typechain-types/index.ts +108 -0
  954. package/src/typechain-types/seaport-core/index.ts +5 -0
  955. package/src/typechain-types/seaport-core/src/conduit/Conduit.ts +295 -0
  956. package/src/typechain-types/seaport-core/src/conduit/ConduitController.ts +612 -0
  957. package/src/typechain-types/seaport-core/src/conduit/index.ts +5 -0
  958. package/src/typechain-types/seaport-core/src/index.ts +7 -0
  959. package/src/typechain-types/seaport-core/src/lib/AmountDeriver.ts +55 -0
  960. package/src/typechain-types/seaport-core/src/lib/Assertions.ts +313 -0
  961. package/src/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.ts +313 -0
  962. package/src/typechain-types/seaport-core/src/lib/Consideration.ts +1211 -0
  963. package/src/typechain-types/seaport-core/src/lib/ConsiderationBase.ts +313 -0
  964. package/src/typechain-types/seaport-core/src/lib/CounterManager.ts +313 -0
  965. package/src/typechain-types/seaport-core/src/lib/CriteriaResolution.ts +55 -0
  966. package/src/typechain-types/seaport-core/src/lib/Executor.ts +313 -0
  967. package/src/typechain-types/seaport-core/src/lib/FulfillmentApplier.ts +55 -0
  968. package/src/typechain-types/seaport-core/src/lib/GettersAndDerivers.ts +313 -0
  969. package/src/typechain-types/seaport-core/src/lib/OrderCombiner.ts +313 -0
  970. package/src/typechain-types/seaport-core/src/lib/OrderFulfiller.ts +313 -0
  971. package/src/typechain-types/seaport-core/src/lib/OrderValidator.ts +313 -0
  972. package/src/typechain-types/seaport-core/src/lib/ReentrancyGuard.ts +55 -0
  973. package/src/typechain-types/seaport-core/src/lib/SignatureVerification.ts +55 -0
  974. package/src/typechain-types/seaport-core/src/lib/TokenTransferrer.ts +55 -0
  975. package/src/typechain-types/seaport-core/src/lib/Verifiers.ts +313 -0
  976. package/src/typechain-types/seaport-core/src/lib/ZoneInteraction.ts +55 -0
  977. package/src/typechain-types/seaport-core/src/lib/index.ts +21 -0
  978. package/src/typechain-types/seaport-types/index.ts +5 -0
  979. package/src/typechain-types/seaport-types/src/index.ts +5 -0
  980. package/src/typechain-types/seaport-types/src/interfaces/AmountDerivationErrors.ts +55 -0
  981. package/src/typechain-types/seaport-types/src/interfaces/ConduitControllerInterface.ts +612 -0
  982. package/src/typechain-types/seaport-types/src/interfaces/ConduitInterface.ts +295 -0
  983. package/src/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.ts +313 -0
  984. package/src/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.ts +1074 -0
  985. package/src/typechain-types/seaport-types/src/interfaces/CriteriaResolutionErrors.ts +55 -0
  986. package/src/typechain-types/seaport-types/src/interfaces/FulfillmentApplicationErrors.ts +55 -0
  987. package/src/typechain-types/seaport-types/src/interfaces/ReentrancyErrors.ts +55 -0
  988. package/src/typechain-types/seaport-types/src/interfaces/SignatureVerificationErrors.ts +55 -0
  989. package/src/typechain-types/seaport-types/src/interfaces/TokenTransferrerErrors.ts +55 -0
  990. package/src/typechain-types/seaport-types/src/interfaces/ZoneInteractionErrors.ts +55 -0
  991. package/src/typechain-types/seaport-types/src/interfaces/index.ts +14 -0
  992. package/src/typechain-types/seaport_v1_4/contracts/Seaport.ts +1205 -0
  993. package/src/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.ts +295 -0
  994. package/src/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/index.ts +4 -0
  995. package/src/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.ts +612 -0
  996. package/src/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/index.ts +4 -0
  997. package/src/typechain-types/seaport_v1_4/contracts/conduit/index.ts +7 -0
  998. package/src/typechain-types/seaport_v1_4/contracts/index.ts +6 -0
  999. package/src/typechain-types/seaport_v1_4/index.ts +5 -0
  1000. package/src/typechain-types/seaport_v1_5/contracts/Seaport.ts +1211 -0
  1001. package/src/typechain-types/seaport_v1_5/contracts/index.ts +6 -0
  1002. package/src/typechain-types/seaport_v1_5/contracts/interfaces/AmountDerivationErrors.ts +55 -0
  1003. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ConduitControllerInterface.ts +612 -0
  1004. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ConduitInterface.ts +295 -0
  1005. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors.ts +313 -0
  1006. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationInterface.ts +1074 -0
  1007. package/src/typechain-types/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors.ts +55 -0
  1008. package/src/typechain-types/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors.ts +55 -0
  1009. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ReentrancyErrors.ts +55 -0
  1010. package/src/typechain-types/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors.ts +55 -0
  1011. package/src/typechain-types/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors.ts +55 -0
  1012. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.ts +55 -0
  1013. package/src/typechain-types/seaport_v1_5/contracts/interfaces/index.ts +4 -0
  1014. package/src/typechain-types/seaport_v1_5/contracts/lib/AmountDeriver.ts +55 -0
  1015. package/src/typechain-types/seaport_v1_5/contracts/lib/Assertions.ts +313 -0
  1016. package/src/typechain-types/seaport_v1_5/contracts/lib/BasicOrderFulfiller.ts +313 -0
  1017. package/src/typechain-types/seaport_v1_5/contracts/lib/Consideration.ts +1211 -0
  1018. package/src/typechain-types/seaport_v1_5/contracts/lib/ConsiderationBase.ts +313 -0
  1019. package/src/typechain-types/seaport_v1_5/contracts/lib/CounterManager.ts +313 -0
  1020. package/src/typechain-types/seaport_v1_5/contracts/lib/CriteriaResolution.ts +55 -0
  1021. package/src/typechain-types/seaport_v1_5/contracts/lib/Executor.ts +313 -0
  1022. package/src/typechain-types/seaport_v1_5/contracts/lib/FulfillmentApplier.ts +55 -0
  1023. package/src/typechain-types/seaport_v1_5/contracts/lib/GettersAndDerivers.ts +313 -0
  1024. package/src/typechain-types/seaport_v1_5/contracts/lib/OrderCombiner.ts +313 -0
  1025. package/src/typechain-types/seaport_v1_5/contracts/lib/OrderFulfiller.ts +313 -0
  1026. package/src/typechain-types/seaport_v1_5/contracts/lib/OrderValidator.ts +313 -0
  1027. package/src/typechain-types/seaport_v1_5/contracts/lib/ReentrancyGuard.ts +55 -0
  1028. package/src/typechain-types/seaport_v1_5/contracts/lib/SignatureVerification.ts +55 -0
  1029. package/src/typechain-types/seaport_v1_5/contracts/lib/TokenTransferrer.ts +55 -0
  1030. package/src/typechain-types/seaport_v1_5/contracts/lib/Verifiers.ts +313 -0
  1031. package/src/typechain-types/seaport_v1_5/contracts/lib/ZoneInteraction.ts +55 -0
  1032. package/src/typechain-types/seaport_v1_5/contracts/lib/index.ts +21 -0
  1033. package/src/typechain-types/seaport_v1_5/index.ts +5 -0
  1034. package/src/typechain-types/src/contracts/index.ts +5 -0
  1035. package/src/typechain-types/src/contracts/test/TestERC1155.ts +543 -0
  1036. package/src/typechain-types/src/contracts/test/TestERC20.ts +554 -0
  1037. package/src/typechain-types/src/contracts/test/TestERC20USDC.ts +554 -0
  1038. package/src/typechain-types/src/contracts/test/TestERC721.sol.sol/TestERC721.ts +600 -0
  1039. package/src/typechain-types/src/contracts/test/TestERC721.sol.sol/index.ts +4 -0
  1040. package/src/typechain-types/src/contracts/test/TestERC721.ts +600 -0
  1041. package/src/typechain-types/src/contracts/test/index.ts +7 -0
  1042. package/src/typechain-types/src/index.ts +5 -0
  1043. package/src/types.ts +335 -0
  1044. package/src/utils/approval.ts +103 -0
  1045. package/src/utils/balance.ts +73 -0
  1046. package/src/utils/balanceAndApprovalCheck.ts +436 -0
  1047. package/src/utils/criteria.ts +83 -0
  1048. package/src/utils/eip712/Eip712MerkleTree.ts +128 -0
  1049. package/src/utils/eip712/bulk-orders.ts +62 -0
  1050. package/src/utils/eip712/defaults.ts +113 -0
  1051. package/src/utils/eip712/utils.ts +50 -0
  1052. package/src/utils/fulfill.ts +848 -0
  1053. package/src/utils/gcd.ts +26 -0
  1054. package/src/utils/item.ts +142 -0
  1055. package/src/utils/match.ts +55 -0
  1056. package/src/utils/merkletree.ts +33 -0
  1057. package/src/utils/order.ts +288 -0
  1058. package/src/utils/usecase.ts +124 -0
@@ -0,0 +1 @@
1
+ {"id":"adb0dc5cdbe2af0ab1658ae96afea5af","_format":"hh-sol-build-info-1","solcVersion":"0.8.17","solcLongVersion":"0.8.17+commit.8df45f5f","input":{"language":"Solidity","sources":{"@rari-capital/solmate/src/tokens/ERC20.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0-only\npragma solidity >=0.8.0;\n\n/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.\n/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)\n/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)\n/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.\nabstract contract ERC20 {\n /*//////////////////////////////////////////////////////////////\n EVENTS\n //////////////////////////////////////////////////////////////*/\n\n event Transfer(address indexed from, address indexed to, uint256 amount);\n\n event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n /*//////////////////////////////////////////////////////////////\n METADATA STORAGE\n //////////////////////////////////////////////////////////////*/\n\n string public name;\n\n string public symbol;\n\n uint8 public immutable decimals;\n\n /*//////////////////////////////////////////////////////////////\n ERC20 STORAGE\n //////////////////////////////////////////////////////////////*/\n\n uint256 public totalSupply;\n\n mapping(address => uint256) public balanceOf;\n\n mapping(address => mapping(address => uint256)) public allowance;\n\n /*//////////////////////////////////////////////////////////////\n EIP-2612 STORAGE\n //////////////////////////////////////////////////////////////*/\n\n uint256 internal immutable INITIAL_CHAIN_ID;\n\n bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;\n\n mapping(address => uint256) public nonces;\n\n /*//////////////////////////////////////////////////////////////\n CONSTRUCTOR\n //////////////////////////////////////////////////////////////*/\n\n constructor(\n string memory _name,\n string memory _symbol,\n uint8 _decimals\n ) {\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n\n INITIAL_CHAIN_ID = block.chainid;\n INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();\n }\n\n /*//////////////////////////////////////////////////////////////\n ERC20 LOGIC\n //////////////////////////////////////////////////////////////*/\n\n function approve(address spender, uint256 amount) public virtual returns (bool) {\n allowance[msg.sender][spender] = amount;\n\n emit Approval(msg.sender, spender, amount);\n\n return true;\n }\n\n function transfer(address to, uint256 amount) public virtual returns (bool) {\n balanceOf[msg.sender] -= amount;\n\n // Cannot overflow because the sum of all user\n // balances can't exceed the max uint256 value.\n unchecked {\n balanceOf[to] += amount;\n }\n\n emit Transfer(msg.sender, to, amount);\n\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual returns (bool) {\n uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.\n\n if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;\n\n balanceOf[from] -= amount;\n\n // Cannot overflow because the sum of all user\n // balances can't exceed the max uint256 value.\n unchecked {\n balanceOf[to] += amount;\n }\n\n emit Transfer(from, to, amount);\n\n return true;\n }\n\n /*//////////////////////////////////////////////////////////////\n EIP-2612 LOGIC\n //////////////////////////////////////////////////////////////*/\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) public virtual {\n require(deadline >= block.timestamp, \"PERMIT_DEADLINE_EXPIRED\");\n\n // Unchecked because the only math done is incrementing\n // the owner's nonce which cannot realistically overflow.\n unchecked {\n address recoveredAddress = ecrecover(\n keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR(),\n keccak256(\n abi.encode(\n keccak256(\n \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\"\n ),\n owner,\n spender,\n value,\n nonces[owner]++,\n deadline\n )\n )\n )\n ),\n v,\n r,\n s\n );\n\n require(recoveredAddress != address(0) && recoveredAddress == owner, \"INVALID_SIGNER\");\n\n allowance[recoveredAddress][spender] = value;\n }\n\n emit Approval(owner, spender, value);\n }\n\n function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {\n return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();\n }\n\n function computeDomainSeparator() internal view virtual returns (bytes32) {\n return\n keccak256(\n abi.encode(\n keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"),\n keccak256(bytes(name)),\n keccak256(\"1\"),\n block.chainid,\n address(this)\n )\n );\n }\n\n /*//////////////////////////////////////////////////////////////\n INTERNAL MINT/BURN LOGIC\n //////////////////////////////////////////////////////////////*/\n\n function _mint(address to, uint256 amount) internal virtual {\n totalSupply += amount;\n\n // Cannot overflow because the sum of all user\n // balances can't exceed the max uint256 value.\n unchecked {\n balanceOf[to] += amount;\n }\n\n emit Transfer(address(0), to, amount);\n }\n\n function _burn(address from, uint256 amount) internal virtual {\n balanceOf[from] -= amount;\n\n // Cannot underflow because a user's balance\n // will never be larger than the total supply.\n unchecked {\n totalSupply -= amount;\n }\n\n emit Transfer(from, address(0), amount);\n }\n}\n"},"src/contracts/test/TestERC20USDC.sol":{"content":"//SPDX-License-Identifier: Unlicense\npragma solidity >=0.8.7;\n\nimport \"@rari-capital/solmate/src/tokens/ERC20.sol\";\n\n// Used for minting test USDC (6 decimals) in our tests\ncontract TestERC20USDC is ERC20(\"TestUSDC\", \"TSTUSDC\", 6) {\n bool public blocked;\n\n constructor() {\n blocked = false;\n }\n\n function blockTransfer(bool blocking) external {\n blocked = blocking;\n }\n\n function mint(address to, uint256 amount) external returns (bool) {\n _mint(to, amount);\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public override returns (bool ok) {\n if (blocked) {\n return false;\n }\n\n super.transferFrom(from, to, amount);\n\n ok = true;\n }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@rari-capital/solmate/src/tokens/ERC20.sol":{"ast":{"absolutePath":"@rari-capital/solmate/src/tokens/ERC20.sol","exportedSymbols":{"ERC20":[387]},"id":388,"license":"AGPL-3.0-only","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"42:24:0"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"68:403:0","text":"@notice Modern and gas efficient ERC20 + EIP-2612 implementation.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)\n @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)\n @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it."},"fullyImplemented":true,"id":387,"linearizedBaseContracts":[387],"name":"ERC20","nameLocation":"489:5:0","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":10,"name":"Transfer","nameLocation":"686:8:0","nodeType":"EventDefinition","parameters":{"id":9,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"711:4:0","nodeType":"VariableDeclaration","scope":10,"src":"695:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3,"name":"address","nodeType":"ElementaryTypeName","src":"695:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"733:2:0","nodeType":"VariableDeclaration","scope":10,"src":"717:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5,"name":"address","nodeType":"ElementaryTypeName","src":"717:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"745:6:0","nodeType":"VariableDeclaration","scope":10,"src":"737:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint256","nodeType":"ElementaryTypeName","src":"737:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"694:58:0"},"src":"680:73:0"},{"anonymous":false,"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":18,"name":"Approval","nameLocation":"765:8:0","nodeType":"EventDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"790:5:0","nodeType":"VariableDeclaration","scope":18,"src":"774:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11,"name":"address","nodeType":"ElementaryTypeName","src":"774:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"813:7:0","nodeType":"VariableDeclaration","scope":18,"src":"797:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"830:6:0","nodeType":"VariableDeclaration","scope":18,"src":"822:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"773:64:0"},"src":"759:79:0"},{"constant":false,"functionSelector":"06fdde03","id":20,"mutability":"mutable","name":"name","nameLocation":"1042:4:0","nodeType":"VariableDeclaration","scope":387,"src":"1028:18:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":19,"name":"string","nodeType":"ElementaryTypeName","src":"1028:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"95d89b41","id":22,"mutability":"mutable","name":"symbol","nameLocation":"1067:6:0","nodeType":"VariableDeclaration","scope":387,"src":"1053:20:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":21,"name":"string","nodeType":"ElementaryTypeName","src":"1053:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"313ce567","id":24,"mutability":"immutable","name":"decimals","nameLocation":"1103:8:0","nodeType":"VariableDeclaration","scope":387,"src":"1080:31:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":23,"name":"uint8","nodeType":"ElementaryTypeName","src":"1080:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"public"},{"constant":false,"functionSelector":"18160ddd","id":26,"mutability":"mutable","name":"totalSupply","nameLocation":"1316:11:0","nodeType":"VariableDeclaration","scope":387,"src":"1301:26:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"70a08231","id":30,"mutability":"mutable","name":"balanceOf","nameLocation":"1369:9:0","nodeType":"VariableDeclaration","scope":387,"src":"1334:44:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":29,"keyType":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1334:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":28,"name":"uint256","nodeType":"ElementaryTypeName","src":"1353:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"dd62ed3e","id":36,"mutability":"mutable","name":"allowance","nameLocation":"1440:9:0","nodeType":"VariableDeclaration","scope":387,"src":"1385:64:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":35,"keyType":{"id":31,"name":"address","nodeType":"ElementaryTypeName","src":"1393:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1385:47:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":34,"keyType":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1412:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1404:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":33,"name":"uint256","nodeType":"ElementaryTypeName","src":"1423:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"id":38,"mutability":"immutable","name":"INITIAL_CHAIN_ID","nameLocation":"1667:16:0","nodeType":"VariableDeclaration","scope":387,"src":"1640:43:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37,"name":"uint256","nodeType":"ElementaryTypeName","src":"1640:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40,"mutability":"immutable","name":"INITIAL_DOMAIN_SEPARATOR","nameLocation":"1717:24:0","nodeType":"VariableDeclaration","scope":387,"src":"1690:51:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1690:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"functionSelector":"7ecebe00","id":44,"mutability":"mutable","name":"nonces","nameLocation":"1783:6:0","nodeType":"VariableDeclaration","scope":387,"src":"1748:41:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":43,"keyType":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1748:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":42,"name":"uint256","nodeType":"ElementaryTypeName","src":"1767:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":75,"nodeType":"Block","src":"2081:189:0","statements":[{"expression":{"id":55,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"2091:4:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"2098:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2091:12:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":56,"nodeType":"ExpressionStatement","src":"2091:12:0"},{"expression":{"id":59,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22,"src":"2113:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"2122:7:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2113:16:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":60,"nodeType":"ExpressionStatement","src":"2113:16:0"},{"expression":{"id":63,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"2139:8:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":62,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50,"src":"2150:9:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2139:20:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":64,"nodeType":"ExpressionStatement","src":"2139:20:0"},{"expression":{"id":68,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38,"src":"2170:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":66,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2189:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":67,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2195:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"2189:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2170:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69,"nodeType":"ExpressionStatement","src":"2170:32:0"},{"expression":{"id":73,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"2212:24:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":71,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"2239:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2239:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2212:51:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":74,"nodeType":"ExpressionStatement","src":"2212:51:0"}]},"id":76,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":51,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46,"mutability":"mutable","name":"_name","nameLocation":"2013:5:0","nodeType":"VariableDeclaration","scope":76,"src":"1999:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45,"name":"string","nodeType":"ElementaryTypeName","src":"1999:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":48,"mutability":"mutable","name":"_symbol","nameLocation":"2042:7:0","nodeType":"VariableDeclaration","scope":76,"src":"2028:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47,"name":"string","nodeType":"ElementaryTypeName","src":"2028:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":50,"mutability":"mutable","name":"_decimals","nameLocation":"2065:9:0","nodeType":"VariableDeclaration","scope":76,"src":"2059:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":49,"name":"uint8","nodeType":"ElementaryTypeName","src":"2059:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1989:91:0"},"returnParameters":{"id":52,"nodeType":"ParameterList","parameters":[],"src":"2081:0:0"},"scope":387,"src":"1978:292:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":103,"nodeType":"Block","src":"2538:131:0","statements":[{"expression":{"id":92,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":85,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"2548:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":89,"indexExpression":{"expression":{"id":86,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2558:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2562:6:0","memberName":"sender","nodeType":"MemberAccess","src":"2558:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2548:21:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":90,"indexExpression":{"id":88,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"2570:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2548:30:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":91,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80,"src":"2581:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2548:39:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":93,"nodeType":"ExpressionStatement","src":"2548:39:0"},{"eventCall":{"arguments":[{"expression":{"id":95,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2612:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":96,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2616:6:0","memberName":"sender","nodeType":"MemberAccess","src":"2612:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":97,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"2624:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":98,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80,"src":"2633:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":94,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"2603:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":99,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2603:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100,"nodeType":"EmitStatement","src":"2598:42:0"},{"expression":{"hexValue":"74727565","id":101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2658:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":84,"id":102,"nodeType":"Return","src":"2651:11:0"}]},"functionSelector":"095ea7b3","id":104,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2467:7:0","nodeType":"FunctionDefinition","parameters":{"id":81,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78,"mutability":"mutable","name":"spender","nameLocation":"2483:7:0","nodeType":"VariableDeclaration","scope":104,"src":"2475:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77,"name":"address","nodeType":"ElementaryTypeName","src":"2475:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"amount","nameLocation":"2500:6:0","nodeType":"VariableDeclaration","scope":104,"src":"2492:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79,"name":"uint256","nodeType":"ElementaryTypeName","src":"2492:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2474:33:0"},"returnParameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":104,"src":"2532:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82,"name":"bool","nodeType":"ElementaryTypeName","src":"2532:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2531:6:0"},"scope":387,"src":"2458:211:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":136,"nodeType":"Block","src":"2751:297:0","statements":[{"expression":{"id":118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":113,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"2761:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":116,"indexExpression":{"expression":{"id":114,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2771:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2775:6:0","memberName":"sender","nodeType":"MemberAccess","src":"2771:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2761:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":117,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108,"src":"2786:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2761:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":119,"nodeType":"ExpressionStatement","src":"2761:31:0"},{"id":126,"nodeType":"UncheckedBlock","src":"2914:58:0","statements":[{"expression":{"id":124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":120,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"2938:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":122,"indexExpression":{"id":121,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"2948:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2938:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108,"src":"2955:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2938:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":125,"nodeType":"ExpressionStatement","src":"2938:23:0"}]},{"eventCall":{"arguments":[{"expression":{"id":128,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2996:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3000:6:0","memberName":"sender","nodeType":"MemberAccess","src":"2996:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":130,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"3008:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":131,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108,"src":"3012:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":127,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10,"src":"2987:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2987:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133,"nodeType":"EmitStatement","src":"2982:37:0"},{"expression":{"hexValue":"74727565","id":134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3037:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":112,"id":135,"nodeType":"Return","src":"3030:11:0"}]},"functionSelector":"a9059cbb","id":137,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2684:8:0","nodeType":"FunctionDefinition","parameters":{"id":109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106,"mutability":"mutable","name":"to","nameLocation":"2701:2:0","nodeType":"VariableDeclaration","scope":137,"src":"2693:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105,"name":"address","nodeType":"ElementaryTypeName","src":"2693:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":108,"mutability":"mutable","name":"amount","nameLocation":"2713:6:0","nodeType":"VariableDeclaration","scope":137,"src":"2705:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":107,"name":"uint256","nodeType":"ElementaryTypeName","src":"2705:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2692:28:0"},"returnParameters":{"id":112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":137,"src":"2745:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":110,"name":"bool","nodeType":"ElementaryTypeName","src":"2745:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2744:6:0"},"scope":387,"src":"2675:373:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":197,"nodeType":"Block","src":"3178:468:0","statements":[{"assignments":[149],"declarations":[{"constant":false,"id":149,"mutability":"mutable","name":"allowed","nameLocation":"3196:7:0","nodeType":"VariableDeclaration","scope":197,"src":"3188:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":148,"name":"uint256","nodeType":"ElementaryTypeName","src":"3188:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":156,"initialValue":{"baseExpression":{"baseExpression":{"id":150,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"3206:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":152,"indexExpression":{"id":151,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3216:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3206:15:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":155,"indexExpression":{"expression":{"id":153,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3222:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3226:6:0","memberName":"sender","nodeType":"MemberAccess","src":"3222:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3206:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3188:45:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":157,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"3284:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3300:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":159,"name":"uint256","nodeType":"ElementaryTypeName","src":"3300:7:0","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":158,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3295:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3295:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3309:3:0","memberName":"max","nodeType":"MemberAccess","src":"3295:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3284:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":175,"nodeType":"IfStatement","src":"3280:80:0","trueBody":{"expression":{"id":173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":164,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"3314:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":168,"indexExpression":{"id":165,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3324:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3314:15:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":169,"indexExpression":{"expression":{"id":166,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3330:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3334:6:0","memberName":"sender","nodeType":"MemberAccess","src":"3330:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3314:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":170,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"3344:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":171,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":143,"src":"3354:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3344:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3314:46:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":174,"nodeType":"ExpressionStatement","src":"3314:46:0"}},{"expression":{"id":180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":176,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"3371:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":178,"indexExpression":{"id":177,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3381:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3371:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":179,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":143,"src":"3390:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3371:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":181,"nodeType":"ExpressionStatement","src":"3371:25:0"},{"id":188,"nodeType":"UncheckedBlock","src":"3518:58:0","statements":[{"expression":{"id":186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":182,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"3542:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":184,"indexExpression":{"id":183,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"3552:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3542:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":185,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":143,"src":"3559:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3542:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":187,"nodeType":"ExpressionStatement","src":"3542:23:0"}]},{"eventCall":{"arguments":[{"id":190,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3600:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":191,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"3606:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":192,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":143,"src":"3610:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":189,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10,"src":"3591:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3591:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":194,"nodeType":"EmitStatement","src":"3586:31:0"},{"expression":{"hexValue":"74727565","id":195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3635:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":147,"id":196,"nodeType":"Return","src":"3628:11:0"}]},"functionSelector":"23b872dd","id":198,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3063:12:0","nodeType":"FunctionDefinition","parameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":139,"mutability":"mutable","name":"from","nameLocation":"3093:4:0","nodeType":"VariableDeclaration","scope":198,"src":"3085:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"3085:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":141,"mutability":"mutable","name":"to","nameLocation":"3115:2:0","nodeType":"VariableDeclaration","scope":198,"src":"3107:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":140,"name":"address","nodeType":"ElementaryTypeName","src":"3107:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":143,"mutability":"mutable","name":"amount","nameLocation":"3135:6:0","nodeType":"VariableDeclaration","scope":198,"src":"3127:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":142,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3075:72:0"},"returnParameters":{"id":147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":198,"src":"3172:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":145,"name":"bool","nodeType":"ElementaryTypeName","src":"3172:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3171:6:0"},"scope":387,"src":"3054:592:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":284,"nodeType":"Block","src":"4024:1294:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":216,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":206,"src":"4042:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":217,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4054:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4060:9:0","memberName":"timestamp","nodeType":"MemberAccess","src":"4054:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4042:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5045524d49545f444541444c494e455f45585049524544","id":220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4071:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""},"value":"PERMIT_DEADLINE_EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""}],"id":215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4034:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4034:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":222,"nodeType":"ExpressionStatement","src":"4034:63:0"},{"id":277,"nodeType":"UncheckedBlock","src":"4238:1027:0","statements":[{"assignments":[224],"declarations":[{"constant":false,"id":224,"mutability":"mutable","name":"recoveredAddress","nameLocation":"4270:16:0","nodeType":"VariableDeclaration","scope":277,"src":"4262:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":223,"name":"address","nodeType":"ElementaryTypeName","src":"4262:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":254,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"1901","id":229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4389:10:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":230,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4425:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4425:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529","id":236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4599:84:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""},"value":"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""}],"id":235,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4552:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4552:165:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"4751:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":239,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":202,"src":"4790:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"4831:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4870:15:0","subExpression":{"baseExpression":{"id":241,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"4870:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":243,"indexExpression":{"id":242,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"4877:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4870:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":245,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":206,"src":"4919:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":233,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4508:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4512:6:0","memberName":"encode","nodeType":"MemberAccess","src":"4508:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4508:449:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":232,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4469:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4469:514:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":227,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4347:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4351:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"4347:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4347:658:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":226,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4316:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4316:707:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":250,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"5041:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":251,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":210,"src":"5060:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":252,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":212,"src":"5079:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":225,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"4289:9:0","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4289:805:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4262:832:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":256,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":224,"src":"5117:16:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5145:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5137:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":257,"name":"address","nodeType":"ElementaryTypeName","src":"5137:7:0","typeDescriptions":{}}},"id":260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5137:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5117:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":262,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":224,"src":"5151:16:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":263,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"5171:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5151:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5117:59:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4552","id":266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5178:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""},"value":"INVALID_SIGNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""}],"id":255,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5109:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5109:86:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":268,"nodeType":"ExpressionStatement","src":"5109:86:0"},{"expression":{"id":275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":269,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"5210:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":272,"indexExpression":{"id":270,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":224,"src":"5220:16:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5210:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":273,"indexExpression":{"id":271,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":202,"src":"5238:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5210:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":274,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"5249:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5210:44:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":276,"nodeType":"ExpressionStatement","src":"5210:44:0"}]},{"eventCall":{"arguments":[{"id":279,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"5289:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":280,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":202,"src":"5296:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":281,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"5305:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":278,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"5280:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5280:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":283,"nodeType":"EmitStatement","src":"5275:36:0"}]},"functionSelector":"d505accf","id":285,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"3844:6:0","nodeType":"FunctionDefinition","parameters":{"id":213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":200,"mutability":"mutable","name":"owner","nameLocation":"3868:5:0","nodeType":"VariableDeclaration","scope":285,"src":"3860:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":199,"name":"address","nodeType":"ElementaryTypeName","src":"3860:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":202,"mutability":"mutable","name":"spender","nameLocation":"3891:7:0","nodeType":"VariableDeclaration","scope":285,"src":"3883:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":201,"name":"address","nodeType":"ElementaryTypeName","src":"3883:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":204,"mutability":"mutable","name":"value","nameLocation":"3916:5:0","nodeType":"VariableDeclaration","scope":285,"src":"3908:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":203,"name":"uint256","nodeType":"ElementaryTypeName","src":"3908:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":206,"mutability":"mutable","name":"deadline","nameLocation":"3939:8:0","nodeType":"VariableDeclaration","scope":285,"src":"3931:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":205,"name":"uint256","nodeType":"ElementaryTypeName","src":"3931:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":208,"mutability":"mutable","name":"v","nameLocation":"3963:1:0","nodeType":"VariableDeclaration","scope":285,"src":"3957:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":207,"name":"uint8","nodeType":"ElementaryTypeName","src":"3957:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":210,"mutability":"mutable","name":"r","nameLocation":"3982:1:0","nodeType":"VariableDeclaration","scope":285,"src":"3974:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3974:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":212,"mutability":"mutable","name":"s","nameLocation":"4001:1:0","nodeType":"VariableDeclaration","scope":285,"src":"3993:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3993:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3850:158:0"},"returnParameters":{"id":214,"nodeType":"ParameterList","parameters":[],"src":"4024:0:0"},"scope":387,"src":"3835:1483:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":299,"nodeType":"Block","src":"5390:111:0","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":290,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5407:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5413:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"5407:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":292,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38,"src":"5424:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5407:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":295,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5470:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5470:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5407:87:0","trueExpression":{"id":294,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"5443:24:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":289,"id":298,"nodeType":"Return","src":"5400:94:0"}]},"functionSelector":"3644e515","id":300,"implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"5333:16:0","nodeType":"FunctionDefinition","parameters":{"id":286,"nodeType":"ParameterList","parameters":[],"src":"5349:2:0"},"returnParameters":{"id":289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":288,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":300,"src":"5381:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5381:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5380:9:0"},"scope":387,"src":"5324:177:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":329,"nodeType":"Block","src":"5581:372:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5679:84:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":308,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5669:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5669:95:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":314,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"5802:4:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5796:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":312,"name":"bytes","nodeType":"ElementaryTypeName","src":"5796:5:0","typeDescriptions":{}}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5796:11:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":311,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5786:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5786:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"31","id":318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5840:3:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":317,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5830:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":320,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5866:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5872:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"5866:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":324,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5909:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$387","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$387","typeString":"contract ERC20"}],"id":323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5901:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":322,"name":"address","nodeType":"ElementaryTypeName","src":"5901:7:0","typeDescriptions":{}}},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5901:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":306,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5637:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5641:6:0","memberName":"encode","nodeType":"MemberAccess","src":"5637:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5637:295:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":305,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5610:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5610:336:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":304,"id":328,"nodeType":"Return","src":"5591:355:0"}]},"id":330,"implemented":true,"kind":"function","modifiers":[],"name":"computeDomainSeparator","nameLocation":"5516:22:0","nodeType":"FunctionDefinition","parameters":{"id":301,"nodeType":"ParameterList","parameters":[],"src":"5538:2:0"},"returnParameters":{"id":304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":330,"src":"5572:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5572:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5571:9:0"},"scope":387,"src":"5507:446:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":357,"nodeType":"Block","src":"6207:265:0","statements":[{"expression":{"id":339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":337,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"6217:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":338,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"6232:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6217:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":340,"nodeType":"ExpressionStatement","src":"6217:21:0"},{"id":347,"nodeType":"UncheckedBlock","src":"6360:58:0","statements":[{"expression":{"id":345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":341,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"6384:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":343,"indexExpression":{"id":342,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"6394:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6384:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":344,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"6401:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6384:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":346,"nodeType":"ExpressionStatement","src":"6384:23:0"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6450:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6442:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":349,"name":"address","nodeType":"ElementaryTypeName","src":"6442:7:0","typeDescriptions":{}}},"id":352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6442:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":353,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"6454:2:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":354,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"6458:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":348,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10,"src":"6433:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6433:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":356,"nodeType":"EmitStatement","src":"6428:37:0"}]},"id":358,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"6156:5:0","nodeType":"FunctionDefinition","parameters":{"id":335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":332,"mutability":"mutable","name":"to","nameLocation":"6170:2:0","nodeType":"VariableDeclaration","scope":358,"src":"6162:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":331,"name":"address","nodeType":"ElementaryTypeName","src":"6162:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":334,"mutability":"mutable","name":"amount","nameLocation":"6182:6:0","nodeType":"VariableDeclaration","scope":358,"src":"6174:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":333,"name":"uint256","nodeType":"ElementaryTypeName","src":"6174:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6161:28:0"},"returnParameters":{"id":336,"nodeType":"ParameterList","parameters":[],"src":"6207:0:0"},"scope":387,"src":"6147:325:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":385,"nodeType":"Block","src":"6540:266:0","statements":[{"expression":{"id":369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":365,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"6550:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":367,"indexExpression":{"id":366,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"6560:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6550:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":368,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"6569:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6550:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":370,"nodeType":"ExpressionStatement","src":"6550:25:0"},{"id":375,"nodeType":"UncheckedBlock","src":"6694:56:0","statements":[{"expression":{"id":373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":371,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"6718:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":372,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"6733:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6718:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":374,"nodeType":"ExpressionStatement","src":"6718:21:0"}]},{"eventCall":{"arguments":[{"id":377,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"6774:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6788:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6780:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":378,"name":"address","nodeType":"ElementaryTypeName","src":"6780:7:0","typeDescriptions":{}}},"id":381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6780:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":382,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"6792:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":376,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10,"src":"6765:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":384,"nodeType":"EmitStatement","src":"6760:39:0"}]},"id":386,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"6487:5:0","nodeType":"FunctionDefinition","parameters":{"id":363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":360,"mutability":"mutable","name":"from","nameLocation":"6501:4:0","nodeType":"VariableDeclaration","scope":386,"src":"6493:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":359,"name":"address","nodeType":"ElementaryTypeName","src":"6493:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":362,"mutability":"mutable","name":"amount","nameLocation":"6515:6:0","nodeType":"VariableDeclaration","scope":386,"src":"6507:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":361,"name":"uint256","nodeType":"ElementaryTypeName","src":"6507:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6492:30:0"},"returnParameters":{"id":364,"nodeType":"ParameterList","parameters":[],"src":"6540:0:0"},"scope":387,"src":"6478:328:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":388,"src":"471:6337:0","usedErrors":[]}],"src":"42:6767:0"},"id":0},"src/contracts/test/TestERC20USDC.sol":{"ast":{"absolutePath":"src/contracts/test/TestERC20USDC.sol","exportedSymbols":{"ERC20":[387],"TestERC20USDC":[463]},"id":464,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":389,"literals":["solidity",">=","0.8",".7"],"nodeType":"PragmaDirective","src":"37:24:1"},{"absolutePath":"@rari-capital/solmate/src/tokens/ERC20.sol","file":"@rari-capital/solmate/src/tokens/ERC20.sol","id":390,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":464,"sourceUnit":388,"src":"63:52:1","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"5465737455534443","id":392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"205:10:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_57929ecf232c02ddcaf4c761e28b93b3a83f732e8bcc9b89c7753e283fb13e1c","typeString":"literal_string \"TestUSDC\""},"value":"TestUSDC"},{"hexValue":"54535455534443","id":393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"217:9:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_052b52cc02f7d04b3c2c9acbc033addec7bbb103ad7525109d2acd69144a20ec","typeString":"literal_string \"TSTUSDC\""},"value":"TSTUSDC"},{"hexValue":"36","id":394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"228:1:1","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"baseName":{"id":391,"name":"ERC20","nameLocations":["199:5:1"],"nodeType":"IdentifierPath","referencedDeclaration":387,"src":"199:5:1"},"id":395,"nodeType":"InheritanceSpecifier","src":"199:31:1"}],"canonicalName":"TestERC20USDC","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":463,"linearizedBaseContracts":[463,387],"name":"TestERC20USDC","nameLocation":"182:13:1","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"303bdd2c","id":397,"mutability":"mutable","name":"blocked","nameLocation":"249:7:1","nodeType":"VariableDeclaration","scope":463,"src":"237:19:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":396,"name":"bool","nodeType":"ElementaryTypeName","src":"237:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"body":{"id":404,"nodeType":"Block","src":"277:32:1","statements":[{"expression":{"id":402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":400,"name":"blocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":397,"src":"287:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"297:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"287:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":403,"nodeType":"ExpressionStatement","src":"287:15:1"}]},"id":405,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":398,"nodeType":"ParameterList","parameters":[],"src":"274:2:1"},"returnParameters":{"id":399,"nodeType":"ParameterList","parameters":[],"src":"277:0:1"},"scope":463,"src":"263:46:1","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":414,"nodeType":"Block","src":"362:35:1","statements":[{"expression":{"id":412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":410,"name":"blocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":397,"src":"372:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":411,"name":"blocking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"382:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"372:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":413,"nodeType":"ExpressionStatement","src":"372:18:1"}]},"functionSelector":"e074d6a9","id":415,"implemented":true,"kind":"function","modifiers":[],"name":"blockTransfer","nameLocation":"324:13:1","nodeType":"FunctionDefinition","parameters":{"id":408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":407,"mutability":"mutable","name":"blocking","nameLocation":"343:8:1","nodeType":"VariableDeclaration","scope":415,"src":"338:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":406,"name":"bool","nodeType":"ElementaryTypeName","src":"338:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"337:15:1"},"returnParameters":{"id":409,"nodeType":"ParameterList","parameters":[],"src":"362:0:1"},"scope":463,"src":"315:82:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":431,"nodeType":"Block","src":"469:55:1","statements":[{"expression":{"arguments":[{"id":425,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"485:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":426,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":419,"src":"489:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":424,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":358,"src":"479:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"479:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":428,"nodeType":"ExpressionStatement","src":"479:17:1"},{"expression":{"hexValue":"74727565","id":429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"513:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":423,"id":430,"nodeType":"Return","src":"506:11:1"}]},"functionSelector":"40c10f19","id":432,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"412:4:1","nodeType":"FunctionDefinition","parameters":{"id":420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":417,"mutability":"mutable","name":"to","nameLocation":"425:2:1","nodeType":"VariableDeclaration","scope":432,"src":"417:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":416,"name":"address","nodeType":"ElementaryTypeName","src":"417:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":419,"mutability":"mutable","name":"amount","nameLocation":"437:6:1","nodeType":"VariableDeclaration","scope":432,"src":"429:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":418,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"416:28:1"},"returnParameters":{"id":423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":432,"src":"463:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":421,"name":"bool","nodeType":"ElementaryTypeName","src":"463:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"462:6:1"},"scope":463,"src":"403:121:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[198],"body":{"id":461,"nodeType":"Block","src":"658:133:1","statements":[{"condition":{"id":444,"name":"blocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":397,"src":"672:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":448,"nodeType":"IfStatement","src":"668:50:1","trueBody":{"id":447,"nodeType":"Block","src":"681:37:1","statements":[{"expression":{"hexValue":"66616c7365","id":445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"702:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":443,"id":446,"nodeType":"Return","src":"695:12:1"}]}},{"expression":{"arguments":[{"id":452,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":434,"src":"747:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":453,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"753:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":454,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":438,"src":"757:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":449,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"728:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TestERC20USDC_$463_$","typeString":"type(contract super TestERC20USDC)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"734:12:1","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":198,"src":"728:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":456,"nodeType":"ExpressionStatement","src":"728:36:1"},{"expression":{"id":459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":457,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"775:2:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"780:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"775:9:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":460,"nodeType":"ExpressionStatement","src":"775:9:1"}]},"functionSelector":"23b872dd","id":462,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"539:12:1","nodeType":"FunctionDefinition","overrides":{"id":440,"nodeType":"OverrideSpecifier","overrides":[],"src":"631:8:1"},"parameters":{"id":439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":434,"mutability":"mutable","name":"from","nameLocation":"569:4:1","nodeType":"VariableDeclaration","scope":462,"src":"561:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":433,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":436,"mutability":"mutable","name":"to","nameLocation":"591:2:1","nodeType":"VariableDeclaration","scope":462,"src":"583:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":435,"name":"address","nodeType":"ElementaryTypeName","src":"583:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":438,"mutability":"mutable","name":"amount","nameLocation":"611:6:1","nodeType":"VariableDeclaration","scope":462,"src":"603:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":437,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"551:72:1"},"returnParameters":{"id":443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":442,"mutability":"mutable","name":"ok","nameLocation":"654:2:1","nodeType":"VariableDeclaration","scope":462,"src":"649:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":441,"name":"bool","nodeType":"ElementaryTypeName","src":"649:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"648:9:1"},"scope":463,"src":"530:261:1","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":464,"src":"173:620:1","usedErrors":[]}],"src":"37:757:1"},"id":1}},"contracts":{"@rari-capital/solmate/src/tokens/ERC20.sol":{"ERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)\",\"details\":\"Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Modern and gas efficient ERC20 + EIP-2612 implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@rari-capital/solmate/src/tokens/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@rari-capital/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x0240f7703cff32a61ee3e9fbb339e09a944260432a9ef37debf3692b1a6c8049\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2d8b0c0158b1952a87c327d506a645040924a94c8f9f937184659f8a8e3b0759\",\"dweb:/ipfs/QmZ9rGdkjRCk8zfr4xeH7Jh88tkWJNt9LvG1o2GcCm7Uqa\"]}},\"version\":1}"}},"src/contracts/test/TestERC20USDC.sol":{"TestERC20USDC":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"blocking","type":"bool"}],"name":"blockTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"ok","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_405":{"entryPoint":null,"id":405,"parameterSlots":0,"returnSlots":0},"@_76":{"entryPoint":null,"id":76,"parameterSlots":3,"returnSlots":0},"@computeDomainSeparator_330":{"entryPoint":161,"id":330,"parameterSlots":0,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_storage_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":686,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":399,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":482,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":339,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":317,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4075:2","statements":[{"nodeType":"YulBlock","src":"6:3:2","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:2","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:2","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:2","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:2"},"nodeType":"YulFunctionCall","src":"66:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:2"},"nodeType":"YulFunctionCall","src":"56:31:2"},"nodeType":"YulExpressionStatement","src":"56:31:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:2","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:2"},"nodeType":"YulFunctionCall","src":"96:15:2"},"nodeType":"YulExpressionStatement","src":"96:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:2"},"nodeType":"YulFunctionCall","src":"120:15:2"},"nodeType":"YulExpressionStatement","src":"120:15:2"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:2"},{"body":{"nodeType":"YulBlock","src":"201:325:2","statements":[{"nodeType":"YulAssignment","src":"211:22:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:2","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:2"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:2"},"nodeType":"YulFunctionCall","src":"221:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:2"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:2","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:2","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:2"},"nodeType":"YulFunctionCall","src":"268:12:2"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:2","statements":[{"nodeType":"YulAssignment","src":"321:27:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:2","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:2"},"nodeType":"YulFunctionCall","src":"331:17:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:2"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:2"},"nodeType":"YulFunctionCall","src":"292:26:2"},"nodeType":"YulIf","src":"289:61:2"},{"body":{"nodeType":"YulBlock","src":"409:111:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:2","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:2","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:2","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:2"},"nodeType":"YulFunctionCall","src":"433:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:2"},"nodeType":"YulFunctionCall","src":"423:31:2"},"nodeType":"YulExpressionStatement","src":"423:31:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:2","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:2"},"nodeType":"YulFunctionCall","src":"467:15:2"},"nodeType":"YulExpressionStatement","src":"467:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:2"},"nodeType":"YulFunctionCall","src":"495:15:2"},"nodeType":"YulExpressionStatement","src":"495:15:2"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:2","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:2"},"nodeType":"YulFunctionCall","src":"385:14:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:2"},"nodeType":"YulFunctionCall","src":"362:38:2"},"nodeType":"YulIf","src":"359:161:2"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:2","type":""}],"src":"146:380:2"},{"body":{"nodeType":"YulBlock","src":"587:65:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:2","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:2"},"nodeType":"YulFunctionCall","src":"597:14:2"},"nodeType":"YulExpressionStatement","src":"597:14:2"},{"nodeType":"YulAssignment","src":"620:26:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:2","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:2"},"nodeType":"YulFunctionCall","src":"628:18:2"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:2"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:2","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:2","type":""}],"src":"531:121:2"},{"body":{"nodeType":"YulBlock","src":"738:464:2","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:2","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:2","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:2","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:2","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:2"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:2"},"nodeType":"YulFunctionCall","src":"809:17:2"},"nodeType":"YulExpressionStatement","src":"809:17:2"},{"nodeType":"YulVariableDeclaration","src":"839:31:2","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:2"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:2","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:2"},"nodeType":"YulFunctionCall","src":"851:19:2"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:2","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:2","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:2"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:2","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:2"},"nodeType":"YulFunctionCall","src":"919:19:2"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:2"},"nodeType":"YulFunctionCall","src":"912:27:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:2"},"nodeType":"YulFunctionCall","src":"902:38:2"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:2","statements":[{"nodeType":"YulAssignment","src":"979:19:2","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:2"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:2"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:2"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:2","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:2"},"nodeType":"YulFunctionCall","src":"956:20:2"},"nodeType":"YulIf","src":"953:47:2"},{"nodeType":"YulVariableDeclaration","src":"1013:41:2","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:2","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:2","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:2"},"nodeType":"YulFunctionCall","src":"1040:12:2"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:2"},"nodeType":"YulFunctionCall","src":"1033:20:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:2"},"nodeType":"YulFunctionCall","src":"1023:31:2"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:2","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:2"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:2","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:2"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:2"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:2"},"nodeType":"YulFunctionCall","src":"1167:17:2"},"nodeType":"YulExpressionStatement","src":"1167:17:2"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:2"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:2"},"nodeType":"YulFunctionCall","src":"1112:13:2"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:2","statements":[{"nodeType":"YulAssignment","src":"1128:22:2","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:2","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:2"},"nodeType":"YulFunctionCall","src":"1137:13:2"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:2"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:2","statements":[]},"src":"1104:82:2"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:2","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:2"},"nodeType":"YulFunctionCall","src":"751:11:2"},"nodeType":"YulIf","src":"748:448:2"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:2","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:2","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:2","type":""}],"src":"657:545:2"},{"body":{"nodeType":"YulBlock","src":"1292:81:2","statements":[{"nodeType":"YulAssignment","src":"1302:65:2","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:2"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:2","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:2"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:2"},"nodeType":"YulFunctionCall","src":"1331:11:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:2","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:2"},"nodeType":"YulFunctionCall","src":"1344:6:2"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:2"},"nodeType":"YulFunctionCall","src":"1327:24:2"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:2"},"nodeType":"YulFunctionCall","src":"1323:29:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:2"},"nodeType":"YulFunctionCall","src":"1313:40:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:2","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:2"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:2"},"nodeType":"YulFunctionCall","src":"1355:11:2"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:2"},"nodeType":"YulFunctionCall","src":"1310:57:2"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:2"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:2","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:2","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:2","type":""}],"src":"1207:166:2"},{"body":{"nodeType":"YulBlock","src":"1474:1256:2","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:2","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:2"},"nodeType":"YulFunctionCall","src":"1498:10:2"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:2"},"nodeType":"YulFunctionCall","src":"1553:18:2"},"nodeType":"YulExpressionStatement","src":"1553:18:2"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:2"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:2","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:2","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:2"},"nodeType":"YulFunctionCall","src":"1535:10:2"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:2","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:2"},"nodeType":"YulFunctionCall","src":"1531:18:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:2"},"nodeType":"YulFunctionCall","src":"1520:30:2"},"nodeType":"YulIf","src":"1517:56:2"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:2"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:2"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:2"},"nodeType":"YulFunctionCall","src":"1658:11:2"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:2"},"nodeType":"YulFunctionCall","src":"1632:38:2"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:2"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:2"},"nodeType":"YulFunctionCall","src":"1582:97:2"},"nodeType":"YulExpressionStatement","src":"1582:97:2"},{"nodeType":"YulVariableDeclaration","src":"1688:18:2","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:2","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:2","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:2","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:2","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:2","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:2"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:2"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:2","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:2","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:2","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:2"},"nodeType":"YulFunctionCall","src":"1858:7:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:2"},"nodeType":"YulFunctionCall","src":"1846:20:2"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:2","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:2"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:2"},"nodeType":"YulFunctionCall","src":"1893:35:2"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:2","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:2","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:2","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:2"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:2"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:2"},"nodeType":"YulFunctionCall","src":"2067:19:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:2"},"nodeType":"YulFunctionCall","src":"2061:26:2"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:2"},"nodeType":"YulFunctionCall","src":"2046:42:2"},"nodeType":"YulExpressionStatement","src":"2046:42:2"},{"nodeType":"YulAssignment","src":"2105:24:2","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:2","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:2"},"nodeType":"YulFunctionCall","src":"2115:14:2"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:2"}]},{"nodeType":"YulAssignment","src":"2146:40:2","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:2"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:2"},"nodeType":"YulFunctionCall","src":"2159:27:2"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:2"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:2"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:2"},"nodeType":"YulFunctionCall","src":"1972:14:2"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:2","statements":[{"nodeType":"YulAssignment","src":"1989:24:2","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:2"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:2"},"nodeType":"YulFunctionCall","src":"1994:19:2"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:2"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:2","statements":[]},"src":"1964:236:2"},{"body":{"nodeType":"YulBlock","src":"2248:166:2","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:2","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:2"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:2"},"nodeType":"YulFunctionCall","src":"2289:19:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:2"},"nodeType":"YulFunctionCall","src":"2283:26:2"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:2","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:2"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:2"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:2","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:2"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:2"},"nodeType":"YulFunctionCall","src":"2368:14:2"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:2","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:2"},"nodeType":"YulFunctionCall","src":"2364:24:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:2","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:2"},"nodeType":"YulFunctionCall","src":"2390:6:2"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:2"},"nodeType":"YulFunctionCall","src":"2360:37:2"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:2"},"nodeType":"YulFunctionCall","src":"2356:42:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:2"},"nodeType":"YulFunctionCall","src":"2341:58:2"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:2"},"nodeType":"YulFunctionCall","src":"2326:74:2"},"nodeType":"YulExpressionStatement","src":"2326:74:2"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:2"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:2"},"nodeType":"YulFunctionCall","src":"2216:19:2"},"nodeType":"YulIf","src":"2213:201:2"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:2"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:2","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:2"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:2"},"nodeType":"YulFunctionCall","src":"2444:14:2"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:2","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:2"},"nodeType":"YulFunctionCall","src":"2440:22:2"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:2"},"nodeType":"YulFunctionCall","src":"2427:36:2"},"nodeType":"YulExpressionStatement","src":"2427:36:2"}]},"nodeType":"YulCase","src":"1810:663:2","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:2","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:2","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:2","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:2","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:2","statements":[{"nodeType":"YulAssignment","src":"2571:35:2","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:2"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:2"},"nodeType":"YulFunctionCall","src":"2586:19:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:2"},"nodeType":"YulFunctionCall","src":"2580:26:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:2"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:2"},"nodeType":"YulIf","src":"2531:89:2"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:2"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:2"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:2"},"nodeType":"YulFunctionCall","src":"2646:67:2"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:2"},"nodeType":"YulFunctionCall","src":"2633:81:2"},"nodeType":"YulExpressionStatement","src":"2633:81:2"}]},"nodeType":"YulCase","src":"2482:242:2","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:2","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:2"},"nodeType":"YulFunctionCall","src":"1787:14:2"},"nodeType":"YulSwitch","src":"1780:944:2"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:2","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:2","type":""}],"src":"1378:1352:2"},{"body":{"nodeType":"YulBlock","src":"2873:706:2","statements":[{"nodeType":"YulVariableDeclaration","src":"2883:12:2","value":{"kind":"number","nodeType":"YulLiteral","src":"2894:1:2","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"2887:3:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2904:30:2","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2927:6:2"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2921:5:2"},"nodeType":"YulFunctionCall","src":"2921:13:2"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"2908:9:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2943:50:2","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"2983:9:2"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"2957:25:2"},"nodeType":"YulFunctionCall","src":"2957:36:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2947:6:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3002:11:2","value":{"kind":"number","nodeType":"YulLiteral","src":"3012:1:2","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3006:2:2","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3063:126:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3084:3:2"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"3093:9:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3108:3:2","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3104:3:2"},"nodeType":"YulFunctionCall","src":"3104:8:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3089:3:2"},"nodeType":"YulFunctionCall","src":"3089:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3077:6:2"},"nodeType":"YulFunctionCall","src":"3077:37:2"},"nodeType":"YulExpressionStatement","src":"3077:37:2"},{"nodeType":"YulAssignment","src":"3127:52:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3138:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3147:6:2"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3169:6:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3162:6:2"},"nodeType":"YulFunctionCall","src":"3162:14:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3155:6:2"},"nodeType":"YulFunctionCall","src":"3155:22:2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3143:3:2"},"nodeType":"YulFunctionCall","src":"3143:35:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3134:3:2"},"nodeType":"YulFunctionCall","src":"3134:45:2"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"3127:3:2"}]}]},"nodeType":"YulCase","src":"3056:133:2","value":{"kind":"number","nodeType":"YulLiteral","src":"3061:1:2","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"3205:349:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3226:1:2","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"3229:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3219:6:2"},"nodeType":"YulFunctionCall","src":"3219:17:2"},"nodeType":"YulExpressionStatement","src":"3219:17:2"},{"nodeType":"YulVariableDeclaration","src":"3249:14:2","value":{"kind":"number","nodeType":"YulLiteral","src":"3259:4:2","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3253:2:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3276:31:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3301:1:2","type":"","value":"0"},{"name":"_2","nodeType":"YulIdentifier","src":"3304:2:2"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"3291:9:2"},"nodeType":"YulFunctionCall","src":"3291:16:2"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"3280:7:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3320:10:2","value":{"kind":"number","nodeType":"YulLiteral","src":"3329:1:2","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3324:1:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3397:111:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3426:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"3431:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3422:3:2"},"nodeType":"YulFunctionCall","src":"3422:11:2"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"3441:7:2"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3435:5:2"},"nodeType":"YulFunctionCall","src":"3435:14:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3415:6:2"},"nodeType":"YulFunctionCall","src":"3415:35:2"},"nodeType":"YulExpressionStatement","src":"3415:35:2"},{"nodeType":"YulAssignment","src":"3467:27:2","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"3482:7:2"},{"name":"_1","nodeType":"YulIdentifier","src":"3491:2:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3478:3:2"},"nodeType":"YulFunctionCall","src":"3478:16:2"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"3467:7:2"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3354:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"3357:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3351:2:2"},"nodeType":"YulFunctionCall","src":"3351:13:2"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3365:19:2","statements":[{"nodeType":"YulAssignment","src":"3367:15:2","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3376:1:2"},{"name":"_2","nodeType":"YulIdentifier","src":"3379:2:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3372:3:2"},"nodeType":"YulFunctionCall","src":"3372:10:2"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3367:1:2"}]}]},"pre":{"nodeType":"YulBlock","src":"3347:3:2","statements":[]},"src":"3343:165:2"},{"nodeType":"YulAssignment","src":"3521:23:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3532:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"3537:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3528:3:2"},"nodeType":"YulFunctionCall","src":"3528:16:2"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"3521:3:2"}]}]},"nodeType":"YulCase","src":"3198:356:2","value":{"kind":"number","nodeType":"YulLiteral","src":"3203:1:2","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"3033:9:2"},{"name":"_1","nodeType":"YulIdentifier","src":"3044:2:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3029:3:2"},"nodeType":"YulFunctionCall","src":"3029:18:2"},"nodeType":"YulSwitch","src":"3022:532:2"},{"nodeType":"YulAssignment","src":"3563:10:2","value":{"name":"ret","nodeType":"YulIdentifier","src":"3570:3:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3563:3:2"}]}]},"name":"abi_encode_tuple_packed_t_bytes_storage_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2849:3:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2854:6:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2865:3:2","type":""}],"src":"2735:844:2"},{"body":{"nodeType":"YulBlock","src":"3797:276:2","statements":[{"nodeType":"YulAssignment","src":"3807:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3819:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3830:3:2","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3815:3:2"},"nodeType":"YulFunctionCall","src":"3815:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3807:4:2"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3850:9:2"},{"name":"value0","nodeType":"YulIdentifier","src":"3861:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3843:6:2"},"nodeType":"YulFunctionCall","src":"3843:25:2"},"nodeType":"YulExpressionStatement","src":"3843:25:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3888:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3899:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3884:3:2"},"nodeType":"YulFunctionCall","src":"3884:18:2"},{"name":"value1","nodeType":"YulIdentifier","src":"3904:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3877:6:2"},"nodeType":"YulFunctionCall","src":"3877:34:2"},"nodeType":"YulExpressionStatement","src":"3877:34:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3931:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3942:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3927:3:2"},"nodeType":"YulFunctionCall","src":"3927:18:2"},{"name":"value2","nodeType":"YulIdentifier","src":"3947:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3920:6:2"},"nodeType":"YulFunctionCall","src":"3920:34:2"},"nodeType":"YulExpressionStatement","src":"3920:34:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3974:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3985:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3970:3:2"},"nodeType":"YulFunctionCall","src":"3970:18:2"},{"name":"value3","nodeType":"YulIdentifier","src":"3990:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3963:6:2"},"nodeType":"YulFunctionCall","src":"3963:34:2"},"nodeType":"YulExpressionStatement","src":"3963:34:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4017:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4028:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4013:3:2"},"nodeType":"YulFunctionCall","src":"4013:19:2"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4038:6:2"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4054:3:2","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4059:1:2","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4050:3:2"},"nodeType":"YulFunctionCall","src":"4050:11:2"},{"kind":"number","nodeType":"YulLiteral","src":"4063:1:2","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4046:3:2"},"nodeType":"YulFunctionCall","src":"4046:19:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4034:3:2"},"nodeType":"YulFunctionCall","src":"4034:32:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4006:6:2"},"nodeType":"YulFunctionCall","src":"4006:61:2"},"nodeType":"YulExpressionStatement","src":"4006:61:2"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3734:9:2","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3745:6:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3753:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3761:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3769:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3777:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3788:4:2","type":""}],"src":"3584:489:2"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_packed_t_bytes_storage_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n let _1 := 1\n switch and(slotValue, _1)\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n mstore(0, value0)\n let _2 := 0x20\n let dataPos := keccak256(0, _2)\n let i := 0\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n end := ret\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n }\n}","id":2,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e06040523480156200001157600080fd5b5060405180604001604052806008815260200167546573745553444360c01b815250604051806040016040528060078152602001665453545553444360c81b81525060068260009081620000669190620001e2565b506001620000758382620001e2565b5060ff81166080524660a0526200008b620000a1565b60c05250506006805460ff19169055506200032c565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620000d59190620002ae565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200016857607f821691505b6020821081036200018957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001dd57600081815260208120601f850160051c81016020861015620001b85750805b601f850160051c820191505b81811015620001d957828155600101620001c4565b5050505b505050565b81516001600160401b03811115620001fe57620001fe6200013d565b62000216816200020f845462000153565b846200018f565b602080601f8311600181146200024e5760008415620002355750858301515b600019600386901b1c1916600185901b178555620001d9565b600085815260208120601f198616915b828110156200027f578886015182559484019460019091019084016200025e565b50858210156200029e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354620002be8162000153565b60018281168015620002d95760018114620002ef5762000320565b60ff198416875282151583028701945062000320565b8760005260208060002060005b85811015620003175781548a820152908401908201620002fc565b50505082870194505b50929695505050505050565b60805160a05160c051610bde6200035c60003960006103e4015260006103af015260006101770152610bde6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f1911610097578063a9059cbb11610066578063a9059cbb1461020e578063d505accf14610221578063dd62ed3e14610236578063e074d6a91461026157600080fd5b806340c10f19146101b357806370a08231146101c65780637ecebe00146101e657806395d89b411461020657600080fd5b806323b872dd116100d357806323b872dd14610152578063303bdd2c14610165578063313ce567146101725780633644e515146101ab57600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b610102610282565b60405161010f91906108e0565b60405180910390f35b61012b61012636600461094a565b610310565b604051901515815260200161010f565b61014460025481565b60405190815260200161010f565b61012b610160366004610974565b61037d565b60065461012b9060ff1681565b6101997f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161010f565b6101446103ab565b61012b6101c136600461094a565b610406565b6101446101d43660046109b0565b60036020526000908152604090205481565b6101446101f43660046109b0565b60056020526000908152604090205481565b61010261041b565b61012b61021c36600461094a565b610428565b61023461022f3660046109cb565b6104a0565b005b610144610244366004610a3e565b600460209081526000928352604080842090915290825290205481565b61023461026f366004610a71565b6006805460ff1916911515919091179055565b6000805461028f90610a93565b80601f01602080910402602001604051908101604052809291908181526020018280546102bb90610a93565b80156103085780601f106102dd57610100808354040283529160200191610308565b820191906000526020600020905b8154815290600101906020018083116102eb57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061036b9086815260200190565b60405180910390a35060015b92915050565b60065460009060ff1615610393575060006103a4565b61039e8484846106e9565b50600190505b9392505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146103e1576103dc6107db565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b60006104128383610875565b50600192915050565b6001805461028f90610a93565b33600090815260036020526040812080548391908390610449908490610ae3565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061036b9086815260200190565b428410156104f55760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b600060016105016103ab565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561060d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106435750876001600160a01b0316816001600160a01b0316145b6106805760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016104ec565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6001600160a01b03831660009081526004602090815260408083203384529091528120546000198114610745576107208382610ae3565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b0385166000908152600360205260408120805485929061076d908490610ae3565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107c89087815260200190565b60405180910390a3506001949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161080d9190610af6565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546108879190610b95565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b8181101561090d578581018301518582016040015282016108f1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461094557600080fd5b919050565b6000806040838503121561095d57600080fd5b6109668361092e565b946020939093013593505050565b60008060006060848603121561098957600080fd5b6109928461092e565b92506109a06020850161092e565b9150604084013590509250925092565b6000602082840312156109c257600080fd5b6103a48261092e565b600080600080600080600060e0888a0312156109e657600080fd5b6109ef8861092e565b96506109fd6020890161092e565b95506040880135945060608801359350608088013560ff81168114610a2157600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610a5157600080fd5b610a5a8361092e565b9150610a686020840161092e565b90509250929050565b600060208284031215610a8357600080fd5b813580151581146103a457600080fd5b600181811c90821680610aa757607f821691505b602082108103610ac757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561037757610377610acd565b600080835481600182811c915080831680610b1257607f831692505b60208084108203610b3157634e487b7160e01b86526022600452602486fd5b818015610b455760018114610b5a57610b87565b60ff1986168952841515850289019650610b87565b60008a81526020902060005b86811015610b7f5781548b820152908501908301610b66565b505084890196505b509498975050505050505050565b8082018082111561037757610377610acd56fea26469706673582212200b565a8a79a9a683c46177daccb693d8689b020f7b3d1b07d76b71acaa18cab464736f6c63430008110033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH8 0x5465737455534443 PUSH1 0xC0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x54535455534443 PUSH1 0xC8 SHL DUP2 MSTORE POP PUSH1 0x6 DUP3 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x66 SWAP2 SWAP1 PUSH3 0x1E2 JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0x75 DUP4 DUP3 PUSH3 0x1E2 JUMP JUMPDEST POP PUSH1 0xFF DUP2 AND PUSH1 0x80 MSTORE CHAINID PUSH1 0xA0 MSTORE PUSH3 0x8B PUSH3 0xA1 JUMP JUMPDEST PUSH1 0xC0 MSTORE POP POP PUSH1 0x6 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP PUSH3 0x32C JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH1 0x0 PUSH1 0x40 MLOAD PUSH3 0xD5 SWAP2 SWAP1 PUSH3 0x2AE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x20 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x168 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x189 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x1DD JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x1B8 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x1D9 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1C4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x1FE JUMPI PUSH3 0x1FE PUSH3 0x13D JUMP JUMPDEST PUSH3 0x216 DUP2 PUSH3 0x20F DUP5 SLOAD PUSH3 0x153 JUMP JUMPDEST DUP5 PUSH3 0x18F JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x24E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x235 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x1D9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x27F JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x25E JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x29E JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH3 0x2BE DUP2 PUSH3 0x153 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH3 0x2D9 JUMPI PUSH1 0x1 DUP2 EQ PUSH3 0x2EF JUMPI PUSH3 0x320 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH3 0x320 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH3 0x317 JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH3 0x2FC JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0xBDE PUSH3 0x35C PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x3E4 ADD MSTORE PUSH1 0x0 PUSH2 0x3AF ADD MSTORE PUSH1 0x0 PUSH2 0x177 ADD MSTORE PUSH2 0xBDE PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xE074D6A9 EQ PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x206 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x303BDD2C EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0x282 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x144 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x12B PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x974 JUMP JUMPDEST PUSH2 0x37D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x12B SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x199 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x144 PUSH2 0x3AB JUMP JUMPDEST PUSH2 0x12B PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x9B0 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x9B0 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x41B JUMP JUMPDEST PUSH2 0x12B PUSH2 0x21C CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x428 JUMP JUMPDEST PUSH2 0x234 PUSH2 0x22F CALLDATASIZE PUSH1 0x4 PUSH2 0x9CB JUMP JUMPDEST PUSH2 0x4A0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x144 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0xA3E JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x234 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0xA71 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x28F SWAP1 PUSH2 0xA93 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2BB SWAP1 PUSH2 0xA93 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x308 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x308 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP6 SWAP1 SSTORE MLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x36B SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x393 JUMPI POP PUSH1 0x0 PUSH2 0x3A4 JUMP JUMPDEST PUSH2 0x39E DUP5 DUP5 DUP5 PUSH2 0x6E9 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 CHAINID EQ PUSH2 0x3E1 JUMPI PUSH2 0x3DC PUSH2 0x7DB JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x412 DUP4 DUP4 PUSH2 0x875 JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x28F SWAP1 PUSH2 0xA93 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP2 SWAP1 DUP4 SWAP1 PUSH2 0x449 SWAP1 DUP5 SWAP1 PUSH2 0xAE3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD CALLER SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x36B SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5045524D49545F444541444C494E455F45585049524544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x501 PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP5 ADD MSTORE DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP4 DUP14 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xC0 DUP1 DUP4 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP4 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP3 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x102 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH2 0x122 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x142 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP5 MSTORE SWAP1 DUP4 ADD DUP1 DUP4 MSTORE MSTORE PUSH1 0xFF DUP8 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x60D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x643 JUMPI POP DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x680 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x24A72B20A624A22FA9A4A3A722A9 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP6 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP10 SWAP1 SSTORE MLOAD DUP9 DUP2 MSTORE SWAP2 SWAP3 DUP11 AND SWAP2 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x745 JUMPI PUSH2 0x720 DUP4 DUP3 PUSH2 0xAE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP6 SWAP3 SWAP1 PUSH2 0x76D SWAP1 DUP5 SWAP1 PUSH2 0xAE3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE MLOAD SWAP1 SWAP2 DUP8 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x7C8 SWAP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x80D SWAP2 SWAP1 PUSH2 0xAF6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x20 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x887 SWAP2 SWAP1 PUSH2 0xB95 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x90D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x8F1 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x945 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x966 DUP4 PUSH2 0x92E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x989 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x992 DUP5 PUSH2 0x92E JUMP JUMPDEST SWAP3 POP PUSH2 0x9A0 PUSH1 0x20 DUP6 ADD PUSH2 0x92E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3A4 DUP3 PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9EF DUP9 PUSH2 0x92E JUMP JUMPDEST SWAP7 POP PUSH2 0x9FD PUSH1 0x20 DUP10 ADD PUSH2 0x92E JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xA21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 PUSH1 0xA0 DUP5 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 SWAP1 SWAP4 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA5A DUP4 PUSH2 0x92E JUMP JUMPDEST SWAP2 POP PUSH2 0xA68 PUSH1 0x20 DUP5 ADD PUSH2 0x92E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xAA7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xAC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x377 JUMPI PUSH2 0x377 PUSH2 0xACD JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD DUP2 PUSH1 0x1 DUP3 DUP2 SHR SWAP2 POP DUP1 DUP4 AND DUP1 PUSH2 0xB12 JUMPI PUSH1 0x7F DUP4 AND SWAP3 POP JUMPDEST PUSH1 0x20 DUP1 DUP5 LT DUP3 SUB PUSH2 0xB31 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP7 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP7 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xB45 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0xB5A JUMPI PUSH2 0xB87 JUMP JUMPDEST PUSH1 0xFF NOT DUP7 AND DUP10 MSTORE DUP5 ISZERO ISZERO DUP6 MUL DUP10 ADD SWAP7 POP PUSH2 0xB87 JUMP JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0xB7F JUMPI DUP2 SLOAD DUP12 DUP3 ADD MSTORE SWAP1 DUP6 ADD SWAP1 DUP4 ADD PUSH2 0xB66 JUMP JUMPDEST POP POP DUP5 DUP10 ADD SWAP7 POP JUMPDEST POP SWAP5 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x377 JUMPI PUSH2 0x377 PUSH2 0xACD JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND JUMP GAS DUP11 PUSH26 0xA9A683C46177DACCB693D8689B020F7B3D1B07D76B71ACAA18CA 0xB4 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"173:620:1:-:0;;;263:46;;;;;;;;;;1978:292:0;;;;;;;;;;;;;-1:-1:-1;;;1978:292:0;;;;;;;;;;;;;;;;-1:-1:-1;;;1978:292:0;;;228:1:1;2098:5:0;2091:4;:12;;;;;;:::i;:::-;-1:-1:-1;2113:6:0;:16;2122:7;2113:6;:16;:::i;:::-;-1:-1:-1;2139:20:0;;;;;2189:13;2170:32;;2239:24;:22;:24::i;:::-;2212:51;;-1:-1:-1;;287:7:1;:15;;-1:-1:-1;;287:15:1;;;-1:-1:-1;173:620:1;;5507:446:0;5572:7;5669:95;5802:4;5786:22;;;;;;:::i;:::-;;;;;;;;;;5637:295;;;3843:25:2;;;;3884:18;;3877:34;;;;5830:14:0;3927:18:2;;;3920:34;5866:13:0;3970:18:2;;;3963:34;5909:4:0;4013:19:2;;;4006:61;3815:19;;5637:295:0;;;;;;;;;;;;5610:336;;;;;;5591:355;;5507:446;:::o;14:127:2:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:2;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:2;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:2;;;2580:26;2531:89;-1:-1:-1;;1335:1:2;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:2;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:2;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:2;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:2:o;2735:844::-;2865:3;2894:1;2927:6;2921:13;2957:36;2983:9;2957:36;:::i;:::-;3012:1;3029:18;;;3056:133;;;;3203:1;3198:356;;;;3022:532;;3056:133;-1:-1:-1;;3089:24:2;;3077:37;;3162:14;;3155:22;3143:35;;3134:45;;;-1:-1:-1;3056:133:2;;3198:356;3229:6;3226:1;3219:17;3259:4;3304:2;3301:1;3291:16;3329:1;3343:165;3357:6;3354:1;3351:13;3343:165;;;3435:14;;3422:11;;;3415:35;3478:16;;;;3372:10;;3343:165;;;3347:3;;;3537:6;3532:3;3528:16;3521:23;;3022:532;-1:-1:-1;3570:3:2;;2735:844;-1:-1:-1;;;;;;2735:844:2:o;3584:489::-;173:620:1;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DOMAIN_SEPARATOR_300":{"entryPoint":939,"id":300,"parameterSlots":0,"returnSlots":1},"@_mint_358":{"entryPoint":2165,"id":358,"parameterSlots":2,"returnSlots":0},"@allowance_36":{"entryPoint":null,"id":36,"parameterSlots":0,"returnSlots":0},"@approve_104":{"entryPoint":784,"id":104,"parameterSlots":2,"returnSlots":1},"@balanceOf_30":{"entryPoint":null,"id":30,"parameterSlots":0,"returnSlots":0},"@blockTransfer_415":{"entryPoint":null,"id":415,"parameterSlots":1,"returnSlots":0},"@blocked_397":{"entryPoint":null,"id":397,"parameterSlots":0,"returnSlots":0},"@computeDomainSeparator_330":{"entryPoint":2011,"id":330,"parameterSlots":0,"returnSlots":1},"@decimals_24":{"entryPoint":null,"id":24,"parameterSlots":0,"returnSlots":0},"@mint_432":{"entryPoint":1030,"id":432,"parameterSlots":2,"returnSlots":1},"@name_20":{"entryPoint":642,"id":20,"parameterSlots":0,"returnSlots":0},"@nonces_44":{"entryPoint":null,"id":44,"parameterSlots":0,"returnSlots":0},"@permit_285":{"entryPoint":1184,"id":285,"parameterSlots":7,"returnSlots":0},"@symbol_22":{"entryPoint":1051,"id":22,"parameterSlots":0,"returnSlots":0},"@totalSupply_26":{"entryPoint":null,"id":26,"parameterSlots":0,"returnSlots":0},"@transferFrom_198":{"entryPoint":1769,"id":198,"parameterSlots":3,"returnSlots":1},"@transferFrom_462":{"entryPoint":893,"id":462,"parameterSlots":3,"returnSlots":1},"@transfer_137":{"entryPoint":1064,"id":137,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2350,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2480,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2622,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2420,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":2507,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2378,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":2673,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_storage_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2806,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2272,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_bytes_storage_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2965,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2787,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2707,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2765,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:8143:2","statements":[{"nodeType":"YulBlock","src":"6:3:2","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:427:2","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:2","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:2","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:2","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:2"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:2"},"nodeType":"YulFunctionCall","src":"166:21:2"},"nodeType":"YulExpressionStatement","src":"166:21:2"},{"nodeType":"YulVariableDeclaration","src":"196:27:2","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:2"},"nodeType":"YulFunctionCall","src":"210:13:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:2"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:2"},"nodeType":"YulFunctionCall","src":"239:18:2"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:2"},"nodeType":"YulFunctionCall","src":"232:34:2"},"nodeType":"YulExpressionStatement","src":"232:34:2"},{"nodeType":"YulVariableDeclaration","src":"275:10:2","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:2","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:2","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:2"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:2"},"nodeType":"YulFunctionCall","src":"369:17:2"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:2"},"nodeType":"YulFunctionCall","src":"365:26:2"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:2"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:2"},"nodeType":"YulFunctionCall","src":"403:14:2"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:2"},"nodeType":"YulFunctionCall","src":"399:23:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:2"},"nodeType":"YulFunctionCall","src":"393:30:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:2"},"nodeType":"YulFunctionCall","src":"358:66:2"},"nodeType":"YulExpressionStatement","src":"358:66:2"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:2"},"nodeType":"YulFunctionCall","src":"302:13:2"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:2","statements":[{"nodeType":"YulAssignment","src":"318:15:2","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:2"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:2"},"nodeType":"YulFunctionCall","src":"323:10:2"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:2"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:2","statements":[]},"src":"294:140:2"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:2"},{"name":"length","nodeType":"YulIdentifier","src":"469:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:2"},"nodeType":"YulFunctionCall","src":"454:22:2"},{"kind":"number","nodeType":"YulLiteral","src":"478:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"450:3:2"},"nodeType":"YulFunctionCall","src":"450:31:2"},{"kind":"number","nodeType":"YulLiteral","src":"483:1:2","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"443:6:2"},"nodeType":"YulFunctionCall","src":"443:42:2"},"nodeType":"YulExpressionStatement","src":"443:42:2"},{"nodeType":"YulAssignment","src":"494:62:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:2"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"529:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"537:2:2","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"525:3:2"},"nodeType":"YulFunctionCall","src":"525:15:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:2:2","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"542:3:2"},"nodeType":"YulFunctionCall","src":"542:7:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"521:3:2"},"nodeType":"YulFunctionCall","src":"521:29:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"506:3:2"},"nodeType":"YulFunctionCall","src":"506:45:2"},{"kind":"number","nodeType":"YulLiteral","src":"553:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:2"},"nodeType":"YulFunctionCall","src":"502:54:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:2"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:2","type":""}],"src":"14:548:2"},{"body":{"nodeType":"YulBlock","src":"616:124:2","statements":[{"nodeType":"YulAssignment","src":"626:29:2","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"648:6:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"635:12:2"},"nodeType":"YulFunctionCall","src":"635:20:2"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:2"}]},{"body":{"nodeType":"YulBlock","src":"718:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:2"},"nodeType":"YulFunctionCall","src":"720:12:2"},"nodeType":"YulExpressionStatement","src":"720:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"677:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:2"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"703:3:2","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:2","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"699:3:2"},"nodeType":"YulFunctionCall","src":"699:11:2"},{"kind":"number","nodeType":"YulLiteral","src":"712:1:2","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"695:3:2"},"nodeType":"YulFunctionCall","src":"695:19:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:2"},"nodeType":"YulFunctionCall","src":"684:31:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"674:2:2"},"nodeType":"YulFunctionCall","src":"674:42:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"667:6:2"},"nodeType":"YulFunctionCall","src":"667:50:2"},"nodeType":"YulIf","src":"664:70:2"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"595:6:2","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"606:5:2","type":""}],"src":"567:173:2"},{"body":{"nodeType":"YulBlock","src":"832:167:2","statements":[{"body":{"nodeType":"YulBlock","src":"878:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"890:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"880:6:2"},"nodeType":"YulFunctionCall","src":"880:12:2"},"nodeType":"YulExpressionStatement","src":"880:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"853:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"849:3:2"},"nodeType":"YulFunctionCall","src":"849:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"874:2:2","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"845:3:2"},"nodeType":"YulFunctionCall","src":"845:32:2"},"nodeType":"YulIf","src":"842:52:2"},{"nodeType":"YulAssignment","src":"903:39:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:2"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"913:18:2"},"nodeType":"YulFunctionCall","src":"913:29:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"903:6:2"}]},{"nodeType":"YulAssignment","src":"951:42:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"978:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"989:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"974:3:2"},"nodeType":"YulFunctionCall","src":"974:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:2"},"nodeType":"YulFunctionCall","src":"961:32:2"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"951:6:2"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"790:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"801:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"813:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"821:6:2","type":""}],"src":"745:254:2"},{"body":{"nodeType":"YulBlock","src":"1099:92:2","statements":[{"nodeType":"YulAssignment","src":"1109:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:2"},"nodeType":"YulFunctionCall","src":"1117:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:2"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:2"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1176:6:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1169:6:2"},"nodeType":"YulFunctionCall","src":"1169:14:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1162:6:2"},"nodeType":"YulFunctionCall","src":"1162:22:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:2"},"nodeType":"YulFunctionCall","src":"1144:41:2"},"nodeType":"YulExpressionStatement","src":"1144:41:2"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:2","type":""}],"src":"1004:187:2"},{"body":{"nodeType":"YulBlock","src":"1297:76:2","statements":[{"nodeType":"YulAssignment","src":"1307:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1319:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1315:3:2"},"nodeType":"YulFunctionCall","src":"1315:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1307:4:2"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1349:9:2"},{"name":"value0","nodeType":"YulIdentifier","src":"1360:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:2"},"nodeType":"YulFunctionCall","src":"1342:25:2"},"nodeType":"YulExpressionStatement","src":"1342:25:2"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1266:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1277:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1288:4:2","type":""}],"src":"1196:177:2"},{"body":{"nodeType":"YulBlock","src":"1482:224:2","statements":[{"body":{"nodeType":"YulBlock","src":"1528:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1537:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1530:6:2"},"nodeType":"YulFunctionCall","src":"1530:12:2"},"nodeType":"YulExpressionStatement","src":"1530:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1503:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1499:3:2"},"nodeType":"YulFunctionCall","src":"1499:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:2","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1495:3:2"},"nodeType":"YulFunctionCall","src":"1495:32:2"},"nodeType":"YulIf","src":"1492:52:2"},{"nodeType":"YulAssignment","src":"1553:39:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:2"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1563:18:2"},"nodeType":"YulFunctionCall","src":"1563:29:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1553:6:2"}]},{"nodeType":"YulAssignment","src":"1601:48:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:2"},"nodeType":"YulFunctionCall","src":"1630:18:2"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1611:18:2"},"nodeType":"YulFunctionCall","src":"1611:38:2"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1601:6:2"}]},{"nodeType":"YulAssignment","src":"1658:42:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:2"},"nodeType":"YulFunctionCall","src":"1681:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:2"},"nodeType":"YulFunctionCall","src":"1668:32:2"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:2"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1443:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1455:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1463:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1471:6:2","type":""}],"src":"1378:328:2"},{"body":{"nodeType":"YulBlock","src":"1808:87:2","statements":[{"nodeType":"YulAssignment","src":"1818:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1830:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"1841:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:2"},"nodeType":"YulFunctionCall","src":"1826:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1818:4:2"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:2"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1875:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:2","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:2"},"nodeType":"YulFunctionCall","src":"1871:17:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1853:6:2"},"nodeType":"YulFunctionCall","src":"1853:36:2"},"nodeType":"YulExpressionStatement","src":"1853:36:2"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1788:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:2","type":""}],"src":"1711:184:2"},{"body":{"nodeType":"YulBlock","src":"2001:76:2","statements":[{"nodeType":"YulAssignment","src":"2011:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2034:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:2"},"nodeType":"YulFunctionCall","src":"2019:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2011:4:2"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2053:9:2"},{"name":"value0","nodeType":"YulIdentifier","src":"2064:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2046:6:2"},"nodeType":"YulFunctionCall","src":"2046:25:2"},"nodeType":"YulExpressionStatement","src":"2046:25:2"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1970:9:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1981:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1992:4:2","type":""}],"src":"1900:177:2"},{"body":{"nodeType":"YulBlock","src":"2152:116:2","statements":[{"body":{"nodeType":"YulBlock","src":"2198:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2207:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2210:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2200:6:2"},"nodeType":"YulFunctionCall","src":"2200:12:2"},"nodeType":"YulExpressionStatement","src":"2200:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2173:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"2182:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2169:3:2"},"nodeType":"YulFunctionCall","src":"2169:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"2194:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2165:3:2"},"nodeType":"YulFunctionCall","src":"2165:32:2"},"nodeType":"YulIf","src":"2162:52:2"},{"nodeType":"YulAssignment","src":"2223:39:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2252:9:2"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2233:18:2"},"nodeType":"YulFunctionCall","src":"2233:29:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2223:6:2"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2118:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2129:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2141:6:2","type":""}],"src":"2082:186:2"},{"body":{"nodeType":"YulBlock","src":"2443:523:2","statements":[{"body":{"nodeType":"YulBlock","src":"2490:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2499:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2502:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2492:6:2"},"nodeType":"YulFunctionCall","src":"2492:12:2"},"nodeType":"YulExpressionStatement","src":"2492:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2464:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"2473:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2460:3:2"},"nodeType":"YulFunctionCall","src":"2460:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"2485:3:2","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2456:3:2"},"nodeType":"YulFunctionCall","src":"2456:33:2"},"nodeType":"YulIf","src":"2453:53:2"},{"nodeType":"YulAssignment","src":"2515:39:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2544:9:2"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2525:18:2"},"nodeType":"YulFunctionCall","src":"2525:29:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2515:6:2"}]},{"nodeType":"YulAssignment","src":"2563:48:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2596:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2607:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:2"},"nodeType":"YulFunctionCall","src":"2592:18:2"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2573:18:2"},"nodeType":"YulFunctionCall","src":"2573:38:2"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2563:6:2"}]},{"nodeType":"YulAssignment","src":"2620:42:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2647:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2658:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2643:3:2"},"nodeType":"YulFunctionCall","src":"2643:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2630:12:2"},"nodeType":"YulFunctionCall","src":"2630:32:2"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2620:6:2"}]},{"nodeType":"YulAssignment","src":"2671:42:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2698:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2709:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2694:3:2"},"nodeType":"YulFunctionCall","src":"2694:18:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2681:12:2"},"nodeType":"YulFunctionCall","src":"2681:32:2"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2671:6:2"}]},{"nodeType":"YulVariableDeclaration","src":"2722:46:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2752:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2763:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2748:3:2"},"nodeType":"YulFunctionCall","src":"2748:19:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2735:12:2"},"nodeType":"YulFunctionCall","src":"2735:33:2"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2726:5:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"2816:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2825:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2828:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2818:6:2"},"nodeType":"YulFunctionCall","src":"2818:12:2"},"nodeType":"YulExpressionStatement","src":"2818:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2790:5:2"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2801:5:2"},{"kind":"number","nodeType":"YulLiteral","src":"2808:4:2","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2797:3:2"},"nodeType":"YulFunctionCall","src":"2797:16:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2787:2:2"},"nodeType":"YulFunctionCall","src":"2787:27:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2780:6:2"},"nodeType":"YulFunctionCall","src":"2780:35:2"},"nodeType":"YulIf","src":"2777:55:2"},{"nodeType":"YulAssignment","src":"2841:15:2","value":{"name":"value","nodeType":"YulIdentifier","src":"2851:5:2"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2841:6:2"}]},{"nodeType":"YulAssignment","src":"2865:43:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2892:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2903:3:2","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2888:3:2"},"nodeType":"YulFunctionCall","src":"2888:19:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2875:12:2"},"nodeType":"YulFunctionCall","src":"2875:33:2"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2865:6:2"}]},{"nodeType":"YulAssignment","src":"2917:43:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2944:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"2955:3:2","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2940:3:2"},"nodeType":"YulFunctionCall","src":"2940:19:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2927:12:2"},"nodeType":"YulFunctionCall","src":"2927:33:2"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"2917:6:2"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2361:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2372:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2384:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2392:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2400:6:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2408:6:2","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2416:6:2","type":""},{"name":"value5","nodeType":"YulTypedName","src":"2424:6:2","type":""},{"name":"value6","nodeType":"YulTypedName","src":"2432:6:2","type":""}],"src":"2273:693:2"},{"body":{"nodeType":"YulBlock","src":"3058:173:2","statements":[{"body":{"nodeType":"YulBlock","src":"3104:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3113:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3116:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3106:6:2"},"nodeType":"YulFunctionCall","src":"3106:12:2"},"nodeType":"YulExpressionStatement","src":"3106:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3079:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"3088:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3075:3:2"},"nodeType":"YulFunctionCall","src":"3075:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"3100:2:2","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3071:3:2"},"nodeType":"YulFunctionCall","src":"3071:32:2"},"nodeType":"YulIf","src":"3068:52:2"},{"nodeType":"YulAssignment","src":"3129:39:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3158:9:2"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3139:18:2"},"nodeType":"YulFunctionCall","src":"3139:29:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3129:6:2"}]},{"nodeType":"YulAssignment","src":"3177:48:2","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3210:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"3221:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3206:3:2"},"nodeType":"YulFunctionCall","src":"3206:18:2"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3187:18:2"},"nodeType":"YulFunctionCall","src":"3187:38:2"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3177:6:2"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3016:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3027:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3039:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3047:6:2","type":""}],"src":"2971:260:2"},{"body":{"nodeType":"YulBlock","src":"3303:206:2","statements":[{"body":{"nodeType":"YulBlock","src":"3349:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3358:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3361:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3351:6:2"},"nodeType":"YulFunctionCall","src":"3351:12:2"},"nodeType":"YulExpressionStatement","src":"3351:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3324:7:2"},{"name":"headStart","nodeType":"YulIdentifier","src":"3333:9:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3320:3:2"},"nodeType":"YulFunctionCall","src":"3320:23:2"},{"kind":"number","nodeType":"YulLiteral","src":"3345:2:2","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3316:3:2"},"nodeType":"YulFunctionCall","src":"3316:32:2"},"nodeType":"YulIf","src":"3313:52:2"},{"nodeType":"YulVariableDeclaration","src":"3374:36:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3400:9:2"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3387:12:2"},"nodeType":"YulFunctionCall","src":"3387:23:2"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3378:5:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3463:16:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3472:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3475:1:2","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3465:6:2"},"nodeType":"YulFunctionCall","src":"3465:12:2"},"nodeType":"YulExpressionStatement","src":"3465:12:2"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3432:5:2"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3453:5:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3446:6:2"},"nodeType":"YulFunctionCall","src":"3446:13:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3439:6:2"},"nodeType":"YulFunctionCall","src":"3439:21:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3429:2:2"},"nodeType":"YulFunctionCall","src":"3429:32:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3422:6:2"},"nodeType":"YulFunctionCall","src":"3422:40:2"},"nodeType":"YulIf","src":"3419:60:2"},{"nodeType":"YulAssignment","src":"3488:15:2","value":{"name":"value","nodeType":"YulIdentifier","src":"3498:5:2"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3488:6:2"}]}]},"name":"abi_decode_tuple_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3269:9:2","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3280:7:2","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3292:6:2","type":""}],"src":"3236:273:2"},{"body":{"nodeType":"YulBlock","src":"3569:325:2","statements":[{"nodeType":"YulAssignment","src":"3579:22:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3593:1:2","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"3596:4:2"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3589:3:2"},"nodeType":"YulFunctionCall","src":"3589:12:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"3579:6:2"}]},{"nodeType":"YulVariableDeclaration","src":"3610:38:2","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3640:4:2"},{"kind":"number","nodeType":"YulLiteral","src":"3646:1:2","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3636:3:2"},"nodeType":"YulFunctionCall","src":"3636:12:2"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"3614:18:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"3687:31:2","statements":[{"nodeType":"YulAssignment","src":"3689:27:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3703:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3711:4:2","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3699:3:2"},"nodeType":"YulFunctionCall","src":"3699:17:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"3689:6:2"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"3667:18:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3660:6:2"},"nodeType":"YulFunctionCall","src":"3660:26:2"},"nodeType":"YulIf","src":"3657:61:2"},{"body":{"nodeType":"YulBlock","src":"3777:111:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3798:1:2","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3805:3:2","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3810:10:2","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3801:3:2"},"nodeType":"YulFunctionCall","src":"3801:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3791:6:2"},"nodeType":"YulFunctionCall","src":"3791:31:2"},"nodeType":"YulExpressionStatement","src":"3791:31:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3842:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3845:4:2","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3835:6:2"},"nodeType":"YulFunctionCall","src":"3835:15:2"},"nodeType":"YulExpressionStatement","src":"3835:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3870:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3873:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3863:6:2"},"nodeType":"YulFunctionCall","src":"3863:15:2"},"nodeType":"YulExpressionStatement","src":"3863:15:2"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"3733:18:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3756:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"3764:2:2","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3753:2:2"},"nodeType":"YulFunctionCall","src":"3753:14:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3730:2:2"},"nodeType":"YulFunctionCall","src":"3730:38:2"},"nodeType":"YulIf","src":"3727:161:2"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"3549:4:2","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"3558:6:2","type":""}],"src":"3514:380:2"},{"body":{"nodeType":"YulBlock","src":"3931:95:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3948:1:2","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3955:3:2","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3960:10:2","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3951:3:2"},"nodeType":"YulFunctionCall","src":"3951:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3941:6:2"},"nodeType":"YulFunctionCall","src":"3941:31:2"},"nodeType":"YulExpressionStatement","src":"3941:31:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3988:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3991:4:2","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3981:6:2"},"nodeType":"YulFunctionCall","src":"3981:15:2"},"nodeType":"YulExpressionStatement","src":"3981:15:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4012:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4015:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4005:6:2"},"nodeType":"YulFunctionCall","src":"4005:15:2"},"nodeType":"YulExpressionStatement","src":"4005:15:2"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3899:127:2"},{"body":{"nodeType":"YulBlock","src":"4080:79:2","statements":[{"nodeType":"YulAssignment","src":"4090:17:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4102:1:2"},{"name":"y","nodeType":"YulIdentifier","src":"4105:1:2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4098:3:2"},"nodeType":"YulFunctionCall","src":"4098:9:2"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"4090:4:2"}]},{"body":{"nodeType":"YulBlock","src":"4131:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4133:16:2"},"nodeType":"YulFunctionCall","src":"4133:18:2"},"nodeType":"YulExpressionStatement","src":"4133:18:2"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"4122:4:2"},{"name":"x","nodeType":"YulIdentifier","src":"4128:1:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4119:2:2"},"nodeType":"YulFunctionCall","src":"4119:11:2"},"nodeType":"YulIf","src":"4116:37:2"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4062:1:2","type":""},{"name":"y","nodeType":"YulTypedName","src":"4065:1:2","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"4071:4:2","type":""}],"src":"4031:128:2"},{"body":{"nodeType":"YulBlock","src":"4338:173:2","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4355:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4366:2:2","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4348:6:2"},"nodeType":"YulFunctionCall","src":"4348:21:2"},"nodeType":"YulExpressionStatement","src":"4348:21:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4389:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4400:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4385:3:2"},"nodeType":"YulFunctionCall","src":"4385:18:2"},{"kind":"number","nodeType":"YulLiteral","src":"4405:2:2","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4378:6:2"},"nodeType":"YulFunctionCall","src":"4378:30:2"},"nodeType":"YulExpressionStatement","src":"4378:30:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4428:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4439:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4424:3:2"},"nodeType":"YulFunctionCall","src":"4424:18:2"},{"hexValue":"5045524d49545f444541444c494e455f45585049524544","kind":"string","nodeType":"YulLiteral","src":"4444:25:2","type":"","value":"PERMIT_DEADLINE_EXPIRED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4417:6:2"},"nodeType":"YulFunctionCall","src":"4417:53:2"},"nodeType":"YulExpressionStatement","src":"4417:53:2"},{"nodeType":"YulAssignment","src":"4479:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4491:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4502:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4487:3:2"},"nodeType":"YulFunctionCall","src":"4487:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4479:4:2"}]}]},"name":"abi_encode_tuple_t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4315:9:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4329:4:2","type":""}],"src":"4164:347:2"},{"body":{"nodeType":"YulBlock","src":"4757:350:2","statements":[{"nodeType":"YulAssignment","src":"4767:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4779:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4790:3:2","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4775:3:2"},"nodeType":"YulFunctionCall","src":"4775:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4767:4:2"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4810:9:2"},{"name":"value0","nodeType":"YulIdentifier","src":"4821:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4803:6:2"},"nodeType":"YulFunctionCall","src":"4803:25:2"},"nodeType":"YulExpressionStatement","src":"4803:25:2"},{"nodeType":"YulVariableDeclaration","src":"4837:29:2","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4855:3:2","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4860:1:2","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4851:3:2"},"nodeType":"YulFunctionCall","src":"4851:11:2"},{"kind":"number","nodeType":"YulLiteral","src":"4864:1:2","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4847:3:2"},"nodeType":"YulFunctionCall","src":"4847:19:2"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4841:2:2","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4886:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4897:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4882:3:2"},"nodeType":"YulFunctionCall","src":"4882:18:2"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4906:6:2"},{"name":"_1","nodeType":"YulIdentifier","src":"4914:2:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4902:3:2"},"nodeType":"YulFunctionCall","src":"4902:15:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4875:6:2"},"nodeType":"YulFunctionCall","src":"4875:43:2"},"nodeType":"YulExpressionStatement","src":"4875:43:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4938:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"4949:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4934:3:2"},"nodeType":"YulFunctionCall","src":"4934:18:2"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4958:6:2"},{"name":"_1","nodeType":"YulIdentifier","src":"4966:2:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4954:3:2"},"nodeType":"YulFunctionCall","src":"4954:15:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4927:6:2"},"nodeType":"YulFunctionCall","src":"4927:43:2"},"nodeType":"YulExpressionStatement","src":"4927:43:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4990:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5001:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4986:3:2"},"nodeType":"YulFunctionCall","src":"4986:18:2"},{"name":"value3","nodeType":"YulIdentifier","src":"5006:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4979:6:2"},"nodeType":"YulFunctionCall","src":"4979:34:2"},"nodeType":"YulExpressionStatement","src":"4979:34:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5033:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5044:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5029:3:2"},"nodeType":"YulFunctionCall","src":"5029:19:2"},{"name":"value4","nodeType":"YulIdentifier","src":"5050:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5022:6:2"},"nodeType":"YulFunctionCall","src":"5022:35:2"},"nodeType":"YulExpressionStatement","src":"5022:35:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5077:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5088:3:2","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5073:3:2"},"nodeType":"YulFunctionCall","src":"5073:19:2"},{"name":"value5","nodeType":"YulIdentifier","src":"5094:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5066:6:2"},"nodeType":"YulFunctionCall","src":"5066:35:2"},"nodeType":"YulExpressionStatement","src":"5066:35:2"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4686:9:2","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4697:6:2","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4705:6:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4713:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4721:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4729:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4737:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4748:4:2","type":""}],"src":"4516:591:2"},{"body":{"nodeType":"YulBlock","src":"5360:144:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5377:3:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5386:3:2","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"5391:4:2","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5382:3:2"},"nodeType":"YulFunctionCall","src":"5382:14:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5370:6:2"},"nodeType":"YulFunctionCall","src":"5370:27:2"},"nodeType":"YulExpressionStatement","src":"5370:27:2"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5417:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"5422:1:2","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5413:3:2"},"nodeType":"YulFunctionCall","src":"5413:11:2"},{"name":"value0","nodeType":"YulIdentifier","src":"5426:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5406:6:2"},"nodeType":"YulFunctionCall","src":"5406:27:2"},"nodeType":"YulExpressionStatement","src":"5406:27:2"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5453:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"5458:2:2","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5449:3:2"},"nodeType":"YulFunctionCall","src":"5449:12:2"},{"name":"value1","nodeType":"YulIdentifier","src":"5463:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5442:6:2"},"nodeType":"YulFunctionCall","src":"5442:28:2"},"nodeType":"YulExpressionStatement","src":"5442:28:2"},{"nodeType":"YulAssignment","src":"5479:19:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5490:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"5495:2:2","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5486:3:2"},"nodeType":"YulFunctionCall","src":"5486:12:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5479:3:2"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5328:3:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5333:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5341:6:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5352:3:2","type":""}],"src":"5112:392:2"},{"body":{"nodeType":"YulBlock","src":"5690:217:2","statements":[{"nodeType":"YulAssignment","src":"5700:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5712:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5723:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5708:3:2"},"nodeType":"YulFunctionCall","src":"5708:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5700:4:2"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5743:9:2"},{"name":"value0","nodeType":"YulIdentifier","src":"5754:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5736:6:2"},"nodeType":"YulFunctionCall","src":"5736:25:2"},"nodeType":"YulExpressionStatement","src":"5736:25:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5781:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5792:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5777:3:2"},"nodeType":"YulFunctionCall","src":"5777:18:2"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5801:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"5809:4:2","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5797:3:2"},"nodeType":"YulFunctionCall","src":"5797:17:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5770:6:2"},"nodeType":"YulFunctionCall","src":"5770:45:2"},"nodeType":"YulExpressionStatement","src":"5770:45:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5835:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5846:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5831:3:2"},"nodeType":"YulFunctionCall","src":"5831:18:2"},{"name":"value2","nodeType":"YulIdentifier","src":"5851:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5824:6:2"},"nodeType":"YulFunctionCall","src":"5824:34:2"},"nodeType":"YulExpressionStatement","src":"5824:34:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5878:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"5889:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5874:3:2"},"nodeType":"YulFunctionCall","src":"5874:18:2"},{"name":"value3","nodeType":"YulIdentifier","src":"5894:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5867:6:2"},"nodeType":"YulFunctionCall","src":"5867:34:2"},"nodeType":"YulExpressionStatement","src":"5867:34:2"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5635:9:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5646:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5654:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5662:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5670:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5681:4:2","type":""}],"src":"5509:398:2"},{"body":{"nodeType":"YulBlock","src":"6086:164:2","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6103:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"6114:2:2","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6096:6:2"},"nodeType":"YulFunctionCall","src":"6096:21:2"},"nodeType":"YulExpressionStatement","src":"6096:21:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6137:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"6148:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6133:3:2"},"nodeType":"YulFunctionCall","src":"6133:18:2"},{"kind":"number","nodeType":"YulLiteral","src":"6153:2:2","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6126:6:2"},"nodeType":"YulFunctionCall","src":"6126:30:2"},"nodeType":"YulExpressionStatement","src":"6126:30:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6176:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"6187:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6172:3:2"},"nodeType":"YulFunctionCall","src":"6172:18:2"},{"hexValue":"494e56414c49445f5349474e4552","kind":"string","nodeType":"YulLiteral","src":"6192:16:2","type":"","value":"INVALID_SIGNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6165:6:2"},"nodeType":"YulFunctionCall","src":"6165:44:2"},"nodeType":"YulExpressionStatement","src":"6165:44:2"},{"nodeType":"YulAssignment","src":"6218:26:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6230:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"6241:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6226:3:2"},"nodeType":"YulFunctionCall","src":"6226:18:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6218:4:2"}]}]},"name":"abi_encode_tuple_t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6063:9:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6077:4:2","type":""}],"src":"5912:338:2"},{"body":{"nodeType":"YulBlock","src":"6314:65:2","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6331:1:2","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"6334:3:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6324:6:2"},"nodeType":"YulFunctionCall","src":"6324:14:2"},"nodeType":"YulExpressionStatement","src":"6324:14:2"},{"nodeType":"YulAssignment","src":"6347:26:2","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6365:1:2","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6368:4:2","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6355:9:2"},"nodeType":"YulFunctionCall","src":"6355:18:2"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"6347:4:2"}]}]},"name":"array_dataslot_bytes_storage_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"6297:3:2","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"6305:4:2","type":""}],"src":"6255:124:2"},{"body":{"nodeType":"YulBlock","src":"6522:995:2","statements":[{"nodeType":"YulVariableDeclaration","src":"6532:12:2","value":{"kind":"number","nodeType":"YulLiteral","src":"6543:1:2","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"6536:3:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6553:30:2","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6576:6:2"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"6570:5:2"},"nodeType":"YulFunctionCall","src":"6570:13:2"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"6557:9:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6592:17:2","value":{"name":"ret","nodeType":"YulIdentifier","src":"6606:3:2"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6596:6:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6618:11:2","value":{"kind":"number","nodeType":"YulLiteral","src":"6628:1:2","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6622:2:2","type":""}]},{"nodeType":"YulAssignment","src":"6638:28:2","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6652:2:2"},{"name":"slotValue","nodeType":"YulIdentifier","src":"6656:9:2"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6648:3:2"},"nodeType":"YulFunctionCall","src":"6648:18:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6638:6:2"}]},{"nodeType":"YulVariableDeclaration","src":"6675:44:2","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"6705:9:2"},{"name":"_1","nodeType":"YulIdentifier","src":"6716:2:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6701:3:2"},"nodeType":"YulFunctionCall","src":"6701:18:2"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"6679:18:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"6758:31:2","statements":[{"nodeType":"YulAssignment","src":"6760:27:2","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6774:6:2"},{"kind":"number","nodeType":"YulLiteral","src":"6782:4:2","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6770:3:2"},"nodeType":"YulFunctionCall","src":"6770:17:2"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6760:6:2"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6738:18:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6731:6:2"},"nodeType":"YulFunctionCall","src":"6731:26:2"},"nodeType":"YulIf","src":"6728:61:2"},{"nodeType":"YulVariableDeclaration","src":"6798:12:2","value":{"kind":"number","nodeType":"YulLiteral","src":"6808:2:2","type":"","value":"32"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6802:2:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"6869:115:2","statements":[{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"6890:3:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6899:3:2","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6904:10:2","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6895:3:2"},"nodeType":"YulFunctionCall","src":"6895:20:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6883:6:2"},"nodeType":"YulFunctionCall","src":"6883:33:2"},"nodeType":"YulExpressionStatement","src":"6883:33:2"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6936:1:2","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6939:4:2","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6929:6:2"},"nodeType":"YulFunctionCall","src":"6929:15:2"},"nodeType":"YulExpressionStatement","src":"6929:15:2"},{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"6964:3:2"},{"kind":"number","nodeType":"YulLiteral","src":"6969:4:2","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6957:6:2"},"nodeType":"YulFunctionCall","src":"6957:17:2"},"nodeType":"YulExpressionStatement","src":"6957:17:2"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6825:18:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6848:6:2"},{"name":"_2","nodeType":"YulIdentifier","src":"6856:2:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6845:2:2"},"nodeType":"YulFunctionCall","src":"6845:14:2"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6822:2:2"},"nodeType":"YulFunctionCall","src":"6822:38:2"},"nodeType":"YulIf","src":"6819:165:2"},{"cases":[{"body":{"nodeType":"YulBlock","src":"7034:126:2","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7055:3:2"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"7064:9:2"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7079:3:2","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7075:3:2"},"nodeType":"YulFunctionCall","src":"7075:8:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7060:3:2"},"nodeType":"YulFunctionCall","src":"7060:24:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7048:6:2"},"nodeType":"YulFunctionCall","src":"7048:37:2"},"nodeType":"YulExpressionStatement","src":"7048:37:2"},{"nodeType":"YulAssignment","src":"7098:52:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7109:3:2"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7118:6:2"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7140:6:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7133:6:2"},"nodeType":"YulFunctionCall","src":"7133:14:2"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7126:6:2"},"nodeType":"YulFunctionCall","src":"7126:22:2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7114:3:2"},"nodeType":"YulFunctionCall","src":"7114:35:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7105:3:2"},"nodeType":"YulFunctionCall","src":"7105:45:2"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"7098:3:2"}]}]},"nodeType":"YulCase","src":"7027:133:2","value":{"kind":"number","nodeType":"YulLiteral","src":"7032:1:2","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"7176:316:2","statements":[{"nodeType":"YulVariableDeclaration","src":"7190:55:2","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7238:6:2"}],"functionName":{"name":"array_dataslot_bytes_storage_ptr","nodeType":"YulIdentifier","src":"7205:32:2"},"nodeType":"YulFunctionCall","src":"7205:40:2"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"7194:7:2","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7258:10:2","value":{"kind":"number","nodeType":"YulLiteral","src":"7267:1:2","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7262:1:2","type":""}]},{"body":{"nodeType":"YulBlock","src":"7335:111:2","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7364:3:2"},{"name":"i","nodeType":"YulIdentifier","src":"7369:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7360:3:2"},"nodeType":"YulFunctionCall","src":"7360:11:2"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"7379:7:2"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"7373:5:2"},"nodeType":"YulFunctionCall","src":"7373:14:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7353:6:2"},"nodeType":"YulFunctionCall","src":"7353:35:2"},"nodeType":"YulExpressionStatement","src":"7353:35:2"},{"nodeType":"YulAssignment","src":"7405:27:2","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"7420:7:2"},{"name":"_1","nodeType":"YulIdentifier","src":"7429:2:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7416:3:2"},"nodeType":"YulFunctionCall","src":"7416:16:2"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"7405:7:2"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7292:1:2"},{"name":"length","nodeType":"YulIdentifier","src":"7295:6:2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7289:2:2"},"nodeType":"YulFunctionCall","src":"7289:13:2"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7303:19:2","statements":[{"nodeType":"YulAssignment","src":"7305:15:2","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7314:1:2"},{"name":"_2","nodeType":"YulIdentifier","src":"7317:2:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7310:3:2"},"nodeType":"YulFunctionCall","src":"7310:10:2"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7305:1:2"}]}]},"pre":{"nodeType":"YulBlock","src":"7285:3:2","statements":[]},"src":"7281:165:2"},{"nodeType":"YulAssignment","src":"7459:23:2","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7470:3:2"},{"name":"length","nodeType":"YulIdentifier","src":"7475:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7466:3:2"},"nodeType":"YulFunctionCall","src":"7466:16:2"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"7459:3:2"}]}]},"nodeType":"YulCase","src":"7169:323:2","value":{"kind":"number","nodeType":"YulLiteral","src":"7174:1:2","type":"","value":"1"}}],"expression":{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"7000:18:2"},"nodeType":"YulSwitch","src":"6993:499:2"},{"nodeType":"YulAssignment","src":"7501:10:2","value":{"name":"ret","nodeType":"YulIdentifier","src":"7508:3:2"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7501:3:2"}]}]},"name":"abi_encode_tuple_packed_t_bytes_storage_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6498:3:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6503:6:2","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6514:3:2","type":""}],"src":"6384:1133:2"},{"body":{"nodeType":"YulBlock","src":"7735:276:2","statements":[{"nodeType":"YulAssignment","src":"7745:27:2","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7757:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"7768:3:2","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7753:3:2"},"nodeType":"YulFunctionCall","src":"7753:19:2"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7745:4:2"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7788:9:2"},{"name":"value0","nodeType":"YulIdentifier","src":"7799:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7781:6:2"},"nodeType":"YulFunctionCall","src":"7781:25:2"},"nodeType":"YulExpressionStatement","src":"7781:25:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7826:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"7837:2:2","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7822:3:2"},"nodeType":"YulFunctionCall","src":"7822:18:2"},{"name":"value1","nodeType":"YulIdentifier","src":"7842:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7815:6:2"},"nodeType":"YulFunctionCall","src":"7815:34:2"},"nodeType":"YulExpressionStatement","src":"7815:34:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7869:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"7880:2:2","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7865:3:2"},"nodeType":"YulFunctionCall","src":"7865:18:2"},{"name":"value2","nodeType":"YulIdentifier","src":"7885:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7858:6:2"},"nodeType":"YulFunctionCall","src":"7858:34:2"},"nodeType":"YulExpressionStatement","src":"7858:34:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7912:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"7923:2:2","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7908:3:2"},"nodeType":"YulFunctionCall","src":"7908:18:2"},{"name":"value3","nodeType":"YulIdentifier","src":"7928:6:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7901:6:2"},"nodeType":"YulFunctionCall","src":"7901:34:2"},"nodeType":"YulExpressionStatement","src":"7901:34:2"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7955:9:2"},{"kind":"number","nodeType":"YulLiteral","src":"7966:3:2","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7951:3:2"},"nodeType":"YulFunctionCall","src":"7951:19:2"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"7976:6:2"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7992:3:2","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7997:1:2","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7988:3:2"},"nodeType":"YulFunctionCall","src":"7988:11:2"},{"kind":"number","nodeType":"YulLiteral","src":"8001:1:2","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7984:3:2"},"nodeType":"YulFunctionCall","src":"7984:19:2"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7972:3:2"},"nodeType":"YulFunctionCall","src":"7972:32:2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7944:6:2"},"nodeType":"YulFunctionCall","src":"7944:61:2"},"nodeType":"YulExpressionStatement","src":"7944:61:2"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7672:9:2","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7683:6:2","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7691:6:2","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7699:6:2","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7707:6:2","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7715:6:2","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7726:4:2","type":""}],"src":"7522:489:2"},{"body":{"nodeType":"YulBlock","src":"8064:77:2","statements":[{"nodeType":"YulAssignment","src":"8074:16:2","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8085:1:2"},{"name":"y","nodeType":"YulIdentifier","src":"8088:1:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8081:3:2"},"nodeType":"YulFunctionCall","src":"8081:9:2"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"8074:3:2"}]},{"body":{"nodeType":"YulBlock","src":"8113:22:2","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8115:16:2"},"nodeType":"YulFunctionCall","src":"8115:18:2"},"nodeType":"YulExpressionStatement","src":"8115:18:2"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8105:1:2"},{"name":"sum","nodeType":"YulIdentifier","src":"8108:3:2"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8102:2:2"},"nodeType":"YulFunctionCall","src":"8102:10:2"},"nodeType":"YulIf","src":"8099:36:2"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8047:1:2","type":""},{"name":"y","nodeType":"YulTypedName","src":"8050:1:2","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"8056:3:2","type":""}],"src":"8016:125:2"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n let value := calldataload(add(headStart, 128))\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n value4 := value\n value5 := calldataload(add(headStart, 160))\n value6 := calldataload(add(headStart, 192))\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"PERMIT_DEADLINE_EXPIRED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, shl(240, 6401))\n mstore(add(pos, 2), value0)\n mstore(add(pos, 34), value1)\n end := add(pos, 66)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"INVALID_SIGNER\")\n tail := add(headStart, 96)\n }\n function array_dataslot_bytes_storage_ptr(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function abi_encode_tuple_packed_t_bytes_storage_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let ret := 0\n let slotValue := sload(value0)\n let length := ret\n let _1 := 1\n length := shr(_1, slotValue)\n let outOfPlaceEncoding := and(slotValue, _1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n let _2 := 32\n if eq(outOfPlaceEncoding, lt(length, _2))\n {\n mstore(ret, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(ret, 0x24)\n }\n switch outOfPlaceEncoding\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n let dataPos := array_dataslot_bytes_storage_ptr(value0)\n let i := 0\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n end := ret\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n}","id":2,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"24":[{"length":32,"start":375}],"38":[{"length":32,"start":943}],"40":[{"length":32,"start":996}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f1911610097578063a9059cbb11610066578063a9059cbb1461020e578063d505accf14610221578063dd62ed3e14610236578063e074d6a91461026157600080fd5b806340c10f19146101b357806370a08231146101c65780637ecebe00146101e657806395d89b411461020657600080fd5b806323b872dd116100d357806323b872dd14610152578063303bdd2c14610165578063313ce567146101725780633644e515146101ab57600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b610102610282565b60405161010f91906108e0565b60405180910390f35b61012b61012636600461094a565b610310565b604051901515815260200161010f565b61014460025481565b60405190815260200161010f565b61012b610160366004610974565b61037d565b60065461012b9060ff1681565b6101997f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161010f565b6101446103ab565b61012b6101c136600461094a565b610406565b6101446101d43660046109b0565b60036020526000908152604090205481565b6101446101f43660046109b0565b60056020526000908152604090205481565b61010261041b565b61012b61021c36600461094a565b610428565b61023461022f3660046109cb565b6104a0565b005b610144610244366004610a3e565b600460209081526000928352604080842090915290825290205481565b61023461026f366004610a71565b6006805460ff1916911515919091179055565b6000805461028f90610a93565b80601f01602080910402602001604051908101604052809291908181526020018280546102bb90610a93565b80156103085780601f106102dd57610100808354040283529160200191610308565b820191906000526020600020905b8154815290600101906020018083116102eb57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061036b9086815260200190565b60405180910390a35060015b92915050565b60065460009060ff1615610393575060006103a4565b61039e8484846106e9565b50600190505b9392505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146103e1576103dc6107db565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b60006104128383610875565b50600192915050565b6001805461028f90610a93565b33600090815260036020526040812080548391908390610449908490610ae3565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061036b9086815260200190565b428410156104f55760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b600060016105016103ab565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561060d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906106435750876001600160a01b0316816001600160a01b0316145b6106805760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016104ec565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6001600160a01b03831660009081526004602090815260408083203384529091528120546000198114610745576107208382610ae3565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b0385166000908152600360205260408120805485929061076d908490610ae3565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107c89087815260200190565b60405180910390a3506001949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161080d9190610af6565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546108879190610b95565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b8181101561090d578581018301518582016040015282016108f1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461094557600080fd5b919050565b6000806040838503121561095d57600080fd5b6109668361092e565b946020939093013593505050565b60008060006060848603121561098957600080fd5b6109928461092e565b92506109a06020850161092e565b9150604084013590509250925092565b6000602082840312156109c257600080fd5b6103a48261092e565b600080600080600080600060e0888a0312156109e657600080fd5b6109ef8861092e565b96506109fd6020890161092e565b95506040880135945060608801359350608088013560ff81168114610a2157600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610a5157600080fd5b610a5a8361092e565b9150610a686020840161092e565b90509250929050565b600060208284031215610a8357600080fd5b813580151581146103a457600080fd5b600181811c90821680610aa757607f821691505b602082108103610ac757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561037757610377610acd565b600080835481600182811c915080831680610b1257607f831692505b60208084108203610b3157634e487b7160e01b86526022600452602486fd5b818015610b455760018114610b5a57610b87565b60ff1986168952841515850289019650610b87565b60008a81526020902060005b86811015610b7f5781548b820152908501908301610b66565b505084890196505b509498975050505050505050565b8082018082111561037757610377610acd56fea26469706673582212200b565a8a79a9a683c46177daccb693d8689b020f7b3d1b07d76b71acaa18cab464736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xE074D6A9 EQ PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x206 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x303BDD2C EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x13B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0x282 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10F SWAP2 SWAP1 PUSH2 0x8E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x144 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x12B PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x974 JUMP JUMPDEST PUSH2 0x37D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x12B SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x199 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10F JUMP JUMPDEST PUSH2 0x144 PUSH2 0x3AB JUMP JUMPDEST PUSH2 0x12B PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x9B0 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x9B0 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x41B JUMP JUMPDEST PUSH2 0x12B PUSH2 0x21C CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x428 JUMP JUMPDEST PUSH2 0x234 PUSH2 0x22F CALLDATASIZE PUSH1 0x4 PUSH2 0x9CB JUMP JUMPDEST PUSH2 0x4A0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x144 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0xA3E JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x234 PUSH2 0x26F CALLDATASIZE PUSH1 0x4 PUSH2 0xA71 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x28F SWAP1 PUSH2 0xA93 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2BB SWAP1 PUSH2 0xA93 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x308 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x308 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP6 SWAP1 SSTORE MLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x36B SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x393 JUMPI POP PUSH1 0x0 PUSH2 0x3A4 JUMP JUMPDEST PUSH2 0x39E DUP5 DUP5 DUP5 PUSH2 0x6E9 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 CHAINID EQ PUSH2 0x3E1 JUMPI PUSH2 0x3DC PUSH2 0x7DB JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x412 DUP4 DUP4 PUSH2 0x875 JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x28F SWAP1 PUSH2 0xA93 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP2 SWAP1 DUP4 SWAP1 PUSH2 0x449 SWAP1 DUP5 SWAP1 PUSH2 0xAE3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD CALLER SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x36B SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x4F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5045524D49545F444541444C494E455F45585049524544000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x501 PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP5 ADD MSTORE DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP4 DUP14 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xC0 DUP1 DUP4 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP4 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP3 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x102 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH2 0x122 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x142 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP5 MSTORE SWAP1 DUP4 ADD DUP1 DUP4 MSTORE MSTORE PUSH1 0xFF DUP8 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x60D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x643 JUMPI POP DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST PUSH2 0x680 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x24A72B20A624A22FA9A4A3A722A9 PUSH1 0x91 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP6 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP10 SWAP1 SSTORE MLOAD DUP9 DUP2 MSTORE SWAP2 SWAP3 DUP11 AND SWAP2 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x745 JUMPI PUSH2 0x720 DUP4 DUP3 PUSH2 0xAE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP6 SWAP3 SWAP1 PUSH2 0x76D SWAP1 DUP5 SWAP1 PUSH2 0xAE3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE MLOAD SWAP1 SWAP2 DUP8 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x7C8 SWAP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x80D SWAP2 SWAP1 PUSH2 0xAF6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x20 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x887 SWAP2 SWAP1 PUSH2 0xB95 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x90D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x8F1 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x945 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x966 DUP4 PUSH2 0x92E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x989 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x992 DUP5 PUSH2 0x92E JUMP JUMPDEST SWAP3 POP PUSH2 0x9A0 PUSH1 0x20 DUP6 ADD PUSH2 0x92E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3A4 DUP3 PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x9E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9EF DUP9 PUSH2 0x92E JUMP JUMPDEST SWAP7 POP PUSH2 0x9FD PUSH1 0x20 DUP10 ADD PUSH2 0x92E JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0xA21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 PUSH1 0xA0 DUP5 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 SWAP1 SWAP4 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA5A DUP4 PUSH2 0x92E JUMP JUMPDEST SWAP2 POP PUSH2 0xA68 PUSH1 0x20 DUP5 ADD PUSH2 0x92E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xAA7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xAC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x377 JUMPI PUSH2 0x377 PUSH2 0xACD JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD DUP2 PUSH1 0x1 DUP3 DUP2 SHR SWAP2 POP DUP1 DUP4 AND DUP1 PUSH2 0xB12 JUMPI PUSH1 0x7F DUP4 AND SWAP3 POP JUMPDEST PUSH1 0x20 DUP1 DUP5 LT DUP3 SUB PUSH2 0xB31 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP7 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP7 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xB45 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0xB5A JUMPI PUSH2 0xB87 JUMP JUMPDEST PUSH1 0xFF NOT DUP7 AND DUP10 MSTORE DUP5 ISZERO ISZERO DUP6 MUL DUP10 ADD SWAP7 POP PUSH2 0xB87 JUMP JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0xB7F JUMPI DUP2 SLOAD DUP12 DUP3 ADD MSTORE SWAP1 DUP6 ADD SWAP1 DUP4 ADD PUSH2 0xB66 JUMP JUMPDEST POP POP DUP5 DUP10 ADD SWAP7 POP JUMPDEST POP SWAP5 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x377 JUMPI PUSH2 0x377 PUSH2 0xACD JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SIGNEXTEND JUMP GAS DUP11 PUSH26 0xA9A683C46177DACCB693D8689B020F7B3D1B07D76B71ACAA18CA 0xB4 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"173:620:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1028:18:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2458:211;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:2;;1162:22;1144:41;;1132:2;1117:18;2458:211:0;1004:187:2;1301:26:0;;;;;;;;;1342:25:2;;;1330:2;1315:18;1301:26:0;1196:177:2;530:261:1;;;;;;:::i;:::-;;:::i;237:19::-;;;;;;;;;1080:31:0;;;;;;;;1883:4:2;1871:17;;;1853:36;;1841:2;1826:18;1080:31:0;1711:184:2;5324:177:0;;;:::i;403:121:1:-;;;;;;:::i;:::-;;:::i;1334:44:0:-;;;;;;:::i;:::-;;;;;;;;;;;;;;1748:41;;;;;;:::i;:::-;;;;;;;;;;;;;;1053:20;;;:::i;2675:373::-;;;;;;:::i;:::-;;:::i;3835:1483::-;;;;;;:::i;:::-;;:::i;:::-;;1385:64;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;315:82:1;;;;;;:::i;:::-;372:7;:18;;-1:-1:-1;;372:18:1;;;;;;;;;;315:82;1028:18:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2458:211::-;2558:10;2532:4;2548:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2548:30:0;;;;;;;;;;:39;;;2603:37;2532:4;;2548:30;;2603:37;;;;2581:6;1342:25:2;;1330:2;1315:18;;1196:177;2603:37:0;;;;;;;;-1:-1:-1;2658:4:0;2458:211;;;;;:::o;530:261:1:-;672:7;;649;;672;;668:50;;;-1:-1:-1;702:5:1;695:12;;668:50;728:36;747:4;753:2;757:6;728:18;:36::i;:::-;;780:4;775:9;;530:261;;;;;;:::o;5324:177:0:-;5381:7;5424:16;5407:13;:33;:87;;5470:24;:22;:24::i;:::-;5400:94;;5324:177;:::o;5407:87::-;-1:-1:-1;5443:24:0;;5324:177::o;403:121:1:-;463:4;479:17;485:2;489:6;479:5;:17::i;:::-;-1:-1:-1;513:4:1;403:121;;;;:::o;1053:20:0:-;;;;;;;:::i;2675:373::-;2771:10;2745:4;2761:21;;;:9;:21;;;;;:31;;2786:6;;2761:21;2745:4;;2761:31;;2786:6;;2761:31;:::i;:::-;;;;-1:-1:-1;;;;;;;2938:13:0;;;;;;:9;:13;;;;;;;:23;;;;;;2987:32;2996:10;;2987:32;;;;2955:6;1342:25:2;;1330:2;1315:18;;1196:177;3835:1483:0;4054:15;4042:8;:27;;4034:63;;;;-1:-1:-1;;;4034:63:0;;4366:2:2;4034:63:0;;;4348:21:2;4405:2;4385:18;;;4378:30;4444:25;4424:18;;;4417:53;4487:18;;4034:63:0;;;;;;;;;4262:24;4289:805;4425:18;:16;:18::i;:::-;-1:-1:-1;;;;;4870:13:0;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;4508:449;;4552:165;4508:449;;;4803:25:2;4882:18;;;4875:43;;;;4954:15;;;4934:18;;;4927:43;4986:18;;;4979:34;;;5029:19;;;5022:35;;;;5073:19;;;;5066:35;;;4508:449:0;;;;;;;;;;4775:19:2;;;4508:449:0;;;4469:514;;;;;;;;-1:-1:-1;;;4347:658:0;;;5370:27:2;5413:11;;;5406:27;;;;5449:12;;;5442:28;;;;5486:12;;4347:658:0;;;-1:-1:-1;;4347:658:0;;;;;;;;;4316:707;;4347:658;4316:707;;;;4289:805;;;;;;;;;5736:25:2;5809:4;5797:17;;5777:18;;;5770:45;5831:18;;;5824:34;;;5874:18;;;5867:34;;;5708:19;;4289:805:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4289:805:0;;-1:-1:-1;;4289:805:0;;;-1:-1:-1;;;;;;;5117:30:0;;;;;;:59;;;5171:5;-1:-1:-1;;;;;5151:25:0;:16;-1:-1:-1;;;;;5151:25:0;;5117:59;5109:86;;;;-1:-1:-1;;;5109:86:0;;6114:2:2;5109:86:0;;;6096:21:2;6153:2;6133:18;;;6126:30;-1:-1:-1;;;6172:18:2;;;6165:44;6226:18;;5109:86:0;5912:338:2;5109:86:0;-1:-1:-1;;;;;5210:27:0;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;5280:31;1342:25:2;;;5210:36:0;;5280:31;;;;;1315:18:2;5280:31:0;;;;;;;3835:1483;;;;;;;:::o;3054:592::-;-1:-1:-1;;;;;3206:15:0;;3172:4;3206:15;;;:9;:15;;;;;;;;3222:10;3206:27;;;;;;;;-1:-1:-1;;3284:28:0;;3280:80;;3344:16;3354:6;3344:7;:16;:::i;:::-;-1:-1:-1;;;;;3314:15:0;;;;;;:9;:15;;;;;;;;3330:10;3314:27;;;;;;;:46;3280:80;-1:-1:-1;;;;;3371:15:0;;;;;;:9;:15;;;;;:25;;3390:6;;3371:15;:25;;3390:6;;3371:25;:::i;:::-;;;;-1:-1:-1;;;;;;;3542:13:0;;;;;;;:9;:13;;;;;;;:23;;;;;;3591:26;3542:13;;3591:26;;;;;;;3559:6;1342:25:2;;1330:2;1315:18;;1196:177;3591:26:0;;;;;;;;-1:-1:-1;3635:4:0;;3054:592;-1:-1:-1;;;;3054:592:0:o;5507:446::-;5572:7;5669:95;5802:4;5786:22;;;;;;:::i;:::-;;;;;;;;;;5637:295;;;7781:25:2;;;;7822:18;;7815:34;;;;5830:14:0;7865:18:2;;;7858:34;5866:13:0;7908:18:2;;;7901:34;5909:4:0;7951:19:2;;;7944:61;7753:19;;5637:295:0;;;;;;;;;;;;5610:336;;;;;;5591:355;;5507:446;:::o;6147:325::-;6232:6;6217:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6384:13:0;;;;;;:9;:13;;;;;;;;:23;;;;;;6433:32;1342:25:2;;;6433:32:0;;1315:18:2;6433:32:0;;;;;;;6147:325;;:::o;14:548:2:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:2;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:2:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;2082:186::-;2141:6;2194:2;2182:9;2173:7;2169:23;2165:32;2162:52;;;2210:1;2207;2200:12;2162:52;2233:29;2252:9;2233:29;:::i;2273:693::-;2384:6;2392;2400;2408;2416;2424;2432;2485:3;2473:9;2464:7;2460:23;2456:33;2453:53;;;2502:1;2499;2492:12;2453:53;2525:29;2544:9;2525:29;:::i;:::-;2515:39;;2573:38;2607:2;2596:9;2592:18;2573:38;:::i;:::-;2563:48;;2658:2;2647:9;2643:18;2630:32;2620:42;;2709:2;2698:9;2694:18;2681:32;2671:42;;2763:3;2752:9;2748:19;2735:33;2808:4;2801:5;2797:16;2790:5;2787:27;2777:55;;2828:1;2825;2818:12;2777:55;2273:693;;;;-1:-1:-1;2273:693:2;;;;2851:5;2903:3;2888:19;;2875:33;;-1:-1:-1;2955:3:2;2940:19;;;2927:33;;2273:693;-1:-1:-1;;2273:693:2:o;2971:260::-;3039:6;3047;3100:2;3088:9;3079:7;3075:23;3071:32;3068:52;;;3116:1;3113;3106:12;3068:52;3139:29;3158:9;3139:29;:::i;:::-;3129:39;;3187:38;3221:2;3210:9;3206:18;3187:38;:::i;:::-;3177:48;;2971:260;;;;;:::o;3236:273::-;3292:6;3345:2;3333:9;3324:7;3320:23;3316:32;3313:52;;;3361:1;3358;3351:12;3313:52;3400:9;3387:23;3453:5;3446:13;3439:21;3432:5;3429:32;3419:60;;3475:1;3472;3465:12;3514:380;3593:1;3589:12;;;;3636;;;3657:61;;3711:4;3703:6;3699:17;3689:27;;3657:61;3764:2;3756:6;3753:14;3733:18;3730:38;3727:161;;3810:10;3805:3;3801:20;3798:1;3791:31;3845:4;3842:1;3835:15;3873:4;3870:1;3863:15;3727:161;;3514:380;;;:::o;3899:127::-;3960:10;3955:3;3951:20;3948:1;3941:31;3991:4;3988:1;3981:15;4015:4;4012:1;4005:15;4031:128;4098:9;;;4119:11;;;4116:37;;;4133:18;;:::i;6384:1133::-;6514:3;6543:1;6576:6;6570:13;6606:3;6628:1;6656:9;6652:2;6648:18;6638:28;;6716:2;6705:9;6701:18;6738;6728:61;;6782:4;6774:6;6770:17;6760:27;;6728:61;6808:2;6856;6848:6;6845:14;6825:18;6822:38;6819:165;;-1:-1:-1;;;6883:33:2;;6939:4;6936:1;6929:15;6969:4;6890:3;6957:17;6819:165;7000:18;7027:133;;;;7174:1;7169:323;;;;6993:499;;7027:133;-1:-1:-1;;7060:24:2;;7048:37;;7133:14;;7126:22;7114:35;;7105:45;;;-1:-1:-1;7027:133:2;;7169:323;6331:1;6324:14;;;6368:4;6355:18;;7267:1;7281:165;7295:6;7292:1;7289:13;7281:165;;;7373:14;;7360:11;;;7353:35;7416:16;;;;7310:10;;7281:165;;;7285:3;;7475:6;7470:3;7466:16;7459:23;;6993:499;-1:-1:-1;7508:3:2;;6384:1133;-1:-1:-1;;;;;;;;6384:1133:2:o;8016:125::-;8081:9;;;8102:10;;;8099:36;;;8115:18;;:::i"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","blockTransfer(bool)":"e074d6a9","blocked()":"303bdd2c","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"blocking\",\"type\":\"bool\"}],\"name\":\"blockTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/test/TestERC20USDC.sol\":\"TestERC20USDC\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@rari-capital/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x0240f7703cff32a61ee3e9fbb339e09a944260432a9ef37debf3692b1a6c8049\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2d8b0c0158b1952a87c327d506a645040924a94c8f9f937184659f8a8e3b0759\",\"dweb:/ipfs/QmZ9rGdkjRCk8zfr4xeH7Jh88tkWJNt9LvG1o2GcCm7Uqa\"]},\"src/contracts/test/TestERC20USDC.sol\":{\"keccak256\":\"0x07db5bab2bfd490d5f1c9fb6625d66565c06c579979dbf65f7e83acbf23e4412\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://d3d96f2b2e03f8a97cae3e70c6f14bebe9d16be3530ffd5f7a3a003d81420e03\",\"dweb:/ipfs/Qmbe35Jf3Ji59Rug2J8eHjinXUCKR5knUW6P2E72UcW3FM\"]}},\"version\":1}"}}}}}