@pimlico/alto 0.0.0-main.20251205T161640 → 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.
- package/contracts/EIP712.sol/EIP712.json +1 -1
- package/contracts/ERC165.sol/ERC165.json +1 -1
- package/contracts/ERC20.sol/ERC20.json +1 -1
- package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
- package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
- package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
- package/contracts/Exec.sol/Exec.json +1 -1
- package/contracts/IAccount.sol/IAccount.json +1 -1
- package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
- package/contracts/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/IERC165.sol/IERC165.json +1 -1
- package/contracts/IERC5267.sol/IERC5267.json +1 -1
- package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -1
- package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
- package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
- package/contracts/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
- package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
- package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/LibBytes.sol/LibBytes.json +1 -1
- package/contracts/Math.sol/Math.json +1 -1
- package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
- package/contracts/NonceManager.sol/NonceManager.json +1 -1
- package/contracts/Panic.sol/Panic.json +1 -1
- package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
- package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
- package/contracts/SafeCast.sol/SafeCast.json +1 -1
- package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
- package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
- package/contracts/SignedMath.sol/SignedMath.json +1 -1
- package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -1
- package/contracts/StakeManager.sol/StakeManager.json +1 -1
- package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
- package/contracts/Strings.sol/Strings.json +1 -1
- package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
- package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
- package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
- package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
- package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
- package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
- package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
- package/contracts/build-info/{006aa55b425148d5.json → 338795fc743ca612.json} +1 -1
- package/contracts/build-info/44a9648cfe32a468.json +1 -0
- package/contracts/build-info/{416ffb069999d6eb.json → 8dbf8a4ad39019b5.json} +1 -1
- package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
- package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
- package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
- package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
- package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
- package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
- package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
- package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
- package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
- package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
- package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
- package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
- package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
- package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
- package/contracts/utils/Exec.sol/Exec.json +1 -1
- package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -1
- package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
- package/esm/cli/config/bundler.d.ts +56 -50
- package/esm/cli/config/bundler.js +1 -0
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.js +5 -1
- package/esm/cli/config/options.js.map +1 -1
- package/esm/cli/deploySimulationsContract.d.ts +1 -0
- package/esm/cli/deploySimulationsContract.js +41 -5
- package/esm/cli/deploySimulationsContract.js.map +1 -1
- package/esm/cli/handler.js +14 -0
- package/esm/cli/handler.js.map +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
- package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
- package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/esm/executor/filterOpsAndEstimateGas.js +12 -0
- package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
- package/esm/executor/utils.js +2 -2
- package/esm/executor/utils.js.map +1 -1
- package/esm/mempool/mempool.d.ts +34 -0
- package/esm/mempool/mempool.js +14 -4
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/rpc/estimation/gasEstimations07.js +7 -6
- package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
- package/esm/rpc/estimation/preVerificationGasCalculator.js +1 -1
- package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -1
- package/esm/rpc/methods/boost_sendUserOperation.d.ts +304 -0
- package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
- package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +622 -14
- package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
- package/esm/rpc/methods/eth_sendUserOperation.d.ts +304 -0
- package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +304 -0
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js +3 -12
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
- package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +620 -12
- package/esm/rpc/validation/SafeValidator.js +5 -5
- package/esm/rpc/validation/SafeValidator.js.map +1 -1
- package/esm/store/createMempoolStore.js +8 -2
- package/esm/store/createMempoolStore.js.map +1 -1
- package/esm/store/outstanding/memory.js +26 -17
- package/esm/store/outstanding/memory.js.map +1 -1
- package/esm/store/outstanding/redis.js +46 -18
- package/esm/store/outstanding/redis.js.map +1 -1
- package/esm/store/outstanding/types.d.ts +2 -1
- package/esm/store/processing/memory.d.ts +3 -1
- package/esm/store/processing/memory.js +14 -2
- package/esm/store/processing/memory.js.map +1 -1
- package/esm/store/processing/redis.d.ts +4 -2
- package/esm/store/processing/redis.js +20 -4
- package/esm/store/processing/redis.js.map +1 -1
- package/esm/store/processing/types.d.ts +2 -1
- package/esm/store/types.d.ts +1 -0
- package/esm/types/contracts/PimlicoSimulations.d.ts +81 -0
- package/esm/types/contracts/PimlicoSimulations.js +105 -0
- package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
- package/esm/types/schemas.d.ts +13039 -4597
- package/esm/types/schemas.js +92 -2
- package/esm/types/schemas.js.map +1 -1
- package/esm/utils/entryPointOverrides.js +7 -0
- package/esm/utils/entryPointOverrides.js.map +1 -1
- package/esm/utils/userop.d.ts +76 -2
- package/esm/utils/userop.js +71 -79
- package/esm/utils/userop.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +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":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"depositTo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"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":"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":"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":"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":"","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":"","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"handleOps","inputs":[{"name":"","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":"","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"pure"},{"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":"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":"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":"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":"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":"PostOpReverted","inputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","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":"innerCallResult","inputs":[{"name":"remainingGas","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60c080604052346101075760016002556101948181016001600160401b038111838210176100f1578291614e20833903906000f080156100e5576080523060a05261004861010c565b6000815260208101906000825280602061006061010c565b600081520152600380546001600160a01b03191690555160045551600555604051614cf4908161012c823960805181818161123c0152614a92015260a051818181612d200152818161305a015281816130b5015281816132bf0152818161337a015281816133d4015281816134e5015281816135a0015281816135fa015261370b0152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fd5b60408051919082016001600160401b038111838210176100f15760405256fe60806040526004361015610023575b361561001957600080fd5b610021612e1c565b005b60003560e01c80630396cb60146101de5780630bd28e3b146101d95780630da82661146101d45780631b2e01b8146101cf578063205c2878146101ca578063212eccc6146101c557806321e60b37146101c057806322cdde4c146101bb57806335567e1a146101b657806344403473146101b15780635287ce12146101ac57806370a08231146101a7578063765e827f146101665780637da0c462146101a2578063850aaf621461019d5780639b249f6914610198578063acbe911e14610193578063aec321fb1461018e578063af32494314610189578063b760faf914610184578063bb9fe6bf1461017f578063c23a5cea1461017a578063c3bce00914610175578063c579f76b14610170578063d72f25931461016b578063dbed18e014610166578063f7e426e8146101615763fc7e286d0361000e57611a57565b611a1e565b610e95565b6119fe565b61176e565b611750565b611629565b611502565b6114d7565b611464565b61140c565b6112d8565b6111dc565b61114a565b610f5c565b610e1e565b610d0d565b610cc7565b610be7565b610bc7565b610aca565b610a7f565b61081e565b6107bd565b61069a565b6103ef565b60203660031901126103d45760043563ffffffff8116908181036103d4576103cf7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103b161029f61028f610247336001600160a01b03166000526000602052604060002090565b96610253811515611ae5565b6102806001890154916102796102708463ffffffff9060781c1690565b63ffffffff1690565b1115611b30565b60081c6001600160701b031690565b6001600160701b03349116611bb3565b946102ab861515611bc0565b6102be6001600160701b03871115611c0b565b546102c76104f9565b908152600160208201526001600160701b038616604082015263ffffffff8316606082015260006080820152610310336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b602435906001600160c01b03821682036103d457565b346103d45760203660031901126103d4576004356001600160c01b03811681036103d45761043d903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6104478154611c56565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761047d57604052565b61044b565b6060810190811067ffffffffffffffff82111761047d57604052565b610140810190811067ffffffffffffffff82111761047d57604052565b6040810190811067ffffffffffffffff82111761047d57604052565b90601f8019910116810190811067ffffffffffffffff82111761047d57604052565b6040519061050860a0836104d7565b565b60405190610508610140836104d7565b60405190610508610100836104d7565b604051906105086040836104d7565b604051906105086060836104d7565b60405190610508610120836104d7565b67ffffffffffffffff811161047d57601f01601f191660200190565b92919261058082610558565b9161058e60405193846104d7565b8294818452818301116103d4578281602093846000960137010152565b9080601f830112156103d4578160206105c693359101610574565b90565b6001600160a01b038116036103d457565b3590610508826105c9565b60431901906101c082126103d4576040516105ff81610461565b6101408193126103d45761061161050a565b61061b60446105da565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526106596101246105da565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103d4576102203660031901126103d45760043567ffffffffffffffff81116103d4576106cc9036906004016105ab565b3660231901906101c082126103d457610140604051926106eb84610461565b126103d4576106f861050a565b61070260246105da565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261073f6101046105da565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103d4576040926107a66107b19336906004016105ab565b906102043592611c65565b82519182526020820152f35b346103d45760403660031901126103d45760206108156004356107df816105c9565b6001600160a01b036107ef6103d9565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103d45760403660031901126103d45760043561083b816105c9565b6024353360005260006020526040600020918254908183116108c35760008080856001600160a01b03829589610874846100219a611ed8565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108bd611efa565b50611f2a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f840112156103d45782359167ffffffffffffffff83116103d4576020808501948460051b0101116103d457565b90816101209103126103d45790565b60c06003198201126103d45760043567ffffffffffffffff81116103d4578161097291600401610907565b929092916024359067ffffffffffffffff82116103d45761099591600401610938565b906044356109a2816105c9565b90606435906084359060a43590565b634e487b7160e01b600052602160045260246000fd5b60005b8381106109da5750506000910152565b81810151838201526020016109ca565b90602091610a03815180928185528580860191016109c7565b601f01601f1916010190565b6020815281516002811015610a7a57602082015260a0604080610a5e8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109ea565b9401518051606085015260208101516080850152015191015290565b6109b1565b346103d457610ac6610aba610aac610a9636610947565b9691949095610aa6949394611f94565b50612edb565b610ab581612f6a565b612ffd565b60405191829182610a0f565b0390f35b346103d4576102003660031901126103d45760243560043567ffffffffffffffff82116103d457610b02610ac6923690600401610938565b90610b0c366105e5565b600092815192610b1c84836137d2565b610b2582611fd8565b60208401526001600160a01b0360e0610b5f86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610b87575b6040805160008082526020820188905291810191909152806060810188565b610b919450613a4f565b905038808080610b68565b60206003198201126103d4576004359067ffffffffffffffff82116103d4576105c691600401610938565b346103d4576020610bdf610bda36610b9c565b611fd8565b604051908152f35b346103d45760403660031901126103d4576020600435610c06816105c9565b6001600160a01b03610c166103d9565b911660005260018252610c40816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156103d45782359167ffffffffffffffff83116103d457602083818601950101116103d457565b9060606003198301126103d457600435610c9f816105c9565b916024359067ffffffffffffffff82116103d457610cbf91600401610c58565b909160443590565b346103d45760008080610cd936610c86565b939181604094929451948592833781018381520393f1610cf7611efa565b9015610cff57005b80519081156103d457602001fd5b346103d45760203660031901126103d4576001600160a01b03600435610d32816105c9565b60006080604051610d4281610461565b8281528260208201528260408201528260608201520152166000526000602052610ac66040600020610dca65ffffffffffff600160405193610d8385610461565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103d45760203660031901126103d4576001600160a01b03600435610e43816105c9565b1660005260006020526020604060002054604051908152f35b60406003198201126103d4576004359067ffffffffffffffff82116103d457610e8791600401610907565b90916024356105c6816105c9565b346103d457610ea336610e5c565b505050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b61012060e06105c6936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109ea565b346103d45760603660031901126103d45760043567ffffffffffffffff81116103d457610f8d903690600401610938565b602435610f99816105c9565b60443567ffffffffffffffff81116103d457610fb99036906004016105ab565b91610fc26120bb565b50600091600280541461113b57610ac69360028055610fdf612237565b610fe884612f6a565b610ff28185612955565b91955a60608501518561100860608501856122fa565b94908c60038711611133575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361111b5750611084945061107f602083015191611071604051938492638dd7712f60e01b602085015260248401613c26565b03601f1981018352826104d7565b611c65565b9390975b80956060976001600160a01b0381166110f2575b5050509560806110d796970151976110b261051a565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526110e66001600255565b60405191829182610efa565b6110d798508280949850602083519301915af1956080611110611efa565b97959197963861109c565b61107f915061112b953691610574565b939097611088565b508035611014565b600483633ee5aeb560e01b8152fd5b346103d45760403660031901126103d4576111666004356105c9565b60243567ffffffffffffffff81116103d457611186903690600401610c58565b5050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b346103d45760203660031901126103d45760043567ffffffffffffffff81116103d457602061121261122e923690600401610c58565b906040519384928392632b870d1b60e11b8452600484016122dd565b038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156112d3576001600160a01b03916000916112a4575b507f6ca7b806000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b6112c6915060203d6020116112cc575b6112be81836104d7565b8101906122a7565b38611275565b503d6112b4565b6122ee565b346103d457610ac6610aba6112ec36610947565b9594909493919361237b565b60406003198201126103d45760043567ffffffffffffffff81116103d4578161132391600401610907565b929092916024359067ffffffffffffffff82116103d4576105c691600401610938565b6105c69060208152610100608061139f81865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109ea565b6020808701518051604087015201516060850152946113cf60408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103d45761141a366112f8565b919061142461244f565b5060005b81811061144757610ac661143b8561278f565b60405191829182611346565b8061145d61145860019385876124ec565b61278f565b5001611428565b346103d457611472366112f8565b919061147c6120bb565b5060209060005b8181106114b157610ac66110e686604051906114a06020836104d7565b600082526114ac6120bb565b612110565b806114d06114c260019385886124ec565b604051906114a087836104d7565b5001611483565b60203660031901126103d4576100216004356114f2816105c9565b612514565b60009103126103d457565b346103d45760003660031901126103d4573360005260006020526001604060002001805463ffffffff8160781c16156115e55761156e6115606102708361155461154f6115a89660ff1690565b612555565b60781c63ffffffff1690565b65ffffffffffff42166125a0565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103cf565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103d45760203660031901126103d457610021600080808060043561164e816105c9565b6001600160a01b036001611675336001600160a01b03166000526000602052604060002090565b01916117038354936116db65ffffffffffff6116c76116ad6116a1896001600160701b039060081c1690565b6001600160701b031690565b976116b98915156125be565b60981c65ffffffffffff1690565b166116d3811515612609565b421015612654565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af161174a611efa565b5061269f565b346103d457610ac661143b61145836610b9c565b801515036103d457565b346103d4576102203660031901126103d45760043560243567ffffffffffffffff81116103d4576117a3903690600401610938565b906117ad366105e5565b61020435906117bb82611764565b6000935a8251936117cc85846137d2565b6117d583611fd8565b60208501526040850151956118216effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a089015117610100890151176101208901511711156128f4565b61184c86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b9061185a8883888885613f86565b9761188161187d6118728a516001600160a01b031690565b60208b015190614105565b1590565b6119a9575a850311611957576060926001600160a01b036118ad60e05a9a01516001600160a01b031690565b161515908161194f575b50611918575b509360806118f49460a06118ef95610ac699956118fb99604087015260608601525a9003910135019101525a90611ed8565b61293f565b6064900490565b604051938493846040919493926060820195825260208201520152565b819850610ac69692508460a06118ef9561193d89956118fb9a6118f49a608097613a4f565b9c90969a5094985095505094506118bd565b9050386118b7565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103d457610ac6610aba611a1236610947565b95949094939193612b65565b346103d457611a38611a2f36610c86565b92919091612cc9565b90610ac6604051928392151583526040602084015260408301906109ea565b346103d45760203660031901126103d4576001600160a01b03600435611a7c816105c9565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b15611aec57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611b3757565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211611ba057565b611b7b565b9060018201809211611ba057565b91908201809211611ba057565b15611bc757565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611c1257565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6000198114611ba05760010190565b93929093845190606082015181519081611e50575b505050505a900360808401510192600093845a835194611c9986614157565b92611cae60e08801516001600160a01b031690565b6001600160a01b038116919082611d7e5750505050611cd485516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611d69575b505085029460408501938451878110600014611d3e57505050611d3a939450611d226000612e53565b5a9003905101905183611d358295614280565b6141b1565b9190565b611d3a969295508780955060019450611d5992910390613c3d565b50611d646000612e53565b614219565b9196916064919003600a020401943880611cf9565b95928051611d8f575b505050611cd6565b9091929950611d9d82612e53565b5a9260a089015190803b15611e4c579183929187848196948f611df2604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601612e5d565b0393f19182611e32575b5050611e26576119a5611e0d612e25565b6040519182916365c8fd4d60e01b835260048301612e8f565b5a900396388080611d87565b611e3f611e4592826104d7565b806114f7565b3880611dfc565b8380fd5b600080949360206001600160a01b0383965116910192f115611e755738808080611c7a565b6119a5611e80612e25565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109ea565b600319810191908211611ba057565b600019810191908211611ba057565b91908203918211611ba057565b60405190611ef46020836104d7565b60008252565b3d15611f25573d90611f0b82610558565b91611f1960405193846104d7565b82523d6000602084013e565b606090565b15611f3157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190611f8282610482565b60006040838281528260208201520152565b60405190611fa182610482565b8160008152604051611fb281610482565b60008152600060208201526060604082015260208201526040611fd3611f75565b910152565b602081013561208c611fed60408401846122fa565b9081604051918237209161107161200760608601866122fa565b90816040519182372060c086013560a0870135608088013561203561202f60e08b018b6122fa565b90614cb3565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b519020604080516020810192835230918101919091524660608201526120b58160808101611071565b51902090565b60405190610100820182811067ffffffffffffffff82111761047d57604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b50905060028054146122265760028055608061212a612237565b9161213481612f6a565b61213e8382612955565b926000929192905a908760608101519161215b60608201826122fa565b956003871161221e575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361220657506121c2945061107f602083015191611071604051938492638dd7712f60e01b602085015260248401613c26565b9490955b0151946121d161051a565b958652602086015260408501526060840152608083015260a0820152600060c0820152606060e0820152906105086001600255565b61107f9150612216953691610574565b9490956121c6565b508035612165565b633ee5aeb560e01b60005260046000fd5b6040519061224482610461565b60006080836040516122558161049e565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b908160209103126103d457516105c6816105c9565b908060209392818452848401376000828201840152601f01601f1916010190565b9160206105c69381815201916122bc565b6040513d6000823e3d90fd5b903590601e19813603018212156103d4570180359067ffffffffffffffff82116103d4576020019181360383136103d457565b6040519061233c6020836104d7565b6000808352366020840137565b9061235382610558565b61236060405191826104d7565b8281528092612371601f1991610558565b0190602036910137565b9594939291909561238a611f94565b5061239860608301836122fa565b9050156123ce576105c6966123ac91612edb565b6123c66123b7612237565b6123c083612f6a565b82612955565b50505061333b565b505050505050506123dd61232d565b604051906123ea82610482565b6000825260006020830152604082015260405161240681610482565b6000815260006020820152600060408201526040519161242583610482565b600083526020830152604082015290565b60405190612443826104bb565b60006020838281520152565b6040519061245c82610461565b8160405161246981610461565b60008152600060208201526000604082015260006060820152606060808201528152612493612436565b60208201526124a0612436565b60408201526124ad612436565b60608201526080604051916124c1836104bb565b600083526124cd612436565b60208401520152565b634e487b7160e01b600052603260045260246000fd5b919081101561250f5760051b8101359061011e19813603018212156103d4570190565b6124d6565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036125493485613c3d565b936040519485521692a2565b1561255c57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611ba057565b156125c557565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561261057565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561265b57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156126a657565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b906014116103d45790601490565b90929192836034116103d45783116103d457603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612735575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612762826104bb565b6003546001600160a01b0316825260405160208361277f836104bb565b6004548352600554828401520152565b61279761244f565b506127a0612237565b906127aa81612f6a565b6127b48282612955565b509190926127c28385613c65565b6127df6127da60e0835101516001600160a01b031690565b613d8d565b9161280d6127f96127da84516001600160a01b0390511690565b91612802612436565b5060408101906122fa565b90601482106128e85761282f612829612835936127da936126ea565b90612715565b60601c90565b916001600160a01b03861694608082015196606060408401519301519261285a6104f9565b9889526020890152604088015260608701526080860152612879612755565b93801515806128dd575b6128ab575b506128916104f9565b948552602085015260408401526060830152608082015290565b9093506128b781613d8d565b6128d16128c261052a565b6001600160a01b039093168352565b60208201529238612888565b506001811415612883565b50506128356000613d8d565b156128fb57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715611ba057565b90916000915a9380519161296983826137d2565b61297281611fd8565b60208301526040830151956129be6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a087015117610100870151176101208701511711156128f4565b6129e984610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129f7888286866000613f86565b97612a1a61187d612a0f88516001600160a01b031690565b602089015190614105565b612b11575a830311612abd576060906001600160a01b03612a4660e05a9801516001600160a01b031690565b16151580612ab5575b612a82575b6118ef9360a06105c69794879460809460406118f49a015260608601525a9003910135019101525a90611ed8565b965050928260808360a06105c697612aa38b6118f4996118ef996000613a4f565b9b909598509350949750509350612a54565b506001612a4f565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b95949392919095612b74611f94565b506014612b8460e08401846122fa565b905010612bbf576105c696612bb191610aa6612b9e612237565b612ba98151876137d2565b5a9086613e2a565b612bba81612f6a565b613561565b50505050505050612bce61232d565b60405190612bdb82610482565b60008252600060208301526040820152612bf3610539565b600081526000602082015260006040820152612c0d610539565b91600083526020830152604082015290565b6040906001600160a01b036105c6959316815281602082015201916122bc565b90815181101561250f570160200190565b81601f820112156103d4578051612c6681610558565b92612c7460405194856104d7565b818452602082840101116103d4576105c691602080850191016109c7565b9190916040818403126103d4578051612caa81611764565b92602082015167ffffffffffffffff81116103d4576105c69201612c50565b91926000936001600160a01b036060941691823b156103d457612d4993600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612c1f565b0393f19081612e07575b50612df4575050612d62611efa565b906004825110612df857612d7e612d798351611eba565b612349565b60045b8351811015612dde5780612dc0612d9a60019387612c3f565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612dd7612dcc83611eba565b9160001a9185612c3f565b5301612d81565b50612df491925060208082518301019101612c92565b9091565b9050612e0261232d565b600091565b80611e3f6000612e16936104d7565b38612d53565b61050833612514565b3d6108008111612e4a575b604051906020818301016040528082526000602083013e90565b50610800612e30565b60031115610a7a57565b90949392946003811015610a7a57606092612e859183526080602084015260808301906109ea565b9460408201520152565b9060a06105c6926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109ea565b60005b828110612eea57505050565b600190612ef5612237565b612f008286866124ec565b612f0981612f6a565b612f138282612955565b505050612f2360608201826122fa565b905015612f5957612f3d60009291602084930151906142c3565b9082602083519301915af150612f51611efa565b505b01612ede565b5050612f53565b356105c6816105c9565b612f9d90612f7b60408201826122fa565b91612f95813591612f8b836105c9565b60e08101906122fa565b93909261435d565b8051612fa65750565b6119a590604051918291631101335b60e11b8352600060048401526040602484015260448301906109ea565b939291612ff8906001600160a01b036040931686526060602087015260608601906109ea565b930152565b939094613008611f94565b5060009280156132805761304d935061301f611ee5565b5091600061302f5a8860036146f4565b5a906040519687928392631efc84dd60e31b84528c60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d3576000948592613262575b5081948092811561323f5750506130aa9095929394955b85611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846130e28885611ed8565b10613210575a6130f188611b91565b116131b557918893918796959360008c8b61312461311b613115886131449f611bb3565b60011c90565b809a60036146f4565b835a936040519e8f9586948593631efc84dd60e31b855260048501612fd2565b03925af19889156112d357600090819a61318f575b501561317a5750505061316b83611ec9565b95915b939495919290926130d7565b93965093613189919750611ba5565b9461316e565b906131ad929a503d8091833e6131a581836104d7565b810190612c92565b989038613159565b509550939550505093506131c761232d565b926131d0610539565b93600085526000602086015260408501526131e9610539565b928352602083015260408201526131fe610539565b60018152916020830152604082015290565b9650965050919550506132329150613226610539565b93845215156020840152565b6040820152612bf3610539565b96509650505094505050613232613254610539565b600081529215156020840152565b909461327892503d8091833e6131a581836104d7565b90933861308d565b506132b2915a90846132945a8960036146f4565b5a906040519687928392631efc84dd60e31b84528d60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613317575b5050839461330081935a90611ed8565b94811561323f5750506130aa9095929394956130a4565b909194506133309295503d8091833e6131a581836104d7565b9390939238806132f0565b939094613346611f94565b5060009280156134c45761336d935061335d611ee5565b5091600061302f5a8860016146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926134a6575b5081948092811561323f5750506133c990959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134018885611ed8565b10613210575a61341088611b91565b116131b557918893918796959360008c8b6131246134346131158861343d9f611bb3565b809a60016146f4565b03925af19889156112d357600090819a613488575b50156134735750505061346483611ec9565b95915b939495919290926133f6565b93965093613482919750611ba5565b94613467565b9061349e929a503d8091833e6131a581836104d7565b989038613452565b90946134bc92503d8091833e6131a581836104d7565b9093386133ad565b506134d8915a90846132945a8960016146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d35785809561353d575b5050839461352681935a90611ed8565b94811561323f5750506133c99095929394956130a4565b909194506135569295503d8091833e6131a581836104d7565b939093923880613516565b93909461356c611f94565b5060009280156136ea576135939350613583611ee5565b5091600061302f5a8860026146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926136cc575b5081948092811561323f5750506135ef90959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846136278885611ed8565b10613210575a61363688611b91565b116131b557918893918796959360008c8b61312461365a613115886136639f611bb3565b809a60026146f4565b03925af19889156112d357600090819a6136ae575b50156136995750505061368a83611ec9565b95915b9394959192909261361c565b939650936136a8919750611ba5565b9461368d565b906136c4929a503d8091833e6131a581836104d7565b989038613678565b90946136e292503d8091833e6131a581836104d7565b9093386135d3565b506136fe915a90846132945a8960026146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613763575b5050839461374c81935a90611ed8565b94811561323f5750506135ef9095929394956130a4565b9091945061377c9295503d8091833e6131a581836104d7565b93909392388061373c565b1561378e57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613869906137ef6137e282612f60565b6001600160a01b03168452565b6020810135602084015261381c6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261385360c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e08101906122fa565b9081156138a55761388d8260e092613888603461050897961015613787565b614930565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b91906040838203126103d457825167ffffffffffffffff81116103d4576020916138e7918501612c50565b92015190565b9035601e19823603018112156103d457016020813591019167ffffffffffffffff82116103d45781360383136103d457565b6105c69161393d81613930846105da565b6001600160a01b03169052565b602082013560208201526139d36139c761398e61397361396060408701876138ed565b61012060408801526101208701916122bc565b61398060608701876138ed565b9086830360608801526122bc565b6080850135608085015260a085013560a085015260c085013560c08501526139b960e08601866138ed565b9085830360e08701526122bc565b926101008101906138ed565b916101008185039101526122bc565b6139fa6040929594939560608352606083019061391f565b9460208201520152565b60a0906105c69392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929390915a92815190613a6c60e08301516001600160a01b031690565b91613a8a836001600160a01b03166000526000602052604060002090565b8054898110613bd1576001600160a01b0360206080600097958d9795613aec9d9e8a960390550151970151926040519a8b96879586937f52b7512c000000000000000000000000000000000000000000000000000000008552600485016139e2565b03931686f19384600091600096613baa575b50613b295785613b0c612e25565b906119a56040519283926365c8fd4d60e01b845260048401613a04565b9491925a900311613b375750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613bca91503d806000833e613bc281836104d7565b8101906138bc565b9438613afe565b6119a589604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b929190612ff860209160408652604086019061391f565b6001600160a01b0316600052600060205260406000208054918201809211611ba05781905590565b613c766001600160a01b0391614968565b9116613d4157613ced57613c916001600160a01b0391614968565b5016613c9957565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613d9e612436565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b908160209103126103d4575190565b60a0906105c69392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929091613ead6020600095855193613e7760e0613e4e87516001600160a01b031690565b96613e698a8c613e6160408901896122fa565b929091614a3b565b01516001600160a01b031690565b91886001600160a01b03819416159889613f4b575b85015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1859181613f1a575b50613eee5784613ed1612e25565b906119a56040519283926365c8fd4d60e01b845260048401613ddf565b939192613ef9575050565b613f16906001600160a01b03166000526000602052604060002090565b5050565b613f3d91925060203d602011613f44575b613f3581836104d7565b810190613dd0565b9038613ec3565b503d613f2b565b9350613f6a876001600160a01b03166000526000602052604060002090565b548015613f7d575084815b949050613e8c565b85908203613f75565b94929193906020613ff691865193613fbd60e0613faa87516001600160a01b031690565b96613e698b8d613e6160408901896122fa565b916001600160a01b03600093161598896140c3575b84600091015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1600091816140a2575b5061401b5785613ed1612e25565b94929361402757505050565b614044906001600160a01b03166000526000602052604060002090565b918254908183116140555750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b6140bc91925060203d602011613f4457613f3581836104d7565b903861400d565b92506140e2866001600160a01b03166000526000602052604060002090565b54878111156140fa5750600084815b94915050613fd2565b8460009189036140f1565b6001600160a01b0316600052600160205267ffffffffffffffff6141438260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261415084611c56565b9055161490565b6101206101008201519101518082146141ad577f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd54806141a7575048905b01808210156141a2575090565b905090565b90614195565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b919082356142d0816105c9565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061430883856122fa565b90600360009211614354575b50160361433f57506105c690611071604051938492638dd7712f60e01b602085015260248401613c26565b6105c6925061434d916122fa565b3691610574565b90503538614314565b50929192159081614412575b506143d5576014811015614382575b50506105c6611ee5565b6014116103d4573560601c3b1561439a573880614378565b6040516143a86040826104d7565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143e56040826104d7565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614369565b919091610120818403126103d457614432610548565b9261443c826105da565b845260208201356020850152604082013567ffffffffffffffff81116103d457816144689184016105ab565b6040850152606082013567ffffffffffffffff81116103d4578161448d9184016105ab565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff81116103d457816144d09184016105ab565b60e085015261010082013567ffffffffffffffff81116103d4576144f492016105ab565b610100830152565b60041115610a7a57565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b16855216601484015216602482015261455482518093602086850191016109c7565b010190565b80516001600160a01b031682526105c691602082015160208201526101006145da6145aa614598604086015161012060408701526101208601906109ea565b606086015185820360608701526109ea565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109ea565b920151906101008184039101526109ea565b60806101a091610120815161460a8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465e60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146ca6146bf6102009396959496600084526102206020850152610220840190614559565b9560408301906145ec565b0152565b610200906146ca6146bf6000949695968584526102206020850152610220840190614559565b916146fd612237565b92614708368461441c565b614711826144fc565b6002821461484c57614722826144fc565b600382146147ce5750806147376001926144fc565b146147815760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b6147966105c6926020611071950151906142c3565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501612fd2565b9190506fffffffffffffffffffffffffffffffff61480c61480560806105c69601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526110716040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146ce565b9161107191506fffffffffffffffffffffffffffffffff19846148d860e06105c697016148ca61488561487f83866122fa565b90614930565b9391905060609160e08b019660348851511161490e575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614506565b03601f1981018452836104d7565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161469a565b61492892935061434d91614921916122fa565b80916126f8565b90388061489c565b9091826014116103d457813591836024116103d4576014810135936034116103d45760609290921c92608090811c9260240135901c90565b8015614a3257614976611f75565b5065ffffffffffff8160a01c16908115614a24575b614a06906149ed6149e2604051946149a286610482565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526149d66040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b4211908115614a09575b5091516001600160a01b031690565b91565b51614a1c915065ffffffffffff166149e2565b4210386149f7565b65ffffffffffff915061498b565b50600090600090565b92909181614a4a575b50505050565b8251516001600160a01b031693843b614c665760408451015160206040518092632b870d1b60e11b825281600081614a868a8a600484016122dd565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f19081156112d357600091614c47575b506001600160a01b038116958615614bf2576001600160a01b0316809603614b9d573b15614b50575061282f6128297fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614b1d936126ea565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a338808080614a44565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6119a583604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c60915060203d6020116112cc576112be81836104d7565b38614ac3565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b81604051918237209056fea26469706673582212202e30fefaa76ef5c57cb86b1f7b785fa3d3ac6c72b180bad6b4f63cf70fe7ae9c64736f6c634300081c003360808060405234601557610179908161001b8239f35b600080fdfe6080600436101561000f57600080fd5b60003560e01c63570e1a361461002457600080fd5b3461013e57602036600319011261013e5760043567ffffffffffffffff811161013e573660238201121561013e57806004013567ffffffffffffffff811161013e57366024828401011161013e576000928160141161013a5760131982019167ffffffffffffffff831161012657600b8101601f19908116603f0116820167ffffffffffffffff8111838210176101125760246020959387600c819795829560405286845289840196603889018837830101525193013560601c5af19051901561010a575b60209073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5060006100e9565b602486634e487b7160e01b81526041600452fd5b602485634e487b7160e01b81526041600452fd5b8380fd5b600080fdfea2646970667358221220835f9b39d36d1e9f6a4143e93be04de137e46b8d981cf0a3e517cfa714ac421864736f6c634300081c0033","sourceMap":"1166:17660:21:-:0;;;;;;;1713:1:15;1917:21;1166:17660:21;1803:19:20;;;;-1:-1:-1;;;;;1803:19:20;;;;;;;;;;;;;;;-1:-1:-1;1803:19:20;;;;;;;1292:4:21;;;1166:17660;;:::i;:::-;-1:-1:-1;1166:17660:21;;1379:15;;;1166:17660;-1:-1:-1;1166:17660:21;;;1379:15;1166:17660;;:::i;:::-;-1:-1:-1;1166:17660:21;;1347:48;1166:17660;1347:48;1166:17660;;-1:-1:-1;;;;;;1166:17660:21;;;;;;;;;;;;;;;;;1803:19:20;1166:17660:21;;;;;;;;;;1292:4;1166:17660;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1803:19:20;1166:17660:21;;;-1:-1:-1;1166:17660:21;;;;;1803:19:20;1166:17660:21;;;-1:-1:-1;1166:17660:21;;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610023575b361561001957600080fd5b610021612e1c565b005b60003560e01c80630396cb60146101de5780630bd28e3b146101d95780630da82661146101d45780631b2e01b8146101cf578063205c2878146101ca578063212eccc6146101c557806321e60b37146101c057806322cdde4c146101bb57806335567e1a146101b657806344403473146101b15780635287ce12146101ac57806370a08231146101a7578063765e827f146101665780637da0c462146101a2578063850aaf621461019d5780639b249f6914610198578063acbe911e14610193578063aec321fb1461018e578063af32494314610189578063b760faf914610184578063bb9fe6bf1461017f578063c23a5cea1461017a578063c3bce00914610175578063c579f76b14610170578063d72f25931461016b578063dbed18e014610166578063f7e426e8146101615763fc7e286d0361000e57611a57565b611a1e565b610e95565b6119fe565b61176e565b611750565b611629565b611502565b6114d7565b611464565b61140c565b6112d8565b6111dc565b61114a565b610f5c565b610e1e565b610d0d565b610cc7565b610be7565b610bc7565b610aca565b610a7f565b61081e565b6107bd565b61069a565b6103ef565b60203660031901126103d45760043563ffffffff8116908181036103d4576103cf7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103b161029f61028f610247336001600160a01b03166000526000602052604060002090565b96610253811515611ae5565b6102806001890154916102796102708463ffffffff9060781c1690565b63ffffffff1690565b1115611b30565b60081c6001600160701b031690565b6001600160701b03349116611bb3565b946102ab861515611bc0565b6102be6001600160701b03871115611c0b565b546102c76104f9565b908152600160208201526001600160701b038616604082015263ffffffff8316606082015260006080820152610310336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b602435906001600160c01b03821682036103d457565b346103d45760203660031901126103d4576004356001600160c01b03811681036103d45761043d903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6104478154611c56565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761047d57604052565b61044b565b6060810190811067ffffffffffffffff82111761047d57604052565b610140810190811067ffffffffffffffff82111761047d57604052565b6040810190811067ffffffffffffffff82111761047d57604052565b90601f8019910116810190811067ffffffffffffffff82111761047d57604052565b6040519061050860a0836104d7565b565b60405190610508610140836104d7565b60405190610508610100836104d7565b604051906105086040836104d7565b604051906105086060836104d7565b60405190610508610120836104d7565b67ffffffffffffffff811161047d57601f01601f191660200190565b92919261058082610558565b9161058e60405193846104d7565b8294818452818301116103d4578281602093846000960137010152565b9080601f830112156103d4578160206105c693359101610574565b90565b6001600160a01b038116036103d457565b3590610508826105c9565b60431901906101c082126103d4576040516105ff81610461565b6101408193126103d45761061161050a565b61061b60446105da565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526106596101246105da565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103d4576102203660031901126103d45760043567ffffffffffffffff81116103d4576106cc9036906004016105ab565b3660231901906101c082126103d457610140604051926106eb84610461565b126103d4576106f861050a565b61070260246105da565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261073f6101046105da565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103d4576040926107a66107b19336906004016105ab565b906102043592611c65565b82519182526020820152f35b346103d45760403660031901126103d45760206108156004356107df816105c9565b6001600160a01b036107ef6103d9565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103d45760403660031901126103d45760043561083b816105c9565b6024353360005260006020526040600020918254908183116108c35760008080856001600160a01b03829589610874846100219a611ed8565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108bd611efa565b50611f2a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f840112156103d45782359167ffffffffffffffff83116103d4576020808501948460051b0101116103d457565b90816101209103126103d45790565b60c06003198201126103d45760043567ffffffffffffffff81116103d4578161097291600401610907565b929092916024359067ffffffffffffffff82116103d45761099591600401610938565b906044356109a2816105c9565b90606435906084359060a43590565b634e487b7160e01b600052602160045260246000fd5b60005b8381106109da5750506000910152565b81810151838201526020016109ca565b90602091610a03815180928185528580860191016109c7565b601f01601f1916010190565b6020815281516002811015610a7a57602082015260a0604080610a5e8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109ea565b9401518051606085015260208101516080850152015191015290565b6109b1565b346103d457610ac6610aba610aac610a9636610947565b9691949095610aa6949394611f94565b50612edb565b610ab581612f6a565b612ffd565b60405191829182610a0f565b0390f35b346103d4576102003660031901126103d45760243560043567ffffffffffffffff82116103d457610b02610ac6923690600401610938565b90610b0c366105e5565b600092815192610b1c84836137d2565b610b2582611fd8565b60208401526001600160a01b0360e0610b5f86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610b87575b6040805160008082526020820188905291810191909152806060810188565b610b919450613a4f565b905038808080610b68565b60206003198201126103d4576004359067ffffffffffffffff82116103d4576105c691600401610938565b346103d4576020610bdf610bda36610b9c565b611fd8565b604051908152f35b346103d45760403660031901126103d4576020600435610c06816105c9565b6001600160a01b03610c166103d9565b911660005260018252610c40816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156103d45782359167ffffffffffffffff83116103d457602083818601950101116103d457565b9060606003198301126103d457600435610c9f816105c9565b916024359067ffffffffffffffff82116103d457610cbf91600401610c58565b909160443590565b346103d45760008080610cd936610c86565b939181604094929451948592833781018381520393f1610cf7611efa565b9015610cff57005b80519081156103d457602001fd5b346103d45760203660031901126103d4576001600160a01b03600435610d32816105c9565b60006080604051610d4281610461565b8281528260208201528260408201528260608201520152166000526000602052610ac66040600020610dca65ffffffffffff600160405193610d8385610461565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103d45760203660031901126103d4576001600160a01b03600435610e43816105c9565b1660005260006020526020604060002054604051908152f35b60406003198201126103d4576004359067ffffffffffffffff82116103d457610e8791600401610907565b90916024356105c6816105c9565b346103d457610ea336610e5c565b505050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b61012060e06105c6936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109ea565b346103d45760603660031901126103d45760043567ffffffffffffffff81116103d457610f8d903690600401610938565b602435610f99816105c9565b60443567ffffffffffffffff81116103d457610fb99036906004016105ab565b91610fc26120bb565b50600091600280541461113b57610ac69360028055610fdf612237565b610fe884612f6a565b610ff28185612955565b91955a60608501518561100860608501856122fa565b94908c60038711611133575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361111b5750611084945061107f602083015191611071604051938492638dd7712f60e01b602085015260248401613c26565b03601f1981018352826104d7565b611c65565b9390975b80956060976001600160a01b0381166110f2575b5050509560806110d796970151976110b261051a565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526110e66001600255565b60405191829182610efa565b6110d798508280949850602083519301915af1956080611110611efa565b97959197963861109c565b61107f915061112b953691610574565b939097611088565b508035611014565b600483633ee5aeb560e01b8152fd5b346103d45760403660031901126103d4576111666004356105c9565b60243567ffffffffffffffff81116103d457611186903690600401610c58565b5050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b346103d45760203660031901126103d45760043567ffffffffffffffff81116103d457602061121261122e923690600401610c58565b906040519384928392632b870d1b60e11b8452600484016122dd565b038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156112d3576001600160a01b03916000916112a4575b507f6ca7b806000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b6112c6915060203d6020116112cc575b6112be81836104d7565b8101906122a7565b38611275565b503d6112b4565b6122ee565b346103d457610ac6610aba6112ec36610947565b9594909493919361237b565b60406003198201126103d45760043567ffffffffffffffff81116103d4578161132391600401610907565b929092916024359067ffffffffffffffff82116103d4576105c691600401610938565b6105c69060208152610100608061139f81865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109ea565b6020808701518051604087015201516060850152946113cf60408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103d45761141a366112f8565b919061142461244f565b5060005b81811061144757610ac661143b8561278f565b60405191829182611346565b8061145d61145860019385876124ec565b61278f565b5001611428565b346103d457611472366112f8565b919061147c6120bb565b5060209060005b8181106114b157610ac66110e686604051906114a06020836104d7565b600082526114ac6120bb565b612110565b806114d06114c260019385886124ec565b604051906114a087836104d7565b5001611483565b60203660031901126103d4576100216004356114f2816105c9565b612514565b60009103126103d457565b346103d45760003660031901126103d4573360005260006020526001604060002001805463ffffffff8160781c16156115e55761156e6115606102708361155461154f6115a89660ff1690565b612555565b60781c63ffffffff1690565b65ffffffffffff42166125a0565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103cf565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103d45760203660031901126103d457610021600080808060043561164e816105c9565b6001600160a01b036001611675336001600160a01b03166000526000602052604060002090565b01916117038354936116db65ffffffffffff6116c76116ad6116a1896001600160701b039060081c1690565b6001600160701b031690565b976116b98915156125be565b60981c65ffffffffffff1690565b166116d3811515612609565b421015612654565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af161174a611efa565b5061269f565b346103d457610ac661143b61145836610b9c565b801515036103d457565b346103d4576102203660031901126103d45760043560243567ffffffffffffffff81116103d4576117a3903690600401610938565b906117ad366105e5565b61020435906117bb82611764565b6000935a8251936117cc85846137d2565b6117d583611fd8565b60208501526040850151956118216effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a089015117610100890151176101208901511711156128f4565b61184c86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b9061185a8883888885613f86565b9761188161187d6118728a516001600160a01b031690565b60208b015190614105565b1590565b6119a9575a850311611957576060926001600160a01b036118ad60e05a9a01516001600160a01b031690565b161515908161194f575b50611918575b509360806118f49460a06118ef95610ac699956118fb99604087015260608601525a9003910135019101525a90611ed8565b61293f565b6064900490565b604051938493846040919493926060820195825260208201520152565b819850610ac69692508460a06118ef9561193d89956118fb9a6118f49a608097613a4f565b9c90969a5094985095505094506118bd565b9050386118b7565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103d457610ac6610aba611a1236610947565b95949094939193612b65565b346103d457611a38611a2f36610c86565b92919091612cc9565b90610ac6604051928392151583526040602084015260408301906109ea565b346103d45760203660031901126103d4576001600160a01b03600435611a7c816105c9565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b15611aec57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611b3757565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211611ba057565b611b7b565b9060018201809211611ba057565b91908201809211611ba057565b15611bc757565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611c1257565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6000198114611ba05760010190565b93929093845190606082015181519081611e50575b505050505a900360808401510192600093845a835194611c9986614157565b92611cae60e08801516001600160a01b031690565b6001600160a01b038116919082611d7e5750505050611cd485516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611d69575b505085029460408501938451878110600014611d3e57505050611d3a939450611d226000612e53565b5a9003905101905183611d358295614280565b6141b1565b9190565b611d3a969295508780955060019450611d5992910390613c3d565b50611d646000612e53565b614219565b9196916064919003600a020401943880611cf9565b95928051611d8f575b505050611cd6565b9091929950611d9d82612e53565b5a9260a089015190803b15611e4c579183929187848196948f611df2604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601612e5d565b0393f19182611e32575b5050611e26576119a5611e0d612e25565b6040519182916365c8fd4d60e01b835260048301612e8f565b5a900396388080611d87565b611e3f611e4592826104d7565b806114f7565b3880611dfc565b8380fd5b600080949360206001600160a01b0383965116910192f115611e755738808080611c7a565b6119a5611e80612e25565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109ea565b600319810191908211611ba057565b600019810191908211611ba057565b91908203918211611ba057565b60405190611ef46020836104d7565b60008252565b3d15611f25573d90611f0b82610558565b91611f1960405193846104d7565b82523d6000602084013e565b606090565b15611f3157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190611f8282610482565b60006040838281528260208201520152565b60405190611fa182610482565b8160008152604051611fb281610482565b60008152600060208201526060604082015260208201526040611fd3611f75565b910152565b602081013561208c611fed60408401846122fa565b9081604051918237209161107161200760608601866122fa565b90816040519182372060c086013560a0870135608088013561203561202f60e08b018b6122fa565b90614cb3565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b519020604080516020810192835230918101919091524660608201526120b58160808101611071565b51902090565b60405190610100820182811067ffffffffffffffff82111761047d57604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b50905060028054146122265760028055608061212a612237565b9161213481612f6a565b61213e8382612955565b926000929192905a908760608101519161215b60608201826122fa565b956003871161221e575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361220657506121c2945061107f602083015191611071604051938492638dd7712f60e01b602085015260248401613c26565b9490955b0151946121d161051a565b958652602086015260408501526060840152608083015260a0820152600060c0820152606060e0820152906105086001600255565b61107f9150612216953691610574565b9490956121c6565b508035612165565b633ee5aeb560e01b60005260046000fd5b6040519061224482610461565b60006080836040516122558161049e565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b908160209103126103d457516105c6816105c9565b908060209392818452848401376000828201840152601f01601f1916010190565b9160206105c69381815201916122bc565b6040513d6000823e3d90fd5b903590601e19813603018212156103d4570180359067ffffffffffffffff82116103d4576020019181360383136103d457565b6040519061233c6020836104d7565b6000808352366020840137565b9061235382610558565b61236060405191826104d7565b8281528092612371601f1991610558565b0190602036910137565b9594939291909561238a611f94565b5061239860608301836122fa565b9050156123ce576105c6966123ac91612edb565b6123c66123b7612237565b6123c083612f6a565b82612955565b50505061333b565b505050505050506123dd61232d565b604051906123ea82610482565b6000825260006020830152604082015260405161240681610482565b6000815260006020820152600060408201526040519161242583610482565b600083526020830152604082015290565b60405190612443826104bb565b60006020838281520152565b6040519061245c82610461565b8160405161246981610461565b60008152600060208201526000604082015260006060820152606060808201528152612493612436565b60208201526124a0612436565b60408201526124ad612436565b60608201526080604051916124c1836104bb565b600083526124cd612436565b60208401520152565b634e487b7160e01b600052603260045260246000fd5b919081101561250f5760051b8101359061011e19813603018212156103d4570190565b6124d6565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036125493485613c3d565b936040519485521692a2565b1561255c57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611ba057565b156125c557565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561261057565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561265b57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156126a657565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b906014116103d45790601490565b90929192836034116103d45783116103d457603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612735575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612762826104bb565b6003546001600160a01b0316825260405160208361277f836104bb565b6004548352600554828401520152565b61279761244f565b506127a0612237565b906127aa81612f6a565b6127b48282612955565b509190926127c28385613c65565b6127df6127da60e0835101516001600160a01b031690565b613d8d565b9161280d6127f96127da84516001600160a01b0390511690565b91612802612436565b5060408101906122fa565b90601482106128e85761282f612829612835936127da936126ea565b90612715565b60601c90565b916001600160a01b03861694608082015196606060408401519301519261285a6104f9565b9889526020890152604088015260608701526080860152612879612755565b93801515806128dd575b6128ab575b506128916104f9565b948552602085015260408401526060830152608082015290565b9093506128b781613d8d565b6128d16128c261052a565b6001600160a01b039093168352565b60208201529238612888565b506001811415612883565b50506128356000613d8d565b156128fb57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715611ba057565b90916000915a9380519161296983826137d2565b61297281611fd8565b60208301526040830151956129be6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a087015117610100870151176101208701511711156128f4565b6129e984610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129f7888286866000613f86565b97612a1a61187d612a0f88516001600160a01b031690565b602089015190614105565b612b11575a830311612abd576060906001600160a01b03612a4660e05a9801516001600160a01b031690565b16151580612ab5575b612a82575b6118ef9360a06105c69794879460809460406118f49a015260608601525a9003910135019101525a90611ed8565b965050928260808360a06105c697612aa38b6118f4996118ef996000613a4f565b9b909598509350949750509350612a54565b506001612a4f565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b95949392919095612b74611f94565b506014612b8460e08401846122fa565b905010612bbf576105c696612bb191610aa6612b9e612237565b612ba98151876137d2565b5a9086613e2a565b612bba81612f6a565b613561565b50505050505050612bce61232d565b60405190612bdb82610482565b60008252600060208301526040820152612bf3610539565b600081526000602082015260006040820152612c0d610539565b91600083526020830152604082015290565b6040906001600160a01b036105c6959316815281602082015201916122bc565b90815181101561250f570160200190565b81601f820112156103d4578051612c6681610558565b92612c7460405194856104d7565b818452602082840101116103d4576105c691602080850191016109c7565b9190916040818403126103d4578051612caa81611764565b92602082015167ffffffffffffffff81116103d4576105c69201612c50565b91926000936001600160a01b036060941691823b156103d457612d4993600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612c1f565b0393f19081612e07575b50612df4575050612d62611efa565b906004825110612df857612d7e612d798351611eba565b612349565b60045b8351811015612dde5780612dc0612d9a60019387612c3f565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612dd7612dcc83611eba565b9160001a9185612c3f565b5301612d81565b50612df491925060208082518301019101612c92565b9091565b9050612e0261232d565b600091565b80611e3f6000612e16936104d7565b38612d53565b61050833612514565b3d6108008111612e4a575b604051906020818301016040528082526000602083013e90565b50610800612e30565b60031115610a7a57565b90949392946003811015610a7a57606092612e859183526080602084015260808301906109ea565b9460408201520152565b9060a06105c6926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109ea565b60005b828110612eea57505050565b600190612ef5612237565b612f008286866124ec565b612f0981612f6a565b612f138282612955565b505050612f2360608201826122fa565b905015612f5957612f3d60009291602084930151906142c3565b9082602083519301915af150612f51611efa565b505b01612ede565b5050612f53565b356105c6816105c9565b612f9d90612f7b60408201826122fa565b91612f95813591612f8b836105c9565b60e08101906122fa565b93909261435d565b8051612fa65750565b6119a590604051918291631101335b60e11b8352600060048401526040602484015260448301906109ea565b939291612ff8906001600160a01b036040931686526060602087015260608601906109ea565b930152565b939094613008611f94565b5060009280156132805761304d935061301f611ee5565b5091600061302f5a8860036146f4565b5a906040519687928392631efc84dd60e31b84528c60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d3576000948592613262575b5081948092811561323f5750506130aa9095929394955b85611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846130e28885611ed8565b10613210575a6130f188611b91565b116131b557918893918796959360008c8b61312461311b613115886131449f611bb3565b60011c90565b809a60036146f4565b835a936040519e8f9586948593631efc84dd60e31b855260048501612fd2565b03925af19889156112d357600090819a61318f575b501561317a5750505061316b83611ec9565b95915b939495919290926130d7565b93965093613189919750611ba5565b9461316e565b906131ad929a503d8091833e6131a581836104d7565b810190612c92565b989038613159565b509550939550505093506131c761232d565b926131d0610539565b93600085526000602086015260408501526131e9610539565b928352602083015260408201526131fe610539565b60018152916020830152604082015290565b9650965050919550506132329150613226610539565b93845215156020840152565b6040820152612bf3610539565b96509650505094505050613232613254610539565b600081529215156020840152565b909461327892503d8091833e6131a581836104d7565b90933861308d565b506132b2915a90846132945a8960036146f4565b5a906040519687928392631efc84dd60e31b84528d60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613317575b5050839461330081935a90611ed8565b94811561323f5750506130aa9095929394956130a4565b909194506133309295503d8091833e6131a581836104d7565b9390939238806132f0565b939094613346611f94565b5060009280156134c45761336d935061335d611ee5565b5091600061302f5a8860016146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926134a6575b5081948092811561323f5750506133c990959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134018885611ed8565b10613210575a61341088611b91565b116131b557918893918796959360008c8b6131246134346131158861343d9f611bb3565b809a60016146f4565b03925af19889156112d357600090819a613488575b50156134735750505061346483611ec9565b95915b939495919290926133f6565b93965093613482919750611ba5565b94613467565b9061349e929a503d8091833e6131a581836104d7565b989038613452565b90946134bc92503d8091833e6131a581836104d7565b9093386133ad565b506134d8915a90846132945a8960016146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d35785809561353d575b5050839461352681935a90611ed8565b94811561323f5750506133c99095929394956130a4565b909194506135569295503d8091833e6131a581836104d7565b939093923880613516565b93909461356c611f94565b5060009280156136ea576135939350613583611ee5565b5091600061302f5a8860026146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926136cc575b5081948092811561323f5750506135ef90959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846136278885611ed8565b10613210575a61363688611b91565b116131b557918893918796959360008c8b61312461365a613115886136639f611bb3565b809a60026146f4565b03925af19889156112d357600090819a6136ae575b50156136995750505061368a83611ec9565b95915b9394959192909261361c565b939650936136a8919750611ba5565b9461368d565b906136c4929a503d8091833e6131a581836104d7565b989038613678565b90946136e292503d8091833e6131a581836104d7565b9093386135d3565b506136fe915a90846132945a8960026146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613763575b5050839461374c81935a90611ed8565b94811561323f5750506135ef9095929394956130a4565b9091945061377c9295503d8091833e6131a581836104d7565b93909392388061373c565b1561378e57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613869906137ef6137e282612f60565b6001600160a01b03168452565b6020810135602084015261381c6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261385360c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e08101906122fa565b9081156138a55761388d8260e092613888603461050897961015613787565b614930565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b91906040838203126103d457825167ffffffffffffffff81116103d4576020916138e7918501612c50565b92015190565b9035601e19823603018112156103d457016020813591019167ffffffffffffffff82116103d45781360383136103d457565b6105c69161393d81613930846105da565b6001600160a01b03169052565b602082013560208201526139d36139c761398e61397361396060408701876138ed565b61012060408801526101208701916122bc565b61398060608701876138ed565b9086830360608801526122bc565b6080850135608085015260a085013560a085015260c085013560c08501526139b960e08601866138ed565b9085830360e08701526122bc565b926101008101906138ed565b916101008185039101526122bc565b6139fa6040929594939560608352606083019061391f565b9460208201520152565b60a0906105c69392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929390915a92815190613a6c60e08301516001600160a01b031690565b91613a8a836001600160a01b03166000526000602052604060002090565b8054898110613bd1576001600160a01b0360206080600097958d9795613aec9d9e8a960390550151970151926040519a8b96879586937f52b7512c000000000000000000000000000000000000000000000000000000008552600485016139e2565b03931686f19384600091600096613baa575b50613b295785613b0c612e25565b906119a56040519283926365c8fd4d60e01b845260048401613a04565b9491925a900311613b375750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613bca91503d806000833e613bc281836104d7565b8101906138bc565b9438613afe565b6119a589604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b929190612ff860209160408652604086019061391f565b6001600160a01b0316600052600060205260406000208054918201809211611ba05781905590565b613c766001600160a01b0391614968565b9116613d4157613ced57613c916001600160a01b0391614968565b5016613c9957565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613d9e612436565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b908160209103126103d4575190565b60a0906105c69392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929091613ead6020600095855193613e7760e0613e4e87516001600160a01b031690565b96613e698a8c613e6160408901896122fa565b929091614a3b565b01516001600160a01b031690565b91886001600160a01b03819416159889613f4b575b85015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1859181613f1a575b50613eee5784613ed1612e25565b906119a56040519283926365c8fd4d60e01b845260048401613ddf565b939192613ef9575050565b613f16906001600160a01b03166000526000602052604060002090565b5050565b613f3d91925060203d602011613f44575b613f3581836104d7565b810190613dd0565b9038613ec3565b503d613f2b565b9350613f6a876001600160a01b03166000526000602052604060002090565b548015613f7d575084815b949050613e8c565b85908203613f75565b94929193906020613ff691865193613fbd60e0613faa87516001600160a01b031690565b96613e698b8d613e6160408901896122fa565b916001600160a01b03600093161598896140c3575b84600091015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1600091816140a2575b5061401b5785613ed1612e25565b94929361402757505050565b614044906001600160a01b03166000526000602052604060002090565b918254908183116140555750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b6140bc91925060203d602011613f4457613f3581836104d7565b903861400d565b92506140e2866001600160a01b03166000526000602052604060002090565b54878111156140fa5750600084815b94915050613fd2565b8460009189036140f1565b6001600160a01b0316600052600160205267ffffffffffffffff6141438260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261415084611c56565b9055161490565b6101206101008201519101518082146141ad577f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd54806141a7575048905b01808210156141a2575090565b905090565b90614195565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b919082356142d0816105c9565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061430883856122fa565b90600360009211614354575b50160361433f57506105c690611071604051938492638dd7712f60e01b602085015260248401613c26565b6105c6925061434d916122fa565b3691610574565b90503538614314565b50929192159081614412575b506143d5576014811015614382575b50506105c6611ee5565b6014116103d4573560601c3b1561439a573880614378565b6040516143a86040826104d7565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143e56040826104d7565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614369565b919091610120818403126103d457614432610548565b9261443c826105da565b845260208201356020850152604082013567ffffffffffffffff81116103d457816144689184016105ab565b6040850152606082013567ffffffffffffffff81116103d4578161448d9184016105ab565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff81116103d457816144d09184016105ab565b60e085015261010082013567ffffffffffffffff81116103d4576144f492016105ab565b610100830152565b60041115610a7a57565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b16855216601484015216602482015261455482518093602086850191016109c7565b010190565b80516001600160a01b031682526105c691602082015160208201526101006145da6145aa614598604086015161012060408701526101208601906109ea565b606086015185820360608701526109ea565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109ea565b920151906101008184039101526109ea565b60806101a091610120815161460a8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465e60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146ca6146bf6102009396959496600084526102206020850152610220840190614559565b9560408301906145ec565b0152565b610200906146ca6146bf6000949695968584526102206020850152610220840190614559565b916146fd612237565b92614708368461441c565b614711826144fc565b6002821461484c57614722826144fc565b600382146147ce5750806147376001926144fc565b146147815760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b6147966105c6926020611071950151906142c3565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501612fd2565b9190506fffffffffffffffffffffffffffffffff61480c61480560806105c69601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526110716040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146ce565b9161107191506fffffffffffffffffffffffffffffffff19846148d860e06105c697016148ca61488561487f83866122fa565b90614930565b9391905060609160e08b019660348851511161490e575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614506565b03601f1981018452836104d7565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161469a565b61492892935061434d91614921916122fa565b80916126f8565b90388061489c565b9091826014116103d457813591836024116103d4576014810135936034116103d45760609290921c92608090811c9260240135901c90565b8015614a3257614976611f75565b5065ffffffffffff8160a01c16908115614a24575b614a06906149ed6149e2604051946149a286610482565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526149d66040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b4211908115614a09575b5091516001600160a01b031690565b91565b51614a1c915065ffffffffffff166149e2565b4210386149f7565b65ffffffffffff915061498b565b50600090600090565b92909181614a4a575b50505050565b8251516001600160a01b031693843b614c665760408451015160206040518092632b870d1b60e11b825281600081614a868a8a600484016122dd565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f19081156112d357600091614c47575b506001600160a01b038116958615614bf2576001600160a01b0316809603614b9d573b15614b50575061282f6128297fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614b1d936126ea565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a338808080614a44565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6119a583604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c60915060203d6020116112cc576112be81836104d7565b38614ac3565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b81604051918237209056fea26469706673582212202e30fefaa76ef5c57cb86b1f7b785fa3d3ac6c72b180bad6b4f63cf70fe7ae9c64736f6c634300081c0033","sourceMap":"1166:17660:21:-:0;;;;;;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;:::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;;1166:17660:21;;;;;;;;;;;;;;;2977:47:3;;2428:10;1166:17660:21;2657:22:3;1166:17660:21;2419:20:3;2428:10;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;2419:20:3;2457:19;2449:58;2457:19;;;2449:58;:::i;:::-;2517:114;2557:20;;;1166:17660:21;;2538:39:3;1166:17660:21;;;;;;;;;;;;;;2538:39:3;-1:-1:-1;2538:39:3;2517:114;:::i;:::-;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;-1:-1:-1;;;;;2670:9:3;1166:17660:21;;2657:22:3;:::i;:::-;2697:9;2689:40;2697:9;;;2689:40;:::i;:::-;2739:53;-1:-1:-1;;;;;2747:26:3;;;2739:53;:::i;:::-;1166:17660:21;;;:::i;:::-;;;;2557:20:3;1166:17660:21;2825:137:3;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;2825:137:3;;;1166:17660:21;;;;2825:137:3;;;1166:17660:21;-1:-1:-1;2825:137:3;;;1166:17660:21;2802:20:3;2428:10;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;2802:20:3;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1166:17660:21;;;;;;2825:137:3;1166:17660:21;;;;;;;;;;;;;2428:10:3;;1166:17660:21;;;;;;;2977:47:3;;;;1166:17660:21;;-1:-1:-1;1166:17660:21;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;893:36:1;913:10;;-1:-1:-1;1166:17660:21;893:19:1;1166:17660:21;;;-1:-1:-1;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;893:36:1;:38;1166:17660:21;;893:38:1;:::i;:::-;1166:17660:21;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2569:15;1166:17660;;;2569:15;1166:17660;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1166:17660:21;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1166:17660:21;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;1166:17660:21;;;;;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;279:74:1;1166:17660:21;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;:::i;:::-;;;-1:-1:-1;1166:17660:21;279:74:1;1166:17660:21;;;-1:-1:-1;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;279:74:1;1166:17660:21;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;:::i;:::-;;;4805:10:3;-1:-1:-1;1166:17660:21;-1:-1:-1;1166:17660:21;;;-1:-1:-1;1166:17660:21;;;;4834:30:3;;;;1166:17660:21;;-1:-1:-1;4919:29:3;;;-1:-1:-1;;;;;4919:29:3;;;;;5102:38;4919:29;;:::i;:::-;1166:17660:21;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;4805:10:3;;4963:54;;;1166:17660:21;5045:47:3;;;;:::i;:::-;;5102:38;:::i;1166:17660:21:-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1166:17660:21;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;13629:152;13547:13;1166:17660;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;13547:13;:::i;:::-;13598:12;;;:::i;:::-;13629:152;:::i;:::-;1166:17660;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;17627:17:20;;;17682:7;;;;;:::i;:::-;17723:21;;;:::i;:::-;1166:17660:21;17700:20:20;;1166:17660:21;-1:-1:-1;;;;;17823:17:20;17781:28;;9465:20;9248:28;;;1166:17660:21;9279:20:20;;;1166:17660:21;2360:4:20;9318:37;;;1166:17660:21;2360:4:20;9358:31;;;1166:17660:21;2360:4:20;9392:26;;;1166:17660:21;2360:4:20;9465:20;;1166:17660:21;;9086:416:20;;17781:28;17823:17;;1166:17660:21;;17819:188:20;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;17819:188:20;17923:73;;;;:::i;:::-;17870:126;;17819:188;;;;;;1166:17660:21;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;:::i;:::-;;;-1:-1:-1;1166:17660:21;507:19:1;1166:17660:21;;507:32:1;1166:17660:21;;-1:-1:-1;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;507:32:1;1166:17660:21;;;;;;;-1:-1:-1;;1166:17660:21;507:55:1;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;1166:17660:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6750:27;;;;;:::i;:::-;6791:8;;6787:175;;1166:17660;6787:175;1166:17660;;6819:22;;;6815:36;;6865:87;;;1166:17660;;;;;;-1:-1:-1;;1166:17660:21;;;;-1:-1:-1;;;;;1166:17660:21;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1166:17660:21;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;-1:-1:-1;;;;;1166:17660:21;;;;;:::i;:::-;;-1:-1:-1;1166:17660:21;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;4947:49:20;1166:17660:21;;-1:-1:-1;;;4947:49:20;;1166:17660:21;;4947:49:20;;1166:17660:21;;;;;;;;;;;-1:-1:-1;;;1166:17660:21;;;;4947:49:20;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;1166:17660:21;2558:7:15;1166:17660:21;;2558:18:15;2554:86;;1166:17660:21;;2558:7:15;1166:17660:21;;;;:::i;:::-;16087:2;;;:::i;:::-;16211:40;;;;:::i;:::-;3174:1039:20;;3414:9;3481:20;;;1166:17660:21;3552:15:20;;3481:20;3552:15;;;;:::i;:::-;3581:16;;;3611:144;;;;;1166:17660:21;;;-1:-1:-1;;;3772:51:20;3785:38;;3927:17;4003:53;3927:17;;3872:74;3927:17;;;1166:17660:21;;3872:74:20;1166:17660:21;;3872:74:20;;;-1:-1:-1;;;3927:17:20;3872:74;;;;;;;:::i;:::-;;1166:17660:21;;3872:74:20;;;;;;:::i;:::-;4003:53;:::i;:::-;3964:92;;3768:429;;16352:18:21;16380:25;3481:20:20;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;16415:110;;3768:429:20;16571:15:21;;;;;16542:270;16571:15;;;1166:17660;;;;:::i;:::-;;;;16542:270;;;1166:17660;16542:270;;;1166:17660;3481:20:20;16542:270:21;;1166:17660;16571:15;16542:270;;1166:17660;16542:270;;;1166:17660;;;16542:270;;;1166:17660;;16542:270;;;;1166:17660;2387:1:15;305::0;2924:21:15;1166:17660:21;2744:208:15;2387:1;1166:17660:21;;;;;;;:::i;16415:110::-;16542:270;16487:27;;;;;;;;;;;;;;;;16571:15;16487:27;;:::i;:::-;16455:59;16415:110;;;;;;;3768:429:20;1166:17660:21;;;4134:48:20;1166:17660:21;;;;:::i;4134:48:20:-;4095:87;;3768:429;;;3611:144;-1:-1:-1;3611:144:20;;;;2554:86:15;2599:30;;-1:-1:-1;;;2599:30:15;;;1166:17660:21;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;4947:49:20;1166:17660:21;;-1:-1:-1;;;4947:49:20;;1166:17660:21;;4947:49:20;;1166:17660:21;;;;;;;;;;;-1:-1:-1;;;1166:17660:21;;;;4947:49:20;1166:17660:21;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;10891:38:20;1166:17660:21;;;;;;:::i;:::-;;;;10891:38:20;;;;;-1:-1:-1;;;10891:38:20;;1166:17660:21;10891:38:20;;;:::i;:::-;;1917:14;-1:-1:-1;;;;;;1917:14:20;1166:17660:21;10891:38:20;;;;;;-1:-1:-1;;;;;10891:38:20;-1:-1:-1;10891:38:20;;;1166:17660:21;10946:27:20;;-1:-1:-1;10946:27:20;1166:17660:21;;;;-1:-1:-1;10946:27:20;10891:38;;;;1166:17660:21;10891:38:20;1166:17660:21;10891:38:20;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;1166:17660:21:-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;6388:24:21;;;;;;1166:17660;6563:32;;;:::i;:::-;1166:17660;;;;;;;:::i;6414:3::-;6452:16;6433:36;6452:16;1166:17660;6452:16;;;;:::i;:::-;6433:36;:::i;:::-;;1166:17660;6373:13;;1166:17660;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;-1:-1:-1;17095:24:21;;;;;;1166:17660;15988:22;1166:17660;;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;:::i;:::-;15988:22;:::i;17121:3::-;17163:16;15988:22;17163:16;1166:17660;17163:16;;;;:::i;:::-;1166:17660;;;;;;;:::i;15988:22::-;;1166:17660;17080:13;;1166:17660;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;3248:10:3;1166:17660:21;;;;;3277:20:3;1166:17660:21;;;3277:20:3;1166:17660:21;;;;;;;3277:25:3;1166:17660:21;;3400:46:3;;1166:17660:21;;3327:41:3;1166:17660:21;3498:19:3;1166:17660:21;;;;;;3327:41:3;:::i;:::-;1166:17660:21;;;;;;3400:46:3;1166:17660:21;3407:15:3;1166:17660:21;3400:46:3;:::i;:::-;1166:17660:21;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;3498:19:3;1166:17660:21;;;;;;;;3248:10:3;;3532:39;;1166:17660:21;;;;3532:39:3;1166:17660:21;;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;4419:44:3;-1:-1:-1;1166:17660:21;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3934:10:3;3888:20;3897:10;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;3888:20:3;3934:10;1166:17660:21;4264:14:3;1166:17660:21;;;4079:110:3;1166:17660:21;;3918:26:3;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;3918:26:3;3962:9;3954:42;3962:9;;;3954:42;:::i;:::-;1166:17660:21;;;;;;;;4006:63:3;4014:21;;;4006:63;:::i;:::-;4121:15;-1:-1:-1;4100:36:3;4079:110;:::i;:::-;1166:17660:21;;;;;;;4264:14:3;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;3897:10:3;;4293:50;;;1166:17660:21;4371:38:3;;;;:::i;:::-;;4419:44;:::i;1166:17660:21:-;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;18704:9:20;;18753:17;;18808:7;;;;;:::i;:::-;18849:21;;;:::i;:::-;18826:20;;;1166:17660:21;;19065:28:20;;1166:17660:21;19126:26:20;19360:70;1166:17660:21;19126:26:20;;;;1166:17660:21;19126:49:20;19178:20;;;1166:17660:21;19126:72:20;19213:37;;;1166:17660:21;19126:124:20;19253:31;;;1166:17660:21;19126:158:20;19287:20;;;1166:17660:21;19126:181:20;19322:28;;;1166:17660:21;19126:224:20;19368:33;;19360:70;:::i;:::-;19467:28;;9465:20;9248:28;;;1166:17660:21;9279:20:20;;;1166:17660:21;2360:4:20;9318:37;;;1166:17660:21;2360:4:20;9358:31;;;1166:17660:21;2360:4:20;9392:26;;;1166:17660:21;2360:4:20;9465:20;;1166:17660:21;;9086:416:20;;19467:28;19522:93;;;;;;;;:::i;:::-;1166:17660:21;19630:55:20;19631:54;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;18826:20:20;19671:13;;1166:17660:21;19631:54:20;;:::i;:::-;19630:55;;1166:17660:21;19630:55:20;19626:140;;19813:9;2360:4;;19804:41;19800:138;;19178:20;20011:9;-1:-1:-1;;;;;1166:17660:21;20034:17:20;20011:9;20034:17;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;;20034:31:20;;:62;;;;1166:17660:21;20030:219:20;;;1166:17660:21;20282:17:20;;19213:37;20522:32;20282:17;19253:31;20523:24;20282:17;1166:17660:21;20282:17:20;;20521:40;20282:17;1166:17660:21;20282:17:20;;1166:17660:21;19178:20:20;20331:23;;1166:17660:21;20432:9:20;2360:4;;20444:25;;1166:17660:21;2360:4:20;20402:18;;1166:17660:21;20538:9:20;20523:24;;:::i;:::-;20522:32;:::i;:::-;20558:3;1166:17660:21;;;;20521:40:20;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;20030:219:20;20165:73;;;1166:17660:21;20165:73:20;;;;19253:31;20523:24;20165:73;;;;20521:40;20165:73;20522:32;20165:73;19213:37;20165:73;;:::i;:::-;20112:126;;20030:219;;;;;;;;;;;;;20034:62;;;;;;19800:138;1166:17660:21;;;-1:-1:-1;;;19872:51:20;;1166:17660:21;19872:51:20;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;19872:51:20;;;;19626:140;19708:47;1166:17660:21;;;19708:47:20;;;-1:-1:-1;;;19708:47:20;;1166:17660:21;19708:47:20;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;-1:-1:-1;;;;;1166:17660:21;;;;;:::i;:::-;;-1:-1:-1;1166:17660:21;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;507:47:3;1166:17660:21;;507:47:3;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;10709:5;1166:17660;;;;;;;:::o;:::-;;:::i;:::-;;11627:1;1166:17660;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;:::o;6298:1160:20:-;;;;;6540:14;;6588:20;;;;1166:17660:21;;;6996:19:20;;6992:290;;6298:1160;7345:9;;;;;2360:4;;7357:15;;;1166:17660:21;2360:4:20;7393:48;-1:-1:-1;7393:48:20;21382:31;21442:9;21550:14;;21597:26;;;;:::i;:::-;21658:17;1166:17660:21;21658:17:20;;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;-1:-1:-1;;;;;1166:17660:21;;;;21693:23:20;1166:17660:21;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;21689:1013:20;;22737:9;2360:4;;;22869:20;22892:31;22869:20;;;1166:17660:21;22892:31:20;;1166:17660:21;2360:4:20;22980:15;;;;1166:17660:21;;;2360:4:20;;23133:36;;;;23129:274;;21689:1013;1166:17660:21;;;;23499:14:20;;;;1166:17660:21;;;23531:23:20;;;23527:880;23531:23;;;1166:17660:21;;;24070:9:20;1166:17660:21;;;;6540:14:20;1166:17660:21;:::i;:::-;23869:9:20;2360:4;;1166:17660:21;;2360:4:20;1166:17660:21;;23988:6:20;;;;;:::i;:::-;24070:9;:::i;:::-;7386:55;6298:1160;:::o;23527:880::-;24382:9;2360:4;;;;;;;;24268:41;2360:4;;24195:40;2360:4;;;24195:40;;:::i;:::-;;1166:17660:21;6540:14:20;1166:17660:21;:::i;:::-;24382:9:20;:::i;23129:274::-;2360:4;;;20558:3;2360:4;;;2413:2;1166:17660:21;;2360:4:20;23129:274;;;;;21689:1013;21805:25;;1166:17660:21;;21848:840:20;;21689:1013;;;;;;21848:840;1166:17660:21;;;;;;;;:::i;:::-;22051:9:20;22124:31;;;;1166:17660:21;22090:160:20;;;;;;1166:17660:21;;;;;;;;;;22090:160:20;1166:17660:21;;22090:160:20;;;;;;;1166:17660:21;22090:160:20;;1166:17660:21;22090:160:20;;;;;;:::i;:::-;;;;;;;;21848:840;-1:-1:-1;;22086:486:20;;22395:150;22474:41;;:::i;:::-;1166:17660:21;;22395:150:20;;;-1:-1:-1;;;22395:150:20;;22090:160;22395:150;;;:::i;22086:486::-;22638:9;2360:4;;21848:840;;;;;;22090:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;1166:17660:21;;;6992:290:20;-1:-1:-1;1166:17660:21;;;378:118:13;-1:-1:-1;;;;;1166:17660:21;;;;378:118:13;;;;7116:8:20;7112:160;;6992:290;;;;;;7112:160;2360:4;7166:41;;:::i;:::-;1166:17660:21;;7232:25:20;;;;;;378:118:13;7232:25:20;;;2360:4;;;;;;:::i;1166:17660:21:-;-1:-1:-1;;1166:17660:21;;;;;;;;:::o;:::-;-1:-1:-1;;1166:17660:21;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1166:17660:21;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1166:17660:21;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;7496:180:20:-;1938:12:4;;;1166:17660:21;2342:180:4;1998:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2062:15:4;2342:180;2062:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2230:14:4;;;1166:17660:21;2177:25:4;;;1166:17660:21;2115:23:4;;;1166:17660:21;2285:39:4;2300:23;;;;2115;2300;:::i;:::-;2285:39;;:::i;:::-;1166:17660:21;1998:15:4;1166:17660:21;2342:180:4;;;-1:-1:-1;;;;;1938:12:4;2342:180;;823:61;;1166:17660:21;2342:180:4;1166:17660:21;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2342:180:4;1166:17660:21;4962:25:4;;1998:15;1166:17660:21;;1938:12:4;7613:55:20;;1166:17660:21;;;7647:4:20;1166:17660:21;;;;;;;7654:13:20;1166:17660:21;;;;7613:55:20;1166:17660:21;;;;7613:55:20;1166:17660:21;7613:55:20;1166:17660:21;7603:66:20;;7496:180;:::o;1166:17660:21:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1166:17660:21;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;;;:::o;2322:103:15:-;;;;2558:7;1166:17660:21;;2558:18:15;2554:86;;2558:7;1166:17660:21;;16571:15;1166:17660;;:::i;:::-;16087:2;;;;:::i;:::-;16211:40;;;;:::i;:::-;3174:1039:20;1166:17660:21;3174:1039:20;;;;3414:9;3481:20;;;;;1166:17660:21;3552:15:20;;3481:20;3552:15;;;;:::i;:::-;3581:16;3611:144;;;;;2322:103:15;1166:17660:21;;-1:-1:-1;;;3772:51:20;3785:38;;3927:17;4003:53;3927:17;;3872:74;3927:17;;;1166:17660:21;;3872:74:20;1166:17660:21;;3872:74:20;;;-1:-1:-1;;;3927:17:20;3872:74;;;;;;;:::i;4003:53::-;3964:92;;3768:429;;16571:15:21;1166:17660;;;;:::i;:::-;;;;16542:270;;;1166:17660;16542:270;;;1166:17660;3481:20:20;16542:270:21;;1166:17660;16571:15;16542:270;;1166:17660;16542:270;;;1166:17660;-1:-1:-1;16542:270:21;;;1166:17660;3481:20:20;16542:270:21;;;1166:17660;2387:1:15;;305::0;2924:21:15;1166:17660:21;2744:208:15;3768:429:20;1166:17660:21;;;4134:48:20;1166:17660:21;;;;:::i;4134:48:20:-;4095:87;;3768:429;;;3611:144;-1:-1:-1;3611:144:20;;;;2554:86:15;-1:-1:-1;;;1166:17660:21;2599:30:15;;1166:17660:21;2599:30:15;1166:17660:21;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1166:17660:21;;;;;;;;-1:-1:-1;;1166:17660:21;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;14986:1;1166:17660;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;14562:1165::-;;;;;;;;1166:17660;;:::i;:::-;14954:21;;;;;;;:::i;:::-;:33;;;14950:286;;15576:144;15267:13;;;;:::i;:::-;15518:40;1166:17660;;:::i;:::-;15505:2;;;:::i;:::-;15518:40;;:::i;:::-;15576:144;;;;:::i;14950:286::-;15124:12;;;;;;;;;:::i;:::-;1166:17660;;;;;;:::i;:::-;14986:1;1166:17660;;14986:1;15094:43;;;1166:17660;;15094:43;;1166:17660;;;;;;:::i;:::-;14986:1;1166:17660;;14986:1;15094:43;15155:29;;1166:17660;14986:1;1166:17660;15155:29;;1166:17660;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;15094:43;15010:215;;1166:17660;;15010:215;;1166:17660;15003:222;:::o;1166:17660::-;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;:::i;:::-;;;;;;;:::o;:::-;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;1935:179:3:-;2077:30;1166:17660:21;-1:-1:-1;;;;;2025:37:3;2052:9;2025:37;;:::i;:::-;1166:17660:21;;;;;;;2077:30:3;;1935:179::o;1166:17660:21:-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;2635:2;1166:17660;;;;2635:2;1166:17660;:::o;:::-;;;;;;490:2:4;1166:17660:21;;;;;;;490:2:4;1166:17660:21;;-1:-1:-1;;1166:17660:21;;:::o;:::-;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;-1:-1:-1;1166:17660:21:o;:::-;;;;;;;:::i;:::-;3116:14;1166:17660;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1826:1620::-;1166:17660;;:::i;:::-;;;;:::i;:::-;2007:6;;;;:::i;:::-;2160:47;;;;:::i;:::-;2218:98;;;;;;;;:::i;:::-;2360:42;1166:17660;2374:27;:17;;:27;1166:17660;-1:-1:-1;;;;;1166:17660:21;;;;2360:42;:::i;:::-;2456:17;2569:15;2442:39;2456:24;:17;;-1:-1:-1;;;;;1166:17660:21;;;;;2442:39;1166:17660;;;:::i;:::-;;2569:15;;;;;:::i;:::-;2616:69;2635:2;2616:21;;2635:2;;2648:23;2656:14;2713:22;2656:14;2640:32;2656:14;;:::i;:::-;2648:23;;:::i;:::-;1166:17660;;;;2713:22;1166:17660;-1:-1:-1;;;;;1166:17660:21;;2874:18;;;;1166:17660;2906:17;3027:23;2569:15;2906:17;;1166:17660;3027:23;;1166:17660;;;;:::i;:::-;;;;2850:211;;;1166:17660;2569:15;2850:211;;1166:17660;3027:23;2850:211;;1166:17660;2874:18;2850:211;;1166:17660;;;:::i;:::-;3144:45;;;;:93;;;2616:69;3140:199;;2616:69;1166:17660;;;:::i;:::-;;;;2850:211;3355:84;;1166:17660;2569:15;3355:84;;1166:17660;3027:23;3355:84;;1166:17660;2874:18;3355:84;;1166:17660;1826:1620;:::o;3140:199::-;3302:25;;;;;;:::i;:::-;3270:58;1166:17660;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;;;;;3270:58;2850:211;3270:58;;1166:17660;3140:199;;;;3144:93;3193:44;2202:4;3193:44;;;3144:93;;2616:69;;;2713:22;-1:-1:-1;2713:22:21;:::i;1166:17660::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;20551:3:20;1166:17660:21;;;;;;20551:3:20;1166:17660:21;;;;;;;:::o;18381:2187:20:-;;;-1:-1:-1;18704:9:20;;18753:17;;;18808:7;;;;;:::i;:::-;18849:21;;;:::i;:::-;18826:20;;;1166:17660:21;19065:28:20;;;1166:17660:21;19126:26:20;19360:70;1166:17660:21;19126:26:20;;;;1166:17660:21;19126:49:20;19178:20;;;1166:17660:21;19126:72:20;19213:37;;;1166:17660:21;19126:124:20;19253:31;;;1166:17660:21;19126:158:20;19287:20;;;1166:17660:21;19126:181:20;19322:28;;;1166:17660:21;19126:224:20;19368:33;;19360:70;:::i;:::-;19467:28;;9465:20;9248:28;;;1166:17660:21;9279:20:20;;;1166:17660:21;2360:4:20;9318:37;;;1166:17660:21;2360:4:20;9358:31;;;1166:17660:21;2360:4:20;9392:26;;;1166:17660:21;2360:4:20;9465:20;;1166:17660:21;;9086:416:20;;19467:28;19522:93;;;;;-1:-1:-1;19522:93:20;:::i;:::-;1166:17660:21;19630:55:20;19631:54;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;18826:20:20;19671:13;;1166:17660:21;19631:54:20;;:::i;19630:55::-;19626:140;;19813:9;2360:4;;19804:41;19800:138;;19178:20;20011:9;-1:-1:-1;;;;;1166:17660:21;20034:17:20;20011:9;20034:17;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;;20034:31:20;;:62;;;18381:2187;20030:219;;18381:2187;20523:24;20282:17;19253:31;20521:40;20282:17;;;;19213:37;20282:17;19065:28;20522:32;20282:17;;1166:17660:21;19178:20:20;20331:23;;1166:17660:21;20432:9:20;2360:4;;20444:25;;1166:17660:21;2360:4:20;20402:18;;1166:17660:21;20538:9:20;20523:24;;:::i;20030:219::-;20165:73;;;;;19213:37;20165:73;19253:31;20521:40;20165:73;;;20522:32;20165:73;20523:24;20165:73;-1:-1:-1;20165:73:20;:::i;:::-;20112:126;;20030:219;;;;;;;;;;;;;20034:62;;16246:4:21;20034:62:20;;19800:138;19065:28;1166:17660:21;-1:-1:-1;;;19872:51:20;;;;-1:-1:-1;19872:51:20;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;19626:140:20;19065:28;1166:17660:21;-1:-1:-1;;;19708:47:20;;;;-1:-1:-1;19708:47:20;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;11899:1264;;;;;;;;1166:17660;;:::i;:::-;12313:29;12352:2;12313:29;;;;;;:::i;:::-;:41;;;12309:294;;12935:221;1166:17660;12853:13;1166:17660;12716:70;1166:17660;;:::i;:::-;12686:19;;;;;:::i;:::-;12776:9;12716:70;;;:::i;12853:13::-;12904:12;;;:::i;:::-;12935:221;:::i;12309:294::-;12491:12;;;;;;;;;:::i;:::-;1166:17660;;;;;;:::i;:::-;12413:30;1166:17660;;12413:30;12461:43;;;1166:17660;;12461:43;;1166:17660;;;:::i;:::-;12413:30;1166:17660;;12413:30;12461:43;12522:29;;1166:17660;12413:30;1166:17660;12522:29;;1166:17660;;;:::i;:::-;;-1:-1:-1;1166:17660:21;;12461:43;12377:215;;1166:17660;;12377:215;;1166:17660;12370:222;:::o;1166:17660::-;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;7062:751::-;;;1166:17660;7189:19;-1:-1:-1;;;;;1166:17660:21;;;7228:92;;;;;;;1166:17660;;;;;;7228:92;;;;;;1166:17660;7228:92;;-1:-1:-1;;;;;7297:12:21;1166:17660;7228:92;;;;:::i;:::-;;;;;;;;7062:751;-1:-1:-1;7224:583:21;;7332:475;;;;:::i;:::-;1166:17660;7228:92;1166:17660;;7378:17;7374:164;;7578:28;7588:17;1166:17660;;7588:17;:::i;:::-;7578:28;:::i;:::-;7228:92;7659:3;1166:17660;;7640:17;;;;;7702:9;;;1166:17660;7702:9;;;:::i;:::-;1166:17660;;;;;7702:9;7682:29;7693:5;;;:::i;:::-;7682:29;1166:17660;7682:29;;;;:::i;:::-;;1166:17660;7625:13;;7640:17;;7759:37;7640:17;;;7759:37;1166:17660;;;7759:37;;;;;;:::i;:::-;7739:57;7224:583;7062:751::o;7374:164::-;7510:12;;;;:::i;:::-;1166:17660;;7495:28::o;7228:92::-;;;1166:17660;7228:92;;;:::i;:::-;;;;1279:65:3;1326:10;;;:::i;1107:452:13:-;1204:349;2360:4:20;1204:349:13;;;;1107:452;1204:349;;;;;;;;;;;;;;;;;;1107:452;:::o;1204:349::-;;2360:4:20;1204:349:13;;1166:17660:21;;-1:-1:-1;1166:17660:21;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7819:790::-;8018:1;8021:24;;;;;;7819:790;;;:::o;8047:3::-;1166:17660;;;;:::i;:::-;8142:16;;;;;:::i;:::-;8199:6;;;:::i;:::-;8220:44;;;;:::i;:::-;8339:15;;;;;;;;;:::i;:::-;:27;;;8335:74;;8503:48;8018:1;8533:17;;;;;;1166:17660;8503:48;;:::i;:::-;8565:27;;8533:17;8565:27;;;;;;;;;;:::i;:::-;;8006:13;1166:17660;8006:13;;8335:74;8386:8;;;;1166:17660;;;;;:::i;17354:332::-;17492:84;17354:332;17520:15;;;;;;:::i;:::-;1166:17660;17552:23;1166:17660;;;;;;:::i;:::-;17552:23;;;;;:::i;:::-;17492:84;;;;:::i;:::-;1166:17660;;17586:94;;17354:332;:::o;17586:94::-;1166:17660;;17520:15;1166:17660;17644:25;;;-1:-1:-1;;;17644:25:21;;-1:-1:-1;17644:25:21;;;1166:17660;17520:15;1166:17660;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;8615:3278::-;;;;1166:17660;;:::i;:::-;-1:-1:-1;;;9001:17:21;;;;9265:57;1166:17660;;;;:::i;:::-;;9209:9;-1:-1:-1;9162:57:21;9209:9;9162:57;13663:37;9162:57;:::i;:::-;9312:9;1166:17660;;;9265:57;;;;;-1:-1:-1;;;9265:57:21;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;9265:12:21;1166:17660;9265:57;;;;;;;-1:-1:-1;;;9265:57:21;;;8997:1483;9233:89;;;;9402:14;;;9398:299;;8997:1483;;10507:21;8997:1483;;;;;;;10507:21;;:::i;:::-;10538:27;-1:-1:-1;;;;;11203:12:21;1166:17660;10576:1077;;10584:15;;;;;:::i;:::-;10583:35;;;10688:9;10700:14;;;:::i;:::-;-1:-1:-1;10684:323:21;;11039:15;;;;;;;;-1:-1:-1;11039:15:21;;11097:54;11038:21;11039:15;;11203:57;11039:15;;:::i;:::-;1166:17660;;;;11038:21;11097:54;;13663:37;11097:54;:::i;:::-;11250:9;;1166:17660;;;11203:57;;;;;;;-1:-1:-1;;;11203:57:21;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;11203:57:21;;;10576:1077;-1:-1:-1;11275:368:21;;;11402:19;;;11448:10;11402:19;11448:10;:::i;:::-;11476:21;11275:368;;10576:1077;;;;;;;;;11275:368;11618:10;;;;;;;;;:::i;:::-;11275:368;;;11203:57;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;10684:323;10864:12;;;;;;;;;;;;:::i;:::-;1166:17660;;;:::i;:::-;;-1:-1:-1;1166:17660:21;;-1:-1:-1;10834:43:21;;;1166:17660;;10834:43;;1166:17660;;;:::i;:::-;;;;10834:43;10926:48;;1166:17660;;10926:48;;1166:17660;;;:::i;:::-;10781:31;1166:17660;;10741:251;10834:43;10741:251;;1166:17660;;10741:251;;1166:17660;10734:258;:::o;10583:35::-;;;;;;;;;;11746:60;10583:35;;1166:17660;;:::i;:::-;;;;;;11746:60;;;1166:17660;;11746:60;1166:17660;11746:60;;1166:17660;;;:::i;9398:299::-;1166:17660;;;;;;;;;;9535:51;1166:17660;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;9535:51;;;1166:17660;;9265:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;8997:1483;9842:9;9991:57;9842:9;;9935;;9888:57;9935:9;9888:57;13663:37;9888:57;:::i;:::-;10038:9;1166:17660;;;9991:57;;;;;-1:-1:-1;;;9991:57:21;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;9991:12:21;1166:17660;9991:57;;;;;;;;-1:-1:-1;9991:57:21;;;8997:1483;9959:89;;;;10071:24;9959:89;10086:9;;10071:24;;:::i;:::-;10175:14;;;10171:299;;8997:1483;;10507:21;8997:1483;;;;;;;;9991:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;8615:3278;;;;1166:17660;;:::i;:::-;-1:-1:-1;;;9001:17:21;;;;9265:57;1166:17660;;;;:::i;:::-;;9209:9;-1:-1:-1;9162:57:21;9209:9;9162:57;15553:4;9162:57;:::i;9265:::-;;:12;;-1:-1:-1;;;;;9265:12:21;1166:17660;9265:57;;;;;;;-1:-1:-1;;;9265:57:21;;;8997:1483;9233:89;;;;9402:14;;;9398:299;;8997:1483;;10507:21;8997:1483;;;;;;10507:21;;:::i;:::-;10538:27;-1:-1:-1;;;;;11203:12:21;1166:17660;10576:1077;;10584:15;;;;;:::i;:::-;10583:35;;;10688:9;10700:14;;;:::i;:::-;-1:-1:-1;10684:323:21;;11039:15;;;;;;;;-1:-1:-1;11039:15:21;;11097:54;11038:21;11039:15;;11203:57;11039:15;;:::i;11038:21::-;11097:54;;15553:4;11097:54;:::i;11203:57::-;;;;;;;;;;-1:-1:-1;;;11203:57:21;;;10576:1077;-1:-1:-1;11275:368:21;;;11402:19;;;11448:10;11402:19;11448:10;:::i;:::-;11476:21;11275:368;;10576:1077;;;;;;;;;11275:368;11618:10;;;;;;;;;:::i;:::-;11275:368;;;11203:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;9265;;;;;;;;;;;;;;;:::i;:::-;;;;;;8997:1483;9842:9;9991:57;9842:9;;9935;;9888:57;9935:9;9888:57;15553:4;9888:57;:::i;9991:::-;;:12;;-1:-1:-1;;;;;9991:12:21;1166:17660;9991:57;;;;;;;;-1:-1:-1;9991:57:21;;;8997:1483;9959:89;;;;10071:24;9959:89;10086:9;;10071:24;;:::i;:::-;10175:14;;;10171:299;;8997:1483;;10507:21;8997:1483;;;;;;;;9991:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;8615:3278;;;;1166:17660;;:::i;:::-;-1:-1:-1;;;9001:17:21;;;;9265:57;1166:17660;;;;:::i;:::-;;9209:9;-1:-1:-1;9162:57:21;9209:9;9162:57;12969:46;9162:57;:::i;9265:::-;;:12;;-1:-1:-1;;;;;9265:12:21;1166:17660;9265:57;;;;;;;-1:-1:-1;;;9265:57:21;;;8997:1483;9233:89;;;;9402:14;;;9398:299;;8997:1483;;10507:21;8997:1483;;;;;;10507:21;;:::i;:::-;10538:27;-1:-1:-1;;;;;11203:12:21;1166:17660;10576:1077;;10584:15;;;;;:::i;:::-;10583:35;;;10688:9;10700:14;;;:::i;:::-;-1:-1:-1;10684:323:21;;11039:15;;;;;;;;-1:-1:-1;11039:15:21;;11097:54;11038:21;11039:15;;11203:57;11039:15;;:::i;11038:21::-;11097:54;;12969:46;11097:54;:::i;11203:57::-;;;;;;;;;;-1:-1:-1;;;11203:57:21;;;10576:1077;-1:-1:-1;11275:368:21;;;11402:19;;;11448:10;11402:19;11448:10;:::i;:::-;11476:21;11275:368;;10576:1077;;;;;;;;;11275:368;11618:10;;;;;;;;;:::i;:::-;11275:368;;;11203:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;9265;;;;;;;;;;;;;;;:::i;:::-;;;;;;8997:1483;9842:9;9991:57;9842:9;;9935;;9888:57;9935:9;9888:57;12969:46;9888:57;:::i;9991:::-;;:12;;-1:-1:-1;;;;;9991:12:21;1166:17660;9991:57;;;;;;;;-1:-1:-1;9991:57:21;;;8997:1483;9959:89;;;;10071:24;9959:89;10086:9;;10071:24;;:::i;:::-;10175:14;;;10171:299;;8997:1483;;10507:21;8997:1483;;;;;;;;9991:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;490:2:4;;;;:::o;:::-;;1166:17660:21;;-1:-1:-1;;;490:2:4;;;;;;;;;;;1166:17660:21;490:2:4;1166:17660:21;;;490:2:4;;7866:1077:20;8388:23;7866:1077;7985:30;8002:13;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;;;7985:30:20;8041:12;;;1166:17660:21;8041:12:20;8025:13;;1166:17660:21;8118:53:20;8147:23;;;1166:17660:21;2535:183:4;1166:17660:21;;;;;;2535:183:4;;8118:53:20;8094:20;;;1166:17660:21;8064:28:20;;;1166:17660:21;8210:25:20;;;1166:17660:21;8181:26:20;;;1166:17660:21;8300:44:20;8181:26;8329:14;;1166:17660:21;2535:183:4;1166:17660:21;;;;;;2535:183:4;;8300:44:20;8276:20;;;1166:17660:21;8246:28:20;;;1166:17660:21;8388:23:20;;;;;:::i;:::-;8425:27;;;;;8699:62;8476:65;8388:23;8476:65;8468:107;490:2:4;8589:172:20;8476:65;;;;8468:107;:::i;:::-;8699:62;:::i;:::-;8210:25;8648:31;;1166:17660:21;8147:23:20;8609:37;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;8590:17:20;;1166:17660:21;;8421:516:20;8792:17;;8210:25;8792:17;-1:-1:-1;8388:23:20;8792:17;;;1166:17660:21;8836:37:20;8147:23;8836:37;;1166:17660:21;8891:31:20;1166:17660:21;7866:1077:20:o;1166:17660:21:-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13468:1447:20:-;;;;;13760:9;13813:14;;;13861:17;1166:17660:21;13861:17:20;;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;13928:19:20;;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;13928:19:20;1166:17660:21;;14018:25:20;;;14014:122;;-1:-1:-1;;;;;14396:17:20;14245:37;1166:17660:21;2360:4:20;;;;;14300:144;2360:4;;;;;1166:17660:21;;14245:37:20;1166:17660:21;14396:17:20;;1166:17660:21;;;;14300:144:20;;;;;;;1166:17660:21;14300:144:20;;;;;;:::i;:::-;;1166:17660:21;;14300:144:20;;;;1166:17660:21;;;14300:144:20;;;13468:1447;-1:-1:-1;14296:441:20;;14680:41;;;:::i;:::-;1166:17660:21;14635:87:20;1166:17660:21;;14635:87:20;;;-1:-1:-1;;;14635:87:20;;14300:144;14635:87;;;:::i;14296:441::-;14520:18;;;14763:9;2360:4;;14754:43;14750:149;;13468:1447;:::o;14750:149::-;1166:17660:21;;;-1:-1:-1;;;14824:60:20;;14300:144;14824:60;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;19872:51:20;14300:144;;;;;;;;;1166:17660:21;14300:144:20;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;14014:122;14070:51;1166:17660:21;;;14070:51:20;;;-1:-1:-1;;;14070:51:20;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1559:259:3:-;-1:-1:-1;;;;;1166:17660:21;1683:8:3;1166:17660:21;1683:8:3;1166:17660:21;;;1683:8:3;1166:17660:21;;;;;;;;;;;;;;1559:259:3;:::o;15288:1187:20:-;15548:34;-1:-1:-1;;;;;15288:1187:20;15548:34;:::i;:::-;1166:17660:21;;15592:111:20;;15712:96;;16110:43;-1:-1:-1;;;;;16110:43:20;;:::i;:::-;1166:17660:21;;16163:105:20;;15288:1187::o;16163:105::-;1166:17660:21;;-1:-1:-1;;;16216:41:20;;;;-1:-1:-1;16216:41:20;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;15712:96:20;1166:17660:21;;-1:-1:-1;;;15753:44:20;;;;-1:-1:-1;15753:44:20;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;15592:111:20;15651:41;1166:17660:21;;-1:-1:-1;;;15651:41:20;;-1:-1:-1;15651:41:20;;;1166:17660:21;;;;;;;;;;;;;;;;15651:41:20;856:262:3;;-1:-1:-1;;;;;1166:17660:21;;:::i;:::-;;;997:8:3;1166:17660:21;997:8:3;1166:17660:21;;;1034:17:3;1166:17660:21;997:8:3;1166:17660:21;1034:17:3;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;1061:20:3;;1166:17660:21;856:262:3:o;1166:17660:21:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11405:1498:20:-;;;;12157:102;12220:17;-1:-1:-1;11636:22:20;11724:14;;1166:17660:21;;11882:17:20;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;11836:11:20;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;11882:17;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;11913:31:20;;-1:-1:-1;;;;;11913:31:20;1166:17660:21;;11962:23:20;11958:182;;;;11405:1498;12220:17;;1166:17660:21;;11836:11:20;1166:17660:21;12157:102:20;;;;;;;-1:-1:-1;;;12157:102:20;;;;;;:::i;:::-;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;12157:102:20;;;;;;;11405:1498;-1:-1:-1;12153:352:20;;12448:41;;;:::i;:::-;1166:17660:21;12403:87:20;11836:11;1166:17660:21;12403:87:20;;;-1:-1:-1;;;12403:87:20;;12157:102;12403:87;;;:::i;12153:352::-;12324:32;;;12518:369;;11405:1498;;:::o;12518:369::-;12598:16;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;12598:16:20;-1:-1:-1;;11405:1498:20:o;12157:102::-;;;;;12220:17;12157:102;12220:17;12157:102;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;11958:182;1241:17:3;;;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;1241:17:3;1166:17660:21;12076:21:20;;;;:49;;;;11958:182;;;;;12076:49;2360:4;;;;12076:49;;11405:1498;;;;;;12220:17;12157:102;11405:1498;11724:14;;1166:17660:21;;11882:17:20;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;11836:11:20;;;;;;;;;;:::i;1166:17660:21:-;11913:31:20;-1:-1:-1;;;;;1166:17660:21;;;11962:23:20;11958:182;;;;11405:1498;12220:17;1166:17660:21;12220:17:20;;1166:17660:21;;11836:11:20;1166:17660:21;12157:102:20;;;;;;;-1:-1:-1;;;12157:102:20;;;;;;:::i;:::-;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;12157:102:20;;1166:17660:21;;12157:102:20;;;11405:1498;-1:-1:-1;12153:352:20;;12448:41;;;:::i;12153:352::-;12324:32;;;12518:369;;11405:1498;;;:::o;12518:369::-;12598:16;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;12598:16:20;1166:17660:21;;;12690:25:20;;;;12686:123;;2360:4;;1166:17660:21;;11405:1498:20:o;12686:123::-;11836:11;1166:17660:21;;-1:-1:-1;;;12746:44:20;;12157:102;12746:44;;1166:17660:21;;;;;;;;;;;;;;;;;;;;19872:51:20;12157:102;;;;;12220:17;12157:102;12220:17;12157:102;;;;;;;:::i;:::-;;;;;11958:182;1241:17:3;;;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;1241:17:3;1166:17660:21;12076:21:20;;;;;;:49;1166:17660:21;12076:49:20;;;11958:182;;;;;;12076:49;2360:4;1166:17660:21;2360:4:20;;;12076:49;;1187:234:1;-1:-1:-1;;;;;1166:17660:21;-1:-1:-1;1166:17660:21;1373:19:1;1166:17660:21;;;1373:32:1;1166:17660:21;1317:2:1;1166:17660:21;1317:2:1;-1:-1:-1;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;1373:32:1;1166:17660:21;;;1373:34:1;;;;:::i;:::-;1166:17660:21;;;1373:41:1;1187:234;:::o;24667:693:20:-;24877:28;24812:20;;;1166:17660:21;24877:28:20;;1166:17660:21;24923:36:20;;;24919:173;;405:35:19;1166:17660:21;2102:12:19;;;2117:13;;2102:38;;2360:4:20;3338:5:0;;;;;;:13;24667:693:20;:::o;3338:13:0:-;;;24667:693:20;:::o;2102:38:19:-;;;;24919:173:20;25058:19;;:::o;4219:410::-;;;;4385:237;1166:17660:21;4417:17:20;;;1166:17660:21;4448:14:20;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;4483:24:20;4417:17;-1:-1:-1;;;;;4483:24:20;;;1166:17660:21;;4521:20:20;;1166:17660:21;;;;;;;;4417:17:20;1166:17660:21;;;;;;;;;;;4385:237:20;4219:410::o;:::-;;1166:17660:21;4385:237:20;4219:410;4417:17;;;1166:17660:21;4448:14:20;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;4483:24:20;4417:17;-1:-1:-1;;;;;4483:24:20;;;1166:17660:21;;4521:20:20;;1166:17660:21;;;;;;;;;4417:17:20;1166:17660:21;;;;;;;;;;;4385:237:20;4219:410::o;4635:182::-;4747:17;;;1166:17660:21;4766:14:20;;1166:17660:21;4720:90:20;4747:17;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;4789:20:20;;1166:17660:21;;;;;;4720:90:20;4635:182::o;3532:737:21:-;;;1166:17660;;;;;:::i;:::-;3784:15;1166:17660;3784:15;;-1:-1:-1;;;1166:17660:21;3784:15;;;;:::i;:::-;3851:16;3877:148;1166:17660;3877:148;;;;3532:737;-1:-1:-1;1166:17660:21;4038:51;4051:38;;1166:17660;4122:67;1166:17660;4122:67;1166:17660;;4122:67;;;-1:-1:-1;;;4122:67:21;;;;;;;;:::i;4034:229::-;1166:17660;4237:15;;;;;:::i;:::-;1166:17660;;;:::i;3877:148::-;;;;;;;18083:741;;;;;18274:20;:47;;;;18083:741;18270:183;;;18493:2;18466:29;;;18462:310;;18083:741;1166:17660;;;;:::i;18462:310::-;18493:2;1166:17660;;;;;;18589:21;:26;18585:177;;18462:310;;;;18585:177;1166:17660;;;;;;:::i;:::-;;;;;;;;;18709:38;:::o;18270:183::-;1166:17660;;;;;;;;:::i;:::-;;;;;;;;;18406:36;:::o;18274:47::-;18298:18;;;:23;18274:47;;;1166:17660;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;-1:-1:-1;1166:17660:21;;;:::o;:::-;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;;;;;;:::i;4275:1833::-;;1166:17660;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;4566:46;4558:54;;4554:837;;1166:17660;;;:::i;:::-;5413:37;5405:45;;5401:379;;1166:17660;;;5802:29;1166:17660;;:::i;:::-;5794:37;5790:279;;1166:17660;;-1:-1:-1;;;6079:22:21;;1166:17660;6079:22;;;1166:17660;;;;;;;;;;;;;19872:51:20;5790:279:21;5895:54;5970:88;5931:17;;5970:88;5931:17;;1166:17660;5895:54;;:::i;:::-;1166:17660;;;;;5970:88;;;1166:17660;5931:17;5970:88;;;;;;;:::i;5401:379::-;3718:23:4;;;1166:17660:21;5572:19;3705:37:4;3718:23;5690:79:21;3718:23:4;;1166:17660:21;;;2959:118:4;;3705:37;5572:19:21;1166:17660;;;;5572:19;1166:17660;;5571:45;3718:23:4;5631:19:21;;1166:17660;5690:79;1166:17660;;5690:79;;;1166:17660;5690:79;;;;;;;;:::i;4554:837::-;4736:29;5302:78;4736:29;;-1:-1:-1;;4736:29:21;5181:99;4736:29;5302:78;4736:29;;5181:99;4691:75;4736:29;;;;:::i;:::-;4691:75;;:::i;:::-;4815:26;;;;1166:17660;4859:19;4736:29;4859:19;;;490:2:4;4859:19:21;;1166:17660;4859:67;4855:192;;4554:837;1166:17660;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;5181:99;;;;;:::i;:::-;;1166:17660;;5181:99;;;;;;:::i;:::-;5143:137;1166:17660;;5302:78;;;1166:17660;5181:99;5302:78;;;;;;;:::i;4855:192::-;1166:17660;4962:29;;;:70;:29;;;;:::i;:::-;:70;;;:::i;1166:17660::-;4855:192;;;;;4234:507:4;;;1166:17660:21;372:2:4;1166:17660:21;;;;;;;434:2:4;1166:17660:21;;;372:2:4;1166:17660:21;;434:2:4;1166:17660:21;490:2:4;1166:17660:21;;;;;;;;;;;;;;434:2:4;1166:17660:21;434:2:4;1166:17660:21;;;4234:507:4:o;16805:500:20:-;16963:19;;16959:76;;1166:17660:21;;:::i;:::-;;;;1582:3:0;1166:17660:21;;1596:15:0;;;1592:67;;16805:500:20;1166:17660:21;;17190:33:20;1166:17660:21;;;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;;;;1733:50:0;;;1166:17660:21;1710:8:0;1166:17660:21;;;;1733:50:0;1166:17660:21;1733:50:0;;;;1166:17660:21;;;;;;1733:50:0;1166:17660:21;;;;;;;;;;17190:33:20;:15;:33;:70;;;;;16805:500;17173:87;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;16805:500:20;:::o;17190:70::-;1166:17660:21;17227:33:20;;-1:-1:-1;1166:17660:21;;;;17227:33:20;17190:15;17227:33;17190:70;;;1592:67:0;1166:17660:21;;-1:-1:-1;1592:67:0;;16959:76:20;16998:26;16981:1;16998:26;16981:1;16998:26;:::o;9756:1012::-;;;;9878:20;9874:888;;9756:1012;;;;;:::o;9874:888::-;9931:14;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;9970:18:20;;;9966:121;;10152:35;:14;;:35;1166:17660:21;10118:80:20;10152:35;1166:17660:21;10118:80:20;;-1:-1:-1;;;10118:80:20;;;9897:1;10118:80;;;;;;;;:::i;:::-;;1917:14;-1:-1:-1;;;;;1917:14:20;1166:17660:21;10118:80:20;;;;;;;9897:1;10118:80;;;9874:888;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;10216:21:20;;;10212:115;;-1:-1:-1;;;;;1166:17660:21;10344:17:20;;;10340:116;;10473:19;:24;10469:123;;10639:14;10631:23;10639:14;10674:77;10639:14;10623:32;10639:14;;:::i;10623:32::-;10118:80;10690:17;;;1166:17660:21;10726:14:20;;1166:17660:21;10726:24:20;1166:17660:21;10152:35:20;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;10152:35:20;10674:77;9874:888;;;;;;10469:123;10152:35;1166:17660:21;;-1:-1:-1;;;10524:53:20;;10118:80;10524:53;;1166:17660:21;;;;;;;;;;;;;;;;;;;;19872:51:20;10340:116;10388:53;1166:17660:21;10152:35:20;1166:17660:21;10388:53:20;;;-1:-1:-1;;;10388:53:20;;10118:80;10388:53;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;10212:115:20;10264:48;1166:17660:21;10152:35:20;1166:17660:21;10264:48:20;;;-1:-1:-1;;;10264:48:20;;10118:80;10264:48;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;10118:80:20;;;;;;;;;;;;;;:::i;:::-;;;;9966:121;1166:17660:21;;;-1:-1:-1;;;10020:52:20;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;19872:51:20;2879:281:0;2961:193;;;;;;;2879:281;:::o","linkReferences":{},"immutableReferences":{"2133":[{"start":4668,"length":32},{"start":19090,"length":32}],"3776":[{"start":11552,"length":32},{"start":12378,"length":32},{"start":12469,"length":32},{"start":12991,"length":32},{"start":13178,"length":32},{"start":13268,"length":32},{"start":13541,"length":32},{"start":13728,"length":32},{"start":13818,"length":32},{"start":14091,"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","deposits(address)":"fc7e286d","getDepositInfo(address)":"5287ce12","getNonce(address,uint192)":"35567e1a","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","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","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\":\"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\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"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\":\"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\":[{\"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\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"delegateAndRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"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\"}],\"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\":[{\"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\":[{\"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\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleAggregatedOps\",\"outputs\":[],\"stateMutability\":\"pure\",\"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\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleOps\",\"outputs\":[],\"stateMutability\":\"pure\",\"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\":[{\"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\":[],\"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\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"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.\"}},\"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.\",\"userOp\":\"- The userOp to validate.\"}},\"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.\"}},\"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\"}},\"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.\"},\"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.\"},\"deposits(address)\":{\"notice\":\"maps paymaster to their deposits and stakes\"},\"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/v07/EntryPointSimulations.sol\":\"EntryPointSimulations07\"},\"evmVersion\":\"paris\",\"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/\",\":@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/\",\":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/core/Helpers.sol\":{\"keccak256\":\"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e\",\"dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc\"]},\"lib/account-abstraction-v7/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6\",\"dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a\"]},\"lib/account-abstraction-v7/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238\",\"dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH\"]},\"lib/account-abstraction-v7/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c\",\"dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G\"]},\"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc\",\"dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS\"]},\"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/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v5.0.2/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559\",\"dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep\"]},\"src/v07/EntryPoint.sol\":{\"keccak256\":\"0x5a8e2db6aad825ab6650642351b3a9b949cce5663693409a6026b034a8bd88de\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4caae812bd6fe4e55f96d846a2a5aed14beef285c1c6874e757daba246cc9d2d\",\"dweb:/ipfs/QmS6qqpmkGQ5YK7M5gXe5PDfFhok6Xv7xyJDre65BTMAqH\"]},\"src/v07/EntryPointSimulations.sol\":{\"keccak256\":\"0x84193b5a001560cc72da091e7c660870517e1f59e29531a9426824935c4cfb6a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e85917186f08d5796ecbe6543a67fbf06cd29767b74f0acb15efc24f11f35f90\",\"dweb:/ipfs/QmPUL48LJFGmBT6QngT6rXU2Wda7RQCdTnxbZAF5ZZJyAy\"]}},\"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":"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":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"PostOpReverted"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"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":"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":[{"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":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function","name":"delegateAndRevert"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"payable","type":"function","name":"depositTo"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"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":[{"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":[{"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":[{"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":"","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":"","type":"address"}],"stateMutability":"pure","type":"function","name":"handleAggregatedOps"},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"","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":"","type":"address"}],"stateMutability":"pure","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":[{"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":[],"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.","userOp":"- The userOp to validate."}},"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."}},"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"}},"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."},"deposits(address)":{"notice":"maps paymaster to their deposits and stakes"},"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/","@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/","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/v07/EntryPointSimulations.sol":"EntryPointSimulations07"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v7/contracts/core/Helpers.sol":{"keccak256":"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6","urls":["bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e","dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/NonceManager.sol":{"keccak256":"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9","urls":["bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6","dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/SenderCreator.sol":{"keccak256":"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5","urls":["bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238","dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/StakeManager.sol":{"keccak256":"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d","urls":["bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c","dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol":{"keccak256":"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b","urls":["bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc","dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS"],"license":"GPL-3.0"},"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/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-v5.0.2/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"src/IEntryPointSimulations.sol":{"keccak256":"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41","urls":["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5","dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"],"license":"MIT"},"src/SimulationOverrideHelper.sol":{"keccak256":"0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5","urls":["bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559","dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep"],"license":"MIT"},"src/v07/EntryPoint.sol":{"keccak256":"0x5a8e2db6aad825ab6650642351b3a9b949cce5663693409a6026b034a8bd88de","urls":["bzz-raw://4caae812bd6fe4e55f96d846a2a5aed14beef285c1c6874e757daba246cc9d2d","dweb:/ipfs/QmS6qqpmkGQ5YK7M5gXe5PDfFhok6Xv7xyJDre65BTMAqH"],"license":"GPL-3.0"},"src/v07/EntryPointSimulations.sol":{"keccak256":"0x84193b5a001560cc72da091e7c660870517e1f59e29531a9426824935c4cfb6a","urls":["bzz-raw://e85917186f08d5796ecbe6543a67fbf06cd29767b74f0acb15efc24f11f35f90","dweb:/ipfs/QmPUL48LJFGmBT6QngT6rXU2Wda7RQCdTnxbZAF5ZZJyAy"],"license":"GPL-3.0"}},"version":1},"id":21}
|
|
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":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"depositTo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"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":"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":"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":"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":"","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":"","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"handleOps","inputs":[{"name":"","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":"","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"pure"},{"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":"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":"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":"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":"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":"PostOpReverted","inputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","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":"innerCallResult","inputs":[{"name":"remainingGas","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60c080604052346101075760016002556101948181016001600160401b038111838210176100f1578291614e20833903906000f080156100e5576080523060a05261004861010c565b6000815260208101906000825280602061006061010c565b600081520152600380546001600160a01b03191690555160045551600555604051614cf4908161012c823960805181818161123c0152614a92015260a051818181612d200152818161305a015281816130b5015281816132bf0152818161337a015281816133d4015281816134e5015281816135a0015281816135fa015261370b0152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fd5b60408051919082016001600160401b038111838210176100f15760405256fe60806040526004361015610023575b361561001957600080fd5b610021612e1c565b005b60003560e01c80630396cb60146101de5780630bd28e3b146101d95780630da82661146101d45780631b2e01b8146101cf578063205c2878146101ca578063212eccc6146101c557806321e60b37146101c057806322cdde4c146101bb57806335567e1a146101b657806344403473146101b15780635287ce12146101ac57806370a08231146101a7578063765e827f146101665780637da0c462146101a2578063850aaf621461019d5780639b249f6914610198578063acbe911e14610193578063aec321fb1461018e578063af32494314610189578063b760faf914610184578063bb9fe6bf1461017f578063c23a5cea1461017a578063c3bce00914610175578063c579f76b14610170578063d72f25931461016b578063dbed18e014610166578063f7e426e8146101615763fc7e286d0361000e57611a57565b611a1e565b610e95565b6119fe565b61176e565b611750565b611629565b611502565b6114d7565b611464565b61140c565b6112d8565b6111dc565b61114a565b610f5c565b610e1e565b610d0d565b610cc7565b610be7565b610bc7565b610aca565b610a7f565b61081e565b6107bd565b61069a565b6103ef565b60203660031901126103d45760043563ffffffff8116908181036103d4576103cf7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103b161029f61028f610247336001600160a01b03166000526000602052604060002090565b96610253811515611ae5565b6102806001890154916102796102708463ffffffff9060781c1690565b63ffffffff1690565b1115611b30565b60081c6001600160701b031690565b6001600160701b03349116611bb3565b946102ab861515611bc0565b6102be6001600160701b03871115611c0b565b546102c76104f9565b908152600160208201526001600160701b038616604082015263ffffffff8316606082015260006080820152610310336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b602435906001600160c01b03821682036103d457565b346103d45760203660031901126103d4576004356001600160c01b03811681036103d45761043d903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6104478154611c56565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761047d57604052565b61044b565b6060810190811067ffffffffffffffff82111761047d57604052565b610140810190811067ffffffffffffffff82111761047d57604052565b6040810190811067ffffffffffffffff82111761047d57604052565b90601f8019910116810190811067ffffffffffffffff82111761047d57604052565b6040519061050860a0836104d7565b565b60405190610508610140836104d7565b60405190610508610100836104d7565b604051906105086040836104d7565b604051906105086060836104d7565b60405190610508610120836104d7565b67ffffffffffffffff811161047d57601f01601f191660200190565b92919261058082610558565b9161058e60405193846104d7565b8294818452818301116103d4578281602093846000960137010152565b9080601f830112156103d4578160206105c693359101610574565b90565b6001600160a01b038116036103d457565b3590610508826105c9565b60431901906101c082126103d4576040516105ff81610461565b6101408193126103d45761061161050a565b61061b60446105da565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526106596101246105da565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103d4576102203660031901126103d45760043567ffffffffffffffff81116103d4576106cc9036906004016105ab565b3660231901906101c082126103d457610140604051926106eb84610461565b126103d4576106f861050a565b61070260246105da565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261073f6101046105da565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103d4576040926107a66107b19336906004016105ab565b906102043592611c65565b82519182526020820152f35b346103d45760403660031901126103d45760206108156004356107df816105c9565b6001600160a01b036107ef6103d9565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103d45760403660031901126103d45760043561083b816105c9565b6024353360005260006020526040600020918254908183116108c35760008080856001600160a01b03829589610874846100219a611ed8565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108bd611efa565b50611f2a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f840112156103d45782359167ffffffffffffffff83116103d4576020808501948460051b0101116103d457565b90816101209103126103d45790565b60c06003198201126103d45760043567ffffffffffffffff81116103d4578161097291600401610907565b929092916024359067ffffffffffffffff82116103d45761099591600401610938565b906044356109a2816105c9565b90606435906084359060a43590565b634e487b7160e01b600052602160045260246000fd5b60005b8381106109da5750506000910152565b81810151838201526020016109ca565b90602091610a03815180928185528580860191016109c7565b601f01601f1916010190565b6020815281516002811015610a7a57602082015260a0604080610a5e8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109ea565b9401518051606085015260208101516080850152015191015290565b6109b1565b346103d457610ac6610aba610aac610a9636610947565b9691949095610aa6949394611f94565b50612edb565b610ab581612f6a565b612ffd565b60405191829182610a0f565b0390f35b346103d4576102003660031901126103d45760243560043567ffffffffffffffff82116103d457610b02610ac6923690600401610938565b90610b0c366105e5565b600092815192610b1c84836137d2565b610b2582611fd8565b60208401526001600160a01b0360e0610b5f86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610b87575b6040805160008082526020820188905291810191909152806060810188565b610b919450613a4f565b905038808080610b68565b60206003198201126103d4576004359067ffffffffffffffff82116103d4576105c691600401610938565b346103d4576020610bdf610bda36610b9c565b611fd8565b604051908152f35b346103d45760403660031901126103d4576020600435610c06816105c9565b6001600160a01b03610c166103d9565b911660005260018252610c40816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156103d45782359167ffffffffffffffff83116103d457602083818601950101116103d457565b9060606003198301126103d457600435610c9f816105c9565b916024359067ffffffffffffffff82116103d457610cbf91600401610c58565b909160443590565b346103d45760008080610cd936610c86565b939181604094929451948592833781018381520393f1610cf7611efa565b9015610cff57005b80519081156103d457602001fd5b346103d45760203660031901126103d4576001600160a01b03600435610d32816105c9565b60006080604051610d4281610461565b8281528260208201528260408201528260608201520152166000526000602052610ac66040600020610dca65ffffffffffff600160405193610d8385610461565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103d45760203660031901126103d4576001600160a01b03600435610e43816105c9565b1660005260006020526020604060002054604051908152f35b60406003198201126103d4576004359067ffffffffffffffff82116103d457610e8791600401610907565b90916024356105c6816105c9565b346103d457610ea336610e5c565b505050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b61012060e06105c6936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109ea565b346103d45760603660031901126103d45760043567ffffffffffffffff81116103d457610f8d903690600401610938565b602435610f99816105c9565b60443567ffffffffffffffff81116103d457610fb99036906004016105ab565b91610fc26120bb565b50600091600280541461113b57610ac69360028055610fdf612237565b610fe884612f6a565b610ff28185612955565b91955a60608501518561100860608501856122fa565b94908c60038711611133575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361111b5750611084945061107f602083015191611071604051938492638dd7712f60e01b602085015260248401613c26565b03601f1981018352826104d7565b611c65565b9390975b80956060976001600160a01b0381166110f2575b5050509560806110d796970151976110b261051a565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526110e66001600255565b60405191829182610efa565b6110d798508280949850602083519301915af1956080611110611efa565b97959197963861109c565b61107f915061112b953691610574565b939097611088565b508035611014565b600483633ee5aeb560e01b8152fd5b346103d45760403660031901126103d4576111666004356105c9565b60243567ffffffffffffffff81116103d457611186903690600401610c58565b5050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b346103d45760203660031901126103d45760043567ffffffffffffffff81116103d457602061121261122e923690600401610c58565b906040519384928392632b870d1b60e11b8452600484016122dd565b038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156112d3576001600160a01b03916000916112a4575b507f6ca7b806000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b6112c6915060203d6020116112cc575b6112be81836104d7565b8101906122a7565b38611275565b503d6112b4565b6122ee565b346103d457610ac6610aba6112ec36610947565b9594909493919361237b565b60406003198201126103d45760043567ffffffffffffffff81116103d4578161132391600401610907565b929092916024359067ffffffffffffffff82116103d4576105c691600401610938565b6105c69060208152610100608061139f81865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109ea565b6020808701518051604087015201516060850152946113cf60408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103d45761141a366112f8565b919061142461244f565b5060005b81811061144757610ac661143b8561278f565b60405191829182611346565b8061145d61145860019385876124ec565b61278f565b5001611428565b346103d457611472366112f8565b919061147c6120bb565b5060209060005b8181106114b157610ac66110e686604051906114a06020836104d7565b600082526114ac6120bb565b612110565b806114d06114c260019385886124ec565b604051906114a087836104d7565b5001611483565b60203660031901126103d4576100216004356114f2816105c9565b612514565b60009103126103d457565b346103d45760003660031901126103d4573360005260006020526001604060002001805463ffffffff8160781c16156115e55761156e6115606102708361155461154f6115a89660ff1690565b612555565b60781c63ffffffff1690565b65ffffffffffff42166125a0565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103cf565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103d45760203660031901126103d457610021600080808060043561164e816105c9565b6001600160a01b036001611675336001600160a01b03166000526000602052604060002090565b01916117038354936116db65ffffffffffff6116c76116ad6116a1896001600160701b039060081c1690565b6001600160701b031690565b976116b98915156125be565b60981c65ffffffffffff1690565b166116d3811515612609565b421015612654565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af161174a611efa565b5061269f565b346103d457610ac661143b61145836610b9c565b801515036103d457565b346103d4576102203660031901126103d45760043560243567ffffffffffffffff81116103d4576117a3903690600401610938565b906117ad366105e5565b61020435906117bb82611764565b6000935a8251936117cc85846137d2565b6117d583611fd8565b60208501526040850151956118216effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a089015117610100890151176101208901511711156128f4565b61184c86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b9061185a8883888885613f86565b9761188161187d6118728a516001600160a01b031690565b60208b015190614105565b1590565b6119a9575a850311611957576060926001600160a01b036118ad60e05a9a01516001600160a01b031690565b161515908161194f575b50611918575b509360806118f49460a06118ef95610ac699956118fb99604087015260608601525a9003910135019101525a90611ed8565b61293f565b6064900490565b604051938493846040919493926060820195825260208201520152565b819850610ac69692508460a06118ef9561193d89956118fb9a6118f49a608097613a4f565b9c90969a5094985095505094506118bd565b9050386118b7565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103d457610ac6610aba611a1236610947565b95949094939193612b65565b346103d457611a38611a2f36610c86565b92919091612cc9565b90610ac6604051928392151583526040602084015260408301906109ea565b346103d45760203660031901126103d4576001600160a01b03600435611a7c816105c9565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b15611aec57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611b3757565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211611ba057565b611b7b565b9060018201809211611ba057565b91908201809211611ba057565b15611bc757565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611c1257565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6000198114611ba05760010190565b93929093845190606082015181519081611e50575b505050505a900360808401510192600093845a835194611c9986614157565b92611cae60e08801516001600160a01b031690565b6001600160a01b038116919082611d7e5750505050611cd485516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611d69575b505085029460408501938451878110600014611d3e57505050611d3a939450611d226000612e53565b5a9003905101905183611d358295614280565b6141b1565b9190565b611d3a969295508780955060019450611d5992910390613c3d565b50611d646000612e53565b614219565b9196916064919003600a020401943880611cf9565b95928051611d8f575b505050611cd6565b9091929950611d9d82612e53565b5a9260a089015190803b15611e4c579183929187848196948f611df2604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601612e5d565b0393f19182611e32575b5050611e26576119a5611e0d612e25565b6040519182916365c8fd4d60e01b835260048301612e8f565b5a900396388080611d87565b611e3f611e4592826104d7565b806114f7565b3880611dfc565b8380fd5b600080949360206001600160a01b0383965116910192f115611e755738808080611c7a565b6119a5611e80612e25565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109ea565b600319810191908211611ba057565b600019810191908211611ba057565b91908203918211611ba057565b60405190611ef46020836104d7565b60008252565b3d15611f25573d90611f0b82610558565b91611f1960405193846104d7565b82523d6000602084013e565b606090565b15611f3157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190611f8282610482565b60006040838281528260208201520152565b60405190611fa182610482565b8160008152604051611fb281610482565b60008152600060208201526060604082015260208201526040611fd3611f75565b910152565b602081013561208c611fed60408401846122fa565b9081604051918237209161107161200760608601866122fa565b90816040519182372060c086013560a0870135608088013561203561202f60e08b018b6122fa565b90614cb3565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b519020604080516020810192835230918101919091524660608201526120b58160808101611071565b51902090565b60405190610100820182811067ffffffffffffffff82111761047d57604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b50905060028054146122265760028055608061212a612237565b9161213481612f6a565b61213e8382612955565b926000929192905a908760608101519161215b60608201826122fa565b956003871161221e575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361220657506121c2945061107f602083015191611071604051938492638dd7712f60e01b602085015260248401613c26565b9490955b0151946121d161051a565b958652602086015260408501526060840152608083015260a0820152600060c0820152606060e0820152906105086001600255565b61107f9150612216953691610574565b9490956121c6565b508035612165565b633ee5aeb560e01b60005260046000fd5b6040519061224482610461565b60006080836040516122558161049e565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b908160209103126103d457516105c6816105c9565b908060209392818452848401376000828201840152601f01601f1916010190565b9160206105c69381815201916122bc565b6040513d6000823e3d90fd5b903590601e19813603018212156103d4570180359067ffffffffffffffff82116103d4576020019181360383136103d457565b6040519061233c6020836104d7565b6000808352366020840137565b9061235382610558565b61236060405191826104d7565b8281528092612371601f1991610558565b0190602036910137565b9594939291909561238a611f94565b5061239860608301836122fa565b9050156123ce576105c6966123ac91612edb565b6123c66123b7612237565b6123c083612f6a565b82612955565b50505061333b565b505050505050506123dd61232d565b604051906123ea82610482565b6000825260006020830152604082015260405161240681610482565b6000815260006020820152600060408201526040519161242583610482565b600083526020830152604082015290565b60405190612443826104bb565b60006020838281520152565b6040519061245c82610461565b8160405161246981610461565b60008152600060208201526000604082015260006060820152606060808201528152612493612436565b60208201526124a0612436565b60408201526124ad612436565b60608201526080604051916124c1836104bb565b600083526124cd612436565b60208401520152565b634e487b7160e01b600052603260045260246000fd5b919081101561250f5760051b8101359061011e19813603018212156103d4570190565b6124d6565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036125493485613c3d565b936040519485521692a2565b1561255c57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611ba057565b156125c557565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561261057565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561265b57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156126a657565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b906014116103d45790601490565b90929192836034116103d45783116103d457603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612735575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612762826104bb565b6003546001600160a01b0316825260405160208361277f836104bb565b6004548352600554828401520152565b61279761244f565b506127a0612237565b906127aa81612f6a565b6127b48282612955565b509190926127c28385613c65565b6127df6127da60e0835101516001600160a01b031690565b613d8d565b9161280d6127f96127da84516001600160a01b0390511690565b91612802612436565b5060408101906122fa565b90601482106128e85761282f612829612835936127da936126ea565b90612715565b60601c90565b916001600160a01b03861694608082015196606060408401519301519261285a6104f9565b9889526020890152604088015260608701526080860152612879612755565b93801515806128dd575b6128ab575b506128916104f9565b948552602085015260408401526060830152608082015290565b9093506128b781613d8d565b6128d16128c261052a565b6001600160a01b039093168352565b60208201529238612888565b506001811415612883565b50506128356000613d8d565b156128fb57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715611ba057565b90916000915a9380519161296983826137d2565b61297281611fd8565b60208301526040830151956129be6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a087015117610100870151176101208701511711156128f4565b6129e984610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129f7888286866000613f86565b97612a1a61187d612a0f88516001600160a01b031690565b602089015190614105565b612b11575a830311612abd576060906001600160a01b03612a4660e05a9801516001600160a01b031690565b16151580612ab5575b612a82575b6118ef9360a06105c69794879460809460406118f49a015260608601525a9003910135019101525a90611ed8565b965050928260808360a06105c697612aa38b6118f4996118ef996000613a4f565b9b909598509350949750509350612a54565b506001612a4f565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b95949392919095612b74611f94565b506014612b8460e08401846122fa565b905010612bbf576105c696612bb191610aa6612b9e612237565b612ba98151876137d2565b5a9086613e2a565b612bba81612f6a565b613561565b50505050505050612bce61232d565b60405190612bdb82610482565b60008252600060208301526040820152612bf3610539565b600081526000602082015260006040820152612c0d610539565b91600083526020830152604082015290565b6040906001600160a01b036105c6959316815281602082015201916122bc565b90815181101561250f570160200190565b81601f820112156103d4578051612c6681610558565b92612c7460405194856104d7565b818452602082840101116103d4576105c691602080850191016109c7565b9190916040818403126103d4578051612caa81611764565b92602082015167ffffffffffffffff81116103d4576105c69201612c50565b91926000936001600160a01b036060941691823b156103d457612d4993600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612c1f565b0393f19081612e07575b50612df4575050612d62611efa565b906004825110612df857612d7e612d798351611eba565b612349565b60045b8351811015612dde5780612dc0612d9a60019387612c3f565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612dd7612dcc83611eba565b9160001a9185612c3f565b5301612d81565b50612df491925060208082518301019101612c92565b9091565b9050612e0261232d565b600091565b80611e3f6000612e16936104d7565b38612d53565b61050833612514565b3d6108008111612e4a575b604051906020818301016040528082526000602083013e90565b50610800612e30565b60031115610a7a57565b90949392946003811015610a7a57606092612e859183526080602084015260808301906109ea565b9460408201520152565b9060a06105c6926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109ea565b60005b828110612eea57505050565b600190612ef5612237565b612f008286866124ec565b612f0981612f6a565b612f138282612955565b505050612f2360608201826122fa565b905015612f5957612f3d60009291602084930151906142c3565b9082602083519301915af150612f51611efa565b505b01612ede565b5050612f53565b356105c6816105c9565b612f9d90612f7b60408201826122fa565b91612f95813591612f8b836105c9565b60e08101906122fa565b93909261435d565b8051612fa65750565b6119a590604051918291631101335b60e11b8352600060048401526040602484015260448301906109ea565b939291612ff8906001600160a01b036040931686526060602087015260608601906109ea565b930152565b939094613008611f94565b5060009280156132805761304d935061301f611ee5565b5091600061302f5a8860036146f4565b5a906040519687928392631efc84dd60e31b84528c60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d3576000948592613262575b5081948092811561323f5750506130aa9095929394955b85611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846130e28885611ed8565b10613210575a6130f188611b91565b116131b557918893918796959360008c8b61312461311b613115886131449f611bb3565b60011c90565b809a60036146f4565b835a936040519e8f9586948593631efc84dd60e31b855260048501612fd2565b03925af19889156112d357600090819a61318f575b501561317a5750505061316b83611ec9565b95915b939495919290926130d7565b93965093613189919750611ba5565b9461316e565b906131ad929a503d8091833e6131a581836104d7565b810190612c92565b989038613159565b509550939550505093506131c761232d565b926131d0610539565b93600085526000602086015260408501526131e9610539565b928352602083015260408201526131fe610539565b60018152916020830152604082015290565b9650965050919550506132329150613226610539565b93845215156020840152565b6040820152612bf3610539565b96509650505094505050613232613254610539565b600081529215156020840152565b909461327892503d8091833e6131a581836104d7565b90933861308d565b506132b2915a90846132945a8960036146f4565b5a906040519687928392631efc84dd60e31b84528d60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613317575b5050839461330081935a90611ed8565b94811561323f5750506130aa9095929394956130a4565b909194506133309295503d8091833e6131a581836104d7565b9390939238806132f0565b939094613346611f94565b5060009280156134c45761336d935061335d611ee5565b5091600061302f5a8860016146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926134a6575b5081948092811561323f5750506133c990959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134018885611ed8565b10613210575a61341088611b91565b116131b557918893918796959360008c8b6131246134346131158861343d9f611bb3565b809a60016146f4565b03925af19889156112d357600090819a613488575b50156134735750505061346483611ec9565b95915b939495919290926133f6565b93965093613482919750611ba5565b94613467565b9061349e929a503d8091833e6131a581836104d7565b989038613452565b90946134bc92503d8091833e6131a581836104d7565b9093386133ad565b506134d8915a90846132945a8960016146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d35785809561353d575b5050839461352681935a90611ed8565b94811561323f5750506133c99095929394956130a4565b909194506135569295503d8091833e6131a581836104d7565b939093923880613516565b93909461356c611f94565b5060009280156136ea576135939350613583611ee5565b5091600061302f5a8860026146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926136cc575b5081948092811561323f5750506135ef90959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846136278885611ed8565b10613210575a61363688611b91565b116131b557918893918796959360008c8b61312461365a613115886136639f611bb3565b809a60026146f4565b03925af19889156112d357600090819a6136ae575b50156136995750505061368a83611ec9565b95915b9394959192909261361c565b939650936136a8919750611ba5565b9461368d565b906136c4929a503d8091833e6131a581836104d7565b989038613678565b90946136e292503d8091833e6131a581836104d7565b9093386135d3565b506136fe915a90846132945a8960026146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613763575b5050839461374c81935a90611ed8565b94811561323f5750506135ef9095929394956130a4565b9091945061377c9295503d8091833e6131a581836104d7565b93909392388061373c565b1561378e57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613869906137ef6137e282612f60565b6001600160a01b03168452565b6020810135602084015261381c6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261385360c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e08101906122fa565b9081156138a55761388d8260e092613888603461050897961015613787565b614930565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b91906040838203126103d457825167ffffffffffffffff81116103d4576020916138e7918501612c50565b92015190565b9035601e19823603018112156103d457016020813591019167ffffffffffffffff82116103d45781360383136103d457565b6105c69161393d81613930846105da565b6001600160a01b03169052565b602082013560208201526139d36139c761398e61397361396060408701876138ed565b61012060408801526101208701916122bc565b61398060608701876138ed565b9086830360608801526122bc565b6080850135608085015260a085013560a085015260c085013560c08501526139b960e08601866138ed565b9085830360e08701526122bc565b926101008101906138ed565b916101008185039101526122bc565b6139fa6040929594939560608352606083019061391f565b9460208201520152565b60a0906105c69392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929390915a92815190613a6c60e08301516001600160a01b031690565b91613a8a836001600160a01b03166000526000602052604060002090565b8054898110613bd1576001600160a01b0360206080600097958d9795613aec9d9e8a960390550151970151926040519a8b96879586937f52b7512c000000000000000000000000000000000000000000000000000000008552600485016139e2565b03931686f19384600091600096613baa575b50613b295785613b0c612e25565b906119a56040519283926365c8fd4d60e01b845260048401613a04565b9491925a900311613b375750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613bca91503d806000833e613bc281836104d7565b8101906138bc565b9438613afe565b6119a589604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b929190612ff860209160408652604086019061391f565b6001600160a01b0316600052600060205260406000208054918201809211611ba05781905590565b613c766001600160a01b0391614968565b9116613d4157613ced57613c916001600160a01b0391614968565b5016613c9957565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613d9e612436565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b908160209103126103d4575190565b60a0906105c69392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929091613ead6020600095855193613e7760e0613e4e87516001600160a01b031690565b96613e698a8c613e6160408901896122fa565b929091614a3b565b01516001600160a01b031690565b91886001600160a01b03819416159889613f4b575b85015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1859181613f1a575b50613eee5784613ed1612e25565b906119a56040519283926365c8fd4d60e01b845260048401613ddf565b939192613ef9575050565b613f16906001600160a01b03166000526000602052604060002090565b5050565b613f3d91925060203d602011613f44575b613f3581836104d7565b810190613dd0565b9038613ec3565b503d613f2b565b9350613f6a876001600160a01b03166000526000602052604060002090565b548015613f7d575084815b949050613e8c565b85908203613f75565b94929193906020613ff691865193613fbd60e0613faa87516001600160a01b031690565b96613e698b8d613e6160408901896122fa565b916001600160a01b03600093161598896140c3575b84600091015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1600091816140a2575b5061401b5785613ed1612e25565b94929361402757505050565b614044906001600160a01b03166000526000602052604060002090565b918254908183116140555750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b6140bc91925060203d602011613f4457613f3581836104d7565b903861400d565b92506140e2866001600160a01b03166000526000602052604060002090565b54878111156140fa5750600084815b94915050613fd2565b8460009189036140f1565b6001600160a01b0316600052600160205267ffffffffffffffff6141438260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261415084611c56565b9055161490565b6101206101008201519101518082146141ad577f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd54806141a7575048905b01808210156141a2575090565b905090565b90614195565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b919082356142d0816105c9565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061430883856122fa565b90600360009211614354575b50160361433f57506105c690611071604051938492638dd7712f60e01b602085015260248401613c26565b6105c6925061434d916122fa565b3691610574565b90503538614314565b50929192159081614412575b506143d5576014811015614382575b50506105c6611ee5565b6014116103d4573560601c3b1561439a573880614378565b6040516143a86040826104d7565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143e56040826104d7565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614369565b919091610120818403126103d457614432610548565b9261443c826105da565b845260208201356020850152604082013567ffffffffffffffff81116103d457816144689184016105ab565b6040850152606082013567ffffffffffffffff81116103d4578161448d9184016105ab565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff81116103d457816144d09184016105ab565b60e085015261010082013567ffffffffffffffff81116103d4576144f492016105ab565b610100830152565b60041115610a7a57565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b16855216601484015216602482015261455482518093602086850191016109c7565b010190565b80516001600160a01b031682526105c691602082015160208201526101006145da6145aa614598604086015161012060408701526101208601906109ea565b606086015185820360608701526109ea565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109ea565b920151906101008184039101526109ea565b60806101a091610120815161460a8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465e60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146ca6146bf6102009396959496600084526102206020850152610220840190614559565b9560408301906145ec565b0152565b610200906146ca6146bf6000949695968584526102206020850152610220840190614559565b916146fd612237565b92614708368461441c565b614711826144fc565b6002821461484c57614722826144fc565b600382146147ce5750806147376001926144fc565b146147815760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b6147966105c6926020611071950151906142c3565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501612fd2565b9190506fffffffffffffffffffffffffffffffff61480c61480560806105c69601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526110716040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146ce565b9161107191506fffffffffffffffffffffffffffffffff19846148d860e06105c697016148ca61488561487f83866122fa565b90614930565b9391905060609160e08b019660348851511161490e575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614506565b03601f1981018452836104d7565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161469a565b61492892935061434d91614921916122fa565b80916126f8565b90388061489c565b9091826014116103d457813591836024116103d4576014810135936034116103d45760609290921c92608090811c9260240135901c90565b8015614a3257614976611f75565b5065ffffffffffff8160a01c16908115614a24575b614a06906149ed6149e2604051946149a286610482565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526149d66040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b4211908115614a09575b5091516001600160a01b031690565b91565b51614a1c915065ffffffffffff166149e2565b4210386149f7565b65ffffffffffff915061498b565b50600090600090565b92909181614a4a575b50505050565b8251516001600160a01b031693843b614c665760408451015160206040518092632b870d1b60e11b825281600081614a868a8a600484016122dd565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f19081156112d357600091614c47575b506001600160a01b038116958615614bf2576001600160a01b0316809603614b9d573b15614b50575061282f6128297fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614b1d936126ea565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a338808080614a44565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6119a583604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c60915060203d6020116112cc576112be81836104d7565b38614ac3565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b81604051918237209056fea264697066735822122045d87e5c1197bed5ea2a8b89bc27460d878e169926b55d1c36c79bd06b9f30e464736f6c634300081c003360808060405234601557610179908161001b8239f35b600080fdfe6080600436101561000f57600080fd5b60003560e01c63570e1a361461002457600080fd5b3461013e57602036600319011261013e5760043567ffffffffffffffff811161013e573660238201121561013e57806004013567ffffffffffffffff811161013e57366024828401011161013e576000928160141161013a5760131982019167ffffffffffffffff831161012657600b8101601f19908116603f0116820167ffffffffffffffff8111838210176101125760246020959387600c819795829560405286845289840196603889018837830101525193013560601c5af19051901561010a575b60209073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5060006100e9565b602486634e487b7160e01b81526041600452fd5b602485634e487b7160e01b81526041600452fd5b8380fd5b600080fdfea264697066735822122082b5a3d9fab6c29e6dd5f8665f70b319aaf32846c1eb611e42b8b3cfb79f89f264736f6c634300081c0033","sourceMap":"1166:17660:21:-:0;;;;;;;1713:1:15;1917:21;1166:17660:21;1803:19:20;;;;-1:-1:-1;;;;;1803:19:20;;;;;;;;;;;;;;;-1:-1:-1;1803:19:20;;;;;;;1292:4:21;;;1166:17660;;:::i;:::-;-1:-1:-1;1166:17660:21;;1379:15;;;1166:17660;-1:-1:-1;1166:17660:21;;;1379:15;1166:17660;;:::i;:::-;-1:-1:-1;1166:17660:21;;1347:48;1166:17660;1347:48;1166:17660;;-1:-1:-1;;;;;;1166:17660:21;;;;;;;;;;;;;;;;;1803:19:20;1166:17660:21;;;;;;;;;;1292:4;1166:17660;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1803:19:20;1166:17660:21;;;-1:-1:-1;1166:17660:21;;;;;1803:19:20;1166:17660:21;;;-1:-1:-1;1166:17660:21;;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610023575b361561001957600080fd5b610021612e1c565b005b60003560e01c80630396cb60146101de5780630bd28e3b146101d95780630da82661146101d45780631b2e01b8146101cf578063205c2878146101ca578063212eccc6146101c557806321e60b37146101c057806322cdde4c146101bb57806335567e1a146101b657806344403473146101b15780635287ce12146101ac57806370a08231146101a7578063765e827f146101665780637da0c462146101a2578063850aaf621461019d5780639b249f6914610198578063acbe911e14610193578063aec321fb1461018e578063af32494314610189578063b760faf914610184578063bb9fe6bf1461017f578063c23a5cea1461017a578063c3bce00914610175578063c579f76b14610170578063d72f25931461016b578063dbed18e014610166578063f7e426e8146101615763fc7e286d0361000e57611a57565b611a1e565b610e95565b6119fe565b61176e565b611750565b611629565b611502565b6114d7565b611464565b61140c565b6112d8565b6111dc565b61114a565b610f5c565b610e1e565b610d0d565b610cc7565b610be7565b610bc7565b610aca565b610a7f565b61081e565b6107bd565b61069a565b6103ef565b60203660031901126103d45760043563ffffffff8116908181036103d4576103cf7fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103b161029f61028f610247336001600160a01b03166000526000602052604060002090565b96610253811515611ae5565b6102806001890154916102796102708463ffffffff9060781c1690565b63ffffffff1690565b1115611b30565b60081c6001600160701b031690565b6001600160701b03349116611bb3565b946102ab861515611bc0565b6102be6001600160701b03871115611c0b565b546102c76104f9565b908152600160208201526001600160701b038616604082015263ffffffff8316606082015260006080820152610310336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b602435906001600160c01b03821682036103d457565b346103d45760203660031901126103d4576004356001600160c01b03811681036103d45761043d903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6104478154611c56565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761047d57604052565b61044b565b6060810190811067ffffffffffffffff82111761047d57604052565b610140810190811067ffffffffffffffff82111761047d57604052565b6040810190811067ffffffffffffffff82111761047d57604052565b90601f8019910116810190811067ffffffffffffffff82111761047d57604052565b6040519061050860a0836104d7565b565b60405190610508610140836104d7565b60405190610508610100836104d7565b604051906105086040836104d7565b604051906105086060836104d7565b60405190610508610120836104d7565b67ffffffffffffffff811161047d57601f01601f191660200190565b92919261058082610558565b9161058e60405193846104d7565b8294818452818301116103d4578281602093846000960137010152565b9080601f830112156103d4578160206105c693359101610574565b90565b6001600160a01b038116036103d457565b3590610508826105c9565b60431901906101c082126103d4576040516105ff81610461565b6101408193126103d45761061161050a565b61061b60446105da565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526106596101246105da565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103d4576102203660031901126103d45760043567ffffffffffffffff81116103d4576106cc9036906004016105ab565b3660231901906101c082126103d457610140604051926106eb84610461565b126103d4576106f861050a565b61070260246105da565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c082015261073f6101046105da565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103d4576040926107a66107b19336906004016105ab565b906102043592611c65565b82519182526020820152f35b346103d45760403660031901126103d45760206108156004356107df816105c9565b6001600160a01b036107ef6103d9565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103d45760403660031901126103d45760043561083b816105c9565b6024353360005260006020526040600020918254908183116108c35760008080856001600160a01b03829589610874846100219a611ed8565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108bd611efa565b50611f2a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f840112156103d45782359167ffffffffffffffff83116103d4576020808501948460051b0101116103d457565b90816101209103126103d45790565b60c06003198201126103d45760043567ffffffffffffffff81116103d4578161097291600401610907565b929092916024359067ffffffffffffffff82116103d45761099591600401610938565b906044356109a2816105c9565b90606435906084359060a43590565b634e487b7160e01b600052602160045260246000fd5b60005b8381106109da5750506000910152565b81810151838201526020016109ca565b90602091610a03815180928185528580860191016109c7565b601f01601f1916010190565b6020815281516002811015610a7a57602082015260a0604080610a5e8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109ea565b9401518051606085015260208101516080850152015191015290565b6109b1565b346103d457610ac6610aba610aac610a9636610947565b9691949095610aa6949394611f94565b50612edb565b610ab581612f6a565b612ffd565b60405191829182610a0f565b0390f35b346103d4576102003660031901126103d45760243560043567ffffffffffffffff82116103d457610b02610ac6923690600401610938565b90610b0c366105e5565b600092815192610b1c84836137d2565b610b2582611fd8565b60208401526001600160a01b0360e0610b5f86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610b87575b6040805160008082526020820188905291810191909152806060810188565b610b919450613a4f565b905038808080610b68565b60206003198201126103d4576004359067ffffffffffffffff82116103d4576105c691600401610938565b346103d4576020610bdf610bda36610b9c565b611fd8565b604051908152f35b346103d45760403660031901126103d4576020600435610c06816105c9565b6001600160a01b03610c166103d9565b911660005260018252610c40816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f840112156103d45782359167ffffffffffffffff83116103d457602083818601950101116103d457565b9060606003198301126103d457600435610c9f816105c9565b916024359067ffffffffffffffff82116103d457610cbf91600401610c58565b909160443590565b346103d45760008080610cd936610c86565b939181604094929451948592833781018381520393f1610cf7611efa565b9015610cff57005b80519081156103d457602001fd5b346103d45760203660031901126103d4576001600160a01b03600435610d32816105c9565b60006080604051610d4281610461565b8281528260208201528260408201528260608201520152166000526000602052610ac66040600020610dca65ffffffffffff600160405193610d8385610461565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103d45760203660031901126103d4576001600160a01b03600435610e43816105c9565b1660005260006020526020604060002054604051908152f35b60406003198201126103d4576004359067ffffffffffffffff82116103d457610e8791600401610907565b90916024356105c6816105c9565b346103d457610ea336610e5c565b505050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b61012060e06105c6936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109ea565b346103d45760603660031901126103d45760043567ffffffffffffffff81116103d457610f8d903690600401610938565b602435610f99816105c9565b60443567ffffffffffffffff81116103d457610fb99036906004016105ab565b91610fc26120bb565b50600091600280541461113b57610ac69360028055610fdf612237565b610fe884612f6a565b610ff28185612955565b91955a60608501518561100860608501856122fa565b94908c60038711611133575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361111b5750611084945061107f602083015191611071604051938492638dd7712f60e01b602085015260248401613c26565b03601f1981018352826104d7565b611c65565b9390975b80956060976001600160a01b0381166110f2575b5050509560806110d796970151976110b261051a565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526110e66001600255565b60405191829182610efa565b6110d798508280949850602083519301915af1956080611110611efa565b97959197963861109c565b61107f915061112b953691610574565b939097611088565b508035611014565b600483633ee5aeb560e01b8152fd5b346103d45760403660031901126103d4576111666004356105c9565b60243567ffffffffffffffff81116103d457611186903690600401610c58565b5050608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d556044820152664c4154494f4e5360c81b6064820152fd5b346103d45760203660031901126103d45760043567ffffffffffffffff81116103d457602061121261122e923690600401610c58565b906040519384928392632b870d1b60e11b8452600484016122dd565b038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156112d3576001600160a01b03916000916112a4575b507f6ca7b806000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b6112c6915060203d6020116112cc575b6112be81836104d7565b8101906122a7565b38611275565b503d6112b4565b6122ee565b346103d457610ac6610aba6112ec36610947565b9594909493919361237b565b60406003198201126103d45760043567ffffffffffffffff81116103d4578161132391600401610907565b929092916024359067ffffffffffffffff82116103d4576105c691600401610938565b6105c69060208152610100608061139f81865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109ea565b6020808701518051604087015201516060850152946113cf60408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103d45761141a366112f8565b919061142461244f565b5060005b81811061144757610ac661143b8561278f565b60405191829182611346565b8061145d61145860019385876124ec565b61278f565b5001611428565b346103d457611472366112f8565b919061147c6120bb565b5060209060005b8181106114b157610ac66110e686604051906114a06020836104d7565b600082526114ac6120bb565b612110565b806114d06114c260019385886124ec565b604051906114a087836104d7565b5001611483565b60203660031901126103d4576100216004356114f2816105c9565b612514565b60009103126103d457565b346103d45760003660031901126103d4573360005260006020526001604060002001805463ffffffff8160781c16156115e55761156e6115606102708361155461154f6115a89660ff1690565b612555565b60781c63ffffffff1690565b65ffffffffffff42166125a0565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103cf565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103d45760203660031901126103d457610021600080808060043561164e816105c9565b6001600160a01b036001611675336001600160a01b03166000526000602052604060002090565b01916117038354936116db65ffffffffffff6116c76116ad6116a1896001600160701b039060081c1690565b6001600160701b031690565b976116b98915156125be565b60981c65ffffffffffff1690565b166116d3811515612609565b421015612654565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af161174a611efa565b5061269f565b346103d457610ac661143b61145836610b9c565b801515036103d457565b346103d4576102203660031901126103d45760043560243567ffffffffffffffff81116103d4576117a3903690600401610938565b906117ad366105e5565b61020435906117bb82611764565b6000935a8251936117cc85846137d2565b6117d583611fd8565b60208501526040850151956118216effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a089015117610100890151176101208901511711156128f4565b61184c86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b9061185a8883888885613f86565b9761188161187d6118728a516001600160a01b031690565b60208b015190614105565b1590565b6119a9575a850311611957576060926001600160a01b036118ad60e05a9a01516001600160a01b031690565b161515908161194f575b50611918575b509360806118f49460a06118ef95610ac699956118fb99604087015260608601525a9003910135019101525a90611ed8565b61293f565b6064900490565b604051938493846040919493926060820195825260208201520152565b819850610ac69692508460a06118ef9561193d89956118fb9a6118f49a608097613a4f565b9c90969a5094985095505094506118bd565b9050386118b7565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103d457610ac6610aba611a1236610947565b95949094939193612b65565b346103d457611a38611a2f36610c86565b92919091612cc9565b90610ac6604051928392151583526040602084015260408301906109ea565b346103d45760203660031901126103d4576001600160a01b03600435611a7c816105c9565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b15611aec57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611b3757565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211611ba057565b611b7b565b9060018201809211611ba057565b91908201809211611ba057565b15611bc757565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611c1257565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6000198114611ba05760010190565b93929093845190606082015181519081611e50575b505050505a900360808401510192600093845a835194611c9986614157565b92611cae60e08801516001600160a01b031690565b6001600160a01b038116919082611d7e5750505050611cd485516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611d69575b505085029460408501938451878110600014611d3e57505050611d3a939450611d226000612e53565b5a9003905101905183611d358295614280565b6141b1565b9190565b611d3a969295508780955060019450611d5992910390613c3d565b50611d646000612e53565b614219565b9196916064919003600a020401943880611cf9565b95928051611d8f575b505050611cd6565b9091929950611d9d82612e53565b5a9260a089015190803b15611e4c579183929187848196948f611df2604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601612e5d565b0393f19182611e32575b5050611e26576119a5611e0d612e25565b6040519182916365c8fd4d60e01b835260048301612e8f565b5a900396388080611d87565b611e3f611e4592826104d7565b806114f7565b3880611dfc565b8380fd5b600080949360206001600160a01b0383965116910192f115611e755738808080611c7a565b6119a5611e80612e25565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109ea565b600319810191908211611ba057565b600019810191908211611ba057565b91908203918211611ba057565b60405190611ef46020836104d7565b60008252565b3d15611f25573d90611f0b82610558565b91611f1960405193846104d7565b82523d6000602084013e565b606090565b15611f3157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190611f8282610482565b60006040838281528260208201520152565b60405190611fa182610482565b8160008152604051611fb281610482565b60008152600060208201526060604082015260208201526040611fd3611f75565b910152565b602081013561208c611fed60408401846122fa565b9081604051918237209161107161200760608601866122fa565b90816040519182372060c086013560a0870135608088013561203561202f60e08b018b6122fa565b90614cb3565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b519020604080516020810192835230918101919091524660608201526120b58160808101611071565b51902090565b60405190610100820182811067ffffffffffffffff82111761047d57604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b50905060028054146122265760028055608061212a612237565b9161213481612f6a565b61213e8382612955565b926000929192905a908760608101519161215b60608201826122fa565b956003871161221e575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361220657506121c2945061107f602083015191611071604051938492638dd7712f60e01b602085015260248401613c26565b9490955b0151946121d161051a565b958652602086015260408501526060840152608083015260a0820152600060c0820152606060e0820152906105086001600255565b61107f9150612216953691610574565b9490956121c6565b508035612165565b633ee5aeb560e01b60005260046000fd5b6040519061224482610461565b60006080836040516122558161049e565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b908160209103126103d457516105c6816105c9565b908060209392818452848401376000828201840152601f01601f1916010190565b9160206105c69381815201916122bc565b6040513d6000823e3d90fd5b903590601e19813603018212156103d4570180359067ffffffffffffffff82116103d4576020019181360383136103d457565b6040519061233c6020836104d7565b6000808352366020840137565b9061235382610558565b61236060405191826104d7565b8281528092612371601f1991610558565b0190602036910137565b9594939291909561238a611f94565b5061239860608301836122fa565b9050156123ce576105c6966123ac91612edb565b6123c66123b7612237565b6123c083612f6a565b82612955565b50505061333b565b505050505050506123dd61232d565b604051906123ea82610482565b6000825260006020830152604082015260405161240681610482565b6000815260006020820152600060408201526040519161242583610482565b600083526020830152604082015290565b60405190612443826104bb565b60006020838281520152565b6040519061245c82610461565b8160405161246981610461565b60008152600060208201526000604082015260006060820152606060808201528152612493612436565b60208201526124a0612436565b60408201526124ad612436565b60608201526080604051916124c1836104bb565b600083526124cd612436565b60208401520152565b634e487b7160e01b600052603260045260246000fd5b919081101561250f5760051b8101359061011e19813603018212156103d4570190565b6124d6565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036125493485613c3d565b936040519485521692a2565b1561255c57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611ba057565b156125c557565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561261057565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561265b57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156126a657565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b906014116103d45790601490565b90929192836034116103d45783116103d457603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612735575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b60405190612762826104bb565b6003546001600160a01b0316825260405160208361277f836104bb565b6004548352600554828401520152565b61279761244f565b506127a0612237565b906127aa81612f6a565b6127b48282612955565b509190926127c28385613c65565b6127df6127da60e0835101516001600160a01b031690565b613d8d565b9161280d6127f96127da84516001600160a01b0390511690565b91612802612436565b5060408101906122fa565b90601482106128e85761282f612829612835936127da936126ea565b90612715565b60601c90565b916001600160a01b03861694608082015196606060408401519301519261285a6104f9565b9889526020890152604088015260608701526080860152612879612755565b93801515806128dd575b6128ab575b506128916104f9565b948552602085015260408401526060830152608082015290565b9093506128b781613d8d565b6128d16128c261052a565b6001600160a01b039093168352565b60208201529238612888565b506001811415612883565b50506128356000613d8d565b156128fb57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715611ba057565b90916000915a9380519161296983826137d2565b61297281611fd8565b60208301526040830151956129be6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a087015117610100870151176101208701511711156128f4565b6129e984610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129f7888286866000613f86565b97612a1a61187d612a0f88516001600160a01b031690565b602089015190614105565b612b11575a830311612abd576060906001600160a01b03612a4660e05a9801516001600160a01b031690565b16151580612ab5575b612a82575b6118ef9360a06105c69794879460809460406118f49a015260608601525a9003910135019101525a90611ed8565b965050928260808360a06105c697612aa38b6118f4996118ef996000613a4f565b9b909598509350949750509350612a54565b506001612a4f565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b95949392919095612b74611f94565b506014612b8460e08401846122fa565b905010612bbf576105c696612bb191610aa6612b9e612237565b612ba98151876137d2565b5a9086613e2a565b612bba81612f6a565b613561565b50505050505050612bce61232d565b60405190612bdb82610482565b60008252600060208301526040820152612bf3610539565b600081526000602082015260006040820152612c0d610539565b91600083526020830152604082015290565b6040906001600160a01b036105c6959316815281602082015201916122bc565b90815181101561250f570160200190565b81601f820112156103d4578051612c6681610558565b92612c7460405194856104d7565b818452602082840101116103d4576105c691602080850191016109c7565b9190916040818403126103d4578051612caa81611764565b92602082015167ffffffffffffffff81116103d4576105c69201612c50565b91926000936001600160a01b036060941691823b156103d457612d4993600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612c1f565b0393f19081612e07575b50612df4575050612d62611efa565b906004825110612df857612d7e612d798351611eba565b612349565b60045b8351811015612dde5780612dc0612d9a60019387612c3f565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612dd7612dcc83611eba565b9160001a9185612c3f565b5301612d81565b50612df491925060208082518301019101612c92565b9091565b9050612e0261232d565b600091565b80611e3f6000612e16936104d7565b38612d53565b61050833612514565b3d6108008111612e4a575b604051906020818301016040528082526000602083013e90565b50610800612e30565b60031115610a7a57565b90949392946003811015610a7a57606092612e859183526080602084015260808301906109ea565b9460408201520152565b9060a06105c6926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109ea565b60005b828110612eea57505050565b600190612ef5612237565b612f008286866124ec565b612f0981612f6a565b612f138282612955565b505050612f2360608201826122fa565b905015612f5957612f3d60009291602084930151906142c3565b9082602083519301915af150612f51611efa565b505b01612ede565b5050612f53565b356105c6816105c9565b612f9d90612f7b60408201826122fa565b91612f95813591612f8b836105c9565b60e08101906122fa565b93909261435d565b8051612fa65750565b6119a590604051918291631101335b60e11b8352600060048401526040602484015260448301906109ea565b939291612ff8906001600160a01b036040931686526060602087015260608601906109ea565b930152565b939094613008611f94565b5060009280156132805761304d935061301f611ee5565b5091600061302f5a8860036146f4565b5a906040519687928392631efc84dd60e31b84528c60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d3576000948592613262575b5081948092811561323f5750506130aa9095929394955b85611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846130e28885611ed8565b10613210575a6130f188611b91565b116131b557918893918796959360008c8b61312461311b613115886131449f611bb3565b60011c90565b809a60036146f4565b835a936040519e8f9586948593631efc84dd60e31b855260048501612fd2565b03925af19889156112d357600090819a61318f575b501561317a5750505061316b83611ec9565b95915b939495919290926130d7565b93965093613189919750611ba5565b9461316e565b906131ad929a503d8091833e6131a581836104d7565b810190612c92565b989038613159565b509550939550505093506131c761232d565b926131d0610539565b93600085526000602086015260408501526131e9610539565b928352602083015260408201526131fe610539565b60018152916020830152604082015290565b9650965050919550506132329150613226610539565b93845215156020840152565b6040820152612bf3610539565b96509650505094505050613232613254610539565b600081529215156020840152565b909461327892503d8091833e6131a581836104d7565b90933861308d565b506132b2915a90846132945a8960036146f4565b5a906040519687928392631efc84dd60e31b84528d60048501612fd2565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613317575b5050839461330081935a90611ed8565b94811561323f5750506130aa9095929394956130a4565b909194506133309295503d8091833e6131a581836104d7565b9390939238806132f0565b939094613346611f94565b5060009280156134c45761336d935061335d611ee5565b5091600061302f5a8860016146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926134a6575b5081948092811561323f5750506133c990959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134018885611ed8565b10613210575a61341088611b91565b116131b557918893918796959360008c8b6131246134346131158861343d9f611bb3565b809a60016146f4565b03925af19889156112d357600090819a613488575b50156134735750505061346483611ec9565b95915b939495919290926133f6565b93965093613482919750611ba5565b94613467565b9061349e929a503d8091833e6131a581836104d7565b989038613452565b90946134bc92503d8091833e6131a581836104d7565b9093386133ad565b506134d8915a90846132945a8960016146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d35785809561353d575b5050839461352681935a90611ed8565b94811561323f5750506133c99095929394956130a4565b909194506135569295503d8091833e6131a581836104d7565b939093923880613516565b93909461356c611f94565b5060009280156136ea576135939350613583611ee5565b5091600061302f5a8860026146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156112d35760009485926136cc575b5081948092811561323f5750506135ef90959293949585611bb3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846136278885611ed8565b10613210575a61363688611b91565b116131b557918893918796959360008c8b61312461365a613115886136639f611bb3565b809a60026146f4565b03925af19889156112d357600090819a6136ae575b50156136995750505061368a83611ec9565b95915b9394959192909261361c565b939650936136a8919750611ba5565b9461368d565b906136c4929a503d8091833e6131a581836104d7565b989038613678565b90946136e292503d8091833e6131a581836104d7565b9093386135d3565b506136fe915a90846132945a8960026146f4565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19384156112d357858095613763575b5050839461374c81935a90611ed8565b94811561323f5750506135ef9095929394956130a4565b9091945061377c9295503d8091833e6131a581836104d7565b93909392388061373c565b1561378e57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613869906137ef6137e282612f60565b6001600160a01b03168452565b6020810135602084015261381c6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c084015261385360c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e08101906122fa565b9081156138a55761388d8260e092613888603461050897961015613787565b614930565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b91906040838203126103d457825167ffffffffffffffff81116103d4576020916138e7918501612c50565b92015190565b9035601e19823603018112156103d457016020813591019167ffffffffffffffff82116103d45781360383136103d457565b6105c69161393d81613930846105da565b6001600160a01b03169052565b602082013560208201526139d36139c761398e61397361396060408701876138ed565b61012060408801526101208701916122bc565b61398060608701876138ed565b9086830360608801526122bc565b6080850135608085015260a085013560a085015260c085013560c08501526139b960e08601866138ed565b9085830360e08701526122bc565b926101008101906138ed565b916101008185039101526122bc565b6139fa6040929594939560608352606083019061391f565b9460208201520152565b60a0906105c69392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929390915a92815190613a6c60e08301516001600160a01b031690565b91613a8a836001600160a01b03166000526000602052604060002090565b8054898110613bd1576001600160a01b0360206080600097958d9795613aec9d9e8a960390550151970151926040519a8b96879586937f52b7512c000000000000000000000000000000000000000000000000000000008552600485016139e2565b03931686f19384600091600096613baa575b50613b295785613b0c612e25565b906119a56040519283926365c8fd4d60e01b845260048401613a04565b9491925a900311613b375750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613bca91503d806000833e613bc281836104d7565b8101906138bc565b9438613afe565b6119a589604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b929190612ff860209160408652604086019061391f565b6001600160a01b0316600052600060205260406000208054918201809211611ba05781905590565b613c766001600160a01b0391614968565b9116613d4157613ced57613c916001600160a01b0391614968565b5016613c9957565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806119a5600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613d9e612436565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b908160209103126103d4575190565b60a0906105c69392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109ea565b929091613ead6020600095855193613e7760e0613e4e87516001600160a01b031690565b96613e698a8c613e6160408901896122fa565b929091614a3b565b01516001600160a01b031690565b91886001600160a01b03819416159889613f4b575b85015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1859181613f1a575b50613eee5784613ed1612e25565b906119a56040519283926365c8fd4d60e01b845260048401613ddf565b939192613ef9575050565b613f16906001600160a01b03166000526000602052604060002090565b5050565b613f3d91925060203d602011613f44575b613f3581836104d7565b810190613dd0565b9038613ec3565b503d613f2b565b9350613f6a876001600160a01b03166000526000602052604060002090565b548015613f7d575084815b949050613e8c565b85908203613f75565b94929193906020613ff691865193613fbd60e0613faa87516001600160a01b031690565b96613e698b8d613e6160408901896122fa565b916001600160a01b03600093161598896140c3575b84600091015191604051968795869485936306608bdf60e21b8552600485016139e2565b03926001600160a01b03881690f1600091816140a2575b5061401b5785613ed1612e25565b94929361402757505050565b614044906001600160a01b03166000526000602052604060002090565b918254908183116140555750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b6140bc91925060203d602011613f4457613f3581836104d7565b903861400d565b92506140e2866001600160a01b03166000526000602052604060002090565b54878111156140fa5750600084815b94915050613fd2565b8460009189036140f1565b6001600160a01b0316600052600160205267ffffffffffffffff6141438260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261415084611c56565b9055161490565b6101206101008201519101518082146141ad577f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd54806141a7575048905b01808210156141a2575090565b905090565b90614195565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b919082356142d0816105c9565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061430883856122fa565b90600360009211614354575b50160361433f57506105c690611071604051938492638dd7712f60e01b602085015260248401613c26565b6105c6925061434d916122fa565b3691610574565b90503538614314565b50929192159081614412575b506143d5576014811015614382575b50506105c6611ee5565b6014116103d4573560601c3b1561439a573880614378565b6040516143a86040826104d7565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143e56040826104d7565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614369565b919091610120818403126103d457614432610548565b9261443c826105da565b845260208201356020850152604082013567ffffffffffffffff81116103d457816144689184016105ab565b6040850152606082013567ffffffffffffffff81116103d4578161448d9184016105ab565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff81116103d457816144d09184016105ab565b60e085015261010082013567ffffffffffffffff81116103d4576144f492016105ab565b610100830152565b60041115610a7a57565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b16855216601484015216602482015261455482518093602086850191016109c7565b010190565b80516001600160a01b031682526105c691602082015160208201526101006145da6145aa614598604086015161012060408701526101208601906109ea565b606086015185820360608701526109ea565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109ea565b920151906101008184039101526109ea565b60806101a091610120815161460a8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465e60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146ca6146bf6102009396959496600084526102206020850152610220840190614559565b9560408301906145ec565b0152565b610200906146ca6146bf6000949695968584526102206020850152610220840190614559565b916146fd612237565b92614708368461441c565b614711826144fc565b6002821461484c57614722826144fc565b600382146147ce5750806147376001926144fc565b146147815760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b6147966105c6926020611071950151906142c3565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501612fd2565b9190506fffffffffffffffffffffffffffffffff61480c61480560806105c69601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526110716040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146ce565b9161107191506fffffffffffffffffffffffffffffffff19846148d860e06105c697016148ca61488561487f83866122fa565b90614930565b9391905060609160e08b019660348851511161490e575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614506565b03601f1981018452836104d7565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161469a565b61492892935061434d91614921916122fa565b80916126f8565b90388061489c565b9091826014116103d457813591836024116103d4576014810135936034116103d45760609290921c92608090811c9260240135901c90565b8015614a3257614976611f75565b5065ffffffffffff8160a01c16908115614a24575b614a06906149ed6149e2604051946149a286610482565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526149d66040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b4211908115614a09575b5091516001600160a01b031690565b91565b51614a1c915065ffffffffffff166149e2565b4210386149f7565b65ffffffffffff915061498b565b50600090600090565b92909181614a4a575b50505050565b8251516001600160a01b031693843b614c665760408451015160206040518092632b870d1b60e11b825281600081614a868a8a600484016122dd565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f19081156112d357600091614c47575b506001600160a01b038116958615614bf2576001600160a01b0316809603614b9d573b15614b50575061282f6128297fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614b1d936126ea565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a338808080614a44565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b6119a582604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6119a583604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c60915060203d6020116112cc576112be81836104d7565b38614ac3565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b81604051918237209056fea264697066735822122045d87e5c1197bed5ea2a8b89bc27460d878e169926b55d1c36c79bd06b9f30e464736f6c634300081c0033","sourceMap":"1166:17660:21:-:0;;;;;;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;:::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;;1166:17660:21;;;;;;;;;;;;;;;2977:47:3;;2428:10;1166:17660:21;2657:22:3;1166:17660:21;2419:20:3;2428:10;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;2419:20:3;2457:19;2449:58;2457:19;;;2449:58;:::i;:::-;2517:114;2557:20;;;1166:17660:21;;2538:39:3;1166:17660:21;;;;;;;;;;;;;;2538:39:3;-1:-1:-1;2538:39:3;2517:114;:::i;:::-;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;-1:-1:-1;;;;;2670:9:3;1166:17660:21;;2657:22:3;:::i;:::-;2697:9;2689:40;2697:9;;;2689:40;:::i;:::-;2739:53;-1:-1:-1;;;;;2747:26:3;;;2739:53;:::i;:::-;1166:17660:21;;;:::i;:::-;;;;2557:20:3;1166:17660:21;2825:137:3;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;2825:137:3;;;1166:17660:21;;;;2825:137:3;;;1166:17660:21;-1:-1:-1;2825:137:3;;;1166:17660:21;2802:20:3;2428:10;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;2802:20:3;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1166:17660:21;;;;;;2825:137:3;1166:17660:21;;;;;;;;;;;;;2428:10:3;;1166:17660:21;;;;;;;2977:47:3;;;;1166:17660:21;;-1:-1:-1;1166:17660:21;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;893:36:1;913:10;;-1:-1:-1;1166:17660:21;893:19:1;1166:17660:21;;;-1:-1:-1;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;893:36:1;:38;1166:17660:21;;893:38:1;:::i;:::-;1166:17660:21;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2569:15;1166:17660;;;2569:15;1166:17660;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1166:17660:21;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1166:17660:21;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;1166:17660:21;;;;;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;279:74:1;1166:17660:21;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;:::i;:::-;;;-1:-1:-1;1166:17660:21;279:74:1;1166:17660:21;;;-1:-1:-1;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;279:74:1;1166:17660:21;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;:::i;:::-;;;4805:10:3;-1:-1:-1;1166:17660:21;-1:-1:-1;1166:17660:21;;;-1:-1:-1;1166:17660:21;;;;4834:30:3;;;;1166:17660:21;;-1:-1:-1;4919:29:3;;;-1:-1:-1;;;;;4919:29:3;;;;;5102:38;4919:29;;:::i;:::-;1166:17660:21;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;4805:10:3;;4963:54;;;1166:17660:21;5045:47:3;;;;:::i;:::-;;5102:38;:::i;1166:17660:21:-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1166:17660:21;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;13629:152;13547:13;1166:17660;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;13547:13;:::i;:::-;13598:12;;;:::i;:::-;13629:152;:::i;:::-;1166:17660;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;17627:17:20;;;17682:7;;;;;:::i;:::-;17723:21;;;:::i;:::-;1166:17660:21;17700:20:20;;1166:17660:21;-1:-1:-1;;;;;17823:17:20;17781:28;;9465:20;9248:28;;;1166:17660:21;9279:20:20;;;1166:17660:21;2360:4:20;9318:37;;;1166:17660:21;2360:4:20;9358:31;;;1166:17660:21;2360:4:20;9392:26;;;1166:17660:21;2360:4:20;9465:20;;1166:17660:21;;9086:416:20;;17781:28;17823:17;;1166:17660:21;;17819:188:20;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;17819:188:20;17923:73;;;;:::i;:::-;17870:126;;17819:188;;;;;;1166:17660:21;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;:::i;:::-;;;-1:-1:-1;1166:17660:21;507:19:1;1166:17660:21;;507:32:1;1166:17660:21;;-1:-1:-1;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;507:32:1;1166:17660:21;;;;;;;-1:-1:-1;;1166:17660:21;507:55:1;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;1166:17660:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6750:27;;;;;:::i;:::-;6791:8;;6787:175;;1166:17660;6787:175;1166:17660;;6819:22;;;6815:36;;6865:87;;;1166:17660;;;;;;-1:-1:-1;;1166:17660:21;;;;-1:-1:-1;;;;;1166:17660:21;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1166:17660:21;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;-1:-1:-1;;;;;1166:17660:21;;;;;:::i;:::-;;-1:-1:-1;1166:17660:21;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;4947:49:20;1166:17660:21;;-1:-1:-1;;;4947:49:20;;1166:17660:21;;4947:49:20;;1166:17660:21;;;;;;;;;;;-1:-1:-1;;;1166:17660:21;;;;4947:49:20;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;1166:17660:21;2558:7:15;1166:17660:21;;2558:18:15;2554:86;;1166:17660:21;;2558:7:15;1166:17660:21;;;;:::i;:::-;16087:2;;;:::i;:::-;16211:40;;;;:::i;:::-;3174:1039:20;;3414:9;3481:20;;;1166:17660:21;3552:15:20;;3481:20;3552:15;;;;:::i;:::-;3581:16;;;3611:144;;;;;1166:17660:21;;;-1:-1:-1;;;3772:51:20;3785:38;;3927:17;4003:53;3927:17;;3872:74;3927:17;;;1166:17660:21;;3872:74:20;1166:17660:21;;3872:74:20;;;-1:-1:-1;;;3927:17:20;3872:74;;;;;;;:::i;:::-;;1166:17660:21;;3872:74:20;;;;;;:::i;:::-;4003:53;:::i;:::-;3964:92;;3768:429;;16352:18:21;16380:25;3481:20:20;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;16415:110;;3768:429:20;16571:15:21;;;;;16542:270;16571:15;;;1166:17660;;;;:::i;:::-;;;;16542:270;;;1166:17660;16542:270;;;1166:17660;3481:20:20;16542:270:21;;1166:17660;16571:15;16542:270;;1166:17660;16542:270;;;1166:17660;;;16542:270;;;1166:17660;;16542:270;;;;1166:17660;2387:1:15;305::0;2924:21:15;1166:17660:21;2744:208:15;2387:1;1166:17660:21;;;;;;;:::i;16415:110::-;16542:270;16487:27;;;;;;;;;;;;;;;;16571:15;16487:27;;:::i;:::-;16455:59;16415:110;;;;;;;3768:429:20;1166:17660:21;;;4134:48:20;1166:17660:21;;;;:::i;4134:48:20:-;4095:87;;3768:429;;;3611:144;-1:-1:-1;3611:144:20;;;;2554:86:15;2599:30;;-1:-1:-1;;;2599:30:15;;;1166:17660:21;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;4947:49:20;1166:17660:21;;-1:-1:-1;;;4947:49:20;;1166:17660:21;;4947:49:20;;1166:17660:21;;;;;;;;;;;-1:-1:-1;;;1166:17660:21;;;;4947:49:20;1166:17660:21;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;10891:38:20;1166:17660:21;;;;;;:::i;:::-;;;;10891:38:20;;;;;-1:-1:-1;;;10891:38:20;;1166:17660:21;10891:38:20;;;:::i;:::-;;1917:14;-1:-1:-1;;;;;;1917:14:20;1166:17660:21;10891:38:20;;;;;;-1:-1:-1;;;;;10891:38:20;-1:-1:-1;10891:38:20;;;1166:17660:21;10946:27:20;;-1:-1:-1;10946:27:20;1166:17660:21;;;;-1:-1:-1;10946:27:20;10891:38;;;;1166:17660:21;10891:38:20;1166:17660:21;10891:38:20;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;1166:17660:21:-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;6388:24:21;;;;;;1166:17660;6563:32;;;:::i;:::-;1166:17660;;;;;;;:::i;6414:3::-;6452:16;6433:36;6452:16;1166:17660;6452:16;;;;:::i;:::-;6433:36;:::i;:::-;;1166:17660;6373:13;;1166:17660;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;-1:-1:-1;17095:24:21;;;;;;1166:17660;15988:22;1166:17660;;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;:::i;:::-;15988:22;:::i;17121:3::-;17163:16;15988:22;17163:16;1166:17660;17163:16;;;;:::i;:::-;1166:17660;;;;;;;:::i;15988:22::-;;1166:17660;17080:13;;1166:17660;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;3248:10:3;1166:17660:21;;;;;3277:20:3;1166:17660:21;;;3277:20:3;1166:17660:21;;;;;;;3277:25:3;1166:17660:21;;3400:46:3;;1166:17660:21;;3327:41:3;1166:17660:21;3498:19:3;1166:17660:21;;;;;;3327:41:3;:::i;:::-;1166:17660:21;;;;;;3400:46:3;1166:17660:21;3407:15:3;1166:17660:21;3400:46:3;:::i;:::-;1166:17660:21;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;3498:19:3;1166:17660:21;;;;;;;;3248:10:3;;3532:39;;1166:17660:21;;;;3532:39:3;1166:17660:21;;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;4419:44:3;-1:-1:-1;1166:17660:21;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3934:10:3;3888:20;3897:10;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;3888:20:3;3934:10;1166:17660:21;4264:14:3;1166:17660:21;;;4079:110:3;1166:17660:21;;3918:26:3;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;3918:26:3;3962:9;3954:42;3962:9;;;3954:42;:::i;:::-;1166:17660:21;;;;;;;;4006:63:3;4014:21;;;4006:63;:::i;:::-;4121:15;-1:-1:-1;4100:36:3;4079:110;:::i;:::-;1166:17660:21;;;;;;;4264:14:3;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;3897:10:3;;4293:50;;;1166:17660:21;4371:38:3;;;;:::i;:::-;;4419:44;:::i;1166:17660:21:-;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;18704:9:20;;18753:17;;18808:7;;;;;:::i;:::-;18849:21;;;:::i;:::-;18826:20;;;1166:17660:21;;19065:28:20;;1166:17660:21;19126:26:20;19360:70;1166:17660:21;19126:26:20;;;;1166:17660:21;19126:49:20;19178:20;;;1166:17660:21;19126:72:20;19213:37;;;1166:17660:21;19126:124:20;19253:31;;;1166:17660:21;19126:158:20;19287:20;;;1166:17660:21;19126:181:20;19322:28;;;1166:17660:21;19126:224:20;19368:33;;19360:70;:::i;:::-;19467:28;;9465:20;9248:28;;;1166:17660:21;9279:20:20;;;1166:17660:21;2360:4:20;9318:37;;;1166:17660:21;2360:4:20;9358:31;;;1166:17660:21;2360:4:20;9392:26;;;1166:17660:21;2360:4:20;9465:20;;1166:17660:21;;9086:416:20;;19467:28;19522:93;;;;;;;;:::i;:::-;1166:17660:21;19630:55:20;19631:54;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;18826:20:20;19671:13;;1166:17660:21;19631:54:20;;:::i;:::-;19630:55;;1166:17660:21;19630:55:20;19626:140;;19813:9;2360:4;;19804:41;19800:138;;19178:20;20011:9;-1:-1:-1;;;;;1166:17660:21;20034:17:20;20011:9;20034:17;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;;20034:31:20;;:62;;;;1166:17660:21;20030:219:20;;;1166:17660:21;20282:17:20;;19213:37;20522:32;20282:17;19253:31;20523:24;20282:17;1166:17660:21;20282:17:20;;20521:40;20282:17;1166:17660:21;20282:17:20;;1166:17660:21;19178:20:20;20331:23;;1166:17660:21;20432:9:20;2360:4;;20444:25;;1166:17660:21;2360:4:20;20402:18;;1166:17660:21;20538:9:20;20523:24;;:::i;:::-;20522:32;:::i;:::-;20558:3;1166:17660:21;;;;20521:40:20;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;20030:219:20;20165:73;;;1166:17660:21;20165:73:20;;;;19253:31;20523:24;20165:73;;;;20521:40;20165:73;20522:32;20165:73;19213:37;20165:73;;:::i;:::-;20112:126;;20030:219;;;;;;;;;;;;;20034:62;;;;;;19800:138;1166:17660:21;;;-1:-1:-1;;;19872:51:20;;1166:17660:21;19872:51:20;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;19872:51:20;;;;19626:140;19708:47;1166:17660:21;;;19708:47:20;;;-1:-1:-1;;;19708:47:20;;1166:17660:21;19708:47:20;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1166:17660:21;;;;-1:-1:-1;;;;;1166:17660:21;;;;;:::i;:::-;;-1:-1:-1;1166:17660:21;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;507:47:3;1166:17660:21;;507:47:3;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;10709:5;1166:17660;;;;;;;:::o;:::-;;:::i;:::-;;11627:1;1166:17660;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;;;;:::o;6298:1160:20:-;;;;;6540:14;;6588:20;;;;1166:17660:21;;;6996:19:20;;6992:290;;6298:1160;7345:9;;;;;2360:4;;7357:15;;;1166:17660:21;2360:4:20;7393:48;-1:-1:-1;7393:48:20;21382:31;21442:9;21550:14;;21597:26;;;;:::i;:::-;21658:17;1166:17660:21;21658:17:20;;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;-1:-1:-1;;;;;1166:17660:21;;;;21693:23:20;1166:17660:21;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;21689:1013:20;;22737:9;2360:4;;;22869:20;22892:31;22869:20;;;1166:17660:21;22892:31:20;;1166:17660:21;2360:4:20;22980:15;;;;1166:17660:21;;;2360:4:20;;23133:36;;;;23129:274;;21689:1013;1166:17660:21;;;;23499:14:20;;;;1166:17660:21;;;23531:23:20;;;23527:880;23531:23;;;1166:17660:21;;;24070:9:20;1166:17660:21;;;;6540:14:20;1166:17660:21;:::i;:::-;23869:9:20;2360:4;;1166:17660:21;;2360:4:20;1166:17660:21;;23988:6:20;;;;;:::i;:::-;24070:9;:::i;:::-;7386:55;6298:1160;:::o;23527:880::-;24382:9;2360:4;;;;;;;;24268:41;2360:4;;24195:40;2360:4;;;24195:40;;:::i;:::-;;1166:17660:21;6540:14:20;1166:17660:21;:::i;:::-;24382:9:20;:::i;23129:274::-;2360:4;;;20558:3;2360:4;;;2413:2;1166:17660:21;;2360:4:20;23129:274;;;;;21689:1013;21805:25;;1166:17660:21;;21848:840:20;;21689:1013;;;;;;21848:840;1166:17660:21;;;;;;;;:::i;:::-;22051:9:20;22124:31;;;;1166:17660:21;22090:160:20;;;;;;1166:17660:21;;;;;;;;;;22090:160:20;1166:17660:21;;22090:160:20;;;;;;;1166:17660:21;22090:160:20;;1166:17660:21;22090:160:20;;;;;;:::i;:::-;;;;;;;;21848:840;-1:-1:-1;;22086:486:20;;22395:150;22474:41;;:::i;:::-;1166:17660:21;;22395:150:20;;;-1:-1:-1;;;22395:150:20;;22090:160;22395:150;;;:::i;22086:486::-;22638:9;2360:4;;21848:840;;;;;;22090:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;1166:17660:21;;;6992:290:20;-1:-1:-1;1166:17660:21;;;378:118:13;-1:-1:-1;;;;;1166:17660:21;;;;378:118:13;;;;7116:8:20;7112:160;;6992:290;;;;;;7112:160;2360:4;7166:41;;:::i;:::-;1166:17660:21;;7232:25:20;;;;;;378:118:13;7232:25:20;;;2360:4;;;;;;:::i;1166:17660:21:-;-1:-1:-1;;1166:17660:21;;;;;;;;:::o;:::-;-1:-1:-1;;1166:17660:21;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1166:17660:21;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1166:17660:21;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;7496:180:20:-;1938:12:4;;;1166:17660:21;2342:180:4;1998:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2062:15:4;2342:180;2062:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2230:14:4;;;1166:17660:21;2177:25:4;;;1166:17660:21;2115:23:4;;;1166:17660:21;2285:39:4;2300:23;;;;2115;2300;:::i;:::-;2285:39;;:::i;:::-;1166:17660:21;1998:15:4;1166:17660:21;2342:180:4;;;-1:-1:-1;;;;;1938:12:4;2342:180;;823:61;;1166:17660:21;2342:180:4;1166:17660:21;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2342:180:4;1166:17660:21;4962:25:4;;1998:15;1166:17660:21;;1938:12:4;7613:55:20;;1166:17660:21;;;7647:4:20;1166:17660:21;;;;;;;7654:13:20;1166:17660:21;;;;7613:55:20;1166:17660:21;;;;7613:55:20;1166:17660:21;7613:55:20;1166:17660:21;7603:66:20;;7496:180;:::o;1166:17660:21:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1166:17660:21;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;;;:::o;2322:103:15:-;;;;2558:7;1166:17660:21;;2558:18:15;2554:86;;2558:7;1166:17660:21;;16571:15;1166:17660;;:::i;:::-;16087:2;;;;:::i;:::-;16211:40;;;;:::i;:::-;3174:1039:20;1166:17660:21;3174:1039:20;;;;3414:9;3481:20;;;;;1166:17660:21;3552:15:20;;3481:20;3552:15;;;;:::i;:::-;3581:16;3611:144;;;;;2322:103:15;1166:17660:21;;-1:-1:-1;;;3772:51:20;3785:38;;3927:17;4003:53;3927:17;;3872:74;3927:17;;;1166:17660:21;;3872:74:20;1166:17660:21;;3872:74:20;;;-1:-1:-1;;;3927:17:20;3872:74;;;;;;;:::i;4003:53::-;3964:92;;3768:429;;16571:15:21;1166:17660;;;;:::i;:::-;;;;16542:270;;;1166:17660;16542:270;;;1166:17660;3481:20:20;16542:270:21;;1166:17660;16571:15;16542:270;;1166:17660;16542:270;;;1166:17660;-1:-1:-1;16542:270:21;;;1166:17660;3481:20:20;16542:270:21;;;1166:17660;2387:1:15;;305::0;2924:21:15;1166:17660:21;2744:208:15;3768:429:20;1166:17660:21;;;4134:48:20;1166:17660:21;;;;:::i;4134:48:20:-;4095:87;;3768:429;;;3611:144;-1:-1:-1;3611:144:20;;;;2554:86:15;-1:-1:-1;;;1166:17660:21;2599:30:15;;1166:17660:21;2599:30:15;1166:17660:21;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1166:17660:21;;;;;;;;-1:-1:-1;;1166:17660:21;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;14986:1;1166:17660;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;14562:1165::-;;;;;;;;1166:17660;;:::i;:::-;14954:21;;;;;;;:::i;:::-;:33;;;14950:286;;15576:144;15267:13;;;;:::i;:::-;15518:40;1166:17660;;:::i;:::-;15505:2;;;:::i;:::-;15518:40;;:::i;:::-;15576:144;;;;:::i;14950:286::-;15124:12;;;;;;;;;:::i;:::-;1166:17660;;;;;;:::i;:::-;14986:1;1166:17660;;14986:1;15094:43;;;1166:17660;;15094:43;;1166:17660;;;;;;:::i;:::-;14986:1;1166:17660;;14986:1;15094:43;15155:29;;1166:17660;14986:1;1166:17660;15155:29;;1166:17660;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;15094:43;15010:215;;1166:17660;;15010:215;;1166:17660;15003:222;:::o;1166:17660::-;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;:::i;:::-;;;;;;;:::o;:::-;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;1935:179:3:-;2077:30;1166:17660:21;-1:-1:-1;;;;;2025:37:3;2052:9;2025:37;;:::i;:::-;1166:17660:21;;;;;;;2077:30:3;;1935:179::o;1166:17660:21:-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;2635:2;1166:17660;;;;2635:2;1166:17660;:::o;:::-;;;;;;490:2:4;1166:17660:21;;;;;;;490:2:4;1166:17660:21;;-1:-1:-1;;1166:17660:21;;:::o;:::-;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;-1:-1:-1;1166:17660:21:o;:::-;;;;;;;:::i;:::-;3116:14;1166:17660;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1826:1620::-;1166:17660;;:::i;:::-;;;;:::i;:::-;2007:6;;;;:::i;:::-;2160:47;;;;:::i;:::-;2218:98;;;;;;;;:::i;:::-;2360:42;1166:17660;2374:27;:17;;:27;1166:17660;-1:-1:-1;;;;;1166:17660:21;;;;2360:42;:::i;:::-;2456:17;2569:15;2442:39;2456:24;:17;;-1:-1:-1;;;;;1166:17660:21;;;;;2442:39;1166:17660;;;:::i;:::-;;2569:15;;;;;:::i;:::-;2616:69;2635:2;2616:21;;2635:2;;2648:23;2656:14;2713:22;2656:14;2640:32;2656:14;;:::i;:::-;2648:23;;:::i;:::-;1166:17660;;;;2713:22;1166:17660;-1:-1:-1;;;;;1166:17660:21;;2874:18;;;;1166:17660;2906:17;3027:23;2569:15;2906:17;;1166:17660;3027:23;;1166:17660;;;;:::i;:::-;;;;2850:211;;;1166:17660;2569:15;2850:211;;1166:17660;3027:23;2850:211;;1166:17660;2874:18;2850:211;;1166:17660;;;:::i;:::-;3144:45;;;;:93;;;2616:69;3140:199;;2616:69;1166:17660;;;:::i;:::-;;;;2850:211;3355:84;;1166:17660;2569:15;3355:84;;1166:17660;3027:23;3355:84;;1166:17660;2874:18;3355:84;;1166:17660;1826:1620;:::o;3140:199::-;3302:25;;;;;;:::i;:::-;3270:58;1166:17660;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;;;;;3270:58;2850:211;3270:58;;1166:17660;3140:199;;;;3144:93;3193:44;2202:4;3193:44;;;3144:93;;2616:69;;;2713:22;-1:-1:-1;2713:22:21;:::i;1166:17660::-;;;;:::o;:::-;;;;-1:-1:-1;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;20551:3:20;1166:17660:21;;;;;;20551:3:20;1166:17660:21;;;;;;;:::o;18381:2187:20:-;;;-1:-1:-1;18704:9:20;;18753:17;;;18808:7;;;;;:::i;:::-;18849:21;;;:::i;:::-;18826:20;;;1166:17660:21;19065:28:20;;;1166:17660:21;19126:26:20;19360:70;1166:17660:21;19126:26:20;;;;1166:17660:21;19126:49:20;19178:20;;;1166:17660:21;19126:72:20;19213:37;;;1166:17660:21;19126:124:20;19253:31;;;1166:17660:21;19126:158:20;19287:20;;;1166:17660:21;19126:181:20;19322:28;;;1166:17660:21;19126:224:20;19368:33;;19360:70;:::i;:::-;19467:28;;9465:20;9248:28;;;1166:17660:21;9279:20:20;;;1166:17660:21;2360:4:20;9318:37;;;1166:17660:21;2360:4:20;9358:31;;;1166:17660:21;2360:4:20;9392:26;;;1166:17660:21;2360:4:20;9465:20;;1166:17660:21;;9086:416:20;;19467:28;19522:93;;;;;-1:-1:-1;19522:93:20;:::i;:::-;1166:17660:21;19630:55:20;19631:54;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;18826:20:20;19671:13;;1166:17660:21;19631:54:20;;:::i;19630:55::-;19626:140;;19813:9;2360:4;;19804:41;19800:138;;19178:20;20011:9;-1:-1:-1;;;;;1166:17660:21;20034:17:20;20011:9;20034:17;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;;20034:31:20;;:62;;;18381:2187;20030:219;;18381:2187;20523:24;20282:17;19253:31;20521:40;20282:17;;;;19213:37;20282:17;19065:28;20522:32;20282:17;;1166:17660:21;19178:20:20;20331:23;;1166:17660:21;20432:9:20;2360:4;;20444:25;;1166:17660:21;2360:4:20;20402:18;;1166:17660:21;20538:9:20;20523:24;;:::i;20030:219::-;20165:73;;;;;19213:37;20165:73;19253:31;20521:40;20165:73;;;20522:32;20165:73;20523:24;20165:73;-1:-1:-1;20165:73:20;:::i;:::-;20112:126;;20030:219;;;;;;;;;;;;;20034:62;;16246:4:21;20034:62:20;;19800:138;19065:28;1166:17660:21;-1:-1:-1;;;19872:51:20;;;;-1:-1:-1;19872:51:20;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;19626:140:20;19065:28;1166:17660:21;-1:-1:-1;;;19708:47:20;;;;-1:-1:-1;19708:47:20;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;11899:1264;;;;;;;;1166:17660;;:::i;:::-;12313:29;12352:2;12313:29;;;;;;:::i;:::-;:41;;;12309:294;;12935:221;1166:17660;12853:13;1166:17660;12716:70;1166:17660;;:::i;:::-;12686:19;;;;;:::i;:::-;12776:9;12716:70;;;:::i;12853:13::-;12904:12;;;:::i;:::-;12935:221;:::i;12309:294::-;12491:12;;;;;;;;;:::i;:::-;1166:17660;;;;;;:::i;:::-;12413:30;1166:17660;;12413:30;12461:43;;;1166:17660;;12461:43;;1166:17660;;;:::i;:::-;12413:30;1166:17660;;12413:30;12461:43;12522:29;;1166:17660;12413:30;1166:17660;12522:29;;1166:17660;;;:::i;:::-;;-1:-1:-1;1166:17660:21;;12461:43;12377:215;;1166:17660;;12377:215;;1166:17660;12370:222;:::o;1166:17660::-;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;7062:751::-;;;1166:17660;7189:19;-1:-1:-1;;;;;1166:17660:21;;;7228:92;;;;;;;1166:17660;;;;;;7228:92;;;;;;1166:17660;7228:92;;-1:-1:-1;;;;;7297:12:21;1166:17660;7228:92;;;;:::i;:::-;;;;;;;;7062:751;-1:-1:-1;7224:583:21;;7332:475;;;;:::i;:::-;1166:17660;7228:92;1166:17660;;7378:17;7374:164;;7578:28;7588:17;1166:17660;;7588:17;:::i;:::-;7578:28;:::i;:::-;7228:92;7659:3;1166:17660;;7640:17;;;;;7702:9;;;1166:17660;7702:9;;;:::i;:::-;1166:17660;;;;;7702:9;7682:29;7693:5;;;:::i;:::-;7682:29;1166:17660;7682:29;;;;:::i;:::-;;1166:17660;7625:13;;7640:17;;7759:37;7640:17;;;7759:37;1166:17660;;;7759:37;;;;;;:::i;:::-;7739:57;7224:583;7062:751::o;7374:164::-;7510:12;;;;:::i;:::-;1166:17660;;7495:28::o;7228:92::-;;;1166:17660;7228:92;;;:::i;:::-;;;;1279:65:3;1326:10;;;:::i;1107:452:13:-;1204:349;2360:4:20;1204:349:13;;;;1107:452;1204:349;;;;;;;;;;;;;;;;;;1107:452;:::o;1204:349::-;;2360:4:20;1204:349:13;;1166:17660:21;;-1:-1:-1;1166:17660:21;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7819:790::-;8018:1;8021:24;;;;;;7819:790;;;:::o;8047:3::-;1166:17660;;;;:::i;:::-;8142:16;;;;;:::i;:::-;8199:6;;;:::i;:::-;8220:44;;;;:::i;:::-;8339:15;;;;;;;;;:::i;:::-;:27;;;8335:74;;8503:48;8018:1;8533:17;;;;;;1166:17660;8503:48;;:::i;:::-;8565:27;;8533:17;8565:27;;;;;;;;;;:::i;:::-;;8006:13;1166:17660;8006:13;;8335:74;8386:8;;;;1166:17660;;;;;:::i;17354:332::-;17492:84;17354:332;17520:15;;;;;;:::i;:::-;1166:17660;17552:23;1166:17660;;;;;;:::i;:::-;17552:23;;;;;:::i;:::-;17492:84;;;;:::i;:::-;1166:17660;;17586:94;;17354:332;:::o;17586:94::-;1166:17660;;17520:15;1166:17660;17644:25;;;-1:-1:-1;;;17644:25:21;;-1:-1:-1;17644:25:21;;;1166:17660;17520:15;1166:17660;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;8615:3278::-;;;;1166:17660;;:::i;:::-;-1:-1:-1;;;9001:17:21;;;;9265:57;1166:17660;;;;:::i;:::-;;9209:9;-1:-1:-1;9162:57:21;9209:9;9162:57;13663:37;9162:57;:::i;:::-;9312:9;1166:17660;;;9265:57;;;;;-1:-1:-1;;;9265:57:21;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;9265:12:21;1166:17660;9265:57;;;;;;;-1:-1:-1;;;9265:57:21;;;8997:1483;9233:89;;;;9402:14;;;9398:299;;8997:1483;;10507:21;8997:1483;;;;;;;10507:21;;:::i;:::-;10538:27;-1:-1:-1;;;;;11203:12:21;1166:17660;10576:1077;;10584:15;;;;;:::i;:::-;10583:35;;;10688:9;10700:14;;;:::i;:::-;-1:-1:-1;10684:323:21;;11039:15;;;;;;;;-1:-1:-1;11039:15:21;;11097:54;11038:21;11039:15;;11203:57;11039:15;;:::i;:::-;1166:17660;;;;11038:21;11097:54;;13663:37;11097:54;:::i;:::-;11250:9;;1166:17660;;;11203:57;;;;;;;-1:-1:-1;;;11203:57:21;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;11203:57:21;;;10576:1077;-1:-1:-1;11275:368:21;;;11402:19;;;11448:10;11402:19;11448:10;:::i;:::-;11476:21;11275:368;;10576:1077;;;;;;;;;11275:368;11618:10;;;;;;;;;:::i;:::-;11275:368;;;11203:57;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;10684:323;10864:12;;;;;;;;;;;;:::i;:::-;1166:17660;;;:::i;:::-;;-1:-1:-1;1166:17660:21;;-1:-1:-1;10834:43:21;;;1166:17660;;10834:43;;1166:17660;;;:::i;:::-;;;;10834:43;10926:48;;1166:17660;;10926:48;;1166:17660;;;:::i;:::-;10781:31;1166:17660;;10741:251;10834:43;10741:251;;1166:17660;;10741:251;;1166:17660;10734:258;:::o;10583:35::-;;;;;;;;;;11746:60;10583:35;;1166:17660;;:::i;:::-;;;;;;11746:60;;;1166:17660;;11746:60;1166:17660;11746:60;;1166:17660;;;:::i;9398:299::-;1166:17660;;;;;;;;;;9535:51;1166:17660;;:::i;:::-;-1:-1:-1;1166:17660:21;;;;;9535:51;;;1166:17660;;9265:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;8997:1483;9842:9;9991:57;9842:9;;9935;;9888:57;9935:9;9888:57;13663:37;9888:57;:::i;:::-;10038:9;1166:17660;;;9991:57;;;;;-1:-1:-1;;;9991:57:21;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;9991:12:21;1166:17660;9991:57;;;;;;;;-1:-1:-1;9991:57:21;;;8997:1483;9959:89;;;;10071:24;9959:89;10086:9;;10071:24;;:::i;:::-;10175:14;;;10171:299;;8997:1483;;10507:21;8997:1483;;;;;;;;9991:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;8615:3278;;;;1166:17660;;:::i;:::-;-1:-1:-1;;;9001:17:21;;;;9265:57;1166:17660;;;;:::i;:::-;;9209:9;-1:-1:-1;9162:57:21;9209:9;9162:57;15553:4;9162:57;:::i;9265:::-;;:12;;-1:-1:-1;;;;;9265:12:21;1166:17660;9265:57;;;;;;;-1:-1:-1;;;9265:57:21;;;8997:1483;9233:89;;;;9402:14;;;9398:299;;8997:1483;;10507:21;8997:1483;;;;;;10507:21;;:::i;:::-;10538:27;-1:-1:-1;;;;;11203:12:21;1166:17660;10576:1077;;10584:15;;;;;:::i;:::-;10583:35;;;10688:9;10700:14;;;:::i;:::-;-1:-1:-1;10684:323:21;;11039:15;;;;;;;;-1:-1:-1;11039:15:21;;11097:54;11038:21;11039:15;;11203:57;11039:15;;:::i;11038:21::-;11097:54;;15553:4;11097:54;:::i;11203:57::-;;;;;;;;;;-1:-1:-1;;;11203:57:21;;;10576:1077;-1:-1:-1;11275:368:21;;;11402:19;;;11448:10;11402:19;11448:10;:::i;:::-;11476:21;11275:368;;10576:1077;;;;;;;;;11275:368;11618:10;;;;;;;;;:::i;:::-;11275:368;;;11203:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;9265;;;;;;;;;;;;;;;:::i;:::-;;;;;;8997:1483;9842:9;9991:57;9842:9;;9935;;9888:57;9935:9;9888:57;15553:4;9888:57;:::i;9991:::-;;:12;;-1:-1:-1;;;;;9991:12:21;1166:17660;9991:57;;;;;;;;-1:-1:-1;9991:57:21;;;8997:1483;9959:89;;;;10071:24;9959:89;10086:9;;10071:24;;:::i;:::-;10175:14;;;10171:299;;8997:1483;;10507:21;8997:1483;;;;;;;;9991:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;8615:3278;;;;1166:17660;;:::i;:::-;-1:-1:-1;;;9001:17:21;;;;9265:57;1166:17660;;;;:::i;:::-;;9209:9;-1:-1:-1;9162:57:21;9209:9;9162:57;12969:46;9162:57;:::i;9265:::-;;:12;;-1:-1:-1;;;;;9265:12:21;1166:17660;9265:57;;;;;;;-1:-1:-1;;;9265:57:21;;;8997:1483;9233:89;;;;9402:14;;;9398:299;;8997:1483;;10507:21;8997:1483;;;;;;10507:21;;:::i;:::-;10538:27;-1:-1:-1;;;;;11203:12:21;1166:17660;10576:1077;;10584:15;;;;;:::i;:::-;10583:35;;;10688:9;10700:14;;;:::i;:::-;-1:-1:-1;10684:323:21;;11039:15;;;;;;;;-1:-1:-1;11039:15:21;;11097:54;11038:21;11039:15;;11203:57;11039:15;;:::i;11038:21::-;11097:54;;12969:46;11097:54;:::i;11203:57::-;;;;;;;;;;-1:-1:-1;;;11203:57:21;;;10576:1077;-1:-1:-1;11275:368:21;;;11402:19;;;11448:10;11402:19;11448:10;:::i;:::-;11476:21;11275:368;;10576:1077;;;;;;;;;11275:368;11618:10;;;;;;;;;:::i;:::-;11275:368;;;11203:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;9265;;;;;;;;;;;;;;;:::i;:::-;;;;;;8997:1483;9842:9;9991:57;9842:9;;9935;;9888:57;9935:9;9888:57;12969:46;9888:57;:::i;9991:::-;;:12;;-1:-1:-1;;;;;9991:12:21;1166:17660;9991:57;;;;;;;;-1:-1:-1;9991:57:21;;;8997:1483;9959:89;;;;10071:24;9959:89;10086:9;;10071:24;;:::i;:::-;10175:14;;;10171:299;;8997:1483;;10507:21;8997:1483;;;;;;;;9991:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;490:2:4;;;;:::o;:::-;;1166:17660:21;;-1:-1:-1;;;490:2:4;;;;;;;;;;;1166:17660:21;490:2:4;1166:17660:21;;;490:2:4;;7866:1077:20;8388:23;7866:1077;7985:30;8002:13;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;;;7985:30:20;8041:12;;;1166:17660:21;8041:12:20;8025:13;;1166:17660:21;8118:53:20;8147:23;;;1166:17660:21;2535:183:4;1166:17660:21;;;;;;2535:183:4;;8118:53:20;8094:20;;;1166:17660:21;8064:28:20;;;1166:17660:21;8210:25:20;;;1166:17660:21;8181:26:20;;;1166:17660:21;8300:44:20;8181:26;8329:14;;1166:17660:21;2535:183:4;1166:17660:21;;;;;;2535:183:4;;8300:44:20;8276:20;;;1166:17660:21;8246:28:20;;;1166:17660:21;8388:23:20;;;;;:::i;:::-;8425:27;;;;;8699:62;8476:65;8388:23;8476:65;8468:107;490:2:4;8589:172:20;8476:65;;;;8468:107;:::i;:::-;8699:62;:::i;:::-;8210:25;8648:31;;1166:17660:21;8147:23:20;8609:37;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;8590:17:20;;1166:17660:21;;8421:516:20;8792:17;;8210:25;8792:17;-1:-1:-1;8388:23:20;8792:17;;;1166:17660:21;8836:37:20;8147:23;8836:37;;1166:17660:21;8891:31:20;1166:17660:21;7866:1077:20:o;1166:17660:21:-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13468:1447:20:-;;;;;13760:9;13813:14;;;13861:17;1166:17660:21;13861:17:20;;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;13928:19:20;;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;13928:19:20;1166:17660:21;;14018:25:20;;;14014:122;;-1:-1:-1;;;;;14396:17:20;14245:37;1166:17660:21;2360:4:20;;;;;14300:144;2360:4;;;;;1166:17660:21;;14245:37:20;1166:17660:21;14396:17:20;;1166:17660:21;;;;14300:144:20;;;;;;;1166:17660:21;14300:144:20;;;;;;:::i;:::-;;1166:17660:21;;14300:144:20;;;;1166:17660:21;;;14300:144:20;;;13468:1447;-1:-1:-1;14296:441:20;;14680:41;;;:::i;:::-;1166:17660:21;14635:87:20;1166:17660:21;;14635:87:20;;;-1:-1:-1;;;14635:87:20;;14300:144;14635:87;;;:::i;14296:441::-;14520:18;;;14763:9;2360:4;;14754:43;14750:149;;13468:1447;:::o;14750:149::-;1166:17660:21;;;-1:-1:-1;;;14824:60:20;;14300:144;14824:60;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;19872:51:20;14300:144;;;;;;;;;1166:17660:21;14300:144:20;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;14014:122;14070:51;1166:17660:21;;;14070:51:20;;;-1:-1:-1;;;14070:51:20;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1559:259:3:-;-1:-1:-1;;;;;1166:17660:21;1683:8:3;1166:17660:21;1683:8:3;1166:17660:21;;;1683:8:3;1166:17660:21;;;;;;;;;;;;;;1559:259:3;:::o;15288:1187:20:-;15548:34;-1:-1:-1;;;;;15288:1187:20;15548:34;:::i;:::-;1166:17660:21;;15592:111:20;;15712:96;;16110:43;-1:-1:-1;;;;;16110:43:20;;:::i;:::-;1166:17660:21;;16163:105:20;;15288:1187::o;16163:105::-;1166:17660:21;;-1:-1:-1;;;16216:41:20;;;;-1:-1:-1;16216:41:20;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;15712:96:20;1166:17660:21;;-1:-1:-1;;;15753:44:20;;;;-1:-1:-1;15753:44:20;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;15592:111:20;15651:41;1166:17660:21;;-1:-1:-1;;;15651:41:20;;-1:-1:-1;15651:41:20;;;1166:17660:21;;;;;;;;;;;;;;;;15651:41:20;856:262:3;;-1:-1:-1;;;;;1166:17660:21;;:::i;:::-;;;997:8:3;1166:17660:21;997:8:3;1166:17660:21;;;1034:17:3;1166:17660:21;997:8:3;1166:17660:21;1034:17:3;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;1061:20:3;;1166:17660:21;856:262:3:o;1166:17660:21:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11405:1498:20:-;;;;12157:102;12220:17;-1:-1:-1;11636:22:20;11724:14;;1166:17660:21;;11882:17:20;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;11836:11:20;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;11882:17;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;;11913:31:20;;-1:-1:-1;;;;;11913:31:20;1166:17660:21;;11962:23:20;11958:182;;;;11405:1498;12220:17;;1166:17660:21;;11836:11:20;1166:17660:21;12157:102:20;;;;;;;-1:-1:-1;;;12157:102:20;;;;;;:::i;:::-;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;12157:102:20;;;;;;;11405:1498;-1:-1:-1;12153:352:20;;12448:41;;;:::i;:::-;1166:17660:21;12403:87:20;11836:11;1166:17660:21;12403:87:20;;;-1:-1:-1;;;12403:87:20;;12157:102;12403:87;;;:::i;12153:352::-;12324:32;;;12518:369;;11405:1498;;:::o;12518:369::-;12598:16;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;12598:16:20;-1:-1:-1;;11405:1498:20:o;12157:102::-;;;;;12220:17;12157:102;12220:17;12157:102;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;11958:182;1241:17:3;;;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;1241:17:3;1166:17660:21;12076:21:20;;;;:49;;;;11958:182;;;;;12076:49;2360:4;;;;12076:49;;11405:1498;;;;;;12220:17;12157:102;11405:1498;11724:14;;1166:17660:21;;11882:17:20;1166:17660:21;;;-1:-1:-1;;;;;1166:17660:21;;;;11836:11:20;;;;;;;;;;:::i;1166:17660:21:-;11913:31:20;-1:-1:-1;;;;;1166:17660:21;;;11962:23:20;11958:182;;;;11405:1498;12220:17;1166:17660:21;12220:17:20;;1166:17660:21;;11836:11:20;1166:17660:21;12157:102:20;;;;;;;-1:-1:-1;;;12157:102:20;;;;;;:::i;:::-;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;12157:102:20;;1166:17660:21;;12157:102:20;;;11405:1498;-1:-1:-1;12153:352:20;;12448:41;;;:::i;12153:352::-;12324:32;;;12518:369;;11405:1498;;;:::o;12518:369::-;12598:16;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;12598:16:20;1166:17660:21;;;12690:25:20;;;;12686:123;;2360:4;;1166:17660:21;;11405:1498:20:o;12686:123::-;11836:11;1166:17660:21;;-1:-1:-1;;;12746:44:20;;12157:102;12746:44;;1166:17660:21;;;;;;;;;;;;;;;;;;;;19872:51:20;12157:102;;;;;12220:17;12157:102;12220:17;12157:102;;;;;;;:::i;:::-;;;;;11958:182;1241:17:3;;;;-1:-1:-1;;;;;1166:17660:21;2419:8:3;1166:17660:21;2419:8:3;1166:17660:21;;;2419:8:3;1166:17660:21;;;1241:17:3;1166:17660:21;12076:21:20;;;;;;:49;1166:17660:21;12076:49:20;;;11958:182;;;;;;12076:49;2360:4;1166:17660:21;2360:4:20;;;12076:49;;1187:234:1;-1:-1:-1;;;;;1166:17660:21;-1:-1:-1;1166:17660:21;1373:19:1;1166:17660:21;;;1373:32:1;1166:17660:21;1317:2:1;1166:17660:21;1317:2:1;-1:-1:-1;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;1373:32:1;1166:17660:21;;;1373:34:1;;;;:::i;:::-;1166:17660:21;;;1373:41:1;1187:234;:::o;24667:693:20:-;24877:28;24812:20;;;1166:17660:21;24877:28:20;;1166:17660:21;24923:36:20;;;24919:173;;405:35:19;1166:17660:21;2492:12:19;;;2507:13;;2492:38;;2360:4:20;3338:5:0;;;;;;:13;24667:693:20;:::o;3338:13:0:-;;;24667:693:20;:::o;2492:38:19:-;;;;24919:173:20;25058:19;;:::o;4219:410::-;;;;4385:237;1166:17660:21;4417:17:20;;;1166:17660:21;4448:14:20;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;4483:24:20;4417:17;-1:-1:-1;;;;;4483:24:20;;;1166:17660:21;;4521:20:20;;1166:17660:21;;;;;;;;4417:17:20;1166:17660:21;;;;;;;;;;;4385:237:20;4219:410::o;:::-;;1166:17660:21;4385:237:20;4219:410;4417:17;;;1166:17660:21;4448:14:20;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;4483:24:20;4417:17;-1:-1:-1;;;;;4483:24:20;;;1166:17660:21;;4521:20:20;;1166:17660:21;;;;;;;;;4417:17:20;1166:17660:21;;;;;;;;;;;4385:237:20;4219:410::o;4635:182::-;4747:17;;;1166:17660:21;4766:14:20;;1166:17660:21;4720:90:20;4747:17;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;;4789:20:20;;1166:17660:21;;;;;;4720:90:20;4635:182::o;3532:737:21:-;;;1166:17660;;;;;:::i;:::-;3784:15;1166:17660;3784:15;;-1:-1:-1;;;1166:17660:21;3784:15;;;;:::i;:::-;3851:16;3877:148;1166:17660;3877:148;;;;3532:737;-1:-1:-1;1166:17660:21;4038:51;4051:38;;1166:17660;4122:67;1166:17660;4122:67;1166:17660;;4122:67;;;-1:-1:-1;;;4122:67:21;;;;;;;;:::i;4034:229::-;1166:17660;4237:15;;;;;:::i;:::-;1166:17660;;;:::i;3877:148::-;;;;;;;18083:741;;;;;18274:20;:47;;;;18083:741;18270:183;;;18493:2;18466:29;;;18462:310;;18083:741;1166:17660;;;;:::i;18462:310::-;18493:2;1166:17660;;;;;;18589:21;:26;18585:177;;18462:310;;;;18585:177;1166:17660;;;;;;:::i;:::-;;;;;;;;;18709:38;:::o;18270:183::-;1166:17660;;;;;;;;:::i;:::-;;;;;;;;;18406:36;:::o;18274:47::-;18298:18;;;:23;18274:47;;;1166:17660;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;-1:-1:-1;1166:17660:21;;;:::o;:::-;;;-1:-1:-1;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;1166:17660:21;;;;;;;;;;;;;;;;;:::i;4275:1833::-;;1166:17660;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;4566:46;4558:54;;4554:837;;1166:17660;;;:::i;:::-;5413:37;5405:45;;5401:379;;1166:17660;;;5802:29;1166:17660;;:::i;:::-;5794:37;5790:279;;1166:17660;;-1:-1:-1;;;6079:22:21;;1166:17660;6079:22;;;1166:17660;;;;;;;;;;;;;19872:51:20;5790:279:21;5895:54;5970:88;5931:17;;5970:88;5931:17;;1166:17660;5895:54;;:::i;:::-;1166:17660;;;;;5970:88;;;1166:17660;5931:17;5970:88;;;;;;;:::i;5401:379::-;3718:23:4;;;1166:17660:21;5572:19;3705:37:4;3718:23;5690:79:21;3718:23:4;;1166:17660:21;;;2959:118:4;;3705:37;5572:19:21;1166:17660;;;;5572:19;1166:17660;;5571:45;3718:23:4;5631:19:21;;1166:17660;5690:79;1166:17660;;5690:79;;;1166:17660;5690:79;;;;;;;;:::i;4554:837::-;4736:29;5302:78;4736:29;;-1:-1:-1;;4736:29:21;5181:99;4736:29;5302:78;4736:29;;5181:99;4691:75;4736:29;;;;:::i;:::-;4691:75;;:::i;:::-;4815:26;;;;1166:17660;4859:19;4736:29;4859:19;;;490:2:4;4859:19:21;;1166:17660;4859:67;4855:192;;4554:837;1166:17660;;;;;;;;;;;-1:-1:-1;;1166:17660:21;;;;5181:99;;;;;:::i;:::-;;1166:17660;;5181:99;;;;;;:::i;:::-;5143:137;1166:17660;;5302:78;;;1166:17660;5181:99;5302:78;;;;;;;:::i;4855:192::-;1166:17660;4962:29;;;:70;:29;;;;:::i;:::-;:70;;;:::i;1166:17660::-;4855:192;;;;;4234:507:4;;;1166:17660:21;372:2:4;1166:17660:21;;;;;;;434:2:4;1166:17660:21;;;372:2:4;1166:17660:21;;434:2:4;1166:17660:21;490:2:4;1166:17660:21;;;;;;;;;;;;;;434:2:4;1166:17660:21;434:2:4;1166:17660:21;;;4234:507:4:o;16805:500:20:-;16963:19;;16959:76;;1166:17660:21;;:::i;:::-;;;;1582:3:0;1166:17660:21;;1596:15:0;;;1592:67;;16805:500:20;1166:17660:21;;17190:33:20;1166:17660:21;;;;;;;:::i;:::-;-1:-1:-1;;;;;1166:17660:21;;;;;1733:50:0;;;1166:17660:21;1710:8:0;1166:17660:21;;;;1733:50:0;1166:17660:21;1733:50:0;;;;1166:17660:21;;;;;;1733:50:0;1166:17660:21;;;;;;;;;;17190:33:20;:15;:33;:70;;;;;16805:500;17173:87;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;16805:500:20;:::o;17190:70::-;1166:17660:21;17227:33:20;;-1:-1:-1;1166:17660:21;;;;17227:33:20;17190:15;17227:33;17190:70;;;1592:67:0;1166:17660:21;;-1:-1:-1;1592:67:0;;16959:76:20;16998:26;16981:1;16998:26;16981:1;16998:26;:::o;9756:1012::-;;;;9878:20;9874:888;;9756:1012;;;;;:::o;9874:888::-;9931:14;;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;9970:18:20;;;9966:121;;10152:35;:14;;:35;1166:17660:21;10118:80:20;10152:35;1166:17660:21;10118:80:20;;-1:-1:-1;;;10118:80:20;;;9897:1;10118:80;;;;;;;;:::i;:::-;;1917:14;-1:-1:-1;;;;;1917:14:20;1166:17660:21;10118:80:20;;;;;;;9897:1;10118:80;;;9874:888;1166:17660:21;-1:-1:-1;;;;;1166:17660:21;;10216:21:20;;;10212:115;;-1:-1:-1;;;;;1166:17660:21;10344:17:20;;;10340:116;;10473:19;:24;10469:123;;10639:14;10631:23;10639:14;10674:77;10639:14;10623:32;10639:14;;:::i;10623:32::-;10118:80;10690:17;;;1166:17660:21;10726:14:20;;1166:17660:21;10726:24:20;1166:17660:21;10152:35:20;1166:17660:21;;-1:-1:-1;;;;;1166:17660:21;;;;;;;;;;;;;;;;10152:35:20;10674:77;9874:888;;;;;;10469:123;10152:35;1166:17660:21;;-1:-1:-1;;;10524:53:20;;10118:80;10524:53;;1166:17660:21;;;;;;;;;;;;;;;;;;;;19872:51:20;10340:116;10388:53;1166:17660:21;10152:35:20;1166:17660:21;10388:53:20;;;-1:-1:-1;;;10388:53:20;;10118:80;10388:53;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;10212:115:20;10264:48;1166:17660:21;10152:35:20;1166:17660:21;10264:48:20;;;-1:-1:-1;;;10264:48:20;;10118:80;10264:48;;1166:17660:21;;;;;;;;;;;;;;;;;;;;;;10118:80:20;;;;;;;;;;;;;;:::i;:::-;;;;9966:121;1166:17660:21;;;-1:-1:-1;;;10020:52:20;;;;;1166:17660:21;;;;;;;;;;;;;;;;;;;;19872:51:20;2879:281:0;2961:193;;;;;;;2879:281;:::o","linkReferences":{},"immutableReferences":{"2160":[{"start":4668,"length":32},{"start":19090,"length":32}],"3803":[{"start":11552,"length":32},{"start":12378,"length":32},{"start":12469,"length":32},{"start":12991,"length":32},{"start":13178,"length":32},{"start":13268,"length":32},{"start":13541,"length":32},{"start":13728,"length":32},{"start":13818,"length":32},{"start":14091,"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","deposits(address)":"fc7e286d","getDepositInfo(address)":"5287ce12","getNonce(address,uint192)":"35567e1a","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","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","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\":\"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\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"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\":\"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\":[{\"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\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"delegateAndRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"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\"}],\"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\":[{\"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\":[{\"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\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleAggregatedOps\",\"outputs\":[],\"stateMutability\":\"pure\",\"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\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleOps\",\"outputs\":[],\"stateMutability\":\"pure\",\"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\":[{\"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\":[],\"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\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"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.\"}},\"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.\",\"userOp\":\"- The userOp to validate.\"}},\"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.\"}},\"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\"}},\"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.\"},\"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.\"},\"deposits(address)\":{\"notice\":\"maps paymaster to their deposits and stakes\"},\"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/v07/EntryPointSimulations.sol\":\"EntryPointSimulations07\"},\"evmVersion\":\"paris\",\"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/core/Helpers.sol\":{\"keccak256\":\"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e\",\"dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc\"]},\"lib/account-abstraction-v7/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6\",\"dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a\"]},\"lib/account-abstraction-v7/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238\",\"dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH\"]},\"lib/account-abstraction-v7/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c\",\"dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G\"]},\"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc\",\"dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS\"]},\"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/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v5.0.2/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66\",\"dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf\"]},\"src/v07/EntryPoint.sol\":{\"keccak256\":\"0x5a8e2db6aad825ab6650642351b3a9b949cce5663693409a6026b034a8bd88de\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4caae812bd6fe4e55f96d846a2a5aed14beef285c1c6874e757daba246cc9d2d\",\"dweb:/ipfs/QmS6qqpmkGQ5YK7M5gXe5PDfFhok6Xv7xyJDre65BTMAqH\"]},\"src/v07/EntryPointSimulations.sol\":{\"keccak256\":\"0x84193b5a001560cc72da091e7c660870517e1f59e29531a9426824935c4cfb6a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e85917186f08d5796ecbe6543a67fbf06cd29767b74f0acb15efc24f11f35f90\",\"dweb:/ipfs/QmPUL48LJFGmBT6QngT6rXU2Wda7RQCdTnxbZAF5ZZJyAy\"]}},\"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":"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":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"PostOpReverted"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"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":"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":[{"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":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function","name":"delegateAndRevert"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"payable","type":"function","name":"depositTo"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"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":[{"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":[{"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":[{"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":"","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":"","type":"address"}],"stateMutability":"pure","type":"function","name":"handleAggregatedOps"},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"","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":"","type":"address"}],"stateMutability":"pure","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":[{"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":[],"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.","userOp":"- The userOp to validate."}},"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."}},"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"}},"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."},"deposits(address)":{"notice":"maps paymaster to their deposits and stakes"},"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/v07/EntryPointSimulations.sol":"EntryPointSimulations07"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v7/contracts/core/Helpers.sol":{"keccak256":"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6","urls":["bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e","dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/NonceManager.sol":{"keccak256":"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9","urls":["bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6","dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/SenderCreator.sol":{"keccak256":"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5","urls":["bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238","dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/StakeManager.sol":{"keccak256":"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d","urls":["bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c","dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol":{"keccak256":"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b","urls":["bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc","dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS"],"license":"GPL-3.0"},"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/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-v5.0.2/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"src/IEntryPointSimulations.sol":{"keccak256":"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41","urls":["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5","dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"],"license":"MIT"},"src/SimulationOverrideHelper.sol":{"keccak256":"0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774","urls":["bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66","dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf"],"license":"MIT"},"src/v07/EntryPoint.sol":{"keccak256":"0x5a8e2db6aad825ab6650642351b3a9b949cce5663693409a6026b034a8bd88de","urls":["bzz-raw://4caae812bd6fe4e55f96d846a2a5aed14beef285c1c6874e757daba246cc9d2d","dweb:/ipfs/QmS6qqpmkGQ5YK7M5gXe5PDfFhok6Xv7xyJDre65BTMAqH"],"license":"GPL-3.0"},"src/v07/EntryPointSimulations.sol":{"keccak256":"0x84193b5a001560cc72da091e7c660870517e1f59e29531a9426824935c4cfb6a","urls":["bzz-raw://e85917186f08d5796ecbe6543a67fbf06cd29767b74f0acb15efc24f11f35f90","dweb:/ipfs/QmPUL48LJFGmBT6QngT6rXU2Wda7RQCdTnxbZAF5ZZJyAy"],"license":"GPL-3.0"}},"version":1},"id":21}
|