@aztec-foundation/l1-artifacts 6.0.0-rc.1 → 6.0.0-rc.4

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 (374) hide show
  1. package/dest/AttesterExitExtLibAbi.d.ts +12 -48
  2. package/dest/AttesterExitExtLibAbi.d.ts.map +1 -1
  3. package/dest/AttesterExitExtLibAbi.js +16 -64
  4. package/dest/AttesterExitExtLibAbi.js.map +1 -1
  5. package/dest/AttesterExitExtLibBytecode.d.ts +1 -1
  6. package/dest/AttesterExitExtLibBytecode.js +1 -1
  7. package/dest/CoinIssuerAbi.d.ts +12 -48
  8. package/dest/CoinIssuerAbi.d.ts.map +1 -1
  9. package/dest/CoinIssuerAbi.js +16 -64
  10. package/dest/CoinIssuerAbi.js.map +1 -1
  11. package/dest/DateGatedRelayerAbi.d.ts +12 -48
  12. package/dest/DateGatedRelayerAbi.d.ts.map +1 -1
  13. package/dest/DateGatedRelayerAbi.js +16 -64
  14. package/dest/DateGatedRelayerAbi.js.map +1 -1
  15. package/dest/EmpireBaseAbi.d.ts +12 -48
  16. package/dest/EmpireBaseAbi.d.ts.map +1 -1
  17. package/dest/EmpireBaseAbi.js +16 -64
  18. package/dest/EmpireBaseAbi.js.map +1 -1
  19. package/dest/EpochProofExtLibAbi.d.ts +12 -48
  20. package/dest/EpochProofExtLibAbi.d.ts.map +1 -1
  21. package/dest/EpochProofExtLibAbi.js +16 -64
  22. package/dest/EpochProofExtLibAbi.js.map +1 -1
  23. package/dest/EpochProofExtLibBytecode.d.ts +1 -1
  24. package/dest/EpochProofExtLibBytecode.d.ts.map +1 -1
  25. package/dest/EpochProofExtLibBytecode.js +1 -1
  26. package/dest/EpochProofExtLibBytecode.js.map +1 -1
  27. package/dest/ErrorsAbi.d.ts +12 -48
  28. package/dest/ErrorsAbi.d.ts.map +1 -1
  29. package/dest/ErrorsAbi.js +16 -64
  30. package/dest/ErrorsAbi.js.map +1 -1
  31. package/dest/EscapeHatchAbi.d.ts +12 -48
  32. package/dest/EscapeHatchAbi.d.ts.map +1 -1
  33. package/dest/EscapeHatchAbi.js +16 -64
  34. package/dest/EscapeHatchAbi.js.map +1 -1
  35. package/dest/EscapeHatchBytecode.d.ts +1 -1
  36. package/dest/EscapeHatchBytecode.js +1 -1
  37. package/dest/EscapeHatchStorage.d.ts +2 -2
  38. package/dest/EscapeHatchStorage.js +2 -2
  39. package/dest/FeeAssetHandlerAbi.d.ts +12 -48
  40. package/dest/FeeAssetHandlerAbi.d.ts.map +1 -1
  41. package/dest/FeeAssetHandlerAbi.js +16 -64
  42. package/dest/FeeAssetHandlerAbi.js.map +1 -1
  43. package/dest/FeeJuicePortalAbi.d.ts +12 -48
  44. package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
  45. package/dest/FeeJuicePortalAbi.js +16 -64
  46. package/dest/FeeJuicePortalAbi.js.map +1 -1
  47. package/dest/FeeJuicePortalBytecode.d.ts +1 -1
  48. package/dest/FeeJuicePortalBytecode.js +1 -1
  49. package/dest/GSEAbi.d.ts +12 -48
  50. package/dest/GSEAbi.d.ts.map +1 -1
  51. package/dest/GSEAbi.js +16 -64
  52. package/dest/GSEAbi.js.map +1 -1
  53. package/dest/GovernanceAbi.d.ts +12 -48
  54. package/dest/GovernanceAbi.d.ts.map +1 -1
  55. package/dest/GovernanceAbi.js +16 -64
  56. package/dest/GovernanceAbi.js.map +1 -1
  57. package/dest/GovernanceProposerAbi.d.ts +12 -48
  58. package/dest/GovernanceProposerAbi.d.ts.map +1 -1
  59. package/dest/GovernanceProposerAbi.js +16 -64
  60. package/dest/GovernanceProposerAbi.js.map +1 -1
  61. package/dest/HonkVerifierAbi.d.ts +12 -48
  62. package/dest/HonkVerifierAbi.d.ts.map +1 -1
  63. package/dest/HonkVerifierAbi.js +16 -64
  64. package/dest/HonkVerifierAbi.js.map +1 -1
  65. package/dest/IERC20Abi.d.ts +12 -48
  66. package/dest/IERC20Abi.d.ts.map +1 -1
  67. package/dest/IERC20Abi.js +16 -64
  68. package/dest/IERC20Abi.js.map +1 -1
  69. package/dest/ISequencerRewardCalculatorAbi.d.ts +2607 -0
  70. package/dest/ISequencerRewardCalculatorAbi.d.ts.map +1 -0
  71. package/dest/ISequencerRewardCalculatorAbi.js +3473 -0
  72. package/dest/ISequencerRewardCalculatorAbi.js.map +1 -0
  73. package/dest/ISequencerRewardCalculatorBytecode.d.ts +9 -0
  74. package/dest/ISequencerRewardCalculatorBytecode.d.ts.map +1 -0
  75. package/dest/ISequencerRewardCalculatorBytecode.js +9 -0
  76. package/dest/ISequencerRewardCalculatorBytecode.js.map +1 -0
  77. package/dest/IVerifierAbi.d.ts +12 -48
  78. package/dest/IVerifierAbi.d.ts.map +1 -1
  79. package/dest/IVerifierAbi.js +16 -64
  80. package/dest/IVerifierAbi.js.map +1 -1
  81. package/dest/InboxAbi.d.ts +12 -48
  82. package/dest/InboxAbi.d.ts.map +1 -1
  83. package/dest/InboxAbi.js +16 -64
  84. package/dest/InboxAbi.js.map +1 -1
  85. package/dest/InboxBytecode.d.ts +1 -1
  86. package/dest/InboxBytecode.js +1 -1
  87. package/dest/MockVerifierAbi.d.ts +12 -48
  88. package/dest/MockVerifierAbi.d.ts.map +1 -1
  89. package/dest/MockVerifierAbi.js +16 -64
  90. package/dest/MockVerifierAbi.js.map +1 -1
  91. package/dest/MockZKPassportVerifierAbi.d.ts +12 -48
  92. package/dest/MockZKPassportVerifierAbi.d.ts.map +1 -1
  93. package/dest/MockZKPassportVerifierAbi.js +16 -64
  94. package/dest/MockZKPassportVerifierAbi.js.map +1 -1
  95. package/dest/MultiAdderAbi.d.ts +12 -48
  96. package/dest/MultiAdderAbi.d.ts.map +1 -1
  97. package/dest/MultiAdderAbi.js +16 -64
  98. package/dest/MultiAdderAbi.js.map +1 -1
  99. package/dest/MultiAdderBytecode.d.ts +1 -1
  100. package/dest/MultiAdderBytecode.js +1 -1
  101. package/dest/NewGovernanceProposerPayloadAbi.d.ts +12 -48
  102. package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -1
  103. package/dest/NewGovernanceProposerPayloadAbi.js +16 -64
  104. package/dest/NewGovernanceProposerPayloadAbi.js.map +1 -1
  105. package/dest/OutboxAbi.d.ts +12 -48
  106. package/dest/OutboxAbi.d.ts.map +1 -1
  107. package/dest/OutboxAbi.js +16 -64
  108. package/dest/OutboxAbi.js.map +1 -1
  109. package/dest/OutboxBytecode.d.ts +1 -1
  110. package/dest/OutboxBytecode.js +1 -1
  111. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts +12 -48
  112. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts.map +1 -1
  113. package/dest/RegisterNewRollupVersionPayloadAbi.js +16 -64
  114. package/dest/RegisterNewRollupVersionPayloadAbi.js.map +1 -1
  115. package/dest/RegisterNewRollupVersionPayloadBytecode.d.ts +1 -1
  116. package/dest/RegisterNewRollupVersionPayloadBytecode.js +1 -1
  117. package/dest/RegistryAbi.d.ts +12 -48
  118. package/dest/RegistryAbi.d.ts.map +1 -1
  119. package/dest/RegistryAbi.js +16 -64
  120. package/dest/RegistryAbi.js.map +1 -1
  121. package/dest/RewardDistributorAbi.d.ts +12 -48
  122. package/dest/RewardDistributorAbi.d.ts.map +1 -1
  123. package/dest/RewardDistributorAbi.js +16 -64
  124. package/dest/RewardDistributorAbi.js.map +1 -1
  125. package/dest/RewardExtLibAbi.d.ts +59 -48
  126. package/dest/RewardExtLibAbi.d.ts.map +1 -1
  127. package/dest/RewardExtLibAbi.js +77 -64
  128. package/dest/RewardExtLibAbi.js.map +1 -1
  129. package/dest/RewardExtLibBytecode.d.ts +1 -1
  130. package/dest/RewardExtLibBytecode.d.ts.map +1 -1
  131. package/dest/RewardExtLibBytecode.js +1 -1
  132. package/dest/RewardExtLibBytecode.js.map +1 -1
  133. package/dest/RollupAbi.d.ts +72 -79
  134. package/dest/RollupAbi.d.ts.map +1 -1
  135. package/dest/RollupAbi.js +93 -104
  136. package/dest/RollupAbi.js.map +1 -1
  137. package/dest/RollupBytecode.d.ts +91 -82
  138. package/dest/RollupBytecode.d.ts.map +1 -1
  139. package/dest/RollupBytecode.js +94 -82
  140. package/dest/RollupBytecode.js.map +1 -1
  141. package/dest/RollupOperationsExtLibAbi.d.ts +12 -48
  142. package/dest/RollupOperationsExtLibAbi.d.ts.map +1 -1
  143. package/dest/RollupOperationsExtLibAbi.js +16 -64
  144. package/dest/RollupOperationsExtLibAbi.js.map +1 -1
  145. package/dest/RollupOperationsExtLibBytecode.d.ts +1 -1
  146. package/dest/RollupOperationsExtLibBytecode.d.ts.map +1 -1
  147. package/dest/RollupOperationsExtLibBytecode.js +1 -1
  148. package/dest/RollupOperationsExtLibBytecode.js.map +1 -1
  149. package/dest/RollupStorage.d.ts +2 -2
  150. package/dest/RollupStorage.js +2 -2
  151. package/dest/SlasherAbi.d.ts +12 -48
  152. package/dest/SlasherAbi.d.ts.map +1 -1
  153. package/dest/SlasherAbi.js +16 -64
  154. package/dest/SlasherAbi.js.map +1 -1
  155. package/dest/SlasherDeploymentExtLibAbi.d.ts +12 -48
  156. package/dest/SlasherDeploymentExtLibAbi.d.ts.map +1 -1
  157. package/dest/SlasherDeploymentExtLibAbi.js +16 -64
  158. package/dest/SlasherDeploymentExtLibAbi.js.map +1 -1
  159. package/dest/SlasherDeploymentExtLibBytecode.d.ts +1 -1
  160. package/dest/SlasherDeploymentExtLibBytecode.d.ts.map +1 -1
  161. package/dest/SlasherDeploymentExtLibBytecode.js +1 -1
  162. package/dest/SlasherDeploymentExtLibBytecode.js.map +1 -1
  163. package/dest/SlashingProposerAbi.d.ts +12 -48
  164. package/dest/SlashingProposerAbi.d.ts.map +1 -1
  165. package/dest/SlashingProposerAbi.js +16 -64
  166. package/dest/SlashingProposerAbi.js.map +1 -1
  167. package/dest/SlashingProposerBytecode.d.ts +1 -1
  168. package/dest/SlashingProposerBytecode.js +1 -1
  169. package/dest/StakingAssetHandlerAbi.d.ts +12 -48
  170. package/dest/StakingAssetHandlerAbi.d.ts.map +1 -1
  171. package/dest/StakingAssetHandlerAbi.js +16 -64
  172. package/dest/StakingAssetHandlerAbi.js.map +1 -1
  173. package/dest/TestERC20Abi.d.ts +12 -48
  174. package/dest/TestERC20Abi.d.ts.map +1 -1
  175. package/dest/TestERC20Abi.js +16 -64
  176. package/dest/TestERC20Abi.js.map +1 -1
  177. package/dest/TokenPortalAbi.d.ts +12 -48
  178. package/dest/TokenPortalAbi.d.ts.map +1 -1
  179. package/dest/TokenPortalAbi.js +16 -64
  180. package/dest/TokenPortalAbi.js.map +1 -1
  181. package/dest/TokenPortalBytecode.d.ts +1 -1
  182. package/dest/TokenPortalBytecode.js +1 -1
  183. package/dest/UniswapPortalAbi.d.ts +12 -48
  184. package/dest/UniswapPortalAbi.d.ts.map +1 -1
  185. package/dest/UniswapPortalAbi.js +16 -64
  186. package/dest/UniswapPortalAbi.js.map +1 -1
  187. package/dest/UniswapPortalBytecode.d.ts +1 -1
  188. package/dest/UniswapPortalBytecode.js +1 -1
  189. package/dest/ValidatorOperationsExtLibAbi.d.ts +12 -48
  190. package/dest/ValidatorOperationsExtLibAbi.d.ts.map +1 -1
  191. package/dest/ValidatorOperationsExtLibAbi.js +16 -64
  192. package/dest/ValidatorOperationsExtLibAbi.js.map +1 -1
  193. package/dest/ValidatorOperationsExtLibBytecode.d.ts +1 -1
  194. package/dest/ValidatorOperationsExtLibBytecode.d.ts.map +1 -1
  195. package/dest/ValidatorOperationsExtLibBytecode.js +1 -1
  196. package/dest/ValidatorOperationsExtLibBytecode.js.map +1 -1
  197. package/dest/ValidatorSelectionLibAbi.d.ts +12 -48
  198. package/dest/ValidatorSelectionLibAbi.d.ts.map +1 -1
  199. package/dest/ValidatorSelectionLibAbi.js +16 -64
  200. package/dest/ValidatorSelectionLibAbi.js.map +1 -1
  201. package/dest/ValidatorSelectionLibBytecode.d.ts +1 -1
  202. package/dest/ValidatorSelectionLibBytecode.js +1 -1
  203. package/dest/checksum.d.ts +1 -1
  204. package/dest/checksum.js +1 -1
  205. package/dest/index.d.ts +2 -0
  206. package/dest/index.d.ts.map +1 -1
  207. package/dest/index.js +2 -0
  208. package/dest/index.js.map +1 -1
  209. package/l1-contracts/cache/solidity-files-cache.json +1 -1
  210. package/l1-contracts/foundry.toml +1 -1
  211. package/l1-contracts/out/AddressSnapshotLib.sol/AddressSnapshotLib.json +1 -1
  212. package/l1-contracts/out/AttestationLib.sol/AttestationLib.json +1 -1
  213. package/l1-contracts/out/AttesterExitExtLib.sol/AttesterExitExtLib.json +1 -1
  214. package/l1-contracts/out/BN254Lib.sol/BN254Lib.json +1 -1
  215. package/l1-contracts/out/Ballot.sol/BallotLib.json +1 -1
  216. package/l1-contracts/out/BlobLib.sol/BlobLib.json +1 -1
  217. package/l1-contracts/out/Bn254LibWrapper.sol/Bn254LibWrapper.json +1 -1
  218. package/l1-contracts/out/CheckpointLog.sol/CompressedTempCheckpointLogLib.json +1 -1
  219. package/l1-contracts/out/CheckpointedUintLib.sol/CheckpointedUintLib.json +1 -1
  220. package/l1-contracts/out/CoinIssuer.sol/CoinIssuer.json +1 -1
  221. package/l1-contracts/out/CompressedTimeMath.sol/CompressedTimeMath.json +1 -1
  222. package/l1-contracts/out/Configuration.sol/CompressedConfigurationLib.json +1 -1
  223. package/l1-contracts/out/ConfigurationLib.sol/ConfigurationLib.json +1 -1
  224. package/l1-contracts/out/ConstantsGen.sol/Constants.json +1 -1
  225. package/l1-contracts/out/CoordinationSignatureLib.sol/CoordinationSignatureLib.json +1 -1
  226. package/l1-contracts/out/DataStructures.sol/DataStructures.json +1 -1
  227. package/l1-contracts/out/DateGatedRelayer.sol/DateGatedRelayer.json +1 -1
  228. package/l1-contracts/out/DeployAztecL1Contracts.s.sol/DeployAztecL1Contracts.json +1 -1
  229. package/l1-contracts/out/DeployRollupForUpgrade.s.sol/DeployRollupForUpgrade.json +1 -1
  230. package/l1-contracts/out/DeployRollupLib.sol/DeployRollupLib.json +1 -1
  231. package/l1-contracts/out/DeploymentConfiguration.sol/DeploymentConfiguration.json +1 -1
  232. package/l1-contracts/out/DeploymentConfiguration.sol/IDeploymentConfiguration.json +1 -1
  233. package/l1-contracts/out/DepositDelegationLib.sol/DepositDelegationLib.json +1 -1
  234. package/l1-contracts/out/EmpireBase.sol/EmpireBase.json +1 -1
  235. package/l1-contracts/out/EpochProofExtLib.sol/EpochProofExtLib.json +1 -1
  236. package/l1-contracts/out/EpochProofLib.sol/EpochProofLib.json +1 -1
  237. package/l1-contracts/out/Errors.sol/Errors.json +1 -1
  238. package/l1-contracts/out/EscapeHatch.sol/EscapeHatch.json +1 -1
  239. package/l1-contracts/out/FeeAssetHandler.sol/FeeAssetHandler.json +1 -1
  240. package/l1-contracts/out/FeeAssetHandler.sol/IFeeAssetHandler.json +1 -1
  241. package/l1-contracts/out/FeeConfig.sol/FeeConfigLib.json +1 -1
  242. package/l1-contracts/out/FeeConfig.sol/PriceLib.json +1 -1
  243. package/l1-contracts/out/FeeJuicePortal.sol/FeeJuicePortal.json +1 -1
  244. package/l1-contracts/out/FeeLib.sol/FeeLib.json +1 -1
  245. package/l1-contracts/out/FeeStructs.sol/FeeHeaderLib.json +1 -1
  246. package/l1-contracts/out/FeeStructs.sol/FeeStructsLib.json +1 -1
  247. package/l1-contracts/out/FieldLib.sol/FieldLib.json +1 -1
  248. package/l1-contracts/out/FlushRewarder.sol/FlushRewarder.json +1 -1
  249. package/l1-contracts/out/GSE.sol/GSE.json +1 -1
  250. package/l1-contracts/out/GSE.sol/GSECore.json +1 -1
  251. package/l1-contracts/out/GSE.sol/IGSE.json +1 -1
  252. package/l1-contracts/out/GSE.sol/IGSECore.json +1 -1
  253. package/l1-contracts/out/GSEPayload.sol/GSEPayload.json +1 -1
  254. package/l1-contracts/out/Governance.sol/Governance.json +1 -1
  255. package/l1-contracts/out/GovernanceProposer.sol/GovernanceProposer.json +1 -1
  256. package/l1-contracts/out/Hash.sol/Hash.json +1 -1
  257. package/l1-contracts/out/HonkVerifier.sol/HonkVerifier.json +1 -1
  258. package/l1-contracts/out/IBn254LibWrapper.sol/IBn254LibWrapper.json +1 -1
  259. package/l1-contracts/out/ICoinIssuer.sol/ICoinIssuer.json +1 -1
  260. package/l1-contracts/out/IDateGatedRelayer.sol/IDateGatedRelayer.json +1 -1
  261. package/l1-contracts/out/IEmpire.sol/IEmperor.json +1 -1
  262. package/l1-contracts/out/IEmpire.sol/IEmpire.json +1 -1
  263. package/l1-contracts/out/IFeeJuicePortal.sol/IFeeJuicePortal.json +1 -1
  264. package/l1-contracts/out/IFlushRewarder.sol/IFlushRewarder.json +1 -1
  265. package/l1-contracts/out/IGovernance.sol/IGovernance.json +1 -1
  266. package/l1-contracts/out/IGovernanceProposer.sol/IGovernanceProposer.json +1 -1
  267. package/l1-contracts/out/IInbox.sol/IInbox.json +1 -1
  268. package/l1-contracts/out/IInstance.sol/IInstance.json +1 -1
  269. package/l1-contracts/out/IMintableERC20.sol/IMintableERC20.json +1 -1
  270. package/l1-contracts/out/IOutbox.sol/IOutbox.json +1 -1
  271. package/l1-contracts/out/IPayload.sol/IPayload.json +1 -1
  272. package/l1-contracts/out/IProposerPayload.sol/IProposerPayload.json +1 -1
  273. package/l1-contracts/out/IRegistry.sol/IHaveVersion.json +1 -1
  274. package/l1-contracts/out/IRegistry.sol/IRegistry.json +1 -1
  275. package/l1-contracts/out/IRewardDistributor.sol/IRewardDistributor.json +1 -1
  276. package/l1-contracts/out/IRollup.sol/IRollup.json +1 -1
  277. package/l1-contracts/out/IRollup.sol/IRollupCore.json +1 -1
  278. package/l1-contracts/out/IRootRegistry.sol/IRootRegistry.json +1 -1
  279. package/l1-contracts/out/ISequencerRewardCalculator.sol/ISequencerRewardCalculator.json +1 -0
  280. package/l1-contracts/out/ISlasher.sol/ISlasher.json +1 -1
  281. package/l1-contracts/out/IStaking.sol/IStaking.json +1 -1
  282. package/l1-contracts/out/IStaking.sol/IStakingCore.json +1 -1
  283. package/l1-contracts/out/IValidatorSelection.sol/IValidatorSelection.json +1 -1
  284. package/l1-contracts/out/IValidatorSelection.sol/IValidatorSelectionCore.json +1 -1
  285. package/l1-contracts/out/IVerifier.sol/IVerifier.json +1 -1
  286. package/l1-contracts/out/Inbox.sol/Inbox.json +1 -1
  287. package/l1-contracts/out/InputsExtractor.sol/InputsExtractor.json +1 -1
  288. package/l1-contracts/out/InvalidateLib.sol/InvalidateLib.json +1 -1
  289. package/l1-contracts/out/MerkleLib.sol/MerkleLib.json +1 -1
  290. package/l1-contracts/out/MockERC20.sol/MockERC20.json +1 -1
  291. package/l1-contracts/out/MockERC721.sol/MockERC721.json +1 -1
  292. package/l1-contracts/out/MockFeeJuicePortal.sol/MockFeeJuicePortal.json +1 -1
  293. package/l1-contracts/out/MockVerifier.sol/MockVerifier.json +1 -1
  294. package/l1-contracts/out/MockZKPassportVerifier.sol/IZKPassportVerifier.json +1 -1
  295. package/l1-contracts/out/MockZKPassportVerifier.sol/MockZKPassportVerifier.json +1 -1
  296. package/l1-contracts/out/MultiAdder.sol/IMultiAdder.json +1 -1
  297. package/l1-contracts/out/MultiAdder.sol/MultiAdder.json +1 -1
  298. package/l1-contracts/out/Outbox.sol/Outbox.json +1 -1
  299. package/l1-contracts/out/OuterCount8.sol/HonkVerifier.json +1 -1
  300. package/l1-contracts/out/Proposal.sol/CompressedProposalLib.json +1 -1
  301. package/l1-contracts/out/ProposalLib.sol/ProposalLib.json +1 -1
  302. package/l1-contracts/out/ProposeLib.sol/ProposeLib.json +1 -1
  303. package/l1-contracts/out/ProposedHeaderLib.sol/ProposedHeaderLib.json +1 -1
  304. package/l1-contracts/out/RegisterNewRollupVersionPayload.sol/RegisterNewRollupVersionPayload.json +1 -1
  305. package/l1-contracts/out/Registry.sol/Registry.json +1 -1
  306. package/l1-contracts/out/RewardBooster.sol/IBooster.json +1 -1
  307. package/l1-contracts/out/RewardBooster.sol/IBoosterCore.json +1 -1
  308. package/l1-contracts/out/RewardBooster.sol/RewardBooster.json +1 -1
  309. package/l1-contracts/out/RewardDistributor.sol/RewardDistributor.json +1 -1
  310. package/l1-contracts/out/RewardExtLib.sol/RewardExtLib.json +1 -1
  311. package/l1-contracts/out/RewardLib.sol/BpsLib.json +1 -1
  312. package/l1-contracts/out/RewardLib.sol/RewardLib.json +1 -1
  313. package/l1-contracts/out/Rollup.sol/Rollup.json +1 -1
  314. package/l1-contracts/out/RollupConfiguration.sol/IRollupConfiguration.json +1 -1
  315. package/l1-contracts/out/RollupConfiguration.sol/RollupConfiguration.json +1 -1
  316. package/l1-contracts/out/RollupCore.sol/RollupCore.json +1 -1
  317. package/l1-contracts/out/RollupOperationsExtLib.sol/RollupOperationsExtLib.json +1 -1
  318. package/l1-contracts/out/STFLib.sol/STFLib.json +1 -1
  319. package/l1-contracts/out/SampleLib.sol/SampleLib.json +1 -1
  320. package/l1-contracts/out/SequencerRewardCalculatorLib.sol/SequencerRewardCalculatorLib.json +1 -0
  321. package/l1-contracts/out/SignatureLib.sol/SignatureLib.json +1 -1
  322. package/l1-contracts/out/SlashPayload.sol/SlashPayload.json +1 -1
  323. package/l1-contracts/out/SlashPayloadCloneable.sol/SlashPayloadCloneable.json +1 -1
  324. package/l1-contracts/out/SlashPayloadLib.sol/SlashPayloadLib.json +1 -1
  325. package/l1-contracts/out/SlashRoundLib.sol/CompressedSlashRoundMath.json +1 -1
  326. package/l1-contracts/out/Slasher.sol/Slasher.json +1 -1
  327. package/l1-contracts/out/SlasherDeploymentExtLib.sol/SlasherDeploymentExtLib.json +1 -1
  328. package/l1-contracts/out/SlashingProposer.sol/SlashingProposer.json +1 -1
  329. package/l1-contracts/out/StakingAssetHandler.sol/IStakingAssetHandler.json +1 -1
  330. package/l1-contracts/out/StakingAssetHandler.sol/StakingAssetHandler.json +1 -1
  331. package/l1-contracts/out/StakingLib.sol/StakingLib.json +1 -1
  332. package/l1-contracts/out/StakingQueue.sol/StakingQueueLib.json +1 -1
  333. package/l1-contracts/out/StakingQueueConfig.sol/StakingQueueConfigLib.json +1 -1
  334. package/l1-contracts/out/StdError.sol/stdError.json +1 -1
  335. package/l1-contracts/out/TestERC20.sol/TestERC20.json +1 -1
  336. package/l1-contracts/out/TestPayloads.sol/CallAssetPayload.json +1 -1
  337. package/l1-contracts/out/TestPayloads.sol/CallRevertingPayload.json +1 -1
  338. package/l1-contracts/out/TestPayloads.sol/EmptyPayload.json +1 -1
  339. package/l1-contracts/out/TestPayloads.sol/FakeRollup.json +1 -1
  340. package/l1-contracts/out/TestPayloads.sol/RevertingCall.json +1 -1
  341. package/l1-contracts/out/TestPayloads.sol/UpgradePayload.json +1 -1
  342. package/l1-contracts/out/TimeLib.sol/TimeLib.json +1 -1
  343. package/l1-contracts/out/Tips.sol/ChainTipsLib.json +1 -1
  344. package/l1-contracts/out/ValidatorOperationsExtLib.sol/ValidatorOperationsExtLib.json +1 -1
  345. package/l1-contracts/out/ValidatorSelectionLib.sol/ValidatorSelectionLib.json +1 -1
  346. package/l1-contracts/out/ZKPassportHelper.sol/ZKPassportHelper.json +1 -1
  347. package/l1-contracts/out/ZKPassportRootVerifier.sol/ZKPassportRootVerifier.json +1 -1
  348. package/l1-contracts/out/ZKPassportSubVerifier.sol/ZKPassportSubVerifier.json +1 -1
  349. package/l1-contracts/out/build-info/4cb7b5442b848dcc.json +1 -0
  350. package/l1-contracts/out/generated/HonkVerifier.sol/HonkVerifier.json +1 -1
  351. package/l1-contracts/out/libraries/Errors.sol/Errors.json +1 -1
  352. package/l1-contracts/out/rollup/BlobLib.sol/BlobLib.json +1 -1
  353. package/l1-contracts/out/src/ZKPassportHelper.sol/ZKPassportHelper.json +1 -1
  354. package/l1-contracts/out/src/ZKPassportRootVerifier.sol/ZKPassportRootVerifier.json +1 -1
  355. package/l1-contracts/out/src/ZKPassportSubVerifier.sol/ZKPassportSubVerifier.json +1 -1
  356. package/l1-contracts/script/deploy/RollupConfiguration.sol +5 -19
  357. package/l1-contracts/scripts/network-defaults.json +1 -2
  358. package/l1-contracts/src/core/Rollup.sol +18 -12
  359. package/l1-contracts/src/core/RollupCore.sol +14 -27
  360. package/l1-contracts/src/core/interfaces/IRollup.sol +7 -11
  361. package/l1-contracts/src/core/interfaces/ISequencerRewardCalculator.sol +39 -0
  362. package/l1-contracts/src/core/interfaces/IValidatorSelection.sol +0 -2
  363. package/l1-contracts/src/core/libraries/Errors.sol +3 -6
  364. package/l1-contracts/src/core/libraries/rollup/BlobLib.sol +16 -6
  365. package/l1-contracts/src/core/libraries/rollup/EpochProofExtLib.sol +2 -7
  366. package/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol +4 -12
  367. package/l1-contracts/src/core/libraries/rollup/RewardExtLib.sol +30 -12
  368. package/l1-contracts/src/core/libraries/rollup/RewardLib.sol +187 -250
  369. package/l1-contracts/src/core/libraries/rollup/SequencerRewardCalculatorLib.sol +110 -0
  370. package/l1-contracts/src/core/libraries/rollup/ValidatorSelectionLib.sol +2 -4
  371. package/package.json +1 -1
  372. package/l1-contracts/out/RewardLib.sol/IATP.json +0 -1
  373. package/l1-contracts/out/RewardLib.sol/IATPStaker.json +0 -1
  374. package/l1-contracts/out/build-info/f88e638ee47a1ead.json +0 -1
