@pimlico/alto 0.0.0-main.20251204T111226 → 0.0.0-main.20260101T133101

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 (156) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -1
  2. package/contracts/ERC165.sol/ERC165.json +1 -1
  3. package/contracts/ERC20.sol/ERC20.json +1 -1
  4. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
  5. package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  8. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  9. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  10. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  11. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  12. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  13. package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  14. package/contracts/Exec.sol/Exec.json +1 -1
  15. package/contracts/IAccount.sol/IAccount.json +1 -1
  16. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  17. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  18. package/contracts/IERC165.sol/IERC165.json +1 -1
  19. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  20. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  21. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -1
  22. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
  23. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
  24. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  25. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  26. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  27. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  28. package/contracts/LibBytes.sol/LibBytes.json +1 -1
  29. package/contracts/Math.sol/Math.json +1 -1
  30. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  31. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  32. package/contracts/Panic.sol/Panic.json +1 -1
  33. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  34. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  35. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  36. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  37. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  38. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  39. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  40. package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -1
  41. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  42. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  43. package/contracts/Strings.sol/Strings.json +1 -1
  44. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  45. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  46. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  47. package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  48. package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  49. package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  50. package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  51. package/contracts/build-info/{006aa55b425148d5.json → 338795fc743ca612.json} +1 -1
  52. package/contracts/build-info/44a9648cfe32a468.json +1 -0
  53. package/contracts/build-info/{416ffb069999d6eb.json → 8dbf8a4ad39019b5.json} +1 -1
  54. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  55. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  56. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  57. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  58. package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
  59. package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
  60. package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
  61. package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
  62. package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
  63. package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
  64. package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
  65. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  66. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  67. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  68. package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
  69. package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
  70. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  71. package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
  72. package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
  73. package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
  74. package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
  75. package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
  76. package/contracts/utils/Exec.sol/Exec.json +1 -1
  77. package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -1
  78. package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
  79. package/esm/cli/config/bundler.d.ts +68 -50
  80. package/esm/cli/config/bundler.js +5 -2
  81. package/esm/cli/config/bundler.js.map +1 -1
  82. package/esm/cli/config/options.js +17 -1
  83. package/esm/cli/config/options.js.map +1 -1
  84. package/esm/cli/deploySimulationsContract.d.ts +1 -0
  85. package/esm/cli/deploySimulationsContract.js +41 -5
  86. package/esm/cli/deploySimulationsContract.js.map +1 -1
  87. package/esm/cli/handler.js +14 -0
  88. package/esm/cli/handler.js.map +1 -1
  89. package/esm/cli/setupServer.js +3 -4
  90. package/esm/cli/setupServer.js.map +1 -1
  91. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  92. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  93. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  94. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  95. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  96. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  97. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  98. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  99. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  100. package/esm/executor/bundleManager.js +1 -2
  101. package/esm/executor/bundleManager.js.map +1 -1
  102. package/esm/executor/filterOpsAndEstimateGas.js +12 -0
  103. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
  104. package/esm/executor/utils.js +2 -2
  105. package/esm/executor/utils.js.map +1 -1
  106. package/esm/handlers/eventManager.d.ts +6 -6
  107. package/esm/handlers/eventManager.js +47 -57
  108. package/esm/handlers/eventManager.js.map +1 -1
  109. package/esm/mempool/mempool.d.ts +34 -0
  110. package/esm/mempool/mempool.js +14 -4
  111. package/esm/mempool/mempool.js.map +1 -1
  112. package/esm/rpc/estimation/gasEstimations07.js +7 -6
  113. package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
  114. package/esm/rpc/estimation/preVerificationGasCalculator.js +1 -1
  115. package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -1
  116. package/esm/rpc/methods/boost_sendUserOperation.d.ts +304 -0
  117. package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
  118. package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +622 -14
  119. package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
  120. package/esm/rpc/methods/eth_sendUserOperation.d.ts +304 -0
  121. package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +304 -0
  122. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +3 -12
  123. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  124. package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +620 -12
  125. package/esm/rpc/validation/SafeValidator.js +5 -5
  126. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  127. package/esm/store/createMempoolStore.js +8 -2
  128. package/esm/store/createMempoolStore.js.map +1 -1
  129. package/esm/store/outstanding/memory.js +26 -17
  130. package/esm/store/outstanding/memory.js.map +1 -1
  131. package/esm/store/outstanding/redis.js +46 -18
  132. package/esm/store/outstanding/redis.js.map +1 -1
  133. package/esm/store/outstanding/types.d.ts +2 -1
  134. package/esm/store/processing/memory.d.ts +3 -1
  135. package/esm/store/processing/memory.js +14 -2
  136. package/esm/store/processing/memory.js.map +1 -1
  137. package/esm/store/processing/redis.d.ts +4 -2
  138. package/esm/store/processing/redis.js +20 -4
  139. package/esm/store/processing/redis.js.map +1 -1
  140. package/esm/store/processing/types.d.ts +2 -1
  141. package/esm/store/types.d.ts +1 -0
  142. package/esm/types/contracts/PimlicoSimulations.d.ts +81 -0
  143. package/esm/types/contracts/PimlicoSimulations.js +105 -0
  144. package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
  145. package/esm/types/schemas.d.ts +13039 -4597
  146. package/esm/types/schemas.js +92 -2
  147. package/esm/types/schemas.js.map +1 -1
  148. package/esm/utils/entryPointOverrides.js +7 -0
  149. package/esm/utils/entryPointOverrides.js.map +1 -1
  150. package/esm/utils/metrics.d.ts +0 -1
  151. package/esm/utils/metrics.js +0 -7
  152. package/esm/utils/metrics.js.map +1 -1
  153. package/esm/utils/userop.d.ts +76 -2
  154. package/esm/utils/userop.js +71 -79
  155. package/esm/utils/userop.js.map +1 -1
  156. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ { "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "receive", "stateMutability": "payable" }, { "type": "function", "name": "_paymasterValidation", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "_validatePrepayment", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOpInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "validatePaymasterPrepayment", "type": "bool", "internalType": "bool" }], "outputs": [{ "name": "validationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "addStake", "inputs": [{ "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "balanceOf", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "binarySearchCallGas", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchPaymasterVerificationGas", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "binarySearchVerificationGas", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "initialMinGas", "type": "uint256", "internalType": "uint256" }, { "name": "toleranceDelta", "type": "uint256", "internalType": "uint256" }, { "name": "gasAllowance", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchResult", "components": [{ "name": "resultType", "type": "uint8", "internalType": "enum IEntryPointSimulations.BinarySearchResultType" }, { "name": "successData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "success", "type": "bool", "internalType": "bool" }, { "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "name": "outOfGasData", "type": "tuple", "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "components": [{ "name": "optimalGas", "type": "uint256", "internalType": "uint256" }, { "name": "minGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxGas", "type": "uint256", "internalType": "uint256" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegateAndRevert", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "depositTo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "eip712Domain", "inputs": [], "outputs": [{ "name": "fields", "type": "bytes1", "internalType": "bytes1" }, { "name": "name", "type": "string", "internalType": "string" }, { "name": "version", "type": "string", "internalType": "string" }, { "name": "chainId", "type": "uint256", "internalType": "uint256" }, { "name": "verifyingContract", "type": "address", "internalType": "address" }, { "name": "salt", "type": "bytes32", "internalType": "bytes32" }, { "name": "extensions", "type": "uint256[]", "internalType": "uint256[]" }], "stateMutability": "view" }, { "type": "function", "name": "getCurrentUserOpHash", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "getDepositInfo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "info", "type": "tuple", "internalType": "struct IStakeManager.DepositInfo", "components": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }] }], "stateMutability": "view" }, { "type": "function", "name": "getDomainSeparatorV4", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "getNonce", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "nonce", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getPackedUserOpTypeHash", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "pure" }, { "type": "function", "name": "getSenderAddress", "inputs": [{ "name": "initCode", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "getUserOpHash", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "handleAggregatedOps", "inputs": [{ "name": "opsPerAggregator", "type": "tuple[]", "internalType": "struct IEntryPoint.UserOpsPerAggregator[]", "components": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "aggregator", "type": "address", "internalType": "contract IAggregator" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "handleOps", "inputs": [{ "name": "ops", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "incrementNonce", "inputs": [{ "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "innerHandleOp", "inputs": [{ "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "opInfo", "type": "tuple", "internalType": "struct EntryPoint.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPoint.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymaster", "type": "address", "internalType": "address" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "contextOffset", "type": "uint256", "internalType": "uint256" }, { "name": "preOpGas", "type": "uint256", "internalType": "uint256" }] }, { "name": "context", "type": "bytes", "internalType": "bytes" }, { "name": "preGas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "actualGasCost", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "nonceSequenceNumber", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "senderCreator", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract ISenderCreator" }], "stateMutability": "view" }, { "type": "function", "name": "simulateCall", "inputs": [{ "name": "entryPoint", "type": "address", "internalType": "address" }, { "name": "payload", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "result", "type": "bytes", "internalType": "bytes" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateCallAndRevert", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }, { "name": "gas", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOp", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateHandleOpSingle", "inputs": [{ "name": "op", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ExecutionResult", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterVerificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterPostOpGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "queuedUserOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "targetUserOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IEntryPointSimulations.ValidationResult", "components": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "accountValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterValidationData", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "supportsInterface", "inputs": [{ "name": "interfaceId", "type": "bytes4", "internalType": "bytes4" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "unlockStake", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawStake", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawTo", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "AccountDeployed", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "factory", "type": "address", "indexed": false, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "BeforeExecution", "inputs": [], "anonymous": false }, { "type": "event", "name": "Deposited", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalDeposit", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "EIP712DomainChanged", "inputs": [], "anonymous": false }, { "type": "event", "name": "EIP7702AccountInitialized", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "delegate", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "IgnoredInitCode", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "unusedFactory", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "PostOpRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "SignatureAggregatorChanged", "inputs": [{ "name": "aggregator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakeLocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalStaked", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeUnlocked", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawTime", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakeWithdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationEvent", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "success", "type": "bool", "indexed": false, "internalType": "bool" }, { "name": "actualGasCost", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "actualGasUsed", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationPrefundTooLow", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "UserOperationRevertReason", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "nonce", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "indexed": false, "internalType": "bytes" }], "anonymous": false }, { "type": "event", "name": "Withdrawn", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "error", "name": "CallPhaseReverted", "inputs": [{ "name": "reason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "DelegateAndRevert", "inputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "ret", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "DepositWithdrawalFailed", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "Eip7702SenderNotDelegate", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "Eip7702SenderWithoutCode", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "FailedOp", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }] }, { "type": "error", "name": "FailedOpWithRevert", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }, { "name": "inner", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "InsufficientDeposit", "inputs": [{ "name": "currentDeposit", "type": "uint256", "internalType": "uint256" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidPaymaster", "inputs": [{ "name": "paymaster", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "InvalidPaymasterData", "inputs": [{ "name": "paymasterAndDataLength", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidPaymasterSignatureLength", "inputs": [{ "name": "dataLength", "type": "uint256", "internalType": "uint256" }, { "name": "pmSignatureLength", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidShortString", "inputs": [] }, { "type": "error", "name": "InvalidStake", "inputs": [{ "name": "msgValue", "type": "uint256", "internalType": "uint256" }, { "name": "currentStake", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidUnstakeDelay", "inputs": [{ "name": "newUnstakeDelaySec", "type": "uint256", "internalType": "uint256" }, { "name": "currentUnstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "NotStaked", "inputs": [{ "name": "currentStake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }] }, { "type": "error", "name": "PostOpReverted", "inputs": [{ "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "Reentrancy", "inputs": [] }, { "type": "error", "name": "SenderAddressResult", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "SignatureValidationFailed", "inputs": [{ "name": "aggregator", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "StakeNotUnlocked", "inputs": [{ "name": "withdrawTime", "type": "uint256", "internalType": "uint256" }, { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "StakeWithdrawalFailed", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "StringTooLong", "inputs": [{ "name": "str", "type": "string", "internalType": "string" }] }, { "type": "error", "name": "WithdrawalNotDue", "inputs": [{ "name": "withdrawTime", "type": "uint256", "internalType": "uint256" }, { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "innerCallResult", "inputs": [{ "name": "remainingGas", "type": "uint256", "internalType": "uint256" }] }], "bytecode": { "object": "0x6101a06040523461020e5760405161001860408261022d565b600781526020810190664552433433333760c81b82526040519161003d60408461022d565b600183526020830191603160f81b835261005681610250565b61012052610063846103eb565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526100cc60c08261022d565b5190206080523060c0526040516103ee8082016001600160401b038111838210176101fa578291615ab7833903905ff080156101ef5761016052306101805260405161011781610212565b5f815260208101905f825280602060405161013181610212565b5f81520152600480546001600160a01b031916905551600555516006556040516155939081610524823960805181612ee7015260a05181612fa4015260c05181612eb8015260e05181612f3601526101005181612f5c015261012051816111310152610140518161115a01526101605181505061018051818181612cf8015281816131410152818161319b015281816133830152818161343701528181613490015281816135a001528181613654015281816136ad01526137bd0152f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b038211176101fa57604052565b601f909101601f19168101906001600160401b038211908210176101fa57604052565b908151602081105f146102ca575090601f81511161028a57602081519101516020821061027b571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b0381116101fa57600254600181811c911680156103e1575b60208210146103cd57601f811161039a575b50602092601f821160011461033957928192935f9261032e575b50508160011b915f199060031b1c19161760025560ff90565b015190505f80610315565b601f1982169360025f52805f20915f5b868110610382575083600195961061036a575b505050811b0160025560ff90565b01515f1960f88460031b161c191690555f808061035c565b91926020600181928685015181550194019201610349565b60025f52601f60205f20910160051c810190601f830160051c015b8181106103c257506102fb565b5f81556001016103b5565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102e9565b908151602081105f14610416575090601f81511161028a57602081519101516020821061027b571790565b6001600160401b0381116101fa57600354600181811c91168015610519575b60208210146103cd57601f81116104e6575b50602092601f821160011461048557928192935f9261047a575b50508160011b915f199060031b1c19161760035560ff90565b015190505f80610461565b601f1982169360035f52805f20915f5b8681106104ce57508360019596106104b6575b505050811b0160035560ff90565b01515f1960f88460031b161c191690555f80806104a8565b91926020600181928685015181550194019201610495565b60035f52601f60205f20910160051c810190601f830160051c015b81811061050e5750610447565b5f8155600101610501565b90607f169061043556fe60806040526004361015610022575b3615610018575f80fd5b610020612df1565b005b5f3560e01c806301ffc9a71461022c5780630396cb601461022757806309ccb880146102225780630bd28e3b1461021d5780630da826611461021857806313c65a6e14610213578063154e58dc1461020e5780631b2e01b814610209578063205c287814610204578063212eccc6146101ff57806321e60b37146101fa57806322cdde4c146101f557806335567e1a146101f057806344403473146101eb5780635287ce12146101e657806370a08231146101e1578063765e827f146101965780637da0c462146101dc57806384b0196e146101d7578063850aaf62146101d25780639b249f69146101cd578063acbe911e146101c8578063aec321fb146101c3578063af324943146101be578063b0a398d1146101b9578063b760faf9146101b4578063bb9fe6bf146101af578063c23a5cea146101aa578063c3bce009146101a5578063c579f76b146101a0578063d72f25931461019b578063dbed18e0146101965763f7e426e80361000e57611a54565b610f79565b611a34565b6117e6565b6117c8565b61168f565b611592565b611572565b611556565b6114e1565b61148a565b611356565b611275565b611232565b611119565b610fef565b610f05565b610df8565b610db3565b610cd7565b610cbf565b610bbe565b610b77565b610951565b6108f4565b6108ba565b610898565b61076c565b6104d8565b610497565b61029b565b34610297576020366003190112610297576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610297576020907f01ffc9a70000000000000000000000000000000000000000000000000000000060405191148152f35b5f80fd5b60203660031901126102975760043563ffffffff811690818103610297576104887fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c019161046a6103456102fe336001600160a01b03165f525f60205260405f2090565b956103366001880154918561031a8463ffffffff9060781c1690565b916103288383831515611a8d565b63ffffffff83161115611a8d565b60081c6001600160701b031690565b9461037b61035c346001600160701b038916611b04565b9661036a81348a1515611b11565b346001600160701b03891115611b11565b546103846105dc565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f60808201526103c9336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f91031261029757565b34610297575f3660031901126102975760206104b1611b5e565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361029757565b34610297576020366003190112610297576004356001600160c01b03811681036102975761052290335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b61052c8154611bd3565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff82111761056057604052565b610530565b6060810190811067ffffffffffffffff82111761056057604052565b610140810190811067ffffffffffffffff82111761056057604052565b6040810190811067ffffffffffffffff82111761056057604052565b90601f8019910116810190811067ffffffffffffffff82111761056057604052565b604051906105eb60a0836105ba565b565b604051906105eb610140836105ba565b604051906105eb6040836105ba565b604051906105eb6060836105ba565b604051906105eb610120836105ba565b67ffffffffffffffff811161056057601f01601f191660200190565b9291926106538261062b565b9161066160405193846105ba565b829481845281830111610297578281602093845f960137010152565b9080601f830112156102975781602061069893359101610647565b90565b6001600160a01b0381160361029757565b35906105eb8261069b565b60431901906101c08212610297576040516106d181610544565b610140819312610297576106e36105ed565b6106ed60446106ac565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c082015261072b6101246106ac565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b34610297576102203660031901126102975760043567ffffffffffffffff81116102975761079e90369060040161067d565b3660231901906101c0821261029757610140604051926107bd84610544565b12610297576107ca6105ed565b6107d460246106ac565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526108116101046106ac565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359167ffffffffffffffff83116102975761087561088093369060040161067d565b906102043592611be1565b604080519283526020830191909152819081015b0390f35b34610297575f3660031901126102975760206108b2612eae565b604051908152f35b34610297575f3660031901126102975760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b346102975760403660031901126102975760206109486004356109168161069b565b6001600160a01b036109266104c2565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b346102975760403660031901126102975760043561096e8161069b565b60243590335f525f60205260405f20918254928382116109f5576109958261002095611e4b565b9055604080516001600160a01b03841681526020810183905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a25f808080846001600160a01b0387165af1916109ed611e6c565b923390611ec9565b50827f25c3f46e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b9181601f840112156102975782359167ffffffffffffffff8311610297576020808501948460051b01011161029757565b90816101209103126102975790565b60c06003198201126102975760043567ffffffffffffffff81116102975781610a9091600401610a25565b929092916024359067ffffffffffffffff821161029757610ab391600401610a56565b90604435610ac08161069b565b90606435906084359060a43590565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815281516002811015610b7257602082015260a0604080610b568160208701518582880152805160c08801526020810151151560e088015201516060610100870152610120860190610ae3565b9401518051606085015260208101516080850152015191015290565b610acf565b3461029757610894610bb2610ba4610b8e36610a65565b9691949095610b9e949394611f2f565b50612fca565b610bad81613057565b6130e9565b60405191829182610b07565b34610297576102003660031901126102975760243560043567ffffffffffffffff821161029757610bf6610894923690600401610a56565b610bff366106b7565b905f926001600160a01b0360e08451610c1881866138a7565b610c2185611f70565b6020870152610c5181610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6040870152015116610c80575b5050506040519182918260405f91939293606081019483825260208201520152565b610c8a9350613997565b90505f8080610c5e565b6020600319820112610297576004359067ffffffffffffffff82116102975761069891600401610a56565b346102975760206108b2610cd236610c94565b611f70565b34610297576040366003190112610297576020600435610cf68161069b565b6001600160a01b03610d066104c2565b91165f5260018252610d2c8160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156102975782359167ffffffffffffffff8311610297576020838186019501011161029757565b90606060031983011261029757600435610d8b8161069b565b916024359067ffffffffffffffff821161029757610dab91600401610d44565b909160443590565b34610297575f8080610dc436610d72565b939181604094929451948592833781018381520393f1610de2611e6c565b9015610dea57005b805190811561029757602001fd5b34610297576020366003190112610297576001600160a01b03600435610e1d8161069b565b5f6080604051610e2c81610544565b8281528260208201528260408201528260608201520152165f525f60205261089460405f20610eb165ffffffffffff600160405193610e6a85610544565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b34610297576020366003190112610297576001600160a01b03600435610f2a8161069b565b165f525f602052602060405f2054604051908152f35b6040600319820112610297576004359067ffffffffffffffff821161029757610f6b91600401610a25565b90916024356106988161069b565b3461029757610f8736610f40565b916120c3565b61012060e0610698936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c0810151151582850152015191610100808201520190610ae3565b346102975760603660031901126102975760043567ffffffffffffffff811161029757611020903690600401610a56565b60243561102c8161069b565b6044359167ffffffffffffffff83116102975761105061089493369060040161067d565b9161105961216f565b506110626121bd565b928261106e8594613057565b61108561107b858361297e565b9291969093613c42565b9290965f946060966001600160a01b0381166110ee575b50509560806110dd9697015197604051986110b96101008b6105ba565b8952602089015260408801526060870152608086015260a0850152151560c0840152565b60e082015260405191829182610f8d565b6110dd97505f92965090829182602083519301915af195608061110f611e6c565b979591979661109c565b34610297575f366003190112610297576111d96111557f0000000000000000000000000000000000000000000000000000000000000000614b7b565b61117e7f0000000000000000000000000000000000000000000000000000000000000000614c61565b602060405161118d82826105ba565b5f8152816111e781830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e0890190610ae3565b908782036040890152610ae3565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061121b57505050500390f35b83518552869550938101939281019260010161120c565b346102975760403660031901126102975761124e60043561069b565b60243567ffffffffffffffff81116102975761126e903690600401610d44565b5050612104565b346102975760203660031901126102975760043567ffffffffffffffff81116102975760206112ab6112db923690600401610d44565b906001600160a01b036112bc611b5e565b16905f604051809681958294632b870d1b60e11b8452600484016122d9565b03925af18015611351576001600160a01b03915f91611322575b507f6ca7b806000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b611344915060203d60201161134a575b61133c81836105ba565b8101906122a4565b5f6112f5565b503d611332565b611b53565b3461029757610894610bb261136a36610a65565b9594909493919361236a565b60406003198201126102975760043567ffffffffffffffff811161029757816113a191600401610a25565b929092916024359067ffffffffffffffff82116102975761069891600401610a56565b6106989060208152610100608061141d81865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e0860152610200850190610ae3565b60208087015180516040870152015160608501529461144d60408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346102975761149836611376565b91906114a2612437565b505f5b8181106114c4576108946114b88561275c565b604051918291826113c4565b806114da6114d560019385876124cd565b61275c565b50016114a5565b34610297576114ef36611376565b91906114f961216f565b506020905f5b81811061153057610894611524866040519061151c6020836105ba565b5f825261222c565b60405191829182610f8d565b8061154f61154160019385886124cd565b6040519061151c87836105ba565b50016114ff565b34610297575f3660031901126102975760205f5c604051908152f35b60203660031901126102975761002060043561158d8161069b565b6124f5565b34610297575f36600319011261029757335f525f602052600160405f200161165261161861160a6115fb61160163ffffffff86546001600160701b038160081c166115e48263ffffffff9060781c1690565b948592838360ff831696879360781c16151561254e565b8261254e565b63ffffffff1690565b65ffffffffffff421661259c565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a908060208101610488565b34610297576020366003190112610297576100206004356116af8161069b565b60016116cb336001600160a01b03165f525f60205260405f2090565b0161176a8154916117426117216116ec856001600160701b039060081c1690565b946117136001600160701b03871696607883901c63ffffffff1660ff84169189151561254e565b60981c65ffffffffffff1690565b65ffffffffffff81169061173842828415156125ba565b42914210156125fa565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03841681526020810183905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a25f808080846001600160a01b0387165af1916117c0611e6c565b92339061263a565b34610297576108946114b86114d536610c94565b8015150361029757565b34610297576102203660031901126102975760043560243567ffffffffffffffff81116102975761181b903690600401610a56565b90611825366106b7565b9061020435611833816117dc565b5f925a815161184281886138a7565b61185b60405161185189611f70565b6020860152604052565b6040810151946118a3816effffffffffffffffffffffffffffff8860c08601511760608601511760808601511760a086015117610100860151176101208601511711156128c0565b6118ee6118d183610100604082015160608301510160808301510160a08301510160c0830151019101510290565b8060408701526118e560808b013560801c90565b90868b85614063565b956119178261191261190786516001600160a01b031690565b602087015190614146565b612914565b5a8403116119e2576060946001600160a01b0361193f60e05a9501516001600160a01b031690565b16151590816119da575b506119a5575b509560a060809261197861197161196c610894999a9b5a90611e4b565b612968565b6064900490565b9560608601525a900391013501910152604051938493846040919493926060820195825260208201520152565b610894959650879194506080926119786119716119c88761196c9c60a096613997565b9b9098959b9a9950505050925061194f565b90505f611949565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b3461029757610894610bb2611a4836610a65565b95949094939193612b4a565b3461029757611a6e611a6536610d72565b92919091612ca3565b9061089460405192839215158352604060208401526040830190610ae3565b15611a96575050565b9063ffffffff80927fe1823bce000000000000000000000000000000000000000000000000000000005f52166004521660245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211611af157565b611ace565b9060018201809211611af157565b91908201809211611af157565b15611b1a575050565b6001600160701b0392507f0e10009c000000000000000000000000000000000000000000000000000000005f526004521660245260445ffd5b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa908115611351575f91611b9e575090565b90506020813d602011611bcb575b81611bb9602093836105ba565b8101031261029757516106988161069b565b3d9150611bac565b5f198114611af15760010190565b9392909193825190606082015181519081611dc5575b505050505a9003608082015101925f935a91835191611c1583614194565b92611c2a60e08201516001600160a01b031690565b91611c40608088015182036060840151906141b4565b01925f926001600160a01b0381169081611cdc5750505090611c6d6040949392516001600160a01b031690565b945b5a9003010102920151908282105f14611cb357611c8b5f612e27565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b82611cd79203906001600160a01b03165f525f60205260405f209081540180915590565b509190565b96928251611cf3575b505050906040939291611c6f565b919950949392505a98611d055f612e27565b60a05a920195865191813b15610297578692835f809489611d58604051988997889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601612e31565b0393f19081611dab575b50611d8b57611a30611d72612dfa565b6040519182916365c8fd4d60e01b835260048301612e63565b604094611da1915a9003995a90039051906141b4565b9192935f80611ce5565b80611db95f611dbf936105ba565b8061048d565b5f611d62565b5f80949360206001600160a01b0383965116910192f115611de9575f808080611bf7565b611a30611df4612dfa565b6040519182917f462c71b2000000000000000000000000000000000000000000000000000000008352602060048401526024830190610ae3565b600319810191908211611af157565b5f19810191908211611af157565b91908203918211611af157565b60405190611e676020836105ba565b5f8252565b3d15611e96573d90611e7d8261062b565b91611e8b60405193846105ba565b82523d5f602084013e565b606090565b90926001600160a01b0360809381610698979616845216602083015260408201528160608201520190610ae3565b93919392909215611eda5750505050565b90611a30916040519485947f9f3d693300000000000000000000000000000000000000000000000000000000865260048601611e9b565b60405190611f1e82610565565b5f6040838281528260208201520152565b60405190611f3c82610565565b815f8152604051611f4c81610565565b5f81525f60208201526060604082015260208201526040611f6b611f11565b910152565b61069890611f7d81613a9f565b611f85612eae565b91612067813592611f958461069b565b60208301359080156120a35761205990935b611fbd611fb760608301836122ea565b90615319565b90608081013560a082013590611fe5611fdf60c08501359460e08101906122ea565b90615324565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b03601f1981018352826105ba565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506120596120b460408501856122ea565b90816040519182372093611fa7565b505050333214806120fb575b612104577fab143c06000000000000000000000000000000000000000000000000000000005f5260045ffd5b50333b156120cf565b60405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d5560448201527f4c4154494f4e53000000000000000000000000000000000000000000000000006064820152608490fd5b60405190610100820182811067ffffffffffffffff82111761056057604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b604051906121ca82610544565b5f6080836040516121da81610581565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b905061223661216f565b5060806122636122446121bd565b9261224e81613057565b83612259818361297e565b9491929093613c42565b94909501519460405195612279610100886105ba565b8652602086015260408501526060840152608083015260a08201525f60c0820152606060e082015290565b9081602091031261029757516106988161069b565b908060209392818452848401375f828201840152601f01601f1916010190565b9160206106989381815201916122b9565b903590601e1981360301821215610297570180359067ffffffffffffffff82116102975760200191813603831361029757565b6040519061232c6020836105ba565b5f808352366020840137565b906123428261062b565b61234f60405191826105ba565b8281528092612360601f199161062b565b0190602036910137565b95949392919095612379611f2f565b5061238760608301836122ea565b9050156123bd576106989661239b91612fca565b6123b56123a66121bd565b6123af83613057565b8261297e565b5050506133fd565b505050505050506123cc61231d565b604051906123d982610565565b5f82525f602083015260408201526040516123f381610565565b5f81525f60208201525f60408201526040519161240f83610565565b5f83526020830152604082015290565b6040519061242c8261059e565b5f6020838281520152565b6040519061244482610544565b8160405161245181610544565b5f81525f60208201525f60408201525f606082015260606080820152815261247761241f565b602082015261248461241f565b604082015261249161241f565b60608201526080604051916124a58361059e565b5f83526124b061241f565b60208401520152565b634e487b7160e01b5f52603260045260245ffd5b91908110156124f05760051b8101359061011e1981360301821215610297570190565b6124b9565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b0361254234856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561255857505050565b906001600160701b0363ffffffff927f8421e8e5000000000000000000000000000000000000000000000000000000005f521660045216602452151560445260645ffd5b9065ffffffffffff8091169116019065ffffffffffff8211611af157565b156125c3575050565b65ffffffffffff907ffbd021d6000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b15612603575050565b65ffffffffffff907f561d3312000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b9391939290921561264b5750505050565b90611a30916040519485947f0dcf087c00000000000000000000000000000000000000000000000000000000865260048601611e9b565b906014116102975790601490565b909291928360141161029757831161029757601401916013190190565b909291928360341161029757831161029757603401916033190190565b90939293848311610297578411610297578101920390565b356bffffffffffffffffffffffff19811692919060148210612702575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b6040519061272f8261059e565b6004546001600160a01b0316825260405160208361274c8361059e565b6005548352600654828401520152565b612764612437565b5061276d6121bd565b9061277781613057565b612781828261297e565b5091909261278f8385613ce2565b6127ac6127a760e0835101516001600160a01b031690565b613f40565b916127da6127c66127a784516001600160a01b0390511690565b916127cf61241f565b5060408101906122ea565b90601482106128b5576127fc6127f6612802936127a793612682565b906126e2565b60601c90565b916001600160a01b0386169460808201519660606040840151930151926128276105dc565b9889526020890152604088015260608701526080860152612846612722565b93801515806128aa575b612878575b5061285e6105dc565b948552602085015260408401526060830152608082015290565b90935061288481613f40565b61289e61288f6105fd565b6001600160a01b039093168352565b6020820152925f612855565b506001811415612850565b50506128025f613f40565b156128c85750565b60849060405190631101335b60e11b8252600482015260406024820152601860448201527f41413934206761732076616c756573206f766572666c6f7700000000000000006064820152fd5b1561291c5750565b60849060405190631101335b60e11b8252600482015260406024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152fd5b90607382029180830460731490151715611af157565b9190915f915a9380519261299284826138a7565b6129ab6040516129a183611f70565b6020850152604052565b6040840151956129f35f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a089015117610100890151176101208901511711156128c0565b612a3e612a2186610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612a35608085013560801c90565b9085855f614063565b96612a625f611912612a5789516001600160a01b031690565b60208a015190614146565b5a820311612af7576060946001600160a01b03612a8a60e05a9301516001600160a01b031690565b16151580612aef575b612ac1575b60809291612aaf61197161196c60a0945a90611e4b565b9660608601525a900391013501910152565b945061196c95509060a0608092612aaf611971612adf87865f613997565b9a90999450505050919250612a98565b506001612a93565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b95949392919095612b59611f2f565b506014612b6960e08401846122ea565b905010612ba45761069896612b9691610b9e612b836121bd565b612b8e8151876138a7565b5a9086613f80565b612b9f81613057565b61361a565b50505050505050612bb361231d565b60405190612bc082610565565b5f82525f60208301526040820152612bd661060c565b5f81525f60208201525f6040820152612bed61060c565b915f83526020830152604082015290565b6040906001600160a01b03610698959316815281602082015201916122b9565b9081518110156124f0570160200190565b9190604083820312610297578251612c46816117dc565b9260208101519067ffffffffffffffff8211610297570181601f8201121561029757805190612c748261062b565b92612c8260405194856105ba565b8284526020838301011161029757815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561029757612d21935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612bfe565b0393f19081612ddd575b50612dcb575050612d3a611e6c565b906004825110612dcf57612d56612d518351611e2e565b612338565b60045b8351811015612db55780612d98612d7260019387612c1e565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612dae612da483611e2e565b915f1a9185612c1e565b5301612d59565b50612dcb91925060208082518301019101612c2f565b9091565b9050612dd961231d565b5f91565b80611db95f612deb936105ba565b5f612d2b565b6105eb336124f5565b3d6108008111612e1e575b604051906020818301016040528082525f602083013e90565b50610800612e05565b60031115610b7257565b90949392946003811015610b7257606092612e59918352608060208401526080830190610ae3565b9460408201520152565b9060a0610698925f815260606020820152601460608201527f4141353020706f73744f7020726576657274656400000000000000000000000060808201528160408201520190610ae3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480612fa1575b15612f09577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152612f9b60c0826105ba565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612ee0565b5f5b828110612fd857505050565b600190612fe36121bd565b612fee8286866124cd565b612ff781613057565b613001828261297e565b50505061301160608201826122ea565b9050156130465761302a5f9291602084930151906141d3565b9082602083519301915af15061303e611e6c565b505b01612fcc565b5050613040565b356106988161069b565b61308a9061306860408201826122ea565b916130828135916130788361069b565b60e08101906122ea565b93909261426c565b80516130935750565b611a3090604051918291631101335b60e11b83525f6004840152604060248401526044830190610ae3565b9392916130e4906001600160a01b03604093168652606060208701526060860190610ae3565b930152565b9390946130f4611f2f565b5082156133635761313492613107611e58565b50915f6131165a8860036145fd565b5a906040519687928392631efc84dd60e31b84528c600485016130be565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1908115611351575f945f92613344575b508194809281156133225750506131909095929394955b85611b04565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846131c88885611e4b565b106132f3575a6131d788611ae2565b1161329a5791889391879695935f8c8b6132096132006131fa886132299f611b04565b60011c90565b809a60036145fd565b835a936040519e8f9586948593631efc84dd60e31b8552600485016130be565b03925af1988915611351575f905f9a613273575b501561325e5750505061324f83611e3d565b95915b939495919290926131bd565b9396509361326d919750611af6565b94613252565b90506132929199503d805f833e61328a81836105ba565b810190612c2f565b98905f61323d565b509550939550505093506132ac61231d565b926132b561060c565b935f85525f602086015260408501526132cc61060c565b928352602083015260408201526132e161060c565b60018152916020830152604082015290565b965096505091955050613315915061330961060c565b93845215156020840152565b6040820152612bd661060c565b9650965050509450505061331561333761060c565b5f81529215156020840152565b90945061335b91503d805f833e61328a81836105ba565b90935f613173565b61337692505a5f6131165a8860036145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611351575f945f946133db575b5083946133c481935a90611e4b565b94811561332257505061319090959293949561318a565b9093506133f39194503d805f833e61328a81836105ba565b939093925f6133b5565b939094613408611f2f565b5082156135805761342a9261341b611e58565b50915f6131165a8860016145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1908115611351575f945f92613561575b5081948092811561332257505061348590959293949585611b04565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134bd8885611e4b565b106132f3575a6134cc88611ae2565b1161329a5791889391879695935f8c8b6132096134ef6131fa886134f89f611b04565b809a60016145fd565b03925af1988915611351575f905f9a613542575b501561352d5750505061351e83611e3d565b95915b939495919290926134b2565b9396509361353c919750611af6565b94613521565b90506135599199503d805f833e61328a81836105ba565b98905f61350c565b90945061357891503d805f833e61328a81836105ba565b90935f613469565b61359392505a5f6131165a8860016145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611351575f945f946135f8575b5083946135e181935a90611e4b565b94811561332257505061348590959293949561318a565b9093506136109194503d805f833e61328a81836105ba565b939093925f6135d2565b939094613625611f2f565b50821561379d5761364792613638611e58565b50915f6131165a8860026145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1908115611351575f945f9261377e575b508194809281156133225750506136a290959293949585611b04565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846136da8885611e4b565b106132f3575a6136e988611ae2565b1161329a5791889391879695935f8c8b61320961370c6131fa886137159f611b04565b809a60026145fd565b03925af1988915611351575f905f9a61375f575b501561374a5750505061373b83611e3d565b95915b939495919290926136cf565b93965093613759919750611af6565b9461373e565b90506137769199503d805f833e61328a81836105ba565b98905f613729565b90945061379591503d805f833e61328a81836105ba565b90935f613686565b6137b092505a5f6131165a8860026145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611351575f945f94613815575b5083946137fe81935a90611e4b565b9481156133225750506136a290959293949561318a565b90935061382d9194503d805f833e61328a81836105ba565b939093925f6137ef565b1561383f5750565b7f120aaab5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b156138725750565b6001600160a01b03907fd8ccb292000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b61393e906138c46138b78261304d565b6001600160a01b03168452565b602081013560208401526138f16080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261392860c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e08101906122ea565b8092919261394b57505050565b613968816105eb9461396382603460e0961015613837565b614839565b60a0850152608084015291613988836001600160a01b038116151561386a565b01906001600160a01b03169052565b929091925a9380516139bb6001600160a01b0360e083015116604084015190614871565b15613a2b579060806139d0920151948361494e565b9390945a9003116139de5750565b60408051631101335b60e11b815260048101929092526024820152602060448201527f41413336206f76657220706d566572696669636174696f6e4761734c696d69746064820152608490fd5b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b613aac60408201826122ea565b9091613abf613abb8385614a66565b1590565b613b2f57613acf613ad49161304d565b614aa8565b9160148211613b0b575050604051612f9b816120596020820194856014916bffffffffffffffffffffffff199060601b1681520190565b81612f9b92613b1992612690565b9190612059604051938492602084019687613a77565b5050505f90565b9035601e198236030181121561029757016020813591019167ffffffffffffffff821161029757813603831361029757565b61069891613b8681613b79846106ac565b6001600160a01b03169052565b60208201356020820152613c1c613c10613bd7613bbc613ba96040870187613b36565b61012060408801526101208701916122b9565b613bc96060870187613b36565b9086830360608801526122b9565b6080850135608085015260a085013560a085015260c085013560c0850152613c0260e0860186613b36565b9085830360e08701526122b9565b92610100810190613b36565b916101008185039101526122b9565b9291906130e4602091604086526040860190613b68565b90602081019182515f5d5a91606081015191613c6160608201826122ea565b5f60038211613cda575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b03613cc9575050613cc4612dcb955191612059604051938492638dd7712f60e01b602085015260248401613c2b565b611be1565b612dcb9650613cc492503691610647565b508135613c6b565b613cf36001600160a01b0391614d19565b92909116613eed57613e435750613d116001600160a01b0391614d19565b92909116613df057613d205750565b613d9d57604051631101335b60e11b815280611a305f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b815280611a305f60048301608091815260406020820152602060408201527f41413337207061796d617374657220696e76616c20626c6f636b2072616e676560608201520190565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b613e9a57604051631101335b60e11b815280611a305f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601e60408201527f41413237206f7574736964652076616c696420626c6f636b2072616e6765000060608201520190565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b03613f5161241f565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b9291613fc4908251926001600160a01b0360e08186511695613fb0613fa860408b018b6122ea565b90865f614e13565b015116905f91159687614030575b5f615212565b92613fcc5750565b5f613fd691614871565b15613fdd57565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061404c856001600160a01b03165f525f60205260405f2090565b54801561405c57505f5b91613fbe565b5f03614056565b929094936140a9908351936001600160a01b0360e0818751169661409561408d60408d018d6122ea565b90868c614e13565b015116905f91159889614111575b87615212565b946140b357505050565b6140bc91614871565b156140c45750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b915061412d866001600160a01b03165f525f60205260405f2090565b548581111561413f57505f5b916140a3565b8503614139565b6001600160a01b03165f52600160205267ffffffffffffffff6141808260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261418d84611bd3565b9055161490565b61012061010082015191015148018082105f146141af575090565b905090565b90619c4082018111156141cd57606491600a9103020490565b50505f90565b919082356141e08161069b565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061421883856122ea565b9060035f9211614263575b50160361424e575061069890612059604051938492638dd7712f60e01b602085015260248401613c2b565b610698925061425c916122ea565b3691610647565b9050355f614223565b50929192159081614321575b506142e4576014811015614291575b5050610698611e58565b601411610297573560601c3b156142a9575f80614287565b6040516142b76040826105ba565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516142f46040826105ba565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f614278565b919091610120818403126102975761434161061b565b9261434b826106ac565b845260208201356020850152604082013567ffffffffffffffff8111610297578161437791840161067d565b6040850152606082013567ffffffffffffffff8111610297578161439c91840161067d565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff811161029757816143df91840161067d565b60e085015261010082013567ffffffffffffffff811161029757614403920161067d565b610100830152565b60041115610b7257565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b0316825261069891602082015160208201526101006144e56144b56144a360408601516101206040870152610120860190610ae3565b60608601518582036060870152610ae3565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152610ae3565b92015190610100818403910152610ae3565b60806101a09161012081516145158682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261456960e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6145d46145c961020093969594965f84526102206020850152610220840190614464565b9560408301906144f7565b0152565b610200906145d46145c95f949695968584526102206020850152610220840190614464565b916146066121bd565b92614611368461432b565b61461a8261440b565b600282146147555761462b8261440b565b600382146146d757508061464060019261440b565b1461468a5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b61469f610698926020612059950151906141d3565b9390916040519485937f44403473000000000000000000000000000000000000000000000000000000006020860152602485016130be565b9190506fffffffffffffffffffffffffffffffff61471561470e60806106989601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526120596040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016145d8565b9161205991506fffffffffffffffffffffffffffffffff19846147e160e061069897016147d361478e61478883866122ea565b90614839565b9391905060609160e08b0196603488515111614817575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614415565b03601f1981018452836105ba565b526040519485937f21e60b37000000000000000000000000000000000000000000000000000000006020860152602485016145a5565b61483192935061425c9161482a916122ea565b80916126ad565b905f806147a5565b9091826014116102975781359183602411610297576014810135936034116102975760609290921c92608090811c9260240135901c90565b6001600160a01b03165f525f60205260405f20908154818110613b2f57039055600190565b6148ae60409295949395606083526060830190613b68565b9460208201520152565b60a0906106989392815260606020820152600d60608201527f414133332072657665727465640000000000000000000000000000000000000060808201528160408201520190610ae3565b60a0906106989392815260606020820152601d60608201527f41413335206d616c666f726d6564207061796d6173746572206461746100000060808201528160408201520190610ae3565b9192905f80604051956149a88761499a602084015160408501519060208401987f52b7512c000000000000000000000000000000000000000000000000000000008a5260248501614896565b03601f1981018952886105ba565b51838260806149c160e08501516001600160a01b031690565b93015192895193f1933d91825f833e51938151604083019687519015614a4057604090601f0160051c60051b606001911490811591614a35575b50614a105750601f909101601f191601604052565b614a18612dfa565b90611a306040519283926365c8fd4d60e01b845260048401614903565b90508314155f6149fb565b82614a49612dfa565b90611a306040519283926365c8fd4d60e01b8452600484016148b8565b90600211614aa357356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000831603614b13575060181b6bffffffffffffffffffffffff191660601c90565b806001600160a01b03913b15614b4f577f9f4e4cc9000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7fe5819b95000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60ff8114614b8c576106989061536a565b506040515f6002548060011c91600182168015614c57575b602084108114614c435783855284926020840191908115614c2a5750600114614bd5575b50610698925003826105ba565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b848310614c1357506106989350015f614bc8565b805482840152859350602090920191600101614bff565b60ff191682525061069893151560051b0190505f614bc8565b634e487b7160e01b5f52602260045260245ffd5b92607f1692614ba4565b60ff8114614c72576106989061536a565b506040515f6003548060011c91600182168015614d0f575b602084108114614c435783855284926020840191908115614c2a5750600114614cba5750610698925003826105ba565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b848310614cf857506106989350015f614bc8565b805482840152859350602090920191600101614ce4565b92607f1692614c8a565b8015614e0a57614d28906153c1565b602081015165ffffffffffff166580000000000081101580614de5575b15614d9b57657fffffffffff614d64604084015165ffffffffffff1690565b164311908115614d88575b5090614d856001915b516001600160a01b031690565b92565b657fffffffffff9150164311155f614d6f565b614dbc614db1604084015165ffffffffffff1690565b65ffffffffffff1690565b4211908115614dd2575b5090614d855f91614d78565b65ffffffffffff1690504211155f614dc6565b5065800000000000614e03614db1604085015165ffffffffffff1690565b1015614d45565b505f905f905f90565b91909183614e22575b50505050565b8251516001600160a01b031693614e398184614a66565b6150e9576014811061509457614e556127fc6127f68386612682565b92853b61504f57614e9f91602091614e7a614e6e611b5e565b6001600160a01b031690565b905f60408951015192604051809781968295632b870d1b60e11b8452600484016122d9565b0393f1908115611351575f91615030575b506001600160a01b038116948515614fdb576001600160a01b0316809503614f86573b15614f3957507fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d90614f1560e06020850151945101516001600160a01b031690565b604080516001600160a01b039384168152919092166020820152a35f808080614e1c565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b611a3082604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b611a3083604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b615049915060203d60201161134a5761133c81836105ba565b5f614eb0565b5050506020918201516040516001600160a01b039283168152939091169290917fa39bcda08ffd11bafb11c4f170ef24fc6dc1a9d1b0394d90dbd19e0b919050e991a3565b611a3082604051918291631101335b60e11b835260048301608091815260406020820152601760408201527f4141393920696e6974436f646520746f6f20736d616c6c00000000000000000060608201520190565b9050601481116150f95750505050565b615115615107614e6e611b5e565b918060408651015194612690565b9092823b156102975761515b935f80946040518097819682957fc09ad0d90000000000000000000000000000000000000000000000000000000084528c60048501612bfe565b0393f18015611351576151b3575b506001600160a01b0380602061517e85614aa8565b93015192169216907f7c9f9ade6a03a0bba484e52df872467a270e798ffc1adab9dfaa8d0e627f05445f80a45f808080614e1c565b80611db95f6151c1936105ba565b5f615169565b60a0906106989392815260606020820152600d60608201527f414132332072657665727465640000000000000000000000000000000000000060808201528160408201520190610ae3565b929160209594869261527c5f9361526e61523582516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614896565b03601f1981018a52896105ba565b8285895193f15f519460203d03615311575b6040521561529a575050565b3b6152ec5760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b6152f4612dfa565b90611a306040519283926365c8fd4d60e01b8452600484016151c7565b5f915061528e565b816040519182372090565b61532e8282615482565b8061533f5750816040519182372090565b604051920390600919820190833767117192d14ba1cb2b60c11b828201600919015260011901902090565b60ff811690601f821161539957604051916153866040846105ba565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b6153c9611f11565b5065ffffffffffff8160a01c16801561540f575b65ffffffffffff90604051926153f284610565565b6001600160a01b038116845260d01c602084015216604082015290565b5065ffffffffffff6153dd565b919091357fffff00000000000000000000000000000000000000000000000000000000000081169260028110615450575050565b7fffff000000000000000000000000000000000000000000000000000000000000929350829060020360031b1b161690565b603e82106141cd5767117192d14ba1cb2b60c11b7fffffffffffffffff0000000000000000000000000000000000000000000000006154c784600719810181866126ca565b90358281169160088110615548575b505016036141cd576155036154fd6154f78461550a9481600a8103916126ca565b9061541c565b60f01c90565b61ffff1690565b90603d198101821161551a575090565b7f07b9a191000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b839250829060080360031b1b16165f806154d656fea26469706673582212201d46004bfda670bbfe93c87e7110fb100ded44b9880b07b5027ec40e894076cd64736f6c634300081c003360a08060405234602f57336080526103ba908161003482396080518181816098015281816101b701526102310152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063570e1a36146101db578063b0d691fe146101985763c09ad0d91461003a575f80fd5b34610194576040366003190112610194576004356001600160a01b03811681036101945760243567ffffffffffffffff81116101945736602382011215610194575f91610092839236906024816004013591016102b4565b906100ca7f000000000000000000000000000000000000000000000000000000000000000030336001600160a01b0383163314610339565b82602083519301915af1156100db57005b3d610800811161018b575b60c460405160208382010160405282815260208101925f843e6040519283917f65c8fd4d0000000000000000000000000000000000000000000000000000000083525f600484015260606024840152601f60648401527f4141313320454950373730322073656e64657220696e6974206661696c656400608484015260a060448401525180918160a48501528484015e5f828201840152601f01601f19168101030190fd5b506108006100e6565b5f80fd5b34610194575f3660031901126101945760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101945760203660031901126101945760043567ffffffffffffffff811161019457366023820112156101945780600401359067ffffffffffffffff8211610194573660248383010111610194575f916102637f000000000000000000000000000000000000000000000000000000000000000030336001600160a01b0383163314610339565b80601411610194576020916102825f92369060131901603884016102b4565b90826024858451940192013560601c5af16102ac575b6020906001600160a01b0360405191168152f35b505f51610298565b92919267ffffffffffffffff821161030c5760405191601f8101601f19908116603f0116830167ffffffffffffffff81118482101761030c57604052829481845281830111610194578281602093845f960137010152565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b1561034357505050565b6001600160a01b0392918380927ffe34a6d3000000000000000000000000000000000000000000000000000000005f5216600452166024521660445260645ffdfea2646970667358221220609c245b7ad0600ab28ca9e5b576771821ccac7702741ae3a66a45a908201d0c64736f6c634300081c0033", "sourceMap": "1075:17751:31:-:0;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;1075:17751:31;;;;;;;;;:::i;:::-;2563:9:30;1075:17751:31;;;2563:9:30;;;-1:-1:-1;;;2563:9:30;;3401:45:22;;;:::i;:::-;3393:53;;3467:51;;;:::i;:::-;3456:62;;1075:17751:31;3542:22:22;;3528:36;;;;1075:17751:31;3591:25:22;;3574:42;;;3644:13;3627:30;;1075:17751:31;;4204:80:22;1075:17751:31;4204:80:22;;2079:95;;;;1075:17751:31;2079:95:22;;;;;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;;;;;:::i;:::-;1075:17751:31;4194:91:22;;2079:95;3667:48;4278:4;4204:80;3725:27;1075:17751:31;;2498:19:30;;;;-1:-1:-1;;;;;2498:19:30;;;;;;;;;;;;;;;-1:-1:-1;2498:19:30;;;;;;;4278:4:22;1201::31;;1075:17751;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;;1320:29;;1075:17751;-1:-1:-1;1075:17751:31;;;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;1276:74;1075:17751;1276:74;1075:17751;;-1:-1:-1;;;;;;1075:17751:31;;;;;;;;;;;;;;;;;2079:95:22;1075:17751:31;;;;;3627:30:22;1075:17751:31;;;;;4204:80:22;1075:17751:31;;;;;3528:36:22;1075:17751:31;;;;;3574:42:22;1075:17751:31;;;;;3393:53:22;1075:17751:31;;;;;3456:62:22;1075:17751:31;;;;;2498:19:30;1075:17751:31;;;;1201:4;1075:17751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:19:30;1075:17751:31;;2620:3:30;-1:-1:-1;2620:3:30;;;;;2498:19;1075:17751:31;;;-1:-1:-1;1075:17751:31;;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1075:17751:31;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;:::o;2887:340:19:-;;1075:17751:31;;3032:2:19;3010:24;;3006:215;3032:2;;;1075:17751:31;;1854:2:19;1075:17751:31;;1840:16:19;1836:72;;3032:2;1075:17751:31;;;;2079:95:22;3032:2:19;1075:17751:31;;;;1949:36:19;3050:27;:::o;1075:17751:31:-;;;;3032:2:19;1075:17751:31;;;;;1949:36:19;3050:27;:::o;1836:72::-;1075:17751:31;3032:2:19;1075:17751:31;;;1879:18:19;;;;;;;;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;1854:2:19;1075:17751:31;-1:-1:-1;;1075:17751:31;;;1879:18:19;;;;3006:215;-1:-1:-1;;;;;1075:17751:31;;;;3432:13:22;1075:17751:31;;;;;;;;;;;3006:215:19;3032:2;1075:17751:31;;;;;;;;;;3006:215:19;1075:17751:31;3032:2:19;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:22;1075:17751:31;1390:66:19;3168:42;:::o;1075:17751:31:-;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;3432:13:22;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:22;1075:17751:31;1390:66:19;3168:42;:::o;1075:17751:31:-;;;;;;;;;;;;;;;;;;;;;;;3032:2:19;1075:17751:31;;;;;;;;;;;;;;;;;3432:13:22;1075:17751:31;;;3032:2:19;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2887:340:19;;1075:17751:31;;3032:2:19;3010:24;;3006:215;3032:2;;;1075:17751:31;;1854:2:19;1075:17751:31;;1840:16:19;1836:72;;3032:2;1075:17751:31;;;;2079:95:22;3032:2:19;1075:17751:31;;;;1949:36:19;3050:27;:::o;3006:215::-;-1:-1:-1;;;;;1075:17751:31;;;;3501:16:22;1075:17751:31;;;;;;;;;;;3006:215:19;3032:2;1075:17751:31;;;;;;;;;;3006:215:19;1075:17751:31;3032:2:19;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:22;1075:17751:31;;;;;3501:16:22;1075:17751:31;1390:66:19;3168:42;:::o;1075:17751:31:-;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;3501:16:22;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:22;1075:17751:31;1390:66:19;3168:42;:::o;1075:17751:31:-;;;;;;;3501:16:22;1075:17751:31;;;;;;;;;;;;;;;3032:2:19;1075:17751:31;;;;;;;;;;;;;;;;;3501:16:22;1075:17751:31;;;3032:2:19;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x60806040526004361015610022575b3615610018575f80fd5b610020612df1565b005b5f3560e01c806301ffc9a71461022c5780630396cb601461022757806309ccb880146102225780630bd28e3b1461021d5780630da826611461021857806313c65a6e14610213578063154e58dc1461020e5780631b2e01b814610209578063205c287814610204578063212eccc6146101ff57806321e60b37146101fa57806322cdde4c146101f557806335567e1a146101f057806344403473146101eb5780635287ce12146101e657806370a08231146101e1578063765e827f146101965780637da0c462146101dc57806384b0196e146101d7578063850aaf62146101d25780639b249f69146101cd578063acbe911e146101c8578063aec321fb146101c3578063af324943146101be578063b0a398d1146101b9578063b760faf9146101b4578063bb9fe6bf146101af578063c23a5cea146101aa578063c3bce009146101a5578063c579f76b146101a0578063d72f25931461019b578063dbed18e0146101965763f7e426e80361000e57611a54565b610f79565b611a34565b6117e6565b6117c8565b61168f565b611592565b611572565b611556565b6114e1565b61148a565b611356565b611275565b611232565b611119565b610fef565b610f05565b610df8565b610db3565b610cd7565b610cbf565b610bbe565b610b77565b610951565b6108f4565b6108ba565b610898565b61076c565b6104d8565b610497565b61029b565b34610297576020366003190112610297576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610297576020907f01ffc9a70000000000000000000000000000000000000000000000000000000060405191148152f35b5f80fd5b60203660031901126102975760043563ffffffff811690818103610297576104887fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c019161046a6103456102fe336001600160a01b03165f525f60205260405f2090565b956103366001880154918561031a8463ffffffff9060781c1690565b916103288383831515611a8d565b63ffffffff83161115611a8d565b60081c6001600160701b031690565b9461037b61035c346001600160701b038916611b04565b9661036a81348a1515611b11565b346001600160701b03891115611b11565b546103846105dc565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f60808201526103c9336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f91031261029757565b34610297575f3660031901126102975760206104b1611b5e565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361029757565b34610297576020366003190112610297576004356001600160c01b03811681036102975761052290335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b61052c8154611bd3565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff82111761056057604052565b610530565b6060810190811067ffffffffffffffff82111761056057604052565b610140810190811067ffffffffffffffff82111761056057604052565b6040810190811067ffffffffffffffff82111761056057604052565b90601f8019910116810190811067ffffffffffffffff82111761056057604052565b604051906105eb60a0836105ba565b565b604051906105eb610140836105ba565b604051906105eb6040836105ba565b604051906105eb6060836105ba565b604051906105eb610120836105ba565b67ffffffffffffffff811161056057601f01601f191660200190565b9291926106538261062b565b9161066160405193846105ba565b829481845281830111610297578281602093845f960137010152565b9080601f830112156102975781602061069893359101610647565b90565b6001600160a01b0381160361029757565b35906105eb8261069b565b60431901906101c08212610297576040516106d181610544565b610140819312610297576106e36105ed565b6106ed60446106ac565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c082015261072b6101246106ac565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b34610297576102203660031901126102975760043567ffffffffffffffff81116102975761079e90369060040161067d565b3660231901906101c0821261029757610140604051926107bd84610544565b12610297576107ca6105ed565b6107d460246106ac565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526108116101046106ac565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359167ffffffffffffffff83116102975761087561088093369060040161067d565b906102043592611be1565b604080519283526020830191909152819081015b0390f35b34610297575f3660031901126102975760206108b2612eae565b604051908152f35b34610297575f3660031901126102975760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b346102975760403660031901126102975760206109486004356109168161069b565b6001600160a01b036109266104c2565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b346102975760403660031901126102975760043561096e8161069b565b60243590335f525f60205260405f20918254928382116109f5576109958261002095611e4b565b9055604080516001600160a01b03841681526020810183905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a25f808080846001600160a01b0387165af1916109ed611e6c565b923390611ec9565b50827f25c3f46e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b9181601f840112156102975782359167ffffffffffffffff8311610297576020808501948460051b01011161029757565b90816101209103126102975790565b60c06003198201126102975760043567ffffffffffffffff81116102975781610a9091600401610a25565b929092916024359067ffffffffffffffff821161029757610ab391600401610a56565b90604435610ac08161069b565b90606435906084359060a43590565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815281516002811015610b7257602082015260a0604080610b568160208701518582880152805160c08801526020810151151560e088015201516060610100870152610120860190610ae3565b9401518051606085015260208101516080850152015191015290565b610acf565b3461029757610894610bb2610ba4610b8e36610a65565b9691949095610b9e949394611f2f565b50612fca565b610bad81613057565b6130e9565b60405191829182610b07565b34610297576102003660031901126102975760243560043567ffffffffffffffff821161029757610bf6610894923690600401610a56565b610bff366106b7565b905f926001600160a01b0360e08451610c1881866138a7565b610c2185611f70565b6020870152610c5181610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6040870152015116610c80575b5050506040519182918260405f91939293606081019483825260208201520152565b610c8a9350613997565b90505f8080610c5e565b6020600319820112610297576004359067ffffffffffffffff82116102975761069891600401610a56565b346102975760206108b2610cd236610c94565b611f70565b34610297576040366003190112610297576020600435610cf68161069b565b6001600160a01b03610d066104c2565b91165f5260018252610d2c8160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156102975782359167ffffffffffffffff8311610297576020838186019501011161029757565b90606060031983011261029757600435610d8b8161069b565b916024359067ffffffffffffffff821161029757610dab91600401610d44565b909160443590565b34610297575f8080610dc436610d72565b939181604094929451948592833781018381520393f1610de2611e6c565b9015610dea57005b805190811561029757602001fd5b34610297576020366003190112610297576001600160a01b03600435610e1d8161069b565b5f6080604051610e2c81610544565b8281528260208201528260408201528260608201520152165f525f60205261089460405f20610eb165ffffffffffff600160405193610e6a85610544565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b34610297576020366003190112610297576001600160a01b03600435610f2a8161069b565b165f525f602052602060405f2054604051908152f35b6040600319820112610297576004359067ffffffffffffffff821161029757610f6b91600401610a25565b90916024356106988161069b565b3461029757610f8736610f40565b916120c3565b61012060e0610698936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c0810151151582850152015191610100808201520190610ae3565b346102975760603660031901126102975760043567ffffffffffffffff811161029757611020903690600401610a56565b60243561102c8161069b565b6044359167ffffffffffffffff83116102975761105061089493369060040161067d565b9161105961216f565b506110626121bd565b928261106e8594613057565b61108561107b858361297e565b9291969093613c42565b9290965f946060966001600160a01b0381166110ee575b50509560806110dd9697015197604051986110b96101008b6105ba565b8952602089015260408801526060870152608086015260a0850152151560c0840152565b60e082015260405191829182610f8d565b6110dd97505f92965090829182602083519301915af195608061110f611e6c565b979591979661109c565b34610297575f366003190112610297576111d96111557f0000000000000000000000000000000000000000000000000000000000000000614b7b565b61117e7f0000000000000000000000000000000000000000000000000000000000000000614c61565b602060405161118d82826105ba565b5f8152816111e781830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e0890190610ae3565b908782036040890152610ae3565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061121b57505050500390f35b83518552869550938101939281019260010161120c565b346102975760403660031901126102975761124e60043561069b565b60243567ffffffffffffffff81116102975761126e903690600401610d44565b5050612104565b346102975760203660031901126102975760043567ffffffffffffffff81116102975760206112ab6112db923690600401610d44565b906001600160a01b036112bc611b5e565b16905f604051809681958294632b870d1b60e11b8452600484016122d9565b03925af18015611351576001600160a01b03915f91611322575b507f6ca7b806000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b611344915060203d60201161134a575b61133c81836105ba565b8101906122a4565b5f6112f5565b503d611332565b611b53565b3461029757610894610bb261136a36610a65565b9594909493919361236a565b60406003198201126102975760043567ffffffffffffffff811161029757816113a191600401610a25565b929092916024359067ffffffffffffffff82116102975761069891600401610a56565b6106989060208152610100608061141d81865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e0860152610200850190610ae3565b60208087015180516040870152015160608501529461144d60408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346102975761149836611376565b91906114a2612437565b505f5b8181106114c4576108946114b88561275c565b604051918291826113c4565b806114da6114d560019385876124cd565b61275c565b50016114a5565b34610297576114ef36611376565b91906114f961216f565b506020905f5b81811061153057610894611524866040519061151c6020836105ba565b5f825261222c565b60405191829182610f8d565b8061154f61154160019385886124cd565b6040519061151c87836105ba565b50016114ff565b34610297575f3660031901126102975760205f5c604051908152f35b60203660031901126102975761002060043561158d8161069b565b6124f5565b34610297575f36600319011261029757335f525f602052600160405f200161165261161861160a6115fb61160163ffffffff86546001600160701b038160081c166115e48263ffffffff9060781c1690565b948592838360ff831696879360781c16151561254e565b8261254e565b63ffffffff1690565b65ffffffffffff421661259c565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a908060208101610488565b34610297576020366003190112610297576100206004356116af8161069b565b60016116cb336001600160a01b03165f525f60205260405f2090565b0161176a8154916117426117216116ec856001600160701b039060081c1690565b946117136001600160701b03871696607883901c63ffffffff1660ff84169189151561254e565b60981c65ffffffffffff1690565b65ffffffffffff81169061173842828415156125ba565b42914210156125fa565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03841681526020810183905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a25f808080846001600160a01b0387165af1916117c0611e6c565b92339061263a565b34610297576108946114b86114d536610c94565b8015150361029757565b34610297576102203660031901126102975760043560243567ffffffffffffffff81116102975761181b903690600401610a56565b90611825366106b7565b9061020435611833816117dc565b5f925a815161184281886138a7565b61185b60405161185189611f70565b6020860152604052565b6040810151946118a3816effffffffffffffffffffffffffffff8860c08601511760608601511760808601511760a086015117610100860151176101208601511711156128c0565b6118ee6118d183610100604082015160608301510160808301510160a08301510160c0830151019101510290565b8060408701526118e560808b013560801c90565b90868b85614063565b956119178261191261190786516001600160a01b031690565b602087015190614146565b612914565b5a8403116119e2576060946001600160a01b0361193f60e05a9501516001600160a01b031690565b16151590816119da575b506119a5575b509560a060809261197861197161196c610894999a9b5a90611e4b565b612968565b6064900490565b9560608601525a900391013501910152604051938493846040919493926060820195825260208201520152565b610894959650879194506080926119786119716119c88761196c9c60a096613997565b9b9098959b9a9950505050925061194f565b90505f611949565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b3461029757610894610bb2611a4836610a65565b95949094939193612b4a565b3461029757611a6e611a6536610d72565b92919091612ca3565b9061089460405192839215158352604060208401526040830190610ae3565b15611a96575050565b9063ffffffff80927fe1823bce000000000000000000000000000000000000000000000000000000005f52166004521660245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211611af157565b611ace565b9060018201809211611af157565b91908201809211611af157565b15611b1a575050565b6001600160701b0392507f0e10009c000000000000000000000000000000000000000000000000000000005f526004521660245260445ffd5b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa908115611351575f91611b9e575090565b90506020813d602011611bcb575b81611bb9602093836105ba565b8101031261029757516106988161069b565b3d9150611bac565b5f198114611af15760010190565b9392909193825190606082015181519081611dc5575b505050505a9003608082015101925f935a91835191611c1583614194565b92611c2a60e08201516001600160a01b031690565b91611c40608088015182036060840151906141b4565b01925f926001600160a01b0381169081611cdc5750505090611c6d6040949392516001600160a01b031690565b945b5a9003010102920151908282105f14611cb357611c8b5f612e27565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b82611cd79203906001600160a01b03165f525f60205260405f209081540180915590565b509190565b96928251611cf3575b505050906040939291611c6f565b919950949392505a98611d055f612e27565b60a05a920195865191813b15610297578692835f809489611d58604051988997889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601612e31565b0393f19081611dab575b50611d8b57611a30611d72612dfa565b6040519182916365c8fd4d60e01b835260048301612e63565b604094611da1915a9003995a90039051906141b4565b9192935f80611ce5565b80611db95f611dbf936105ba565b8061048d565b5f611d62565b5f80949360206001600160a01b0383965116910192f115611de9575f808080611bf7565b611a30611df4612dfa565b6040519182917f462c71b2000000000000000000000000000000000000000000000000000000008352602060048401526024830190610ae3565b600319810191908211611af157565b5f19810191908211611af157565b91908203918211611af157565b60405190611e676020836105ba565b5f8252565b3d15611e96573d90611e7d8261062b565b91611e8b60405193846105ba565b82523d5f602084013e565b606090565b90926001600160a01b0360809381610698979616845216602083015260408201528160608201520190610ae3565b93919392909215611eda5750505050565b90611a30916040519485947f9f3d693300000000000000000000000000000000000000000000000000000000865260048601611e9b565b60405190611f1e82610565565b5f6040838281528260208201520152565b60405190611f3c82610565565b815f8152604051611f4c81610565565b5f81525f60208201526060604082015260208201526040611f6b611f11565b910152565b61069890611f7d81613a9f565b611f85612eae565b91612067813592611f958461069b565b60208301359080156120a35761205990935b611fbd611fb760608301836122ea565b90615319565b90608081013560a082013590611fe5611fdf60c08501359460e08101906122ea565b90615324565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b03601f1981018352826105ba565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506120596120b460408501856122ea565b90816040519182372093611fa7565b505050333214806120fb575b612104577fab143c06000000000000000000000000000000000000000000000000000000005f5260045ffd5b50333b156120cf565b60405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d5560448201527f4c4154494f4e53000000000000000000000000000000000000000000000000006064820152608490fd5b60405190610100820182811067ffffffffffffffff82111761056057604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b604051906121ca82610544565b5f6080836040516121da81610581565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b905061223661216f565b5060806122636122446121bd565b9261224e81613057565b83612259818361297e565b9491929093613c42565b94909501519460405195612279610100886105ba565b8652602086015260408501526060840152608083015260a08201525f60c0820152606060e082015290565b9081602091031261029757516106988161069b565b908060209392818452848401375f828201840152601f01601f1916010190565b9160206106989381815201916122b9565b903590601e1981360301821215610297570180359067ffffffffffffffff82116102975760200191813603831361029757565b6040519061232c6020836105ba565b5f808352366020840137565b906123428261062b565b61234f60405191826105ba565b8281528092612360601f199161062b565b0190602036910137565b95949392919095612379611f2f565b5061238760608301836122ea565b9050156123bd576106989661239b91612fca565b6123b56123a66121bd565b6123af83613057565b8261297e565b5050506133fd565b505050505050506123cc61231d565b604051906123d982610565565b5f82525f602083015260408201526040516123f381610565565b5f81525f60208201525f60408201526040519161240f83610565565b5f83526020830152604082015290565b6040519061242c8261059e565b5f6020838281520152565b6040519061244482610544565b8160405161245181610544565b5f81525f60208201525f60408201525f606082015260606080820152815261247761241f565b602082015261248461241f565b604082015261249161241f565b60608201526080604051916124a58361059e565b5f83526124b061241f565b60208401520152565b634e487b7160e01b5f52603260045260245ffd5b91908110156124f05760051b8101359061011e1981360301821215610297570190565b6124b9565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b0361254234856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561255857505050565b906001600160701b0363ffffffff927f8421e8e5000000000000000000000000000000000000000000000000000000005f521660045216602452151560445260645ffd5b9065ffffffffffff8091169116019065ffffffffffff8211611af157565b156125c3575050565b65ffffffffffff907ffbd021d6000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b15612603575050565b65ffffffffffff907f561d3312000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b9391939290921561264b5750505050565b90611a30916040519485947f0dcf087c00000000000000000000000000000000000000000000000000000000865260048601611e9b565b906014116102975790601490565b909291928360141161029757831161029757601401916013190190565b909291928360341161029757831161029757603401916033190190565b90939293848311610297578411610297578101920390565b356bffffffffffffffffffffffff19811692919060148210612702575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b6040519061272f8261059e565b6004546001600160a01b0316825260405160208361274c8361059e565b6005548352600654828401520152565b612764612437565b5061276d6121bd565b9061277781613057565b612781828261297e565b5091909261278f8385613ce2565b6127ac6127a760e0835101516001600160a01b031690565b613f40565b916127da6127c66127a784516001600160a01b0390511690565b916127cf61241f565b5060408101906122ea565b90601482106128b5576127fc6127f6612802936127a793612682565b906126e2565b60601c90565b916001600160a01b0386169460808201519660606040840151930151926128276105dc565b9889526020890152604088015260608701526080860152612846612722565b93801515806128aa575b612878575b5061285e6105dc565b948552602085015260408401526060830152608082015290565b90935061288481613f40565b61289e61288f6105fd565b6001600160a01b039093168352565b6020820152925f612855565b506001811415612850565b50506128025f613f40565b156128c85750565b60849060405190631101335b60e11b8252600482015260406024820152601860448201527f41413934206761732076616c756573206f766572666c6f7700000000000000006064820152fd5b1561291c5750565b60849060405190631101335b60e11b8252600482015260406024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152fd5b90607382029180830460731490151715611af157565b9190915f915a9380519261299284826138a7565b6129ab6040516129a183611f70565b6020850152604052565b6040840151956129f35f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a089015117610100890151176101208901511711156128c0565b612a3e612a2186610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612a35608085013560801c90565b9085855f614063565b96612a625f611912612a5789516001600160a01b031690565b60208a015190614146565b5a820311612af7576060946001600160a01b03612a8a60e05a9301516001600160a01b031690565b16151580612aef575b612ac1575b60809291612aaf61197161196c60a0945a90611e4b565b9660608601525a900391013501910152565b945061196c95509060a0608092612aaf611971612adf87865f613997565b9a90999450505050919250612a98565b506001612a93565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b95949392919095612b59611f2f565b506014612b6960e08401846122ea565b905010612ba45761069896612b9691610b9e612b836121bd565b612b8e8151876138a7565b5a9086613f80565b612b9f81613057565b61361a565b50505050505050612bb361231d565b60405190612bc082610565565b5f82525f60208301526040820152612bd661060c565b5f81525f60208201525f6040820152612bed61060c565b915f83526020830152604082015290565b6040906001600160a01b03610698959316815281602082015201916122b9565b9081518110156124f0570160200190565b9190604083820312610297578251612c46816117dc565b9260208101519067ffffffffffffffff8211610297570181601f8201121561029757805190612c748261062b565b92612c8260405194856105ba565b8284526020838301011161029757815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561029757612d21935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612bfe565b0393f19081612ddd575b50612dcb575050612d3a611e6c565b906004825110612dcf57612d56612d518351611e2e565b612338565b60045b8351811015612db55780612d98612d7260019387612c1e565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612dae612da483611e2e565b915f1a9185612c1e565b5301612d59565b50612dcb91925060208082518301019101612c2f565b9091565b9050612dd961231d565b5f91565b80611db95f612deb936105ba565b5f612d2b565b6105eb336124f5565b3d6108008111612e1e575b604051906020818301016040528082525f602083013e90565b50610800612e05565b60031115610b7257565b90949392946003811015610b7257606092612e59918352608060208401526080830190610ae3565b9460408201520152565b9060a0610698925f815260606020820152601460608201527f4141353020706f73744f7020726576657274656400000000000000000000000060808201528160408201520190610ae3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480612fa1575b15612f09577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152612f9b60c0826105ba565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612ee0565b5f5b828110612fd857505050565b600190612fe36121bd565b612fee8286866124cd565b612ff781613057565b613001828261297e565b50505061301160608201826122ea565b9050156130465761302a5f9291602084930151906141d3565b9082602083519301915af15061303e611e6c565b505b01612fcc565b5050613040565b356106988161069b565b61308a9061306860408201826122ea565b916130828135916130788361069b565b60e08101906122ea565b93909261426c565b80516130935750565b611a3090604051918291631101335b60e11b83525f6004840152604060248401526044830190610ae3565b9392916130e4906001600160a01b03604093168652606060208701526060860190610ae3565b930152565b9390946130f4611f2f565b5082156133635761313492613107611e58565b50915f6131165a8860036145fd565b5a906040519687928392631efc84dd60e31b84528c600485016130be565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1908115611351575f945f92613344575b508194809281156133225750506131909095929394955b85611b04565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846131c88885611e4b565b106132f3575a6131d788611ae2565b1161329a5791889391879695935f8c8b6132096132006131fa886132299f611b04565b60011c90565b809a60036145fd565b835a936040519e8f9586948593631efc84dd60e31b8552600485016130be565b03925af1988915611351575f905f9a613273575b501561325e5750505061324f83611e3d565b95915b939495919290926131bd565b9396509361326d919750611af6565b94613252565b90506132929199503d805f833e61328a81836105ba565b810190612c2f565b98905f61323d565b509550939550505093506132ac61231d565b926132b561060c565b935f85525f602086015260408501526132cc61060c565b928352602083015260408201526132e161060c565b60018152916020830152604082015290565b965096505091955050613315915061330961060c565b93845215156020840152565b6040820152612bd661060c565b9650965050509450505061331561333761060c565b5f81529215156020840152565b90945061335b91503d805f833e61328a81836105ba565b90935f613173565b61337692505a5f6131165a8860036145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611351575f945f946133db575b5083946133c481935a90611e4b565b94811561332257505061319090959293949561318a565b9093506133f39194503d805f833e61328a81836105ba565b939093925f6133b5565b939094613408611f2f565b5082156135805761342a9261341b611e58565b50915f6131165a8860016145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1908115611351575f945f92613561575b5081948092811561332257505061348590959293949585611b04565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134bd8885611e4b565b106132f3575a6134cc88611ae2565b1161329a5791889391879695935f8c8b6132096134ef6131fa886134f89f611b04565b809a60016145fd565b03925af1988915611351575f905f9a613542575b501561352d5750505061351e83611e3d565b95915b939495919290926134b2565b9396509361353c919750611af6565b94613521565b90506135599199503d805f833e61328a81836105ba565b98905f61350c565b90945061357891503d805f833e61328a81836105ba565b90935f613469565b61359392505a5f6131165a8860016145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611351575f945f946135f8575b5083946135e181935a90611e4b565b94811561332257505061348590959293949561318a565b9093506136109194503d805f833e61328a81836105ba565b939093925f6135d2565b939094613625611f2f565b50821561379d5761364792613638611e58565b50915f6131165a8860026145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1908115611351575f945f9261377e575b508194809281156133225750506136a290959293949585611b04565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846136da8885611e4b565b106132f3575a6136e988611ae2565b1161329a5791889391879695935f8c8b61320961370c6131fa886137159f611b04565b809a60026145fd565b03925af1988915611351575f905f9a61375f575b501561374a5750505061373b83611e3d565b95915b939495919290926136cf565b93965093613759919750611af6565b9461373e565b90506137769199503d805f833e61328a81836105ba565b98905f613729565b90945061379591503d805f833e61328a81836105ba565b90935f613686565b6137b092505a5f6131165a8860026145fd565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611351575f945f94613815575b5083946137fe81935a90611e4b565b9481156133225750506136a290959293949561318a565b90935061382d9194503d805f833e61328a81836105ba565b939093925f6137ef565b1561383f5750565b7f120aaab5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b156138725750565b6001600160a01b03907fd8ccb292000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b61393e906138c46138b78261304d565b6001600160a01b03168452565b602081013560208401526138f16080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261392860c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e08101906122ea565b8092919261394b57505050565b613968816105eb9461396382603460e0961015613837565b614839565b60a0850152608084015291613988836001600160a01b038116151561386a565b01906001600160a01b03169052565b929091925a9380516139bb6001600160a01b0360e083015116604084015190614871565b15613a2b579060806139d0920151948361494e565b9390945a9003116139de5750565b60408051631101335b60e11b815260048101929092526024820152602060448201527f41413336206f76657220706d566572696669636174696f6e4761734c696d69746064820152608490fd5b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b613aac60408201826122ea565b9091613abf613abb8385614a66565b1590565b613b2f57613acf613ad49161304d565b614aa8565b9160148211613b0b575050604051612f9b816120596020820194856014916bffffffffffffffffffffffff199060601b1681520190565b81612f9b92613b1992612690565b9190612059604051938492602084019687613a77565b5050505f90565b9035601e198236030181121561029757016020813591019167ffffffffffffffff821161029757813603831361029757565b61069891613b8681613b79846106ac565b6001600160a01b03169052565b60208201356020820152613c1c613c10613bd7613bbc613ba96040870187613b36565b61012060408801526101208701916122b9565b613bc96060870187613b36565b9086830360608801526122b9565b6080850135608085015260a085013560a085015260c085013560c0850152613c0260e0860186613b36565b9085830360e08701526122b9565b92610100810190613b36565b916101008185039101526122b9565b9291906130e4602091604086526040860190613b68565b90602081019182515f5d5a91606081015191613c6160608201826122ea565b5f60038211613cda575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b03613cc9575050613cc4612dcb955191612059604051938492638dd7712f60e01b602085015260248401613c2b565b611be1565b612dcb9650613cc492503691610647565b508135613c6b565b613cf36001600160a01b0391614d19565b92909116613eed57613e435750613d116001600160a01b0391614d19565b92909116613df057613d205750565b613d9d57604051631101335b60e11b815280611a305f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b815280611a305f60048301608091815260406020820152602060408201527f41413337207061796d617374657220696e76616c20626c6f636b2072616e676560608201520190565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b613e9a57604051631101335b60e11b815280611a305f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601e60408201527f41413237206f7574736964652076616c696420626c6f636b2072616e6765000060608201520190565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b03613f5161241f565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b9291613fc4908251926001600160a01b0360e08186511695613fb0613fa860408b018b6122ea565b90865f614e13565b015116905f91159687614030575b5f615212565b92613fcc5750565b5f613fd691614871565b15613fdd57565b604051631101335b60e11b815280611a305f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061404c856001600160a01b03165f525f60205260405f2090565b54801561405c57505f5b91613fbe565b5f03614056565b929094936140a9908351936001600160a01b0360e0818751169661409561408d60408d018d6122ea565b90868c614e13565b015116905f91159889614111575b87615212565b946140b357505050565b6140bc91614871565b156140c45750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b915061412d866001600160a01b03165f525f60205260405f2090565b548581111561413f57505f5b916140a3565b8503614139565b6001600160a01b03165f52600160205267ffffffffffffffff6141808260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261418d84611bd3565b9055161490565b61012061010082015191015148018082105f146141af575090565b905090565b90619c4082018111156141cd57606491600a9103020490565b50505f90565b919082356141e08161069b565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061421883856122ea565b9060035f9211614263575b50160361424e575061069890612059604051938492638dd7712f60e01b602085015260248401613c2b565b610698925061425c916122ea565b3691610647565b9050355f614223565b50929192159081614321575b506142e4576014811015614291575b5050610698611e58565b601411610297573560601c3b156142a9575f80614287565b6040516142b76040826105ba565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516142f46040826105ba565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f614278565b919091610120818403126102975761434161061b565b9261434b826106ac565b845260208201356020850152604082013567ffffffffffffffff8111610297578161437791840161067d565b6040850152606082013567ffffffffffffffff8111610297578161439c91840161067d565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff811161029757816143df91840161067d565b60e085015261010082013567ffffffffffffffff811161029757614403920161067d565b610100830152565b60041115610b7257565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b0316825261069891602082015160208201526101006144e56144b56144a360408601516101206040870152610120860190610ae3565b60608601518582036060870152610ae3565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152610ae3565b92015190610100818403910152610ae3565b60806101a09161012081516145158682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261456960e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6145d46145c961020093969594965f84526102206020850152610220840190614464565b9560408301906144f7565b0152565b610200906145d46145c95f949695968584526102206020850152610220840190614464565b916146066121bd565b92614611368461432b565b61461a8261440b565b600282146147555761462b8261440b565b600382146146d757508061464060019261440b565b1461468a5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b61469f610698926020612059950151906141d3565b9390916040519485937f44403473000000000000000000000000000000000000000000000000000000006020860152602485016130be565b9190506fffffffffffffffffffffffffffffffff61471561470e60806106989601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526120596040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016145d8565b9161205991506fffffffffffffffffffffffffffffffff19846147e160e061069897016147d361478e61478883866122ea565b90614839565b9391905060609160e08b0196603488515111614817575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614415565b03601f1981018452836105ba565b526040519485937f21e60b37000000000000000000000000000000000000000000000000000000006020860152602485016145a5565b61483192935061425c9161482a916122ea565b80916126ad565b905f806147a5565b9091826014116102975781359183602411610297576014810135936034116102975760609290921c92608090811c9260240135901c90565b6001600160a01b03165f525f60205260405f20908154818110613b2f57039055600190565b6148ae60409295949395606083526060830190613b68565b9460208201520152565b60a0906106989392815260606020820152600d60608201527f414133332072657665727465640000000000000000000000000000000000000060808201528160408201520190610ae3565b60a0906106989392815260606020820152601d60608201527f41413335206d616c666f726d6564207061796d6173746572206461746100000060808201528160408201520190610ae3565b9192905f80604051956149a88761499a602084015160408501519060208401987f52b7512c000000000000000000000000000000000000000000000000000000008a5260248501614896565b03601f1981018952886105ba565b51838260806149c160e08501516001600160a01b031690565b93015192895193f1933d91825f833e51938151604083019687519015614a4057604090601f0160051c60051b606001911490811591614a35575b50614a105750601f909101601f191601604052565b614a18612dfa565b90611a306040519283926365c8fd4d60e01b845260048401614903565b90508314155f6149fb565b82614a49612dfa565b90611a306040519283926365c8fd4d60e01b8452600484016148b8565b90600211614aa357356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000831603614b13575060181b6bffffffffffffffffffffffff191660601c90565b806001600160a01b03913b15614b4f577f9f4e4cc9000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7fe5819b95000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60ff8114614b8c576106989061536a565b506040515f6002548060011c91600182168015614c57575b602084108114614c435783855284926020840191908115614c2a5750600114614bd5575b50610698925003826105ba565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b848310614c1357506106989350015f614bc8565b805482840152859350602090920191600101614bff565b60ff191682525061069893151560051b0190505f614bc8565b634e487b7160e01b5f52602260045260245ffd5b92607f1692614ba4565b60ff8114614c72576106989061536a565b506040515f6003548060011c91600182168015614d0f575b602084108114614c435783855284926020840191908115614c2a5750600114614cba5750610698925003826105ba565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b848310614cf857506106989350015f614bc8565b805482840152859350602090920191600101614ce4565b92607f1692614c8a565b8015614e0a57614d28906153c1565b602081015165ffffffffffff166580000000000081101580614de5575b15614d9b57657fffffffffff614d64604084015165ffffffffffff1690565b164311908115614d88575b5090614d856001915b516001600160a01b031690565b92565b657fffffffffff9150164311155f614d6f565b614dbc614db1604084015165ffffffffffff1690565b65ffffffffffff1690565b4211908115614dd2575b5090614d855f91614d78565b65ffffffffffff1690504211155f614dc6565b5065800000000000614e03614db1604085015165ffffffffffff1690565b1015614d45565b505f905f905f90565b91909183614e22575b50505050565b8251516001600160a01b031693614e398184614a66565b6150e9576014811061509457614e556127fc6127f68386612682565b92853b61504f57614e9f91602091614e7a614e6e611b5e565b6001600160a01b031690565b905f60408951015192604051809781968295632b870d1b60e11b8452600484016122d9565b0393f1908115611351575f91615030575b506001600160a01b038116948515614fdb576001600160a01b0316809503614f86573b15614f3957507fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d90614f1560e06020850151945101516001600160a01b031690565b604080516001600160a01b039384168152919092166020820152a35f808080614e1c565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b611a3082604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b611a3083604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b615049915060203d60201161134a5761133c81836105ba565b5f614eb0565b5050506020918201516040516001600160a01b039283168152939091169290917fa39bcda08ffd11bafb11c4f170ef24fc6dc1a9d1b0394d90dbd19e0b919050e991a3565b611a3082604051918291631101335b60e11b835260048301608091815260406020820152601760408201527f4141393920696e6974436f646520746f6f20736d616c6c00000000000000000060608201520190565b9050601481116150f95750505050565b615115615107614e6e611b5e565b918060408651015194612690565b9092823b156102975761515b935f80946040518097819682957fc09ad0d90000000000000000000000000000000000000000000000000000000084528c60048501612bfe565b0393f18015611351576151b3575b506001600160a01b0380602061517e85614aa8565b93015192169216907f7c9f9ade6a03a0bba484e52df872467a270e798ffc1adab9dfaa8d0e627f05445f80a45f808080614e1c565b80611db95f6151c1936105ba565b5f615169565b60a0906106989392815260606020820152600d60608201527f414132332072657665727465640000000000000000000000000000000000000060808201528160408201520190610ae3565b929160209594869261527c5f9361526e61523582516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614896565b03601f1981018a52896105ba565b8285895193f15f519460203d03615311575b6040521561529a575050565b3b6152ec5760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b6152f4612dfa565b90611a306040519283926365c8fd4d60e01b8452600484016151c7565b5f915061528e565b816040519182372090565b61532e8282615482565b8061533f5750816040519182372090565b604051920390600919820190833767117192d14ba1cb2b60c11b828201600919015260011901902090565b60ff811690601f821161539957604051916153866040846105ba565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b6153c9611f11565b5065ffffffffffff8160a01c16801561540f575b65ffffffffffff90604051926153f284610565565b6001600160a01b038116845260d01c602084015216604082015290565b5065ffffffffffff6153dd565b919091357fffff00000000000000000000000000000000000000000000000000000000000081169260028110615450575050565b7fffff000000000000000000000000000000000000000000000000000000000000929350829060020360031b1b161690565b603e82106141cd5767117192d14ba1cb2b60c11b7fffffffffffffffff0000000000000000000000000000000000000000000000006154c784600719810181866126ca565b90358281169160088110615548575b505016036141cd576155036154fd6154f78461550a9481600a8103916126ca565b9061541c565b60f01c90565b61ffff1690565b90603d198101821161551a575090565b7f07b9a191000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b839250829060080360031b1b16165f806154d656fea26469706673582212201d46004bfda670bbfe93c87e7110fb100ded44b9880b07b5027ec40e894076cd64736f6c634300081c0033", "sourceMap": "1075:17751:31:-:0;;;;;;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;877:25:24;1075:17751:31;;862:40:24;;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;3744:47:35;;3109:10;1075:17751:31;;3100:20:35;3109:10;-1:-1:-1;;;;;1075:17751:31;3100:8:35;1075:17751:31;3100:8:35;1075:17751:31;;;3100:8:35;1075:17751:31;;;3100:20:35;3212;3244:158;3212:20;;;1075:17751:31;;;;;;;;;;;;;3138:19:35;3130:104;3138:19;;;;;3130:104;:::i;:::-;1075:17751:31;;;-1:-1:-1;3265:39:35;3244:158;:::i;:::-;1075:17751:31;;-1:-1:-1;;;;;1075:17751:31;;;;3441:9:35;3541:88;3428:22;3441:9;-1:-1:-1;;;;;1075:17751:31;;3428:22:35;:::i;:::-;3441:9;3460:71;3441:9;;3468;;;3460:71;:::i;:::-;3441:9;-1:-1:-1;;;;;3549:26:35;;;3541:88;:::i;:::-;1075:17751:31;;;:::i;:::-;;;;3212:20:35;1075:17751:31;3662:67:35;;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;3662:67:35;;;1075:17751:31;;;;3662:67:35;;;1075:17751:31;-1:-1:-1;3662:67:35;;;1075:17751:31;3639:20:35;3109:10;-1:-1:-1;;;;;1075:17751:31;3100:8:35;1075:17751:31;3100:8:35;1075:17751:31;;;3100:8:35;1075:17751:31;;;3639:20:35;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1075:17751:31;;;;;;3662:67:35;1075:17751:31;;;;;;;;;;;;;3109:10:35;;1075:17751:31;;;;;;;3744:47:35;;;;1075:17751:31;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;:::i;:::-;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;705:36:33;725:10;;-1:-1:-1;1075:17751:31;705:19:33;1075:17751:31;;;-1:-1:-1;1075:17751:31;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;705:36:33;:38;1075:17751:31;;705:38:33;:::i;:::-;1075:17751:31;;;;-1:-1:-1;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;2524:15;1075:17751;;;2524:15;1075:17751;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1075:17751:31;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1075:17751:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;1075:17751:31;;;;;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1075:17751:31;;;;;4765:20:30;;:::i;:::-;1075:17751:31;;;;;;;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;1740:197:36;1075:17751:31;;;;;;;;;-1:-1:-1;;1075:17751:31;;;;;298:74:33;1075:17751:31;;;;;:::i;:::-;-1:-1:-1;;;;;1075:17751:31;;:::i;:::-;;;-1:-1:-1;1075:17751:31;298:74:33;1075:17751:31;;;-1:-1:-1;1075:17751:31;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;298:74:33;1075:17751:31;;;;;;;;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;:::i;:::-;;;5462:10:35;;-1:-1:-1;1075:17751:31;-1:-1:-1;1075:17751:31;;;-1:-1:-1;1075:17751:31;;;;5538:32:35;;;;1075:17751:31;;5665:31:35;;5867:107;5665:31;;:::i;:::-;1075:17751:31;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;5462:10:35;;5711:54;;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;;;;;1075:17751:31;;5810:47:35;;;;;:::i;:::-;5462:10;;5867:107;;:::i;1075:17751:31:-;;;;-1:-1:-1;1075:17751:31;;;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1075:17751:31;;;;;;;;-1:-1:-1;;1075:17751:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;13650:152;13568:13;1075:17751;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;13568:13;:::i;:::-;13619:12;;;:::i;:::-;13650:152;:::i;:::-;1075:17751;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;19061:17:30;-1:-1:-1;;;;;19251:17:30;19061;;19116:7;;;;:::i;:::-;19157:21;;;:::i;:::-;1075:17751:31;19134:20:30;;1075:17751:31;19209:28:30;;14917:20;14700:28;;;1075:17751:31;14731:20:30;;;1075:17751:31;2045:4:30;14770:37;;;1075:17751:31;2045:4:30;14810:31;;;1075:17751:31;2045:4:30;14844:26;;;1075:17751:31;2045:4:30;14917:20;;1075:17751:31;;14530:424:30;;19209:28;1075:17751:31;19189:17:30;;1075:17751:31;19251:17:30;1075:17751:31;;19247:155:30;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19247:155:30;19335:56;;;;:::i;:::-;19298:93;;19247:155;;;;;1075:17751:31;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1075:17751:31;;:::i;:::-;;;-1:-1:-1;1075:17751:31;530:19:33;1075:17751:31;;530:32:33;1075:17751:31;;-1:-1:-1;1075:17751:31;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;530:32:33;1075:17751:31;;;;;;;-1:-1:-1;;1075:17751:31;530:55:33;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;1075:17751:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6732:27;;;;;:::i;:::-;6773:8;;6769:175;;1075:17751;6769:175;1075:17751;;6801:22;;;6797:36;;6847:87;;;1075:17751;;;;;;-1:-1:-1;;1075:17751:31;;;;-1:-1:-1;;;;;1075:17751:31;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1075:17751:31;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1075:17751:31;;;;-1:-1:-1;;;;;1075:17751:31;;;;;:::i;:::-;;-1:-1:-1;1075:17751:31;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;3011:208:30;;:::i;1075:17751:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;16087:2;;;;;;:::i;:::-;6346:1103:30;16211:40:31;;;;:::i;:::-;6346:1103:30;;;;;;:::i;:::-;16352:18:31;;;-1:-1:-1;16380:25:31;1075:17751;;-1:-1:-1;;;;;1075:17751:31;;16415:110;;1075:17751;16571:15;;;;16542:270;16571:15;;;1075:17751;;;;;;;;;:::i;:::-;;;16542:270;;;1075:17751;16542:270;;;1075:17751;;16542:270;;1075:17751;16571:15;16542:270;;1075:17751;16542:270;;;1075:17751;;;16542:270;;;1075:17751;;16542:270;;;;1075:17751;;;;;;;;:::i;16415:110::-;16542:270;16487:27;;-1:-1:-1;16487:27:31;;;;;;;;;;;;;;;;16571:15;16487:27;;:::i;:::-;16455:59;16415:110;;;;;;1075:17751;;;;;;-1:-1:-1;;1075:17751:31;;;;;6099:41:22;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;1075:17751:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:22;;1075:17751:31;;;;5625:4:22;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;;;;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;4110:38:30;1075:17751:31;;;;;;:::i;:::-;4110:15:30;-1:-1:-1;;;;;4110:15:30;;:::i;:::-;1075:17751:31;;-1:-1:-1;1075:17751:31;;4110:38:30;;;;;;-1:-1:-1;;;4110:38:30;;1075:17751:31;4110:38:30;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;4110:38:30;-1:-1:-1;4110:38:30;;;1075:17751:31;4165:27:30;;-1:-1:-1;4165:27:30;1075:17751:31;;;;-1:-1:-1;4165:27:30;4110:38;;;;1075:17751:31;4110:38:30;1075:17751:31;4110:38:30;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;1075:17751:31:-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;6370:24:31;;;;;;1075:17751;6545:32;;;:::i;:::-;1075:17751;;;;;;;:::i;6396:3::-;6434:16;6415:36;6434:16;1075:17751;6434:16;;;;:::i;:::-;6415:36;:::i;:::-;;1075:17751;6355:13;;1075:17751;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;-1:-1:-1;17095:24:31;;;;;;1075:17751;17289:52;1075:17751;;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;17289:52;:::i;:::-;1075:17751;;;;;;;:::i;17121:3::-;17163:16;17140:56;17163:16;1075:17751;17163:16;;;;:::i;:::-;1075:17751;;;;;;;:::i;17140:56::-;;1075:17751;17080:13;;1075:17751;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;3924:10:35;1075:17751:31;;;;;3953:20:35;1075:17751:31;;;3953:20:35;4287:19;4189:46;;3945:108;4063:94;1075:17751:31;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:25:35;;3945:108;:::i;:::-;4063:94;;:::i;:::-;1075:17751:31;;;;4189:46:35;1075:17751:31;4196:15:35;1075:17751:31;4189:46:35;:::i;:::-;1075:17751:31;;;;-1:-1:-1;;;1075:17751:31;;;;;;;;;;4287:19:35;1075:17751:31;;;;;;;;3924:10:35;;4321:39;;1075:17751:31;;;;4321:39:35;1075:17751:31;;;;;;;-1:-1:-1;;1075:17751:31;;;;5179:96:35;1075:17751:31;;;;;:::i;:::-;4563:10:35;4517:20;4526:10;-1:-1:-1;;;;;1075:17751:31;3100:8:35;1075:17751:31;3100:8:35;1075:17751:31;;;3100:8:35;1075:17751:31;;;4517:20:35;4563:10;5007:14;1075:17751:31;;;4795:137:35;1075:17751:31;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;4547:26:35;4583:92;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;4591:9:35;;;;4583:92;:::i;:::-;1075:17751:31;;;;;;;;;;4768:15:35;4685:100;4768:15;4693:21;;;;4685:100;:::i;:::-;4768:15;;;-1:-1:-1;4816:36:35;4795:137;:::i;:::-;1075:17751:31;;;;;;;5007:14:35;1075:17751:31;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;4526:10:35;;5036:50;;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;;;;;1075:17751:31;;5131:38:35;;;;;:::i;:::-;4526:10;;5179:96;;:::i;1075:17751:31:-;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;29605:9:30;;29654:17;;29709:7;;;;:::i;:::-;29960;1075:17751:31;37766:67:30;29913:21;;;:::i;:::-;29890:20;;;1075:17751:31;38049:66:30;;37987:134;29960:7;1075:17751:31;30163:28:30;;1075:17751:31;30224:26:30;30458:89;30224:26;1075:17751:31;30224:26:30;;;;1075:17751:31;30224:49:30;30276:20;;;1075:17751:31;30224:72:30;30311:37;;;1075:17751:31;30224:124:30;30351:31;;;1075:17751:31;30224:158:30;30385:20;;;1075:17751:31;30224:181:30;30420:28;;;1075:17751:31;30224:224:30;30466:33;;30458:89;:::i;:::-;30684:130;30584:28;;14917:20;14700:28;;;1075:17751:31;14731:20:30;;;1075:17751:31;2045:4:30;14770:37;;;1075:17751:31;2045:4:30;14810:31;;;1075:17751:31;2045:4:30;14844:26;;;1075:17751:31;2045:4:30;14917:20;;1075:17751:31;;14530:424:30;;30584:28;30622:17;1075:17751:31;30622:17:30;;1075:17751:31;4111:38:36;30311:37:30;4125:23:36;;1075:17751:31;587:2:36;;;;4111:38;30684:130:30;;;;;:::i;:::-;1075:17751:31;30825:112:30;1075:17751:31;30833:54:30;1075:17751:31;;;-1:-1:-1;;;;;1075:17751:31;;;;29890:20:30;30873:13;;1075:17751:31;30833:54:30;;:::i;:::-;30825:112;:::i;:::-;30985:9;2045:4;;30976:41;30972:138;;30276:20;31183:9;-1:-1:-1;;;;;1075:17751:31;31206:17:30;31183:9;31206:17;;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;;;;31206:31:30;;:62;;;;1075:17751:31;31202:186:30;;;1075:17751:31;31446:9:30;;30351:31;30311:37;31446:9;31429:40;31430:32;31431:24;1075:17751:31;31446:9:30;;;;31431:24;;:::i;:::-;31430:32;:::i;:::-;31466:3;1075:17751:31;;;;31429:40:30;31503:23;30276:20;31503:23;;1075:17751:31;31605:9:30;2045:4;;31617:25;;1075:17751:31;2045:4:30;31575:18;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;31202:186:30;1075:17751:31;31321:56:30;;;;;;;30311:37;31321:56;31429:40;31430:32;31321:56;;31431:24;31321:56;30351:31;31321:56;;:::i;:::-;31284:93;;31202:186;;;;;;;;;;;;;31206:62;;;;;;30972:138;1075:17751:31;;;-1:-1:-1;;;31044:51:30;;1075:17751:31;31044:51:30;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;31044:51:30;;;;1075:17751:31;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1075:17751:31;;;;;;;;;;10730:5;1075:17751;;;;;;;:::o;:::-;;:::i;:::-;;11648:1;1075:17751;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;:::o;:::-;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;4205:114:30;1075:17751:31;;;4292:20:30;;;:4;:20;:4;;:20;;;;;;;-1:-1:-1;4292:20:30;;;4285:27;4205:114;:::o;4292:20::-;;;;;;;;;;;;;;;;;:::i;:::-;;;1075:17751:31;;;;;;;;:::i;4292:20:30:-;;;-1:-1:-1;4292:20:30;;1075:17751:31;-1:-1:-1;;1075:17751:31;;;;;;;:::o;11292:1667:30:-;;;;;;11534:14;;11582:20;;;;1075:17751:31;;;12084:19:30;;12080:703;;11292:1667;12846:9;;;;;2045:4;;12858:15;;;1075:17751:31;2045:4:30;12894:48;-1:-1:-1;32635:9:30;;32678:21;32743:14;;32790:27;;;;:::i;:::-;32852:17;1075:17751:31;32852:17:30;;;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;;;33002:15:30;33164:60;33002:15;;;1075:17751:31;2045:4:30;;33203:20;;;1075:17751:31;33164:60:30;;:::i;:::-;2045:4;;-1:-1:-1;;;;;;;1075:17751:31;;;33300:23:30;1075:17751:31;;;;;;;35313:14:30;1075:17751:31;;;;-1:-1:-1;;;;;1075:17751:31;;;;33296:1866:30;;35197:9;2045:4;;;;1075:17751:31;35313:14:30;;1075:17751:31;35345:23:30;;;;35341:802;35345:23;;;1075:17751:31;11534:14:30;1075:17751:31;:::i;:::-;35666:146:30;11534:14;35666:146;;11534:14;35666:146;35341:802;2045:4;35926:40;2045:4;;35926:40;-1:-1:-1;;;;;1075:17751:31;1904:8:35;1075:17751:31;1904:8:35;1075:17751:31;;;1904:8:35;1075:17751:31;;;;2045:4:30;1075:17751:31;;;1748:313:35;;35926:40:30;;12887:55;11292:1667;:::o;33296:1866::-;33412:25;;1075:17751:31;;33455:1693:30;;33296:1866;;;;;35313:14;33296:1866;;;;;33455:1693;33582:9;;;;;;;;1075:17751:31;;-1:-1:-1;1075:17751:31;:::i;:::-;33785:31:30;33712:9;33785:31;;1075:17751:31;;;33751:160:30;;;;;;1075:17751:31;;;-1:-1:-1;1075:17751:31;;;33751:160:30;1075:17751:31;;33751:160:30;;;;;;;1075:17751:31;33751:160:30;;1075:17751:31;33751:160:30;;;;;;:::i;:::-;;;;;;;;33455:1693;-1:-1:-1;33747:921:30;;34491:150;34570:41;;:::i;:::-;1075:17751:31;;34491:150:30;;;-1:-1:-1;;;34491:150:30;;33751:160;34491:150;;;:::i;33747:921::-;35313:14;33747:921;35061:68;33747:921;34734:9;2045:4;;35005:9;;2045:4;;1075:17751:31;;35061:68:30;;:::i;:::-;33455:1693;;;;;;;33751:160;;;-1:-1:-1;33751:160:30;;;:::i;:::-;;;:::i;:::-;;;;12080:703;-1:-1:-1;1075:17751:31;;;378:118:8;-1:-1:-1;;;;;1075:17751:31;;;;378:118:8;;;;12204:8:30;12200:573;;12080:703;;;;;;12200:573;2045:4;12667:41;;:::i;:::-;1075:17751:31;;12733:25:30;;;;;;378:118:8;12733:25:30;;;2045:4;;;;;;:::i;1075:17751:31:-;-1:-1:-1;;1075:17751:31;;;;;;;;:::o;:::-;-1:-1:-1;;1075:17751:31;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1075:17751:31;;;;:::o;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1075:17751:31;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;-1:-1:-1;1075:17751:31;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;3568:300:30:-;3770:91;3568:300;3699:54;;;:::i;:::-;4765:20;;:::i;:::-;1075:17751:31;2848:281:36;1075:17751:31;;;;;;:::i;:::-;2388:12:36;;;1075:17751:31;;2433:25:36;;;;2848:281;2433:82;;;2548:31;2563:15;;;;;;:::i;:::-;2548:31;;:::i;:::-;2616:23;;;;1075:17751:31;2678:25:36;;;1075:17751:31;2731:14:36;2786:44;2806:23;2731:14;;;1075:17751:31;2806:23:36;;;;;;:::i;:::-;2786:44;;:::i;:::-;1075:17751:31;;;2848:281:36;;;2388:12;2848:281;;;;1075:17751:31;;;;;;;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;1740:197:36;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2848:281:36;;1075:17751:31;;2848:281:36;;;;;;:::i;:::-;1075:17751:31;9583:47:36;;3770:91:30;3445:249:23;3326:374;3445:249;;;;;;;;;;;;;;;3326:374;;2433:82:36;2499:15;2848:281;2499:15;;;;;;:::i;:::-;3346:173:9;;2499:15:36;3346:173:9;;;;;2433:82:36;;;2763:210:30;;;;2878:10;2865:9;:23;:54;;;2763:210;3011:208;1075:17751:31;;;;;;;2865:54:30;2878:10;;2892:22;:27;2865:54;;3011:208;1075:17751:31;;-1:-1:-1;;;3163:49:30;;1075:17751:31;3163:49:30;;;1075:17751:31;;;;;;;;;;;;;;;;;;3163:49:30;1075:17751:31;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1075:17751:31;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15846:973::-;;;1075:17751;;:::i;:::-;;16571:15;6346:1103:30;1075:17751:31;;:::i;:::-;16087:2;;;;:::i;:::-;16211:40;;;;;:::i;:::-;6346:1103:30;;;;;;:::i;:::-;16352:18:31;;;16571:15;1075:17751;;;;;;;;;:::i;:::-;;;16542:270;;;1075:17751;16542:270;;;1075:17751;;16542:270;;1075:17751;16571:15;16542:270;;1075:17751;16542:270;;;1075:17751;;16542:270;;;1075:17751;;16542:270;;;1075:17751;15846:973;:::o;1075:17751::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1075:17751:31;;;;;;;;-1:-1:-1;;1075:17751:31;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;15007:1;1075:17751;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;14583:1165::-;;;;;;;;1075:17751;;:::i;:::-;14975:21;;;;;;;:::i;:::-;:33;;;14971:286;;15597:144;15288:13;;;;:::i;:::-;15539:40;1075:17751;;:::i;:::-;15526:2;;;:::i;:::-;15539:40;;:::i;:::-;15597:144;;;;:::i;14971:286::-;15145:12;;;;;;;;;:::i;:::-;1075:17751;;;;;;:::i;:::-;15007:1;1075:17751;;15007:1;15115:43;;;1075:17751;;15115:43;;1075:17751;;;;;;:::i;:::-;15007:1;1075:17751;;15007:1;15115:43;15176:29;;1075:17751;15007:1;1075:17751;15176:29;;1075:17751;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;15115:43;15031:215;;1075:17751;;15031:215;;1075:17751;15024:222;:::o;1075:17751::-;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1075:17751:31;;;;:::i;:::-;;;;;;;:::o;:::-;-1:-1:-1;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;2777:179:35:-;2919:30;1075:17751:31;-1:-1:-1;;;;;2867:37:35;2894:9;2867:37;-1:-1:-1;;;;;1075:17751:31;1904:8:35;1075:17751:31;1904:8:35;1075:17751:31;;;1904:8:35;1075:17751:31;;;;2045:4:30;1075:17751:31;;;1748:313:35;;2867:37;1075:17751:31;;;;;;;2919:30:35;;2777:179::o;1075:17751:31:-;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;2590:2;1075:17751;;;;2590:2;1075:17751;:::o;:::-;;;;;;1209:2:32;1075:17751:31;;;;;;;1209:2:32;1075:17751:31;;-1:-1:-1;;1075:17751:31;;:::o;:::-;;;;;;643:2:36;1075:17751:31;;;;;;;643:2:36;1075:17751:31;;-1:-1:-1;;1075:17751:31;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;-1:-1:-1;1075:17751:31:o;:::-;;;;;;;:::i;:::-;3084:14;1075:17751;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1781:1645::-;1075:17751;;:::i;:::-;;;;:::i;:::-;1962:6;;;;:::i;:::-;2115:47;;;;:::i;:::-;2173:98;;;;;;;;:::i;:::-;2315:42;1075:17751;2329:27;:17;;:27;1075:17751;-1:-1:-1;;;;;1075:17751:31;;;;2315:42;:::i;:::-;2411:17;2524:15;2397:39;2411:24;:17;;-1:-1:-1;;;;;1075:17751:31;;;;;2397:39;1075:17751;;;:::i;:::-;;2524:15;;;;;:::i;:::-;2571:69;2590:2;2571:21;;2590:2;;2603:23;2611:14;2668:22;2611:14;2595:32;2611:14;;:::i;:::-;2603:23;;:::i;:::-;1075:17751;;;;2668:22;1075:17751;-1:-1:-1;;;;;1075:17751:31;;2829:18;;;;1075:17751;2861:17;2983:23;2524:15;2861:17;;1075:17751;2983:23;;1075:17751;;;;:::i;:::-;;;;2805:212;;;1075:17751;2524:15;2805:212;;1075:17751;2983:23;2805:212;;1075:17751;2829:18;2805:212;;1075:17751;;;:::i;:::-;3112:45;;;;:93;;;2571:69;3108:211;;2571:69;1075:17751;;;:::i;:::-;;;;2805:212;3335:84;;1075:17751;2524:15;3335:84;;1075:17751;2983:23;3335:84;;1075:17751;2829:18;3335:84;;1075:17751;1781:1645;:::o;3108:211::-;3282:25;;;;;;:::i;:::-;3238:70;1075:17751;;:::i;:::-;-1:-1:-1;;;;;1075:17751:31;;;;;;3238:70;2805:212;3238:70;;1075:17751;3108:211;;;;3112:93;3161:44;2157:4;3161:44;;;3112:93;;2571:69;;;2668:22;-1:-1:-1;2668:22:31;:::i;1075:17751::-;;;;;:::o;:::-;;;;;;-1:-1:-1;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;31459:3:30;1075:17751:31;;;;;;31459:3:30;1075:17751:31;;;;;;;:::o;29246:2413:30:-;;;;-1:-1:-1;29605:9:30;;29654:17;;;29709:7;;;;;:::i;:::-;29960;37766:67;;29913:21;;;:::i;:::-;29890:20;;;1075:17751:31;38049:66:30;;37987:134;29960:7;37766:67;30163:28;;1075:17751:31;30224:26:30;30458:89;-1:-1:-1;1075:17751:31;30224:26:30;;;;1075:17751:31;30224:49:30;30276:20;;;1075:17751:31;30224:72:30;30311:37;;;1075:17751:31;30224:124:30;30351:31;;;1075:17751:31;30224:158:30;30385:20;;;1075:17751:31;30224:181:30;30420:28;;;1075:17751:31;30224:224:30;30466:33;;30458:89;:::i;:::-;30684:130;30584:28;;14917:20;14700:28;;;1075:17751:31;14731:20:30;;;1075:17751:31;2045:4:30;14770:37;;;1075:17751:31;2045:4:30;14810:31;;;1075:17751:31;2045:4:30;14844:26;;;1075:17751:31;2045:4:30;14917:20;;1075:17751:31;;14530:424:30;;30584:28;30622:17;37766:67;30622:17;;1075:17751:31;4111:38:36;30311:37:30;4125:23:36;;1075:17751:31;587:2:36;;;;4111:38;30684:130:30;;;-1:-1:-1;30684:130:30;:::i;:::-;1075:17751:31;30825:112:30;-1:-1:-1;30833:54:30;1075:17751:31;;;-1:-1:-1;;;;;1075:17751:31;;;;29890:20:30;30873:13;;1075:17751:31;30833:54:30;;:::i;30825:112::-;30985:9;2045:4;;30976:41;30972:138;;30276:20;31183:9;-1:-1:-1;;;;;1075:17751:31;31206:17:30;31183:9;31206:17;;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;;;;31206:31:30;;:62;;;29246:2413;31202:186;;29246:2413;30311:37;31446:9;;31429:40;31430:32;31431:24;30351:31;31446:9;;31431:24;;:::i;31429:40::-;31503:23;30276:20;31503:23;;1075:17751:31;31605:9:30;2045:4;;31617:25;;1075:17751:31;2045:4:30;31575:18;;1075:17751:31;29246:2413:30:o;31202:186::-;31321:56;;31431:24;31321:56;;;30351:31;30311:37;31321:56;31429:40;31430:32;31321:56;;;-1:-1:-1;31321:56:30;:::i;:::-;31284:93;;31202:186;;;;;;;;;;;31206:62;;16246:4:31;31206:62:30;;30972:138;37766:67;1075:17751:31;-1:-1:-1;;;31044:51:30;;;;-1:-1:-1;31044:51:30;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;11920:1264;;;;;;;;1075:17751;;:::i;:::-;12334:29;12373:2;12334:29;;;;;;:::i;:::-;:41;;;12330:294;;12956:221;1075:17751;12874:13;1075:17751;12737:70;1075:17751;;:::i;:::-;12707:19;;;;;:::i;:::-;12797:9;12737:70;;;:::i;12874:13::-;12925:12;;;:::i;:::-;12956:221;:::i;12330:294::-;12512:12;;;;;;;;;:::i;:::-;1075:17751;;;;;;:::i;:::-;12434:30;1075:17751;;12434:30;12482:43;;;1075:17751;;12482:43;;1075:17751;;;:::i;:::-;12434:30;1075:17751;;12434:30;12482:43;12543:29;;1075:17751;12434:30;1075:17751;12543:29;;1075:17751;;;:::i;:::-;;-1:-1:-1;1075:17751:31;;12482:43;12398:215;;1075:17751;;12398:215;;1075:17751;12391:222;:::o;1075:17751::-;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;;;;;:::o;7044:751::-;;;1075:17751;7171:19;-1:-1:-1;;;;;1075:17751:31;;;7210:92;;;;;;;1075:17751;;;;;;7210:92;;;;;;1075:17751;7210:92;;-1:-1:-1;;;;;7279:12:31;1075:17751;7210:92;;;;:::i;:::-;;;;;;;;7044:751;-1:-1:-1;7206:583:31;;7314:475;;;;:::i;:::-;1075:17751;7210:92;1075:17751;;7360:17;7356:164;;7560:28;7570:17;1075:17751;;7570:17;:::i;:::-;7560:28;:::i;:::-;7210:92;7641:3;1075:17751;;7622:17;;;;;7684:9;;;1075:17751;7684:9;;;:::i;:::-;1075:17751;;;;;7684:9;7664:29;7675:5;;;:::i;:::-;7664:29;1075:17751;7664:29;;;;:::i;:::-;;1075:17751;7607:13;;7622:17;;7741:37;7622:17;;;7741:37;1075:17751;;;7741:37;;;;;;:::i;:::-;7721:57;7206:583;7044:751::o;7356:164::-;7492:12;;;;:::i;:::-;1075:17751;;7477:28::o;7210:92::-;;;1075:17751;7210:92;;;:::i;:::-;;;;1468:65:35;1515:10;;;:::i;1107:452:8:-;1204:349;2045:4:30;1204:349:8;;;;1107:452;1204:349;;;;;;;;;;;;;;;;;;1107:452;:::o;1204:349::-;;2045:4:30;1204:349:8;;1075:17751:31;;-1:-1:-1;1075:17751:31;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3845:262:22:-;-1:-1:-1;;;;;3938:11:22;1075:17751:31;3929:4:22;3921:28;:63;;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;1075:17751:31;;4204:80:22;;;1075:17751:31;2079:95:22;1075:17751:31;;4226:11:22;1075:17751:31;2079:95:22;;1075:17751:31;4239:14:22;2079:95;;;1075:17751:31;4255:13:22;2079:95;;;1075:17751:31;3929:4:22;2079:95;;;1075:17751:31;2079:95:22;4204:80;;;;;;:::i;:::-;1075:17751:31;4194:91:22;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;7801:829:31;8000:1;8003:24;;;;;;7801:829;;;:::o;8029:3::-;1075:17751;;;;:::i;:::-;8124:16;;;;;:::i;:::-;8181:6;;;:::i;:::-;8202:44;;;;:::i;:::-;8321:15;;;;;;;;;:::i;:::-;:27;;;8317:74;;8485:48;8000:1;8515:17;;;;;;1075:17751;8485:48;;:::i;:::-;8565:27;;8515:17;8565:27;;;;;;;;;;:::i;:::-;;7988:13;1075:17751;7988:13;;8317:74;8368:8;;;;1075:17751;;;;;:::i;17354:332::-;17492:84;17354:332;17520:15;;;;;;:::i;:::-;1075:17751;17552:23;1075:17751;;;;;;:::i;:::-;17552:23;;;;;:::i;:::-;17492:84;;;;:::i;:::-;1075:17751;;17586:94;;17354:332;:::o;17586:94::-;1075:17751;;17520:15;1075:17751;17644:25;;;-1:-1:-1;;;17644:25:31;;-1:-1:-1;17644:25:31;;;1075:17751;17520:15;1075:17751;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;8636:3278::-;;;;1075:17751;;:::i;:::-;-1:-1:-1;9022:17:31;;;;9286:57;1075:17751;;;:::i;:::-;;9230:9;-1:-1:-1;9183:57:31;9230:9;9183:57;13684:37;9183:57;:::i;:::-;9333:9;1075:17751;;;9286:57;;;;;-1:-1:-1;;;9286:57:31;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;9286:12:31;1075:17751;9286:57;;;;;;;-1:-1:-1;;;9286:57:31;;;9018:1483;9254:89;;;;9423:14;;;9419:299;;9018:1483;;10528:21;9018:1483;;;;;;;10528:21;;:::i;:::-;10559:27;-1:-1:-1;;;;;11224:12:31;1075:17751;10597:1077;;10605:15;;;;;:::i;:::-;10604:35;;;10709:9;10721:14;;;:::i;:::-;-1:-1:-1;10705:323:31;;11060:15;;;;;;;;-1:-1:-1;11060:15:31;;11118:54;11059:21;11060:15;;11224:57;11060:15;;:::i;:::-;1075:17751;;;;11059:21;11118:54;;13684:37;11118:54;:::i;:::-;11271:9;;1075:17751;;;11224:57;;;;;;;-1:-1:-1;;;11224:57:31;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;11224:57:31;;;10597:1077;-1:-1:-1;11296:368:31;;;11423:19;;;11469:10;11423:19;11469:10;:::i;:::-;11497:21;11296:368;;10597:1077;;;;;;;;;11296:368;11639:10;;;;;;;;;:::i;:::-;11296:368;;;11224:57;;;;;;;;;-1:-1:-1;11224:57:31;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;10705:323;10885:12;;;;;;;;;;;;:::i;:::-;1075:17751;;;:::i;:::-;;-1:-1:-1;1075:17751:31;;-1:-1:-1;10855:43:31;;;1075:17751;;10855:43;;1075:17751;;;:::i;:::-;;;;10855:43;10947:48;;1075:17751;;10947:48;;1075:17751;;;:::i;:::-;10802:31;1075:17751;;10762:251;10855:43;10762:251;;1075:17751;;10762:251;;1075:17751;10755:258;:::o;10604:35::-;;;;;;;;;;11767:60;10604:35;;1075:17751;;:::i;:::-;;;;;;11767:60;;;1075:17751;;11767:60;1075:17751;11767:60;;1075:17751;;;:::i;9419:299::-;1075:17751;;;;;;;;;;9556:51;1075:17751;;:::i;:::-;-1:-1:-1;1075:17751:31;;;;;9556:51;;;1075:17751;;9286:57;;;;;;;;;-1:-1:-1;9286:57:31;;;;;;:::i;:::-;;;;;;9018:1483;10012:57;9863:9;;;-1:-1:-1;9909:57:31;9956:9;9909:57;13684:37;9909:57;:::i;10012:::-;;:12;;-1:-1:-1;;;;;10012:12:31;1075:17751;10012:57;;;;;;;-1:-1:-1;;;10012:57:31;;;9018:1483;9980:89;;;10092:24;9980:89;10107:9;;10092:24;;:::i;:::-;10196:14;;;10192:299;;9018:1483;;10528:21;9018:1483;;;;;;;;10012:57;;;;;;;;;;-1:-1:-1;10012:57:31;;;;;;:::i;:::-;;;;;;;;8636:3278;;;;1075:17751;;:::i;:::-;-1:-1:-1;9022:17:31;;;;9286:57;1075:17751;;;:::i;:::-;;9230:9;-1:-1:-1;9183:57:31;9230:9;9183:57;15574:4;9183:57;:::i;9286:::-;;:12;;-1:-1:-1;;;;;9286:12:31;1075:17751;9286:57;;;;;;;-1:-1:-1;;;9286:57:31;;;9018:1483;9254:89;;;;9423:14;;;9419:299;;9018:1483;;10528:21;9018:1483;;;;;;10528:21;;:::i;:::-;10559:27;-1:-1:-1;;;;;11224:12:31;1075:17751;10597:1077;;10605:15;;;;;:::i;:::-;10604:35;;;10709:9;10721:14;;;:::i;:::-;-1:-1:-1;10705:323:31;;11060:15;;;;;;;;-1:-1:-1;11060:15:31;;11118:54;11059:21;11060:15;;11224:57;11060:15;;:::i;11059:21::-;11118:54;;15574:4;11118:54;:::i;11224:57::-;;;;;;;;;;-1:-1:-1;;;11224:57:31;;;10597:1077;-1:-1:-1;11296:368:31;;;11423:19;;;11469:10;11423:19;11469:10;:::i;:::-;11497:21;11296:368;;10597:1077;;;;;;;;;11296:368;11639:10;;;;;;;;;:::i;:::-;11296:368;;;11224:57;;;;;;;;;-1:-1:-1;11224:57:31;;;;;;:::i;:::-;;;;;;9286;;;;;;;;;-1:-1:-1;9286:57:31;;;;;;:::i;:::-;;;;;;9018:1483;10012:57;9863:9;;;-1:-1:-1;9909:57:31;9956:9;9909:57;15574:4;9909:57;:::i;10012:::-;;:12;;-1:-1:-1;;;;;10012:12:31;1075:17751;10012:57;;;;;;;-1:-1:-1;;;10012:57:31;;;9018:1483;9980:89;;;10092:24;9980:89;10107:9;;10092:24;;:::i;:::-;10196:14;;;10192:299;;9018:1483;;10528:21;9018:1483;;;;;;;;10012:57;;;;;;;;;;-1:-1:-1;10012:57:31;;;;;;:::i;:::-;;;;;;;;8636:3278;;;;1075:17751;;:::i;:::-;-1:-1:-1;9022:17:31;;;;9286:57;1075:17751;;;:::i;:::-;;9230:9;-1:-1:-1;9183:57:31;9230:9;9183:57;12990:46;9183:57;:::i;9286:::-;;:12;;-1:-1:-1;;;;;9286:12:31;1075:17751;9286:57;;;;;;;-1:-1:-1;;;9286:57:31;;;9018:1483;9254:89;;;;9423:14;;;9419:299;;9018:1483;;10528:21;9018:1483;;;;;;10528:21;;:::i;:::-;10559:27;-1:-1:-1;;;;;11224:12:31;1075:17751;10597:1077;;10605:15;;;;;:::i;:::-;10604:35;;;10709:9;10721:14;;;:::i;:::-;-1:-1:-1;10705:323:31;;11060:15;;;;;;;;-1:-1:-1;11060:15:31;;11118:54;11059:21;11060:15;;11224:57;11060:15;;:::i;11059:21::-;11118:54;;12990:46;11118:54;:::i;11224:57::-;;;;;;;;;;-1:-1:-1;;;11224:57:31;;;10597:1077;-1:-1:-1;11296:368:31;;;11423:19;;;11469:10;11423:19;11469:10;:::i;:::-;11497:21;11296:368;;10597:1077;;;;;;;;;11296:368;11639:10;;;;;;;;;:::i;:::-;11296:368;;;11224:57;;;;;;;;;-1:-1:-1;11224:57:31;;;;;;:::i;:::-;;;;;;9286;;;;;;;;;-1:-1:-1;9286:57:31;;;;;;:::i;:::-;;;;;;9018:1483;10012:57;9863:9;;;-1:-1:-1;9909:57:31;9956:9;9909:57;12990:46;9909:57;:::i;10012:::-;;:12;;-1:-1:-1;;;;;10012:12:31;1075:17751;10012:57;;;;;;;-1:-1:-1;;;10012:57:31;;;9018:1483;9980:89;;;10092:24;9980:89;10107:9;;10092:24;;:::i;:::-;10196:14;;;10192:299;;9018:1483;;10528:21;9018:1483;;;;;;;;10012:57;;;;;;;;;;-1:-1:-1;10012:57:31;;;;;;:::i;:::-;;;;;;;;643:2:36;;;;;:::o;:::-;;;;;1075:17751:31;;643:2:36;;;;;;;:::o;:::-;-1:-1:-1;;;;;643:2:36;;;;1075:17751:31;643:2:36;1075:17751:31;;643:2:36;;13149:1177:30;13707:23;13149:1177;13304:30;13321:13;;;:::i;:::-;-1:-1:-1;;;;;1075:17751:31;;;;13304:30:30;13360:12;;;1075:17751:31;13360:12:30;13344:13;;1075:17751:31;13437:53:30;13466:23;;;1075:17751:31;3142:162:36;1075:17751:31;587:2:36;;;1075:17751:31;;3142:162:36;;13437:53:30;13413:20;;;1075:17751:31;13383:28:30;;;1075:17751:31;13529:25:30;;;1075:17751:31;13500:26:30;;;1075:17751:31;13619:44:30;13500:26;13648:14;;1075:17751:31;3142:162:36;1075:17751:31;587:2:36;;;1075:17751:31;;3142:162:36;;13619:44:30;13595:20;;;1075:17751:31;13565:28:30;;;1075:17751:31;13707:23:30;;;;;:::i;:::-;13744:27;;;;13740:580;;13149:1177;;;:::o;13740:580::-;14115:62;13812:65;14280:29;13812:65;13787:181;13812:65;643:2:36;13707:23:30;13812:65;;;13787:181;:::i;:::-;14115:62;:::i;:::-;13529:25;14064:31;;1075:17751:31;13466:23:30;14025:37;;1075:17751:31;14064:31:30;14191:75;14064:31;-1:-1:-1;;;;;1075:17751:31;;14199:23:30;;14191:75;:::i;:::-;14280:17;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;;;21859:943:30;;;;;22124:9;22177:14;;;22315:48;-1:-1:-1;;;;;22225:17:30;;;1075:17751:31;;22282:14:30;;;1075:17751:31;22315:48:30;;:::i;:::-;22314:49;22310:146;;22502:37;;22581:49;22502:37;;1075:17751:31;22581:49:30;;;:::i;:::-;22553:77;;22657:9;;2045:4;;22648:43;22644:142;;21859:943;:::o;22644:142::-;22282:14;1075:17751:31;;-1:-1:-1;;;22718:53:30;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;31044:51:30;22310:146;22390:51;1075:17751:31;22282:14:30;1075:17751:31;22390:51:30;-1:-1:-1;;;22390:51:30;;;;;1075:17751:31;22282:14:30;1075:17751:31;;;;;;;;;;;;;;22390:51:30;1075:17751:31;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1075:17751:31;;;:::o;875:503:32:-;1021:15;;;;;;:::i;:::-;1051:28;;1050:29;1051:28;;;;:::i;:::-;1050:29;;1075:17751:31;1050:29:32;1046:68;;1162:13;1142:34;1162:13;;:::i;:::-;1142:34;:::i;:::-;1190:21;1209:2;1190:21;;1209:2;;1075:17751:31;;1021:15:32;1075:17751:31;1244:26:32;;;;;;;;1075:17751:31;;;;;;;;;;;;;1186:186:32;1346:13;1319:41;1346:13;;;;:::i;:::-;1075:17751:31;;1319:41:32;1021:15;1075:17751:31;1319:41:32;;;;;;;;;:::i;1046:68::-;1095:8;;;1075:17751:31;1095:8:32;:::o;1075:17751:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;6346:1103:30:-;;6605:17;;;1075:17751:31;;;;;6649:9:30;6717:20;;;;1075:17751:31;6788:15:30;;6717:20;6788:15;;;;:::i;:::-;1075:17751:31;6847:144:30;;;;;6346:1103;1075:17751:31;;-1:-1:-1;;;7008:51:30;7021:38;;1075:17751:31;;7108:74:30;7239:53;1075:17751:31;;;7108:74:30;1075:17751:31;;7108:74:30;;;-1:-1:-1;;;6605:17:30;7108:74;;;;;;;:::i;:::-;7239:53;:::i;7004:429::-;7370:48;1075:17751:31;;;;;;;;:::i;6847:144:30:-;-1:-1:-1;6847:144:30;;;;25653:1463;25944:34;-1:-1:-1;;;;;25653:1463:30;25944:34;:::i;:::-;1075:17751:31;;;;25988:111:30;;26108:222;;26650:43;;-1:-1:-1;;;;;26650:43:30;;:::i;:::-;1075:17751:31;;;;26703:105:30;;26817:293;;25653:1463;:::o;26817:293::-;26855:111;;1075:17751:31;;-1:-1:-1;;;27045:54:30;;;;-1:-1:-1;27045:54:30;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;26855:111:30;1075:17751:31;;-1:-1:-1;;;26898:53:30;;;;-1:-1:-1;26898:53:30;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;26703:105:30;1075:17751:31;;-1:-1:-1;;;26756:41:30;;;;-1:-1:-1;26756:41:30;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;26108:222:30;26146:109;;1075:17751:31;;-1:-1:-1;;;26275:44:30;;;;-1:-1:-1;26275:44:30;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;26146:109:30;1075:17751:31;;-1:-1:-1;;;26189:51:30;;;;-1:-1:-1;26189:51:30;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;25988:111:30;1075:17751:31;;-1:-1:-1;;;26047:41:30;;;;-1:-1:-1;26047:41:30;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;1043:256:35;;-1:-1:-1;;;;;1075:17751:31;;:::i;:::-;;;1178:8:35;1075:17751:31;1178:8:35;1075:17751:31;;;1215:17:35;1075:17751:31;1178:8:35;1075:17751:31;1215:17:35;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;1242:20:35;;1075:17751:31;1043:256:35:o;17648:1091:30:-;;;18421:83;17648:1091;17975:14;;1075:17751:31;-1:-1:-1;;;;;18133:17:30;1075:17751:31;;;;18087:11:30;;;;;;;;:::i;:::-;;;-1:-1:-1;18087:11:30;:::i;:::-;18133:17;1075:17751:31;;18164:31:30;-1:-1:-1;18213:23:30;;18209:182;;;;17648:1091;-1:-1:-1;18421:83:30;:::i;:::-;18518:205;;;17648:1091;:::o;18518:205::-;-1:-1:-1;18570:45:30;;;:::i;:::-;18569:46;18565:144;;17648:1091::o;18565:144::-;18087:11;1075:17751:31;-1:-1:-1;;;18646:44:30;;;;-1:-1:-1;18646:44:30;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;18209:182:30;1430:17:35;;;;-1:-1:-1;;;;;1075:17751:31;3100:8:35;1075:17751:31;3100:8:35;1075:17751:31;;;3100:8:35;1075:17751:31;;;1430:17:35;1075:17751:31;18327:21:30;;;;:49;-1:-1:-1;18327:49:30;18209:182;;;18327:49;-1:-1:-1;2045:4:30;18327:49;;17648:1091;;;;;18421:83;17648:1091;17975:14;;1075:17751:31;-1:-1:-1;;;;;18133:17:30;1075:17751:31;;;;18087:11:30;;;;;;;;:::i;:::-;;;;;:::i;:::-;18133:17;1075:17751:31;;18164:31:30;-1:-1:-1;18213:23:30;;18209:182;;;;17648:1091;18421:83;;:::i;:::-;18518:205;;;17648:1091;;;:::o;18518:205::-;18570:45;;;:::i;:::-;18569:46;18565:144;;17648:1091;:::o;18565:144::-;18087:11;1075:17751:31;;-1:-1:-1;;;18646:44:30;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;31044:51:30;18209:182;1430:17:35;;;;-1:-1:-1;;;;;1075:17751:31;3100:8:35;1075:17751:31;3100:8:35;1075:17751:31;;;3100:8:35;1075:17751:31;;;1430:17:35;1075:17751:31;18327:21:30;;;;;;:49;-1:-1:-1;18327:49:30;18209:182;;;18327:49;2045:4;;18327:49;;999:241:33;-1:-1:-1;;;;;1075:17751:31;-1:-1:-1;1075:17751:31;1192:19:33;1075:17751:31;;;1192:32:33;1075:17751:31;1136:2:33;1075:17751:31;1136:2:33;-1:-1:-1;1075:17751:31;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;1192:32:33;1075:17751:31;;;1192:34:33;;;;:::i;:::-;1075:17751:31;;;1192:41:33;999:241;:::o;36415:340:30:-;36634:28;36569:20;;;1075:17751:31;36634:28:30;;1075:17751:31;36724:13:30;2045:4;5790:5:9;;;:13;:5;;;:13;36415:340:30;:::o;5790:13:9:-;;;36415:340:30;:::o;38127:421::-;;2292:5;2045:4;;38270:43;;;38266:90;;38491:3;2045:4;2178:2;2045:4;;1075:17751:31;;38127:421:30;:::o;38266:90::-;38333:8;;1075:17751:31;38333:8:30;:::o;3512:737:31:-;;;1075:17751;;;;;:::i;:::-;3764:15;1075:17751;3764:15;;-1:-1:-1;;;1075:17751:31;3764:15;;;;:::i;:::-;3831:16;3857:148;1075:17751;3857:148;;;;3512:737;-1:-1:-1;1075:17751:31;4018:51;4031:38;;1075:17751;4102:67;1075:17751;4102:67;1075:17751;;4102:67;;;-1:-1:-1;;;4102:67:31;;;;;;;;:::i;4014:229::-;1075:17751;4217:15;;;;;:::i;:::-;1075:17751;;;:::i;3857:148::-;;;;;;;18083:741;;;;;18274:20;:47;;;;18083:741;18270:183;;;18493:2;18466:29;;;18462:310;;18083:741;1075:17751;;;;:::i;18462:310::-;18493:2;1075:17751;;;;;;18589:21;:26;18585:177;;18462:310;;;;18585:177;1075:17751;;;;;;:::i;:::-;;;;;;;;;18709:38;:::o;18270:183::-;1075:17751;;;;;;;;:::i;:::-;;;;;;;;;18406:36;:::o;18274:47::-;18298:18;;;:23;18274:47;;;1075:17751;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;-1:-1:-1;1075:17751:31;;;:::o;:::-;;;;-1:-1:-1;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1075:17751:31;;;:::o;:::-;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;1075:17751:31;;;;;;;;;;;;;;;;;:::i;4255:1833::-;;1075:17751;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;4546:46;4538:54;;4534:837;;1075:17751;;;:::i;:::-;5393:37;5385:45;;5381:379;;1075:17751;;;5782:29;1075:17751;;:::i;:::-;5774:37;5770:279;;1075:17751;;-1:-1:-1;;;6059:22:31;;1075:17751;6059:22;;;1075:17751;;;;;;;;;;;;;31044:51:30;5770:279:31;5875:54;5950:88;5911:17;;5950:88;5911:17;;1075:17751;5875:54;;:::i;:::-;1075:17751;;;;;5950:88;;;1075:17751;5911:17;5950:88;;;;;;;:::i;5381:379::-;4289:23:36;;;1075:17751:31;5552:19;4276:37:36;4289:23;5670:79:31;4289:23:36;;1075:17751:31;;;3546:118:36;;4276:37;5552:19:31;1075:17751;;;;5552:19;1075:17751;;5551:45;4289:23:36;5611:19:31;;1075:17751;5670:79;1075:17751;;5670:79;;;1075:17751;5670:79;;;;;;;;:::i;4534:837::-;4716:29;5282:78;4716:29;;-1:-1:-1;;4716:29:31;5161:99;4716:29;5282:78;4716:29;;5161:99;4671:75;4716:29;;;;:::i;:::-;4671:75;;:::i;:::-;4795:26;;;;1075:17751;4839:19;4716:29;4839:19;;;643:2:36;4839:19:31;;1075:17751;4839:67;4835:192;;4534:837;1075:17751;;;;;;;;;;;-1:-1:-1;;1075:17751:31;;;;5161:99;;;;;:::i;:::-;;1075:17751;;5161:99;;;;;;:::i;:::-;5123:137;1075:17751;;5282:78;;;1075:17751;5161:99;5282:78;;;;;;;:::i;4835:192::-;1075:17751;4942:29;;;:70;:29;;;;:::i;:::-;:70;;;:::i;1075:17751::-;4835:192;;;;;4793:516:36;;;1075:17751:31;525:2:36;1075:17751:31;;;;;;;587:2:36;1075:17751:31;;;525:2:36;1075:17751:31;;587:2:36;1075:17751:31;643:2:36;1075:17751:31;;;;;;;;;587:2:36;;;;;;1075:17751:31;587:2:36;;;;4793:516::o;2332:405:35:-;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;2574:23:35;;;2570:74;;2045:4:30;1075:17751:31;;2716:4:35;2332:405;:::o;1075:17751:31:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22808:2472:30:-;;;;-1:-1:-1;37766:67:30;;;23178:17;23122:91;23178:17;23122:91;23178:17;;;1075:17751:31;37766:67:30;23197:14;;1075:17751:31;23122:91:30;23178:17;23122:91;;;;;;;;;;:::i;:::-;;1075:17751:31;;23122:91:30;;;;;;:::i;:::-;23243:14;:24;;23317:44;1075:17751:31;23243:24:30;;;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;;;23317:44:30;;1075:17751:31;23476:1143:30;;;;;;;;;-1:-1:-1;23476:1143:30;;;;;;37766:67;23476:1143;;;;;24657:8;;24653:141;;37766:67;;24955:2;2045:4;1075:17751:31;;;;24932:2:30;2045:4;24987:19;;;;;:52;;;22808:2472;24983:239;;;-1:-1:-1;1075:17751:31;;;;-1:-1:-1;;1075:17751:31;6114:413:9;;;1075:17751:31:o;24983:239:30:-;25148:41;;:::i;:::-;1075:17751:31;25066:141:30;37766:67;1075:17751:31;25066:141:30;;;-1:-1:-1;;;25066:141:30;;23122:91;25066:141;;;:::i;24987:52::-;25010:29;;;;;24987:52;;;24653:141;24737:41;;;:::i;:::-;1075:17751:31;24692:87:30;37766:67;1075:17751:31;24692:87:30;;;-1:-1:-1;;;24692:87:30;;23122:91;24692:87;;;:::i;1691:551:32:-;;1805:1;-1:-1:-1;1783:62:32;;1994:95;-1:-1:-1;;1075:17751:31;;2186:49:32;;1691:551::o;1783:62::-;1822:12;1075:17751:31;1822:12:32;:::o;2551:605::-;2667:113;-1:-1:-1;2667:113:32;;;-1:-1:-1;2667:113:32;1075:17751:31;;;;;2918:36:32;2914:185;;3131:16;1075:17751:31;;;;;;;2551:605:32;:::o;2914:185::-;2978:18;-1:-1:-1;;;;;2978:18:32;;:22;428:8;;3056:32;-1:-1:-1;3056:32:32;1075:17751:31;3056:32:32;1075:17751:31;;-1:-1:-1;3056:32:32;428:8;;-1:-1:-1;428:8:32;1075:17751:31;428:8:32;1075:17751:31;;-1:-1:-1;428:8:32;3358:267:19;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;1075:17751:31;;;-1:-1:-1;6126:13:22;1390:66:19;;;;;;;;;;;;3477:142;1390:66;;;;;;;1075:17751:31;;;1390:66:19;;1075:17751:31;;;1390:66:19;;;;;;;;;;;;;;;;;;;:::i;:::-;6126:13:22;1390:66:19;;;;;-1:-1:-1;1390:66:19;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:19;;;;;;;;;;-1:-1:-1;;1390:66:19;;;-1:-1:-1;1390:66:19;;;;;;;;-1:-1:-1;1390:66:19;;;;-1:-1:-1;;;;1390:66:19;;;;;-1:-1:-1;1390:66:19;;;;;;;;3358:267;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;1075:17751:31;;;-1:-1:-1;6584:16:22;1390:66:19;;;;;;;;;;;;3477:142;1390:66;;;;;;;1075:17751:31;;;1390:66:19;;1075:17751:31;;;1390:66:19;;;;;;;;;;;;;;;;;;:::i;:::-;6584:16:22;1390:66:19;;;;;-1:-1:-1;1390:66:19;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:19;;;;;;;;;;;;;;;;27450:1129:30;27647:19;;27643:83;;27764:36;;;:::i;:::-;27918:15;;;1075:17751:31;;;2356:14:30;27918:44;;;;:92;;27450:1129;27914:621;;;2428:14;1075:17751:31;28133:15:30;;;1075:17751:31;;;;;;28133:43:30;28211:12;:30;:65;;;;;27914:621;28190:86;28290:19;1075:17751:31;28305:4:30;27914:621;;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;;;27450:1129:30;:::o;28211:65::-;2428:14;28051:43;;;28211:12;28245:31;;28211:65;;;27914:621;28419:33;1075:17751:31;28437:15:30;;;1075:17751:31;;;;;;;;;;28419:33:30;:15;:33;:71;;;;;27914:621;28398:92;28504:20;1075:17751:31;27665:1:30;27914:621;;;28419:71;1075:17751:31;;;-1:-1:-1;28419:15:30;28456:34;;28419:71;;;27918:92;27966:15;2356:14;27966:44;1075:17751:31;27966:15:30;;;1075:17751:31;;;;;27966:44:30;;;27918:92;;27643:83;27682:33;27665:1;27682:33;27665:1;27682:33;27665:1;27682:33;:::o;15208:1953::-;;;;15358:20;15354:1801;;15208:1953;;;;;:::o;15354:1801::-;15411:14;;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;15450:43:30;;;;;:::i;:::-;15446:667;;16148:2;16130:20;;16126:110;;16267:32;16275:23;16283:14;;;;:::i;16267:32::-;16317:18;;;16313:231;;16575:80;:15;:80;:15;:28;:15;;:::i;:::-;-1:-1:-1;;;;;1075:17751:31;;;16575:28:30;16609:14;15377:1;16609:35;:14;;:35;1075:17751:31;;16609:35:30;1075:17751:31;16575:80:30;;;;;;-1:-1:-1;;;16575:80:30;;;;;;:::i;:::-;;;;;;;;;15377:1;16575:80;;;15354:1801;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;16673:21:30;;;16669:115;;-1:-1:-1;;;;;1075:17751:31;16801:17:30;;;16797:116;;16930:19;:24;16926:123;;17083:17;17067:77;17083:17;1075:17751:31;;16575:80:30;17083:17;;1075:17751:31;17119:14:30;;:24;1075:17751:31;-1:-1:-1;;;;;1075:17751:31;;;;16609:35:30;1075:17751:31;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;;17067:77:30;15354:1801;;;;;;16926:123;16609:35;1075:17751:31;;-1:-1:-1;;;16981:53:30;;16575:80;16981:53;;1075:17751:31;;;;;;;;;;;;;;;;;;;;31044:51:30;16797:116;16845:53;1075:17751:31;16609:35:30;1075:17751:31;16845:53:30;;;-1:-1:-1;;;16845:53:30;;16575:80;16845:53;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;16669:115:30;16721:48;1075:17751:31;16609:35:30;1075:17751:31;16721:48:30;;;-1:-1:-1;;;16721:48:30;;16575:80;16721:48;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;16575:80:30;;;;;;;;;;;;;;:::i;:::-;;;;16313:231;-1:-1:-1;;;16470:17:30;;;;1075:17751:31;;;-1:-1:-1;;;;;1075:17751:31;;;;;;;;;;;;16440:65:30;;;16523:7::o;16126:110::-;16177:44;1075:17751:31;;;16177:44:30;;;-1:-1:-1;;;16177:44:30;;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;15446:667:30;15517:20;;15535:2;15517:20;;15513:562;;16092:7;;;;:::o;15513:562::-;15870:13;15786:33;:15;;:::i;:33::-;15825:14;;:35;:14;;:35;1075:17751:31;15870:13:30;;:::i;:::-;15786:98;;;;;;;;1075:17751:31;15377:1:30;1075:17751:31;;15825:35:30;1075:17751:31;15786:98:30;;;;;;1075:17751:31;15786:98:30;;;;;;;:::i;:::-;;;;;;;;;;15513:562;15925:28;-1:-1:-1;;;;;15925:28:30;16020:17;15925:28;;;:::i;:::-;16020:17;;1075:17751:31;;;;;15980:76:30;;15377:1;15980:76;;15513:562;;;;;;15786:98;;;15377:1;15786:98;;;:::i;:::-;;;;1075:17751:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19861:1306:30:-;;;20398:17;19861:1306;;;;20353:85;20197:14;19861:1306;20353:85;20197:21;:14;;-1:-1:-1;;;;;1075:17751:31;;;;;20197:21:30;20228:12;37766:67;;20398:17;;;;1075:17751:31;20353:85:30;;;;;;;;;;;:::i;:::-;;1075:17751:31;;20353:85:30;;;;;;:::i;:::-;20452:362;;;;;;20197:14;20452:362;;20398:17;20452:362;;;;19861:1306;38049:66;;20879:8;20875:286;;19861:1306;;:::o;20875:286::-;20907:18;;;37766:67;1075:17751:31;;-1:-1:-1;;;20957:46:30;;20353:85;20957:46;;1075:17751:31;;;;;;;;;;;;;;;;;;;;31044:51:30;20903:248;21094:41;;:::i;:::-;1075:17751:31;21049:87:30;37766:67;1075:17751:31;21049:87:30;;;-1:-1:-1;;;21049:87:30;;20353:85;21049:87;;;:::i;20452:362::-;20197:14;;-1:-1:-1;20452:362:30;;3268:253:9;3346:173;;;;;;;3268:253;:::o;5072:508::-;5183:34;;;;:::i;:::-;5227:21;5223:322;;3346:173;;;;;;;;5072:508;:::o;5223:322::-;4297:207;;;2045:4:30;;-1:-1:-1;;2045:4:30;;;4297:207:9;;-1:-1:-1;;;4297:207:9;;;-1:-1:-1;;4297:207:9;;-1:-1:-1;;4297:207:9;;;;5378:150::o;2078:378:19:-;2661:4;2625:40;;2679:11;2688:2;2679:11;;2675:69;;1075:17751:31;;;;;;;:::i;:::-;2311:2:19;1075:17751:31;;;;;;;;;;;2324:106:19;;;2078:378;:::o;2675:69::-;2713:20;-1:-1:-1;2713:20:19;;-1:-1:-1;2713:20:19;1521:416:9;1075:17751:31;;:::i;:::-;;;;1733:3:9;1075:17751:31;;1747:15:9;;1743:67;;1521:416;1075:17751:31;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1075:17751:31;;;;1861:8:9;1075:17751:31;1884:50:9;;;1075:17751:31;;;1884:50:9;;1075:17751:31;1521:416:9;:::o;1743:67::-;1774:29;1075:17751:31;1743:67:9;;915:44:10;;;;;1075:17751:31;;;915:44:10;;;;;;;;:::o;:::-;1075:17751:31;915:44:10;;;;;;;;;1075:17751:31;915:44:10;;;:::o;5443:954::-;2045:4:30;5680:47:10;;5676:94;;-1:-1:-1;;;667:27:10;5807:67;2045:4:30;-1:-1:-1;;2045:4:30;;;5807:67:10;;:::i;:::-;5800:75;915:44;667:27;;;915:44;611:1;915:44;;;;5443:954;667:27;;;5893:30;5889:77;;6007:69;6014:61;6021:53;6051:20;5979:97;6051:20;2045:4:30;;;;6021:53:10;;:::i;:::-;6014:61;;:::i;:::-;915:44;;;;6007:69;915:44;;;;5979:97;2045:4:30;-1:-1:-1;;2045:4:30;;6095:67:10;;6091:252;;6356:24;5443:954;:::o;6091:252::-;6266:62;1075:17751:31;6266:62:10;;1075:17751:31;;;;;6266:62:10;915:44;;;;;;611:1;915:44;;;1075:17751:31;915:44:10;;;;;", "linkReferences": {}, "immutableReferences": { "2569": [{ "start": 12007, "length": 32 }], "2571": [{ "start": 12196, "length": 32 }], "2573": [{ "start": 11960, "length": 32 }], "2575": [{ "start": 12086, "length": 32 }], "2577": [{ "start": 12124, "length": 32 }], "2580": [{ "start": 4401, "length": 32 }], "2583": [{ "start": 4442, "length": 32 }], "8598": [{ "start": 11512, "length": 32 }, { "start": 12609, "length": 32 }, { "start": 12699, "length": 32 }, { "start": 13187, "length": 32 }, { "start": 13367, "length": 32 }, { "start": 13456, "length": 32 }, { "start": 13728, "length": 32 }, { "start": 13908, "length": 32 }, { "start": 13997, "length": 32 }, { "start": 14269, "length": 32 }] } }, "methodIdentifiers": { "_paymasterValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))": "21e60b37", "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": "c579f76b", "addStake(uint32)": "0396cb60", "balanceOf(address)": "70a08231", "binarySearchCallGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)": "acbe911e", "binarySearchPaymasterVerificationGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)": "d72f2593", "binarySearchVerificationGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)": "212eccc6", "delegateAndRevert(address,bytes)": "850aaf62", "depositTo(address)": "b760faf9", "eip712Domain()": "84b0196e", "getCurrentUserOpHash()": "b0a398d1", "getDepositInfo(address)": "5287ce12", "getDomainSeparatorV4()": "13c65a6e", "getNonce(address,uint192)": "35567e1a", "getPackedUserOpTypeHash()": "154e58dc", "getSenderAddress(bytes)": "9b249f69", "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "22cdde4c", "handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)": "dbed18e0", "handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)": "765e827f", "incrementNonce(uint192)": "0bd28e3b", "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": "0da82661", "nonceSequenceNumber(address,uint192)": "1b2e01b8", "senderCreator()": "09ccb880", "simulateCall(address,bytes,uint256)": "f7e426e8", "simulateCallAndRevert(address,bytes,uint256)": "44403473", "simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "af324943", "simulateHandleOpSingle((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": "7da0c462", "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "c3bce009", "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "aec321fb", "supportsInterface(bytes4)": "01ffc9a7", "unlockStake()": "bb9fe6bf", "withdrawStake(address)": "c23a5cea", "withdrawTo(address,uint256)": "205c2878" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"CallPhaseReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ret\",\"type\":\"bytes\"}],\"name\":\"DelegateAndRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"DepositWithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Eip7702SenderNotDelegate\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Eip7702SenderWithoutCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"inner\",\"type\":\"bytes\"}],\"name\":\"FailedOpWithRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"InvalidPaymaster\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"paymasterAndDataLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPaymasterData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pmSignatureLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPaymasterSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentStake\",\"type\":\"uint256\"}],\"name\":\"InvalidStake\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newUnstakeDelaySec\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentUnstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"InvalidUnstakeDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"}],\"name\":\"NotStaked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderAddressResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureValidationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"name\":\"StakeNotUnlocked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"StakeWithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"name\":\"WithdrawalNotDue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingGas\",\"type\":\"uint256\"}],\"name\":\"innerCallResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"AccountDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"EIP7702AccountInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"unusedFactory\",\"type\":\"address\"}],\"name\":\"IgnoredInitCode\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"PostOpRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureAggregatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"StakeUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasUsed\",\"type\":\"uint256\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"UserOperationPrefundTooLow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_paymasterValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"validatePaymasterPrepayment\",\"type\":\"bool\"}],\"name\":\"_validatePrepayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeparatorV4\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPackedUserOpTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"}],\"name\":\"getSenderAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"contract IAggregator\",\"name\":\"aggregator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.UserOpsPerAggregator[]\",\"name\":\"opsPerAggregator\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"handleAggregatedOps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"handleOps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preGas\",\"type\":\"uint256\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"senderCreator\",\"outputs\":[{\"internalType\":\"contract ISenderCreator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCallAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"name\":\"simulateHandleOpSingle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity.\"}}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"details\":\"note that inner is truncated to 2048 bytes\",\"params\":{\"inner\":\"- data from inner cought revert reason\",\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. see FailedOp(uint256,string), above\"}}],\"SignatureValidationFailed(address)\":[{\"params\":{\"aggregator\":\"The aggregator that failed to verify the signature\"}}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"params\":{\"factory\":\"- The factory used to deploy this account (in the initCode)\",\"paymaster\":\"- The paymaster used by this UserOp\",\"sender\":\"- The account that is deployed\",\"userOpHash\":\"- The userOp that deployed this account. UserOperationEvent will follow.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"EIP7702AccountInitialized(bytes32,address,address)\":{\"params\":{\"sender\":\"- The account that was supposed to be deployed.\",\"userOpHash\":\"- The current userOp. UserOperationEvent will follow.\"}},\"IgnoredInitCode(bytes32,address,address)\":{\"params\":{\"sender\":\"- The account that was supposed to be deployed.\",\"unusedFactory\":\"- The factory contract that was not used but was specified in the 'initCode'.\",\"userOpHash\":\"- The current userOp. UserOperationEvent will follow.\"}},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"params\":{\"opIndex\":\"- The index of this userOp into the \\\"opInfos\\\" array.\",\"outOpInfo\":\"- The empty unpacked in-memory UserOperation structure that will be filled in here.\",\"userOp\":\"- The packed calldata UserOperation structure to validate.\"},\"returns\":{\"paymasterValidationData\":\"- The paymaster's validationData.\",\"validationData\":\" - The account's validationData.\"}},\"addStake(uint32)\":{\"params\":{\"_unstakeDelaySec\":\"- The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"delegateAndRevert(address,bytes)\":{\"details\":\"calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.\",\"params\":{\"data\":\"data to pass to target in a delegatecall\",\"target\":\"a target contract to make a delegatecall from entrypoint\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getSenderAddress(bytes)\":{\"params\":{\"initCode\":\"- The constructor code to be passed into the UserOperation.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)\":{\"params\":{\"beneficiary\":\"- The address to receive the fees.\",\"opsPerAggregator\":\"- The operations to execute, grouped by aggregator (or address(0) for no-aggregator accounts).\"}},\"handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)\":{\"params\":{\"beneficiary\":\"- The address to receive the fees.\",\"ops\":\"- The operations to execute.\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"params\":{\"callData\":\"- The callData to execute.\",\"context\":\"- The context bytes.\",\"opInfo\":\"- The UserOpInfo struct.\"},\"returns\":{\"actualGasCost\":\"- the actual cost in eth this UserOperation paid for gas\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of handleOps, to identify the offending op. Should be caught in off-chain handleOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts. NOTE: If simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"EIP7702AccountInitialized(bytes32,address,address)\":{\"notice\":\"Account \\\"sender\\\" is an EIP-7702 account that was initialized during this UserOperation.\"},\"IgnoredInitCode(bytes32,address,address)\":{\"notice\":\"Account \\\"sender\\\" already exists and the 'initCode' was ignored.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"notice\":\"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)\"},\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"constructor\":{\"notice\":\"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures\"},\"delegateAndRevert(address,bytes)\":{\"notice\":\"Helper method for dry-run testing.\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getSenderAddress(bytes)\":{\"notice\":\"Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid.\"},\"handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)\":{\"notice\":\"Execute a batch of UserOperation with Aggregators\"},\"handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)\":{\"notice\":\"Execute a batch of UserOperations. No signature aggregator is used. If any account requires an aggregator (that is, it returned an aggregator when performing simulateValidation), then handleAggregatedOps() must be used instead.\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"simulateHandleOpSingle((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"notice\":\"simulates a single userOperation (taken from EntryPoint simulation example)\"},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"simulate and validates a single userOperation (taken from EntryPoint simulation example)\"},\"unlockStake()\":{\"notice\":\"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass.\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v09/EntryPointSimulations.sol\":\"EntryPointSimulations09\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020\",\"dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577\",\"dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8\",\"dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v9/contracts/core/Helpers.sol\":{\"keccak256\":\"0x7adaeb6171ca7833cb756fde7da9a225899bf5a6e790d111965f4eeae3dbcf51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4345ccd562a9a4f1f912f3bcd73eae0dc1c1604c401d1338ce3ab58765bc3678\",\"dweb:/ipfs/QmYU88GHmAnejw7u3bZFTQTxyHruh9YmPwYPufBkbP7u12\"]},\"lib/account-abstraction-v9/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x37a1469c2ccb80238a7fb176a8ce420a9e38bda2a8cefb53d21e20d93ee7e94c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ee83a7eda55d9e6dcd299556b4b97c4f956ffab25dd4ce607cd7f5dd3efeccb\",\"dweb:/ipfs/QmetiE5J5K6KooYSVw9Lhfs2eLSLPm5egxWJPx2BCm2JSn\"]},\"lib/account-abstraction-v9/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x62f739f59c661f48b750e1d67d96f209056bbc2e4b5e48cbcd0656d162e566cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee103fb0c5103bc001171303bac9f80659c5f0efc4ebf4cfa22e1adc831c68ce\",\"dweb:/ipfs/QmbiosncMJBe3skD8KsCXE9Y3C6NdKthHq83ba3Sw6RP4U\"]},\"lib/account-abstraction-v9/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x0a93a26e990e3da5762c461f5f500bec0f6e216bb42c55f07d95651bd85d5f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76343b1e306ed0ed2a5f49b578b8c30d1c6aecac260c8b71d30665021f93961\",\"dweb:/ipfs/QmPo7xaetd9koekFkNoapGUE2omFH1HhxF35PstTH6fG3J\"]},\"lib/account-abstraction-v9/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v9/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xcbac5ac68fb0582d743c4172cc78afc530f750ed529386327ebfa909be067111\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95ec6059800b3c9a645c1fdc33061f7a48c2b49b9f8bce53d55fc840092dd964\",\"dweb:/ipfs/Qmb33bEcx36hdhXpVCcsUGFmk3AGEU1rto9FU7VBu5S941\"]},\"lib/account-abstraction-v9/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xa262abaec9b922c33e54dd8cd88d4fd1989915e16127959736af966884b4d441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb49a30d699867fd6efa3e349b5802dd1ec1a57379e70077e38fe001e19008d\",\"dweb:/ipfs/QmdsY3et68ceJAyuDScz8iWJfimXmApf6Qcp3BmqDjNSzc\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/v09/EntryPoint.sol\":{\"keccak256\":\"0x5ead2a24187f6b41040cde76dcb18d7ccc1554b9f2792ece3db58f2a493ab0d4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7da6b81380a723c9b15e46a6e08c093e48654a62bdef3a0ef762b8565e9e51ae\",\"dweb:/ipfs/QmR1NriaghpZmCPGKetf9xUawvcPMnDxb7VspafrmWdsSZ\"]},\"src/v09/EntryPointSimulations.sol\":{\"keccak256\":\"0x4d4a897869c9430b7e90858012969cf9c9ed31fe023e914a332cac38c0880b7e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b3e78c0cf8b25ef3d5035ed31fecc8a79a78f7c899f7113d3b3db522db526f30\",\"dweb:/ipfs/QmatHfYLJJsbDFZDdDmtYkKjUQ7XsyKcpmr7gBZnhFE6Vt\"]},\"src/v09/overrides/Eip7702Support.sol\":{\"keccak256\":\"0xbe44f339691a717cf104d49d861e4a1e0b33d5c1c10c9a8afeeb3739fa501257\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bd398610905ac8d2e1e9702728b56aa0f7dc1f47c5bac99b0286a7967a471e6\",\"dweb:/ipfs/QmQc3XrcJhTF4HKkZYzgpr9edi7bA5oKegoHYWmVUyqBkh\"]},\"src/v09/overrides/NonceManager.sol\":{\"keccak256\":\"0xd6d217cfb78ce5cd8d69aafaee01cd8bccee4fc2c564d7095635cec3e83a4d19\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e205146a8933c45c49e43daab3e26dc14777c05b1917ea75afeea7ce7dbc1093\",\"dweb:/ipfs/Qmf4uAwaVC6yLayZtwE93W9ryngkRU57bA7GTf2A1JVkdn\"]},\"src/v09/overrides/SenderCreator.sol\":{\"keccak256\":\"0xd1f267d4c3f8ab185d6e18fe53edc5e8fa7faf1912ea8bf2060e9091943adf73\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0ec30be8cf72f5f6bc627728b40ec9673d74e46d519f2e1f3f10d222110a4034\",\"dweb:/ipfs/QmbNdmnd6cdZ8dErWxbfRyixYSiu3ridVgnAtXecjUqjLh\"]},\"src/v09/overrides/StakeManager.sol\":{\"keccak256\":\"0x51f865c65d7bc9a3085cd76c0442b960d9df208a6facf34778f2c9bfe2aa9660\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a875e317cf7f376614a8fe4c3d1fa5e8e55328e64c9b1f344d32c20d3a0d2a46\",\"dweb:/ipfs/QmVXM4RheDq6C46VZzduQhGF3y8GQ2CGuDhnL7TXSSJLn7\"]},\"src/v09/overrides/UserOperationLib.sol\":{\"keccak256\":\"0x10f23c660d99460070c409af0fce471ffbfbade8d6902c7c14e280c0baf624f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bb475f269b3a565055cb8dc367479c256e0346a39498cbeb771907efa21eb20\",\"dweb:/ipfs/QmbhCXzJvDPuZ2BKyRK9znLS4U68fU9eCMCiyjjmEDwWWG\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [{ "internalType": "bytes", "name": "reason", "type": "bytes" }], "type": "error", "name": "CallPhaseReverted" }, { "inputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "ret", "type": "bytes" }], "type": "error", "name": "DelegateAndRevert" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "withdrawAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }], "type": "error", "name": "DepositWithdrawalFailed" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "Eip7702SenderNotDelegate" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "Eip7702SenderWithoutCode" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }], "type": "error", "name": "FailedOp" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }, { "internalType": "bytes", "name": "inner", "type": "bytes" }], "type": "error", "name": "FailedOpWithRevert" }, { "inputs": [{ "internalType": "uint256", "name": "currentDeposit", "type": "uint256" }, { "internalType": "uint256", "name": "withdrawAmount", "type": "uint256" }], "type": "error", "name": "InsufficientDeposit" }, { "inputs": [{ "internalType": "address", "name": "paymaster", "type": "address" }], "type": "error", "name": "InvalidPaymaster" }, { "inputs": [{ "internalType": "uint256", "name": "paymasterAndDataLength", "type": "uint256" }], "type": "error", "name": "InvalidPaymasterData" }, { "inputs": [{ "internalType": "uint256", "name": "dataLength", "type": "uint256" }, { "internalType": "uint256", "name": "pmSignatureLength", "type": "uint256" }], "type": "error", "name": "InvalidPaymasterSignatureLength" }, { "inputs": [], "type": "error", "name": "InvalidShortString" }, { "inputs": [{ "internalType": "uint256", "name": "msgValue", "type": "uint256" }, { "internalType": "uint256", "name": "currentStake", "type": "uint256" }], "type": "error", "name": "InvalidStake" }, { "inputs": [{ "internalType": "uint256", "name": "newUnstakeDelaySec", "type": "uint256" }, { "internalType": "uint256", "name": "currentUnstakeDelaySec", "type": "uint256" }], "type": "error", "name": "InvalidUnstakeDelay" }, { "inputs": [{ "internalType": "uint256", "name": "currentStake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }], "type": "error", "name": "NotStaked" }, { "inputs": [{ "internalType": "bytes", "name": "returnData", "type": "bytes" }], "type": "error", "name": "PostOpReverted" }, { "inputs": [], "type": "error", "name": "Reentrancy" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "SenderAddressResult" }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address" }], "type": "error", "name": "SignatureValidationFailed" }, { "inputs": [{ "internalType": "uint256", "name": "withdrawTime", "type": "uint256" }, { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }], "type": "error", "name": "StakeNotUnlocked" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "withdrawAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }], "type": "error", "name": "StakeWithdrawalFailed" }, { "inputs": [{ "internalType": "string", "name": "str", "type": "string" }], "type": "error", "name": "StringTooLong" }, { "inputs": [{ "internalType": "uint256", "name": "withdrawTime", "type": "uint256" }, { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }], "type": "error", "name": "WithdrawalNotDue" }, { "inputs": [{ "internalType": "uint256", "name": "remainingGas", "type": "uint256" }], "type": "error", "name": "innerCallResult" }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "factory", "type": "address", "indexed": false }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": false }], "type": "event", "name": "AccountDeployed", "anonymous": false }, { "inputs": [], "type": "event", "name": "BeforeExecution", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalDeposit", "type": "uint256", "indexed": false }], "type": "event", "name": "Deposited", "anonymous": false }, { "inputs": [], "type": "event", "name": "EIP712DomainChanged", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "delegate", "type": "address", "indexed": true }], "type": "event", "name": "EIP7702AccountInitialized", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "unusedFactory", "type": "address", "indexed": false }], "type": "event", "name": "IgnoredInitCode", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "PostOpRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address", "indexed": true }], "type": "event", "name": "SignatureAggregatorChanged", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "totalStaked", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeLocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "withdrawTime", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeUnlocked", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "StakeWithdrawn", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "paymaster", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bool", "name": "success", "type": "bool", "indexed": false }, { "internalType": "uint256", "name": "actualGasCost", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "actualGasUsed", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationEvent", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }], "type": "event", "name": "UserOperationPrefundTooLow", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "nonce", "type": "uint256", "indexed": false }, { "internalType": "bytes", "name": "revertReason", "type": "bytes", "indexed": false }], "type": "event", "name": "UserOperationRevertReason", "anonymous": false }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "withdrawAddress", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false }], "type": "event", "name": "Withdrawn", "anonymous": false }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }], "stateMutability": "nonpayable", "type": "function", "name": "_paymasterValidation", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "outOpInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bool", "name": "validatePaymasterPrepayment", "type": "bool" }], "stateMutability": "nonpayable", "type": "function", "name": "_validatePrepayment", "outputs": [{ "internalType": "uint256", "name": "validationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }], "stateMutability": "payable", "type": "function", "name": "addStake" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "balanceOf", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchCallGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchPaymasterVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "uint256", "name": "initialMinGas", "type": "uint256" }, { "internalType": "uint256", "name": "toleranceDelta", "type": "uint256" }, { "internalType": "uint256", "name": "gasAllowance", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "binarySearchVerificationGas", "outputs": [{ "internalType": "struct IEntryPointSimulations.BinarySearchResult", "name": "", "type": "tuple", "components": [{ "internalType": "enum IEntryPointSimulations.BinarySearchResultType", "name": "resultType", "type": "uint8" }, { "internalType": "struct IEntryPointSimulations.BinarySearchSuccess", "name": "successData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" }] }, { "internalType": "struct IEntryPointSimulations.BinarySearchOutOfGas", "name": "outOfGasData", "type": "tuple", "components": [{ "internalType": "uint256", "name": "optimalGas", "type": "uint256" }, { "internalType": "uint256", "name": "minGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxGas", "type": "uint256" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "delegateAndRevert" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "payable", "type": "function", "name": "depositTo" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "eip712Domain", "outputs": [{ "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getCurrentUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "getDepositInfo", "outputs": [{ "internalType": "struct IStakeManager.DepositInfo", "name": "info", "type": "tuple", "components": [{ "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getDomainSeparatorV4", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "getNonce", "outputs": [{ "internalType": "uint256", "name": "nonce", "type": "uint256" }] }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "getPackedUserOpTypeHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "bytes", "name": "initCode", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "getSenderAddress" }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "view", "type": "function", "name": "getUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "struct IEntryPoint.UserOpsPerAggregator[]", "name": "opsPerAggregator", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IAggregator", "name": "aggregator", "type": "address" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "handleAggregatedOps" }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "ops", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "handleOps" }, { "inputs": [{ "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "nonpayable", "type": "function", "name": "incrementNonce" }, { "inputs": [{ "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "struct EntryPoint.UserOpInfo", "name": "opInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPoint.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "address", "name": "paymaster", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }] }, { "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "contextOffset", "type": "uint256" }, { "internalType": "uint256", "name": "preOpGas", "type": "uint256" }] }, { "internalType": "bytes", "name": "context", "type": "bytes" }, { "internalType": "uint256", "name": "preGas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "innerHandleOp", "outputs": [{ "internalType": "uint256", "name": "actualGasCost", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }] }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint192", "name": "", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "nonceSequenceNumber", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "senderCreator", "outputs": [{ "internalType": "contract ISenderCreator", "name": "", "type": "address" }] }, { "inputs": [{ "internalType": "address", "name": "entryPoint", "type": "address" }, { "internalType": "bytes", "name": "payload", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCall", "outputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "result", "type": "bytes" }] }, { "inputs": [{ "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "gas", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateCallAndRevert" }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOp", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOpSingle", "outputs": [{ "internalType": "struct IEntryPointSimulations.ExecutionResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterVerificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterPostOpGasLimit", "type": "uint256" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "queuedUserOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "struct PackedUserOperation", "name": "targetUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPoint.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation", "outputs": [{ "internalType": "struct IEntryPointSimulations.ValidationResult", "name": "", "type": "tuple", "components": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "uint256", "name": "accountValidationData", "type": "uint256" }, { "internalType": "uint256", "name": "paymasterValidationData", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPoint.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }] }] }, { "inputs": [{ "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }], "stateMutability": "view", "type": "function", "name": "supportsInterface", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "unlockStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawStake" }, { "inputs": [{ "internalType": "address payable", "name": "withdrawAddress", "type": "address" }, { "internalType": "uint256", "name": "withdrawAmount", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "withdrawTo" }, { "inputs": [], "stateMutability": "payable", "type": "receive" }], "devdoc": { "kind": "dev", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "params": { "opIndex": "- The index of this userOp into the \"opInfos\" array.", "outOpInfo": "- The empty unpacked in-memory UserOperation structure that will be filled in here.", "userOp": "- The packed calldata UserOperation structure to validate." }, "returns": { "paymasterValidationData": "- The paymaster's validationData.", "validationData": " - The account's validationData." } }, "addStake(uint32)": { "params": { "_unstakeDelaySec": "- The new lock duration before the deposit can be withdrawn." } }, "balanceOf(address)": { "params": { "account": "- The account to query." }, "returns": { "_0": "- The deposit (for gas payment) of the account." } }, "delegateAndRevert(address,bytes)": { "details": "calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.", "params": { "data": "data to pass to target in a delegatecall", "target": "a target contract to make a delegatecall from entrypoint" } }, "depositTo(address)": { "params": { "account": "- The account to add to." } }, "eip712Domain()": { "details": "See {IERC-5267}." }, "getDepositInfo(address)": { "params": { "account": "- The account to query." }, "returns": { "info": " - Full deposit information of given account." } }, "getNonce(address,uint192)": { "params": { "key": "the high 192 bit of the nonce", "sender": "the account address" }, "returns": { "nonce": "a full nonce to pass for next UserOp with this sender." } }, "getSenderAddress(bytes)": { "params": { "initCode": "- The constructor code to be passed into the UserOperation." } }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "params": { "userOp": "- The user operation to generate the request ID for." }, "returns": { "_0": "hash the hash of this UserOperation" } }, "handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)": { "params": { "beneficiary": "- The address to receive the fees.", "opsPerAggregator": "- The operations to execute, grouped by aggregator (or address(0) for no-aggregator accounts)." } }, "handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)": { "params": { "beneficiary": "- The address to receive the fees.", "ops": "- The operations to execute." } }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "params": { "callData": "- The callData to execute.", "context": "- The context bytes.", "opInfo": "- The UserOpInfo struct." }, "returns": { "actualGasCost": "- the actual cost in eth this UserOperation paid for gas" } }, "supportsInterface(bytes4)": { "details": "See {IERC165-supportsInterface}." }, "withdrawStake(address)": { "params": { "withdrawAddress": "- The address to send withdrawn value." } }, "withdrawTo(address,uint256)": { "params": { "withdrawAddress": "- The address to send withdrawn value.", "withdrawAmount": "- The amount to withdraw." } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)": { "notice": "Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)" }, "addStake(uint32)": { "notice": "Add to the account's stake - amount and delay any pending unstake is first cancelled." }, "balanceOf(address)": { "notice": "Get account balance." }, "constructor": { "notice": "simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures" }, "delegateAndRevert(address,bytes)": { "notice": "Helper method for dry-run testing." }, "depositTo(address)": { "notice": "Add to the deposit of the given account." }, "getDepositInfo(address)": { "notice": "Get deposit info." }, "getNonce(address,uint192)": { "notice": "Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order." }, "getSenderAddress(bytes)": { "notice": "Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error" }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid." }, "handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)": { "notice": "Execute a batch of UserOperation with Aggregators" }, "handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)": { "notice": "Execute a batch of UserOperations. No signature aggregator is used. If any account requires an aggregator (that is, it returned an aggregator when performing simulateValidation), then handleAggregatedOps() must be used instead." }, "incrementNonce(uint192)": { "notice": "Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key." }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)": { "notice": "Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps." }, "nonceSequenceNumber(address,uint192)": { "notice": "The next valid sequence number for a given nonce key." }, "simulateHandleOpSingle((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)": { "notice": "simulates a single userOperation (taken from EntryPoint simulation example)" }, "simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "simulate and validates a single userOperation (taken from EntryPoint simulation example)" }, "unlockStake()": { "notice": "Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay." }, "withdrawStake(address)": { "notice": "Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass." }, "withdrawTo(address,uint256)": { "notice": "Withdraw from the deposit." } }, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@account-abstraction-v9/=lib/account-abstraction-v9/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/", "@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/", "@test-utils/=lib/singleton-paymaster/test/utils/", "account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "account-abstraction-v9/=lib/account-abstraction-v9/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "singleton-paymaster/=lib/singleton-paymaster/src/", "solady/=lib/solady/src/"], "optimizer": { "enabled": true, "runs": 1000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/v09/EntryPointSimulations.sol": "EntryPointSimulations09" }, "evmVersion": "cancun", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v7/contracts/interfaces/IAccount.sol": { "keccak256": "0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78", "urls": ["bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020", "dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol": { "keccak256": "0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c", "urls": ["bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577", "dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol": { "keccak256": "0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588", "urls": ["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155", "dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4", "urls": ["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9", "dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol": { "keccak256": "0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb", "urls": ["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3", "dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IPaymaster.sol": { "keccak256": "0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f", "urls": ["bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8", "dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04", "urls": ["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00", "dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359", "urls": ["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be", "dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/utils/Exec.sol": { "keccak256": "0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74", "urls": ["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77", "dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v9/contracts/core/Helpers.sol": { "keccak256": "0x7adaeb6171ca7833cb756fde7da9a225899bf5a6e790d111965f4eeae3dbcf51", "urls": ["bzz-raw://4345ccd562a9a4f1f912f3bcd73eae0dc1c1604c401d1338ce3ab58765bc3678", "dweb:/ipfs/QmYU88GHmAnejw7u3bZFTQTxyHruh9YmPwYPufBkbP7u12"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/core/UserOperationLib.sol": { "keccak256": "0x37a1469c2ccb80238a7fb176a8ce420a9e38bda2a8cefb53d21e20d93ee7e94c", "urls": ["bzz-raw://0ee83a7eda55d9e6dcd299556b4b97c4f956ffab25dd4ce607cd7f5dd3efeccb", "dweb:/ipfs/QmetiE5J5K6KooYSVw9Lhfs2eLSLPm5egxWJPx2BCm2JSn"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IAggregator.sol": { "keccak256": "0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf", "urls": ["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77", "dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x62f739f59c661f48b750e1d67d96f209056bbc2e4b5e48cbcd0656d162e566cd", "urls": ["bzz-raw://ee103fb0c5103bc001171303bac9f80659c5f0efc4ebf4cfa22e1adc831c68ce", "dweb:/ipfs/QmbiosncMJBe3skD8KsCXE9Y3C6NdKthHq83ba3Sw6RP4U"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/INonceManager.sol": { "keccak256": "0x0a93a26e990e3da5762c461f5f500bec0f6e216bb42c55f07d95651bd85d5f74", "urls": ["bzz-raw://d76343b1e306ed0ed2a5f49b578b8c30d1c6aecac260c8b71d30665021f93961", "dweb:/ipfs/QmPo7xaetd9koekFkNoapGUE2omFH1HhxF35PstTH6fG3J"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xcbac5ac68fb0582d743c4172cc78afc530f750ed529386327ebfa909be067111", "urls": ["bzz-raw://95ec6059800b3c9a645c1fdc33061f7a48c2b49b9f8bce53d55fc840092dd964", "dweb:/ipfs/Qmb33bEcx36hdhXpVCcsUGFmk3AGEU1rto9FU7VBu5S941"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xa262abaec9b922c33e54dd8cd88d4fd1989915e16127959736af966884b4d441", "urls": ["bzz-raw://8cb49a30d699867fd6efa3e349b5802dd1ec1a57379e70077e38fe001e19008d", "dweb:/ipfs/QmdsY3et68ceJAyuDScz8iWJfimXmApf6Qcp3BmqDjNSzc"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol": { "keccak256": "0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92", "urls": ["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a", "dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol": { "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", "urls": ["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol": { "keccak256": "0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549", "urls": ["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a", "dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol": { "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97", "urls": ["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b", "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol": { "keccak256": "0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed", "urls": ["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0", "dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol": { "keccak256": "0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d", "urls": ["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c", "dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol": { "keccak256": "0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575", "urls": ["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e", "dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa", "urls": ["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287", "dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8", "urls": ["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621", "dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol": { "keccak256": "0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea", "urls": ["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d", "dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol": { "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", "urls": ["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol": { "keccak256": "0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3", "urls": ["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03", "dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"], "license": "MIT" }, "src/IEntryPointSimulations.sol": { "keccak256": "0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41", "urls": ["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5", "dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"], "license": "MIT" }, "src/v09/EntryPoint.sol": { "keccak256": "0x5ead2a24187f6b41040cde76dcb18d7ccc1554b9f2792ece3db58f2a493ab0d4", "urls": ["bzz-raw://7da6b81380a723c9b15e46a6e08c093e48654a62bdef3a0ef762b8565e9e51ae", "dweb:/ipfs/QmR1NriaghpZmCPGKetf9xUawvcPMnDxb7VspafrmWdsSZ"], "license": "GPL-3.0" }, "src/v09/EntryPointSimulations.sol": { "keccak256": "0x4d4a897869c9430b7e90858012969cf9c9ed31fe023e914a332cac38c0880b7e", "urls": ["bzz-raw://b3e78c0cf8b25ef3d5035ed31fecc8a79a78f7c899f7113d3b3db522db526f30", "dweb:/ipfs/QmatHfYLJJsbDFZDdDmtYkKjUQ7XsyKcpmr7gBZnhFE6Vt"], "license": "GPL-3.0" }, "src/v09/overrides/Eip7702Support.sol": { "keccak256": "0xbe44f339691a717cf104d49d861e4a1e0b33d5c1c10c9a8afeeb3739fa501257", "urls": ["bzz-raw://6bd398610905ac8d2e1e9702728b56aa0f7dc1f47c5bac99b0286a7967a471e6", "dweb:/ipfs/QmQc3XrcJhTF4HKkZYzgpr9edi7bA5oKegoHYWmVUyqBkh"], "license": "MIT" }, "src/v09/overrides/NonceManager.sol": { "keccak256": "0xd6d217cfb78ce5cd8d69aafaee01cd8bccee4fc2c564d7095635cec3e83a4d19", "urls": ["bzz-raw://e205146a8933c45c49e43daab3e26dc14777c05b1917ea75afeea7ce7dbc1093", "dweb:/ipfs/Qmf4uAwaVC6yLayZtwE93W9ryngkRU57bA7GTf2A1JVkdn"], "license": "GPL-3.0" }, "src/v09/overrides/SenderCreator.sol": { "keccak256": "0xd1f267d4c3f8ab185d6e18fe53edc5e8fa7faf1912ea8bf2060e9091943adf73", "urls": ["bzz-raw://0ec30be8cf72f5f6bc627728b40ec9673d74e46d519f2e1f3f10d222110a4034", "dweb:/ipfs/QmbNdmnd6cdZ8dErWxbfRyixYSiu3ridVgnAtXecjUqjLh"], "license": "GPL-3.0" }, "src/v09/overrides/StakeManager.sol": { "keccak256": "0x51f865c65d7bc9a3085cd76c0442b960d9df208a6facf34778f2c9bfe2aa9660", "urls": ["bzz-raw://a875e317cf7f376614a8fe4c3d1fa5e8e55328e64c9b1f344d32c20d3a0d2a46", "dweb:/ipfs/QmVXM4RheDq6C46VZzduQhGF3y8GQ2CGuDhnL7TXSSJLn7"], "license": "GPL-3.0" }, "src/v09/overrides/UserOperationLib.sol": { "keccak256": "0x10f23c660d99460070c409af0fce471ffbfbade8d6902c7c14e280c0baf624f9", "urls": ["bzz-raw://0bb475f269b3a565055cb8dc367479c256e0346a39498cbeb771907efa21eb20", "dweb:/ipfs/QmbhCXzJvDPuZ2BKyRK9znLS4U68fU9eCMCiyjjmEDwWWG"], "license": "MIT" } }, "version": 1 }, "id": 31 }