@aztec-foundation/l1-artifacts 6.0.0-rc.2 → 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":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_guardian","type":"address","internalType":"address"},{"name":"_rootRegistry","type":"address","internalType":"contract IRootRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"addHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newHelper","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"subVerifier","type":"address","internalType":"contract ZKPassportSubVerifier"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"config","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"helperCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"helpers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportHelper"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRootRegistry"}],"stateMutability":"view"},{"type":"function","name":"setGuardian","inputs":[{"name":"newGuardian","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subverifierCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"subverifiers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportSubVerifier"}],"stateMutability":"view"},{"type":"function","name":"transferAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateConfig","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newHelper","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newSubVerifier","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"params","type":"tuple","internalType":"struct ProofVerificationParams","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"proofVerificationData","type":"tuple","internalType":"struct ProofVerificationData","components":[{"name":"vkeyHash","type":"bytes32","internalType":"bytes32"},{"name":"proof","type":"bytes","internalType":"bytes"},{"name":"publicInputs","type":"bytes32[]","internalType":"bytes32[]"}]},{"name":"committedInputs","type":"bytes","internalType":"bytes"},{"name":"serviceConfig","type":"tuple","internalType":"struct ServiceConfig","components":[{"name":"validityPeriodInSeconds","type":"uint256","internalType":"uint256"},{"name":"domain","type":"string","internalType":"string"},{"name":"scope","type":"string","internalType":"string"},{"name":"devMode","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"uniqueIdentifier","type":"bytes32","internalType":"bytes32"},{"name":"helper","type":"address","internalType":"contract ZKPassportHelper"}],"stateMutability":"view"},{"type":"event","name":"AdminUpdated","inputs":[{"name":"oldAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ConfigUpdated","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldValue","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newValue","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"GuardianUpdated","inputs":[{"name":"oldGuardian","type":"address","indexed":true,"internalType":"address"},{"name":"newGuardian","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperAdded","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"helper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperRemoved","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"helper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperUpdated","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldHelper","type":"address","indexed":true,"internalType":"address"},{"name":"newHelper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PausedStatusChanged","inputs":[{"name":"paused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RootRegistryUpdated","inputs":[{"name":"oldRootRegistry","type":"address","indexed":true,"internalType":"address"},{"name":"newRootRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RootVerifierDeployed","inputs":[{"name":"admin","type":"address","indexed":false,"internalType":"address"},{"name":"guardian","type":"address","indexed":false,"internalType":"address"},{"name":"rootRegistry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierAdded","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"subVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierRemoved","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"subVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierUpdated","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldSubVerifier","type":"address","indexed":true,"internalType":"address"},{"name":"newSubVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516114a43803806114a483398101604081905261002e91610125565b6001600160a01b0383166100885760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f206164647265737300000000604482015260640160405180910390fd5b5f80546001600160a01b038581166001600160a01b0319928316811790935560018054868316908416811790915560028054928616929093168217909255604080519384526020840192909252908201527f49958336430bdf59d989fb74186fd9ed78af011655d4ffe62fa2fbe5193edbda9060600160405180910390a150505061016f565b6001600160a01b0381168114610122575f5ffd5b50565b5f5f5f60608486031215610137575f5ffd5b83516101428161010e565b60208501519093506101538161010e565b60408501519092506101648161010e565b809150509250925092565b6113288061017c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063889eba3b116100bf578063ba5f3f9d11610079578063ba5f3f9d1461030e578063c961ba7e14610321578063cc718f7614610338578063da0ff2c614610357578063f264980714610360578063f851a44014610388575f5ffd5b8063889eba3b146102875780638a0dac4a1461029a5780639bfefbfd146102ad578063a7ad58bf146102c0578063b3c83d99146102e8578063b96b161c146102fb575f5ffd5b8063578bd92111610110578063578bd921146101d45780635c975abb1461020d5780635dd41f2f146102315780636f9076381461025957806375829def1461026c5780638456cb591461027f575f5ffd5b8063079154391461014c5780633f4ba83a14610161578063452a932014610169578063492f34fb1461019957806352741df5146101c1575b5f5ffd5b61015f61015a366004610e2a565b61039a565b005b61015f61049f565b60015461017c906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61017c6101a7366004610e58565b60036020525f90815260409020546001600160a01b031681565b61015f6101cf366004610e2a565b61050b565b6101e76101e2366004610e6f565b610657565b60408051931515845260208401929092526001600160a01b031690820152606001610190565b60015461022190600160a01b900460ff1681565b6040519015158152602001610190565b61017c61023f366004610e58565b5f908152600560205260409020546001600160a01b031690565b61015f610267366004610e58565b61077e565b61015f61027a366004610ead565b61085f565b61015f61092d565b61015f610295366004610ec8565b6109ed565b61015f6102a8366004610ead565b610a6b565b61015f6102bb366004610e58565b610ae5565b61017c6102ce366004610e58565b60056020525f90815260409020546001600160a01b031681565b61015f6102f6366004610e2a565b610bc6565b60025461017c906001600160a01b031681565b61015f61031c366004610e2a565b610d17565b61032a60045481565b604051908152602001610190565b61032a610346366004610e58565b60076020525f908152604090205481565b61032a60065481565b61017c61036e366004610e58565b5f908152600360205260409020546001600160a01b031690565b5f5461017c906001600160a01b031681565b5f546001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610ee8565b60405180910390fd5b816103e95760405162461bcd60e51b81526004016103c390610f1f565b6001600160a01b03811661040f5760405162461bcd60e51b81526004016103c390610f4f565b5f828152600360205260409020546001600160a01b03166104425760405162461bcd60e51b81526004016103c390610f91565b5f8281526003602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fa643a1aa11f9709b2990b31638a0b368d6d0c3b8f025a98a3249fea2bd5821d791a4505050565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103c390610ee8565b6001805460ff60a01b191690556040515f81527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c5906020015b60405180910390a1565b5f546001600160a01b031633146105345760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b03811661055a5760405162461bcd60e51b81526004016103c390610fd2565b816105775760405162461bcd60e51b81526004016103c390610f1f565b5f828152600560205260409020546001600160a01b0316156105e55760405162461bcd60e51b815260206004820152602160248201527f48656c70657220616c72656164792065786973747320666f722076657273696f6044820152603760f91b60648201526084016103c3565b5f82815260056020526040812080546001600160a01b0319166001600160a01b03841617905560068054916106198361101d565b90915550506040516001600160a01b0382169083907fe3eccbb854b4a5c161cda43f1e76981a22f8c4a4190a1e1b44bb8c69039b85b2905f90a35050565b5f5f5f600160149054906101000a900460ff16156106b15760405162461bcd60e51b8152602060048201526017602482015276149bdbdd081d995c9a599a595c881a5cc81c185d5cd959604a1b60448201526064016103c3565b83355f908152600360205260409020546001600160a01b0316806106e75760405162461bcd60e51b81526004016103c390610f91565b600254604051637446a77360e11b81526001600160a01b038381169263e88d4ee69261071b9290911690899060040161113f565b6040805180830381865afa158015610735573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610759919061127a565b95355f9081526005602052604090205490966001600160a01b03909116945092505050565b5f546001600160a01b031633146107a75760405162461bcd60e51b81526004016103c390610ee8565b806107c45760405162461bcd60e51b81526004016103c390610f1f565b5f818152600360205260409020546001600160a01b0316806107f85760405162461bcd60e51b81526004016103c390610f91565b5f82815260036020526040812080546001600160a01b03191690556004805491610821836112a6565b90915550506040516001600160a01b0382169083907f2632c7adc4cecbf41bb3ee7c156aae99b0bcd9da3efa5b9315f77dcdf6ef3e66905f90a35050565b5f546001600160a01b031633146108885760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b0381166108de5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016103c3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f546001600160a01b031633148061094f57506001546001600160a01b031633145b6109aa5760405162461bcd60e51b815260206004820152602660248201527f4e6f7420617574686f72697a65643a2061646d696e206f7220677561726469616044820152656e206f6e6c7960d01b60648201526084016103c3565b6001805460ff60a01b1916600160a01b1781556040519081527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c590602001610501565b5f546001600160a01b03163314610a165760405162461bcd60e51b81526004016103c390610ee8565b5f8281526007602090815260409182902080549084905582518181529182018490529184917fbb4f63ec43349b7ec7c292d3e97704824bcdd2d758200521ad62d3e9a127f782910160405180910390a2505050565b5f546001600160a01b03163314610a945760405162461bcd60e51b81526004016103c390610ee8565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad909905f90a35050565b5f546001600160a01b03163314610b0e5760405162461bcd60e51b81526004016103c390610ee8565b80610b2b5760405162461bcd60e51b81526004016103c390610f1f565b5f818152600560205260409020546001600160a01b031680610b5f5760405162461bcd60e51b81526004016103c3906112bb565b5f82815260056020526040812080546001600160a01b03191690556006805491610b88836112a6565b90915550506040516001600160a01b0382169083907f6a7d5ce7bf32942d5ee1a06318777e6921ab7173478635304ac93845d7de61e0905f90a35050565b5f546001600160a01b03163314610bef5760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b038116610c155760405162461bcd60e51b81526004016103c390610f4f565b81610c325760405162461bcd60e51b81526004016103c390610f1f565b5f828152600360205260409020546001600160a01b031615610ca55760405162461bcd60e51b815260206004820152602660248201527f537562766572696669657220616c72656164792065786973747320666f72207660448201526532b939b4b7b760d11b60648201526084016103c3565b5f82815260036020526040812080546001600160a01b0319166001600160a01b0384161790556004805491610cd98361101d565b90915550506040516001600160a01b0382169083907fa65f9939af3939f730447054d525d5526c5f9e75ccea14966e1de1876631f404905f90a35050565b5f546001600160a01b03163314610d405760405162461bcd60e51b81526004016103c390610ee8565b81610d5d5760405162461bcd60e51b81526004016103c390610f1f565b6001600160a01b038116610d835760405162461bcd60e51b81526004016103c390610fd2565b5f828152600560205260409020546001600160a01b0316610db65760405162461bcd60e51b81526004016103c3906112bb565b5f8281526005602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fb9393e6de8fe36cc235a7d08d2fa004db98bbb2a2be241250df83a276bc0d62e91a4505050565b6001600160a01b0381168114610e27575f5ffd5b50565b5f5f60408385031215610e3b575f5ffd5b823591506020830135610e4d81610e13565b809150509250929050565b5f60208284031215610e68575f5ffd5b5035919050565b5f60208284031215610e7f575f5ffd5b813567ffffffffffffffff811115610e95575f5ffd5b820160808185031215610ea6575f5ffd5b9392505050565b5f60208284031215610ebd575f5ffd5b8135610ea681610e13565b5f5f60408385031215610ed9575f5ffd5b50508035926020909101359150565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b60208082526016908201527556657273696f6e2063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526022908201527f53756276657269666965722063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f5375627665726966696572206e6f7420666f756e6420666f722076657273696f6040820152603760f91b606082015260800190565b6020808252601d908201527f48656c7065722063616e6e6f74206265207a65726f2061646472657373000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161102e5761102e611009565b5060010190565b5f5f8335601e1984360301811261104a575f5ffd5b830160208101925035905067ffffffffffffffff811115611069575f5ffd5b803603821315611077575f5ffd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235607e198336030181126110ba575f5ffd5b90910192915050565b8015158114610e27575f5ffd5b803582525f6110e26020830183611035565b608060208601526110f760808601828461107e565b9150506111076040840184611035565b858303604087015261111a83828461107e565b92505050606083013561112c816110c3565b8015156060860152508091505092915050565b6001600160a01b0383168152604060208083018290528335918301919091525f9083013536849003605e19018112611175575f5ffd5b608060608401528301803560c08401526111926020820182611035565b606060e08601526111a86101208601828461107e565b9150506040820135601e198336030181126111c1575f5ffd5b60209201918201913567ffffffffffffffff8111156111de575f5ffd5b8060051b8036038413156111f0575f5ffd5b85830360bf19016101008701528183526001600160fb1b03821115611213575f5ffd5b80846020850137808301935050505061122f6040850185611035565b601f1985840301608086015261124960208401828461107e565b9250505061125a60608501856110a6565b838203603f190160a085015261127082826110d0565b9695505050505050565b5f5f6040838503121561128b575f5ffd5b8251611296816110c3565b6020939093015192949293505050565b5f816112b4576112b4611009565b505f190190565b6020808252601c908201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060408201526060019056fea2646970667358221220794882ea1737aa8973be9d87b28174bb4c71106028074a23ed311bd1e2b54c4764736f6c634300081e0033","sourceMap":"681:9071:9:-:0;;;2414:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2504:20:9;;2496:61;;;;-1:-1:-1;;;2496:61:9;;898:2:182;2496:61:9;;;880:21:182;937:2;917:18;;;910:30;976;956:18;;;949:58;1024:18;;2496:61:9;;;;;;;;2563:5;:14;;-1:-1:-1;;;;;2563:14:9;;;-1:-1:-1;;;;;;2563:14:9;;;;;;;;-1:-1:-1;2583:20:9;;;;;;;;;;;;;2609:12;:28;;;;;;;;;;;;;;2648:61;;;1255:51:182;;;1337:2;1322:18;;1315:60;;;;1391:18;;;1384:60;2648:61:9;;1243:2:182;1228:18;2648:61:9;;;;;;;2414:300;;;681:9071;;14:131:182;-1:-1:-1;;;;;89:31:182;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:541::-;260:6;268;276;329:2;317:9;308:7;304:23;300:32;297:52;;;345:1;342;335:12;297:52;377:9;371:16;396:31;421:5;396:31;:::i;:::-;496:2;481:18;;475:25;446:5;;-1:-1:-1;509:33:182;475:25;509:33;:::i;:::-;613:2;598:18;;592:25;561:7;;-1:-1:-1;626:33:182;592:25;626:33;:::i;:::-;678:7;668:17;;;150:541;;;;;:::o;1053:397::-;681:9071:9;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063889eba3b116100bf578063ba5f3f9d11610079578063ba5f3f9d1461030e578063c961ba7e14610321578063cc718f7614610338578063da0ff2c614610357578063f264980714610360578063f851a44014610388575f5ffd5b8063889eba3b146102875780638a0dac4a1461029a5780639bfefbfd146102ad578063a7ad58bf146102c0578063b3c83d99146102e8578063b96b161c146102fb575f5ffd5b8063578bd92111610110578063578bd921146101d45780635c975abb1461020d5780635dd41f2f146102315780636f9076381461025957806375829def1461026c5780638456cb591461027f575f5ffd5b8063079154391461014c5780633f4ba83a14610161578063452a932014610169578063492f34fb1461019957806352741df5146101c1575b5f5ffd5b61015f61015a366004610e2a565b61039a565b005b61015f61049f565b60015461017c906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61017c6101a7366004610e58565b60036020525f90815260409020546001600160a01b031681565b61015f6101cf366004610e2a565b61050b565b6101e76101e2366004610e6f565b610657565b60408051931515845260208401929092526001600160a01b031690820152606001610190565b60015461022190600160a01b900460ff1681565b6040519015158152602001610190565b61017c61023f366004610e58565b5f908152600560205260409020546001600160a01b031690565b61015f610267366004610e58565b61077e565b61015f61027a366004610ead565b61085f565b61015f61092d565b61015f610295366004610ec8565b6109ed565b61015f6102a8366004610ead565b610a6b565b61015f6102bb366004610e58565b610ae5565b61017c6102ce366004610e58565b60056020525f90815260409020546001600160a01b031681565b61015f6102f6366004610e2a565b610bc6565b60025461017c906001600160a01b031681565b61015f61031c366004610e2a565b610d17565b61032a60045481565b604051908152602001610190565b61032a610346366004610e58565b60076020525f908152604090205481565b61032a60065481565b61017c61036e366004610e58565b5f908152600360205260409020546001600160a01b031690565b5f5461017c906001600160a01b031681565b5f546001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610ee8565b60405180910390fd5b816103e95760405162461bcd60e51b81526004016103c390610f1f565b6001600160a01b03811661040f5760405162461bcd60e51b81526004016103c390610f4f565b5f828152600360205260409020546001600160a01b03166104425760405162461bcd60e51b81526004016103c390610f91565b5f8281526003602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fa643a1aa11f9709b2990b31638a0b368d6d0c3b8f025a98a3249fea2bd5821d791a4505050565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103c390610ee8565b6001805460ff60a01b191690556040515f81527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c5906020015b60405180910390a1565b5f546001600160a01b031633146105345760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b03811661055a5760405162461bcd60e51b81526004016103c390610fd2565b816105775760405162461bcd60e51b81526004016103c390610f1f565b5f828152600560205260409020546001600160a01b0316156105e55760405162461bcd60e51b815260206004820152602160248201527f48656c70657220616c72656164792065786973747320666f722076657273696f6044820152603760f91b60648201526084016103c3565b5f82815260056020526040812080546001600160a01b0319166001600160a01b03841617905560068054916106198361101d565b90915550506040516001600160a01b0382169083907fe3eccbb854b4a5c161cda43f1e76981a22f8c4a4190a1e1b44bb8c69039b85b2905f90a35050565b5f5f5f600160149054906101000a900460ff16156106b15760405162461bcd60e51b8152602060048201526017602482015276149bdbdd081d995c9a599a595c881a5cc81c185d5cd959604a1b60448201526064016103c3565b83355f908152600360205260409020546001600160a01b0316806106e75760405162461bcd60e51b81526004016103c390610f91565b600254604051637446a77360e11b81526001600160a01b038381169263e88d4ee69261071b9290911690899060040161113f565b6040805180830381865afa158015610735573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610759919061127a565b95355f9081526005602052604090205490966001600160a01b03909116945092505050565b5f546001600160a01b031633146107a75760405162461bcd60e51b81526004016103c390610ee8565b806107c45760405162461bcd60e51b81526004016103c390610f1f565b5f818152600360205260409020546001600160a01b0316806107f85760405162461bcd60e51b81526004016103c390610f91565b5f82815260036020526040812080546001600160a01b03191690556004805491610821836112a6565b90915550506040516001600160a01b0382169083907f2632c7adc4cecbf41bb3ee7c156aae99b0bcd9da3efa5b9315f77dcdf6ef3e66905f90a35050565b5f546001600160a01b031633146108885760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b0381166108de5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016103c3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f546001600160a01b031633148061094f57506001546001600160a01b031633145b6109aa5760405162461bcd60e51b815260206004820152602660248201527f4e6f7420617574686f72697a65643a2061646d696e206f7220677561726469616044820152656e206f6e6c7960d01b60648201526084016103c3565b6001805460ff60a01b1916600160a01b1781556040519081527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c590602001610501565b5f546001600160a01b03163314610a165760405162461bcd60e51b81526004016103c390610ee8565b5f8281526007602090815260409182902080549084905582518181529182018490529184917fbb4f63ec43349b7ec7c292d3e97704824bcdd2d758200521ad62d3e9a127f782910160405180910390a2505050565b5f546001600160a01b03163314610a945760405162461bcd60e51b81526004016103c390610ee8565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad909905f90a35050565b5f546001600160a01b03163314610b0e5760405162461bcd60e51b81526004016103c390610ee8565b80610b2b5760405162461bcd60e51b81526004016103c390610f1f565b5f818152600560205260409020546001600160a01b031680610b5f5760405162461bcd60e51b81526004016103c3906112bb565b5f82815260056020526040812080546001600160a01b03191690556006805491610b88836112a6565b90915550506040516001600160a01b0382169083907f6a7d5ce7bf32942d5ee1a06318777e6921ab7173478635304ac93845d7de61e0905f90a35050565b5f546001600160a01b03163314610bef5760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b038116610c155760405162461bcd60e51b81526004016103c390610f4f565b81610c325760405162461bcd60e51b81526004016103c390610f1f565b5f828152600360205260409020546001600160a01b031615610ca55760405162461bcd60e51b815260206004820152602660248201527f537562766572696669657220616c72656164792065786973747320666f72207660448201526532b939b4b7b760d11b60648201526084016103c3565b5f82815260036020526040812080546001600160a01b0319166001600160a01b0384161790556004805491610cd98361101d565b90915550506040516001600160a01b0382169083907fa65f9939af3939f730447054d525d5526c5f9e75ccea14966e1de1876631f404905f90a35050565b5f546001600160a01b03163314610d405760405162461bcd60e51b81526004016103c390610ee8565b81610d5d5760405162461bcd60e51b81526004016103c390610f1f565b6001600160a01b038116610d835760405162461bcd60e51b81526004016103c390610fd2565b5f828152600560205260409020546001600160a01b0316610db65760405162461bcd60e51b81526004016103c3906112bb565b5f8281526005602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fb9393e6de8fe36cc235a7d08d2fa004db98bbb2a2be241250df83a276bc0d62e91a4505050565b6001600160a01b0381168114610e27575f5ffd5b50565b5f5f60408385031215610e3b575f5ffd5b823591506020830135610e4d81610e13565b809150509250929050565b5f60208284031215610e68575f5ffd5b5035919050565b5f60208284031215610e7f575f5ffd5b813567ffffffffffffffff811115610e95575f5ffd5b820160808185031215610ea6575f5ffd5b9392505050565b5f60208284031215610ebd575f5ffd5b8135610ea681610e13565b5f5f60408385031215610ed9575f5ffd5b50508035926020909101359150565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b60208082526016908201527556657273696f6e2063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526022908201527f53756276657269666965722063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f5375627665726966696572206e6f7420666f756e6420666f722076657273696f6040820152603760f91b606082015260800190565b6020808252601d908201527f48656c7065722063616e6e6f74206265207a65726f2061646472657373000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161102e5761102e611009565b5060010190565b5f5f8335601e1984360301811261104a575f5ffd5b830160208101925035905067ffffffffffffffff811115611069575f5ffd5b803603821315611077575f5ffd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235607e198336030181126110ba575f5ffd5b90910192915050565b8015158114610e27575f5ffd5b803582525f6110e26020830183611035565b608060208601526110f760808601828461107e565b9150506111076040840184611035565b858303604087015261111a83828461107e565b92505050606083013561112c816110c3565b8015156060860152508091505092915050565b6001600160a01b0383168152604060208083018290528335918301919091525f9083013536849003605e19018112611175575f5ffd5b608060608401528301803560c08401526111926020820182611035565b606060e08601526111a86101208601828461107e565b9150506040820135601e198336030181126111c1575f5ffd5b60209201918201913567ffffffffffffffff8111156111de575f5ffd5b8060051b8036038413156111f0575f5ffd5b85830360bf19016101008701528183526001600160fb1b03821115611213575f5ffd5b80846020850137808301935050505061122f6040850185611035565b601f1985840301608086015261124960208401828461107e565b9250505061125a60608501856110a6565b838203603f190160a085015261127082826110d0565b9695505050505050565b5f5f6040838503121561128b575f5ffd5b8251611296816110c3565b6020939093015192949293505050565b5f816112b4576112b4611009565b505f190190565b6020808252601c908201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060408201526060019056fea2646970667358221220794882ea1737aa8973be9d87b28174bb4c71106028074a23ed311bd1e2b54c4764736f6c634300081e0033","sourceMap":"681:9071:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:529;;;;;;:::i;:::-;;:::i;:::-;;9650:100;;;:::i;741:23::-;;;;;-1:-1:-1;;;;;741:23:9;;;;;;-1:-1:-1;;;;;686:32:182;;;668:51;;656:2;641:18;741:23:9;;;;;;;;884:61;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;884:61:9;;;7056:416;;;;;;:::i;:::-;;:::i;3196:473::-;;;;;;:::i;:::-;;:::i;:::-;;;;1853:14:182;;1846:22;1828:41;;1900:2;1885:18;;1878:34;;;;-1:-1:-1;;;;;1948:32:182;1928:18;;;1921:60;1816:2;1801:18;3196:473:9;1607:380:182;768:18:9;;;;;-1:-1:-1;;;768:18:9;;;;;;;;;2157:14:182;;2150:22;2132:41;;2120:2;2105:18;768::9;1992:187:182;8806:111:9;;;;;;:::i;:::-;8865:7;8895:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8895:16:9;;8806:111;5411:374;;;;;;:::i;:::-;;:::i;4123:229::-;;;;;;:::i;:::-;;:::i;9438:106::-;;;:::i;9034:181::-;;;;;;:::i;:::-;;:::i;4470:182::-;;;;;;:::i;:::-;;:::i;7584:329::-;;;;;;:::i;:::-;;:::i;1049:51::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1049:51:9;;;4821:473;;;;;;:::i;:::-;;:::i;821:33::-;;;;;-1:-1:-1;;;;;821:33:9;;;8077:459;;;;;;:::i;:::-;;:::i;993:31::-;;;;;;;;;3798:25:182;;;3786:2;3771:18;993:31:9;3652:177:182;1194:51:9;;;;;;:::i;:::-;;;;;;;;;;;;;;1143:26;;;;;;6778:121;;;;;;:::i;:::-;6842:7;6872:21;;;:12;:21;;;;;;-1:-1:-1;;;;;6872:21:9;;6778:121;717:20;;;;;-1:-1:-1;;;;;717:20:9;;;5964:529;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;;;;;;;;;6065:7;6057:56:::1;;;;-1:-1:-1::0;;;6057:56:9::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6127:28:9;::::1;6119:75;;;;-1:-1:-1::0;;;6119:75:9::1;;;;;;;:::i;:::-;6250:1;6216:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;6216:21:9::1;6200:90;;;;-1:-1:-1::0;;;6200:90:9::1;;;;;;;:::i;:::-;6296:22;6329:21:::0;;;:12:::1;:21;::::0;;;;;;;-1:-1:-1;;;;;;6357:61:9;::::1;-1:-1:-1::0;;;;;6357:61:9;;::::1;::::0;;::::1;::::0;;;6429:59;;6329:21;::::1;::::0;;;;;6429:59:::1;::::0;::::1;6051:442;5964:529:::0;;:::o;9650:100::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;9694:6:::1;:14:::0;;-1:-1:-1;;;;9694:14:9::1;::::0;;9719:26:::1;::::0;-1:-1:-1;2132:41:182;;9719:26:9::1;::::0;2120:2:182;2105:18;9719:26:9::1;;;;;;;;9650:100::o:0;7056:416::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;7144:23:9;::::1;7136:65;;;;-1:-1:-1::0;;;7136:65:9::1;;;;;;;:::i;:::-;7215:7:::0;7207:56:::1;;;;-1:-1:-1::0;;;7207:56:9::1;;;;;;;:::i;:::-;7314:1;7285:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;7285:16:9::1;7277:39:::0;7269:85:::1;;;::::0;-1:-1:-1;;;7269:85:9;;6087:2:182;7269:85:9::1;::::0;::::1;6069:21:182::0;6126:2;6106:18;;;6099:30;6165:34;6145:18;;;6138:62;-1:-1:-1;;;6216:18:182;;;6209:31;6257:19;;7269:85:9::1;5885:397:182::0;7269:85:9::1;7360:16;::::0;;;:7:::1;:16;::::0;;;;:46;;-1:-1:-1;;;;;;7360:46:9::1;-1:-1:-1::0;;;;;7360:46:9;::::1;;::::0;;7412:11:::1;:13:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;7436:31:9::1;::::0;-1:-1:-1;;;;;7436:31:9;::::1;::::0;7448:7;;7436:31:::1;::::0;;;::::1;7056:416:::0;;:::o;3196:473::-;3306:10;3318:24;3344:23;3963:6;;;;;;;;;;;3962:7;3954:43;;;;-1:-1:-1;;;3954:43:9;;6761:2:182;3954:43:9;;;6743:21:182;6800:2;6780:18;;;6773:30;-1:-1:-1;;;6819:18:182;;;6812:53;6882:18;;3954:43:9;6559:347:182;3954:43:9;3426:14;::::1;3377:33;3413:28:::0;;;:12:::1;:28;::::0;;;;;-1:-1:-1;;;;;3413:28:9::1;::::0;3447:80:::1;;;;-1:-1:-1::0;;;3447:80:9::1;;;;;;;:::i;:::-;3580:12;::::0;3561:40:::1;::::0;-1:-1:-1;;;3561:40:9;;-1:-1:-1;;;;;3561:18:9;;::::1;::::0;::::1;::::0;:40:::1;::::0;3580:12;;::::1;::::0;3594:6;;3561:40:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3648:14:::0;::::1;3640:23;::::0;;;:7:::1;:23;::::0;;;;;3533:68;;-1:-1:-1;;;;;3640:23:9;;::::1;::::0;-1:-1:-1;3196:473:9;-1:-1:-1;;;3196:473:9:o;5411:374::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;5488:7;5480:56:::1;;;;-1:-1:-1::0;;;5480:56:9::1;;;;;;;:::i;:::-;5542:19;5572:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;5572:21:9::1;::::0;5600:71:::1;;;;-1:-1:-1::0;;;5600:71:9::1;;;;;;;:::i;:::-;5684:21;::::0;;;:12:::1;:21;::::0;;;;5677:28;;-1:-1:-1;;;;;;5677:28:9::1;::::0;;5711:16:::1;:18:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;5740:40:9::1;::::0;-1:-1:-1;;;;;5740:40:9;::::1;::::0;5759:7;;5740:40:::1;::::0;;;::::1;5474:311;5411:374:::0;:::o;4123:229::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;4197:22:9;::::1;4189:63;;;::::0;-1:-1:-1;;;4189:63:9;;11840:2:182;4189:63:9::1;::::0;::::1;11822:21:182::0;11879:2;11859:18;;;11852:30;11918;11898:18;;;11891:58;11966:18;;4189:63:9::1;11638:352:182::0;4189:63:9::1;4258:16;4277:5:::0;;-1:-1:-1;;;;;4288:16:9;;::::1;-1:-1:-1::0;;;;;;4288:16:9;::::1;::::0;::::1;::::0;;4315:32:::1;::::0;4277:5;;;::::1;::::0;;;4315:32:::1;::::0;4258:16;4315:32:::1;4183:169;4123:229:::0;:::o;9438:106::-;3833:5;;-1:-1:-1;;;;;3833:5:9;3819:10;:19;;:45;;-1:-1:-1;3856:8:9;;-1:-1:-1;;;;;3856:8:9;3842:10;:22;3819:45;3811:96;;;;-1:-1:-1;;;3811:96:9;;12197:2:182;3811:96:9;;;12179:21:182;12236:2;12216:18;;;12209:30;12275:34;12255:18;;;12248:62;-1:-1:-1;;;12326:18:182;;;12319:36;12372:19;;3811:96:9;11995:402:182;3811:96:9;9499:4:::1;9490:13:::0;;-1:-1:-1;;;;9490:13:9::1;-1:-1:-1::0;;;9490:13:9::1;::::0;;9514:25:::1;::::0;2132:41:182;;;9514:25:9::1;::::0;2120:2:182;2105:18;9514:25:9::1;1992:187:182::0;9034:181:9;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;9109:16:::1;9128:11:::0;;;:6:::1;:11;::::0;;;;;;;;;;9145:19;;;;9175:35;;12576:25:182;;;12617:18;;;12610:34;;;9128:11:9;;;9175:35:::1;::::0;12549:18:182;9175:35:9::1;;;;;;;9103:112;9034:181:::0;;:::o;4470:182::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;4559:8:::1;::::0;;-1:-1:-1;;;;;4573:22:9;;::::1;-1:-1:-1::0;;;;;;4573:22:9;::::1;::::0;::::1;::::0;;;4606:41:::1;::::0;4559:8;::::1;::::0;4573:22;4559:8;;4606:41:::1;::::0;4537:19:::1;::::0;4606:41:::1;4531:121;4470:182:::0;:::o;7584:329::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;7656:7;7648:56:::1;;;;-1:-1:-1::0;;;7648:56:9::1;;;;;;;:::i;:::-;7710:14;7735:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;7735:16:9::1;::::0;7758:61:::1;;;;-1:-1:-1::0;;;7758:61:9::1;;;;;;;:::i;:::-;7832:16;::::0;;;:7:::1;:16;::::0;;;;7825:23;;-1:-1:-1;;;;;;7825:23:9::1;::::0;;7854:11:::1;:13:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;7878:30:9::1;::::0;-1:-1:-1;;;;;7878:30:9;::::1;::::0;7892:7;;7878:30:::1;::::0;;;::::1;7642:271;7584:329:::0;:::o;4821:473::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;4930:34:9;::::1;4922:81;;;;-1:-1:-1::0;;;4922:81:9::1;;;;;;;:::i;:::-;5017:7:::0;5009:56:::1;;;;-1:-1:-1::0;;;5009:56:9::1;;;;;;;:::i;:::-;5121:1;5087:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;5087:21:9::1;5079:44:::0;5071:95:::1;;;::::0;-1:-1:-1;;;5071:95:9;;13214:2:182;5071:95:9::1;::::0;::::1;13196:21:182::0;13253:2;13233:18;;;13226:30;13292:34;13272:18;;;13265:62;-1:-1:-1;;;13343:18:182;;;13336:36;13389:19;;5071:95:9::1;13012:402:182::0;5071:95:9::1;5172:21;::::0;;;:12:::1;:21;::::0;;;;:35;;-1:-1:-1;;;;;;5172:35:9::1;-1:-1:-1::0;;;;;5172:35:9;::::1;;::::0;;5213:16:::1;:18:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;5242:47:9::1;::::0;-1:-1:-1;;;;;5242:47:9;::::1;::::0;5259:7;;5242:47:::1;::::0;;;::::1;4821:473:::0;;:::o;8077:459::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;8168:7;8160:56:::1;;;;-1:-1:-1::0;;;8160:56:9::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8230:23:9;::::1;8222:65;;;;-1:-1:-1::0;;;8222:65:9::1;;;;;;;:::i;:::-;8338:1;8309:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;8309:16:9::1;8293:80;;;;-1:-1:-1::0;;;8293:80:9::1;;;;;;;:::i;:::-;8379:17;8407:16:::0;;;:7:::1;:16;::::0;;;;;;;-1:-1:-1;;;;;;8430:46:9;::::1;-1:-1:-1::0;;;;;8430:46:9;;::::1;::::0;;::::1;::::0;;;8487:44;;8407:16;::::1;::::0;;;;;8487:44:::1;::::0;::::1;8154:382;8077:459:::0;;:::o;14:131:182:-;-1:-1:-1;;;;;89:31:182;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:367::-;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;340:23;;;-1:-1:-1;439:2:182;424:18;;411:32;452:33;411:32;452:33;:::i;:::-;504:7;494:17;;;150:367;;;;;:::o;730:226::-;789:6;842:2;830:9;821:7;817:23;813:32;810:52;;;858:1;855;848:12;810:52;-1:-1:-1;903:23:182;;730:226;-1:-1:-1;730:226:182:o;1199:403::-;1301:6;1354:2;1342:9;1333:7;1329:23;1325:32;1322:52;;;1370:1;1367;1360:12;1322:52;1410:9;1397:23;1443:18;1435:6;1432:30;1429:50;;;1475:1;1472;1465:12;1429:50;1498:22;;1554:3;1536:16;;;1532:26;1529:46;;;1571:1;1568;1561:12;1529:46;1594:2;1199:403;-1:-1:-1;;;1199:403:182:o;2184:247::-;2243:6;2296:2;2284:9;2275:7;2271:23;2267:32;2264:52;;;2312:1;2309;2302:12;2264:52;2351:9;2338:23;2370:31;2395:5;2370:31;:::i;2436:346::-;2504:6;2512;2565:2;2553:9;2544:7;2540:23;2536:32;2533:52;;;2581:1;2578;2571:12;2533:52;-1:-1:-1;;2626:23:182;;;2746:2;2731:18;;;2718:32;;-1:-1:-1;2436:346:182:o;4016:350::-;4218:2;4200:21;;;4257:2;4237:18;;;4230:30;4296:28;4291:2;4276:18;;4269:56;4357:2;4342:18;;4016:350::o;4371:346::-;4573:2;4555:21;;;4612:2;4592:18;;;4585:30;-1:-1:-1;;;4646:2:182;4631:18;;4624:52;4708:2;4693:18;;4371:346::o;4722:398::-;4924:2;4906:21;;;4963:2;4943:18;;;4936:30;5002:34;4997:2;4982:18;;4975:62;-1:-1:-1;;;5068:2:182;5053:18;;5046:32;5110:3;5095:19;;4722:398::o;5125:397::-;5327:2;5309:21;;;5366:2;5346:18;;;5339:30;5405:34;5400:2;5385:18;;5378:62;-1:-1:-1;;;5471:2:182;5456:18;;5449:31;5512:3;5497:19;;5125:397::o;5527:353::-;5729:2;5711:21;;;5768:2;5748:18;;;5741:30;5807:31;5802:2;5787:18;;5780:59;5871:2;5856:18;;5527:353::o;6287:127::-;6348:10;6343:3;6339:20;6336:1;6329:31;6379:4;6376:1;6369:15;6403:4;6400:1;6393:15;6419:135;6458:3;6479:17;;;6476:43;;6499:18;;:::i;:::-;-1:-1:-1;6546:1:182;6535:13;;6419:135::o;6911:500::-;6969:5;6976:6;7036:3;7023:17;7122:2;7118:7;7107:8;7091:14;7087:29;7083:43;7063:18;7059:68;7049:96;;7141:1;7138;7131:12;7049:96;7169:33;;7273:4;7260:18;;;-1:-1:-1;7221:21:182;;-1:-1:-1;7301:18:182;7290:30;;7287:50;;;7333:1;7330;7323:12;7287:50;7380:6;7364:14;7360:27;7353:5;7349:39;7346:59;;;7401:1;7398;7391:12;7346:59;6911:500;;;;;:::o;7416:266::-;7504:6;7499:3;7492:19;7556:6;7549:5;7542:4;7537:3;7533:14;7520:43;-1:-1:-1;7608:1:182;7583:16;;;7601:4;7579:27;;;7572:38;;;;7664:2;7643:15;;;-1:-1:-1;;7639:29:182;7630:39;;;7626:50;;7416:266::o;7687:299::-;7760:5;7819:3;7806:17;7905:3;7901:8;7890;7874:14;7870:29;7866:44;7846:18;7842:69;7832:97;;7925:1;7922;7915:12;7832:97;7947:33;;;;7687:299;-1:-1:-1;;7687:299:182:o;7991:118::-;8077:5;8070:13;8063:21;8056:5;8053:32;8043:60;;8099:1;8096;8089:12;8114:752;8222:5;8209:19;8204:3;8197:32;8179:3;8272:55;8321:4;8314:5;8310:16;8303:5;8272:55;:::i;:::-;8359:4;8352;8347:3;8343:14;8336:28;8385:69;8448:4;8443:3;8439:14;8425:12;8411;8385:69;:::i;:::-;8373:81;;;8501:55;8550:4;8543:5;8539:16;8532:5;8501:55;:::i;:::-;8598:3;8592:4;8588:14;8581:4;8576:3;8572:14;8565:38;8626:63;8684:4;8668:14;8652;8626:63;:::i;:::-;8612:77;;;;8737:4;8730:5;8726:16;8713:30;8752;8774:7;8752:30;:::i;:::-;8828:7;8821:15;8814:23;8807:4;8802:3;8798:14;8791:47;;8854:6;8847:13;;;8114:752;;;;:::o;8871:2310::-;-1:-1:-1;;;;;9134:32:182;;9116:51;;9203:2;9198;9183:18;;;9176:30;;;9247:20;;9283:18;;;9276:33;;;;-1:-1:-1;;9357:15:182;;9344:29;9424:14;9420:27;;;-1:-1:-1;;9416:41:182;9392:66;;9382:94;;9472:1;9469;9462:12;9382:94;9567:4;9562:2;9547:18;;9540:32;9500:31;;9617:21;;9669:3;9654:19;;9647:36;9726:57;9779:2;9766:16;;9500:31;9726:57;:::i;:::-;9820:2;9814:3;9803:9;9799:19;9792:31;9846:74;9915:3;9904:9;9900:19;9886:12;9872;9846:74;:::i;:::-;9832:88;;;9983:2;9974:7;9970:16;9957:30;10070:2;10066:7;10056;10040:14;10036:28;10032:42;10010:20;10006:69;9996:97;;10089:1;10086;10079:12;9996:97;10232:2;10117:34;;10219:16;;;;10174:21;10258:18;10247:30;;10244:50;;;10290:1;10287;10280:12;10244:50;10320:6;10317:1;10313:14;10372:2;10356:14;10352:23;10343:7;10339:37;10336:57;;;10389:1;10386;10379:12;10336:57;10434:22;;;-1:-1:-1;;10430:37:182;10424:3;10409:19;;10402:66;10477:22;;;-1:-1:-1;;;;;10511:31:182;;10508:51;;;10555:1;10552;10545:12;10508:51;10607:2;10598:7;10593:2;10585:6;10581:15;10568:42;10641:2;10633:6;10629:15;10619:25;;;;;10691:55;10742:2;10734:6;10730:15;10722:6;10691:55;:::i;:::-;-1:-1:-1;;10792:18:182;;;10784:41;10777:4;10762:20;;10755:71;10849:70;10812:2;10907:11;;10891:14;10875;10849:70;:::i;:::-;10835:84;;;;10950:70;11016:2;11008:6;11004:15;10996:6;10950:70;:::i;:::-;11061:22;;;-1:-1:-1;;11057:36:182;11051:3;11036:19;;11029:65;11111:64;11065:6;11152:14;11111:64;:::i;:::-;11103:72;8871:2310;-1:-1:-1;;;;;;8871:2310:182:o;11186:306::-;11262:6;11270;11323:2;11311:9;11302:7;11298:23;11294:32;11291:52;;;11339:1;11336;11329:12;11291:52;11371:9;11365:16;11390:28;11412:5;11390:28;:::i;:::-;11482:2;11467:18;;;;11461:25;11437:5;;11461:25;;-1:-1:-1;;;11186:306:182:o;11497:136::-;11536:3;11564:5;11554:39;;11573:18;;:::i;:::-;-1:-1:-1;;;11609:18:182;;11497:136::o;12655:352::-;12857:2;12839:21;;;12896:2;12876:18;;;12869:30;12935;12930:2;12915:18;;12908:58;12998:2;12983:18;;12655:352::o","linkReferences":{}},"methodIdentifiers":{"addHelper(bytes32,address)":"52741df5","addSubVerifier(bytes32,address)":"b3c83d99","admin()":"f851a440","config(bytes32)":"cc718f76","getHelper(bytes32)":"5dd41f2f","getSubVerifier(bytes32)":"f2649807","guardian()":"452a9320","helperCount()":"da0ff2c6","helpers(bytes32)":"a7ad58bf","pause()":"8456cb59","paused()":"5c975abb","removeHelper(bytes32)":"9bfefbfd","removeSubVerifier(bytes32)":"6f907638","rootRegistry()":"b96b161c","setGuardian(address)":"8a0dac4a","subverifierCount()":"c961ba7e","subverifiers(bytes32)":"492f34fb","transferAdmin(address)":"75829def","unpause()":"3f4ba83a","updateConfig(bytes32,bytes32)":"889eba3b","updateHelper(bytes32,address)":"ba5f3f9d","updateSubVerifier(bytes32,address)":"07915439","verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":"578bd921"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_guardian\",\"type\":\"address\"},{\"internalType\":\"contract IRootRegistry\",\"name\":\"_rootRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oldValue\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"}],\"name\":\"ConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"GuardianUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"helper\",\"type\":\"address\"}],\"name\":\"HelperAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"helper\",\"type\":\"address\"}],\"name\":\"HelperRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldHelper\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"HelperUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"PausedStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldRootRegistry\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRootRegistry\",\"type\":\"address\"}],\"name\":\"RootRegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rootRegistry\",\"type\":\"address\"}],\"name\":\"RootVerifierDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldSubVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSubVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"addHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"contract ZKPassportSubVerifier\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"addSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"config\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getHelper\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getSubVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"helperCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"helpers\",\"outputs\":[{\"internalType\":\"contract ZKPassportHelper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"removeHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"removeSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootRegistry\",\"outputs\":[{\"internalType\":\"contract IRootRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"setGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subverifierCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"subverifiers\",\"outputs\":[{\"internalType\":\"contract ZKPassportSubVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"updateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"updateHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newSubVerifier\",\"type\":\"address\"}],\"name\":\"updateSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"publicInputs\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ProofVerificationData\",\"name\":\"proofVerificationData\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"committedInputs\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"validityPeriodInSeconds\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"scope\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"devMode\",\"type\":\"bool\"}],\"internalType\":\"struct ServiceConfig\",\"name\":\"serviceConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct ProofVerificationParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"uniqueIdentifier\",\"type\":\"bytes32\"},{\"internalType\":\"contract ZKPassportHelper\",\"name\":\"helper\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addHelper(bytes32,address)\":{\"params\":{\"newHelper\":\"The address of the helper\",\"version\":\"The version identifier\"}},\"addSubVerifier(bytes32,address)\":{\"params\":{\"subVerifier\":\"The address of the subverifier\",\"version\":\"The version identifier\"}},\"constructor\":{\"params\":{\"_admin\":\"The admin address\",\"_guardian\":\"The guardian address\",\"_rootRegistry\":\"The root registry address\"}},\"getHelper(bytes32)\":{\"details\":\"Returns zero address if no helper exists for the given version\",\"params\":{\"version\":\"The version identifier\"},\"returns\":{\"_0\":\"The address of the helper contract, or zero address if not found\"}},\"getSubVerifier(bytes32)\":{\"details\":\"Returns zero address if no subverifier exists for the given version\",\"params\":{\"version\":\"The version identifier\"},\"returns\":{\"_0\":\"The address of the subverifier contract, or zero address if not found\"}},\"pause()\":{\"details\":\"Only admin or guardian can pause the root verifierThis is a security measure to pause all proof verification operations in the event of an emergency\"},\"removeHelper(bytes32)\":{\"params\":{\"version\":\"The version identifier\"}},\"removeSubVerifier(bytes32)\":{\"params\":{\"version\":\"The version identifier\"}},\"setGuardian(address)\":{\"params\":{\"newGuardian\":\"The new guardian address\"}},\"transferAdmin(address)\":{\"params\":{\"newAdmin\":\"The new admin address\"}},\"unpause()\":{\"details\":\"Only admin can unpause the root verifier\"},\"updateConfig(bytes32,bytes32)\":{\"params\":{\"key\":\"The config key\",\"value\":\"The config value\"}},\"updateHelper(bytes32,address)\":{\"params\":{\"newHelper\":\"The address of the new helper\",\"version\":\"The version identifier\"}},\"updateSubVerifier(bytes32,address)\":{\"params\":{\"newSubVerifier\":\"The address of the new subverifier\",\"version\":\"The version identifier\"}},\"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"details\":\"This function is called by the root verifier to verify a proof for a specific version\",\"params\":{\"params\":\"The proof verification parameters\"},\"returns\":{\"helper\":\"The helper for the calling contract to use to verify the committed inputs\",\"uniqueIdentifier\":\"The unique identifier associated with the ID used to generate the proof\",\"valid\":\"True if the proof is valid or false otherwise\"}}},\"title\":\"ZKPassport Root Verifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addHelper(bytes32,address)\":{\"notice\":\"Adds a helper for a specific version\"},\"addSubVerifier(bytes32,address)\":{\"notice\":\"Adds a subverifier for a specific version\"},\"constructor\":{\"notice\":\"Constructor\"},\"getHelper(bytes32)\":{\"notice\":\"Gets the helper address for a specific version\"},\"getSubVerifier(bytes32)\":{\"notice\":\"Gets the subverifier address for a specific version\"},\"pause()\":{\"notice\":\"Pause the root verifier\"},\"removeHelper(bytes32)\":{\"notice\":\"Removes a helper for a specific version\"},\"removeSubVerifier(bytes32)\":{\"notice\":\"Removes a subverifier for a specific version\"},\"setGuardian(address)\":{\"notice\":\"Sets the guardian role to a new address\"},\"transferAdmin(address)\":{\"notice\":\"Transfers the admin role to a new address\"},\"unpause()\":{\"notice\":\"Unpause the root verifier\"},\"updateConfig(bytes32,bytes32)\":{\"notice\":\"Update a config value\"},\"updateHelper(bytes32,address)\":{\"notice\":\"Updates a helper for a specific version\"},\"updateSubVerifier(bytes32,address)\":{\"notice\":\"Updates a subverifier for a specific version\"},\"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"notice\":\"Verifies a ZKPassport zero-knowledge proof\"}},\"notice\":\"Main entry point for verifying ZKPassport identity proofs\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":\"ZKPassportRootVerifier\"},\"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/circuits/src/solidity/src/Constants.sol\":{\"keccak256\":\"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702\",\"dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp\"]},\"lib/circuits/src/solidity/src/DateUtils.sol\":{\"keccak256\":\"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab\",\"dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4\"]},\"lib/circuits/src/solidity/src/IProofVerifier.sol\":{\"keccak256\":\"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6\",\"dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm\"]},\"lib/circuits/src/solidity/src/IRootRegistry.sol\":{\"keccak256\":\"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72\",\"dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg\"]},\"lib/circuits/src/solidity/src/InputsExtractor.sol\":{\"keccak256\":\"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450\",\"dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH\"]},\"lib/circuits/src/solidity/src/StringUtils.sol\":{\"keccak256\":\"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11\",\"dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe\"]},\"lib/circuits/src/solidity/src/Types.sol\":{\"keccak256\":\"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c\",\"dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR\"]},\"lib/circuits/src/solidity/src/ZKPassportHelper.sol\":{\"keccak256\":\"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34\",\"dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5\"]},\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":{\"keccak256\":\"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355\",\"dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s\"]},\"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol\":{\"keccak256\":\"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1\",\"dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_guardian","type":"address"},{"internalType":"contract IRootRegistry","name":"_rootRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"oldAdmin","type":"address","indexed":true},{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"AdminUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"oldValue","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"newValue","type":"bytes32","indexed":false}],"type":"event","name":"ConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"oldGuardian","type":"address","indexed":true},{"internalType":"address","name":"newGuardian","type":"address","indexed":true}],"type":"event","name":"GuardianUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"helper","type":"address","indexed":true}],"type":"event","name":"HelperAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"helper","type":"address","indexed":true}],"type":"event","name":"HelperRemoved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"oldHelper","type":"address","indexed":true},{"internalType":"address","name":"newHelper","type":"address","indexed":true}],"type":"event","name":"HelperUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"paused","type":"bool","indexed":false}],"type":"event","name":"PausedStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"oldRootRegistry","type":"address","indexed":true},{"internalType":"address","name":"newRootRegistry","type":"address","indexed":true}],"type":"event","name":"RootRegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":false},{"internalType":"address","name":"guardian","type":"address","indexed":false},{"internalType":"address","name":"rootRegistry","type":"address","indexed":false}],"type":"event","name":"RootVerifierDeployed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"subVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"subVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierRemoved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"oldSubVerifier","type":"address","indexed":true},{"internalType":"address","name":"newSubVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newHelper","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"contract ZKPassportSubVerifier","name":"subVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addSubVerifier"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"config","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getHelper","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSubVerifier","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"helperCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"helpers","outputs":[{"internalType":"contract ZKPassportHelper","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeSubVerifier"},{"inputs":[],"stateMutability":"view","type":"function","name":"rootRegistry","outputs":[{"internalType":"contract IRootRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newGuardian","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setGuardian"},{"inputs":[],"stateMutability":"view","type":"function","name":"subverifierCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"subverifiers","outputs":[{"internalType":"contract ZKPassportSubVerifier","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateConfig"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newHelper","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newSubVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateSubVerifier"},{"inputs":[{"internalType":"struct ProofVerificationParams","name":"params","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"struct ProofVerificationData","name":"proofVerificationData","type":"tuple","components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"}]},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple","components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}]}]}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"bytes32","name":"uniqueIdentifier","type":"bytes32"},{"internalType":"contract ZKPassportHelper","name":"helper","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"addHelper(bytes32,address)":{"params":{"newHelper":"The address of the helper","version":"The version identifier"}},"addSubVerifier(bytes32,address)":{"params":{"subVerifier":"The address of the subverifier","version":"The version identifier"}},"constructor":{"params":{"_admin":"The admin address","_guardian":"The guardian address","_rootRegistry":"The root registry address"}},"getHelper(bytes32)":{"details":"Returns zero address if no helper exists for the given version","params":{"version":"The version identifier"},"returns":{"_0":"The address of the helper contract, or zero address if not found"}},"getSubVerifier(bytes32)":{"details":"Returns zero address if no subverifier exists for the given version","params":{"version":"The version identifier"},"returns":{"_0":"The address of the subverifier contract, or zero address if not found"}},"pause()":{"details":"Only admin or guardian can pause the root verifierThis is a security measure to pause all proof verification operations in the event of an emergency"},"removeHelper(bytes32)":{"params":{"version":"The version identifier"}},"removeSubVerifier(bytes32)":{"params":{"version":"The version identifier"}},"setGuardian(address)":{"params":{"newGuardian":"The new guardian address"}},"transferAdmin(address)":{"params":{"newAdmin":"The new admin address"}},"unpause()":{"details":"Only admin can unpause the root verifier"},"updateConfig(bytes32,bytes32)":{"params":{"key":"The config key","value":"The config value"}},"updateHelper(bytes32,address)":{"params":{"newHelper":"The address of the new helper","version":"The version identifier"}},"updateSubVerifier(bytes32,address)":{"params":{"newSubVerifier":"The address of the new subverifier","version":"The version identifier"}},"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"details":"This function is called by the root verifier to verify a proof for a specific version","params":{"params":"The proof verification parameters"},"returns":{"helper":"The helper for the calling contract to use to verify the committed inputs","uniqueIdentifier":"The unique identifier associated with the ID used to generate the proof","valid":"True if the proof is valid or false otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"addHelper(bytes32,address)":{"notice":"Adds a helper for a specific version"},"addSubVerifier(bytes32,address)":{"notice":"Adds a subverifier for a specific version"},"constructor":{"notice":"Constructor"},"getHelper(bytes32)":{"notice":"Gets the helper address for a specific version"},"getSubVerifier(bytes32)":{"notice":"Gets the subverifier address for a specific version"},"pause()":{"notice":"Pause the root verifier"},"removeHelper(bytes32)":{"notice":"Removes a helper for a specific version"},"removeSubVerifier(bytes32)":{"notice":"Removes a subverifier for a specific version"},"setGuardian(address)":{"notice":"Sets the guardian role to a new address"},"transferAdmin(address)":{"notice":"Transfers the admin role to a new address"},"unpause()":{"notice":"Unpause the root verifier"},"updateConfig(bytes32,bytes32)":{"notice":"Update a config value"},"updateHelper(bytes32,address)":{"notice":"Updates a helper for a specific version"},"updateSubVerifier(bytes32,address)":{"notice":"Updates a subverifier for a specific version"},"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"notice":"Verifies a ZKPassport zero-knowledge proof"}},"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/circuits/src/solidity/src/ZKPassportRootVerifier.sol":"ZKPassportRootVerifier"},"evmVersion":"prague","libraries":{}},"sources":{"lib/circuits/src/solidity/src/Constants.sol":{"keccak256":"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7","urls":["bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702","dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/DateUtils.sol":{"keccak256":"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6","urls":["bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab","dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IProofVerifier.sol":{"keccak256":"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14","urls":["bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6","dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IRootRegistry.sol":{"keccak256":"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a","urls":["bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72","dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/InputsExtractor.sol":{"keccak256":"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da","urls":["bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450","dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/StringUtils.sol":{"keccak256":"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306","urls":["bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11","dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/Types.sol":{"keccak256":"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668","urls":["bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c","dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportHelper.sol":{"keccak256":"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16","urls":["bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34","dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol":{"keccak256":"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009","urls":["bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355","dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol":{"keccak256":"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd","urls":["bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1","dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw"],"license":"Apache-2.0"}},"version":1},"id":9}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_guardian","type":"address","internalType":"address"},{"name":"_rootRegistry","type":"address","internalType":"contract IRootRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"addHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newHelper","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"subVerifier","type":"address","internalType":"contract ZKPassportSubVerifier"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"config","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"helperCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"helpers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportHelper"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRootRegistry"}],"stateMutability":"view"},{"type":"function","name":"setGuardian","inputs":[{"name":"newGuardian","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subverifierCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"subverifiers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportSubVerifier"}],"stateMutability":"view"},{"type":"function","name":"transferAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateConfig","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newHelper","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newSubVerifier","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"params","type":"tuple","internalType":"struct ProofVerificationParams","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"proofVerificationData","type":"tuple","internalType":"struct ProofVerificationData","components":[{"name":"vkeyHash","type":"bytes32","internalType":"bytes32"},{"name":"proof","type":"bytes","internalType":"bytes"},{"name":"publicInputs","type":"bytes32[]","internalType":"bytes32[]"}]},{"name":"committedInputs","type":"bytes","internalType":"bytes"},{"name":"serviceConfig","type":"tuple","internalType":"struct ServiceConfig","components":[{"name":"validityPeriodInSeconds","type":"uint256","internalType":"uint256"},{"name":"domain","type":"string","internalType":"string"},{"name":"scope","type":"string","internalType":"string"},{"name":"devMode","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"uniqueIdentifier","type":"bytes32","internalType":"bytes32"},{"name":"helper","type":"address","internalType":"contract ZKPassportHelper"}],"stateMutability":"view"},{"type":"event","name":"AdminUpdated","inputs":[{"name":"oldAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ConfigUpdated","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldValue","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newValue","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"GuardianUpdated","inputs":[{"name":"oldGuardian","type":"address","indexed":true,"internalType":"address"},{"name":"newGuardian","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperAdded","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"helper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperRemoved","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"helper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperUpdated","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldHelper","type":"address","indexed":true,"internalType":"address"},{"name":"newHelper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PausedStatusChanged","inputs":[{"name":"paused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RootRegistryUpdated","inputs":[{"name":"oldRootRegistry","type":"address","indexed":true,"internalType":"address"},{"name":"newRootRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RootVerifierDeployed","inputs":[{"name":"admin","type":"address","indexed":false,"internalType":"address"},{"name":"guardian","type":"address","indexed":false,"internalType":"address"},{"name":"rootRegistry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierAdded","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"subVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierRemoved","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"subVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierUpdated","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldSubVerifier","type":"address","indexed":true,"internalType":"address"},{"name":"newSubVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516114a43803806114a483398101604081905261002e91610125565b6001600160a01b0383166100885760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f206164647265737300000000604482015260640160405180910390fd5b5f80546001600160a01b038581166001600160a01b0319928316811790935560018054868316908416811790915560028054928616929093168217909255604080519384526020840192909252908201527f49958336430bdf59d989fb74186fd9ed78af011655d4ffe62fa2fbe5193edbda9060600160405180910390a150505061016f565b6001600160a01b0381168114610122575f5ffd5b50565b5f5f5f60608486031215610137575f5ffd5b83516101428161010e565b60208501519093506101538161010e565b60408501519092506101648161010e565b809150509250925092565b6113288061017c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063889eba3b116100bf578063ba5f3f9d11610079578063ba5f3f9d1461030e578063c961ba7e14610321578063cc718f7614610338578063da0ff2c614610357578063f264980714610360578063f851a44014610388575f5ffd5b8063889eba3b146102875780638a0dac4a1461029a5780639bfefbfd146102ad578063a7ad58bf146102c0578063b3c83d99146102e8578063b96b161c146102fb575f5ffd5b8063578bd92111610110578063578bd921146101d45780635c975abb1461020d5780635dd41f2f146102315780636f9076381461025957806375829def1461026c5780638456cb591461027f575f5ffd5b8063079154391461014c5780633f4ba83a14610161578063452a932014610169578063492f34fb1461019957806352741df5146101c1575b5f5ffd5b61015f61015a366004610e2a565b61039a565b005b61015f61049f565b60015461017c906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61017c6101a7366004610e58565b60036020525f90815260409020546001600160a01b031681565b61015f6101cf366004610e2a565b61050b565b6101e76101e2366004610e6f565b610657565b60408051931515845260208401929092526001600160a01b031690820152606001610190565b60015461022190600160a01b900460ff1681565b6040519015158152602001610190565b61017c61023f366004610e58565b5f908152600560205260409020546001600160a01b031690565b61015f610267366004610e58565b61077e565b61015f61027a366004610ead565b61085f565b61015f61092d565b61015f610295366004610ec8565b6109ed565b61015f6102a8366004610ead565b610a6b565b61015f6102bb366004610e58565b610ae5565b61017c6102ce366004610e58565b60056020525f90815260409020546001600160a01b031681565b61015f6102f6366004610e2a565b610bc6565b60025461017c906001600160a01b031681565b61015f61031c366004610e2a565b610d17565b61032a60045481565b604051908152602001610190565b61032a610346366004610e58565b60076020525f908152604090205481565b61032a60065481565b61017c61036e366004610e58565b5f908152600360205260409020546001600160a01b031690565b5f5461017c906001600160a01b031681565b5f546001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610ee8565b60405180910390fd5b816103e95760405162461bcd60e51b81526004016103c390610f1f565b6001600160a01b03811661040f5760405162461bcd60e51b81526004016103c390610f4f565b5f828152600360205260409020546001600160a01b03166104425760405162461bcd60e51b81526004016103c390610f91565b5f8281526003602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fa643a1aa11f9709b2990b31638a0b368d6d0c3b8f025a98a3249fea2bd5821d791a4505050565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103c390610ee8565b6001805460ff60a01b191690556040515f81527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c5906020015b60405180910390a1565b5f546001600160a01b031633146105345760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b03811661055a5760405162461bcd60e51b81526004016103c390610fd2565b816105775760405162461bcd60e51b81526004016103c390610f1f565b5f828152600560205260409020546001600160a01b0316156105e55760405162461bcd60e51b815260206004820152602160248201527f48656c70657220616c72656164792065786973747320666f722076657273696f6044820152603760f91b60648201526084016103c3565b5f82815260056020526040812080546001600160a01b0319166001600160a01b03841617905560068054916106198361101d565b90915550506040516001600160a01b0382169083907fe3eccbb854b4a5c161cda43f1e76981a22f8c4a4190a1e1b44bb8c69039b85b2905f90a35050565b5f5f5f600160149054906101000a900460ff16156106b15760405162461bcd60e51b8152602060048201526017602482015276149bdbdd081d995c9a599a595c881a5cc81c185d5cd959604a1b60448201526064016103c3565b83355f908152600360205260409020546001600160a01b0316806106e75760405162461bcd60e51b81526004016103c390610f91565b600254604051637446a77360e11b81526001600160a01b038381169263e88d4ee69261071b9290911690899060040161113f565b6040805180830381865afa158015610735573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610759919061127a565b95355f9081526005602052604090205490966001600160a01b03909116945092505050565b5f546001600160a01b031633146107a75760405162461bcd60e51b81526004016103c390610ee8565b806107c45760405162461bcd60e51b81526004016103c390610f1f565b5f818152600360205260409020546001600160a01b0316806107f85760405162461bcd60e51b81526004016103c390610f91565b5f82815260036020526040812080546001600160a01b03191690556004805491610821836112a6565b90915550506040516001600160a01b0382169083907f2632c7adc4cecbf41bb3ee7c156aae99b0bcd9da3efa5b9315f77dcdf6ef3e66905f90a35050565b5f546001600160a01b031633146108885760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b0381166108de5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016103c3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f546001600160a01b031633148061094f57506001546001600160a01b031633145b6109aa5760405162461bcd60e51b815260206004820152602660248201527f4e6f7420617574686f72697a65643a2061646d696e206f7220677561726469616044820152656e206f6e6c7960d01b60648201526084016103c3565b6001805460ff60a01b1916600160a01b1781556040519081527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c590602001610501565b5f546001600160a01b03163314610a165760405162461bcd60e51b81526004016103c390610ee8565b5f8281526007602090815260409182902080549084905582518181529182018490529184917fbb4f63ec43349b7ec7c292d3e97704824bcdd2d758200521ad62d3e9a127f782910160405180910390a2505050565b5f546001600160a01b03163314610a945760405162461bcd60e51b81526004016103c390610ee8565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad909905f90a35050565b5f546001600160a01b03163314610b0e5760405162461bcd60e51b81526004016103c390610ee8565b80610b2b5760405162461bcd60e51b81526004016103c390610f1f565b5f818152600560205260409020546001600160a01b031680610b5f5760405162461bcd60e51b81526004016103c3906112bb565b5f82815260056020526040812080546001600160a01b03191690556006805491610b88836112a6565b90915550506040516001600160a01b0382169083907f6a7d5ce7bf32942d5ee1a06318777e6921ab7173478635304ac93845d7de61e0905f90a35050565b5f546001600160a01b03163314610bef5760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b038116610c155760405162461bcd60e51b81526004016103c390610f4f565b81610c325760405162461bcd60e51b81526004016103c390610f1f565b5f828152600360205260409020546001600160a01b031615610ca55760405162461bcd60e51b815260206004820152602660248201527f537562766572696669657220616c72656164792065786973747320666f72207660448201526532b939b4b7b760d11b60648201526084016103c3565b5f82815260036020526040812080546001600160a01b0319166001600160a01b0384161790556004805491610cd98361101d565b90915550506040516001600160a01b0382169083907fa65f9939af3939f730447054d525d5526c5f9e75ccea14966e1de1876631f404905f90a35050565b5f546001600160a01b03163314610d405760405162461bcd60e51b81526004016103c390610ee8565b81610d5d5760405162461bcd60e51b81526004016103c390610f1f565b6001600160a01b038116610d835760405162461bcd60e51b81526004016103c390610fd2565b5f828152600560205260409020546001600160a01b0316610db65760405162461bcd60e51b81526004016103c3906112bb565b5f8281526005602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fb9393e6de8fe36cc235a7d08d2fa004db98bbb2a2be241250df83a276bc0d62e91a4505050565b6001600160a01b0381168114610e27575f5ffd5b50565b5f5f60408385031215610e3b575f5ffd5b823591506020830135610e4d81610e13565b809150509250929050565b5f60208284031215610e68575f5ffd5b5035919050565b5f60208284031215610e7f575f5ffd5b813567ffffffffffffffff811115610e95575f5ffd5b820160808185031215610ea6575f5ffd5b9392505050565b5f60208284031215610ebd575f5ffd5b8135610ea681610e13565b5f5f60408385031215610ed9575f5ffd5b50508035926020909101359150565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b60208082526016908201527556657273696f6e2063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526022908201527f53756276657269666965722063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f5375627665726966696572206e6f7420666f756e6420666f722076657273696f6040820152603760f91b606082015260800190565b6020808252601d908201527f48656c7065722063616e6e6f74206265207a65726f2061646472657373000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161102e5761102e611009565b5060010190565b5f5f8335601e1984360301811261104a575f5ffd5b830160208101925035905067ffffffffffffffff811115611069575f5ffd5b803603821315611077575f5ffd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235607e198336030181126110ba575f5ffd5b90910192915050565b8015158114610e27575f5ffd5b803582525f6110e26020830183611035565b608060208601526110f760808601828461107e565b9150506111076040840184611035565b858303604087015261111a83828461107e565b92505050606083013561112c816110c3565b8015156060860152508091505092915050565b6001600160a01b0383168152604060208083018290528335918301919091525f9083013536849003605e19018112611175575f5ffd5b608060608401528301803560c08401526111926020820182611035565b606060e08601526111a86101208601828461107e565b9150506040820135601e198336030181126111c1575f5ffd5b60209201918201913567ffffffffffffffff8111156111de575f5ffd5b8060051b8036038413156111f0575f5ffd5b85830360bf19016101008701528183526001600160fb1b03821115611213575f5ffd5b80846020850137808301935050505061122f6040850185611035565b601f1985840301608086015261124960208401828461107e565b9250505061125a60608501856110a6565b838203603f190160a085015261127082826110d0565b9695505050505050565b5f5f6040838503121561128b575f5ffd5b8251611296816110c3565b6020939093015192949293505050565b5f816112b4576112b4611009565b505f190190565b6020808252601c908201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060408201526060019056fea2646970667358221220794882ea1737aa8973be9d87b28174bb4c71106028074a23ed311bd1e2b54c4764736f6c634300081e0033","sourceMap":"681:9071:9:-:0;;;2414:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2504:20:9;;2496:61;;;;-1:-1:-1;;;2496:61:9;;898:2:184;2496:61:9;;;880:21:184;937:2;917:18;;;910:30;976;956:18;;;949:58;1024:18;;2496:61:9;;;;;;;;2563:5;:14;;-1:-1:-1;;;;;2563:14:9;;;-1:-1:-1;;;;;;2563:14:9;;;;;;;;-1:-1:-1;2583:20:9;;;;;;;;;;;;;2609:12;:28;;;;;;;;;;;;;;2648:61;;;1255:51:184;;;1337:2;1322:18;;1315:60;;;;1391:18;;;1384:60;2648:61:9;;1243:2:184;1228:18;2648:61:9;;;;;;;2414:300;;;681:9071;;14:131:184;-1:-1:-1;;;;;89:31:184;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:541::-;260:6;268;276;329:2;317:9;308:7;304:23;300:32;297:52;;;345:1;342;335:12;297:52;377:9;371:16;396:31;421:5;396:31;:::i;:::-;496:2;481:18;;475:25;446:5;;-1:-1:-1;509:33:184;475:25;509:33;:::i;:::-;613:2;598:18;;592:25;561:7;;-1:-1:-1;626:33:184;592:25;626:33;:::i;:::-;678:7;668:17;;;150:541;;;;;:::o;1053:397::-;681:9071:9;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063889eba3b116100bf578063ba5f3f9d11610079578063ba5f3f9d1461030e578063c961ba7e14610321578063cc718f7614610338578063da0ff2c614610357578063f264980714610360578063f851a44014610388575f5ffd5b8063889eba3b146102875780638a0dac4a1461029a5780639bfefbfd146102ad578063a7ad58bf146102c0578063b3c83d99146102e8578063b96b161c146102fb575f5ffd5b8063578bd92111610110578063578bd921146101d45780635c975abb1461020d5780635dd41f2f146102315780636f9076381461025957806375829def1461026c5780638456cb591461027f575f5ffd5b8063079154391461014c5780633f4ba83a14610161578063452a932014610169578063492f34fb1461019957806352741df5146101c1575b5f5ffd5b61015f61015a366004610e2a565b61039a565b005b61015f61049f565b60015461017c906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61017c6101a7366004610e58565b60036020525f90815260409020546001600160a01b031681565b61015f6101cf366004610e2a565b61050b565b6101e76101e2366004610e6f565b610657565b60408051931515845260208401929092526001600160a01b031690820152606001610190565b60015461022190600160a01b900460ff1681565b6040519015158152602001610190565b61017c61023f366004610e58565b5f908152600560205260409020546001600160a01b031690565b61015f610267366004610e58565b61077e565b61015f61027a366004610ead565b61085f565b61015f61092d565b61015f610295366004610ec8565b6109ed565b61015f6102a8366004610ead565b610a6b565b61015f6102bb366004610e58565b610ae5565b61017c6102ce366004610e58565b60056020525f90815260409020546001600160a01b031681565b61015f6102f6366004610e2a565b610bc6565b60025461017c906001600160a01b031681565b61015f61031c366004610e2a565b610d17565b61032a60045481565b604051908152602001610190565b61032a610346366004610e58565b60076020525f908152604090205481565b61032a60065481565b61017c61036e366004610e58565b5f908152600360205260409020546001600160a01b031690565b5f5461017c906001600160a01b031681565b5f546001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610ee8565b60405180910390fd5b816103e95760405162461bcd60e51b81526004016103c390610f1f565b6001600160a01b03811661040f5760405162461bcd60e51b81526004016103c390610f4f565b5f828152600360205260409020546001600160a01b03166104425760405162461bcd60e51b81526004016103c390610f91565b5f8281526003602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fa643a1aa11f9709b2990b31638a0b368d6d0c3b8f025a98a3249fea2bd5821d791a4505050565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103c390610ee8565b6001805460ff60a01b191690556040515f81527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c5906020015b60405180910390a1565b5f546001600160a01b031633146105345760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b03811661055a5760405162461bcd60e51b81526004016103c390610fd2565b816105775760405162461bcd60e51b81526004016103c390610f1f565b5f828152600560205260409020546001600160a01b0316156105e55760405162461bcd60e51b815260206004820152602160248201527f48656c70657220616c72656164792065786973747320666f722076657273696f6044820152603760f91b60648201526084016103c3565b5f82815260056020526040812080546001600160a01b0319166001600160a01b03841617905560068054916106198361101d565b90915550506040516001600160a01b0382169083907fe3eccbb854b4a5c161cda43f1e76981a22f8c4a4190a1e1b44bb8c69039b85b2905f90a35050565b5f5f5f600160149054906101000a900460ff16156106b15760405162461bcd60e51b8152602060048201526017602482015276149bdbdd081d995c9a599a595c881a5cc81c185d5cd959604a1b60448201526064016103c3565b83355f908152600360205260409020546001600160a01b0316806106e75760405162461bcd60e51b81526004016103c390610f91565b600254604051637446a77360e11b81526001600160a01b038381169263e88d4ee69261071b9290911690899060040161113f565b6040805180830381865afa158015610735573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610759919061127a565b95355f9081526005602052604090205490966001600160a01b03909116945092505050565b5f546001600160a01b031633146107a75760405162461bcd60e51b81526004016103c390610ee8565b806107c45760405162461bcd60e51b81526004016103c390610f1f565b5f818152600360205260409020546001600160a01b0316806107f85760405162461bcd60e51b81526004016103c390610f91565b5f82815260036020526040812080546001600160a01b03191690556004805491610821836112a6565b90915550506040516001600160a01b0382169083907f2632c7adc4cecbf41bb3ee7c156aae99b0bcd9da3efa5b9315f77dcdf6ef3e66905f90a35050565b5f546001600160a01b031633146108885760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b0381166108de5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016103c3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f546001600160a01b031633148061094f57506001546001600160a01b031633145b6109aa5760405162461bcd60e51b815260206004820152602660248201527f4e6f7420617574686f72697a65643a2061646d696e206f7220677561726469616044820152656e206f6e6c7960d01b60648201526084016103c3565b6001805460ff60a01b1916600160a01b1781556040519081527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c590602001610501565b5f546001600160a01b03163314610a165760405162461bcd60e51b81526004016103c390610ee8565b5f8281526007602090815260409182902080549084905582518181529182018490529184917fbb4f63ec43349b7ec7c292d3e97704824bcdd2d758200521ad62d3e9a127f782910160405180910390a2505050565b5f546001600160a01b03163314610a945760405162461bcd60e51b81526004016103c390610ee8565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad909905f90a35050565b5f546001600160a01b03163314610b0e5760405162461bcd60e51b81526004016103c390610ee8565b80610b2b5760405162461bcd60e51b81526004016103c390610f1f565b5f818152600560205260409020546001600160a01b031680610b5f5760405162461bcd60e51b81526004016103c3906112bb565b5f82815260056020526040812080546001600160a01b03191690556006805491610b88836112a6565b90915550506040516001600160a01b0382169083907f6a7d5ce7bf32942d5ee1a06318777e6921ab7173478635304ac93845d7de61e0905f90a35050565b5f546001600160a01b03163314610bef5760405162461bcd60e51b81526004016103c390610ee8565b6001600160a01b038116610c155760405162461bcd60e51b81526004016103c390610f4f565b81610c325760405162461bcd60e51b81526004016103c390610f1f565b5f828152600360205260409020546001600160a01b031615610ca55760405162461bcd60e51b815260206004820152602660248201527f537562766572696669657220616c72656164792065786973747320666f72207660448201526532b939b4b7b760d11b60648201526084016103c3565b5f82815260036020526040812080546001600160a01b0319166001600160a01b0384161790556004805491610cd98361101d565b90915550506040516001600160a01b0382169083907fa65f9939af3939f730447054d525d5526c5f9e75ccea14966e1de1876631f404905f90a35050565b5f546001600160a01b03163314610d405760405162461bcd60e51b81526004016103c390610ee8565b81610d5d5760405162461bcd60e51b81526004016103c390610f1f565b6001600160a01b038116610d835760405162461bcd60e51b81526004016103c390610fd2565b5f828152600560205260409020546001600160a01b0316610db65760405162461bcd60e51b81526004016103c3906112bb565b5f8281526005602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fb9393e6de8fe36cc235a7d08d2fa004db98bbb2a2be241250df83a276bc0d62e91a4505050565b6001600160a01b0381168114610e27575f5ffd5b50565b5f5f60408385031215610e3b575f5ffd5b823591506020830135610e4d81610e13565b809150509250929050565b5f60208284031215610e68575f5ffd5b5035919050565b5f60208284031215610e7f575f5ffd5b813567ffffffffffffffff811115610e95575f5ffd5b820160808185031215610ea6575f5ffd5b9392505050565b5f60208284031215610ebd575f5ffd5b8135610ea681610e13565b5f5f60408385031215610ed9575f5ffd5b50508035926020909101359150565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b60208082526016908201527556657273696f6e2063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526022908201527f53756276657269666965722063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f5375627665726966696572206e6f7420666f756e6420666f722076657273696f6040820152603760f91b606082015260800190565b6020808252601d908201527f48656c7065722063616e6e6f74206265207a65726f2061646472657373000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161102e5761102e611009565b5060010190565b5f5f8335601e1984360301811261104a575f5ffd5b830160208101925035905067ffffffffffffffff811115611069575f5ffd5b803603821315611077575f5ffd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235607e198336030181126110ba575f5ffd5b90910192915050565b8015158114610e27575f5ffd5b803582525f6110e26020830183611035565b608060208601526110f760808601828461107e565b9150506111076040840184611035565b858303604087015261111a83828461107e565b92505050606083013561112c816110c3565b8015156060860152508091505092915050565b6001600160a01b0383168152604060208083018290528335918301919091525f9083013536849003605e19018112611175575f5ffd5b608060608401528301803560c08401526111926020820182611035565b606060e08601526111a86101208601828461107e565b9150506040820135601e198336030181126111c1575f5ffd5b60209201918201913567ffffffffffffffff8111156111de575f5ffd5b8060051b8036038413156111f0575f5ffd5b85830360bf19016101008701528183526001600160fb1b03821115611213575f5ffd5b80846020850137808301935050505061122f6040850185611035565b601f1985840301608086015261124960208401828461107e565b9250505061125a60608501856110a6565b838203603f190160a085015261127082826110d0565b9695505050505050565b5f5f6040838503121561128b575f5ffd5b8251611296816110c3565b6020939093015192949293505050565b5f816112b4576112b4611009565b505f190190565b6020808252601c908201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060408201526060019056fea2646970667358221220794882ea1737aa8973be9d87b28174bb4c71106028074a23ed311bd1e2b54c4764736f6c634300081e0033","sourceMap":"681:9071:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:529;;;;;;:::i;:::-;;:::i;:::-;;9650:100;;;:::i;741:23::-;;;;;-1:-1:-1;;;;;741:23:9;;;;;;-1:-1:-1;;;;;686:32:184;;;668:51;;656:2;641:18;741:23:9;;;;;;;;884:61;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;884:61:9;;;7056:416;;;;;;:::i;:::-;;:::i;3196:473::-;;;;;;:::i;:::-;;:::i;:::-;;;;1853:14:184;;1846:22;1828:41;;1900:2;1885:18;;1878:34;;;;-1:-1:-1;;;;;1948:32:184;1928:18;;;1921:60;1816:2;1801:18;3196:473:9;1607:380:184;768:18:9;;;;;-1:-1:-1;;;768:18:9;;;;;;;;;2157:14:184;;2150:22;2132:41;;2120:2;2105:18;768::9;1992:187:184;8806:111:9;;;;;;:::i;:::-;8865:7;8895:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8895:16:9;;8806:111;5411:374;;;;;;:::i;:::-;;:::i;4123:229::-;;;;;;:::i;:::-;;:::i;9438:106::-;;;:::i;9034:181::-;;;;;;:::i;:::-;;:::i;4470:182::-;;;;;;:::i;:::-;;:::i;7584:329::-;;;;;;:::i;:::-;;:::i;1049:51::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1049:51:9;;;4821:473;;;;;;:::i;:::-;;:::i;821:33::-;;;;;-1:-1:-1;;;;;821:33:9;;;8077:459;;;;;;:::i;:::-;;:::i;993:31::-;;;;;;;;;3798:25:184;;;3786:2;3771:18;993:31:9;3652:177:184;1194:51:9;;;;;;:::i;:::-;;;;;;;;;;;;;;1143:26;;;;;;6778:121;;;;;;:::i;:::-;6842:7;6872:21;;;:12;:21;;;;;;-1:-1:-1;;;;;6872:21:9;;6778:121;717:20;;;;;-1:-1:-1;;;;;717:20:9;;;5964:529;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;;;;;;;;;6065:7;6057:56:::1;;;;-1:-1:-1::0;;;6057:56:9::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6127:28:9;::::1;6119:75;;;;-1:-1:-1::0;;;6119:75:9::1;;;;;;;:::i;:::-;6250:1;6216:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;6216:21:9::1;6200:90;;;;-1:-1:-1::0;;;6200:90:9::1;;;;;;;:::i;:::-;6296:22;6329:21:::0;;;:12:::1;:21;::::0;;;;;;;-1:-1:-1;;;;;;6357:61:9;::::1;-1:-1:-1::0;;;;;6357:61:9;;::::1;::::0;;::::1;::::0;;;6429:59;;6329:21;::::1;::::0;;;;;6429:59:::1;::::0;::::1;6051:442;5964:529:::0;;:::o;9650:100::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;9694:6:::1;:14:::0;;-1:-1:-1;;;;9694:14:9::1;::::0;;9719:26:::1;::::0;-1:-1:-1;2132:41:184;;9719:26:9::1;::::0;2120:2:184;2105:18;9719:26:9::1;;;;;;;;9650:100::o:0;7056:416::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;7144:23:9;::::1;7136:65;;;;-1:-1:-1::0;;;7136:65:9::1;;;;;;;:::i;:::-;7215:7:::0;7207:56:::1;;;;-1:-1:-1::0;;;7207:56:9::1;;;;;;;:::i;:::-;7314:1;7285:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;7285:16:9::1;7277:39:::0;7269:85:::1;;;::::0;-1:-1:-1;;;7269:85:9;;6087:2:184;7269:85:9::1;::::0;::::1;6069:21:184::0;6126:2;6106:18;;;6099:30;6165:34;6145:18;;;6138:62;-1:-1:-1;;;6216:18:184;;;6209:31;6257:19;;7269:85:9::1;5885:397:184::0;7269:85:9::1;7360:16;::::0;;;:7:::1;:16;::::0;;;;:46;;-1:-1:-1;;;;;;7360:46:9::1;-1:-1:-1::0;;;;;7360:46:9;::::1;;::::0;;7412:11:::1;:13:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;7436:31:9::1;::::0;-1:-1:-1;;;;;7436:31:9;::::1;::::0;7448:7;;7436:31:::1;::::0;;;::::1;7056:416:::0;;:::o;3196:473::-;3306:10;3318:24;3344:23;3963:6;;;;;;;;;;;3962:7;3954:43;;;;-1:-1:-1;;;3954:43:9;;6761:2:184;3954:43:9;;;6743:21:184;6800:2;6780:18;;;6773:30;-1:-1:-1;;;6819:18:184;;;6812:53;6882:18;;3954:43:9;6559:347:184;3954:43:9;3426:14;::::1;3377:33;3413:28:::0;;;:12:::1;:28;::::0;;;;;-1:-1:-1;;;;;3413:28:9::1;::::0;3447:80:::1;;;;-1:-1:-1::0;;;3447:80:9::1;;;;;;;:::i;:::-;3580:12;::::0;3561:40:::1;::::0;-1:-1:-1;;;3561:40:9;;-1:-1:-1;;;;;3561:18:9;;::::1;::::0;::::1;::::0;:40:::1;::::0;3580:12;;::::1;::::0;3594:6;;3561:40:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3648:14:::0;::::1;3640:23;::::0;;;:7:::1;:23;::::0;;;;;3533:68;;-1:-1:-1;;;;;3640:23:9;;::::1;::::0;-1:-1:-1;3196:473:9;-1:-1:-1;;;3196:473:9:o;5411:374::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;5488:7;5480:56:::1;;;;-1:-1:-1::0;;;5480:56:9::1;;;;;;;:::i;:::-;5542:19;5572:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;5572:21:9::1;::::0;5600:71:::1;;;;-1:-1:-1::0;;;5600:71:9::1;;;;;;;:::i;:::-;5684:21;::::0;;;:12:::1;:21;::::0;;;;5677:28;;-1:-1:-1;;;;;;5677:28:9::1;::::0;;5711:16:::1;:18:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;5740:40:9::1;::::0;-1:-1:-1;;;;;5740:40:9;::::1;::::0;5759:7;;5740:40:::1;::::0;;;::::1;5474:311;5411:374:::0;:::o;4123:229::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;4197:22:9;::::1;4189:63;;;::::0;-1:-1:-1;;;4189:63:9;;11840:2:184;4189:63:9::1;::::0;::::1;11822:21:184::0;11879:2;11859:18;;;11852:30;11918;11898:18;;;11891:58;11966:18;;4189:63:9::1;11638:352:184::0;4189:63:9::1;4258:16;4277:5:::0;;-1:-1:-1;;;;;4288:16:9;;::::1;-1:-1:-1::0;;;;;;4288:16:9;::::1;::::0;::::1;::::0;;4315:32:::1;::::0;4277:5;;;::::1;::::0;;;4315:32:::1;::::0;4258:16;4315:32:::1;4183:169;4123:229:::0;:::o;9438:106::-;3833:5;;-1:-1:-1;;;;;3833:5:9;3819:10;:19;;:45;;-1:-1:-1;3856:8:9;;-1:-1:-1;;;;;3856:8:9;3842:10;:22;3819:45;3811:96;;;;-1:-1:-1;;;3811:96:9;;12197:2:184;3811:96:9;;;12179:21:184;12236:2;12216:18;;;12209:30;12275:34;12255:18;;;12248:62;-1:-1:-1;;;12326:18:184;;;12319:36;12372:19;;3811:96:9;11995:402:184;3811:96:9;9499:4:::1;9490:13:::0;;-1:-1:-1;;;;9490:13:9::1;-1:-1:-1::0;;;9490:13:9::1;::::0;;9514:25:::1;::::0;2132:41:184;;;9514:25:9::1;::::0;2120:2:184;2105:18;9514:25:9::1;1992:187:184::0;9034:181:9;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;9109:16:::1;9128:11:::0;;;:6:::1;:11;::::0;;;;;;;;;;9145:19;;;;9175:35;;12576:25:184;;;12617:18;;;12610:34;;;9128:11:9;;;9175:35:::1;::::0;12549:18:184;9175:35:9::1;;;;;;;9103:112;9034:181:::0;;:::o;4470:182::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;4559:8:::1;::::0;;-1:-1:-1;;;;;4573:22:9;;::::1;-1:-1:-1::0;;;;;;4573:22:9;::::1;::::0;::::1;::::0;;;4606:41:::1;::::0;4559:8;::::1;::::0;4573:22;4559:8;;4606:41:::1;::::0;4537:19:::1;::::0;4606:41:::1;4531:121;4470:182:::0;:::o;7584:329::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;7656:7;7648:56:::1;;;;-1:-1:-1::0;;;7648:56:9::1;;;;;;;:::i;:::-;7710:14;7735:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;7735:16:9::1;::::0;7758:61:::1;;;;-1:-1:-1::0;;;7758:61:9::1;;;;;;;:::i;:::-;7832:16;::::0;;;:7:::1;:16;::::0;;;;7825:23;;-1:-1:-1;;;;;;7825:23:9::1;::::0;;7854:11:::1;:13:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;7878:30:9::1;::::0;-1:-1:-1;;;;;7878:30:9;::::1;::::0;7892:7;;7878:30:::1;::::0;;;::::1;7642:271;7584:329:::0;:::o;4821:473::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;4930:34:9;::::1;4922:81;;;;-1:-1:-1::0;;;4922:81:9::1;;;;;;;:::i;:::-;5017:7:::0;5009:56:::1;;;;-1:-1:-1::0;;;5009:56:9::1;;;;;;;:::i;:::-;5121:1;5087:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;5087:21:9::1;5079:44:::0;5071:95:::1;;;::::0;-1:-1:-1;;;5071:95:9;;13214:2:184;5071:95:9::1;::::0;::::1;13196:21:184::0;13253:2;13233:18;;;13226:30;13292:34;13272:18;;;13265:62;-1:-1:-1;;;13343:18:184;;;13336:36;13389:19;;5071:95:9::1;13012:402:184::0;5071:95:9::1;5172:21;::::0;;;:12:::1;:21;::::0;;;;:35;;-1:-1:-1;;;;;;5172:35:9::1;-1:-1:-1::0;;;;;5172:35:9;::::1;;::::0;;5213:16:::1;:18:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;5242:47:9::1;::::0;-1:-1:-1;;;;;5242:47:9;::::1;::::0;5259:7;;5242:47:::1;::::0;;;::::1;4821:473:::0;;:::o;8077:459::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;8168:7;8160:56:::1;;;;-1:-1:-1::0;;;8160:56:9::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8230:23:9;::::1;8222:65;;;;-1:-1:-1::0;;;8222:65:9::1;;;;;;;:::i;:::-;8338:1;8309:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;8309:16:9::1;8293:80;;;;-1:-1:-1::0;;;8293:80:9::1;;;;;;;:::i;:::-;8379:17;8407:16:::0;;;:7:::1;:16;::::0;;;;;;;-1:-1:-1;;;;;;8430:46:9;::::1;-1:-1:-1::0;;;;;8430:46:9;;::::1;::::0;;::::1;::::0;;;8487:44;;8407:16;::::1;::::0;;;;;8487:44:::1;::::0;::::1;8154:382;8077:459:::0;;:::o;14:131:184:-;-1:-1:-1;;;;;89:31:184;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:367::-;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;340:23;;;-1:-1:-1;439:2:184;424:18;;411:32;452:33;411:32;452:33;:::i;:::-;504:7;494:17;;;150:367;;;;;:::o;730:226::-;789:6;842:2;830:9;821:7;817:23;813:32;810:52;;;858:1;855;848:12;810:52;-1:-1:-1;903:23:184;;730:226;-1:-1:-1;730:226:184:o;1199:403::-;1301:6;1354:2;1342:9;1333:7;1329:23;1325:32;1322:52;;;1370:1;1367;1360:12;1322:52;1410:9;1397:23;1443:18;1435:6;1432:30;1429:50;;;1475:1;1472;1465:12;1429:50;1498:22;;1554:3;1536:16;;;1532:26;1529:46;;;1571:1;1568;1561:12;1529:46;1594:2;1199:403;-1:-1:-1;;;1199:403:184:o;2184:247::-;2243:6;2296:2;2284:9;2275:7;2271:23;2267:32;2264:52;;;2312:1;2309;2302:12;2264:52;2351:9;2338:23;2370:31;2395:5;2370:31;:::i;2436:346::-;2504:6;2512;2565:2;2553:9;2544:7;2540:23;2536:32;2533:52;;;2581:1;2578;2571:12;2533:52;-1:-1:-1;;2626:23:184;;;2746:2;2731:18;;;2718:32;;-1:-1:-1;2436:346:184:o;4016:350::-;4218:2;4200:21;;;4257:2;4237:18;;;4230:30;4296:28;4291:2;4276:18;;4269:56;4357:2;4342:18;;4016:350::o;4371:346::-;4573:2;4555:21;;;4612:2;4592:18;;;4585:30;-1:-1:-1;;;4646:2:184;4631:18;;4624:52;4708:2;4693:18;;4371:346::o;4722:398::-;4924:2;4906:21;;;4963:2;4943:18;;;4936:30;5002:34;4997:2;4982:18;;4975:62;-1:-1:-1;;;5068:2:184;5053:18;;5046:32;5110:3;5095:19;;4722:398::o;5125:397::-;5327:2;5309:21;;;5366:2;5346:18;;;5339:30;5405:34;5400:2;5385:18;;5378:62;-1:-1:-1;;;5471:2:184;5456:18;;5449:31;5512:3;5497:19;;5125:397::o;5527:353::-;5729:2;5711:21;;;5768:2;5748:18;;;5741:30;5807:31;5802:2;5787:18;;5780:59;5871:2;5856:18;;5527:353::o;6287:127::-;6348:10;6343:3;6339:20;6336:1;6329:31;6379:4;6376:1;6369:15;6403:4;6400:1;6393:15;6419:135;6458:3;6479:17;;;6476:43;;6499:18;;:::i;:::-;-1:-1:-1;6546:1:184;6535:13;;6419:135::o;6911:500::-;6969:5;6976:6;7036:3;7023:17;7122:2;7118:7;7107:8;7091:14;7087:29;7083:43;7063:18;7059:68;7049:96;;7141:1;7138;7131:12;7049:96;7169:33;;7273:4;7260:18;;;-1:-1:-1;7221:21:184;;-1:-1:-1;7301:18:184;7290:30;;7287:50;;;7333:1;7330;7323:12;7287:50;7380:6;7364:14;7360:27;7353:5;7349:39;7346:59;;;7401:1;7398;7391:12;7346:59;6911:500;;;;;:::o;7416:266::-;7504:6;7499:3;7492:19;7556:6;7549:5;7542:4;7537:3;7533:14;7520:43;-1:-1:-1;7608:1:184;7583:16;;;7601:4;7579:27;;;7572:38;;;;7664:2;7643:15;;;-1:-1:-1;;7639:29:184;7630:39;;;7626:50;;7416:266::o;7687:299::-;7760:5;7819:3;7806:17;7905:3;7901:8;7890;7874:14;7870:29;7866:44;7846:18;7842:69;7832:97;;7925:1;7922;7915:12;7832:97;7947:33;;;;7687:299;-1:-1:-1;;7687:299:184:o;7991:118::-;8077:5;8070:13;8063:21;8056:5;8053:32;8043:60;;8099:1;8096;8089:12;8114:752;8222:5;8209:19;8204:3;8197:32;8179:3;8272:55;8321:4;8314:5;8310:16;8303:5;8272:55;:::i;:::-;8359:4;8352;8347:3;8343:14;8336:28;8385:69;8448:4;8443:3;8439:14;8425:12;8411;8385:69;:::i;:::-;8373:81;;;8501:55;8550:4;8543:5;8539:16;8532:5;8501:55;:::i;:::-;8598:3;8592:4;8588:14;8581:4;8576:3;8572:14;8565:38;8626:63;8684:4;8668:14;8652;8626:63;:::i;:::-;8612:77;;;;8737:4;8730:5;8726:16;8713:30;8752;8774:7;8752:30;:::i;:::-;8828:7;8821:15;8814:23;8807:4;8802:3;8798:14;8791:47;;8854:6;8847:13;;;8114:752;;;;:::o;8871:2310::-;-1:-1:-1;;;;;9134:32:184;;9116:51;;9203:2;9198;9183:18;;;9176:30;;;9247:20;;9283:18;;;9276:33;;;;-1:-1:-1;;9357:15:184;;9344:29;9424:14;9420:27;;;-1:-1:-1;;9416:41:184;9392:66;;9382:94;;9472:1;9469;9462:12;9382:94;9567:4;9562:2;9547:18;;9540:32;9500:31;;9617:21;;9669:3;9654:19;;9647:36;9726:57;9779:2;9766:16;;9500:31;9726:57;:::i;:::-;9820:2;9814:3;9803:9;9799:19;9792:31;9846:74;9915:3;9904:9;9900:19;9886:12;9872;9846:74;:::i;:::-;9832:88;;;9983:2;9974:7;9970:16;9957:30;10070:2;10066:7;10056;10040:14;10036:28;10032:42;10010:20;10006:69;9996:97;;10089:1;10086;10079:12;9996:97;10232:2;10117:34;;10219:16;;;;10174:21;10258:18;10247:30;;10244:50;;;10290:1;10287;10280:12;10244:50;10320:6;10317:1;10313:14;10372:2;10356:14;10352:23;10343:7;10339:37;10336:57;;;10389:1;10386;10379:12;10336:57;10434:22;;;-1:-1:-1;;10430:37:184;10424:3;10409:19;;10402:66;10477:22;;;-1:-1:-1;;;;;10511:31:184;;10508:51;;;10555:1;10552;10545:12;10508:51;10607:2;10598:7;10593:2;10585:6;10581:15;10568:42;10641:2;10633:6;10629:15;10619:25;;;;;10691:55;10742:2;10734:6;10730:15;10722:6;10691:55;:::i;:::-;-1:-1:-1;;10792:18:184;;;10784:41;10777:4;10762:20;;10755:71;10849:70;10812:2;10907:11;;10891:14;10875;10849:70;:::i;:::-;10835:84;;;;10950:70;11016:2;11008:6;11004:15;10996:6;10950:70;:::i;:::-;11061:22;;;-1:-1:-1;;11057:36:184;11051:3;11036:19;;11029:65;11111:64;11065:6;11152:14;11111:64;:::i;:::-;11103:72;8871:2310;-1:-1:-1;;;;;;8871:2310:184:o;11186:306::-;11262:6;11270;11323:2;11311:9;11302:7;11298:23;11294:32;11291:52;;;11339:1;11336;11329:12;11291:52;11371:9;11365:16;11390:28;11412:5;11390:28;:::i;:::-;11482:2;11467:18;;;;11461:25;11437:5;;11461:25;;-1:-1:-1;;;11186:306:184:o;11497:136::-;11536:3;11564:5;11554:39;;11573:18;;:::i;:::-;-1:-1:-1;;;11609:18:184;;11497:136::o;12655:352::-;12857:2;12839:21;;;12896:2;12876:18;;;12869:30;12935;12930:2;12915:18;;12908:58;12998:2;12983:18;;12655:352::o","linkReferences":{}},"methodIdentifiers":{"addHelper(bytes32,address)":"52741df5","addSubVerifier(bytes32,address)":"b3c83d99","admin()":"f851a440","config(bytes32)":"cc718f76","getHelper(bytes32)":"5dd41f2f","getSubVerifier(bytes32)":"f2649807","guardian()":"452a9320","helperCount()":"da0ff2c6","helpers(bytes32)":"a7ad58bf","pause()":"8456cb59","paused()":"5c975abb","removeHelper(bytes32)":"9bfefbfd","removeSubVerifier(bytes32)":"6f907638","rootRegistry()":"b96b161c","setGuardian(address)":"8a0dac4a","subverifierCount()":"c961ba7e","subverifiers(bytes32)":"492f34fb","transferAdmin(address)":"75829def","unpause()":"3f4ba83a","updateConfig(bytes32,bytes32)":"889eba3b","updateHelper(bytes32,address)":"ba5f3f9d","updateSubVerifier(bytes32,address)":"07915439","verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":"578bd921"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_guardian\",\"type\":\"address\"},{\"internalType\":\"contract IRootRegistry\",\"name\":\"_rootRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oldValue\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"}],\"name\":\"ConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"GuardianUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"helper\",\"type\":\"address\"}],\"name\":\"HelperAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"helper\",\"type\":\"address\"}],\"name\":\"HelperRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldHelper\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"HelperUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"PausedStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldRootRegistry\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRootRegistry\",\"type\":\"address\"}],\"name\":\"RootRegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rootRegistry\",\"type\":\"address\"}],\"name\":\"RootVerifierDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldSubVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSubVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"addHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"contract ZKPassportSubVerifier\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"addSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"config\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getHelper\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getSubVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"helperCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"helpers\",\"outputs\":[{\"internalType\":\"contract ZKPassportHelper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"removeHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"removeSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootRegistry\",\"outputs\":[{\"internalType\":\"contract IRootRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"setGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subverifierCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"subverifiers\",\"outputs\":[{\"internalType\":\"contract ZKPassportSubVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"updateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"updateHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newSubVerifier\",\"type\":\"address\"}],\"name\":\"updateSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"publicInputs\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ProofVerificationData\",\"name\":\"proofVerificationData\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"committedInputs\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"validityPeriodInSeconds\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"scope\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"devMode\",\"type\":\"bool\"}],\"internalType\":\"struct ServiceConfig\",\"name\":\"serviceConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct ProofVerificationParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"uniqueIdentifier\",\"type\":\"bytes32\"},{\"internalType\":\"contract ZKPassportHelper\",\"name\":\"helper\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addHelper(bytes32,address)\":{\"params\":{\"newHelper\":\"The address of the helper\",\"version\":\"The version identifier\"}},\"addSubVerifier(bytes32,address)\":{\"params\":{\"subVerifier\":\"The address of the subverifier\",\"version\":\"The version identifier\"}},\"constructor\":{\"params\":{\"_admin\":\"The admin address\",\"_guardian\":\"The guardian address\",\"_rootRegistry\":\"The root registry address\"}},\"getHelper(bytes32)\":{\"details\":\"Returns zero address if no helper exists for the given version\",\"params\":{\"version\":\"The version identifier\"},\"returns\":{\"_0\":\"The address of the helper contract, or zero address if not found\"}},\"getSubVerifier(bytes32)\":{\"details\":\"Returns zero address if no subverifier exists for the given version\",\"params\":{\"version\":\"The version identifier\"},\"returns\":{\"_0\":\"The address of the subverifier contract, or zero address if not found\"}},\"pause()\":{\"details\":\"Only admin or guardian can pause the root verifierThis is a security measure to pause all proof verification operations in the event of an emergency\"},\"removeHelper(bytes32)\":{\"params\":{\"version\":\"The version identifier\"}},\"removeSubVerifier(bytes32)\":{\"params\":{\"version\":\"The version identifier\"}},\"setGuardian(address)\":{\"params\":{\"newGuardian\":\"The new guardian address\"}},\"transferAdmin(address)\":{\"params\":{\"newAdmin\":\"The new admin address\"}},\"unpause()\":{\"details\":\"Only admin can unpause the root verifier\"},\"updateConfig(bytes32,bytes32)\":{\"params\":{\"key\":\"The config key\",\"value\":\"The config value\"}},\"updateHelper(bytes32,address)\":{\"params\":{\"newHelper\":\"The address of the new helper\",\"version\":\"The version identifier\"}},\"updateSubVerifier(bytes32,address)\":{\"params\":{\"newSubVerifier\":\"The address of the new subverifier\",\"version\":\"The version identifier\"}},\"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"details\":\"This function is called by the root verifier to verify a proof for a specific version\",\"params\":{\"params\":\"The proof verification parameters\"},\"returns\":{\"helper\":\"The helper for the calling contract to use to verify the committed inputs\",\"uniqueIdentifier\":\"The unique identifier associated with the ID used to generate the proof\",\"valid\":\"True if the proof is valid or false otherwise\"}}},\"title\":\"ZKPassport Root Verifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addHelper(bytes32,address)\":{\"notice\":\"Adds a helper for a specific version\"},\"addSubVerifier(bytes32,address)\":{\"notice\":\"Adds a subverifier for a specific version\"},\"constructor\":{\"notice\":\"Constructor\"},\"getHelper(bytes32)\":{\"notice\":\"Gets the helper address for a specific version\"},\"getSubVerifier(bytes32)\":{\"notice\":\"Gets the subverifier address for a specific version\"},\"pause()\":{\"notice\":\"Pause the root verifier\"},\"removeHelper(bytes32)\":{\"notice\":\"Removes a helper for a specific version\"},\"removeSubVerifier(bytes32)\":{\"notice\":\"Removes a subverifier for a specific version\"},\"setGuardian(address)\":{\"notice\":\"Sets the guardian role to a new address\"},\"transferAdmin(address)\":{\"notice\":\"Transfers the admin role to a new address\"},\"unpause()\":{\"notice\":\"Unpause the root verifier\"},\"updateConfig(bytes32,bytes32)\":{\"notice\":\"Update a config value\"},\"updateHelper(bytes32,address)\":{\"notice\":\"Updates a helper for a specific version\"},\"updateSubVerifier(bytes32,address)\":{\"notice\":\"Updates a subverifier for a specific version\"},\"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"notice\":\"Verifies a ZKPassport zero-knowledge proof\"}},\"notice\":\"Main entry point for verifying ZKPassport identity proofs\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":\"ZKPassportRootVerifier\"},\"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/circuits/src/solidity/src/Constants.sol\":{\"keccak256\":\"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702\",\"dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp\"]},\"lib/circuits/src/solidity/src/DateUtils.sol\":{\"keccak256\":\"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab\",\"dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4\"]},\"lib/circuits/src/solidity/src/IProofVerifier.sol\":{\"keccak256\":\"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6\",\"dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm\"]},\"lib/circuits/src/solidity/src/IRootRegistry.sol\":{\"keccak256\":\"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72\",\"dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg\"]},\"lib/circuits/src/solidity/src/InputsExtractor.sol\":{\"keccak256\":\"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450\",\"dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH\"]},\"lib/circuits/src/solidity/src/StringUtils.sol\":{\"keccak256\":\"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11\",\"dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe\"]},\"lib/circuits/src/solidity/src/Types.sol\":{\"keccak256\":\"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c\",\"dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR\"]},\"lib/circuits/src/solidity/src/ZKPassportHelper.sol\":{\"keccak256\":\"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34\",\"dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5\"]},\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":{\"keccak256\":\"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355\",\"dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s\"]},\"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol\":{\"keccak256\":\"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1\",\"dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_guardian","type":"address"},{"internalType":"contract IRootRegistry","name":"_rootRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"oldAdmin","type":"address","indexed":true},{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"AdminUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"oldValue","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"newValue","type":"bytes32","indexed":false}],"type":"event","name":"ConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"oldGuardian","type":"address","indexed":true},{"internalType":"address","name":"newGuardian","type":"address","indexed":true}],"type":"event","name":"GuardianUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"helper","type":"address","indexed":true}],"type":"event","name":"HelperAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"helper","type":"address","indexed":true}],"type":"event","name":"HelperRemoved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"oldHelper","type":"address","indexed":true},{"internalType":"address","name":"newHelper","type":"address","indexed":true}],"type":"event","name":"HelperUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"paused","type":"bool","indexed":false}],"type":"event","name":"PausedStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"oldRootRegistry","type":"address","indexed":true},{"internalType":"address","name":"newRootRegistry","type":"address","indexed":true}],"type":"event","name":"RootRegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":false},{"internalType":"address","name":"guardian","type":"address","indexed":false},{"internalType":"address","name":"rootRegistry","type":"address","indexed":false}],"type":"event","name":"RootVerifierDeployed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"subVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"subVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierRemoved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"oldSubVerifier","type":"address","indexed":true},{"internalType":"address","name":"newSubVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newHelper","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"contract ZKPassportSubVerifier","name":"subVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addSubVerifier"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"config","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getHelper","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSubVerifier","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"helperCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"helpers","outputs":[{"internalType":"contract ZKPassportHelper","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeSubVerifier"},{"inputs":[],"stateMutability":"view","type":"function","name":"rootRegistry","outputs":[{"internalType":"contract IRootRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newGuardian","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setGuardian"},{"inputs":[],"stateMutability":"view","type":"function","name":"subverifierCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"subverifiers","outputs":[{"internalType":"contract ZKPassportSubVerifier","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateConfig"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newHelper","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newSubVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateSubVerifier"},{"inputs":[{"internalType":"struct ProofVerificationParams","name":"params","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"struct ProofVerificationData","name":"proofVerificationData","type":"tuple","components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"}]},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple","components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}]}]}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"bytes32","name":"uniqueIdentifier","type":"bytes32"},{"internalType":"contract ZKPassportHelper","name":"helper","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"addHelper(bytes32,address)":{"params":{"newHelper":"The address of the helper","version":"The version identifier"}},"addSubVerifier(bytes32,address)":{"params":{"subVerifier":"The address of the subverifier","version":"The version identifier"}},"constructor":{"params":{"_admin":"The admin address","_guardian":"The guardian address","_rootRegistry":"The root registry address"}},"getHelper(bytes32)":{"details":"Returns zero address if no helper exists for the given version","params":{"version":"The version identifier"},"returns":{"_0":"The address of the helper contract, or zero address if not found"}},"getSubVerifier(bytes32)":{"details":"Returns zero address if no subverifier exists for the given version","params":{"version":"The version identifier"},"returns":{"_0":"The address of the subverifier contract, or zero address if not found"}},"pause()":{"details":"Only admin or guardian can pause the root verifierThis is a security measure to pause all proof verification operations in the event of an emergency"},"removeHelper(bytes32)":{"params":{"version":"The version identifier"}},"removeSubVerifier(bytes32)":{"params":{"version":"The version identifier"}},"setGuardian(address)":{"params":{"newGuardian":"The new guardian address"}},"transferAdmin(address)":{"params":{"newAdmin":"The new admin address"}},"unpause()":{"details":"Only admin can unpause the root verifier"},"updateConfig(bytes32,bytes32)":{"params":{"key":"The config key","value":"The config value"}},"updateHelper(bytes32,address)":{"params":{"newHelper":"The address of the new helper","version":"The version identifier"}},"updateSubVerifier(bytes32,address)":{"params":{"newSubVerifier":"The address of the new subverifier","version":"The version identifier"}},"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"details":"This function is called by the root verifier to verify a proof for a specific version","params":{"params":"The proof verification parameters"},"returns":{"helper":"The helper for the calling contract to use to verify the committed inputs","uniqueIdentifier":"The unique identifier associated with the ID used to generate the proof","valid":"True if the proof is valid or false otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"addHelper(bytes32,address)":{"notice":"Adds a helper for a specific version"},"addSubVerifier(bytes32,address)":{"notice":"Adds a subverifier for a specific version"},"constructor":{"notice":"Constructor"},"getHelper(bytes32)":{"notice":"Gets the helper address for a specific version"},"getSubVerifier(bytes32)":{"notice":"Gets the subverifier address for a specific version"},"pause()":{"notice":"Pause the root verifier"},"removeHelper(bytes32)":{"notice":"Removes a helper for a specific version"},"removeSubVerifier(bytes32)":{"notice":"Removes a subverifier for a specific version"},"setGuardian(address)":{"notice":"Sets the guardian role to a new address"},"transferAdmin(address)":{"notice":"Transfers the admin role to a new address"},"unpause()":{"notice":"Unpause the root verifier"},"updateConfig(bytes32,bytes32)":{"notice":"Update a config value"},"updateHelper(bytes32,address)":{"notice":"Updates a helper for a specific version"},"updateSubVerifier(bytes32,address)":{"notice":"Updates a subverifier for a specific version"},"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"notice":"Verifies a ZKPassport zero-knowledge proof"}},"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/circuits/src/solidity/src/ZKPassportRootVerifier.sol":"ZKPassportRootVerifier"},"evmVersion":"prague","libraries":{}},"sources":{"lib/circuits/src/solidity/src/Constants.sol":{"keccak256":"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7","urls":["bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702","dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/DateUtils.sol":{"keccak256":"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6","urls":["bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab","dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IProofVerifier.sol":{"keccak256":"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14","urls":["bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6","dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IRootRegistry.sol":{"keccak256":"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a","urls":["bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72","dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/InputsExtractor.sol":{"keccak256":"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da","urls":["bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450","dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/StringUtils.sol":{"keccak256":"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306","urls":["bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11","dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/Types.sol":{"keccak256":"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668","urls":["bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c","dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportHelper.sol":{"keccak256":"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16","urls":["bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34","dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol":{"keccak256":"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009","urls":["bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355","dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol":{"keccak256":"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd","urls":["bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1","dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw"],"license":"Apache-2.0"}},"version":1},"id":9}