@@ -1 +1 @@
1
- {"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b50610dfc8061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100bc575f3560e01c80633644e515116100795780633644e5151461015057806370a08231146101585780637ecebe001461018057806395d89b411461019f578063a9059cbb146101a7578063d505accf146101ba578063dd62ed3e146101cd575f5ffd5b806306fdde03146100c0578063095ea7b3146100de5780631624f6c61461010157806318160ddd1461011657806323b872dd14610128578063313ce5671461013b575b5f5ffd5b6100c8610205565b6040516100d5919061093f565b60405180910390f35b6100f16100ec36600461098f565b610294565b60405190151581526020016100d5565b61011461010f366004610a66565b610300565b005b6003545b6040519081526020016100d5565b6100f1610136366004610ada565b61039e565b60025460405160ff90911681526020016100d5565b61011a6104ad565b61011a610166366004610b14565b6001600160a01b03165f9081526004602052604090205490565b61011a61018e366004610b14565b60086020525f908152604090205481565b6100c86104d2565b6100f16101b536600461098f565b6104e1565b6101146101c8366004610b2d565b610575565b61011a6101db366004610b93565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461021390610bc4565b80601f016020809104026020016040519081016040528092919081815260200182805461023f90610bc4565b801561028a5780601f106102615761010080835404028352916020019161028a565b820191905f5260205f20905b81548152906001019060200180831161026d57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102ee9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561034e5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103598482610c48565b5060016103668382610c48565b506002805460ff191660ff831617905561037e6107c7565b6006556103896107df565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f1981146103f7576103d38184610880565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104199084610880565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461044790846108e2565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061049a9087815260200190565b60405180910390a3506001949350505050565b5f6006546104b96107c7565b146104cb576104c66107df565b905090565b5060075490565b60606001805461021390610bc4565b335f908152600460205260408120546104fa9083610880565b335f90815260046020526040808220929092556001600160a01b0385168152205461052590836108e2565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102ee9086815260200190565b428410156105bf5760405162461bcd60e51b815260206004820152601760248201527614115493525517d11150511312539157d1561412549151604a1b6044820152606401610345565b5f60016105ca6104ad565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061061783610d17565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e0016040516020818303038152906040528051906020012060405160200161069092919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156106eb573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107215750876001600160a01b0316816001600160a01b0316145b61075e5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610345565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f61093b806107d863ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f60405161080f9190610d2f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108406107c7565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108d15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610345565b6108db8284610da0565b9392505050565b5f806108ee8385610db3565b9050838110156108db5760405162461bcd60e51b815260206004820152601860248201527745524332303a206164646974696f6e206f766572666c6f7760401b6044820152606401610345565b4690565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461098a575f5ffd5b919050565b5f5f604083850312156109a0575f5ffd5b6109a983610974565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126109da575f5ffd5b813567ffffffffffffffff8111156109f4576109f46109b7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610a2357610a236109b7565b604052818152838201602001851015610a3a575f5ffd5b816020850160208301375f918101602001919091529392505050565b803560ff8116811461098a575f5ffd5b5f5f5f60608486031215610a78575f5ffd5b833567ffffffffffffffff811115610a8e575f5ffd5b610a9a868287016109cb565b935050602084013567ffffffffffffffff811115610ab6575f5ffd5b610ac2868287016109cb565b925050610ad160408501610a56565b90509250925092565b5f5f5f60608486031215610aec575f5ffd5b610af584610974565b9250610b0360208501610974565b929592945050506040919091013590565b5f60208284031215610b24575f5ffd5b6108db82610974565b5f5f5f5f5f5f5f60e0888a031215610b43575f5ffd5b610b4c88610974565b9650610b5a60208901610974565b95506040880135945060608801359350610b7660808901610a56565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610ba4575f5ffd5b610bad83610974565b9150610bbb60208401610974565b90509250929050565b600181811c90821680610bd857607f821691505b602082108103610bf657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c4357805f5260205f20601f840160051c81016020851015610c215750805b601f840160051c820191505b81811015610c40575f8155600101610c2d565b50505b505050565b815167ffffffffffffffff811115610c6257610c626109b7565b610c7681610c708454610bc4565b84610bfc565b6020601f821160018114610ca8575f8315610c915750848201515b5f19600385901b1c1916600184901b178455610c40565b5f84815260208120601f198516915b82811015610cd75787850151825560209485019460019092019101610cb7565b5084821015610cf457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d2857610d28610d03565b5060010190565b5f5f8354610d3c81610bc4565b600182168015610d535760018114610d6857610d95565b60ff1983168652811515820286019350610d95565b865f5260205f205f5b83811015610d8d57815488820152600190910190602001610d71565b505081860193505b509195945050505050565b818103818111156102fa576102fa610d03565b808201808211156102fa576102fa610d0356fea26469706673582212201fe0110cd07194a1b7fca45ee631a09e1eb2d0c9151964cdb0e6649848ffacf664736f6c634300081e0033","sourceMap":"369:7950:32:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100bc575f3560e01c80633644e515116100795780633644e5151461015057806370a08231146101585780637ecebe001461018057806395d89b411461019f578063a9059cbb146101a7578063d505accf146101ba578063dd62ed3e146101cd575f5ffd5b806306fdde03146100c0578063095ea7b3146100de5780631624f6c61461010157806318160ddd1461011657806323b872dd14610128578063313ce5671461013b575b5f5ffd5b6100c8610205565b6040516100d5919061093f565b60405180910390f35b6100f16100ec36600461098f565b610294565b60405190151581526020016100d5565b61011461010f366004610a66565b610300565b005b6003545b6040519081526020016100d5565b6100f1610136366004610ada565b61039e565b60025460405160ff90911681526020016100d5565b61011a6104ad565b61011a610166366004610b14565b6001600160a01b03165f9081526004602052604090205490565b61011a61018e366004610b14565b60086020525f908152604090205481565b6100c86104d2565b6100f16101b536600461098f565b6104e1565b6101146101c8366004610b2d565b610575565b61011a6101db366004610b93565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461021390610bc4565b80601f016020809104026020016040519081016040528092919081815260200182805461023f90610bc4565b801561028a5780601f106102615761010080835404028352916020019161028a565b820191905f5260205f20905b81548152906001019060200180831161026d57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102ee9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561034e5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103598482610c48565b5060016103668382610c48565b506002805460ff191660ff831617905561037e6107c7565b6006556103896107df565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f1981146103f7576103d38184610880565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104199084610880565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461044790846108e2565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061049a9087815260200190565b60405180910390a3506001949350505050565b5f6006546104b96107c7565b146104cb576104c66107df565b905090565b5060075490565b60606001805461021390610bc4565b335f908152600460205260408120546104fa9083610880565b335f90815260046020526040808220929092556001600160a01b0385168152205461052590836108e2565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102ee9086815260200190565b428410156105bf5760405162461bcd60e51b815260206004820152601760248201527614115493525517d11150511312539157d1561412549151604a1b6044820152606401610345565b5f60016105ca6104ad565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061061783610d17565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e0016040516020818303038152906040528051906020012060405160200161069092919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156106eb573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107215750876001600160a01b0316816001600160a01b0316145b61075e5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610345565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f61093b806107d863ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f60405161080f9190610d2f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108406107c7565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108d15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610345565b6108db8284610da0565b9392505050565b5f806108ee8385610db3565b9050838110156108db5760405162461bcd60e51b815260206004820152601860248201527745524332303a206164646974696f6e206f766572666c6f7760401b6044820152606401610345565b4690565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461098a575f5ffd5b919050565b5f5f604083850312156109a0575f5ffd5b6109a983610974565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126109da575f5ffd5b813567ffffffffffffffff8111156109f4576109f46109b7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610a2357610a236109b7565b604052818152838201602001851015610a3a575f5ffd5b816020850160208301375f918101602001919091529392505050565b803560ff8116811461098a575f5ffd5b5f5f5f60608486031215610a78575f5ffd5b833567ffffffffffffffff811115610a8e575f5ffd5b610a9a868287016109cb565b935050602084013567ffffffffffffffff811115610ab6575f5ffd5b610ac2868287016109cb565b925050610ad160408501610a56565b90509250925092565b5f5f5f60608486031215610aec575f5ffd5b610af584610974565b9250610b0360208501610974565b929592945050506040919091013590565b5f60208284031215610b24575f5ffd5b6108db82610974565b5f5f5f5f5f5f5f60e0888a031215610b43575f5ffd5b610b4c88610974565b9650610b5a60208901610974565b95506040880135945060608801359350610b7660808901610a56565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610ba4575f5ffd5b610bad83610974565b9150610bbb60208401610974565b90509250929050565b600181811c90821680610bd857607f821691505b602082108103610bf657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c4357805f5260205f20601f840160051c81016020851015610c215750805b601f840160051c820191505b81811015610c40575f8155600101610c2d565b50505b505050565b815167ffffffffffffffff811115610c6257610c626109b7565b610c7681610c708454610bc4565b84610bfc565b6020601f821160018114610ca8575f8315610c915750848201515b5f19600385901b1c1916600184901b178455610c40565b5f84815260208120601f198516915b82811015610cd75787850151825560209485019460019092019101610cb7565b5084821015610cf457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d2857610d28610d03565b5060010190565b5f5f8354610d3c81610bc4565b600182168015610d535760018114610d6857610d95565b60ff1983168652811515820286019350610d95565b865f5260205f205f5b83811015610d8d57815488820152600190910190602001610d71565b505081860193505b509195945050505050565b818103818111156102fa576102fa610d03565b808201808211156102fa576102fa610d0356fea26469706673582212201fe0110cd07194a1b7fca45ee631a09e1eb2d0c9151964cdb0e6649848ffacf664736f6c634300081e0033","sourceMap":"369:7950:32:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3057:221;;;;;;:::i;:::-;;:::i;:::-;;;1085:14:182;;1078:22;1060:41;;1048:2;1033:18;3057:221:32;920:187:182;2504:365:32;;;;;;:::i;:::-;;:::i;:::-;;1322:100;1403:12;;1322:100;;;2895:25:182;;;2883:2;2868:18;1322:100:32;2749:177:182;3578:472:32;;;;;;:::i;:::-;;:::i;877:92::-;953:9;;877:92;;953:9;;;;3452:36:182;;3440:2;3425:18;877:92:32;3310:184:182;5427:178:32;;;:::i;1428:116::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1520:17:32;1494:7;1520:17;;;:10;:17;;;;;;;1428:116;1970:41;;;;;;:::i;:::-;;;;;;;;;;;;;;775:96;;;:::i;3284:288::-;;;;;;:::i;:::-;;:::i;4239:1182::-;;;;;;:::i;:::-;;:::i;1550:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1659:17:32;;;1633:7;1659:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;1550:142;677:92;725:13;757:5;750:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;:::o;3057:221::-;3167:10;3140:4;3156:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3156:31:32;;;;;;;;;;:40;;;3212:37;3140:4;;3156:31;;3212:37;;;;3190:6;2895:25:182;;2883:2;2868:18;;2749:177;3212:37:32;;;;;;;;-1:-1:-1;3267:4:32;3057:221;;;;;:::o;2504:365::-;2611:11;;;;2610:12;2602:44;;;;-1:-1:-1;;;2602:44:32;;5537:2:182;2602:44:32;;;5519:21:182;5576:2;5556:18;;;5549:30;-1:-1:-1;;;5595:18:182;;;5588:49;5654:18;;2602:44:32;;;;;;;;;2657:5;:13;2665:5;2657;:13;:::i;:::-;-1:-1:-1;2680:7:32;:17;2690:7;2680;:17;:::i;:::-;-1:-1:-1;2707:9:32;:21;;-1:-1:-1;;2707:21:32;;;;;;;2758:14;:12;:14::i;:::-;2739:16;:33;2809:24;:22;:24::i;:::-;2782;:51;-1:-1:-1;;2844:11:32;:18;;-1:-1:-1;;2844:18:32;2858:4;2844:18;;;-1:-1:-1;2504:365:32:o;3578:472::-;-1:-1:-1;;;;;3709:16:32;;3675:4;3709:16;;;:10;:16;;;;;;;;3726:10;3709:28;;;;;;;;-1:-1:-1;;3788:22:32;;3784:80;;3843:21;3848:7;3857:6;3843:4;:21::i;:::-;-1:-1:-1;;;;;3812:16:32;;;;;;:10;:16;;;;;;;;3829:10;3812:28;;;;;;;:52;3784:80;-1:-1:-1;;;;;3899:16:32;;;;;;:10;:16;;;;;;3894:30;;3917:6;3894:4;:30::i;:::-;-1:-1:-1;;;;;3875:16:32;;;;;;;:10;:16;;;;;;:49;;;;3956:14;;;;;;;3951:28;;3972:6;3951:4;:28::i;:::-;-1:-1:-1;;;;;3934:14:32;;;;;;;:10;:14;;;;;;;:45;;;;3995:26;;;;;;;;;;4014:6;2895:25:182;;2883:2;2868:18;;2749:177;3995:26:32;;;;;;;;-1:-1:-1;4039:4:32;;3578:472;-1:-1:-1;;;;3578:472:32:o;5427:178::-;5484:7;5528:16;;5510:14;:12;:14::i;:::-;:34;:88;;5574:24;:22;:24::i;:::-;5503:95;;5427:178;:::o;5510:88::-;-1:-1:-1;5547:24:32;;;5427:178::o;775:96::-;825:13;857:7;850:14;;;;;:::i;3284:288::-;3420:10;3363:4;3409:22;;;:10;:22;;;;;;3404:36;;3433:6;3404:4;:36::i;:::-;3390:10;3379:22;;;;:10;:22;;;;;;:61;;;;-1:-1:-1;;;;;3472:14:32;;;;;;3467:28;;3488:6;3467:4;:28::i;:::-;-1:-1:-1;;;;;3450:14:32;;;;;;:10;:14;;;;;;;:45;;;;3511:32;;3520:10;;3511:32;;;;3536:6;2895:25:182;;2883:2;2868:18;;2749:177;4239:1182:32;4416:15;4404:8;:27;;4396:63;;;;-1:-1:-1;;;4396:63:32;;8009:2:182;4396:63:32;;;7991:21:182;8048:2;8028:18;;;8021:30;-1:-1:-1;;;8067:18:182;;;8060:53;8130:18;;4396:63:32;7807:347:182;4396:63:32;4470:24;4497:717;4617:18;:16;:18::i;:::-;-1:-1:-1;;;;;5026:13:32;;;;;;:6;:13;;;;;:15;;4732:157;;4919:5;;4954:7;;4991:5;;5026:15;;:13;:15;;;:::i;:::-;;;;-1:-1:-1;4692:413:32;;;;;;8718:25:182;;;;-1:-1:-1;;;;;8779:32:182;;;8759:18;;;8752:60;8848:32;;;;8828:18;;;8821:60;8897:18;;;8890:34;8940:19;;;8933:35;8984:19;;;8977:35;;;8690:19;;4692:413:32;;;;;;;;;;;;4657:470;;;;;;4547:598;;;;;;;;-1:-1:-1;;;9281:27:182;;9333:1;9324:11;;9317:27;;;;9369:2;9360:12;;9353:28;9406:2;9397:12;;9023:392;4547:598:32;;;;-1:-1:-1;;4547:598:32;;;;;;;;;4520:639;;4547:598;4520:639;;;;4497:717;;;;;;;;;9647:25:182;9720:4;9708:17;;9688:18;;;9681:45;9742:18;;;9735:34;;;9785:18;;;9778:34;;;9619:19;;4497:717:32;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4497:717:32;;-1:-1:-1;;4497:717:32;;;-1:-1:-1;;;;;;;5233:30:32;;;;;;:59;;;5287:5;-1:-1:-1;;;;;5267:25:32;:16;-1:-1:-1;;;;;5267:25:32;;5233:59;5225:86;;;;-1:-1:-1;;;5225:86:32;;10025:2:182;5225:86:32;;;10007:21:182;10064:2;10044:18;;;10037:30;-1:-1:-1;;;10083:18:182;;;10076:44;10137:18;;5225:86:32;9823:338:182;5225:86:32;-1:-1:-1;;;;;5322:28:32;;;;;;;:10;:28;;;;;;;;:37;;;;;;;;;;;;;:45;;;5383:31;2895:25:182;;;5322:37:32;;5383:31;;;;;2868:18:182;5383:31:32;;;;;;;4386:1035;4239:1182;;;;;;;:::o;8017:300::-;8063:15;8140:12;;8297:13;;;;:::i;:::-;8287:23;;8080:237;;8017:300;:::o;5611:404::-;5676:7;5753:95;5882:5;5866:23;;;;;;:::i;:::-;;;;;;;;5907:14;5939;:12;:14::i;:::-;5725:273;;;;;;11229:25:182;;;;11270:18;;11263:34;;;;11313:18;;;11306:34;11356:18;;;11349:34;5979:4:32;11399:19:182;;;11392:61;11201:19;;5725:273:32;;;;;;;;;;;;5702:306;;;;;;5695:313;;5611:404;:::o;7038:154::-;7097:7;7129:1;7124;:6;;7116:47;;;;-1:-1:-1;;;7116:47:32;;11666:2:182;7116:47:32;;;11648:21:182;11705:2;11685:18;;;11678:30;11744;11724:18;;;11717:58;11792:18;;7116:47:32;11464:352:182;7116:47:32;7180:5;7184:1;7180;:5;:::i;:::-;7173:12;7038:154;-1:-1:-1;;;7038:154:32:o;6859:173::-;6918:7;;6949:5;6953:1;6949;:5;:::i;:::-;6937:17;;6977:1;6972;:6;;6964:43;;;;-1:-1:-1;;;6964:43:32;;12286:2:182;6964:43:32;;;12268:21:182;12325:2;12305:18;;;12298:30;-1:-1:-1;;;12344:18:182;;;12337:54;12408:18;;6964:43:32;12084:348:182;7735:276:32;7918:9;;7735:276::o;14:418:182:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:182;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:300::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:182:o;1112:127::-;1173:10;1168:3;1164:20;1161:1;1154:31;1204:4;1201:1;1194:15;1228:4;1225:1;1218:15;1244:726;1287:5;1340:3;1333:4;1325:6;1321:17;1317:27;1307:55;;1358:1;1355;1348:12;1307:55;1398:6;1385:20;1428:18;1420:6;1417:30;1414:56;;;1450:18;;:::i;:::-;1499:2;1493:9;1591:2;1553:17;;-1:-1:-1;;1549:31:182;;;1582:2;1545:40;1541:54;1529:67;;1626:18;1611:34;;1647:22;;;1608:62;1605:88;;;1673:18;;:::i;:::-;1709:2;1702:22;1733;;;1774:19;;;1795:4;1770:30;1767:39;-1:-1:-1;1764:59:182;;;1819:1;1816;1809:12;1764:59;1883:6;1876:4;1868:6;1864:17;1857:4;1849:6;1845:17;1832:58;1938:1;1910:19;;;1931:4;1906:30;1899:41;;;;1914:6;1244:726;-1:-1:-1;;;1244:726:182:o;1975:156::-;2041:20;;2101:4;2090:16;;2080:27;;2070:55;;2121:1;2118;2111:12;2136:608;2231:6;2239;2247;2300:2;2288:9;2279:7;2275:23;2271:32;2268:52;;;2316:1;2313;2306:12;2268:52;2356:9;2343:23;2389:18;2381:6;2378:30;2375:50;;;2421:1;2418;2411:12;2375:50;2444;2486:7;2477:6;2466:9;2462:22;2444:50;:::i;:::-;2434:60;;;2547:2;2536:9;2532:18;2519:32;2576:18;2566:8;2563:32;2560:52;;;2608:1;2605;2598:12;2560:52;2631;2675:7;2664:8;2653:9;2649:24;2631:52;:::i;:::-;2621:62;;;2702:36;2734:2;2723:9;2719:18;2702:36;:::i;:::-;2692:46;;2136:608;;;;;:::o;2931:374::-;3008:6;3016;3024;3077:2;3065:9;3056:7;3052:23;3048:32;3045:52;;;3093:1;3090;3083:12;3045:52;3116:29;3135:9;3116:29;:::i;:::-;3106:39;;3164:38;3198:2;3187:9;3183:18;3164:38;:::i;:::-;2931:374;;3154:48;;-1:-1:-1;;;3271:2:182;3256:18;;;;3243:32;;2931:374::o;3681:186::-;3740:6;3793:2;3781:9;3772:7;3768:23;3764:32;3761:52;;;3809:1;3806;3799:12;3761:52;3832:29;3851:9;3832:29;:::i;3872:808::-;3983:6;3991;3999;4007;4015;4023;4031;4084:3;4072:9;4063:7;4059:23;4055:33;4052:53;;;4101:1;4098;4091:12;4052:53;4124:29;4143:9;4124:29;:::i;:::-;4114:39;;4172:38;4206:2;4195:9;4191:18;4172:38;:::i;:::-;4162:48;-1:-1:-1;4279:2:182;4264:18;;4251:32;;-1:-1:-1;4380:2:182;4365:18;;4352:32;;-1:-1:-1;4429:37:182;4461:3;4446:19;;4429:37;:::i;:::-;3872:808;;;;-1:-1:-1;3872:808:182;;;;4419:47;4539:3;4524:19;;4511:33;;-1:-1:-1;4643:3:182;4628:19;;;4615:33;;3872:808;-1:-1:-1;;3872:808:182:o;4685:260::-;4753:6;4761;4814:2;4802:9;4793:7;4789:23;4785:32;4782:52;;;4830:1;4827;4820:12;4782:52;4853:29;4872:9;4853:29;:::i;:::-;4843:39;;4901:38;4935:2;4924:9;4920:18;4901:38;:::i;:::-;4891:48;;4685:260;;;;;:::o;4950:380::-;5029:1;5025:12;;;;5072;;;5093:61;;5147:4;5139:6;5135:17;5125:27;;5093:61;5200:2;5192:6;5189:14;5169:18;5166:38;5163:161;;5246:10;5241:3;5237:20;5234:1;5227:31;5281:4;5278:1;5271:15;5309:4;5306:1;5299:15;5163:161;;4950:380;;;:::o;5809:518::-;5911:2;5906:3;5903:11;5900:421;;;5947:5;5944:1;5937:16;5991:4;5988:1;5978:18;6061:2;6049:10;6045:19;6042:1;6038:27;6032:4;6028:38;6097:4;6085:10;6082:20;6079:47;;;-1:-1:-1;6120:4:182;6079:47;6175:2;6170:3;6166:12;6163:1;6159:20;6153:4;6149:31;6139:41;;6230:81;6248:2;6241:5;6238:13;6230:81;;;6307:1;6293:16;;6274:1;6263:13;6230:81;;;6234:3;;5900:421;5809:518;;;:::o;6503:1299::-;6629:3;6623:10;6656:18;6648:6;6645:30;6642:56;;;6678:18;;:::i;:::-;6707:97;6797:6;6757:38;6789:4;6783:11;6757:38;:::i;:::-;6751:4;6707:97;:::i;:::-;6853:4;6884:2;6873:14;;6901:1;6896:649;;;;7589:1;7606:6;7603:89;;;-1:-1:-1;7658:19:182;;;7652:26;7603:89;-1:-1:-1;;6460:1:182;6456:11;;;6452:24;6448:29;6438:40;6484:1;6480:11;;;6435:57;7705:81;;6866:930;;6896:649;5756:1;5749:14;;;5793:4;5780:18;;-1:-1:-1;;6932:20:182;;;7050:222;7064:7;7061:1;7058:14;7050:222;;;7146:19;;;7140:26;7125:42;;7253:4;7238:20;;;;7206:1;7194:14;;;;7080:12;7050:222;;;7054:3;7300:6;7291:7;7288:19;7285:201;;;7361:19;;;7355:26;-1:-1:-1;;7444:1:182;7440:14;;;7456:3;7436:24;7432:37;7428:42;7413:58;7398:74;;7285:201;-1:-1:-1;;;;7532:1:182;7516:14;;;7512:22;7499:36;;-1:-1:-1;6503:1299:182:o;8159:127::-;8220:10;8215:3;8211:20;8208:1;8201:31;8251:4;8248:1;8241:15;8275:4;8272:1;8265:15;8291:135;8330:3;8351:17;;;8348:43;;8371:18;;:::i;:::-;-1:-1:-1;8418:1:182;8407:13;;8291:135::o;10166:799::-;10296:3;10325:1;10358:6;10352:13;10388:36;10414:9;10388:36;:::i;:::-;10455:1;10440:17;;10466:133;;;;10613:1;10608:332;;;;10433:507;;10466:133;-1:-1:-1;;10499:24:182;;10487:37;;10572:14;;10565:22;10553:35;;10544:45;;;-1:-1:-1;10466:133:182;;10608:332;10639:6;10636:1;10629:17;10687:4;10684:1;10674:18;10714:1;10728:166;10742:6;10739:1;10736:13;10728:166;;;10822:14;;10809:11;;;10802:35;10878:1;10865:15;;;;10764:4;10757:12;10728:166;;;10732:3;;10923:6;10918:3;10914:16;10907:23;;10433:507;-1:-1:-1;10956:3:182;;10166:799;-1:-1:-1;;;;;10166:799:182:o;11821:128::-;11888:9;;;11909:11;;;11906:37;;;11923:18;;:::i;11954:125::-;12019:9;;;12040:10;;;12037:36;;;12053:18;;:::i","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","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"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"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\":\"owner\",\"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\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"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\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"},\"initialize(string,string,uint8)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"notice\":\"This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"initialize(string,string,uint8)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"}},"version":1},"id":32}
1
+ {"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b50610dfc8061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100bc575f3560e01c80633644e515116100795780633644e5151461015057806370a08231146101585780637ecebe001461018057806395d89b411461019f578063a9059cbb146101a7578063d505accf146101ba578063dd62ed3e146101cd575f5ffd5b806306fdde03146100c0578063095ea7b3146100de5780631624f6c61461010157806318160ddd1461011657806323b872dd14610128578063313ce5671461013b575b5f5ffd5b6100c8610205565b6040516100d5919061093f565b60405180910390f35b6100f16100ec36600461098f565b610294565b60405190151581526020016100d5565b61011461010f366004610a66565b610300565b005b6003545b6040519081526020016100d5565b6100f1610136366004610ada565b61039e565b60025460405160ff90911681526020016100d5565b61011a6104ad565b61011a610166366004610b14565b6001600160a01b03165f9081526004602052604090205490565b61011a61018e366004610b14565b60086020525f908152604090205481565b6100c86104d2565b6100f16101b536600461098f565b6104e1565b6101146101c8366004610b2d565b610575565b61011a6101db366004610b93565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461021390610bc4565b80601f016020809104026020016040519081016040528092919081815260200182805461023f90610bc4565b801561028a5780601f106102615761010080835404028352916020019161028a565b820191905f5260205f20905b81548152906001019060200180831161026d57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102ee9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561034e5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103598482610c48565b5060016103668382610c48565b506002805460ff191660ff831617905561037e6107c7565b6006556103896107df565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f1981146103f7576103d38184610880565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104199084610880565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461044790846108e2565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061049a9087815260200190565b60405180910390a3506001949350505050565b5f6006546104b96107c7565b146104cb576104c66107df565b905090565b5060075490565b60606001805461021390610bc4565b335f908152600460205260408120546104fa9083610880565b335f90815260046020526040808220929092556001600160a01b0385168152205461052590836108e2565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102ee9086815260200190565b428410156105bf5760405162461bcd60e51b815260206004820152601760248201527614115493525517d11150511312539157d1561412549151604a1b6044820152606401610345565b5f60016105ca6104ad565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061061783610d17565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e0016040516020818303038152906040528051906020012060405160200161069092919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156106eb573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107215750876001600160a01b0316816001600160a01b0316145b61075e5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610345565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f61093b806107d863ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f60405161080f9190610d2f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108406107c7565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108d15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610345565b6108db8284610da0565b9392505050565b5f806108ee8385610db3565b9050838110156108db5760405162461bcd60e51b815260206004820152601860248201527745524332303a206164646974696f6e206f766572666c6f7760401b6044820152606401610345565b4690565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461098a575f5ffd5b919050565b5f5f604083850312156109a0575f5ffd5b6109a983610974565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126109da575f5ffd5b813567ffffffffffffffff8111156109f4576109f46109b7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610a2357610a236109b7565b604052818152838201602001851015610a3a575f5ffd5b816020850160208301375f918101602001919091529392505050565b803560ff8116811461098a575f5ffd5b5f5f5f60608486031215610a78575f5ffd5b833567ffffffffffffffff811115610a8e575f5ffd5b610a9a868287016109cb565b935050602084013567ffffffffffffffff811115610ab6575f5ffd5b610ac2868287016109cb565b925050610ad160408501610a56565b90509250925092565b5f5f5f60608486031215610aec575f5ffd5b610af584610974565b9250610b0360208501610974565b929592945050506040919091013590565b5f60208284031215610b24575f5ffd5b6108db82610974565b5f5f5f5f5f5f5f60e0888a031215610b43575f5ffd5b610b4c88610974565b9650610b5a60208901610974565b95506040880135945060608801359350610b7660808901610a56565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610ba4575f5ffd5b610bad83610974565b9150610bbb60208401610974565b90509250929050565b600181811c90821680610bd857607f821691505b602082108103610bf657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c4357805f5260205f20601f840160051c81016020851015610c215750805b601f840160051c820191505b81811015610c40575f8155600101610c2d565b50505b505050565b815167ffffffffffffffff811115610c6257610c626109b7565b610c7681610c708454610bc4565b84610bfc565b6020601f821160018114610ca8575f8315610c915750848201515b5f19600385901b1c1916600184901b178455610c40565b5f84815260208120601f198516915b82811015610cd75787850151825560209485019460019092019101610cb7565b5084821015610cf457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d2857610d28610d03565b5060010190565b5f5f8354610d3c81610bc4565b600182168015610d535760018114610d6857610d95565b60ff1983168652811515820286019350610d95565b865f5260205f205f5b83811015610d8d57815488820152600190910190602001610d71565b505081860193505b509195945050505050565b818103818111156102fa576102fa610d03565b808201808211156102fa576102fa610d0356fea26469706673582212201fe0110cd07194a1b7fca45ee631a09e1eb2d0c9151964cdb0e6649848ffacf664736f6c634300081e0033","sourceMap":"369:7950:32:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100bc575f3560e01c80633644e515116100795780633644e5151461015057806370a08231146101585780637ecebe001461018057806395d89b411461019f578063a9059cbb146101a7578063d505accf146101ba578063dd62ed3e146101cd575f5ffd5b806306fdde03146100c0578063095ea7b3146100de5780631624f6c61461010157806318160ddd1461011657806323b872dd14610128578063313ce5671461013b575b5f5ffd5b6100c8610205565b6040516100d5919061093f565b60405180910390f35b6100f16100ec36600461098f565b610294565b60405190151581526020016100d5565b61011461010f366004610a66565b610300565b005b6003545b6040519081526020016100d5565b6100f1610136366004610ada565b61039e565b60025460405160ff90911681526020016100d5565b61011a6104ad565b61011a610166366004610b14565b6001600160a01b03165f9081526004602052604090205490565b61011a61018e366004610b14565b60086020525f908152604090205481565b6100c86104d2565b6100f16101b536600461098f565b6104e1565b6101146101c8366004610b2d565b610575565b61011a6101db366004610b93565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461021390610bc4565b80601f016020809104026020016040519081016040528092919081815260200182805461023f90610bc4565b801561028a5780601f106102615761010080835404028352916020019161028a565b820191905f5260205f20905b81548152906001019060200180831161026d57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102ee9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561034e5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103598482610c48565b5060016103668382610c48565b506002805460ff191660ff831617905561037e6107c7565b6006556103896107df565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f1981146103f7576103d38184610880565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104199084610880565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461044790846108e2565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061049a9087815260200190565b60405180910390a3506001949350505050565b5f6006546104b96107c7565b146104cb576104c66107df565b905090565b5060075490565b60606001805461021390610bc4565b335f908152600460205260408120546104fa9083610880565b335f90815260046020526040808220929092556001600160a01b0385168152205461052590836108e2565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102ee9086815260200190565b428410156105bf5760405162461bcd60e51b815260206004820152601760248201527614115493525517d11150511312539157d1561412549151604a1b6044820152606401610345565b5f60016105ca6104ad565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061061783610d17565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e0016040516020818303038152906040528051906020012060405160200161069092919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156106eb573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107215750876001600160a01b0316816001600160a01b0316145b61075e5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610345565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f61093b806107d863ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f60405161080f9190610d2f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108406107c7565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108d15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610345565b6108db8284610da0565b9392505050565b5f806108ee8385610db3565b9050838110156108db5760405162461bcd60e51b815260206004820152601860248201527745524332303a206164646974696f6e206f766572666c6f7760401b6044820152606401610345565b4690565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461098a575f5ffd5b919050565b5f5f604083850312156109a0575f5ffd5b6109a983610974565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126109da575f5ffd5b813567ffffffffffffffff8111156109f4576109f46109b7565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610a2357610a236109b7565b604052818152838201602001851015610a3a575f5ffd5b816020850160208301375f918101602001919091529392505050565b803560ff8116811461098a575f5ffd5b5f5f5f60608486031215610a78575f5ffd5b833567ffffffffffffffff811115610a8e575f5ffd5b610a9a868287016109cb565b935050602084013567ffffffffffffffff811115610ab6575f5ffd5b610ac2868287016109cb565b925050610ad160408501610a56565b90509250925092565b5f5f5f60608486031215610aec575f5ffd5b610af584610974565b9250610b0360208501610974565b929592945050506040919091013590565b5f60208284031215610b24575f5ffd5b6108db82610974565b5f5f5f5f5f5f5f60e0888a031215610b43575f5ffd5b610b4c88610974565b9650610b5a60208901610974565b95506040880135945060608801359350610b7660808901610a56565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610ba4575f5ffd5b610bad83610974565b9150610bbb60208401610974565b90509250929050565b600181811c90821680610bd857607f821691505b602082108103610bf657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c4357805f5260205f20601f840160051c81016020851015610c215750805b601f840160051c820191505b81811015610c40575f8155600101610c2d565b50505b505050565b815167ffffffffffffffff811115610c6257610c626109b7565b610c7681610c708454610bc4565b84610bfc565b6020601f821160018114610ca8575f8315610c915750848201515b5f19600385901b1c1916600184901b178455610c40565b5f84815260208120601f198516915b82811015610cd75787850151825560209485019460019092019101610cb7565b5084821015610cf457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d2857610d28610d03565b5060010190565b5f5f8354610d3c81610bc4565b600182168015610d535760018114610d6857610d95565b60ff1983168652811515820286019350610d95565b865f5260205f205f5b83811015610d8d57815488820152600190910190602001610d71565b505081860193505b509195945050505050565b818103818111156102fa576102fa610d03565b808201808211156102fa576102fa610d0356fea26469706673582212201fe0110cd07194a1b7fca45ee631a09e1eb2d0c9151964cdb0e6649848ffacf664736f6c634300081e0033","sourceMap":"369:7950:32:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3057:221;;;;;;:::i;:::-;;:::i;:::-;;;1085:14:184;;1078:22;1060:41;;1048:2;1033:18;3057:221:32;920:187:184;2504:365:32;;;;;;:::i;:::-;;:::i;:::-;;1322:100;1403:12;;1322:100;;;2895:25:184;;;2883:2;2868:18;1322:100:32;2749:177:184;3578:472:32;;;;;;:::i;:::-;;:::i;877:92::-;953:9;;877:92;;953:9;;;;3452:36:184;;3440:2;3425:18;877:92:32;3310:184:184;5427:178:32;;;:::i;1428:116::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1520:17:32;1494:7;1520:17;;;:10;:17;;;;;;;1428:116;1970:41;;;;;;:::i;:::-;;;;;;;;;;;;;;775:96;;;:::i;3284:288::-;;;;;;:::i;:::-;;:::i;4239:1182::-;;;;;;:::i;:::-;;:::i;1550:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1659:17:32;;;1633:7;1659:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;1550:142;677:92;725:13;757:5;750:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;:::o;3057:221::-;3167:10;3140:4;3156:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3156:31:32;;;;;;;;;;:40;;;3212:37;3140:4;;3156:31;;3212:37;;;;3190:6;2895:25:184;;2883:2;2868:18;;2749:177;3212:37:32;;;;;;;;-1:-1:-1;3267:4:32;3057:221;;;;;:::o;2504:365::-;2611:11;;;;2610:12;2602:44;;;;-1:-1:-1;;;2602:44:32;;5537:2:184;2602:44:32;;;5519:21:184;5576:2;5556:18;;;5549:30;-1:-1:-1;;;5595:18:184;;;5588:49;5654:18;;2602:44:32;;;;;;;;;2657:5;:13;2665:5;2657;:13;:::i;:::-;-1:-1:-1;2680:7:32;:17;2690:7;2680;:17;:::i;:::-;-1:-1:-1;2707:9:32;:21;;-1:-1:-1;;2707:21:32;;;;;;;2758:14;:12;:14::i;:::-;2739:16;:33;2809:24;:22;:24::i;:::-;2782;:51;-1:-1:-1;;2844:11:32;:18;;-1:-1:-1;;2844:18:32;2858:4;2844:18;;;-1:-1:-1;2504:365:32:o;3578:472::-;-1:-1:-1;;;;;3709:16:32;;3675:4;3709:16;;;:10;:16;;;;;;;;3726:10;3709:28;;;;;;;;-1:-1:-1;;3788:22:32;;3784:80;;3843:21;3848:7;3857:6;3843:4;:21::i;:::-;-1:-1:-1;;;;;3812:16:32;;;;;;:10;:16;;;;;;;;3829:10;3812:28;;;;;;;:52;3784:80;-1:-1:-1;;;;;3899:16:32;;;;;;:10;:16;;;;;;3894:30;;3917:6;3894:4;:30::i;:::-;-1:-1:-1;;;;;3875:16:32;;;;;;;:10;:16;;;;;;:49;;;;3956:14;;;;;;;3951:28;;3972:6;3951:4;:28::i;:::-;-1:-1:-1;;;;;3934:14:32;;;;;;;:10;:14;;;;;;;:45;;;;3995:26;;;;;;;;;;4014:6;2895:25:184;;2883:2;2868:18;;2749:177;3995:26:32;;;;;;;;-1:-1:-1;4039:4:32;;3578:472;-1:-1:-1;;;;3578:472:32:o;5427:178::-;5484:7;5528:16;;5510:14;:12;:14::i;:::-;:34;:88;;5574:24;:22;:24::i;:::-;5503:95;;5427:178;:::o;5510:88::-;-1:-1:-1;5547:24:32;;;5427:178::o;775:96::-;825:13;857:7;850:14;;;;;:::i;3284:288::-;3420:10;3363:4;3409:22;;;:10;:22;;;;;;3404:36;;3433:6;3404:4;:36::i;:::-;3390:10;3379:22;;;;:10;:22;;;;;;:61;;;;-1:-1:-1;;;;;3472:14:32;;;;;;3467:28;;3488:6;3467:4;:28::i;:::-;-1:-1:-1;;;;;3450:14:32;;;;;;:10;:14;;;;;;;:45;;;;3511:32;;3520:10;;3511:32;;;;3536:6;2895:25:184;;2883:2;2868:18;;2749:177;4239:1182:32;4416:15;4404:8;:27;;4396:63;;;;-1:-1:-1;;;4396:63:32;;8009:2:184;4396:63:32;;;7991:21:184;8048:2;8028:18;;;8021:30;-1:-1:-1;;;8067:18:184;;;8060:53;8130:18;;4396:63:32;7807:347:184;4396:63:32;4470:24;4497:717;4617:18;:16;:18::i;:::-;-1:-1:-1;;;;;5026:13:32;;;;;;:6;:13;;;;;:15;;4732:157;;4919:5;;4954:7;;4991:5;;5026:15;;:13;:15;;;:::i;:::-;;;;-1:-1:-1;4692:413:32;;;;;;8718:25:184;;;;-1:-1:-1;;;;;8779:32:184;;;8759:18;;;8752:60;8848:32;;;;8828:18;;;8821:60;8897:18;;;8890:34;8940:19;;;8933:35;8984:19;;;8977:35;;;8690:19;;4692:413:32;;;;;;;;;;;;4657:470;;;;;;4547:598;;;;;;;;-1:-1:-1;;;9281:27:184;;9333:1;9324:11;;9317:27;;;;9369:2;9360:12;;9353:28;9406:2;9397:12;;9023:392;4547:598:32;;;;-1:-1:-1;;4547:598:32;;;;;;;;;4520:639;;4547:598;4520:639;;;;4497:717;;;;;;;;;9647:25:184;9720:4;9708:17;;9688:18;;;9681:45;9742:18;;;9735:34;;;9785:18;;;9778:34;;;9619:19;;4497:717:32;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4497:717:32;;-1:-1:-1;;4497:717:32;;;-1:-1:-1;;;;;;;5233:30:32;;;;;;:59;;;5287:5;-1:-1:-1;;;;;5267:25:32;:16;-1:-1:-1;;;;;5267:25:32;;5233:59;5225:86;;;;-1:-1:-1;;;5225:86:32;;10025:2:184;5225:86:32;;;10007:21:184;10064:2;10044:18;;;10037:30;-1:-1:-1;;;10083:18:184;;;10076:44;10137:18;;5225:86:32;9823:338:184;5225:86:32;-1:-1:-1;;;;;5322:28:32;;;;;;;:10;:28;;;;;;;;:37;;;;;;;;;;;;;:45;;;5383:31;2895:25:184;;;5322:37:32;;5383:31;;;;;2868:18:184;5383:31:32;;;;;;;4386:1035;4239:1182;;;;;;;:::o;8017:300::-;8063:15;8140:12;;8297:13;;;;:::i;:::-;8287:23;;8080:237;;8017:300;:::o;5611:404::-;5676:7;5753:95;5882:5;5866:23;;;;;;:::i;:::-;;;;;;;;5907:14;5939;:12;:14::i;:::-;5725:273;;;;;;11229:25:184;;;;11270:18;;11263:34;;;;11313:18;;;11306:34;11356:18;;;11349:34;5979:4:32;11399:19:184;;;11392:61;11201:19;;5725:273:32;;;;;;;;;;;;5702:306;;;;;;5695:313;;5611:404;:::o;7038:154::-;7097:7;7129:1;7124;:6;;7116:47;;;;-1:-1:-1;;;7116:47:32;;11666:2:184;7116:47:32;;;11648:21:184;11705:2;11685:18;;;11678:30;11744;11724:18;;;11717:58;11792:18;;7116:47:32;11464:352:184;7116:47:32;7180:5;7184:1;7180;:5;:::i;:::-;7173:12;7038:154;-1:-1:-1;;;7038:154:32:o;6859:173::-;6918:7;;6949:5;6953:1;6949;:5;:::i;:::-;6937:17;;6977:1;6972;:6;;6964:43;;;;-1:-1:-1;;;6964:43:32;;12286:2:184;6964:43:32;;;12268:21:184;12325:2;12305:18;;;12298:30;-1:-1:-1;;;12344:18:184;;;12337:54;12408:18;;6964:43:32;12084:348:184;7735:276:32;7918:9;;7735:276::o;14:418:184:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:184;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:300::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:184:o;1112:127::-;1173:10;1168:3;1164:20;1161:1;1154:31;1204:4;1201:1;1194:15;1228:4;1225:1;1218:15;1244:726;1287:5;1340:3;1333:4;1325:6;1321:17;1317:27;1307:55;;1358:1;1355;1348:12;1307:55;1398:6;1385:20;1428:18;1420:6;1417:30;1414:56;;;1450:18;;:::i;:::-;1499:2;1493:9;1591:2;1553:17;;-1:-1:-1;;1549:31:184;;;1582:2;1545:40;1541:54;1529:67;;1626:18;1611:34;;1647:22;;;1608:62;1605:88;;;1673:18;;:::i;:::-;1709:2;1702:22;1733;;;1774:19;;;1795:4;1770:30;1767:39;-1:-1:-1;1764:59:184;;;1819:1;1816;1809:12;1764:59;1883:6;1876:4;1868:6;1864:17;1857:4;1849:6;1845:17;1832:58;1938:1;1910:19;;;1931:4;1906:30;1899:41;;;;1914:6;1244:726;-1:-1:-1;;;1244:726:184:o;1975:156::-;2041:20;;2101:4;2090:16;;2080:27;;2070:55;;2121:1;2118;2111:12;2136:608;2231:6;2239;2247;2300:2;2288:9;2279:7;2275:23;2271:32;2268:52;;;2316:1;2313;2306:12;2268:52;2356:9;2343:23;2389:18;2381:6;2378:30;2375:50;;;2421:1;2418;2411:12;2375:50;2444;2486:7;2477:6;2466:9;2462:22;2444:50;:::i;:::-;2434:60;;;2547:2;2536:9;2532:18;2519:32;2576:18;2566:8;2563:32;2560:52;;;2608:1;2605;2598:12;2560:52;2631;2675:7;2664:8;2653:9;2649:24;2631:52;:::i;:::-;2621:62;;;2702:36;2734:2;2723:9;2719:18;2702:36;:::i;:::-;2692:46;;2136:608;;;;;:::o;2931:374::-;3008:6;3016;3024;3077:2;3065:9;3056:7;3052:23;3048:32;3045:52;;;3093:1;3090;3083:12;3045:52;3116:29;3135:9;3116:29;:::i;:::-;3106:39;;3164:38;3198:2;3187:9;3183:18;3164:38;:::i;:::-;2931:374;;3154:48;;-1:-1:-1;;;3271:2:184;3256:18;;;;3243:32;;2931:374::o;3681:186::-;3740:6;3793:2;3781:9;3772:7;3768:23;3764:32;3761:52;;;3809:1;3806;3799:12;3761:52;3832:29;3851:9;3832:29;:::i;3872:808::-;3983:6;3991;3999;4007;4015;4023;4031;4084:3;4072:9;4063:7;4059:23;4055:33;4052:53;;;4101:1;4098;4091:12;4052:53;4124:29;4143:9;4124:29;:::i;:::-;4114:39;;4172:38;4206:2;4195:9;4191:18;4172:38;:::i;:::-;4162:48;-1:-1:-1;4279:2:184;4264:18;;4251:32;;-1:-1:-1;4380:2:184;4365:18;;4352:32;;-1:-1:-1;4429:37:184;4461:3;4446:19;;4429:37;:::i;:::-;3872:808;;;;-1:-1:-1;3872:808:184;;;;4419:47;4539:3;4524:19;;4511:33;;-1:-1:-1;4643:3:184;4628:19;;;4615:33;;3872:808;-1:-1:-1;;3872:808:184:o;4685:260::-;4753:6;4761;4814:2;4802:9;4793:7;4789:23;4785:32;4782:52;;;4830:1;4827;4820:12;4782:52;4853:29;4872:9;4853:29;:::i;:::-;4843:39;;4901:38;4935:2;4924:9;4920:18;4901:38;:::i;:::-;4891:48;;4685:260;;;;;:::o;4950:380::-;5029:1;5025:12;;;;5072;;;5093:61;;5147:4;5139:6;5135:17;5125:27;;5093:61;5200:2;5192:6;5189:14;5169:18;5166:38;5163:161;;5246:10;5241:3;5237:20;5234:1;5227:31;5281:4;5278:1;5271:15;5309:4;5306:1;5299:15;5163:161;;4950:380;;;:::o;5809:518::-;5911:2;5906:3;5903:11;5900:421;;;5947:5;5944:1;5937:16;5991:4;5988:1;5978:18;6061:2;6049:10;6045:19;6042:1;6038:27;6032:4;6028:38;6097:4;6085:10;6082:20;6079:47;;;-1:-1:-1;6120:4:184;6079:47;6175:2;6170:3;6166:12;6163:1;6159:20;6153:4;6149:31;6139:41;;6230:81;6248:2;6241:5;6238:13;6230:81;;;6307:1;6293:16;;6274:1;6263:13;6230:81;;;6234:3;;5900:421;5809:518;;;:::o;6503:1299::-;6629:3;6623:10;6656:18;6648:6;6645:30;6642:56;;;6678:18;;:::i;:::-;6707:97;6797:6;6757:38;6789:4;6783:11;6757:38;:::i;:::-;6751:4;6707:97;:::i;:::-;6853:4;6884:2;6873:14;;6901:1;6896:649;;;;7589:1;7606:6;7603:89;;;-1:-1:-1;7658:19:184;;;7652:26;7603:89;-1:-1:-1;;6460:1:184;6456:11;;;6452:24;6448:29;6438:40;6484:1;6480:11;;;6435:57;7705:81;;6866:930;;6896:649;5756:1;5749:14;;;5793:4;5780:18;;-1:-1:-1;;6932:20:184;;;7050:222;7064:7;7061:1;7058:14;7050:222;;;7146:19;;;7140:26;7125:42;;7253:4;7238:20;;;;7206:1;7194:14;;;;7080:12;7050:222;;;7054:3;7300:6;7291:7;7288:19;7285:201;;;7361:19;;;7355:26;-1:-1:-1;;7444:1:184;7440:14;;;7456:3;7436:24;7432:37;7428:42;7413:58;7398:74;;7285:201;-1:-1:-1;;;;7532:1:184;7516:14;;;7512:22;7499:36;;-1:-1:-1;6503:1299:184:o;8159:127::-;8220:10;8215:3;8211:20;8208:1;8201:31;8251:4;8248:1;8241:15;8275:4;8272:1;8265:15;8291:135;8330:3;8351:17;;;8348:43;;8371:18;;:::i;:::-;-1:-1:-1;8418:1:184;8407:13;;8291:135::o;10166:799::-;10296:3;10325:1;10358:6;10352:13;10388:36;10414:9;10388:36;:::i;:::-;10455:1;10440:17;;10466:133;;;;10613:1;10608:332;;;;10433:507;;10466:133;-1:-1:-1;;10499:24:184;;10487:37;;10572:14;;10565:22;10553:35;;10544:45;;;-1:-1:-1;10466:133:184;;10608:332;10639:6;10636:1;10629:17;10687:4;10684:1;10674:18;10714:1;10728:166;10742:6;10739:1;10736:13;10728:166;;;10822:14;;10809:11;;;10802:35;10878:1;10865:15;;;;10764:4;10757:12;10728:166;;;10732:3;;10923:6;10918:3;10914:16;10907:23;;10433:507;-1:-1:-1;10956:3:184;;10166:799;-1:-1:-1;;;;;10166:799:184:o;11821:128::-;11888:9;;;11909:11;;;11906:37;;;11923:18;;:::i;11954:125::-;12019:9;;;12040:10;;;12037:36;;;12053:18;;:::i","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","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"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"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\":\"owner\",\"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\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"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\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"},\"initialize(string,string,uint8)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"notice\":\"This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"initialize(string,string,uint8)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"}},"version":1},"id":32}
@@ -1 +1 @@
1
- {"abi":[{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b50610ebd8061001c5f395ff3fe6080604052600436106100bb575f3560e01c80636352211e1161006d5780636352211e146101ba57806370a08231146101d957806395d89b4114610206578063a22cb4651461021a578063b88d4fde14610239578063c87b56dd1461024c578063e985e9c51461026c575f5ffd5b806301ffc9a7146100bf57806306fdde03146100f3578063081812fc14610114578063095ea7b31461016057806323b872dd1461017557806342842e0e146101885780634cd88b761461019b575b5f5ffd5b3480156100ca575f5ffd5b506100de6100d9366004610966565b6102b3565b60405190151581526020015b60405180910390f35b3480156100fe575f5ffd5b50610107610304565b6040516100ea91906109b6565b34801561011f575f5ffd5b5061014861012e3660046109c8565b5f908152600460205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016100ea565b61017361016e3660046109f5565b610393565b005b610173610183366004610a1d565b61045a565b610173610196366004610a1d565b61062c565b3480156101a6575f5ffd5b506101736101b5366004610b00565b6106f4565b3480156101c5575f5ffd5b506101486101d43660046109c8565b610767565b3480156101e4575f5ffd5b506101f86101f3366004610b65565b6107bd565b6040519081526020016100ea565b348015610211575f5ffd5b5061010761081e565b348015610225575f5ffd5b50610173610234366004610b7e565b61082d565b610173610247366004610bb7565b610898565b348015610257575f5ffd5b506101076102663660046109c8565b50606090565b348015610277575f5ffd5b506100de610286366004610c2e565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f6301ffc9a760e01b6001600160e01b0319831614806102e357506380ac58cd60e01b6001600160e01b03198316145b806102fe5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60605f805461031290610c5f565b80601f016020809104026020016040519081016040528092919081815260200182805461033e90610c5f565b80156103895780601f1061036057610100808354040283529160200191610389565b820191905f5260205f20905b81548152906001019060200180831161036c57829003601f168201915b5050505050905090565b5f818152600260205260409020546001600160a01b0316338114806103da57506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6103ff5760405162461bcd60e51b81526004016103f690610c97565b60405180910390fd5b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f818152600260205260409020546001600160a01b038481169116146104af5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103f6565b6001600160a01b0382166104f95760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103f6565b336001600160a01b038416148061053257506001600160a01b0383165f90815260056020908152604080832033845290915290205460ff165b8061055257505f818152600460205260409020546001600160a01b031633145b61056e5760405162461bcd60e51b81526004016103f690610c97565b6001600160a01b0383165f90815260036020526040812080549161059183610cd3565b90915550506001600160a01b0382165f9081526003602052604081208054916105b983610ce8565b90915550505f81815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61063783838361045a565b813b15806106d35750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af11580156106a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c79190610d00565b6001600160e01b031916145b6106ef5760405162461bcd60e51b81526004016103f690610d1b565b505050565b60065460ff161561073d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064016103f6565b5f6107488382610d90565b5060016107558282610d90565b50506006805460ff1916600117905550565b5f818152600260205260409020546001600160a01b0316806107b85760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103f6565b919050565b5f6001600160a01b0382166108035760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103f6565b506001600160a01b03165f9081526003602052604090205490565b60606001805461031290610c5f565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6108a384848461045a565b823b158061092c5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906108e0903390899088908890600401610e4b565b6020604051808303815f875af11580156108fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109209190610d00565b6001600160e01b031916145b6109485760405162461bcd60e51b81526004016103f690610d1b565b50505050565b6001600160e01b031981168114610963575f5ffd5b50565b5f60208284031215610976575f5ffd5b81356109818161094e565b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109816020830184610988565b5f602082840312156109d8575f5ffd5b5035919050565b80356001600160a01b03811681146107b8575f5ffd5b5f5f60408385031215610a06575f5ffd5b610a0f836109df565b946020939093013593505050565b5f5f5f60608486031215610a2f575f5ffd5b610a38846109df565b9250610a46602085016109df565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff841115610a8557610a85610a57565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715610ab457610ab4610a57565b604052838152905080828401851015610acb575f5ffd5b838360208301375f60208583010152509392505050565b5f82601f830112610af1575f5ffd5b61098183833560208501610a6b565b5f5f60408385031215610b11575f5ffd5b823567ffffffffffffffff811115610b27575f5ffd5b610b3385828601610ae2565b925050602083013567ffffffffffffffff811115610b4f575f5ffd5b610b5b85828601610ae2565b9150509250929050565b5f60208284031215610b75575f5ffd5b610981826109df565b5f5f60408385031215610b8f575f5ffd5b610b98836109df565b915060208301358015158114610bac575f5ffd5b809150509250929050565b5f5f5f5f60808587031215610bca575f5ffd5b610bd3856109df565b9350610be1602086016109df565b925060408501359150606085013567ffffffffffffffff811115610c03575f5ffd5b8501601f81018713610c13575f5ffd5b610c2287823560208401610a6b565b91505092959194509250565b5f5f60408385031215610c3f575f5ffd5b610c48836109df565b9150610c56602084016109df565b90509250929050565b600181811c90821680610c7357607f821691505b602082108103610c9157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f81610ce157610ce1610cbf565b505f190190565b5f60018201610cf957610cf9610cbf565b5060010190565b5f60208284031215610d10575f5ffd5b81516109818161094e565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b601f8211156106ef57805f5260205f20601f840160051c81016020851015610d6a5750805b601f840160051c820191505b81811015610d89575f8155600101610d76565b5050505050565b815167ffffffffffffffff811115610daa57610daa610a57565b610dbe81610db88454610c5f565b84610d45565b6020601f821160018114610df0575f8315610dd95750848201515b5f19600385901b1c1916600184901b178455610d89565b5f84815260208120601f198516915b82811015610e1f5787850151825560209485019460019092019101610dff565b5084821015610e3c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90610e7d90830184610988565b969550505050505056fea26469706673582212204b2edb09243aefe45d07ffc83d0f60cc5eab28711f66b58730dc79dac7a2440364736f6c634300081e0033","sourceMap":"403:7498:33:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100bb575f3560e01c80636352211e1161006d5780636352211e146101ba57806370a08231146101d957806395d89b4114610206578063a22cb4651461021a578063b88d4fde14610239578063c87b56dd1461024c578063e985e9c51461026c575f5ffd5b806301ffc9a7146100bf57806306fdde03146100f3578063081812fc14610114578063095ea7b31461016057806323b872dd1461017557806342842e0e146101885780634cd88b761461019b575b5f5ffd5b3480156100ca575f5ffd5b506100de6100d9366004610966565b6102b3565b60405190151581526020015b60405180910390f35b3480156100fe575f5ffd5b50610107610304565b6040516100ea91906109b6565b34801561011f575f5ffd5b5061014861012e3660046109c8565b5f908152600460205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016100ea565b61017361016e3660046109f5565b610393565b005b610173610183366004610a1d565b61045a565b610173610196366004610a1d565b61062c565b3480156101a6575f5ffd5b506101736101b5366004610b00565b6106f4565b3480156101c5575f5ffd5b506101486101d43660046109c8565b610767565b3480156101e4575f5ffd5b506101f86101f3366004610b65565b6107bd565b6040519081526020016100ea565b348015610211575f5ffd5b5061010761081e565b348015610225575f5ffd5b50610173610234366004610b7e565b61082d565b610173610247366004610bb7565b610898565b348015610257575f5ffd5b506101076102663660046109c8565b50606090565b348015610277575f5ffd5b506100de610286366004610c2e565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f6301ffc9a760e01b6001600160e01b0319831614806102e357506380ac58cd60e01b6001600160e01b03198316145b806102fe5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60605f805461031290610c5f565b80601f016020809104026020016040519081016040528092919081815260200182805461033e90610c5f565b80156103895780601f1061036057610100808354040283529160200191610389565b820191905f5260205f20905b81548152906001019060200180831161036c57829003601f168201915b5050505050905090565b5f818152600260205260409020546001600160a01b0316338114806103da57506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6103ff5760405162461bcd60e51b81526004016103f690610c97565b60405180910390fd5b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f818152600260205260409020546001600160a01b038481169116146104af5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103f6565b6001600160a01b0382166104f95760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103f6565b336001600160a01b038416148061053257506001600160a01b0383165f90815260056020908152604080832033845290915290205460ff165b8061055257505f818152600460205260409020546001600160a01b031633145b61056e5760405162461bcd60e51b81526004016103f690610c97565b6001600160a01b0383165f90815260036020526040812080549161059183610cd3565b90915550506001600160a01b0382165f9081526003602052604081208054916105b983610ce8565b90915550505f81815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61063783838361045a565b813b15806106d35750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af11580156106a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c79190610d00565b6001600160e01b031916145b6106ef5760405162461bcd60e51b81526004016103f690610d1b565b505050565b60065460ff161561073d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064016103f6565b5f6107488382610d90565b5060016107558282610d90565b50506006805460ff1916600117905550565b5f818152600260205260409020546001600160a01b0316806107b85760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103f6565b919050565b5f6001600160a01b0382166108035760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103f6565b506001600160a01b03165f9081526003602052604090205490565b60606001805461031290610c5f565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6108a384848461045a565b823b158061092c5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906108e0903390899088908890600401610e4b565b6020604051808303815f875af11580156108fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109209190610d00565b6001600160e01b031916145b6109485760405162461bcd60e51b81526004016103f690610d1b565b50505050565b6001600160e01b031981168114610963575f5ffd5b50565b5f60208284031215610976575f5ffd5b81356109818161094e565b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109816020830184610988565b5f602082840312156109d8575f5ffd5b5035919050565b80356001600160a01b03811681146107b8575f5ffd5b5f5f60408385031215610a06575f5ffd5b610a0f836109df565b946020939093013593505050565b5f5f5f60608486031215610a2f575f5ffd5b610a38846109df565b9250610a46602085016109df565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff841115610a8557610a85610a57565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715610ab457610ab4610a57565b604052838152905080828401851015610acb575f5ffd5b838360208301375f60208583010152509392505050565b5f82601f830112610af1575f5ffd5b61098183833560208501610a6b565b5f5f60408385031215610b11575f5ffd5b823567ffffffffffffffff811115610b27575f5ffd5b610b3385828601610ae2565b925050602083013567ffffffffffffffff811115610b4f575f5ffd5b610b5b85828601610ae2565b9150509250929050565b5f60208284031215610b75575f5ffd5b610981826109df565b5f5f60408385031215610b8f575f5ffd5b610b98836109df565b915060208301358015158114610bac575f5ffd5b809150509250929050565b5f5f5f5f60808587031215610bca575f5ffd5b610bd3856109df565b9350610be1602086016109df565b925060408501359150606085013567ffffffffffffffff811115610c03575f5ffd5b8501601f81018713610c13575f5ffd5b610c2287823560208401610a6b565b91505092959194509250565b5f5f60408385031215610c3f575f5ffd5b610c48836109df565b9150610c56602084016109df565b90509250929050565b600181811c90821680610c7357607f821691505b602082108103610c9157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f81610ce157610ce1610cbf565b505f190190565b5f60018201610cf957610cf9610cbf565b5060010190565b5f60208284031215610d10575f5ffd5b81516109818161094e565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b601f8211156106ef57805f5260205f20601f840160051c81016020851015610d6a5750805b601f840160051c820191505b81811015610d89575f8155600101610d76565b5050505050565b815167ffffffffffffffff811115610daa57610daa610a57565b610dbe81610db88454610c5f565b84610d45565b6020601f821160018114610df0575f8315610dd95750848201515b5f19600385901b1c1916600184901b178455610d89565b5f84815260208120601f198516915b82811015610e1f5787850151825560209485019460019092019101610dff565b5084821015610e3c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90610e7d90830184610988565b969550505050505056fea26469706673582212204b2edb09243aefe45d07ffc83d0f60cc5eab28711f66b58730dc79dac7a2440364736f6c634300081e0033","sourceMap":"403:7498:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:332;;;;;;;;;;-1:-1:-1;5376:332:33;;;;;:::i;:::-;;:::i;:::-;;;565:14:182;;558:22;540:41;;528:2;513:18;5376:332:33;;;;;;;;693:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1949:120::-;;;;;;;;;;-1:-1:-1;1949:120:33;;;;;:::i;:::-;2020:7;2046:16;;;:12;:16;;;;;;-1:-1:-1;;;;;2046:16:33;;1949:120;;;;-1:-1:-1;;;;;1506:32:182;;;1488:51;;1476:2;1461:18;1949:120:33;1342:203:182;3128:301:33;;;;;;:::i;:::-;;:::i;:::-;;3654:693;;;;;;:::i;:::-;;:::i;4353:386::-;;;;;;:::i;:::-;;:::i;2728:212::-;;;;;;;;;;-1:-1:-1;2728:212:33;;;;;:::i;:::-;;:::i;1280:158::-;;;;;;;;;;-1:-1:-1;1280:158:33;;;;;:::i;:::-;;:::i;1444:177::-;;;;;;;;;;-1:-1:-1;1444:177:33;;;;;:::i;:::-;;:::i;:::-;;;4372:25:182;;;4360:2;4345:18;1444:177:33;4226::182;791:96:33;;;;;;;;;;;;;:::i;3435:213::-;;;;;;;;;;-1:-1:-1;3435:213:33;;;;;:::i;:::-;;:::i;4745:443::-;;;;;;:::i;:::-;;:::i;893:85::-;;;;;;;;;;-1:-1:-1;893:85:33;;;;;:::i;:::-;-1:-1:-1;961:13:33;;893:85;2075:161;;;;;;;;;;-1:-1:-1;2075:161:33;;;;;:::i;:::-;-1:-1:-1;;;;;2195:24:33;;;2172:4;2195:24;;;:17;:24;;;;;;;;:34;;;;;;;;;;;;;;;2075:161;5376:332;5461:4;-1:-1:-1;;;;;;;;;5484:25:33;;;;:100;;-1:-1:-1;;;;;;;;;;5559:25:33;;;5484:100;:175;;;-1:-1:-1;;;;;;;;;;5634:25:33;;;5484:175;5477:182;5376:332;-1:-1:-1;;5376:332:33:o;693:92::-;741:13;773:5;766:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:92;:::o;3128:301::-;3216:13;3232:12;;;:8;:12;;;;;;-1:-1:-1;;;;;3232:12:33;3263:10;:19;;;:59;;-1:-1:-1;;;;;;3286:24:33;;;;;;:17;:24;;;;;;;;3311:10;3286:36;;;;;;;;;;3263:59;3255:86;;;;-1:-1:-1;;;3255:86:33;;;;;;;:::i;:::-;;;;;;;;;3352:16;;;;:12;:16;;;;;;:26;;-1:-1:-1;;;;;;3352:26:33;-1:-1:-1;;;;;3352:26:33;;;;;;;;;3394:28;;3352:16;;3394:28;;;;;;;3206:223;3128:301;;:::o;3654:693::-;3772:12;;;;:8;:12;;;;;;-1:-1:-1;;;;;3764:20:33;;;3772:12;;3764:20;3756:43;;;;-1:-1:-1;;;3756:43:33;;6673:2:182;3756:43:33;;;6655:21:182;6712:2;6692:18;;;6685:30;-1:-1:-1;;;6731:18:182;;;6724:40;6781:18;;3756:43:33;6471:334:182;3756:43:33;-1:-1:-1;;;;;3818:16:33;;3810:46;;;;-1:-1:-1;;;3810:46:33;;7012:2:182;3810:46:33;;;6994:21:182;7051:2;7031:18;;;7024:30;-1:-1:-1;;;7070:18:182;;;7063:47;7127:18;;3810:46:33;6810:341:182;3810:46:33;3888:10;-1:-1:-1;;;;;3888:18:33;;;;:57;;-1:-1:-1;;;;;;3910:23:33;;;;;;:17;:23;;;;;;;;3934:10;3910:35;;;;;;;;;;3888:57;:91;;;-1:-1:-1;3963:16:33;;;;:12;:16;;;;;;-1:-1:-1;;;;;3963:16:33;3949:10;:30;3888:91;3867:152;;;;-1:-1:-1;;;3867:152:33;;;;;;;:::i;:::-;-1:-1:-1;;;;;4195:16:33;;;;;;:10;:16;;;;;:18;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4224:14:33;;;;;;:10;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;4251:12:33;;;;:8;:12;;;;;;;;:17;;-1:-1:-1;;;;;4251:17:33;;;-1:-1:-1;;;;;;4251:17:33;;;;;;;;4286:12;:16;;;;;;4279:23;;;;;;;4318:22;;4260:2;;4251:17;;4318:22;;;;;;3654:693;;;:::o;4353:386::-;4459:26;4472:4;4478:2;4482;4459:12;:26::i;:::-;7833:18;;7878:14;;4517:173;;-1:-1:-1;4553:67:33;;-1:-1:-1;;;4553:67:33;;;4595:10;4553:67;;;7836:51:182;-1:-1:-1;;;;;7923:32:182;;;7903:18;;;7896:60;7972:18;;;7965:34;;;8035:3;8015:18;;;8008:31;-1:-1:-1;8055:19:182;;;8048:30;4644:46:33;;4553:41;;;;4644:46;;8095:19:182;;4553:67:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4553:137:33;;4517:173;4496:236;;;;-1:-1:-1;;;4496:236:33;;;;;;;:::i;:::-;4353:386;;;:::o;2728:212::-;2818:11;;;;2817:12;2809:44;;;;-1:-1:-1;;;2809:44:33;;8926:2:182;2809:44:33;;;8908:21:182;8965:2;8945:18;;;8938:30;-1:-1:-1;;;8984:18:182;;;8977:49;9043:18;;2809:44:33;8724:343:182;2809:44:33;2864:5;:13;2872:5;2864;:13;:::i;:::-;-1:-1:-1;2887:7:33;:17;2897:7;2887;:17;:::i;:::-;-1:-1:-1;;2915:11:33;:18;;-1:-1:-1;;2915:18:33;2929:4;2915:18;;;-1:-1:-1;2728:212:33:o;1280:158::-;1347:13;1389:12;;;:8;:12;;;;;;-1:-1:-1;;;;;1389:12:33;;1372:59;;;;-1:-1:-1;;;1372:59:33;;11398:2:182;1372:59:33;;;11380:21:182;11437:2;11417:18;;;11410:30;-1:-1:-1;;;11456:18:182;;;11449:40;11506:18;;1372:59:33;11196:334:182;1372:59:33;1280:158;;;:::o;1444:177::-;1516:7;-1:-1:-1;;;;;1543:19:33;;1535:44;;;;-1:-1:-1;;;1535:44:33;;11737:2:182;1535:44:33;;;11719:21:182;11776:2;11756:18;;;11749:30;-1:-1:-1;;;11795:18:182;;;11788:42;11847:18;;1535:44:33;11535:336:182;1535:44:33;-1:-1:-1;;;;;;1597:17:33;;;;;:10;:17;;;;;;;1444:177::o;791:96::-;841:13;873:7;866:14;;;;;:::i;3435:213::-;3547:10;3529:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;3529:39:33;;;;;;;;;;;;:50;;-1:-1:-1;;3529:50:33;;;;;;;;;;3595:46;;540:41:182;;;3529:39:33;;3547:10;3595:46;;513:18:182;3595:46:33;;;;;;;3435:213;;:::o;4745:443::-;4906:26;4919:4;4925:2;4929;4906:12;:26::i;:::-;7833:18;;7878:14;;4964:175;;-1:-1:-1;5000:69:33;;-1:-1:-1;;;5000:69:33;;;5093:46;-1:-1:-1;;;;;5000:41:33;;;5093:46;;5000:69;;5042:10;;5054:4;;5060:2;;5064:4;;5000:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;5000:139:33;;4964:175;4943:238;;;;-1:-1:-1;;;4943:238:33;;;;;;;:::i;:::-;4745:443;;;;:::o;14:131:182:-;-1:-1:-1;;;;;;88:32:182;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:182:o;592:289::-;634:3;672:5;666:12;699:6;694:3;687:19;755:6;748:4;741:5;737:16;730:4;725:3;721:14;715:47;807:1;800:4;791:6;786:3;782:16;778:27;771:38;870:4;863:2;859:7;854:2;846:6;842:15;838:29;833:3;829:39;825:50;818:57;;;592:289;;;;:::o;886:220::-;1035:2;1024:9;1017:21;998:4;1055:45;1096:2;1085:9;1081:18;1073:6;1055:45;:::i;1111:226::-;1170:6;1223:2;1211:9;1202:7;1198:23;1194:32;1191:52;;;1239:1;1236;1229:12;1191:52;-1:-1:-1;1284:23:182;;1111:226;-1:-1:-1;1111:226:182:o;1550:173::-;1618:20;;-1:-1:-1;;;;;1667:31:182;;1657:42;;1647:70;;1713:1;1710;1703:12;1728:300;1796:6;1804;1857:2;1845:9;1836:7;1832:23;1828:32;1825:52;;;1873:1;1870;1863:12;1825:52;1896:29;1915:9;1896:29;:::i;:::-;1886:39;1994:2;1979:18;;;;1966:32;;-1:-1:-1;;;1728:300:182:o;2033:374::-;2110:6;2118;2126;2179:2;2167:9;2158:7;2154:23;2150:32;2147:52;;;2195:1;2192;2185:12;2147:52;2218:29;2237:9;2218:29;:::i;:::-;2208:39;;2266:38;2300:2;2289:9;2285:18;2266:38;:::i;:::-;2033:374;;2256:48;;-1:-1:-1;;;2373:2:182;2358:18;;;;2345:32;;2033:374::o;2412:127::-;2473:10;2468:3;2464:20;2461:1;2454:31;2504:4;2501:1;2494:15;2528:4;2525:1;2518:15;2544:716;2609:5;2641:1;2665:18;2657:6;2654:30;2651:56;;;2687:18;;:::i;:::-;-1:-1:-1;2842:2:182;2836:9;-1:-1:-1;;2755:2:182;2734:15;;2730:29;;2900:2;2888:15;2884:29;2872:42;;2965:22;;;2944:18;2929:34;;2926:62;2923:88;;;2991:18;;:::i;:::-;3027:2;3020:22;3075;;;3060:6;-1:-1:-1;3060:6:182;3112:16;;;3109:25;-1:-1:-1;3106:45:182;;;3147:1;3144;3137:12;3106:45;3197:6;3192:3;3185:4;3177:6;3173:17;3160:44;3252:1;3245:4;3236:6;3228;3224:19;3220:30;3213:41;;2544:716;;;;;:::o;3265:222::-;3308:5;3361:3;3354:4;3346:6;3342:17;3338:27;3328:55;;3379:1;3376;3369:12;3328:55;3401:80;3477:3;3468:6;3455:20;3448:4;3440:6;3436:17;3401:80;:::i;3492:538::-;3580:6;3588;3641:2;3629:9;3620:7;3616:23;3612:32;3609:52;;;3657:1;3654;3647:12;3609:52;3697:9;3684:23;3730:18;3722:6;3719:30;3716:50;;;3762:1;3759;3752:12;3716:50;3785;3827:7;3818:6;3807:9;3803:22;3785:50;:::i;:::-;3775:60;;;3888:2;3877:9;3873:18;3860:32;3917:18;3907:8;3904:32;3901:52;;;3949:1;3946;3939:12;3901:52;3972;4016:7;4005:8;3994:9;3990:24;3972:52;:::i;:::-;3962:62;;;3492:538;;;;;:::o;4035:186::-;4094:6;4147:2;4135:9;4126:7;4122:23;4118:32;4115:52;;;4163:1;4160;4153:12;4115:52;4186:29;4205:9;4186:29;:::i;4408:347::-;4473:6;4481;4534:2;4522:9;4513:7;4509:23;4505:32;4502:52;;;4550:1;4547;4540:12;4502:52;4573:29;4592:9;4573:29;:::i;:::-;4563:39;;4652:2;4641:9;4637:18;4624:32;4699:5;4692:13;4685:21;4678:5;4675:32;4665:60;;4721:1;4718;4711:12;4665:60;4744:5;4734:15;;;4408:347;;;;;:::o;4760:713::-;4855:6;4863;4871;4879;4932:3;4920:9;4911:7;4907:23;4903:33;4900:53;;;4949:1;4946;4939:12;4900:53;4972:29;4991:9;4972:29;:::i;:::-;4962:39;;5020:38;5054:2;5043:9;5039:18;5020:38;:::i;:::-;5010:48;-1:-1:-1;5127:2:182;5112:18;;5099:32;;-1:-1:-1;5206:2:182;5191:18;;5178:32;5233:18;5222:30;;5219:50;;;5265:1;5262;5255:12;5219:50;5288:22;;5341:4;5333:13;;5329:27;-1:-1:-1;5319:55:182;;5370:1;5367;5360:12;5319:55;5393:74;5459:7;5454:2;5441:16;5436:2;5432;5428:11;5393:74;:::i;:::-;5383:84;;;4760:713;;;;;;;:::o;5478:260::-;5546:6;5554;5607:2;5595:9;5586:7;5582:23;5578:32;5575:52;;;5623:1;5620;5613:12;5575:52;5646:29;5665:9;5646:29;:::i;:::-;5636:39;;5694:38;5728:2;5717:9;5713:18;5694:38;:::i;:::-;5684:48;;5478:260;;;;;:::o;5743:380::-;5822:1;5818:12;;;;5865;;;5886:61;;5940:4;5932:6;5928:17;5918:27;;5886:61;5993:2;5985:6;5982:14;5962:18;5959:38;5956:161;;6039:10;6034:3;6030:20;6027:1;6020:31;6074:4;6071:1;6064:15;6102:4;6099:1;6092:15;5956:161;;5743:380;;;:::o;6128:338::-;6330:2;6312:21;;;6369:2;6349:18;;;6342:30;-1:-1:-1;;;6403:2:182;6388:18;;6381:44;6457:2;6442:18;;6128:338::o;7156:127::-;7217:10;7212:3;7208:20;7205:1;7198:31;7248:4;7245:1;7238:15;7272:4;7269:1;7262:15;7288:136;7327:3;7355:5;7345:39;;7364:18;;:::i;:::-;-1:-1:-1;;;7400:18:182;;7288:136::o;7429:135::-;7468:3;7489:17;;;7486:43;;7509:18;;:::i;:::-;-1:-1:-1;7556:1:182;7545:13;;7429:135::o;8125:249::-;8194:6;8247:2;8235:9;8226:7;8222:23;8218:32;8215:52;;;8263:1;8260;8253:12;8215:52;8295:9;8289:16;8314:30;8338:5;8314:30;:::i;8379:340::-;8581:2;8563:21;;;8620:2;8600:18;;;8593:30;-1:-1:-1;;;8654:2:182;8639:18;;8632:46;8710:2;8695:18;;8379:340::o;9198:518::-;9300:2;9295:3;9292:11;9289:421;;;9336:5;9333:1;9326:16;9380:4;9377:1;9367:18;9450:2;9438:10;9434:19;9431:1;9427:27;9421:4;9417:38;9486:4;9474:10;9471:20;9468:47;;;-1:-1:-1;9509:4:182;9468:47;9564:2;9559:3;9555:12;9552:1;9548:20;9542:4;9538:31;9528:41;;9619:81;9637:2;9630:5;9627:13;9619:81;;;9696:1;9682:16;;9663:1;9652:13;9619:81;;;9623:3;;9198:518;;;:::o;9892:1299::-;10018:3;10012:10;10045:18;10037:6;10034:30;10031:56;;;10067:18;;:::i;:::-;10096:97;10186:6;10146:38;10178:4;10172:11;10146:38;:::i;:::-;10140:4;10096:97;:::i;:::-;10242:4;10273:2;10262:14;;10290:1;10285:649;;;;10978:1;10995:6;10992:89;;;-1:-1:-1;11047:19:182;;;11041:26;10992:89;-1:-1:-1;;9849:1:182;9845:11;;;9841:24;9837:29;9827:40;9873:1;9869:11;;;9824:57;11094:81;;10255:930;;10285:649;9145:1;9138:14;;;9182:4;9169:18;;-1:-1:-1;;10321:20:182;;;10439:222;10453:7;10450:1;10447:14;10439:222;;;10535:19;;;10529:26;10514:42;;10642:4;10627:20;;;;10595:1;10583:14;;;;10469:12;10439:222;;;10443:3;10689:6;10680:7;10677:19;10674:201;;;10750:19;;;10744:26;-1:-1:-1;;10833:1:182;10829:14;;;10845:3;10825:24;10821:37;10817:42;10802:58;10787:74;;10674:201;-1:-1:-1;;;;10921:1:182;10905:14;;;10901:22;10888:36;;-1:-1:-1;9892:1299:182:o;11876:485::-;-1:-1:-1;;;;;12107:32:182;;;12089:51;;12176:32;;12171:2;12156:18;;12149:60;12240:2;12225:18;;12218:34;;;12288:3;12283:2;12268:18;;12261:31;;;-1:-1:-1;;12309:46:182;;12335:19;;12327:6;12309:46;:::i;:::-;12301:54;11876:485;-1:-1:-1;;;;;;11876:485:182:o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","initialize(string,string)":"4cd88b76","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"initialize(string,string)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"}},\"notice\":\"This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC721.sol\":\"MockERC721\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"initialize(string,string)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"name()":{"notice":"A descriptive name for a collection of NFTs in this contract"},"symbol()":{"notice":"An abbreviated name for NFTs in this contract"}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC721.sol":"MockERC721"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"}},"version":1},"id":33}
1
+ {"abi":[{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b50610ebd8061001c5f395ff3fe6080604052600436106100bb575f3560e01c80636352211e1161006d5780636352211e146101ba57806370a08231146101d957806395d89b4114610206578063a22cb4651461021a578063b88d4fde14610239578063c87b56dd1461024c578063e985e9c51461026c575f5ffd5b806301ffc9a7146100bf57806306fdde03146100f3578063081812fc14610114578063095ea7b31461016057806323b872dd1461017557806342842e0e146101885780634cd88b761461019b575b5f5ffd5b3480156100ca575f5ffd5b506100de6100d9366004610966565b6102b3565b60405190151581526020015b60405180910390f35b3480156100fe575f5ffd5b50610107610304565b6040516100ea91906109b6565b34801561011f575f5ffd5b5061014861012e3660046109c8565b5f908152600460205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016100ea565b61017361016e3660046109f5565b610393565b005b610173610183366004610a1d565b61045a565b610173610196366004610a1d565b61062c565b3480156101a6575f5ffd5b506101736101b5366004610b00565b6106f4565b3480156101c5575f5ffd5b506101486101d43660046109c8565b610767565b3480156101e4575f5ffd5b506101f86101f3366004610b65565b6107bd565b6040519081526020016100ea565b348015610211575f5ffd5b5061010761081e565b348015610225575f5ffd5b50610173610234366004610b7e565b61082d565b610173610247366004610bb7565b610898565b348015610257575f5ffd5b506101076102663660046109c8565b50606090565b348015610277575f5ffd5b506100de610286366004610c2e565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f6301ffc9a760e01b6001600160e01b0319831614806102e357506380ac58cd60e01b6001600160e01b03198316145b806102fe5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60605f805461031290610c5f565b80601f016020809104026020016040519081016040528092919081815260200182805461033e90610c5f565b80156103895780601f1061036057610100808354040283529160200191610389565b820191905f5260205f20905b81548152906001019060200180831161036c57829003601f168201915b5050505050905090565b5f818152600260205260409020546001600160a01b0316338114806103da57506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6103ff5760405162461bcd60e51b81526004016103f690610c97565b60405180910390fd5b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f818152600260205260409020546001600160a01b038481169116146104af5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103f6565b6001600160a01b0382166104f95760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103f6565b336001600160a01b038416148061053257506001600160a01b0383165f90815260056020908152604080832033845290915290205460ff165b8061055257505f818152600460205260409020546001600160a01b031633145b61056e5760405162461bcd60e51b81526004016103f690610c97565b6001600160a01b0383165f90815260036020526040812080549161059183610cd3565b90915550506001600160a01b0382165f9081526003602052604081208054916105b983610ce8565b90915550505f81815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61063783838361045a565b813b15806106d35750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af11580156106a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c79190610d00565b6001600160e01b031916145b6106ef5760405162461bcd60e51b81526004016103f690610d1b565b505050565b60065460ff161561073d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064016103f6565b5f6107488382610d90565b5060016107558282610d90565b50506006805460ff1916600117905550565b5f818152600260205260409020546001600160a01b0316806107b85760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103f6565b919050565b5f6001600160a01b0382166108035760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103f6565b506001600160a01b03165f9081526003602052604090205490565b60606001805461031290610c5f565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6108a384848461045a565b823b158061092c5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906108e0903390899088908890600401610e4b565b6020604051808303815f875af11580156108fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109209190610d00565b6001600160e01b031916145b6109485760405162461bcd60e51b81526004016103f690610d1b565b50505050565b6001600160e01b031981168114610963575f5ffd5b50565b5f60208284031215610976575f5ffd5b81356109818161094e565b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109816020830184610988565b5f602082840312156109d8575f5ffd5b5035919050565b80356001600160a01b03811681146107b8575f5ffd5b5f5f60408385031215610a06575f5ffd5b610a0f836109df565b946020939093013593505050565b5f5f5f60608486031215610a2f575f5ffd5b610a38846109df565b9250610a46602085016109df565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff841115610a8557610a85610a57565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715610ab457610ab4610a57565b604052838152905080828401851015610acb575f5ffd5b838360208301375f60208583010152509392505050565b5f82601f830112610af1575f5ffd5b61098183833560208501610a6b565b5f5f60408385031215610b11575f5ffd5b823567ffffffffffffffff811115610b27575f5ffd5b610b3385828601610ae2565b925050602083013567ffffffffffffffff811115610b4f575f5ffd5b610b5b85828601610ae2565b9150509250929050565b5f60208284031215610b75575f5ffd5b610981826109df565b5f5f60408385031215610b8f575f5ffd5b610b98836109df565b915060208301358015158114610bac575f5ffd5b809150509250929050565b5f5f5f5f60808587031215610bca575f5ffd5b610bd3856109df565b9350610be1602086016109df565b925060408501359150606085013567ffffffffffffffff811115610c03575f5ffd5b8501601f81018713610c13575f5ffd5b610c2287823560208401610a6b565b91505092959194509250565b5f5f60408385031215610c3f575f5ffd5b610c48836109df565b9150610c56602084016109df565b90509250929050565b600181811c90821680610c7357607f821691505b602082108103610c9157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f81610ce157610ce1610cbf565b505f190190565b5f60018201610cf957610cf9610cbf565b5060010190565b5f60208284031215610d10575f5ffd5b81516109818161094e565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b601f8211156106ef57805f5260205f20601f840160051c81016020851015610d6a5750805b601f840160051c820191505b81811015610d89575f8155600101610d76565b5050505050565b815167ffffffffffffffff811115610daa57610daa610a57565b610dbe81610db88454610c5f565b84610d45565b6020601f821160018114610df0575f8315610dd95750848201515b5f19600385901b1c1916600184901b178455610d89565b5f84815260208120601f198516915b82811015610e1f5787850151825560209485019460019092019101610dff565b5084821015610e3c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90610e7d90830184610988565b969550505050505056fea26469706673582212204b2edb09243aefe45d07ffc83d0f60cc5eab28711f66b58730dc79dac7a2440364736f6c634300081e0033","sourceMap":"403:7498:33:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100bb575f3560e01c80636352211e1161006d5780636352211e146101ba57806370a08231146101d957806395d89b4114610206578063a22cb4651461021a578063b88d4fde14610239578063c87b56dd1461024c578063e985e9c51461026c575f5ffd5b806301ffc9a7146100bf57806306fdde03146100f3578063081812fc14610114578063095ea7b31461016057806323b872dd1461017557806342842e0e146101885780634cd88b761461019b575b5f5ffd5b3480156100ca575f5ffd5b506100de6100d9366004610966565b6102b3565b60405190151581526020015b60405180910390f35b3480156100fe575f5ffd5b50610107610304565b6040516100ea91906109b6565b34801561011f575f5ffd5b5061014861012e3660046109c8565b5f908152600460205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016100ea565b61017361016e3660046109f5565b610393565b005b610173610183366004610a1d565b61045a565b610173610196366004610a1d565b61062c565b3480156101a6575f5ffd5b506101736101b5366004610b00565b6106f4565b3480156101c5575f5ffd5b506101486101d43660046109c8565b610767565b3480156101e4575f5ffd5b506101f86101f3366004610b65565b6107bd565b6040519081526020016100ea565b348015610211575f5ffd5b5061010761081e565b348015610225575f5ffd5b50610173610234366004610b7e565b61082d565b610173610247366004610bb7565b610898565b348015610257575f5ffd5b506101076102663660046109c8565b50606090565b348015610277575f5ffd5b506100de610286366004610c2e565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f6301ffc9a760e01b6001600160e01b0319831614806102e357506380ac58cd60e01b6001600160e01b03198316145b806102fe5750635b5e139f60e01b6001600160e01b03198316145b92915050565b60605f805461031290610c5f565b80601f016020809104026020016040519081016040528092919081815260200182805461033e90610c5f565b80156103895780601f1061036057610100808354040283529160200191610389565b820191905f5260205f20905b81548152906001019060200180831161036c57829003601f168201915b5050505050905090565b5f818152600260205260409020546001600160a01b0316338114806103da57506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6103ff5760405162461bcd60e51b81526004016103f690610c97565b60405180910390fd5b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f818152600260205260409020546001600160a01b038481169116146104af5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103f6565b6001600160a01b0382166104f95760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103f6565b336001600160a01b038416148061053257506001600160a01b0383165f90815260056020908152604080832033845290915290205460ff165b8061055257505f818152600460205260409020546001600160a01b031633145b61056e5760405162461bcd60e51b81526004016103f690610c97565b6001600160a01b0383165f90815260036020526040812080549161059183610cd3565b90915550506001600160a01b0382165f9081526003602052604081208054916105b983610ce8565b90915550505f81815260026020908152604080832080546001600160a01b038088166001600160a01b031992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61063783838361045a565b813b15806106d35750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af11580156106a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c79190610d00565b6001600160e01b031916145b6106ef5760405162461bcd60e51b81526004016103f690610d1b565b505050565b60065460ff161561073d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064016103f6565b5f6107488382610d90565b5060016107558282610d90565b50506006805460ff1916600117905550565b5f818152600260205260409020546001600160a01b0316806107b85760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103f6565b919050565b5f6001600160a01b0382166108035760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103f6565b506001600160a01b03165f9081526003602052604090205490565b60606001805461031290610c5f565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6108a384848461045a565b823b158061092c5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906108e0903390899088908890600401610e4b565b6020604051808303815f875af11580156108fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109209190610d00565b6001600160e01b031916145b6109485760405162461bcd60e51b81526004016103f690610d1b565b50505050565b6001600160e01b031981168114610963575f5ffd5b50565b5f60208284031215610976575f5ffd5b81356109818161094e565b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109816020830184610988565b5f602082840312156109d8575f5ffd5b5035919050565b80356001600160a01b03811681146107b8575f5ffd5b5f5f60408385031215610a06575f5ffd5b610a0f836109df565b946020939093013593505050565b5f5f5f60608486031215610a2f575f5ffd5b610a38846109df565b9250610a46602085016109df565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff841115610a8557610a85610a57565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715610ab457610ab4610a57565b604052838152905080828401851015610acb575f5ffd5b838360208301375f60208583010152509392505050565b5f82601f830112610af1575f5ffd5b61098183833560208501610a6b565b5f5f60408385031215610b11575f5ffd5b823567ffffffffffffffff811115610b27575f5ffd5b610b3385828601610ae2565b925050602083013567ffffffffffffffff811115610b4f575f5ffd5b610b5b85828601610ae2565b9150509250929050565b5f60208284031215610b75575f5ffd5b610981826109df565b5f5f60408385031215610b8f575f5ffd5b610b98836109df565b915060208301358015158114610bac575f5ffd5b809150509250929050565b5f5f5f5f60808587031215610bca575f5ffd5b610bd3856109df565b9350610be1602086016109df565b925060408501359150606085013567ffffffffffffffff811115610c03575f5ffd5b8501601f81018713610c13575f5ffd5b610c2287823560208401610a6b565b91505092959194509250565b5f5f60408385031215610c3f575f5ffd5b610c48836109df565b9150610c56602084016109df565b90509250929050565b600181811c90821680610c7357607f821691505b602082108103610c9157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f81610ce157610ce1610cbf565b505f190190565b5f60018201610cf957610cf9610cbf565b5060010190565b5f60208284031215610d10575f5ffd5b81516109818161094e565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b601f8211156106ef57805f5260205f20601f840160051c81016020851015610d6a5750805b601f840160051c820191505b81811015610d89575f8155600101610d76565b5050505050565b815167ffffffffffffffff811115610daa57610daa610a57565b610dbe81610db88454610c5f565b84610d45565b6020601f821160018114610df0575f8315610dd95750848201515b5f19600385901b1c1916600184901b178455610d89565b5f84815260208120601f198516915b82811015610e1f5787850151825560209485019460019092019101610dff565b5084821015610e3c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90610e7d90830184610988565b969550505050505056fea26469706673582212204b2edb09243aefe45d07ffc83d0f60cc5eab28711f66b58730dc79dac7a2440364736f6c634300081e0033","sourceMap":"403:7498:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:332;;;;;;;;;;-1:-1:-1;5376:332:33;;;;;:::i;:::-;;:::i;:::-;;;565:14:184;;558:22;540:41;;528:2;513:18;5376:332:33;;;;;;;;693:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1949:120::-;;;;;;;;;;-1:-1:-1;1949:120:33;;;;;:::i;:::-;2020:7;2046:16;;;:12;:16;;;;;;-1:-1:-1;;;;;2046:16:33;;1949:120;;;;-1:-1:-1;;;;;1506:32:184;;;1488:51;;1476:2;1461:18;1949:120:33;1342:203:184;3128:301:33;;;;;;:::i;:::-;;:::i;:::-;;3654:693;;;;;;:::i;:::-;;:::i;4353:386::-;;;;;;:::i;:::-;;:::i;2728:212::-;;;;;;;;;;-1:-1:-1;2728:212:33;;;;;:::i;:::-;;:::i;1280:158::-;;;;;;;;;;-1:-1:-1;1280:158:33;;;;;:::i;:::-;;:::i;1444:177::-;;;;;;;;;;-1:-1:-1;1444:177:33;;;;;:::i;:::-;;:::i;:::-;;;4372:25:184;;;4360:2;4345:18;1444:177:33;4226::184;791:96:33;;;;;;;;;;;;;:::i;3435:213::-;;;;;;;;;;-1:-1:-1;3435:213:33;;;;;:::i;:::-;;:::i;4745:443::-;;;;;;:::i;:::-;;:::i;893:85::-;;;;;;;;;;-1:-1:-1;893:85:33;;;;;:::i;:::-;-1:-1:-1;961:13:33;;893:85;2075:161;;;;;;;;;;-1:-1:-1;2075:161:33;;;;;:::i;:::-;-1:-1:-1;;;;;2195:24:33;;;2172:4;2195:24;;;:17;:24;;;;;;;;:34;;;;;;;;;;;;;;;2075:161;5376:332;5461:4;-1:-1:-1;;;;;;;;;5484:25:33;;;;:100;;-1:-1:-1;;;;;;;;;;5559:25:33;;;5484:100;:175;;;-1:-1:-1;;;;;;;;;;5634:25:33;;;5484:175;5477:182;5376:332;-1:-1:-1;;5376:332:33:o;693:92::-;741:13;773:5;766:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:92;:::o;3128:301::-;3216:13;3232:12;;;:8;:12;;;;;;-1:-1:-1;;;;;3232:12:33;3263:10;:19;;;:59;;-1:-1:-1;;;;;;3286:24:33;;;;;;:17;:24;;;;;;;;3311:10;3286:36;;;;;;;;;;3263:59;3255:86;;;;-1:-1:-1;;;3255:86:33;;;;;;;:::i;:::-;;;;;;;;;3352:16;;;;:12;:16;;;;;;:26;;-1:-1:-1;;;;;;3352:26:33;-1:-1:-1;;;;;3352:26:33;;;;;;;;;3394:28;;3352:16;;3394:28;;;;;;;3206:223;3128:301;;:::o;3654:693::-;3772:12;;;;:8;:12;;;;;;-1:-1:-1;;;;;3764:20:33;;;3772:12;;3764:20;3756:43;;;;-1:-1:-1;;;3756:43:33;;6673:2:184;3756:43:33;;;6655:21:184;6712:2;6692:18;;;6685:30;-1:-1:-1;;;6731:18:184;;;6724:40;6781:18;;3756:43:33;6471:334:184;3756:43:33;-1:-1:-1;;;;;3818:16:33;;3810:46;;;;-1:-1:-1;;;3810:46:33;;7012:2:184;3810:46:33;;;6994:21:184;7051:2;7031:18;;;7024:30;-1:-1:-1;;;7070:18:184;;;7063:47;7127:18;;3810:46:33;6810:341:184;3810:46:33;3888:10;-1:-1:-1;;;;;3888:18:33;;;;:57;;-1:-1:-1;;;;;;3910:23:33;;;;;;:17;:23;;;;;;;;3934:10;3910:35;;;;;;;;;;3888:57;:91;;;-1:-1:-1;3963:16:33;;;;:12;:16;;;;;;-1:-1:-1;;;;;3963:16:33;3949:10;:30;3888:91;3867:152;;;;-1:-1:-1;;;3867:152:33;;;;;;;:::i;:::-;-1:-1:-1;;;;;4195:16:33;;;;;;:10;:16;;;;;:18;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4224:14:33;;;;;;:10;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;4251:12:33;;;;:8;:12;;;;;;;;:17;;-1:-1:-1;;;;;4251:17:33;;;-1:-1:-1;;;;;;4251:17:33;;;;;;;;4286:12;:16;;;;;;4279:23;;;;;;;4318:22;;4260:2;;4251:17;;4318:22;;;;;;3654:693;;;:::o;4353:386::-;4459:26;4472:4;4478:2;4482;4459:12;:26::i;:::-;7833:18;;7878:14;;4517:173;;-1:-1:-1;4553:67:33;;-1:-1:-1;;;4553:67:33;;;4595:10;4553:67;;;7836:51:184;-1:-1:-1;;;;;7923:32:184;;;7903:18;;;7896:60;7972:18;;;7965:34;;;8035:3;8015:18;;;8008:31;-1:-1:-1;8055:19:184;;;8048:30;4644:46:33;;4553:41;;;;4644:46;;8095:19:184;;4553:67:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4553:137:33;;4517:173;4496:236;;;;-1:-1:-1;;;4496:236:33;;;;;;;:::i;:::-;4353:386;;;:::o;2728:212::-;2818:11;;;;2817:12;2809:44;;;;-1:-1:-1;;;2809:44:33;;8926:2:184;2809:44:33;;;8908:21:184;8965:2;8945:18;;;8938:30;-1:-1:-1;;;8984:18:184;;;8977:49;9043:18;;2809:44:33;8724:343:184;2809:44:33;2864:5;:13;2872:5;2864;:13;:::i;:::-;-1:-1:-1;2887:7:33;:17;2897:7;2887;:17;:::i;:::-;-1:-1:-1;;2915:11:33;:18;;-1:-1:-1;;2915:18:33;2929:4;2915:18;;;-1:-1:-1;2728:212:33:o;1280:158::-;1347:13;1389:12;;;:8;:12;;;;;;-1:-1:-1;;;;;1389:12:33;;1372:59;;;;-1:-1:-1;;;1372:59:33;;11398:2:184;1372:59:33;;;11380:21:184;11437:2;11417:18;;;11410:30;-1:-1:-1;;;11456:18:184;;;11449:40;11506:18;;1372:59:33;11196:334:184;1372:59:33;1280:158;;;:::o;1444:177::-;1516:7;-1:-1:-1;;;;;1543:19:33;;1535:44;;;;-1:-1:-1;;;1535:44:33;;11737:2:184;1535:44:33;;;11719:21:184;11776:2;11756:18;;;11749:30;-1:-1:-1;;;11795:18:184;;;11788:42;11847:18;;1535:44:33;11535:336:184;1535:44:33;-1:-1:-1;;;;;;1597:17:33;;;;;:10;:17;;;;;;;1444:177::o;791:96::-;841:13;873:7;866:14;;;;;:::i;3435:213::-;3547:10;3529:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;3529:39:33;;;;;;;;;;;;:50;;-1:-1:-1;;3529:50:33;;;;;;;;;;3595:46;;540:41:184;;;3529:39:33;;3547:10;3595:46;;513:18:184;3595:46:33;;;;;;;3435:213;;:::o;4745:443::-;4906:26;4919:4;4925:2;4929;4906:12;:26::i;:::-;7833:18;;7878:14;;4964:175;;-1:-1:-1;5000:69:33;;-1:-1:-1;;;5000:69:33;;;5093:46;-1:-1:-1;;;;;5000:41:33;;;5093:46;;5000:69;;5042:10;;5054:4;;5060:2;;5064:4;;5000:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;5000:139:33;;4964:175;4943:238;;;;-1:-1:-1;;;4943:238:33;;;;;;;:::i;:::-;4745:443;;;;:::o;14:131:184:-;-1:-1:-1;;;;;;88:32:184;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:184:o;592:289::-;634:3;672:5;666:12;699:6;694:3;687:19;755:6;748:4;741:5;737:16;730:4;725:3;721:14;715:47;807:1;800:4;791:6;786:3;782:16;778:27;771:38;870:4;863:2;859:7;854:2;846:6;842:15;838:29;833:3;829:39;825:50;818:57;;;592:289;;;;:::o;886:220::-;1035:2;1024:9;1017:21;998:4;1055:45;1096:2;1085:9;1081:18;1073:6;1055:45;:::i;1111:226::-;1170:6;1223:2;1211:9;1202:7;1198:23;1194:32;1191:52;;;1239:1;1236;1229:12;1191:52;-1:-1:-1;1284:23:184;;1111:226;-1:-1:-1;1111:226:184:o;1550:173::-;1618:20;;-1:-1:-1;;;;;1667:31:184;;1657:42;;1647:70;;1713:1;1710;1703:12;1728:300;1796:6;1804;1857:2;1845:9;1836:7;1832:23;1828:32;1825:52;;;1873:1;1870;1863:12;1825:52;1896:29;1915:9;1896:29;:::i;:::-;1886:39;1994:2;1979:18;;;;1966:32;;-1:-1:-1;;;1728:300:184:o;2033:374::-;2110:6;2118;2126;2179:2;2167:9;2158:7;2154:23;2150:32;2147:52;;;2195:1;2192;2185:12;2147:52;2218:29;2237:9;2218:29;:::i;:::-;2208:39;;2266:38;2300:2;2289:9;2285:18;2266:38;:::i;:::-;2033:374;;2256:48;;-1:-1:-1;;;2373:2:184;2358:18;;;;2345:32;;2033:374::o;2412:127::-;2473:10;2468:3;2464:20;2461:1;2454:31;2504:4;2501:1;2494:15;2528:4;2525:1;2518:15;2544:716;2609:5;2641:1;2665:18;2657:6;2654:30;2651:56;;;2687:18;;:::i;:::-;-1:-1:-1;2842:2:184;2836:9;-1:-1:-1;;2755:2:184;2734:15;;2730:29;;2900:2;2888:15;2884:29;2872:42;;2965:22;;;2944:18;2929:34;;2926:62;2923:88;;;2991:18;;:::i;:::-;3027:2;3020:22;3075;;;3060:6;-1:-1:-1;3060:6:184;3112:16;;;3109:25;-1:-1:-1;3106:45:184;;;3147:1;3144;3137:12;3106:45;3197:6;3192:3;3185:4;3177:6;3173:17;3160:44;3252:1;3245:4;3236:6;3228;3224:19;3220:30;3213:41;;2544:716;;;;;:::o;3265:222::-;3308:5;3361:3;3354:4;3346:6;3342:17;3338:27;3328:55;;3379:1;3376;3369:12;3328:55;3401:80;3477:3;3468:6;3455:20;3448:4;3440:6;3436:17;3401:80;:::i;3492:538::-;3580:6;3588;3641:2;3629:9;3620:7;3616:23;3612:32;3609:52;;;3657:1;3654;3647:12;3609:52;3697:9;3684:23;3730:18;3722:6;3719:30;3716:50;;;3762:1;3759;3752:12;3716:50;3785;3827:7;3818:6;3807:9;3803:22;3785:50;:::i;:::-;3775:60;;;3888:2;3877:9;3873:18;3860:32;3917:18;3907:8;3904:32;3901:52;;;3949:1;3946;3939:12;3901:52;3972;4016:7;4005:8;3994:9;3990:24;3972:52;:::i;:::-;3962:62;;;3492:538;;;;;:::o;4035:186::-;4094:6;4147:2;4135:9;4126:7;4122:23;4118:32;4115:52;;;4163:1;4160;4153:12;4115:52;4186:29;4205:9;4186:29;:::i;4408:347::-;4473:6;4481;4534:2;4522:9;4513:7;4509:23;4505:32;4502:52;;;4550:1;4547;4540:12;4502:52;4573:29;4592:9;4573:29;:::i;:::-;4563:39;;4652:2;4641:9;4637:18;4624:32;4699:5;4692:13;4685:21;4678:5;4675:32;4665:60;;4721:1;4718;4711:12;4665:60;4744:5;4734:15;;;4408:347;;;;;:::o;4760:713::-;4855:6;4863;4871;4879;4932:3;4920:9;4911:7;4907:23;4903:33;4900:53;;;4949:1;4946;4939:12;4900:53;4972:29;4991:9;4972:29;:::i;:::-;4962:39;;5020:38;5054:2;5043:9;5039:18;5020:38;:::i;:::-;5010:48;-1:-1:-1;5127:2:184;5112:18;;5099:32;;-1:-1:-1;5206:2:184;5191:18;;5178:32;5233:18;5222:30;;5219:50;;;5265:1;5262;5255:12;5219:50;5288:22;;5341:4;5333:13;;5329:27;-1:-1:-1;5319:55:184;;5370:1;5367;5360:12;5319:55;5393:74;5459:7;5454:2;5441:16;5436:2;5432;5428:11;5393:74;:::i;:::-;5383:84;;;4760:713;;;;;;;:::o;5478:260::-;5546:6;5554;5607:2;5595:9;5586:7;5582:23;5578:32;5575:52;;;5623:1;5620;5613:12;5575:52;5646:29;5665:9;5646:29;:::i;:::-;5636:39;;5694:38;5728:2;5717:9;5713:18;5694:38;:::i;:::-;5684:48;;5478:260;;;;;:::o;5743:380::-;5822:1;5818:12;;;;5865;;;5886:61;;5940:4;5932:6;5928:17;5918:27;;5886:61;5993:2;5985:6;5982:14;5962:18;5959:38;5956:161;;6039:10;6034:3;6030:20;6027:1;6020:31;6074:4;6071:1;6064:15;6102:4;6099:1;6092:15;5956:161;;5743:380;;;:::o;6128:338::-;6330:2;6312:21;;;6369:2;6349:18;;;6342:30;-1:-1:-1;;;6403:2:184;6388:18;;6381:44;6457:2;6442:18;;6128:338::o;7156:127::-;7217:10;7212:3;7208:20;7205:1;7198:31;7248:4;7245:1;7238:15;7272:4;7269:1;7262:15;7288:136;7327:3;7355:5;7345:39;;7364:18;;:::i;:::-;-1:-1:-1;;;7400:18:184;;7288:136::o;7429:135::-;7468:3;7489:17;;;7486:43;;7509:18;;:::i;:::-;-1:-1:-1;7556:1:184;7545:13;;7429:135::o;8125:249::-;8194:6;8247:2;8235:9;8226:7;8222:23;8218:32;8215:52;;;8263:1;8260;8253:12;8215:52;8295:9;8289:16;8314:30;8338:5;8314:30;:::i;8379:340::-;8581:2;8563:21;;;8620:2;8600:18;;;8593:30;-1:-1:-1;;;8654:2:184;8639:18;;8632:46;8710:2;8695:18;;8379:340::o;9198:518::-;9300:2;9295:3;9292:11;9289:421;;;9336:5;9333:1;9326:16;9380:4;9377:1;9367:18;9450:2;9438:10;9434:19;9431:1;9427:27;9421:4;9417:38;9486:4;9474:10;9471:20;9468:47;;;-1:-1:-1;9509:4:184;9468:47;9564:2;9559:3;9555:12;9552:1;9548:20;9542:4;9538:31;9528:41;;9619:81;9637:2;9630:5;9627:13;9619:81;;;9696:1;9682:16;;9663:1;9652:13;9619:81;;;9623:3;;9198:518;;;:::o;9892:1299::-;10018:3;10012:10;10045:18;10037:6;10034:30;10031:56;;;10067:18;;:::i;:::-;10096:97;10186:6;10146:38;10178:4;10172:11;10146:38;:::i;:::-;10140:4;10096:97;:::i;:::-;10242:4;10273:2;10262:14;;10290:1;10285:649;;;;10978:1;10995:6;10992:89;;;-1:-1:-1;11047:19:184;;;11041:26;10992:89;-1:-1:-1;;9849:1:184;9845:11;;;9841:24;9837:29;9827:40;9873:1;9869:11;;;9824:57;11094:81;;10255:930;;10285:649;9145:1;9138:14;;;9182:4;9169:18;;-1:-1:-1;;10321:20:184;;;10439:222;10453:7;10450:1;10447:14;10439:222;;;10535:19;;;10529:26;10514:42;;10642:4;10627:20;;;;10595:1;10583:14;;;;10469:12;10439:222;;;10443:3;10689:6;10680:7;10677:19;10674:201;;;10750:19;;;10744:26;-1:-1:-1;;10833:1:184;10829:14;;;10845:3;10825:24;10821:37;10817:42;10802:58;10787:74;;10674:201;-1:-1:-1;;;;10921:1:184;10905:14;;;10901:22;10888:36;;-1:-1:-1;9892:1299:184:o;11876:485::-;-1:-1:-1;;;;;12107:32:184;;;12089:51;;12176:32;;12171:2;12156:18;;12149:60;12240:2;12225:18;;12218:34;;;12288:3;12283:2;12268:18;;12261:31;;;-1:-1:-1;;12309:46:184;;12335:19;;12327:6;12309:46;:::i;:::-;12301:54;11876:485;-1:-1:-1;;;;;;11876:485:184:o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","initialize(string,string)":"4cd88b76","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"initialize(string,string)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"}},\"notice\":\"This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC721.sol\":\"MockERC721\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@generated/=generated/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"initialize(string,string)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"name()":{"notice":"A descriptive name for a collection of NFTs in this contract"},"symbol()":{"notice":"An abbreviated name for NFTs in this contract"}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@generated/=generated/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC721.sol":"MockERC721"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"}},"version":1},"id":33}