diff --git a/README.md b/README.md index 965e850..a891afe 100644 --- a/README.md +++ b/README.md @@ -30,97 +30,119 @@ --- +## πŸ“¦ Deployments + +### Base Sepolia : [VaultFactory](https://base-sepolia.blockscout.com/address/0x99A3E04423dec42407dFed6A3d984d9A6200511d?tab=contract) + +### Arbitrum Sepolia : [VaultFactory](https://arbitrum-sepolia.blockscout.com/address/0x1C4cCc2c917EDF45aD1C3C9675cF130b47Db8c11?tab=contract) + +--- + ## πŸ—οΈ Architecture Overview CentoAI is built on a modular architecture, with the following key components: ### 1. **Smart Contracts** - - **LiquidityManager.sol**: Manages liquidity across **Aave**, **Compound**, and **Uniswap V3**. - - **Arbitrage.sol**: Executes flash loan arbitrage strategies using **Balancer V2**. - - **Vault.sol**: Manages user balances and strategy execution. - - **VaultFactory.sol**: Deploys personalized vaults for users. + +- **LiquidityManager.sol**: Manages liquidity across **Aave**, **Compound**, and **Uniswap V3**. +- **Arbitrage.sol**: Executes flash loan arbitrage strategies using **Balancer V2**. +- **Vault.sol**: Manages user balances and strategy execution. +- **VaultFactory.sol**: Deploys personalized vaults for users. ### 2. **Frontend** - - Built with **Next.js** and **OnchainKit** for seamless wallet integration and portfolio visualization. - - Provides a user-friendly dashboard for monitoring portfolio performance and strategy execution. - - Integrates **Privy** for embedded wallets and social logins, enabling users to onboard with email or existing wallets. + +- Built with **Next.js** and **OnchainKit** for seamless wallet integration and portfolio visualization. +- Provides a user-friendly dashboard for monitoring portfolio performance and strategy execution. +- Integrates **Privy** for embedded wallets and social logins, enabling users to onboard with email or existing wallets. ### 3. **Backend** - - **Node.js** backend for handling off-chain computations and API integrations. - - Fetches real-time APY data from DeFi protocols and provides it to the AI agent. + +- **Node.js** backend for handling off-chain computations and API integrations. +- Fetches real-time APY data from DeFi protocols and provides it to the AI agent. ### 4. **AI Agent** - - Analyzes yield opportunities and arbitrage strategies using machine learning models. - - Executes strategies securely using **Coinbase AgentKit**. + +- Analyzes yield opportunities and arbitrage strategies using machine learning models. +- Executes strategies securely using **Coinbase AgentKit**. --- ## πŸ”§ Workflows ### 1. **User Onboarding** - - Users connect their wallets or sign in with email/social login using **Privy**. - - A personalized vault is deployed for the user using **VaultFactory.sol**. - - Users deposit ERC20 tokens (e.g., USDC, ETH) into their vault. + +- Users connect their wallets or sign in with email/social login using **Privy**. +- A personalized vault is deployed for the user using **VaultFactory.sol**. +- Users deposit ERC20 tokens (e.g., USDC, ETH) into their vault. ### 2. **AI-Driven Strategy Execution** - - The AI agent fetches real-time APY data from **Aave**, **Compound**, and **Uniswap V3**. - - It analyzes yield opportunities and identifies arbitrage opportunities using **Balancer V2** flash loans. - - The AI agent executes strategies such as: - - **Yield Farming**: Moves funds between protocols to maximize APY. - - **Flash Loan Arbitrage**: Executes risk-free arbitrage between DEXes. + +- The AI agent fetches real-time APY data from **Aave**, **Compound**, and **Uniswap V3**. +- It analyzes yield opportunities and identifies arbitrage opportunities using **Balancer V2** flash loans. +- The AI agent executes strategies such as: + - **Yield Farming**: Moves funds between protocols to maximize APY. + - **Flash Loan Arbitrage**: Executes risk-free arbitrage between DEXes. ### 3. **Portfolio Management** - - Users can monitor their portfolio performance, strategy execution, and transaction history through the dashboard. - - The dashboard provides insights into: - - Current APY across protocols. - - Profit/loss from arbitrage strategies. - - Historical performance of the portfolio. + +- Users can monitor their portfolio performance, strategy execution, and transaction history through the dashboard. +- The dashboard provides insights into: + - Current APY across protocols. + - Profit/loss from arbitrage strategies. + - Historical performance of the portfolio. --- ## 🧩 Smart Contracts ### 1. **LiquidityManager.sol** - - Manages liquidity across **Aave**, **Compound**, and **Uniswap V3**. - - Key Functions: - - `supplyLiquidityOnAave`: Supplies liquidity to Aave. - - `withdrawLiquidityFromCompound`: Withdraws liquidity from Compound. - - `swapOnUniswap`: Executes token swaps on Uniswap V3. + +- Manages liquidity across **Aave**, **Compound**, and **Uniswap V3**. +- Key Functions: + - `supplyLiquidityOnAave`: Supplies liquidity to Aave. + - `withdrawLiquidityFromCompound`: Withdraws liquidity from Compound. + - `swapOnUniswap`: Executes token swaps on Uniswap V3. ### 2. **Arbitrage.sol** - - Executes flash loan arbitrage strategies using **Balancer V2**. - - Key Functions: - - `executeTrade`: Initiates a flash loan and executes arbitrage. - - `receiveFlashLoan`: Callback function for flash loan execution. + +- Executes flash loan arbitrage strategies using **Balancer V2**. +- Key Functions: + - `executeTrade`: Initiates a flash loan and executes arbitrage. + - `receiveFlashLoan`: Callback function for flash loan execution. ### 3. **Vault.sol** - - Manages user balances and strategy execution. - - Key Functions: - - `depositERC20`: Deposits ERC20 tokens into the vault. - - `withdrawERC20`: Withdraws ERC20 tokens from the vault. - - `lendTokens`: Lends tokens to **Aave** or **Compound**. + +- Manages user balances and strategy execution. +- Key Functions: + - `depositERC20`: Deposits ERC20 tokens into the vault. + - `withdrawERC20`: Withdraws ERC20 tokens from the vault. + - `lendTokens`: Lends tokens to **Aave** or **Compound**. ### 4. **VaultFactory.sol** - - Deploys personalized vaults for users. - - Key Functions: - - `createVault`: Deploys a new vault for a user. - - `getVaultAddress`: Retrieves the vault address for a user. + +- Deploys personalized vaults for users. +- Key Functions: + - `createVault`: Deploys a new vault for a user. + - `getVaultAddress`: Retrieves the vault address for a user. --- ## πŸ› οΈ Integration Details ### 1. **Coinbase AgentKit** - - Used for secure, programmatic wallet interactions. - - Enables the AI agent to execute on-chain actions (e.g., deposits, withdrawals, swaps). + +- Used for secure, programmatic wallet interactions. +- Enables the AI agent to execute on-chain actions (e.g., deposits, withdrawals, swaps). ### 2. **Privy** - - Provides embedded wallets and social logins, making it easy for users to onboard and interact with DeFi. - - Supports both web3-native users (with existing wallets) and newcomers (with email/social login). + +- Provides embedded wallets and social logins, making it easy for users to onboard and interact with DeFi. +- Supports both web3-native users (with existing wallets) and newcomers (with email/social login). ### 3. **Base and Arbitrum** - - CentoAI is deployed on **Base** and **Arbitrum** for low-cost, high-speed transactions. - - Supports yield farming and arbitrage strategies on both networks. + +- CentoAI is deployed on **Base** and **Arbitrum** for low-cost, high-speed transactions. +- Supports yield farming and arbitrage strategies on both networks. --- @@ -129,23 +151,28 @@ CentoAI is built on a modular architecture, with the following key components: CentoAI is designed to compete in the following **ETHGlobal Agentic Ethereum** tracks: ### **Coinbase Developer Platform** + - **Most Innovative Use of AgentKit**: CentoAI uses AgentKit to automate complex DeFi strategies, abstracting away the complexity for users. - **Best Combination of AgentKit + OnchainKit**: The frontend integrates **OnchainKit** for seamless wallet interactions and portfolio visualization. - **Viral Consumer App Award**: CentoAI’s user-friendly interface and AI-driven strategies make it accessible to both DeFi experts and beginners. - **AgentKit Pool Prize**: CentoAI is built with AgentKit in a meaningful way for users to interact with the DeFi ecosystem. ### **Base** + - **Build an AI-Powered App on Base**: CentoAI is deployed on **Base**, leveraging its low-cost, high-speed infrastructure for seamless DeFi operations. ### **Privy** + - **Best Consumer Experience Built with Server Wallets**: CentoAI uses **Privy** to provide a seamless onboarding experience, enabling users to sign in with email, social login, or existing wallets. This makes CentoAI accessible to all users, regardless of their web3 experience. ### **Arbitrum** + - **Most Innovative AI Agent Applications**: CentoAI combines yield farming and flash loan arbitrage to push the boundaries of DeFi automation. --- ## πŸ“‚ Repository Structure + ``` contracts/ β”œβ”€β”€ lib/ # Dependencies @@ -170,41 +197,46 @@ contracts/ ### Installation 1. Clone the repository: + ```bash git clone https://github.com/Cento-AI/contracts cd cento-ai ``` 2. Install dependencies: - ```bash - forge install - ``` + + ```bash + forge install + ``` 3. Compile the smart contract: - ```bash - forge build - ``` + + ```bash + forge build + ``` 4. Deploy the contract to the Base Sepolia Testnet: + ```bash forge script script/DeployVaultFactory.sol:DeployVaultFactory --private-key --broadcast --verify --verifier blockscout --verifier-url https://base-sepolia.blockscout.com/api/ - ``` + ``` Deploy the contract to the Arbitrum Sepolia Testnet: + ```bash forge script script/DeployVaultFactory.sol:DeployVaultFactory --private-key --broadcast --verify --verifier blockscout --verifier-url https://arbitrum-sepolia.blockscout.com/api/ - ``` - + ``` ## Testing + Foundry is used for testing the Arbitrage contract. To run the tests: 1. Write your tests in the test directory. 2. Run the tests using: - ```bash - forge test - ``` + ```bash + forge test + ``` --- diff --git a/broadcast/DeployVaultFactory.s.sol/421614/run-1739112295.json b/broadcast/DeployVaultFactory.s.sol/421614/run-1739112295.json new file mode 100644 index 0000000..2f809e0 --- /dev/null +++ b/broadcast/DeployVaultFactory.s.sol/421614/run-1739112295.json @@ -0,0 +1,53 @@ +{ + "transactions": [ + { + "hash": "0xd7eed8e393e4524c7be67e9254e8477629e863b40897f1ee97979d4ea0b06266", + "transactionType": "CREATE", + "contractName": "VaultFactory", + "contractAddress": "0x1c4ccc2c917edf45ad1c3c9675cf130b47db8c11", + "function": null, + "arguments": null, + "transaction": { + "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", + "gas": "0x58bb54", + "value": "0x0", + "input": "0x6080604052600c805462ff00ff191662010001179055348015610020575f80fd5b5061016560408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506040805161012081018252731df462e2712496373a347f8ad10802a5e95f053d81527375faf114eafb1bdbe2f0316df893fd58ce46aa4d602082015273460b97bd498e1157530aeb3086301d5225b912169181019190915273fb4561c6aff45c00ee0d2ef33d058e2f96959f0f606082015273248ab79bbb9bc29bb72f7cd42f17e054fc40188e608082015273101f443b4d1b059569d643917553c771e1b9663e60a0820152732779a0cc1c3e0e44d2542ec3e79e3864ae93ef0b60c082015273bfc91d59fdaa134a4ed45f7b584caf96d7792eff60e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b8051600e80546001600160a01b03199081166001600160a01b03938416179091556020830151600f8054831691841691909117905560408301516010805483169184169190911790556060830151601180548316918416919091179055608083015160128054831691841691909117905560a083015160138054831691841691909117905560c083015160148054831691841691909117905560e083015160158054831691841691909117905561010090920151601680549093169116179055614b16806102325f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063989e6fd911610063578063989e6fd91461019e578063b4bd6f46146101a6578063d1a43bda146101b9578063d7b65745146101c1578063f8ccbf471461025f575f80fd5b806347ae49e71461009f578063522c441d1461013157806358f674761461013957806365cacaa4146101795780637e8af5bd14610196575b5f80fd5b6100a7610282565b604051610128919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a08084015182169083015260c08084015182169083015260e0808401518216908301526101009283015116918101919091526101200190565b60405180910390f35b6100a7610312565b6101616101473660046107e5565b600d6020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610128565b335f908152600d60205260409020546001600160a01b0316610161565b6100a76103b3565b6100a76104b4565b6101616101b43660046107e5565b610546565b6100a7610630565b600e54600f54601054601154601254601354601454601554601654610205986001600160a01b03908116988116978116968116958116948116938116928116911689565b604080516001600160a01b039a8b168152988a1660208a01529689169688019690965293871660608701529186166080860152851660a0850152841660c0840152831660e083015290911661010082015261012001610128565b600c546102729062010000900460ff1681565b6040519015158152602001610128565b61028a61078d565b5060408051610120810182525f808252735425890298aed601595a70ab815c96711a31bc656020830152739cfcc1b289e59fbe1e769f020c77315df847376092820192909252606081018290526080810182905260a0810182905260c0810191909152738b9b2af4afb389b4a70a474dfd4adcd4a302bb4060e0820152604d61010082015290565b61031a61078d565b50604080516101208101825273c558dbdd856501fcd9aaf1e62eae57a9f0629a3c81527394a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c860208201525f91810182905273e3e0106227181958abfba960c13d0fe52c73326560608201526080810182905260a0810182905260c0810191909152736ae43d3271ff6888e7fc43fd7321a503ff73895160e0820152604d61010082015290565b6103bb61078d565b506040805161012081018252731df462e2712496373a347f8ad10802a5e95f053d81527375faf114eafb1bdbe2f0316df893fd58ce46aa4d602082015273460b97bd498e1157530aeb3086301d5225b912169181019190915273fb4561c6aff45c00ee0d2ef33d058e2f96959f0f606082015273248ab79bbb9bc29bb72f7cd42f17e054fc40188e608082015273101f443b4d1b059569d643917553c771e1b9663e60a0820152732779a0cc1c3e0e44d2542ec3e79e3864ae93ef0b60c082015273bfc91d59fdaa134a4ed45f7b584caf96d7792eff60e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b6104bc61078d565b6104fa6040518060400160405280601881526020017f54657374696e67204f6e20416e76696c204e6574776f726b0000000000000000815250610724565b5060408051610120810182525f80825260016020830152918101829052606081019190915260026080820152600360a0820152600660c0820152600760e0820152604d61010082015290565b6016546015546011546013546012546040515f95869588956001600160a01b03928316959183169490831693918316921690610581906107d8565b6001600160a01b0396871681529486166020860152928516604085015290841660608401528316608083015290911660a082015260c001604051809103905ff0801580156105d1573d5f803e3d5ffd5b506001600160a01b038481165f818152600d602052604080822080546001600160a01b031916948616948517905551939450919290917f5d9c31ffa0fecffd7cf379989a3c7af252f0335e0d2a1320b55245912c781f5391a392915050565b61063861078d565b5060408051610120810182526006602160991b01815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b610767816040516024016107389190610812565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261076a565b50565b610767815f6a636f6e736f6c652e6c6f6790505f80835160208501845afa505050565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b6142828061085f83390190565b5f602082840312156107f5575f80fd5b81356001600160a01b038116811461080b575f80fd5b9392505050565b5f602080835283518060208501525f5b8181101561083e57858101830151858201604001528201610822565b505f604082860101526040601f19601f830116850101925050509291505056fe60c060405234801562000010575f80fd5b506040516200428238038062004282833981016040819052620000339162000135565b83838383896001600160a01b0381166200006657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007181620000ca565b50600180546001600160a01b039586166001600160a01b0319918216179091556002805494861694821694909417909355908316608052821660a052600380549790921696169590951790945550620001b29350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811462000130575f80fd5b919050565b5f805f805f8060c087890312156200014b575f80fd5b620001568762000119565b9550620001666020880162000119565b9450620001766040880162000119565b9350620001866060880162000119565b9250620001966080880162000119565b9150620001a660a0880162000119565b90509295509295509295565b60805160a051614084620001fe5f395f81816102ac0152818161057701528181612488015261283b01525f818161026d01528181611ccb01528181611d900152611e3001526140845ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c8063a03e4bc3116100bf578063dc06618011610079578063dc06618014610363578063e6e1bdec146103dc578063e8f6daa9146103e4578063f04f2707146103f7578063f2fde38b1461040a578063f5ff5c761461041d575f80fd5b8063a03e4bc3146102f1578063a1db978214610304578063aab7647914610317578063bcf685ed1461032a578063c7d716d71461033d578063ca11615e14610350575f80fd5b8063604e370611610110578063604e370614610207578063715018a614610260578063735de9f7146102685780638bdb2afa146102a75780638da5cb5b146102ce57806397feb926146102de575f80fd5b80630c5443791461014c57806321db8240146101615780634a0de08f1461019b578063592bac55146101d35780635d631152146101f4575b5f80fd5b61015f61015a3660046134a9565b610430565b005b6101696104e8565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0015b60405180910390f35b6101ae6101a9366004613522565b610571565b604080516001600160801b039094168452602084019290925290820152606001610192565b6101e66101e136600461356a565b6107ad565b604051908152602001610192565b61015f610202366004613626565b6108a1565b61021a61021536600461367c565b610b13565b604051610192919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b61015f610ba1565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610192565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661028f565b61015f6102ec366004613697565b610bb4565b60015461028f906001600160a01b031681565b61015f610312366004613697565b610d9b565b6101e6610325366004613626565b610f86565b61015f61033836600461367c565b6112a0565b61015f61034b3660046136cf565b6112ca565b61015f61035e366004613779565b611626565b6103aa61037136600461367c565b600460208190525f9182526040909120805460018201546002830154600384015493909401546001600160a01b03909216939092909185565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a001610192565b6101e66117eb565b60025461028f906001600160a01b031681565b61015f61040536600461382b565b61185a565b61015f61041836600461367c565b611aea565b60035461028f906001600160a01b031681565b6003546001600160a01b031633148061045257505f546001600160a01b031633145b6104775760405162461bcd60e51b815260040161046e9061392d565b60405180910390fd5b8060045f855f8151811061048d5761048d61395a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206001015410156104d65760405162461bcd60e51b815260040161046e9061396e565b6104e284848484611b27565b50505050565b600154604051632fe4a15f60e21b81523060048201525f91829182918291829182916001600160a01b039091169063bf92857c9060240160c060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e919061399c565b949b939a50919850965094509092509050565b5f805f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828888886040518463ffffffff1660e01b81526004016105c5939291906139e2565b602060405180830381865afa1580156105e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106049190613a0a565b90506001600160a01b03811661062c5760405162461bcd60e51b815260040161046e90613a25565b5f80876001600160a01b0316896001600160a01b03161061064e578789610651565b88885b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b79190613a71565b5050505050915091505f6064826106ce9190613b12565b90505f6106dc836064613b3d565b6040516bffffffffffffffffffffffff193060601b16602082015260e884811b603483015282901b60378201529091506001600160a01b0388169063514ea4bf90603a01604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161075491815260200190565b60a060405180830381865afa15801561076f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107939190613b78565b50929c50909a509850505050505050505093509350939050565b6003545f906001600160a01b03163314806107d157505f546001600160a01b031633145b6107ed5760405162461bcd60e51b815260040161046e9061392d565b6001600160a01b0385165f908152600460205260409020600101548311156108275760405162461bcd60e51b815260040161046e9061396e565b610835858585600186611ca5565b6001600160a01b0386165f90815260046020526040812060010180549293508592909190610864908490613bcb565b90915550506001600160a01b0384165f9081526004602052604081206001018054839290610893908490613bde565b909155509095945050505050565b6003546001600160a01b03163314806108c357505f546001600160a01b031633145b6108df5760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015283519084012083907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b1832914801590610977575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561099757806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0383165f908152600460205260409020600101548211156109d15760405162461bcd60e51b815260040161046e9061396e565b6040805180820190915260048152636161766560e01b6020918201528451908501207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701610a5857610a238383611e88565b6001600160a01b0383165f9081526004602052604081206002018054849290610a4d908490613bde565b90915550610ade9050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528451908501207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201610ade57610aae8383612006565b6001600160a01b0383165f9081526004602052604081206003018054849290610ad8908490613bde565b90915550505b6001600160a01b0383165f9081526004602052604081206001018054849290610b08908490613bcb565b909155505050505050565b610b496040518060a001604052805f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b039081165f90815260046020818152604092839020835160a08101855281549095168552600181015491850191909152600281015492840192909252600382015460608401520154608082015290565b610ba9612170565b610bb25f61219c565b565b610bbc612170565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610c06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2a9190613c46565b1015610c715760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015260640161046e565b6040516323b872dd60e01b8152336004820152306024820152604481018290525f906001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610cc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce79190613c5d565b905080610d285760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610d52908490613bde565b90915550506040518281526001600160a01b038416907fab79632de7fe1724598ce2214eaa326d90d48064d2d3397406ecc5769316a5f6906020015b60405180910390a2505050565b610da3612170565b6001600160a01b0382165f90815260046020526040902060010154811115610ddd5760405162461bcd60e51b815260040161046e9061396e565b816001600160a01b031663095ea7b3610dfd5f546001600160a01b031690565b836040518363ffffffff1660e01b8152600401610e1b929190613c76565b6020604051808303815f875af1158015610e37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5b9190613c5d565b505f826001600160a01b031663a9059cbb610e7d5f546001600160a01b031690565b846040518363ffffffff1660e01b8152600401610e9b929190613c76565b6020604051808303815f875af1158015610eb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edb9190613c5d565b905080610f1c5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610f46908490613bcb565b90915550506040518281526001600160a01b038416907f7e2c99819371db0a6fc6f4269fe872496e44f502df19ba3eae594b7a1598746090602001610d8e565b6003545f906001600160a01b0316331480610faa57505f546001600160a01b031633145b610fc65760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015284519085012084907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b183291480159061105e575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561107e57806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260048152636161766560e01b6020918201528551908601207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701611174576001600160a01b0384165f908152600460205260409020600201548311156111305760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61113a84846121eb565b6001600160a01b0385165f90815260046020526040812060020180549294508592909190611169908490613bcb565b909155506112699050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528551908601207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201611269576001600160a01b0384165f9081526004602052604090206003015483111561122a5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61123484846122d8565b6001600160a01b0385165f90815260046020526040812060030180549294508592909190611263908490613bcb565b90915550505b6001600160a01b0384165f9081526004602052604081206001018054849290611293908490613bde565b9091555050509392505050565b6112a8612170565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314806112ec57505f546001600160a01b031633145b6113085760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015288519089012088907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e7132148015906113a457506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b156113c457806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0388165f9081526004602052604090206001015486111561142e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e300000000000604482015260640161046e565b6001600160a01b0387165f908152600460205260409020600101548511156114985760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e310000000000604482015260640161046e565b6040805180820190915260078152660756e69737761760cc1b6020918201528951908a01207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece01611557576114f288888888888888612484565b506001600160a01b0388165f908152600460208190526040822001805488929061151d908490613bde565b90915550506001600160a01b0387165f908152600460208190526040822001805487929061154c908490613bde565b909155506115bd9050565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528951908a01207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016115bd576040516305fcd0f760e01b815260040160405180910390fd5b6001600160a01b0388165f90815260046020526040812060010180548892906115e7908490613bcb565b90915550506001600160a01b0387165f9081526004602052604081206001018054879290611616908490613bcb565b9091555050505050505050505050565b6003546001600160a01b031633148061164857505f546001600160a01b031633145b6116645760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015284519085012084907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e71321480159061170057506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b1561172057806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260078152660756e69737761760cc1b6020918201528551908601207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece0161177e576117798484610bb885612822565b6117e4565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528551908601207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016117e4576040516305fcd0f760e01b815260040160405180910390fd5b5050505050565b6002546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611831573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118559190613c46565b905090565b3373ba12222222228d8ba445958a75a0704d566bf2c8146118c75760405162461bcd60e51b815260206004820152602160248201527f556e617574686f72697a65643a204f6e6c792042616c616e636572205661756c6044820152601d60fa1b606482015260840161046e565b5f818060200190518101906118dc9190613cf4565b90505f845f815181106118f1576118f161395a565b60200260200101519050611964825f01515f815181106119135761191361395a565b602002602001015183602001515f815181106119315761193161395a565b60200260200101518385602001516001815181106119515761195161395a565b60200260200101515f8760400151612b01565b611a56825f015160018151811061197d5761197d61395a565b6020026020010151836020015160018151811061199c5761199c61395a565b602002602001015184602001516001815181106119bb576119bb61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2d9190613c46565b85602001515f81518110611a4357611a4361395a565b6020026020010151858760400151612b01565b81602001515f81518110611a6c57611a6c61395a565b60200260200101516001600160a01b031663a9059cbb30836040518363ffffffff1660e01b8152600401611aa1929190613c76565b6020604051808303815f875af1158015611abd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae19190613c5d565b50505050505050565b611af2612170565b6001600160a01b038116611b1b57604051631e4fbdf760e01b81525f600482015260240161046e565b611b248161219c565b50565b5f60405180606001604052808681526020018581526020018462ffffff168152509050611bb3815f01515f81518110611b6257611b6261395a565b602002602001015182602001515f81518110611b8057611b8061395a565b6020026020010151848460200151600181518110611ba057611ba061395a565b60200260200101515f8660400151612b01565b6117e4815f0151600181518110611bcc57611bcc61395a565b60200260200101518260200151600181518110611beb57611beb61395a565b60200260200101518360200151600181518110611c0a57611c0a61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611c58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7c9190613c46565b84602001515f81518110611c9257611c9261395a565b6020026020010151868660400151612b01565b60405163095ea7b360e01b81525f906001600160a01b0387169063095ea7b390611cf5907f0000000000000000000000000000000000000000000000000000000000000000908890600401613c76565b6020604051808303815f875af1158015611d11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d359190613c5d565b5060408051610100810182526001600160a01b038089168252878116602083015262ffffff85168284015230606083015242608083015260a0820187905260c082018690525f60e0830152915163414bf38960e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063414bf38990611dc5908490600401613dac565b6020604051808303815f875af1158015611de1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e059190613c46565b604080516001600160a01b038a811682528981166020830152918101889052606081018390529193507f000000000000000000000000000000000000000000000000000000000000000016907fad56699d0f375866eb895ed27203058a36a713382aaded78eb6b67da266d43329060800160405180910390a25095945050505050565b60015460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b392611ebc9216908690600401613c76565b6020604051808303815f875af1158015611ed8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efc9190613c5d565b905080611f5b5760405162461bcd60e51b815260206004820152602760248201527f417070726f76616c206f6620617373657420696e746f204161766520706f6f6c6044820152660819985a5b195960ca1b606482015260840161046e565b60015460405163617ba03760e01b81526001600160a01b038581166004830152602482018590523060448301525f60648301529091169063617ba037906084015f604051808303815f87803b158015611fb2575f80fd5b505af1158015611fc4573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e15565b60405180910390a1505050565b60025460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b39261203a9216908690600401613c76565b6020604051808303815f875af1158015612056573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207a9190613c5d565b9050806120d85760405162461bcd60e51b815260206004820152602660248201527f417070726f76616c206f6620617373657420696e746f20436f6d706f756e642060448201526519985a5b195960d21b606482015260840161046e565b600254604051634232cd6360e01b81523060048201526001600160a01b0385811660248301526044820185905290911690634232cd63906064015f604051808303815f87803b158015612129575f80fd5b505af115801561213b573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e49565b5f546001600160a01b03163314610bb25760405163118cdaa760e01b815233600482015260240161046e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f806121f56104e8565b505050505090508281101561221c5760405162461bcd60e51b815260040161046e90613e81565b600154604051631a4ca37b60e21b81526001600160a01b03868116600483015260248201869052306044830152909116906369328dec906064016020604051808303815f875af1158015612272573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122969190613c46565b91507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b584846040516122c9929190613e15565b60405180910390a15092915050565b5f806122e26117eb565b9050828110156123045760405162461bcd60e51b815260040161046e90613e81565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015612348573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236c9190613c46565b60025460405163f3fef3a360e01b81529192506001600160a01b03169063f3fef3a39061239f9088908890600401613c76565b5f604051808303815f87803b1580156123b6575f80fd5b505af11580156123c8573d5f803e3d5ffd5b50506040516370a0823160e01b81523060048201525f92506001600160a01b03881691506370a0823190602401602060405180830381865afa158015612410573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124349190613c46565b90506124408282613bcb565b93507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b58685604051612473929190613e49565b60405180910390a150505092915050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828a8a886040518463ffffffff1660e01b81526004016124d6939291906139e2565b602060405180830381865afa1580156124f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125159190613a0a565b90506001600160a01b03811661253d5760405162461bcd60e51b815260040161046e90613a25565b5f80896001600160a01b03168b6001600160a01b03161061255f57898b612562565b8a8a5b915091505f826001600160a01b03168c6001600160a01b0316146125865788612588565b895b90505f836001600160a01b03168d6001600160a01b0316146125aa578a6125ac565b895b60405163095ea7b360e01b81529091506001600160a01b0385169063095ea7b3906125dd9088908690600401613c76565b6020604051808303815f875af11580156125f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261d9190613c5d565b5060405163095ea7b360e01b81526001600160a01b0384169063095ea7b39061264c9088908590600401613c76565b6020604051808303815f875af1158015612668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061268c9190613c5d565b505f856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156126ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126ee9190613a71565b50505050505090505f6127008a612c7b565b90505f61270c8a612c7b565b905061271b83838388886130b6565b98505f80896001600160a01b0316633c8a7d8d308f8f8f3060405160200161275291906001600160a01b0391909116815260200190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612781959493929190613ec3565b60408051808303815f875af115801561279c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127c09190613f0f565b91509150896001600160a01b03167fce0669c03a6bebf1a7a80046c110092cafdff0bb527ff2e4ea213faf8f07cf118a8a8e8686604051612805959493929190613f31565b60405180910390a250505050505050505050979650505050505050565b604051630b4c774160e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631698ee8290612874908890889088906004016139e2565b602060405180830381865afa15801561288f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128b39190613a0a565b90506001600160a01b0381166128db5760405162461bcd60e51b815260040161046e90613a25565b5f80856001600160a01b0316876001600160a01b0316106128fd578587612900565b86865b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612942573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129669190613a71565b5050505050915091505f60648261297d9190613b12565b90505f61298b836064613b3d565b60405163a34123a760e01b8152600284810b600483015282900b60248201526001600160801b038a1660448201529091505f9081906001600160a01b038a169063a34123a79060640160408051808303815f875af11580156129ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a139190613f0f565b6040516309e3d67b60e31b8152306004820152600287810b602483015286900b60448201526001600160801b0380841660648301528216608482015291935091506001600160a01b038a1690634f1eb3d89060a40160408051808303815f875af1158015612a83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aa79190613f6b565b5050886001600160a01b03167ff0c5c8e0b584b9430fbe397d62831fc7eca3e734a39a08659847de97469501de89898d8686604051612aea959493929190613f31565b60405180910390a250505050505050505050505050565b60405163095ea7b360e01b81526001600160a01b0386169063095ea7b390612b2f9089908890600401613c76565b6020604051808303815f875af1158015612b4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6f9190613c5d565b5060408051610100810182526001600160a01b038088168252858116602083015262ffffff84168284015230606083015242608083015260a0820187905260c082018590525f60e0830152915163414bf38960e01b8152909188169063414bf38990612bdf908490600401613dac565b6020604051808303815f875af1158015612bfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1f9190613c46565b50604080516001600160a01b03808916825286166020820152908101869052606081018490527f25f1d03755df23c30e25db2dbd3891e31ce084bdfbfc46f9fe5e446ee5f9b2d49060800160405180910390a150505050505050565b5f620d89e719600283900b12801590612ca65750612c9c620d89e719613f9c565b60020b8260020b13155b612ce15760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964207469636b60a01b604482015260640161046e565b5f808360020b12612cf5578260020b612d02565b8260020b612d0290613fbc565b90505f816001165f03612d1957600160801b612d2b565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612d6a576080612d65826ffff97272373d413259a46990580e213a613fd6565b901c90505b6004821615612d94576080612d8f826ffff2e50f5f656932ef12357cf3c7fdcc613fd6565b901c90505b6008821615612dbe576080612db9826fffe5caca7e10e4e61c3624eaa0941cd0613fd6565b901c90505b6010821615612de8576080612de3826fffcb9843d60f6159c9db58835c926644613fd6565b901c90505b6020821615612e12576080612e0d826fff973b41fa98c081472e6896dfb254c0613fd6565b901c90505b6040821615612e3c576080612e37826fff2ea16466c96a3843ec78b326b52861613fd6565b901c90505b6080821615612e66576080612e61826ffe5dee046a99a2a811c461f1969c3053613fd6565b901c90505b610100821615612e91576080612e8c826ffcbe86c7900a88aedcffc83b479aa3a4613fd6565b901c90505b610200821615612ebc576080612eb7826ff987a7253ac413176f2b074cf7815e54613fd6565b901c90505b610400821615612ee7576080612ee2826ff3392b0822b70005940c7a398e4b70f3613fd6565b901c90505b610800821615612f12576080612f0d826fe7159475a2c29b7443b29c7fa6e889d9613fd6565b901c90505b611000821615612f3d576080612f38826fd097f3bdfd2022b8845ad8f792aa5825613fd6565b901c90505b612000821615612f68576080612f63826fa9f746462d870fdf8a65dc1f90e061e5613fd6565b901c90505b614000821615612f93576080612f8e826f70d869a156d2a1b890bb3df62baf32f7613fd6565b901c90505b618000821615612fbe576080612fb9826f31be135f97d08fd981231505542fcfa6613fd6565b901c90505b62010000821615612fea576080612fe5826f09aa508b5b7a84e1c677de54f3e99bc9613fd6565b901c90505b62020000821615613015576080613010826e5d6af8dedb81196699c329225ee604613fd6565b901c90505b6204000082161561303f57608061303a826d2216e584f5fa1ea926041bedfe98613fd6565b901c90505b62080000821615613067576080613062826b048a170391f7dc42444e8fa2613fd6565b901c90505b5f8460020b13156130805761307d815f19614001565b90505b61308f64010000000082614014565b1561309b57600161309d565b5f5b6130ae9060ff16602083901c613bde565b949350505050565b5f836001600160a01b0316856001600160a01b031611156130d5579293925b846001600160a01b0316866001600160a01b031611613100576130f9858585613177565b905061316e565b836001600160a01b0316866001600160a01b03161015613160575f613126878686613177565b90505f6131348789866131ea565b9050806001600160801b0316826001600160801b0316106131555780613157565b815b9250505061316e565b61316b8585846131ea565b90505b95945050505050565b5f826001600160a01b0316846001600160a01b03161115613196579192915b5f6131b8856001600160a01b0316856001600160a01b0316600160601b61321f565b90506131df6131da84836131cc8989614027565b6001600160a01b031661321f565b61338e565b9150505b9392505050565b5f826001600160a01b0316846001600160a01b03161115613209579192915b6130ae6131da83600160601b6131cc8888614027565b5f80805f19858709858702925082811083820303915050805f03613253575f8411613248575f80fd5b5082900490506131e3565b80841161325e575f80fd5b5f848688098084039381119092039190505f61327c86196001613bde565b8616958690049593849004935f81900304600101905061329c8184613fd6565b909317925f6132ac876003613fd6565b60021890506132bb8188613fd6565b6132c6906002613bcb565b6132d09082613fd6565b90506132dc8188613fd6565b6132e7906002613bcb565b6132f19082613fd6565b90506132fd8188613fd6565b613308906002613bcb565b6133129082613fd6565b905061331e8188613fd6565b613329906002613bcb565b6133339082613fd6565b905061333f8188613fd6565b61334a906002613bcb565b6133549082613fd6565b90506133608188613fd6565b61336b906002613bcb565b6133759082613fd6565b90506133818186613fd6565b9998505050505050505050565b806001600160801b03811681146133a3575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133e5576133e56133a8565b604052919050565b5f67ffffffffffffffff821115613406576134066133a8565b5060051b60200190565b6001600160a01b0381168114611b24575f80fd5b5f82601f830112613433575f80fd5b81356020613448613443836133ed565b6133bc565b8083825260208201915060208460051b870101935086841115613469575f80fd5b602086015b8481101561348e57803561348181613410565b835291830191830161346e565b509695505050505050565b62ffffff81168114611b24575f80fd5b5f805f80608085870312156134bc575f80fd5b843567ffffffffffffffff808211156134d3575f80fd5b6134df88838901613424565b955060208701359150808211156134f4575f80fd5b5061350187828801613424565b935050604085013561351281613499565b9396929550929360600135925050565b5f805f60608486031215613534575f80fd5b833561353f81613410565b9250602084013561354f81613410565b9150604084013561355f81613499565b809150509250925092565b5f805f806080858703121561357d575f80fd5b843561358881613410565b9350602085013561359881613410565b92506040850135915060608501356135af81613499565b939692955090935050565b5f82601f8301126135c9575f80fd5b813567ffffffffffffffff8111156135e3576135e36133a8565b6135f6601f8201601f19166020016133bc565b81815284602083860101111561360a575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215613638575f80fd5b833567ffffffffffffffff81111561364e575f80fd5b61365a868287016135ba565b935050602084013561366b81613410565b929592945050506040919091013590565b5f6020828403121561368c575f80fd5b81356131e381613410565b5f80604083850312156136a8575f80fd5b82356136b381613410565b946020939093013593505050565b8060020b8114611b24575f80fd5b5f805f805f805f80610100898b0312156136e7575f80fd5b883567ffffffffffffffff8111156136fd575f80fd5b6137098b828c016135ba565b985050602089013561371a81613410565b9650604089013561372a81613410565b9550606089013594506080890135935060a089013561374881613499565b925060c0890135613758816136c1565b915060e0890135613768816136c1565b809150509295985092959890939650565b5f805f806080858703121561378c575f80fd5b843567ffffffffffffffff8111156137a2575f80fd5b6137ae878288016135ba565b94505060208501356137bf81613410565b9250604085013561351281613410565b5f82601f8301126137de575f80fd5b813560206137ee613443836133ed565b8083825260208201915060208460051b87010193508684111561380f575f80fd5b602086015b8481101561348e5780358352918301918301613814565b5f805f806080858703121561383e575f80fd5b843567ffffffffffffffff80821115613855575f80fd5b818701915087601f830112613868575f80fd5b81356020613878613443836133ed565b82815260059290921b8401810191818101908b841115613896575f80fd5b948201945b838610156138bd5785356138ae81613410565b8252948201949082019061389b565b985050880135925050808211156138d2575f80fd5b6138de888389016137cf565b945060408701359150808211156138f3575f80fd5b6138ff888389016137cf565b93506060870135915080821115613914575f80fd5b50613921878288016135ba565b91505092959194509250565b60208082526013908201527227b7363c9030b3b2b73a1037b91037bbb732b960691b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b5f805f805f8060c087890312156139b1575f80fd5b865195506020870151945060408701519350606087015192506080870151915060a087015190509295509295509295565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b5f60208284031215613a1a575f80fd5b81516131e381613410565b602080825260129082015271141bdbdb08191bd95cdb89dd08195e1a5cdd60721b604082015260600190565b805161ffff811681146133a3575f80fd5b805180151581146133a3575f80fd5b5f805f805f805f60e0888a031215613a87575f80fd5b8751613a9281613410565b6020890151909750613aa3816136c1565b9550613ab160408901613a51565b9450613abf60608901613a51565b9350613acd60808901613a51565b925060a088015160ff81168114613ae2575f80fd5b9150613af060c08901613a62565b905092959891949750929550565b634e487b7160e01b5f52601160045260245ffd5b600282810b9082900b03627fffff198112627fffff82131715613b3757613b37613afe565b92915050565b600281810b9083900b01627fffff8113627fffff1982121715613b3757613b37613afe565b80516001600160801b03811681146133a3575f80fd5b5f805f805f60a08688031215613b8c575f80fd5b613b9586613b62565b94506020860151935060408601519250613bb160608701613b62565b9150613bbf60808701613b62565b90509295509295909350565b81810381811115613b3757613b37613afe565b80820180821115613b3757613b37613afe565b5f81518084525f5b81811015613c1557602081850181015186830182015201613bf9565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6131e36020830184613bf1565b5f60208284031215613c56575f80fd5b5051919050565b5f60208284031215613c6d575f80fd5b6131e382613a62565b6001600160a01b03929092168252602082015260400190565b5f82601f830112613c9e575f80fd5b81516020613cae613443836133ed565b8083825260208201915060208460051b870101935086841115613ccf575f80fd5b602086015b8481101561348e578051613ce781613410565b8352918301918301613cd4565b5f60208284031215613d04575f80fd5b815167ffffffffffffffff80821115613d1b575f80fd5b9083019060608286031215613d2e575f80fd5b604051606081018181108382111715613d4957613d496133a8565b604052825182811115613d5a575f80fd5b613d6687828601613c8f565b825250602083015182811115613d7a575f80fd5b613d8687828601613c8f565b60208301525060408301519250613d9c83613499565b6040810192909252509392505050565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0838101519083015260c0808401519083015260e09283015116918101919091526101000190565b6060808252600490820152634161766560e01b60808201526001600160a01b03929092166020830152604082015260a00190565b60608082526008908201526710dbdb5c1bdd5b9960c21b60808201526001600160a01b03929092166020830152604082015260a00190565b60208082526022908201527f43616e6e6f74207769746864726177206d6f7265207468616e20626f72726f77604082015261195960f21b606082015260800190565b60018060a01b03861681528460020b60208201528360020b60408201526001600160801b038316606082015260a060808201525f613f0460a0830184613bf1565b979650505050505050565b5f8060408385031215613f20575f80fd5b505080516020909101519092909150565b6001600160a01b0395861681529390941660208401526001600160801b039190911660408301526060820152608081019190915260a00190565b5f8060408385031215613f7c575f80fd5b613f8583613b62565b9150613f9360208401613b62565b90509250929050565b5f8160020b627fffff198103613fb457613fb4613afe565b5f0392915050565b5f600160ff1b8201613fd057613fd0613afe565b505f0390565b8082028115828204841417613b3757613b37613afe565b634e487b7160e01b5f52601260045260245ffd5b5f8261400f5761400f613fed565b500490565b5f8261402257614022613fed565b500690565b6001600160a01b0382811682821603908082111561404757614047613afe565b509291505056fea26469706673582212202e954e0c1c84544b0d3b88ad8f9d5c1feff61dee33e04446365814cc9aba2d5b64736f6c63430008160033a264697066735822122041854108e67096215d33aa43da652e962dd8235ea5d8c38f37b56905d2026d4564736f6c63430008160033", + "nonce": "0xa", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x4fd8bf", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xd7eed8e393e4524c7be67e9254e8477629e863b40897f1ee97979d4ea0b06266", + "transactionIndex": "0x4", + "blockHash": "0xc8bffceca470a2545f818bd556951daf3091ea24c4a72d4d63c208942b928b2b", + "blockNumber": "0x74b809d", + "gasUsed": "0x43b339", + "effectiveGasPrice": "0x5f5e100", + "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", + "to": null, + "contractAddress": "0x1c4ccc2c917edf45ad1c3c9675cf130b47db8c11", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x7514e9" + } + ], + "libraries": [], + "pending": [], + "returns": { + "0": { + "internal_type": "contract VaultFactory", + "value": "0x1C4cCc2c917EDF45aD1C3C9675cF130b47Db8c11" + } + }, + "timestamp": 1739112295, + "chain": 421614, + "commit": "bf3b81b" +} \ No newline at end of file diff --git a/broadcast/DeployVaultFactory.s.sol/421614/run-latest.json b/broadcast/DeployVaultFactory.s.sol/421614/run-latest.json new file mode 100644 index 0000000..2f809e0 --- /dev/null +++ b/broadcast/DeployVaultFactory.s.sol/421614/run-latest.json @@ -0,0 +1,53 @@ +{ + "transactions": [ + { + "hash": "0xd7eed8e393e4524c7be67e9254e8477629e863b40897f1ee97979d4ea0b06266", + "transactionType": "CREATE", + "contractName": "VaultFactory", + "contractAddress": "0x1c4ccc2c917edf45ad1c3c9675cf130b47db8c11", + "function": null, + "arguments": null, + "transaction": { + "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", + "gas": "0x58bb54", + "value": "0x0", + "input": "0x6080604052600c805462ff00ff191662010001179055348015610020575f80fd5b5061016560408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506040805161012081018252731df462e2712496373a347f8ad10802a5e95f053d81527375faf114eafb1bdbe2f0316df893fd58ce46aa4d602082015273460b97bd498e1157530aeb3086301d5225b912169181019190915273fb4561c6aff45c00ee0d2ef33d058e2f96959f0f606082015273248ab79bbb9bc29bb72f7cd42f17e054fc40188e608082015273101f443b4d1b059569d643917553c771e1b9663e60a0820152732779a0cc1c3e0e44d2542ec3e79e3864ae93ef0b60c082015273bfc91d59fdaa134a4ed45f7b584caf96d7792eff60e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b8051600e80546001600160a01b03199081166001600160a01b03938416179091556020830151600f8054831691841691909117905560408301516010805483169184169190911790556060830151601180548316918416919091179055608083015160128054831691841691909117905560a083015160138054831691841691909117905560c083015160148054831691841691909117905560e083015160158054831691841691909117905561010090920151601680549093169116179055614b16806102325f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063989e6fd911610063578063989e6fd91461019e578063b4bd6f46146101a6578063d1a43bda146101b9578063d7b65745146101c1578063f8ccbf471461025f575f80fd5b806347ae49e71461009f578063522c441d1461013157806358f674761461013957806365cacaa4146101795780637e8af5bd14610196575b5f80fd5b6100a7610282565b604051610128919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a08084015182169083015260c08084015182169083015260e0808401518216908301526101009283015116918101919091526101200190565b60405180910390f35b6100a7610312565b6101616101473660046107e5565b600d6020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610128565b335f908152600d60205260409020546001600160a01b0316610161565b6100a76103b3565b6100a76104b4565b6101616101b43660046107e5565b610546565b6100a7610630565b600e54600f54601054601154601254601354601454601554601654610205986001600160a01b03908116988116978116968116958116948116938116928116911689565b604080516001600160a01b039a8b168152988a1660208a01529689169688019690965293871660608701529186166080860152851660a0850152841660c0840152831660e083015290911661010082015261012001610128565b600c546102729062010000900460ff1681565b6040519015158152602001610128565b61028a61078d565b5060408051610120810182525f808252735425890298aed601595a70ab815c96711a31bc656020830152739cfcc1b289e59fbe1e769f020c77315df847376092820192909252606081018290526080810182905260a0810182905260c0810191909152738b9b2af4afb389b4a70a474dfd4adcd4a302bb4060e0820152604d61010082015290565b61031a61078d565b50604080516101208101825273c558dbdd856501fcd9aaf1e62eae57a9f0629a3c81527394a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c860208201525f91810182905273e3e0106227181958abfba960c13d0fe52c73326560608201526080810182905260a0810182905260c0810191909152736ae43d3271ff6888e7fc43fd7321a503ff73895160e0820152604d61010082015290565b6103bb61078d565b506040805161012081018252731df462e2712496373a347f8ad10802a5e95f053d81527375faf114eafb1bdbe2f0316df893fd58ce46aa4d602082015273460b97bd498e1157530aeb3086301d5225b912169181019190915273fb4561c6aff45c00ee0d2ef33d058e2f96959f0f606082015273248ab79bbb9bc29bb72f7cd42f17e054fc40188e608082015273101f443b4d1b059569d643917553c771e1b9663e60a0820152732779a0cc1c3e0e44d2542ec3e79e3864ae93ef0b60c082015273bfc91d59fdaa134a4ed45f7b584caf96d7792eff60e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b6104bc61078d565b6104fa6040518060400160405280601881526020017f54657374696e67204f6e20416e76696c204e6574776f726b0000000000000000815250610724565b5060408051610120810182525f80825260016020830152918101829052606081019190915260026080820152600360a0820152600660c0820152600760e0820152604d61010082015290565b6016546015546011546013546012546040515f95869588956001600160a01b03928316959183169490831693918316921690610581906107d8565b6001600160a01b0396871681529486166020860152928516604085015290841660608401528316608083015290911660a082015260c001604051809103905ff0801580156105d1573d5f803e3d5ffd5b506001600160a01b038481165f818152600d602052604080822080546001600160a01b031916948616948517905551939450919290917f5d9c31ffa0fecffd7cf379989a3c7af252f0335e0d2a1320b55245912c781f5391a392915050565b61063861078d565b5060408051610120810182526006602160991b01815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b610767816040516024016107389190610812565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261076a565b50565b610767815f6a636f6e736f6c652e6c6f6790505f80835160208501845afa505050565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b6142828061085f83390190565b5f602082840312156107f5575f80fd5b81356001600160a01b038116811461080b575f80fd5b9392505050565b5f602080835283518060208501525f5b8181101561083e57858101830151858201604001528201610822565b505f604082860101526040601f19601f830116850101925050509291505056fe60c060405234801562000010575f80fd5b506040516200428238038062004282833981016040819052620000339162000135565b83838383896001600160a01b0381166200006657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007181620000ca565b50600180546001600160a01b039586166001600160a01b0319918216179091556002805494861694821694909417909355908316608052821660a052600380549790921696169590951790945550620001b29350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811462000130575f80fd5b919050565b5f805f805f8060c087890312156200014b575f80fd5b620001568762000119565b9550620001666020880162000119565b9450620001766040880162000119565b9350620001866060880162000119565b9250620001966080880162000119565b9150620001a660a0880162000119565b90509295509295509295565b60805160a051614084620001fe5f395f81816102ac0152818161057701528181612488015261283b01525f818161026d01528181611ccb01528181611d900152611e3001526140845ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c8063a03e4bc3116100bf578063dc06618011610079578063dc06618014610363578063e6e1bdec146103dc578063e8f6daa9146103e4578063f04f2707146103f7578063f2fde38b1461040a578063f5ff5c761461041d575f80fd5b8063a03e4bc3146102f1578063a1db978214610304578063aab7647914610317578063bcf685ed1461032a578063c7d716d71461033d578063ca11615e14610350575f80fd5b8063604e370611610110578063604e370614610207578063715018a614610260578063735de9f7146102685780638bdb2afa146102a75780638da5cb5b146102ce57806397feb926146102de575f80fd5b80630c5443791461014c57806321db8240146101615780634a0de08f1461019b578063592bac55146101d35780635d631152146101f4575b5f80fd5b61015f61015a3660046134a9565b610430565b005b6101696104e8565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0015b60405180910390f35b6101ae6101a9366004613522565b610571565b604080516001600160801b039094168452602084019290925290820152606001610192565b6101e66101e136600461356a565b6107ad565b604051908152602001610192565b61015f610202366004613626565b6108a1565b61021a61021536600461367c565b610b13565b604051610192919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b61015f610ba1565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610192565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661028f565b61015f6102ec366004613697565b610bb4565b60015461028f906001600160a01b031681565b61015f610312366004613697565b610d9b565b6101e6610325366004613626565b610f86565b61015f61033836600461367c565b6112a0565b61015f61034b3660046136cf565b6112ca565b61015f61035e366004613779565b611626565b6103aa61037136600461367c565b600460208190525f9182526040909120805460018201546002830154600384015493909401546001600160a01b03909216939092909185565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a001610192565b6101e66117eb565b60025461028f906001600160a01b031681565b61015f61040536600461382b565b61185a565b61015f61041836600461367c565b611aea565b60035461028f906001600160a01b031681565b6003546001600160a01b031633148061045257505f546001600160a01b031633145b6104775760405162461bcd60e51b815260040161046e9061392d565b60405180910390fd5b8060045f855f8151811061048d5761048d61395a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206001015410156104d65760405162461bcd60e51b815260040161046e9061396e565b6104e284848484611b27565b50505050565b600154604051632fe4a15f60e21b81523060048201525f91829182918291829182916001600160a01b039091169063bf92857c9060240160c060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e919061399c565b949b939a50919850965094509092509050565b5f805f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828888886040518463ffffffff1660e01b81526004016105c5939291906139e2565b602060405180830381865afa1580156105e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106049190613a0a565b90506001600160a01b03811661062c5760405162461bcd60e51b815260040161046e90613a25565b5f80876001600160a01b0316896001600160a01b03161061064e578789610651565b88885b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b79190613a71565b5050505050915091505f6064826106ce9190613b12565b90505f6106dc836064613b3d565b6040516bffffffffffffffffffffffff193060601b16602082015260e884811b603483015282901b60378201529091506001600160a01b0388169063514ea4bf90603a01604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161075491815260200190565b60a060405180830381865afa15801561076f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107939190613b78565b50929c50909a509850505050505050505093509350939050565b6003545f906001600160a01b03163314806107d157505f546001600160a01b031633145b6107ed5760405162461bcd60e51b815260040161046e9061392d565b6001600160a01b0385165f908152600460205260409020600101548311156108275760405162461bcd60e51b815260040161046e9061396e565b610835858585600186611ca5565b6001600160a01b0386165f90815260046020526040812060010180549293508592909190610864908490613bcb565b90915550506001600160a01b0384165f9081526004602052604081206001018054839290610893908490613bde565b909155509095945050505050565b6003546001600160a01b03163314806108c357505f546001600160a01b031633145b6108df5760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015283519084012083907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b1832914801590610977575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561099757806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0383165f908152600460205260409020600101548211156109d15760405162461bcd60e51b815260040161046e9061396e565b6040805180820190915260048152636161766560e01b6020918201528451908501207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701610a5857610a238383611e88565b6001600160a01b0383165f9081526004602052604081206002018054849290610a4d908490613bde565b90915550610ade9050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528451908501207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201610ade57610aae8383612006565b6001600160a01b0383165f9081526004602052604081206003018054849290610ad8908490613bde565b90915550505b6001600160a01b0383165f9081526004602052604081206001018054849290610b08908490613bcb565b909155505050505050565b610b496040518060a001604052805f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b039081165f90815260046020818152604092839020835160a08101855281549095168552600181015491850191909152600281015492840192909252600382015460608401520154608082015290565b610ba9612170565b610bb25f61219c565b565b610bbc612170565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610c06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2a9190613c46565b1015610c715760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015260640161046e565b6040516323b872dd60e01b8152336004820152306024820152604481018290525f906001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610cc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce79190613c5d565b905080610d285760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610d52908490613bde565b90915550506040518281526001600160a01b038416907fab79632de7fe1724598ce2214eaa326d90d48064d2d3397406ecc5769316a5f6906020015b60405180910390a2505050565b610da3612170565b6001600160a01b0382165f90815260046020526040902060010154811115610ddd5760405162461bcd60e51b815260040161046e9061396e565b816001600160a01b031663095ea7b3610dfd5f546001600160a01b031690565b836040518363ffffffff1660e01b8152600401610e1b929190613c76565b6020604051808303815f875af1158015610e37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5b9190613c5d565b505f826001600160a01b031663a9059cbb610e7d5f546001600160a01b031690565b846040518363ffffffff1660e01b8152600401610e9b929190613c76565b6020604051808303815f875af1158015610eb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edb9190613c5d565b905080610f1c5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610f46908490613bcb565b90915550506040518281526001600160a01b038416907f7e2c99819371db0a6fc6f4269fe872496e44f502df19ba3eae594b7a1598746090602001610d8e565b6003545f906001600160a01b0316331480610faa57505f546001600160a01b031633145b610fc65760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015284519085012084907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b183291480159061105e575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561107e57806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260048152636161766560e01b6020918201528551908601207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701611174576001600160a01b0384165f908152600460205260409020600201548311156111305760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61113a84846121eb565b6001600160a01b0385165f90815260046020526040812060020180549294508592909190611169908490613bcb565b909155506112699050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528551908601207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201611269576001600160a01b0384165f9081526004602052604090206003015483111561122a5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61123484846122d8565b6001600160a01b0385165f90815260046020526040812060030180549294508592909190611263908490613bcb565b90915550505b6001600160a01b0384165f9081526004602052604081206001018054849290611293908490613bde565b9091555050509392505050565b6112a8612170565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314806112ec57505f546001600160a01b031633145b6113085760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015288519089012088907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e7132148015906113a457506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b156113c457806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0388165f9081526004602052604090206001015486111561142e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e300000000000604482015260640161046e565b6001600160a01b0387165f908152600460205260409020600101548511156114985760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e310000000000604482015260640161046e565b6040805180820190915260078152660756e69737761760cc1b6020918201528951908a01207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece01611557576114f288888888888888612484565b506001600160a01b0388165f908152600460208190526040822001805488929061151d908490613bde565b90915550506001600160a01b0387165f908152600460208190526040822001805487929061154c908490613bde565b909155506115bd9050565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528951908a01207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016115bd576040516305fcd0f760e01b815260040160405180910390fd5b6001600160a01b0388165f90815260046020526040812060010180548892906115e7908490613bcb565b90915550506001600160a01b0387165f9081526004602052604081206001018054879290611616908490613bcb565b9091555050505050505050505050565b6003546001600160a01b031633148061164857505f546001600160a01b031633145b6116645760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015284519085012084907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e71321480159061170057506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b1561172057806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260078152660756e69737761760cc1b6020918201528551908601207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece0161177e576117798484610bb885612822565b6117e4565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528551908601207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016117e4576040516305fcd0f760e01b815260040160405180910390fd5b5050505050565b6002546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611831573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118559190613c46565b905090565b3373ba12222222228d8ba445958a75a0704d566bf2c8146118c75760405162461bcd60e51b815260206004820152602160248201527f556e617574686f72697a65643a204f6e6c792042616c616e636572205661756c6044820152601d60fa1b606482015260840161046e565b5f818060200190518101906118dc9190613cf4565b90505f845f815181106118f1576118f161395a565b60200260200101519050611964825f01515f815181106119135761191361395a565b602002602001015183602001515f815181106119315761193161395a565b60200260200101518385602001516001815181106119515761195161395a565b60200260200101515f8760400151612b01565b611a56825f015160018151811061197d5761197d61395a565b6020026020010151836020015160018151811061199c5761199c61395a565b602002602001015184602001516001815181106119bb576119bb61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2d9190613c46565b85602001515f81518110611a4357611a4361395a565b6020026020010151858760400151612b01565b81602001515f81518110611a6c57611a6c61395a565b60200260200101516001600160a01b031663a9059cbb30836040518363ffffffff1660e01b8152600401611aa1929190613c76565b6020604051808303815f875af1158015611abd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae19190613c5d565b50505050505050565b611af2612170565b6001600160a01b038116611b1b57604051631e4fbdf760e01b81525f600482015260240161046e565b611b248161219c565b50565b5f60405180606001604052808681526020018581526020018462ffffff168152509050611bb3815f01515f81518110611b6257611b6261395a565b602002602001015182602001515f81518110611b8057611b8061395a565b6020026020010151848460200151600181518110611ba057611ba061395a565b60200260200101515f8660400151612b01565b6117e4815f0151600181518110611bcc57611bcc61395a565b60200260200101518260200151600181518110611beb57611beb61395a565b60200260200101518360200151600181518110611c0a57611c0a61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611c58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7c9190613c46565b84602001515f81518110611c9257611c9261395a565b6020026020010151868660400151612b01565b60405163095ea7b360e01b81525f906001600160a01b0387169063095ea7b390611cf5907f0000000000000000000000000000000000000000000000000000000000000000908890600401613c76565b6020604051808303815f875af1158015611d11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d359190613c5d565b5060408051610100810182526001600160a01b038089168252878116602083015262ffffff85168284015230606083015242608083015260a0820187905260c082018690525f60e0830152915163414bf38960e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063414bf38990611dc5908490600401613dac565b6020604051808303815f875af1158015611de1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e059190613c46565b604080516001600160a01b038a811682528981166020830152918101889052606081018390529193507f000000000000000000000000000000000000000000000000000000000000000016907fad56699d0f375866eb895ed27203058a36a713382aaded78eb6b67da266d43329060800160405180910390a25095945050505050565b60015460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b392611ebc9216908690600401613c76565b6020604051808303815f875af1158015611ed8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efc9190613c5d565b905080611f5b5760405162461bcd60e51b815260206004820152602760248201527f417070726f76616c206f6620617373657420696e746f204161766520706f6f6c6044820152660819985a5b195960ca1b606482015260840161046e565b60015460405163617ba03760e01b81526001600160a01b038581166004830152602482018590523060448301525f60648301529091169063617ba037906084015f604051808303815f87803b158015611fb2575f80fd5b505af1158015611fc4573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e15565b60405180910390a1505050565b60025460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b39261203a9216908690600401613c76565b6020604051808303815f875af1158015612056573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207a9190613c5d565b9050806120d85760405162461bcd60e51b815260206004820152602660248201527f417070726f76616c206f6620617373657420696e746f20436f6d706f756e642060448201526519985a5b195960d21b606482015260840161046e565b600254604051634232cd6360e01b81523060048201526001600160a01b0385811660248301526044820185905290911690634232cd63906064015f604051808303815f87803b158015612129575f80fd5b505af115801561213b573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e49565b5f546001600160a01b03163314610bb25760405163118cdaa760e01b815233600482015260240161046e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f806121f56104e8565b505050505090508281101561221c5760405162461bcd60e51b815260040161046e90613e81565b600154604051631a4ca37b60e21b81526001600160a01b03868116600483015260248201869052306044830152909116906369328dec906064016020604051808303815f875af1158015612272573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122969190613c46565b91507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b584846040516122c9929190613e15565b60405180910390a15092915050565b5f806122e26117eb565b9050828110156123045760405162461bcd60e51b815260040161046e90613e81565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015612348573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236c9190613c46565b60025460405163f3fef3a360e01b81529192506001600160a01b03169063f3fef3a39061239f9088908890600401613c76565b5f604051808303815f87803b1580156123b6575f80fd5b505af11580156123c8573d5f803e3d5ffd5b50506040516370a0823160e01b81523060048201525f92506001600160a01b03881691506370a0823190602401602060405180830381865afa158015612410573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124349190613c46565b90506124408282613bcb565b93507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b58685604051612473929190613e49565b60405180910390a150505092915050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828a8a886040518463ffffffff1660e01b81526004016124d6939291906139e2565b602060405180830381865afa1580156124f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125159190613a0a565b90506001600160a01b03811661253d5760405162461bcd60e51b815260040161046e90613a25565b5f80896001600160a01b03168b6001600160a01b03161061255f57898b612562565b8a8a5b915091505f826001600160a01b03168c6001600160a01b0316146125865788612588565b895b90505f836001600160a01b03168d6001600160a01b0316146125aa578a6125ac565b895b60405163095ea7b360e01b81529091506001600160a01b0385169063095ea7b3906125dd9088908690600401613c76565b6020604051808303815f875af11580156125f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261d9190613c5d565b5060405163095ea7b360e01b81526001600160a01b0384169063095ea7b39061264c9088908590600401613c76565b6020604051808303815f875af1158015612668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061268c9190613c5d565b505f856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156126ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126ee9190613a71565b50505050505090505f6127008a612c7b565b90505f61270c8a612c7b565b905061271b83838388886130b6565b98505f80896001600160a01b0316633c8a7d8d308f8f8f3060405160200161275291906001600160a01b0391909116815260200190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612781959493929190613ec3565b60408051808303815f875af115801561279c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127c09190613f0f565b91509150896001600160a01b03167fce0669c03a6bebf1a7a80046c110092cafdff0bb527ff2e4ea213faf8f07cf118a8a8e8686604051612805959493929190613f31565b60405180910390a250505050505050505050979650505050505050565b604051630b4c774160e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631698ee8290612874908890889088906004016139e2565b602060405180830381865afa15801561288f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128b39190613a0a565b90506001600160a01b0381166128db5760405162461bcd60e51b815260040161046e90613a25565b5f80856001600160a01b0316876001600160a01b0316106128fd578587612900565b86865b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612942573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129669190613a71565b5050505050915091505f60648261297d9190613b12565b90505f61298b836064613b3d565b60405163a34123a760e01b8152600284810b600483015282900b60248201526001600160801b038a1660448201529091505f9081906001600160a01b038a169063a34123a79060640160408051808303815f875af11580156129ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a139190613f0f565b6040516309e3d67b60e31b8152306004820152600287810b602483015286900b60448201526001600160801b0380841660648301528216608482015291935091506001600160a01b038a1690634f1eb3d89060a40160408051808303815f875af1158015612a83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aa79190613f6b565b5050886001600160a01b03167ff0c5c8e0b584b9430fbe397d62831fc7eca3e734a39a08659847de97469501de89898d8686604051612aea959493929190613f31565b60405180910390a250505050505050505050505050565b60405163095ea7b360e01b81526001600160a01b0386169063095ea7b390612b2f9089908890600401613c76565b6020604051808303815f875af1158015612b4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6f9190613c5d565b5060408051610100810182526001600160a01b038088168252858116602083015262ffffff84168284015230606083015242608083015260a0820187905260c082018590525f60e0830152915163414bf38960e01b8152909188169063414bf38990612bdf908490600401613dac565b6020604051808303815f875af1158015612bfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1f9190613c46565b50604080516001600160a01b03808916825286166020820152908101869052606081018490527f25f1d03755df23c30e25db2dbd3891e31ce084bdfbfc46f9fe5e446ee5f9b2d49060800160405180910390a150505050505050565b5f620d89e719600283900b12801590612ca65750612c9c620d89e719613f9c565b60020b8260020b13155b612ce15760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964207469636b60a01b604482015260640161046e565b5f808360020b12612cf5578260020b612d02565b8260020b612d0290613fbc565b90505f816001165f03612d1957600160801b612d2b565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612d6a576080612d65826ffff97272373d413259a46990580e213a613fd6565b901c90505b6004821615612d94576080612d8f826ffff2e50f5f656932ef12357cf3c7fdcc613fd6565b901c90505b6008821615612dbe576080612db9826fffe5caca7e10e4e61c3624eaa0941cd0613fd6565b901c90505b6010821615612de8576080612de3826fffcb9843d60f6159c9db58835c926644613fd6565b901c90505b6020821615612e12576080612e0d826fff973b41fa98c081472e6896dfb254c0613fd6565b901c90505b6040821615612e3c576080612e37826fff2ea16466c96a3843ec78b326b52861613fd6565b901c90505b6080821615612e66576080612e61826ffe5dee046a99a2a811c461f1969c3053613fd6565b901c90505b610100821615612e91576080612e8c826ffcbe86c7900a88aedcffc83b479aa3a4613fd6565b901c90505b610200821615612ebc576080612eb7826ff987a7253ac413176f2b074cf7815e54613fd6565b901c90505b610400821615612ee7576080612ee2826ff3392b0822b70005940c7a398e4b70f3613fd6565b901c90505b610800821615612f12576080612f0d826fe7159475a2c29b7443b29c7fa6e889d9613fd6565b901c90505b611000821615612f3d576080612f38826fd097f3bdfd2022b8845ad8f792aa5825613fd6565b901c90505b612000821615612f68576080612f63826fa9f746462d870fdf8a65dc1f90e061e5613fd6565b901c90505b614000821615612f93576080612f8e826f70d869a156d2a1b890bb3df62baf32f7613fd6565b901c90505b618000821615612fbe576080612fb9826f31be135f97d08fd981231505542fcfa6613fd6565b901c90505b62010000821615612fea576080612fe5826f09aa508b5b7a84e1c677de54f3e99bc9613fd6565b901c90505b62020000821615613015576080613010826e5d6af8dedb81196699c329225ee604613fd6565b901c90505b6204000082161561303f57608061303a826d2216e584f5fa1ea926041bedfe98613fd6565b901c90505b62080000821615613067576080613062826b048a170391f7dc42444e8fa2613fd6565b901c90505b5f8460020b13156130805761307d815f19614001565b90505b61308f64010000000082614014565b1561309b57600161309d565b5f5b6130ae9060ff16602083901c613bde565b949350505050565b5f836001600160a01b0316856001600160a01b031611156130d5579293925b846001600160a01b0316866001600160a01b031611613100576130f9858585613177565b905061316e565b836001600160a01b0316866001600160a01b03161015613160575f613126878686613177565b90505f6131348789866131ea565b9050806001600160801b0316826001600160801b0316106131555780613157565b815b9250505061316e565b61316b8585846131ea565b90505b95945050505050565b5f826001600160a01b0316846001600160a01b03161115613196579192915b5f6131b8856001600160a01b0316856001600160a01b0316600160601b61321f565b90506131df6131da84836131cc8989614027565b6001600160a01b031661321f565b61338e565b9150505b9392505050565b5f826001600160a01b0316846001600160a01b03161115613209579192915b6130ae6131da83600160601b6131cc8888614027565b5f80805f19858709858702925082811083820303915050805f03613253575f8411613248575f80fd5b5082900490506131e3565b80841161325e575f80fd5b5f848688098084039381119092039190505f61327c86196001613bde565b8616958690049593849004935f81900304600101905061329c8184613fd6565b909317925f6132ac876003613fd6565b60021890506132bb8188613fd6565b6132c6906002613bcb565b6132d09082613fd6565b90506132dc8188613fd6565b6132e7906002613bcb565b6132f19082613fd6565b90506132fd8188613fd6565b613308906002613bcb565b6133129082613fd6565b905061331e8188613fd6565b613329906002613bcb565b6133339082613fd6565b905061333f8188613fd6565b61334a906002613bcb565b6133549082613fd6565b90506133608188613fd6565b61336b906002613bcb565b6133759082613fd6565b90506133818186613fd6565b9998505050505050505050565b806001600160801b03811681146133a3575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133e5576133e56133a8565b604052919050565b5f67ffffffffffffffff821115613406576134066133a8565b5060051b60200190565b6001600160a01b0381168114611b24575f80fd5b5f82601f830112613433575f80fd5b81356020613448613443836133ed565b6133bc565b8083825260208201915060208460051b870101935086841115613469575f80fd5b602086015b8481101561348e57803561348181613410565b835291830191830161346e565b509695505050505050565b62ffffff81168114611b24575f80fd5b5f805f80608085870312156134bc575f80fd5b843567ffffffffffffffff808211156134d3575f80fd5b6134df88838901613424565b955060208701359150808211156134f4575f80fd5b5061350187828801613424565b935050604085013561351281613499565b9396929550929360600135925050565b5f805f60608486031215613534575f80fd5b833561353f81613410565b9250602084013561354f81613410565b9150604084013561355f81613499565b809150509250925092565b5f805f806080858703121561357d575f80fd5b843561358881613410565b9350602085013561359881613410565b92506040850135915060608501356135af81613499565b939692955090935050565b5f82601f8301126135c9575f80fd5b813567ffffffffffffffff8111156135e3576135e36133a8565b6135f6601f8201601f19166020016133bc565b81815284602083860101111561360a575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215613638575f80fd5b833567ffffffffffffffff81111561364e575f80fd5b61365a868287016135ba565b935050602084013561366b81613410565b929592945050506040919091013590565b5f6020828403121561368c575f80fd5b81356131e381613410565b5f80604083850312156136a8575f80fd5b82356136b381613410565b946020939093013593505050565b8060020b8114611b24575f80fd5b5f805f805f805f80610100898b0312156136e7575f80fd5b883567ffffffffffffffff8111156136fd575f80fd5b6137098b828c016135ba565b985050602089013561371a81613410565b9650604089013561372a81613410565b9550606089013594506080890135935060a089013561374881613499565b925060c0890135613758816136c1565b915060e0890135613768816136c1565b809150509295985092959890939650565b5f805f806080858703121561378c575f80fd5b843567ffffffffffffffff8111156137a2575f80fd5b6137ae878288016135ba565b94505060208501356137bf81613410565b9250604085013561351281613410565b5f82601f8301126137de575f80fd5b813560206137ee613443836133ed565b8083825260208201915060208460051b87010193508684111561380f575f80fd5b602086015b8481101561348e5780358352918301918301613814565b5f805f806080858703121561383e575f80fd5b843567ffffffffffffffff80821115613855575f80fd5b818701915087601f830112613868575f80fd5b81356020613878613443836133ed565b82815260059290921b8401810191818101908b841115613896575f80fd5b948201945b838610156138bd5785356138ae81613410565b8252948201949082019061389b565b985050880135925050808211156138d2575f80fd5b6138de888389016137cf565b945060408701359150808211156138f3575f80fd5b6138ff888389016137cf565b93506060870135915080821115613914575f80fd5b50613921878288016135ba565b91505092959194509250565b60208082526013908201527227b7363c9030b3b2b73a1037b91037bbb732b960691b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b5f805f805f8060c087890312156139b1575f80fd5b865195506020870151945060408701519350606087015192506080870151915060a087015190509295509295509295565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b5f60208284031215613a1a575f80fd5b81516131e381613410565b602080825260129082015271141bdbdb08191bd95cdb89dd08195e1a5cdd60721b604082015260600190565b805161ffff811681146133a3575f80fd5b805180151581146133a3575f80fd5b5f805f805f805f60e0888a031215613a87575f80fd5b8751613a9281613410565b6020890151909750613aa3816136c1565b9550613ab160408901613a51565b9450613abf60608901613a51565b9350613acd60808901613a51565b925060a088015160ff81168114613ae2575f80fd5b9150613af060c08901613a62565b905092959891949750929550565b634e487b7160e01b5f52601160045260245ffd5b600282810b9082900b03627fffff198112627fffff82131715613b3757613b37613afe565b92915050565b600281810b9083900b01627fffff8113627fffff1982121715613b3757613b37613afe565b80516001600160801b03811681146133a3575f80fd5b5f805f805f60a08688031215613b8c575f80fd5b613b9586613b62565b94506020860151935060408601519250613bb160608701613b62565b9150613bbf60808701613b62565b90509295509295909350565b81810381811115613b3757613b37613afe565b80820180821115613b3757613b37613afe565b5f81518084525f5b81811015613c1557602081850181015186830182015201613bf9565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6131e36020830184613bf1565b5f60208284031215613c56575f80fd5b5051919050565b5f60208284031215613c6d575f80fd5b6131e382613a62565b6001600160a01b03929092168252602082015260400190565b5f82601f830112613c9e575f80fd5b81516020613cae613443836133ed565b8083825260208201915060208460051b870101935086841115613ccf575f80fd5b602086015b8481101561348e578051613ce781613410565b8352918301918301613cd4565b5f60208284031215613d04575f80fd5b815167ffffffffffffffff80821115613d1b575f80fd5b9083019060608286031215613d2e575f80fd5b604051606081018181108382111715613d4957613d496133a8565b604052825182811115613d5a575f80fd5b613d6687828601613c8f565b825250602083015182811115613d7a575f80fd5b613d8687828601613c8f565b60208301525060408301519250613d9c83613499565b6040810192909252509392505050565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0838101519083015260c0808401519083015260e09283015116918101919091526101000190565b6060808252600490820152634161766560e01b60808201526001600160a01b03929092166020830152604082015260a00190565b60608082526008908201526710dbdb5c1bdd5b9960c21b60808201526001600160a01b03929092166020830152604082015260a00190565b60208082526022908201527f43616e6e6f74207769746864726177206d6f7265207468616e20626f72726f77604082015261195960f21b606082015260800190565b60018060a01b03861681528460020b60208201528360020b60408201526001600160801b038316606082015260a060808201525f613f0460a0830184613bf1565b979650505050505050565b5f8060408385031215613f20575f80fd5b505080516020909101519092909150565b6001600160a01b0395861681529390941660208401526001600160801b039190911660408301526060820152608081019190915260a00190565b5f8060408385031215613f7c575f80fd5b613f8583613b62565b9150613f9360208401613b62565b90509250929050565b5f8160020b627fffff198103613fb457613fb4613afe565b5f0392915050565b5f600160ff1b8201613fd057613fd0613afe565b505f0390565b8082028115828204841417613b3757613b37613afe565b634e487b7160e01b5f52601260045260245ffd5b5f8261400f5761400f613fed565b500490565b5f8261402257614022613fed565b500690565b6001600160a01b0382811682821603908082111561404757614047613afe565b509291505056fea26469706673582212202e954e0c1c84544b0d3b88ad8f9d5c1feff61dee33e04446365814cc9aba2d5b64736f6c63430008160033a264697066735822122041854108e67096215d33aa43da652e962dd8235ea5d8c38f37b56905d2026d4564736f6c63430008160033", + "nonce": "0xa", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x4fd8bf", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xd7eed8e393e4524c7be67e9254e8477629e863b40897f1ee97979d4ea0b06266", + "transactionIndex": "0x4", + "blockHash": "0xc8bffceca470a2545f818bd556951daf3091ea24c4a72d4d63c208942b928b2b", + "blockNumber": "0x74b809d", + "gasUsed": "0x43b339", + "effectiveGasPrice": "0x5f5e100", + "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", + "to": null, + "contractAddress": "0x1c4ccc2c917edf45ad1c3c9675cf130b47db8c11", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x7514e9" + } + ], + "libraries": [], + "pending": [], + "returns": { + "0": { + "internal_type": "contract VaultFactory", + "value": "0x1C4cCc2c917EDF45aD1C3C9675cF130b47Db8c11" + } + }, + "timestamp": 1739112295, + "chain": 421614, + "commit": "bf3b81b" +} \ No newline at end of file diff --git a/broadcast/DeployVaultFactory.s.sol/84532/run-1739112162.json b/broadcast/DeployVaultFactory.s.sol/84532/run-1739112162.json new file mode 100644 index 0000000..11c52ab --- /dev/null +++ b/broadcast/DeployVaultFactory.s.sol/84532/run-1739112162.json @@ -0,0 +1,57 @@ +{ + "transactions": [ + { + "hash": "0x7784291a8697ad1db60bc42d1e0818ba80c05a8904156d85f2bb3d1c5fd1849a", + "transactionType": "CREATE", + "contractName": "VaultFactory", + "contractAddress": "0xc44f47570da8ccab36e2407fde13800c397cb686", + "function": null, + "arguments": null, + "transaction": { + "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", + "gas": "0x58017e", + "value": "0x0", + "input": "0x6080604052600c805462ff00ff191662010001179055348015610020575f80fd5b5061016560408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506040805161012081018252734200000000000000000000000000000000000006815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b8051600e80546001600160a01b03199081166001600160a01b03938416179091556020830151600f8054831691841691909117905560408301516010805483169184169190911790556060830151601180548316918416919091179055608083015160128054831691841691909117905560a083015160138054831691841691909117905560c083015160148054831691841691909117905560e083015160158054831691841691909117905561010090920151601680549093169116179055614b16806102325f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063989e6fd911610063578063989e6fd91461019e578063b4bd6f46146101a6578063d1a43bda146101b9578063d7b65745146101c1578063f8ccbf471461025f575f80fd5b806347ae49e71461009f578063522c441d1461013157806358f674761461013957806365cacaa4146101795780637e8af5bd14610196575b5f80fd5b6100a7610282565b604051610128919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a08084015182169083015260c08084015182169083015260e0808401518216908301526101009283015116918101919091526101200190565b60405180910390f35b6100a7610312565b6101616101473660046107e5565b600d6020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610128565b335f908152600d60205260409020546001600160a01b0316610161565b6100a76103b3565b6100a76104b4565b6101616101b43660046107e5565b610546565b6100a7610630565b600e54600f54601054601154601254601354601454601554601654610205986001600160a01b03908116988116978116968116958116948116938116928116911689565b604080516001600160a01b039a8b168152988a1660208a01529689169688019690965293871660608701529186166080860152851660a0850152841660c0840152831660e083015290911661010082015261012001610128565b600c546102729062010000900460ff1681565b6040519015158152602001610128565b61028a61078d565b5060408051610120810182525f808252735425890298aed601595a70ab815c96711a31bc656020830152739cfcc1b289e59fbe1e769f020c77315df847376092820192909252606081018290526080810182905260a0810182905260c0810191909152738b9b2af4afb389b4a70a474dfd4adcd4a302bb4060e0820152604d61010082015290565b61031a61078d565b50604080516101208101825273c558dbdd856501fcd9aaf1e62eae57a9f0629a3c81527394a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c860208201525f91810182905273e3e0106227181958abfba960c13d0fe52c73326560608201526080810182905260a0810182905260c0810191909152736ae43d3271ff6888e7fc43fd7321a503ff73895160e0820152604d61010082015290565b6103bb61078d565b506040805161012081018252731df462e2712496373a347f8ad10802a5e95f053d81527375faf114eafb1bdbe2f0316df893fd58ce46aa4d602082015273460b97bd498e1157530aeb3086301d5225b912169181019190915273fb4561c6aff45c00ee0d2ef33d058e2f96959f0f606082015273248ab79bbb9bc29bb72f7cd42f17e054fc40188e608082015273101f443b4d1b059569d643917553c771e1b9663e60a0820152732779a0cc1c3e0e44d2542ec3e79e3864ae93ef0b60c082015273bfc91d59fdaa134a4ed45f7b584caf96d7792eff60e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b6104bc61078d565b6104fa6040518060400160405280601881526020017f54657374696e67204f6e20416e76696c204e6574776f726b0000000000000000815250610724565b5060408051610120810182525f80825260016020830152918101829052606081019190915260026080820152600360a0820152600660c0820152600760e0820152604d61010082015290565b6016546015546011546013546012546040515f95869588956001600160a01b03928316959183169490831693918316921690610581906107d8565b6001600160a01b0396871681529486166020860152928516604085015290841660608401528316608083015290911660a082015260c001604051809103905ff0801580156105d1573d5f803e3d5ffd5b506001600160a01b038481165f818152600d602052604080822080546001600160a01b031916948616948517905551939450919290917f5d9c31ffa0fecffd7cf379989a3c7af252f0335e0d2a1320b55245912c781f5391a392915050565b61063861078d565b5060408051610120810182526006602160991b01815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b610767816040516024016107389190610812565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261076a565b50565b610767815f6a636f6e736f6c652e6c6f6790505f80835160208501845afa505050565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b6142828061085f83390190565b5f602082840312156107f5575f80fd5b81356001600160a01b038116811461080b575f80fd5b9392505050565b5f602080835283518060208501525f5b8181101561083e57858101830151858201604001528201610822565b505f604082860101526040601f19601f830116850101925050509291505056fe60c060405234801562000010575f80fd5b506040516200428238038062004282833981016040819052620000339162000135565b83838383896001600160a01b0381166200006657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007181620000ca565b50600180546001600160a01b039586166001600160a01b0319918216179091556002805494861694821694909417909355908316608052821660a052600380549790921696169590951790945550620001b29350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811462000130575f80fd5b919050565b5f805f805f8060c087890312156200014b575f80fd5b620001568762000119565b9550620001666020880162000119565b9450620001766040880162000119565b9350620001866060880162000119565b9250620001966080880162000119565b9150620001a660a0880162000119565b90509295509295509295565b60805160a051614084620001fe5f395f81816102ac0152818161057701528181612488015261283b01525f818161026d01528181611ccb01528181611d900152611e3001526140845ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c8063a03e4bc3116100bf578063dc06618011610079578063dc06618014610363578063e6e1bdec146103dc578063e8f6daa9146103e4578063f04f2707146103f7578063f2fde38b1461040a578063f5ff5c761461041d575f80fd5b8063a03e4bc3146102f1578063a1db978214610304578063aab7647914610317578063bcf685ed1461032a578063c7d716d71461033d578063ca11615e14610350575f80fd5b8063604e370611610110578063604e370614610207578063715018a614610260578063735de9f7146102685780638bdb2afa146102a75780638da5cb5b146102ce57806397feb926146102de575f80fd5b80630c5443791461014c57806321db8240146101615780634a0de08f1461019b578063592bac55146101d35780635d631152146101f4575b5f80fd5b61015f61015a3660046134a9565b610430565b005b6101696104e8565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0015b60405180910390f35b6101ae6101a9366004613522565b610571565b604080516001600160801b039094168452602084019290925290820152606001610192565b6101e66101e136600461356a565b6107ad565b604051908152602001610192565b61015f610202366004613626565b6108a1565b61021a61021536600461367c565b610b13565b604051610192919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b61015f610ba1565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610192565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661028f565b61015f6102ec366004613697565b610bb4565b60015461028f906001600160a01b031681565b61015f610312366004613697565b610d9b565b6101e6610325366004613626565b610f86565b61015f61033836600461367c565b6112a0565b61015f61034b3660046136cf565b6112ca565b61015f61035e366004613779565b611626565b6103aa61037136600461367c565b600460208190525f9182526040909120805460018201546002830154600384015493909401546001600160a01b03909216939092909185565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a001610192565b6101e66117eb565b60025461028f906001600160a01b031681565b61015f61040536600461382b565b61185a565b61015f61041836600461367c565b611aea565b60035461028f906001600160a01b031681565b6003546001600160a01b031633148061045257505f546001600160a01b031633145b6104775760405162461bcd60e51b815260040161046e9061392d565b60405180910390fd5b8060045f855f8151811061048d5761048d61395a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206001015410156104d65760405162461bcd60e51b815260040161046e9061396e565b6104e284848484611b27565b50505050565b600154604051632fe4a15f60e21b81523060048201525f91829182918291829182916001600160a01b039091169063bf92857c9060240160c060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e919061399c565b949b939a50919850965094509092509050565b5f805f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828888886040518463ffffffff1660e01b81526004016105c5939291906139e2565b602060405180830381865afa1580156105e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106049190613a0a565b90506001600160a01b03811661062c5760405162461bcd60e51b815260040161046e90613a25565b5f80876001600160a01b0316896001600160a01b03161061064e578789610651565b88885b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b79190613a71565b5050505050915091505f6064826106ce9190613b12565b90505f6106dc836064613b3d565b6040516bffffffffffffffffffffffff193060601b16602082015260e884811b603483015282901b60378201529091506001600160a01b0388169063514ea4bf90603a01604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161075491815260200190565b60a060405180830381865afa15801561076f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107939190613b78565b50929c50909a509850505050505050505093509350939050565b6003545f906001600160a01b03163314806107d157505f546001600160a01b031633145b6107ed5760405162461bcd60e51b815260040161046e9061392d565b6001600160a01b0385165f908152600460205260409020600101548311156108275760405162461bcd60e51b815260040161046e9061396e565b610835858585600186611ca5565b6001600160a01b0386165f90815260046020526040812060010180549293508592909190610864908490613bcb565b90915550506001600160a01b0384165f9081526004602052604081206001018054839290610893908490613bde565b909155509095945050505050565b6003546001600160a01b03163314806108c357505f546001600160a01b031633145b6108df5760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015283519084012083907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b1832914801590610977575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561099757806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0383165f908152600460205260409020600101548211156109d15760405162461bcd60e51b815260040161046e9061396e565b6040805180820190915260048152636161766560e01b6020918201528451908501207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701610a5857610a238383611e88565b6001600160a01b0383165f9081526004602052604081206002018054849290610a4d908490613bde565b90915550610ade9050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528451908501207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201610ade57610aae8383612006565b6001600160a01b0383165f9081526004602052604081206003018054849290610ad8908490613bde565b90915550505b6001600160a01b0383165f9081526004602052604081206001018054849290610b08908490613bcb565b909155505050505050565b610b496040518060a001604052805f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b039081165f90815260046020818152604092839020835160a08101855281549095168552600181015491850191909152600281015492840192909252600382015460608401520154608082015290565b610ba9612170565b610bb25f61219c565b565b610bbc612170565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610c06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2a9190613c46565b1015610c715760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015260640161046e565b6040516323b872dd60e01b8152336004820152306024820152604481018290525f906001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610cc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce79190613c5d565b905080610d285760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610d52908490613bde565b90915550506040518281526001600160a01b038416907fab79632de7fe1724598ce2214eaa326d90d48064d2d3397406ecc5769316a5f6906020015b60405180910390a2505050565b610da3612170565b6001600160a01b0382165f90815260046020526040902060010154811115610ddd5760405162461bcd60e51b815260040161046e9061396e565b816001600160a01b031663095ea7b3610dfd5f546001600160a01b031690565b836040518363ffffffff1660e01b8152600401610e1b929190613c76565b6020604051808303815f875af1158015610e37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5b9190613c5d565b505f826001600160a01b031663a9059cbb610e7d5f546001600160a01b031690565b846040518363ffffffff1660e01b8152600401610e9b929190613c76565b6020604051808303815f875af1158015610eb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edb9190613c5d565b905080610f1c5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610f46908490613bcb565b90915550506040518281526001600160a01b038416907f7e2c99819371db0a6fc6f4269fe872496e44f502df19ba3eae594b7a1598746090602001610d8e565b6003545f906001600160a01b0316331480610faa57505f546001600160a01b031633145b610fc65760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015284519085012084907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b183291480159061105e575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561107e57806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260048152636161766560e01b6020918201528551908601207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701611174576001600160a01b0384165f908152600460205260409020600201548311156111305760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61113a84846121eb565b6001600160a01b0385165f90815260046020526040812060020180549294508592909190611169908490613bcb565b909155506112699050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528551908601207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201611269576001600160a01b0384165f9081526004602052604090206003015483111561122a5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61123484846122d8565b6001600160a01b0385165f90815260046020526040812060030180549294508592909190611263908490613bcb565b90915550505b6001600160a01b0384165f9081526004602052604081206001018054849290611293908490613bde565b9091555050509392505050565b6112a8612170565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314806112ec57505f546001600160a01b031633145b6113085760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015288519089012088907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e7132148015906113a457506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b156113c457806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0388165f9081526004602052604090206001015486111561142e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e300000000000604482015260640161046e565b6001600160a01b0387165f908152600460205260409020600101548511156114985760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e310000000000604482015260640161046e565b6040805180820190915260078152660756e69737761760cc1b6020918201528951908a01207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece01611557576114f288888888888888612484565b506001600160a01b0388165f908152600460208190526040822001805488929061151d908490613bde565b90915550506001600160a01b0387165f908152600460208190526040822001805487929061154c908490613bde565b909155506115bd9050565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528951908a01207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016115bd576040516305fcd0f760e01b815260040160405180910390fd5b6001600160a01b0388165f90815260046020526040812060010180548892906115e7908490613bcb565b90915550506001600160a01b0387165f9081526004602052604081206001018054879290611616908490613bcb565b9091555050505050505050505050565b6003546001600160a01b031633148061164857505f546001600160a01b031633145b6116645760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015284519085012084907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e71321480159061170057506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b1561172057806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260078152660756e69737761760cc1b6020918201528551908601207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece0161177e576117798484610bb885612822565b6117e4565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528551908601207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016117e4576040516305fcd0f760e01b815260040160405180910390fd5b5050505050565b6002546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611831573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118559190613c46565b905090565b3373ba12222222228d8ba445958a75a0704d566bf2c8146118c75760405162461bcd60e51b815260206004820152602160248201527f556e617574686f72697a65643a204f6e6c792042616c616e636572205661756c6044820152601d60fa1b606482015260840161046e565b5f818060200190518101906118dc9190613cf4565b90505f845f815181106118f1576118f161395a565b60200260200101519050611964825f01515f815181106119135761191361395a565b602002602001015183602001515f815181106119315761193161395a565b60200260200101518385602001516001815181106119515761195161395a565b60200260200101515f8760400151612b01565b611a56825f015160018151811061197d5761197d61395a565b6020026020010151836020015160018151811061199c5761199c61395a565b602002602001015184602001516001815181106119bb576119bb61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2d9190613c46565b85602001515f81518110611a4357611a4361395a565b6020026020010151858760400151612b01565b81602001515f81518110611a6c57611a6c61395a565b60200260200101516001600160a01b031663a9059cbb30836040518363ffffffff1660e01b8152600401611aa1929190613c76565b6020604051808303815f875af1158015611abd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae19190613c5d565b50505050505050565b611af2612170565b6001600160a01b038116611b1b57604051631e4fbdf760e01b81525f600482015260240161046e565b611b248161219c565b50565b5f60405180606001604052808681526020018581526020018462ffffff168152509050611bb3815f01515f81518110611b6257611b6261395a565b602002602001015182602001515f81518110611b8057611b8061395a565b6020026020010151848460200151600181518110611ba057611ba061395a565b60200260200101515f8660400151612b01565b6117e4815f0151600181518110611bcc57611bcc61395a565b60200260200101518260200151600181518110611beb57611beb61395a565b60200260200101518360200151600181518110611c0a57611c0a61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611c58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7c9190613c46565b84602001515f81518110611c9257611c9261395a565b6020026020010151868660400151612b01565b60405163095ea7b360e01b81525f906001600160a01b0387169063095ea7b390611cf5907f0000000000000000000000000000000000000000000000000000000000000000908890600401613c76565b6020604051808303815f875af1158015611d11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d359190613c5d565b5060408051610100810182526001600160a01b038089168252878116602083015262ffffff85168284015230606083015242608083015260a0820187905260c082018690525f60e0830152915163414bf38960e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063414bf38990611dc5908490600401613dac565b6020604051808303815f875af1158015611de1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e059190613c46565b604080516001600160a01b038a811682528981166020830152918101889052606081018390529193507f000000000000000000000000000000000000000000000000000000000000000016907fad56699d0f375866eb895ed27203058a36a713382aaded78eb6b67da266d43329060800160405180910390a25095945050505050565b60015460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b392611ebc9216908690600401613c76565b6020604051808303815f875af1158015611ed8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efc9190613c5d565b905080611f5b5760405162461bcd60e51b815260206004820152602760248201527f417070726f76616c206f6620617373657420696e746f204161766520706f6f6c6044820152660819985a5b195960ca1b606482015260840161046e565b60015460405163617ba03760e01b81526001600160a01b038581166004830152602482018590523060448301525f60648301529091169063617ba037906084015f604051808303815f87803b158015611fb2575f80fd5b505af1158015611fc4573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e15565b60405180910390a1505050565b60025460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b39261203a9216908690600401613c76565b6020604051808303815f875af1158015612056573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207a9190613c5d565b9050806120d85760405162461bcd60e51b815260206004820152602660248201527f417070726f76616c206f6620617373657420696e746f20436f6d706f756e642060448201526519985a5b195960d21b606482015260840161046e565b600254604051634232cd6360e01b81523060048201526001600160a01b0385811660248301526044820185905290911690634232cd63906064015f604051808303815f87803b158015612129575f80fd5b505af115801561213b573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e49565b5f546001600160a01b03163314610bb25760405163118cdaa760e01b815233600482015260240161046e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f806121f56104e8565b505050505090508281101561221c5760405162461bcd60e51b815260040161046e90613e81565b600154604051631a4ca37b60e21b81526001600160a01b03868116600483015260248201869052306044830152909116906369328dec906064016020604051808303815f875af1158015612272573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122969190613c46565b91507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b584846040516122c9929190613e15565b60405180910390a15092915050565b5f806122e26117eb565b9050828110156123045760405162461bcd60e51b815260040161046e90613e81565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015612348573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236c9190613c46565b60025460405163f3fef3a360e01b81529192506001600160a01b03169063f3fef3a39061239f9088908890600401613c76565b5f604051808303815f87803b1580156123b6575f80fd5b505af11580156123c8573d5f803e3d5ffd5b50506040516370a0823160e01b81523060048201525f92506001600160a01b03881691506370a0823190602401602060405180830381865afa158015612410573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124349190613c46565b90506124408282613bcb565b93507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b58685604051612473929190613e49565b60405180910390a150505092915050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828a8a886040518463ffffffff1660e01b81526004016124d6939291906139e2565b602060405180830381865afa1580156124f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125159190613a0a565b90506001600160a01b03811661253d5760405162461bcd60e51b815260040161046e90613a25565b5f80896001600160a01b03168b6001600160a01b03161061255f57898b612562565b8a8a5b915091505f826001600160a01b03168c6001600160a01b0316146125865788612588565b895b90505f836001600160a01b03168d6001600160a01b0316146125aa578a6125ac565b895b60405163095ea7b360e01b81529091506001600160a01b0385169063095ea7b3906125dd9088908690600401613c76565b6020604051808303815f875af11580156125f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261d9190613c5d565b5060405163095ea7b360e01b81526001600160a01b0384169063095ea7b39061264c9088908590600401613c76565b6020604051808303815f875af1158015612668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061268c9190613c5d565b505f856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156126ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126ee9190613a71565b50505050505090505f6127008a612c7b565b90505f61270c8a612c7b565b905061271b83838388886130b6565b98505f80896001600160a01b0316633c8a7d8d308f8f8f3060405160200161275291906001600160a01b0391909116815260200190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612781959493929190613ec3565b60408051808303815f875af115801561279c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127c09190613f0f565b91509150896001600160a01b03167fce0669c03a6bebf1a7a80046c110092cafdff0bb527ff2e4ea213faf8f07cf118a8a8e8686604051612805959493929190613f31565b60405180910390a250505050505050505050979650505050505050565b604051630b4c774160e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631698ee8290612874908890889088906004016139e2565b602060405180830381865afa15801561288f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128b39190613a0a565b90506001600160a01b0381166128db5760405162461bcd60e51b815260040161046e90613a25565b5f80856001600160a01b0316876001600160a01b0316106128fd578587612900565b86865b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612942573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129669190613a71565b5050505050915091505f60648261297d9190613b12565b90505f61298b836064613b3d565b60405163a34123a760e01b8152600284810b600483015282900b60248201526001600160801b038a1660448201529091505f9081906001600160a01b038a169063a34123a79060640160408051808303815f875af11580156129ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a139190613f0f565b6040516309e3d67b60e31b8152306004820152600287810b602483015286900b60448201526001600160801b0380841660648301528216608482015291935091506001600160a01b038a1690634f1eb3d89060a40160408051808303815f875af1158015612a83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aa79190613f6b565b5050886001600160a01b03167ff0c5c8e0b584b9430fbe397d62831fc7eca3e734a39a08659847de97469501de89898d8686604051612aea959493929190613f31565b60405180910390a250505050505050505050505050565b60405163095ea7b360e01b81526001600160a01b0386169063095ea7b390612b2f9089908890600401613c76565b6020604051808303815f875af1158015612b4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6f9190613c5d565b5060408051610100810182526001600160a01b038088168252858116602083015262ffffff84168284015230606083015242608083015260a0820187905260c082018590525f60e0830152915163414bf38960e01b8152909188169063414bf38990612bdf908490600401613dac565b6020604051808303815f875af1158015612bfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1f9190613c46565b50604080516001600160a01b03808916825286166020820152908101869052606081018490527f25f1d03755df23c30e25db2dbd3891e31ce084bdfbfc46f9fe5e446ee5f9b2d49060800160405180910390a150505050505050565b5f620d89e719600283900b12801590612ca65750612c9c620d89e719613f9c565b60020b8260020b13155b612ce15760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964207469636b60a01b604482015260640161046e565b5f808360020b12612cf5578260020b612d02565b8260020b612d0290613fbc565b90505f816001165f03612d1957600160801b612d2b565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612d6a576080612d65826ffff97272373d413259a46990580e213a613fd6565b901c90505b6004821615612d94576080612d8f826ffff2e50f5f656932ef12357cf3c7fdcc613fd6565b901c90505b6008821615612dbe576080612db9826fffe5caca7e10e4e61c3624eaa0941cd0613fd6565b901c90505b6010821615612de8576080612de3826fffcb9843d60f6159c9db58835c926644613fd6565b901c90505b6020821615612e12576080612e0d826fff973b41fa98c081472e6896dfb254c0613fd6565b901c90505b6040821615612e3c576080612e37826fff2ea16466c96a3843ec78b326b52861613fd6565b901c90505b6080821615612e66576080612e61826ffe5dee046a99a2a811c461f1969c3053613fd6565b901c90505b610100821615612e91576080612e8c826ffcbe86c7900a88aedcffc83b479aa3a4613fd6565b901c90505b610200821615612ebc576080612eb7826ff987a7253ac413176f2b074cf7815e54613fd6565b901c90505b610400821615612ee7576080612ee2826ff3392b0822b70005940c7a398e4b70f3613fd6565b901c90505b610800821615612f12576080612f0d826fe7159475a2c29b7443b29c7fa6e889d9613fd6565b901c90505b611000821615612f3d576080612f38826fd097f3bdfd2022b8845ad8f792aa5825613fd6565b901c90505b612000821615612f68576080612f63826fa9f746462d870fdf8a65dc1f90e061e5613fd6565b901c90505b614000821615612f93576080612f8e826f70d869a156d2a1b890bb3df62baf32f7613fd6565b901c90505b618000821615612fbe576080612fb9826f31be135f97d08fd981231505542fcfa6613fd6565b901c90505b62010000821615612fea576080612fe5826f09aa508b5b7a84e1c677de54f3e99bc9613fd6565b901c90505b62020000821615613015576080613010826e5d6af8dedb81196699c329225ee604613fd6565b901c90505b6204000082161561303f57608061303a826d2216e584f5fa1ea926041bedfe98613fd6565b901c90505b62080000821615613067576080613062826b048a170391f7dc42444e8fa2613fd6565b901c90505b5f8460020b13156130805761307d815f19614001565b90505b61308f64010000000082614014565b1561309b57600161309d565b5f5b6130ae9060ff16602083901c613bde565b949350505050565b5f836001600160a01b0316856001600160a01b031611156130d5579293925b846001600160a01b0316866001600160a01b031611613100576130f9858585613177565b905061316e565b836001600160a01b0316866001600160a01b03161015613160575f613126878686613177565b90505f6131348789866131ea565b9050806001600160801b0316826001600160801b0316106131555780613157565b815b9250505061316e565b61316b8585846131ea565b90505b95945050505050565b5f826001600160a01b0316846001600160a01b03161115613196579192915b5f6131b8856001600160a01b0316856001600160a01b0316600160601b61321f565b90506131df6131da84836131cc8989614027565b6001600160a01b031661321f565b61338e565b9150505b9392505050565b5f826001600160a01b0316846001600160a01b03161115613209579192915b6130ae6131da83600160601b6131cc8888614027565b5f80805f19858709858702925082811083820303915050805f03613253575f8411613248575f80fd5b5082900490506131e3565b80841161325e575f80fd5b5f848688098084039381119092039190505f61327c86196001613bde565b8616958690049593849004935f81900304600101905061329c8184613fd6565b909317925f6132ac876003613fd6565b60021890506132bb8188613fd6565b6132c6906002613bcb565b6132d09082613fd6565b90506132dc8188613fd6565b6132e7906002613bcb565b6132f19082613fd6565b90506132fd8188613fd6565b613308906002613bcb565b6133129082613fd6565b905061331e8188613fd6565b613329906002613bcb565b6133339082613fd6565b905061333f8188613fd6565b61334a906002613bcb565b6133549082613fd6565b90506133608188613fd6565b61336b906002613bcb565b6133759082613fd6565b90506133818186613fd6565b9998505050505050505050565b806001600160801b03811681146133a3575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133e5576133e56133a8565b604052919050565b5f67ffffffffffffffff821115613406576134066133a8565b5060051b60200190565b6001600160a01b0381168114611b24575f80fd5b5f82601f830112613433575f80fd5b81356020613448613443836133ed565b6133bc565b8083825260208201915060208460051b870101935086841115613469575f80fd5b602086015b8481101561348e57803561348181613410565b835291830191830161346e565b509695505050505050565b62ffffff81168114611b24575f80fd5b5f805f80608085870312156134bc575f80fd5b843567ffffffffffffffff808211156134d3575f80fd5b6134df88838901613424565b955060208701359150808211156134f4575f80fd5b5061350187828801613424565b935050604085013561351281613499565b9396929550929360600135925050565b5f805f60608486031215613534575f80fd5b833561353f81613410565b9250602084013561354f81613410565b9150604084013561355f81613499565b809150509250925092565b5f805f806080858703121561357d575f80fd5b843561358881613410565b9350602085013561359881613410565b92506040850135915060608501356135af81613499565b939692955090935050565b5f82601f8301126135c9575f80fd5b813567ffffffffffffffff8111156135e3576135e36133a8565b6135f6601f8201601f19166020016133bc565b81815284602083860101111561360a575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215613638575f80fd5b833567ffffffffffffffff81111561364e575f80fd5b61365a868287016135ba565b935050602084013561366b81613410565b929592945050506040919091013590565b5f6020828403121561368c575f80fd5b81356131e381613410565b5f80604083850312156136a8575f80fd5b82356136b381613410565b946020939093013593505050565b8060020b8114611b24575f80fd5b5f805f805f805f80610100898b0312156136e7575f80fd5b883567ffffffffffffffff8111156136fd575f80fd5b6137098b828c016135ba565b985050602089013561371a81613410565b9650604089013561372a81613410565b9550606089013594506080890135935060a089013561374881613499565b925060c0890135613758816136c1565b915060e0890135613768816136c1565b809150509295985092959890939650565b5f805f806080858703121561378c575f80fd5b843567ffffffffffffffff8111156137a2575f80fd5b6137ae878288016135ba565b94505060208501356137bf81613410565b9250604085013561351281613410565b5f82601f8301126137de575f80fd5b813560206137ee613443836133ed565b8083825260208201915060208460051b87010193508684111561380f575f80fd5b602086015b8481101561348e5780358352918301918301613814565b5f805f806080858703121561383e575f80fd5b843567ffffffffffffffff80821115613855575f80fd5b818701915087601f830112613868575f80fd5b81356020613878613443836133ed565b82815260059290921b8401810191818101908b841115613896575f80fd5b948201945b838610156138bd5785356138ae81613410565b8252948201949082019061389b565b985050880135925050808211156138d2575f80fd5b6138de888389016137cf565b945060408701359150808211156138f3575f80fd5b6138ff888389016137cf565b93506060870135915080821115613914575f80fd5b50613921878288016135ba565b91505092959194509250565b60208082526013908201527227b7363c9030b3b2b73a1037b91037bbb732b960691b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b5f805f805f8060c087890312156139b1575f80fd5b865195506020870151945060408701519350606087015192506080870151915060a087015190509295509295509295565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b5f60208284031215613a1a575f80fd5b81516131e381613410565b602080825260129082015271141bdbdb08191bd95cdb89dd08195e1a5cdd60721b604082015260600190565b805161ffff811681146133a3575f80fd5b805180151581146133a3575f80fd5b5f805f805f805f60e0888a031215613a87575f80fd5b8751613a9281613410565b6020890151909750613aa3816136c1565b9550613ab160408901613a51565b9450613abf60608901613a51565b9350613acd60808901613a51565b925060a088015160ff81168114613ae2575f80fd5b9150613af060c08901613a62565b905092959891949750929550565b634e487b7160e01b5f52601160045260245ffd5b600282810b9082900b03627fffff198112627fffff82131715613b3757613b37613afe565b92915050565b600281810b9083900b01627fffff8113627fffff1982121715613b3757613b37613afe565b80516001600160801b03811681146133a3575f80fd5b5f805f805f60a08688031215613b8c575f80fd5b613b9586613b62565b94506020860151935060408601519250613bb160608701613b62565b9150613bbf60808701613b62565b90509295509295909350565b81810381811115613b3757613b37613afe565b80820180821115613b3757613b37613afe565b5f81518084525f5b81811015613c1557602081850181015186830182015201613bf9565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6131e36020830184613bf1565b5f60208284031215613c56575f80fd5b5051919050565b5f60208284031215613c6d575f80fd5b6131e382613a62565b6001600160a01b03929092168252602082015260400190565b5f82601f830112613c9e575f80fd5b81516020613cae613443836133ed565b8083825260208201915060208460051b870101935086841115613ccf575f80fd5b602086015b8481101561348e578051613ce781613410565b8352918301918301613cd4565b5f60208284031215613d04575f80fd5b815167ffffffffffffffff80821115613d1b575f80fd5b9083019060608286031215613d2e575f80fd5b604051606081018181108382111715613d4957613d496133a8565b604052825182811115613d5a575f80fd5b613d6687828601613c8f565b825250602083015182811115613d7a575f80fd5b613d8687828601613c8f565b60208301525060408301519250613d9c83613499565b6040810192909252509392505050565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0838101519083015260c0808401519083015260e09283015116918101919091526101000190565b6060808252600490820152634161766560e01b60808201526001600160a01b03929092166020830152604082015260a00190565b60608082526008908201526710dbdb5c1bdd5b9960c21b60808201526001600160a01b03929092166020830152604082015260a00190565b60208082526022908201527f43616e6e6f74207769746864726177206d6f7265207468616e20626f72726f77604082015261195960f21b606082015260800190565b60018060a01b03861681528460020b60208201528360020b60408201526001600160801b038316606082015260a060808201525f613f0460a0830184613bf1565b979650505050505050565b5f8060408385031215613f20575f80fd5b505080516020909101519092909150565b6001600160a01b0395861681529390941660208401526001600160801b039190911660408301526060820152608081019190915260a00190565b5f8060408385031215613f7c575f80fd5b613f8583613b62565b9150613f9360208401613b62565b90509250929050565b5f8160020b627fffff198103613fb457613fb4613afe565b5f0392915050565b5f600160ff1b8201613fd057613fd0613afe565b505f0390565b8082028115828204841417613b3757613b37613afe565b634e487b7160e01b5f52601260045260245ffd5b5f8261400f5761400f613fed565b500490565b5f8261402257614022613fed565b500690565b6001600160a01b0382811682821603908082111561404757614047613afe565b509291505056fea26469706673582212202e954e0c1c84544b0d3b88ad8f9d5c1feff61dee33e04446365814cc9aba2d5b64736f6c63430008160033a2646970667358221220d81b44da4713734a4b51907fa4a37a5f14757a7bbc90dbd52fad45150e75c70164736f6c63430008160033", + "nonce": "0x1f0", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf0505c", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x7784291a8697ad1db60bc42d1e0818ba80c05a8904156d85f2bb3d1c5fd1849a", + "transactionIndex": "0x1b", + "blockHash": "0xc3f8909ce928a4701bee3096caa08dbeff9fde69ee01c3d4a69bdea56aadc8fa", + "blockNumber": "0x14aafef", + "gasUsed": "0x43b261", + "effectiveGasPrice": "0x61bb0", + "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", + "to": null, + "contractAddress": "0xc44f47570da8ccab36e2407fde13800c397cb686", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x2b6aa323c7f", + "l1GasPrice": "0x4109f36b9", + "l1GasUsed": "0x25e4f" + } + ], + "libraries": [], + "pending": [], + "returns": { + "0": { + "internal_type": "contract VaultFactory", + "value": "0xc44f47570dA8Ccab36e2407fDE13800c397cB686" + } + }, + "timestamp": 1739112162, + "chain": 84532, + "commit": "bf3b81b" +} \ No newline at end of file diff --git a/broadcast/DeployVaultFactory.s.sol/84532/run-1739112252.json b/broadcast/DeployVaultFactory.s.sol/84532/run-1739112252.json new file mode 100644 index 0000000..9ab011c --- /dev/null +++ b/broadcast/DeployVaultFactory.s.sol/84532/run-1739112252.json @@ -0,0 +1,57 @@ +{ + "transactions": [ + { + "hash": "0x3688f48f9c08abe47125d839b6d2fa151b7dac03ac0051c58c94c0fa963c520e", + "transactionType": "CREATE", + "contractName": "VaultFactory", + "contractAddress": "0x99a3e04423dec42407dfed6a3d984d9a6200511d", + "function": null, + "arguments": null, + "transaction": { + "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", + "gas": "0x58017e", + "value": "0x0", + "input": "0x6080604052600c805462ff00ff191662010001179055348015610020575f80fd5b5061016560408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506040805161012081018252734200000000000000000000000000000000000006815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b8051600e80546001600160a01b03199081166001600160a01b03938416179091556020830151600f8054831691841691909117905560408301516010805483169184169190911790556060830151601180548316918416919091179055608083015160128054831691841691909117905560a083015160138054831691841691909117905560c083015160148054831691841691909117905560e083015160158054831691841691909117905561010090920151601680549093169116179055614b16806102325f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063989e6fd911610063578063989e6fd91461019e578063b4bd6f46146101a6578063d1a43bda146101b9578063d7b65745146101c1578063f8ccbf471461025f575f80fd5b806347ae49e71461009f578063522c441d1461013157806358f674761461013957806365cacaa4146101795780637e8af5bd14610196575b5f80fd5b6100a7610282565b604051610128919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a08084015182169083015260c08084015182169083015260e0808401518216908301526101009283015116918101919091526101200190565b60405180910390f35b6100a7610312565b6101616101473660046107e5565b600d6020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610128565b335f908152600d60205260409020546001600160a01b0316610161565b6100a76103b3565b6100a76104b4565b6101616101b43660046107e5565b610546565b6100a7610630565b600e54600f54601054601154601254601354601454601554601654610205986001600160a01b03908116988116978116968116958116948116938116928116911689565b604080516001600160a01b039a8b168152988a1660208a01529689169688019690965293871660608701529186166080860152851660a0850152841660c0840152831660e083015290911661010082015261012001610128565b600c546102729062010000900460ff1681565b6040519015158152602001610128565b61028a61078d565b5060408051610120810182525f808252735425890298aed601595a70ab815c96711a31bc656020830152739cfcc1b289e59fbe1e769f020c77315df847376092820192909252606081018290526080810182905260a0810182905260c0810191909152738b9b2af4afb389b4a70a474dfd4adcd4a302bb4060e0820152604d61010082015290565b61031a61078d565b50604080516101208101825273c558dbdd856501fcd9aaf1e62eae57a9f0629a3c81527394a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c860208201525f91810182905273e3e0106227181958abfba960c13d0fe52c73326560608201526080810182905260a0810182905260c0810191909152736ae43d3271ff6888e7fc43fd7321a503ff73895160e0820152604d61010082015290565b6103bb61078d565b506040805161012081018252731df462e2712496373a347f8ad10802a5e95f053d81527375faf114eafb1bdbe2f0316df893fd58ce46aa4d602082015273460b97bd498e1157530aeb3086301d5225b912169181019190915273fb4561c6aff45c00ee0d2ef33d058e2f96959f0f606082015273248ab79bbb9bc29bb72f7cd42f17e054fc40188e608082015273101f443b4d1b059569d643917553c771e1b9663e60a0820152732779a0cc1c3e0e44d2542ec3e79e3864ae93ef0b60c082015273bfc91d59fdaa134a4ed45f7b584caf96d7792eff60e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b6104bc61078d565b6104fa6040518060400160405280601881526020017f54657374696e67204f6e20416e76696c204e6574776f726b0000000000000000815250610724565b5060408051610120810182525f80825260016020830152918101829052606081019190915260026080820152600360a0820152600660c0820152600760e0820152604d61010082015290565b6016546015546011546013546012546040515f95869588956001600160a01b03928316959183169490831693918316921690610581906107d8565b6001600160a01b0396871681529486166020860152928516604085015290841660608401528316608083015290911660a082015260c001604051809103905ff0801580156105d1573d5f803e3d5ffd5b506001600160a01b038481165f818152600d602052604080822080546001600160a01b031916948616948517905551939450919290917f5d9c31ffa0fecffd7cf379989a3c7af252f0335e0d2a1320b55245912c781f5391a392915050565b61063861078d565b5060408051610120810182526006602160991b01815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b610767816040516024016107389190610812565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261076a565b50565b610767815f6a636f6e736f6c652e6c6f6790505f80835160208501845afa505050565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b6142828061085f83390190565b5f602082840312156107f5575f80fd5b81356001600160a01b038116811461080b575f80fd5b9392505050565b5f602080835283518060208501525f5b8181101561083e57858101830151858201604001528201610822565b505f604082860101526040601f19601f830116850101925050509291505056fe60c060405234801562000010575f80fd5b506040516200428238038062004282833981016040819052620000339162000135565b83838383896001600160a01b0381166200006657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007181620000ca565b50600180546001600160a01b039586166001600160a01b0319918216179091556002805494861694821694909417909355908316608052821660a052600380549790921696169590951790945550620001b29350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811462000130575f80fd5b919050565b5f805f805f8060c087890312156200014b575f80fd5b620001568762000119565b9550620001666020880162000119565b9450620001766040880162000119565b9350620001866060880162000119565b9250620001966080880162000119565b9150620001a660a0880162000119565b90509295509295509295565b60805160a051614084620001fe5f395f81816102ac0152818161057701528181612488015261283b01525f818161026d01528181611ccb01528181611d900152611e3001526140845ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c8063a03e4bc3116100bf578063dc06618011610079578063dc06618014610363578063e6e1bdec146103dc578063e8f6daa9146103e4578063f04f2707146103f7578063f2fde38b1461040a578063f5ff5c761461041d575f80fd5b8063a03e4bc3146102f1578063a1db978214610304578063aab7647914610317578063bcf685ed1461032a578063c7d716d71461033d578063ca11615e14610350575f80fd5b8063604e370611610110578063604e370614610207578063715018a614610260578063735de9f7146102685780638bdb2afa146102a75780638da5cb5b146102ce57806397feb926146102de575f80fd5b80630c5443791461014c57806321db8240146101615780634a0de08f1461019b578063592bac55146101d35780635d631152146101f4575b5f80fd5b61015f61015a3660046134a9565b610430565b005b6101696104e8565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0015b60405180910390f35b6101ae6101a9366004613522565b610571565b604080516001600160801b039094168452602084019290925290820152606001610192565b6101e66101e136600461356a565b6107ad565b604051908152602001610192565b61015f610202366004613626565b6108a1565b61021a61021536600461367c565b610b13565b604051610192919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b61015f610ba1565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610192565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661028f565b61015f6102ec366004613697565b610bb4565b60015461028f906001600160a01b031681565b61015f610312366004613697565b610d9b565b6101e6610325366004613626565b610f86565b61015f61033836600461367c565b6112a0565b61015f61034b3660046136cf565b6112ca565b61015f61035e366004613779565b611626565b6103aa61037136600461367c565b600460208190525f9182526040909120805460018201546002830154600384015493909401546001600160a01b03909216939092909185565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a001610192565b6101e66117eb565b60025461028f906001600160a01b031681565b61015f61040536600461382b565b61185a565b61015f61041836600461367c565b611aea565b60035461028f906001600160a01b031681565b6003546001600160a01b031633148061045257505f546001600160a01b031633145b6104775760405162461bcd60e51b815260040161046e9061392d565b60405180910390fd5b8060045f855f8151811061048d5761048d61395a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206001015410156104d65760405162461bcd60e51b815260040161046e9061396e565b6104e284848484611b27565b50505050565b600154604051632fe4a15f60e21b81523060048201525f91829182918291829182916001600160a01b039091169063bf92857c9060240160c060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e919061399c565b949b939a50919850965094509092509050565b5f805f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828888886040518463ffffffff1660e01b81526004016105c5939291906139e2565b602060405180830381865afa1580156105e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106049190613a0a565b90506001600160a01b03811661062c5760405162461bcd60e51b815260040161046e90613a25565b5f80876001600160a01b0316896001600160a01b03161061064e578789610651565b88885b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b79190613a71565b5050505050915091505f6064826106ce9190613b12565b90505f6106dc836064613b3d565b6040516bffffffffffffffffffffffff193060601b16602082015260e884811b603483015282901b60378201529091506001600160a01b0388169063514ea4bf90603a01604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161075491815260200190565b60a060405180830381865afa15801561076f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107939190613b78565b50929c50909a509850505050505050505093509350939050565b6003545f906001600160a01b03163314806107d157505f546001600160a01b031633145b6107ed5760405162461bcd60e51b815260040161046e9061392d565b6001600160a01b0385165f908152600460205260409020600101548311156108275760405162461bcd60e51b815260040161046e9061396e565b610835858585600186611ca5565b6001600160a01b0386165f90815260046020526040812060010180549293508592909190610864908490613bcb565b90915550506001600160a01b0384165f9081526004602052604081206001018054839290610893908490613bde565b909155509095945050505050565b6003546001600160a01b03163314806108c357505f546001600160a01b031633145b6108df5760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015283519084012083907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b1832914801590610977575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561099757806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0383165f908152600460205260409020600101548211156109d15760405162461bcd60e51b815260040161046e9061396e565b6040805180820190915260048152636161766560e01b6020918201528451908501207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701610a5857610a238383611e88565b6001600160a01b0383165f9081526004602052604081206002018054849290610a4d908490613bde565b90915550610ade9050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528451908501207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201610ade57610aae8383612006565b6001600160a01b0383165f9081526004602052604081206003018054849290610ad8908490613bde565b90915550505b6001600160a01b0383165f9081526004602052604081206001018054849290610b08908490613bcb565b909155505050505050565b610b496040518060a001604052805f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b039081165f90815260046020818152604092839020835160a08101855281549095168552600181015491850191909152600281015492840192909252600382015460608401520154608082015290565b610ba9612170565b610bb25f61219c565b565b610bbc612170565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610c06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2a9190613c46565b1015610c715760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015260640161046e565b6040516323b872dd60e01b8152336004820152306024820152604481018290525f906001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610cc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce79190613c5d565b905080610d285760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610d52908490613bde565b90915550506040518281526001600160a01b038416907fab79632de7fe1724598ce2214eaa326d90d48064d2d3397406ecc5769316a5f6906020015b60405180910390a2505050565b610da3612170565b6001600160a01b0382165f90815260046020526040902060010154811115610ddd5760405162461bcd60e51b815260040161046e9061396e565b816001600160a01b031663095ea7b3610dfd5f546001600160a01b031690565b836040518363ffffffff1660e01b8152600401610e1b929190613c76565b6020604051808303815f875af1158015610e37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5b9190613c5d565b505f826001600160a01b031663a9059cbb610e7d5f546001600160a01b031690565b846040518363ffffffff1660e01b8152600401610e9b929190613c76565b6020604051808303815f875af1158015610eb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edb9190613c5d565b905080610f1c5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610f46908490613bcb565b90915550506040518281526001600160a01b038416907f7e2c99819371db0a6fc6f4269fe872496e44f502df19ba3eae594b7a1598746090602001610d8e565b6003545f906001600160a01b0316331480610faa57505f546001600160a01b031633145b610fc65760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015284519085012084907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b183291480159061105e575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561107e57806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260048152636161766560e01b6020918201528551908601207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701611174576001600160a01b0384165f908152600460205260409020600201548311156111305760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61113a84846121eb565b6001600160a01b0385165f90815260046020526040812060020180549294508592909190611169908490613bcb565b909155506112699050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528551908601207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201611269576001600160a01b0384165f9081526004602052604090206003015483111561122a5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61123484846122d8565b6001600160a01b0385165f90815260046020526040812060030180549294508592909190611263908490613bcb565b90915550505b6001600160a01b0384165f9081526004602052604081206001018054849290611293908490613bde565b9091555050509392505050565b6112a8612170565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314806112ec57505f546001600160a01b031633145b6113085760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015288519089012088907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e7132148015906113a457506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b156113c457806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0388165f9081526004602052604090206001015486111561142e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e300000000000604482015260640161046e565b6001600160a01b0387165f908152600460205260409020600101548511156114985760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e310000000000604482015260640161046e565b6040805180820190915260078152660756e69737761760cc1b6020918201528951908a01207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece01611557576114f288888888888888612484565b506001600160a01b0388165f908152600460208190526040822001805488929061151d908490613bde565b90915550506001600160a01b0387165f908152600460208190526040822001805487929061154c908490613bde565b909155506115bd9050565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528951908a01207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016115bd576040516305fcd0f760e01b815260040160405180910390fd5b6001600160a01b0388165f90815260046020526040812060010180548892906115e7908490613bcb565b90915550506001600160a01b0387165f9081526004602052604081206001018054879290611616908490613bcb565b9091555050505050505050505050565b6003546001600160a01b031633148061164857505f546001600160a01b031633145b6116645760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015284519085012084907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e71321480159061170057506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b1561172057806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260078152660756e69737761760cc1b6020918201528551908601207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece0161177e576117798484610bb885612822565b6117e4565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528551908601207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016117e4576040516305fcd0f760e01b815260040160405180910390fd5b5050505050565b6002546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611831573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118559190613c46565b905090565b3373ba12222222228d8ba445958a75a0704d566bf2c8146118c75760405162461bcd60e51b815260206004820152602160248201527f556e617574686f72697a65643a204f6e6c792042616c616e636572205661756c6044820152601d60fa1b606482015260840161046e565b5f818060200190518101906118dc9190613cf4565b90505f845f815181106118f1576118f161395a565b60200260200101519050611964825f01515f815181106119135761191361395a565b602002602001015183602001515f815181106119315761193161395a565b60200260200101518385602001516001815181106119515761195161395a565b60200260200101515f8760400151612b01565b611a56825f015160018151811061197d5761197d61395a565b6020026020010151836020015160018151811061199c5761199c61395a565b602002602001015184602001516001815181106119bb576119bb61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2d9190613c46565b85602001515f81518110611a4357611a4361395a565b6020026020010151858760400151612b01565b81602001515f81518110611a6c57611a6c61395a565b60200260200101516001600160a01b031663a9059cbb30836040518363ffffffff1660e01b8152600401611aa1929190613c76565b6020604051808303815f875af1158015611abd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae19190613c5d565b50505050505050565b611af2612170565b6001600160a01b038116611b1b57604051631e4fbdf760e01b81525f600482015260240161046e565b611b248161219c565b50565b5f60405180606001604052808681526020018581526020018462ffffff168152509050611bb3815f01515f81518110611b6257611b6261395a565b602002602001015182602001515f81518110611b8057611b8061395a565b6020026020010151848460200151600181518110611ba057611ba061395a565b60200260200101515f8660400151612b01565b6117e4815f0151600181518110611bcc57611bcc61395a565b60200260200101518260200151600181518110611beb57611beb61395a565b60200260200101518360200151600181518110611c0a57611c0a61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611c58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7c9190613c46565b84602001515f81518110611c9257611c9261395a565b6020026020010151868660400151612b01565b60405163095ea7b360e01b81525f906001600160a01b0387169063095ea7b390611cf5907f0000000000000000000000000000000000000000000000000000000000000000908890600401613c76565b6020604051808303815f875af1158015611d11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d359190613c5d565b5060408051610100810182526001600160a01b038089168252878116602083015262ffffff85168284015230606083015242608083015260a0820187905260c082018690525f60e0830152915163414bf38960e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063414bf38990611dc5908490600401613dac565b6020604051808303815f875af1158015611de1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e059190613c46565b604080516001600160a01b038a811682528981166020830152918101889052606081018390529193507f000000000000000000000000000000000000000000000000000000000000000016907fad56699d0f375866eb895ed27203058a36a713382aaded78eb6b67da266d43329060800160405180910390a25095945050505050565b60015460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b392611ebc9216908690600401613c76565b6020604051808303815f875af1158015611ed8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efc9190613c5d565b905080611f5b5760405162461bcd60e51b815260206004820152602760248201527f417070726f76616c206f6620617373657420696e746f204161766520706f6f6c6044820152660819985a5b195960ca1b606482015260840161046e565b60015460405163617ba03760e01b81526001600160a01b038581166004830152602482018590523060448301525f60648301529091169063617ba037906084015f604051808303815f87803b158015611fb2575f80fd5b505af1158015611fc4573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e15565b60405180910390a1505050565b60025460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b39261203a9216908690600401613c76565b6020604051808303815f875af1158015612056573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207a9190613c5d565b9050806120d85760405162461bcd60e51b815260206004820152602660248201527f417070726f76616c206f6620617373657420696e746f20436f6d706f756e642060448201526519985a5b195960d21b606482015260840161046e565b600254604051634232cd6360e01b81523060048201526001600160a01b0385811660248301526044820185905290911690634232cd63906064015f604051808303815f87803b158015612129575f80fd5b505af115801561213b573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e49565b5f546001600160a01b03163314610bb25760405163118cdaa760e01b815233600482015260240161046e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f806121f56104e8565b505050505090508281101561221c5760405162461bcd60e51b815260040161046e90613e81565b600154604051631a4ca37b60e21b81526001600160a01b03868116600483015260248201869052306044830152909116906369328dec906064016020604051808303815f875af1158015612272573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122969190613c46565b91507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b584846040516122c9929190613e15565b60405180910390a15092915050565b5f806122e26117eb565b9050828110156123045760405162461bcd60e51b815260040161046e90613e81565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015612348573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236c9190613c46565b60025460405163f3fef3a360e01b81529192506001600160a01b03169063f3fef3a39061239f9088908890600401613c76565b5f604051808303815f87803b1580156123b6575f80fd5b505af11580156123c8573d5f803e3d5ffd5b50506040516370a0823160e01b81523060048201525f92506001600160a01b03881691506370a0823190602401602060405180830381865afa158015612410573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124349190613c46565b90506124408282613bcb565b93507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b58685604051612473929190613e49565b60405180910390a150505092915050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828a8a886040518463ffffffff1660e01b81526004016124d6939291906139e2565b602060405180830381865afa1580156124f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125159190613a0a565b90506001600160a01b03811661253d5760405162461bcd60e51b815260040161046e90613a25565b5f80896001600160a01b03168b6001600160a01b03161061255f57898b612562565b8a8a5b915091505f826001600160a01b03168c6001600160a01b0316146125865788612588565b895b90505f836001600160a01b03168d6001600160a01b0316146125aa578a6125ac565b895b60405163095ea7b360e01b81529091506001600160a01b0385169063095ea7b3906125dd9088908690600401613c76565b6020604051808303815f875af11580156125f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261d9190613c5d565b5060405163095ea7b360e01b81526001600160a01b0384169063095ea7b39061264c9088908590600401613c76565b6020604051808303815f875af1158015612668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061268c9190613c5d565b505f856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156126ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126ee9190613a71565b50505050505090505f6127008a612c7b565b90505f61270c8a612c7b565b905061271b83838388886130b6565b98505f80896001600160a01b0316633c8a7d8d308f8f8f3060405160200161275291906001600160a01b0391909116815260200190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612781959493929190613ec3565b60408051808303815f875af115801561279c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127c09190613f0f565b91509150896001600160a01b03167fce0669c03a6bebf1a7a80046c110092cafdff0bb527ff2e4ea213faf8f07cf118a8a8e8686604051612805959493929190613f31565b60405180910390a250505050505050505050979650505050505050565b604051630b4c774160e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631698ee8290612874908890889088906004016139e2565b602060405180830381865afa15801561288f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128b39190613a0a565b90506001600160a01b0381166128db5760405162461bcd60e51b815260040161046e90613a25565b5f80856001600160a01b0316876001600160a01b0316106128fd578587612900565b86865b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612942573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129669190613a71565b5050505050915091505f60648261297d9190613b12565b90505f61298b836064613b3d565b60405163a34123a760e01b8152600284810b600483015282900b60248201526001600160801b038a1660448201529091505f9081906001600160a01b038a169063a34123a79060640160408051808303815f875af11580156129ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a139190613f0f565b6040516309e3d67b60e31b8152306004820152600287810b602483015286900b60448201526001600160801b0380841660648301528216608482015291935091506001600160a01b038a1690634f1eb3d89060a40160408051808303815f875af1158015612a83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aa79190613f6b565b5050886001600160a01b03167ff0c5c8e0b584b9430fbe397d62831fc7eca3e734a39a08659847de97469501de89898d8686604051612aea959493929190613f31565b60405180910390a250505050505050505050505050565b60405163095ea7b360e01b81526001600160a01b0386169063095ea7b390612b2f9089908890600401613c76565b6020604051808303815f875af1158015612b4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6f9190613c5d565b5060408051610100810182526001600160a01b038088168252858116602083015262ffffff84168284015230606083015242608083015260a0820187905260c082018590525f60e0830152915163414bf38960e01b8152909188169063414bf38990612bdf908490600401613dac565b6020604051808303815f875af1158015612bfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1f9190613c46565b50604080516001600160a01b03808916825286166020820152908101869052606081018490527f25f1d03755df23c30e25db2dbd3891e31ce084bdfbfc46f9fe5e446ee5f9b2d49060800160405180910390a150505050505050565b5f620d89e719600283900b12801590612ca65750612c9c620d89e719613f9c565b60020b8260020b13155b612ce15760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964207469636b60a01b604482015260640161046e565b5f808360020b12612cf5578260020b612d02565b8260020b612d0290613fbc565b90505f816001165f03612d1957600160801b612d2b565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612d6a576080612d65826ffff97272373d413259a46990580e213a613fd6565b901c90505b6004821615612d94576080612d8f826ffff2e50f5f656932ef12357cf3c7fdcc613fd6565b901c90505b6008821615612dbe576080612db9826fffe5caca7e10e4e61c3624eaa0941cd0613fd6565b901c90505b6010821615612de8576080612de3826fffcb9843d60f6159c9db58835c926644613fd6565b901c90505b6020821615612e12576080612e0d826fff973b41fa98c081472e6896dfb254c0613fd6565b901c90505b6040821615612e3c576080612e37826fff2ea16466c96a3843ec78b326b52861613fd6565b901c90505b6080821615612e66576080612e61826ffe5dee046a99a2a811c461f1969c3053613fd6565b901c90505b610100821615612e91576080612e8c826ffcbe86c7900a88aedcffc83b479aa3a4613fd6565b901c90505b610200821615612ebc576080612eb7826ff987a7253ac413176f2b074cf7815e54613fd6565b901c90505b610400821615612ee7576080612ee2826ff3392b0822b70005940c7a398e4b70f3613fd6565b901c90505b610800821615612f12576080612f0d826fe7159475a2c29b7443b29c7fa6e889d9613fd6565b901c90505b611000821615612f3d576080612f38826fd097f3bdfd2022b8845ad8f792aa5825613fd6565b901c90505b612000821615612f68576080612f63826fa9f746462d870fdf8a65dc1f90e061e5613fd6565b901c90505b614000821615612f93576080612f8e826f70d869a156d2a1b890bb3df62baf32f7613fd6565b901c90505b618000821615612fbe576080612fb9826f31be135f97d08fd981231505542fcfa6613fd6565b901c90505b62010000821615612fea576080612fe5826f09aa508b5b7a84e1c677de54f3e99bc9613fd6565b901c90505b62020000821615613015576080613010826e5d6af8dedb81196699c329225ee604613fd6565b901c90505b6204000082161561303f57608061303a826d2216e584f5fa1ea926041bedfe98613fd6565b901c90505b62080000821615613067576080613062826b048a170391f7dc42444e8fa2613fd6565b901c90505b5f8460020b13156130805761307d815f19614001565b90505b61308f64010000000082614014565b1561309b57600161309d565b5f5b6130ae9060ff16602083901c613bde565b949350505050565b5f836001600160a01b0316856001600160a01b031611156130d5579293925b846001600160a01b0316866001600160a01b031611613100576130f9858585613177565b905061316e565b836001600160a01b0316866001600160a01b03161015613160575f613126878686613177565b90505f6131348789866131ea565b9050806001600160801b0316826001600160801b0316106131555780613157565b815b9250505061316e565b61316b8585846131ea565b90505b95945050505050565b5f826001600160a01b0316846001600160a01b03161115613196579192915b5f6131b8856001600160a01b0316856001600160a01b0316600160601b61321f565b90506131df6131da84836131cc8989614027565b6001600160a01b031661321f565b61338e565b9150505b9392505050565b5f826001600160a01b0316846001600160a01b03161115613209579192915b6130ae6131da83600160601b6131cc8888614027565b5f80805f19858709858702925082811083820303915050805f03613253575f8411613248575f80fd5b5082900490506131e3565b80841161325e575f80fd5b5f848688098084039381119092039190505f61327c86196001613bde565b8616958690049593849004935f81900304600101905061329c8184613fd6565b909317925f6132ac876003613fd6565b60021890506132bb8188613fd6565b6132c6906002613bcb565b6132d09082613fd6565b90506132dc8188613fd6565b6132e7906002613bcb565b6132f19082613fd6565b90506132fd8188613fd6565b613308906002613bcb565b6133129082613fd6565b905061331e8188613fd6565b613329906002613bcb565b6133339082613fd6565b905061333f8188613fd6565b61334a906002613bcb565b6133549082613fd6565b90506133608188613fd6565b61336b906002613bcb565b6133759082613fd6565b90506133818186613fd6565b9998505050505050505050565b806001600160801b03811681146133a3575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133e5576133e56133a8565b604052919050565b5f67ffffffffffffffff821115613406576134066133a8565b5060051b60200190565b6001600160a01b0381168114611b24575f80fd5b5f82601f830112613433575f80fd5b81356020613448613443836133ed565b6133bc565b8083825260208201915060208460051b870101935086841115613469575f80fd5b602086015b8481101561348e57803561348181613410565b835291830191830161346e565b509695505050505050565b62ffffff81168114611b24575f80fd5b5f805f80608085870312156134bc575f80fd5b843567ffffffffffffffff808211156134d3575f80fd5b6134df88838901613424565b955060208701359150808211156134f4575f80fd5b5061350187828801613424565b935050604085013561351281613499565b9396929550929360600135925050565b5f805f60608486031215613534575f80fd5b833561353f81613410565b9250602084013561354f81613410565b9150604084013561355f81613499565b809150509250925092565b5f805f806080858703121561357d575f80fd5b843561358881613410565b9350602085013561359881613410565b92506040850135915060608501356135af81613499565b939692955090935050565b5f82601f8301126135c9575f80fd5b813567ffffffffffffffff8111156135e3576135e36133a8565b6135f6601f8201601f19166020016133bc565b81815284602083860101111561360a575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215613638575f80fd5b833567ffffffffffffffff81111561364e575f80fd5b61365a868287016135ba565b935050602084013561366b81613410565b929592945050506040919091013590565b5f6020828403121561368c575f80fd5b81356131e381613410565b5f80604083850312156136a8575f80fd5b82356136b381613410565b946020939093013593505050565b8060020b8114611b24575f80fd5b5f805f805f805f80610100898b0312156136e7575f80fd5b883567ffffffffffffffff8111156136fd575f80fd5b6137098b828c016135ba565b985050602089013561371a81613410565b9650604089013561372a81613410565b9550606089013594506080890135935060a089013561374881613499565b925060c0890135613758816136c1565b915060e0890135613768816136c1565b809150509295985092959890939650565b5f805f806080858703121561378c575f80fd5b843567ffffffffffffffff8111156137a2575f80fd5b6137ae878288016135ba565b94505060208501356137bf81613410565b9250604085013561351281613410565b5f82601f8301126137de575f80fd5b813560206137ee613443836133ed565b8083825260208201915060208460051b87010193508684111561380f575f80fd5b602086015b8481101561348e5780358352918301918301613814565b5f805f806080858703121561383e575f80fd5b843567ffffffffffffffff80821115613855575f80fd5b818701915087601f830112613868575f80fd5b81356020613878613443836133ed565b82815260059290921b8401810191818101908b841115613896575f80fd5b948201945b838610156138bd5785356138ae81613410565b8252948201949082019061389b565b985050880135925050808211156138d2575f80fd5b6138de888389016137cf565b945060408701359150808211156138f3575f80fd5b6138ff888389016137cf565b93506060870135915080821115613914575f80fd5b50613921878288016135ba565b91505092959194509250565b60208082526013908201527227b7363c9030b3b2b73a1037b91037bbb732b960691b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b5f805f805f8060c087890312156139b1575f80fd5b865195506020870151945060408701519350606087015192506080870151915060a087015190509295509295509295565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b5f60208284031215613a1a575f80fd5b81516131e381613410565b602080825260129082015271141bdbdb08191bd95cdb89dd08195e1a5cdd60721b604082015260600190565b805161ffff811681146133a3575f80fd5b805180151581146133a3575f80fd5b5f805f805f805f60e0888a031215613a87575f80fd5b8751613a9281613410565b6020890151909750613aa3816136c1565b9550613ab160408901613a51565b9450613abf60608901613a51565b9350613acd60808901613a51565b925060a088015160ff81168114613ae2575f80fd5b9150613af060c08901613a62565b905092959891949750929550565b634e487b7160e01b5f52601160045260245ffd5b600282810b9082900b03627fffff198112627fffff82131715613b3757613b37613afe565b92915050565b600281810b9083900b01627fffff8113627fffff1982121715613b3757613b37613afe565b80516001600160801b03811681146133a3575f80fd5b5f805f805f60a08688031215613b8c575f80fd5b613b9586613b62565b94506020860151935060408601519250613bb160608701613b62565b9150613bbf60808701613b62565b90509295509295909350565b81810381811115613b3757613b37613afe565b80820180821115613b3757613b37613afe565b5f81518084525f5b81811015613c1557602081850181015186830182015201613bf9565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6131e36020830184613bf1565b5f60208284031215613c56575f80fd5b5051919050565b5f60208284031215613c6d575f80fd5b6131e382613a62565b6001600160a01b03929092168252602082015260400190565b5f82601f830112613c9e575f80fd5b81516020613cae613443836133ed565b8083825260208201915060208460051b870101935086841115613ccf575f80fd5b602086015b8481101561348e578051613ce781613410565b8352918301918301613cd4565b5f60208284031215613d04575f80fd5b815167ffffffffffffffff80821115613d1b575f80fd5b9083019060608286031215613d2e575f80fd5b604051606081018181108382111715613d4957613d496133a8565b604052825182811115613d5a575f80fd5b613d6687828601613c8f565b825250602083015182811115613d7a575f80fd5b613d8687828601613c8f565b60208301525060408301519250613d9c83613499565b6040810192909252509392505050565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0838101519083015260c0808401519083015260e09283015116918101919091526101000190565b6060808252600490820152634161766560e01b60808201526001600160a01b03929092166020830152604082015260a00190565b60608082526008908201526710dbdb5c1bdd5b9960c21b60808201526001600160a01b03929092166020830152604082015260a00190565b60208082526022908201527f43616e6e6f74207769746864726177206d6f7265207468616e20626f72726f77604082015261195960f21b606082015260800190565b60018060a01b03861681528460020b60208201528360020b60408201526001600160801b038316606082015260a060808201525f613f0460a0830184613bf1565b979650505050505050565b5f8060408385031215613f20575f80fd5b505080516020909101519092909150565b6001600160a01b0395861681529390941660208401526001600160801b039190911660408301526060820152608081019190915260a00190565b5f8060408385031215613f7c575f80fd5b613f8583613b62565b9150613f9360208401613b62565b90509250929050565b5f8160020b627fffff198103613fb457613fb4613afe565b5f0392915050565b5f600160ff1b8201613fd057613fd0613afe565b505f0390565b8082028115828204841417613b3757613b37613afe565b634e487b7160e01b5f52601260045260245ffd5b5f8261400f5761400f613fed565b500490565b5f8261402257614022613fed565b500690565b6001600160a01b0382811682821603908082111561404757614047613afe565b509291505056fea26469706673582212202e954e0c1c84544b0d3b88ad8f9d5c1feff61dee33e04446365814cc9aba2d5b64736f6c63430008160033a2646970667358221220d81b44da4713734a4b51907fa4a37a5f14757a7bbc90dbd52fad45150e75c70164736f6c63430008160033", + "nonce": "0x1f1", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x764b49", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x3688f48f9c08abe47125d839b6d2fa151b7dac03ac0051c58c94c0fa963c520e", + "transactionIndex": "0x1f", + "blockHash": "0xc316eb4b7eae9959eec40b6c4ef0b8878d2d78c6c127188cbdac15c5daed6ec6", + "blockNumber": "0x14ab01c", + "gasUsed": "0x43b261", + "effectiveGasPrice": "0x5bf61", + "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", + "to": null, + "contractAddress": "0x99a3e04423dec42407dfed6a3d984d9a6200511d", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x2ba7a96e23e", + "l1GasPrice": "0x41655ded3", + "l1GasUsed": "0x25e4f" + } + ], + "libraries": [], + "pending": [], + "returns": { + "0": { + "internal_type": "contract VaultFactory", + "value": "0x99A3E04423dec42407dFed6A3d984d9A6200511d" + } + }, + "timestamp": 1739112252, + "chain": 84532, + "commit": "bf3b81b" +} \ No newline at end of file diff --git a/broadcast/DeployVaultFactory.s.sol/84532/run-latest.json b/broadcast/DeployVaultFactory.s.sol/84532/run-latest.json index 3929e08..9ab011c 100644 --- a/broadcast/DeployVaultFactory.s.sol/84532/run-latest.json +++ b/broadcast/DeployVaultFactory.s.sol/84532/run-latest.json @@ -1,18 +1,18 @@ { "transactions": [ { - "hash": "0x4f6a853d43237dcb7715e1e2e4a5dbf8c6483c200ea9d79eeacd6c3d54802ef4", + "hash": "0x3688f48f9c08abe47125d839b6d2fa151b7dac03ac0051c58c94c0fa963c520e", "transactionType": "CREATE", "contractName": "VaultFactory", - "contractAddress": "0x210088ae6ee018133791f20406bb239f1ea98379", + "contractAddress": "0x99a3e04423dec42407dfed6a3d984d9a6200511d", "function": null, "arguments": null, "transaction": { "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", - "gas": "0x4b8dbc", + "gas": "0x58017e", "value": "0x0", - "input": "0x6080604052600c805462ff00ff191662010001179055348015610020575f80fd5b5061015260408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506040805161012081018252734200000000000000000000000000000000000006815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152604d61010082015290565b8051600e80546001600160a01b03199081166001600160a01b03938416179091556020830151600f8054831691841691909117905560408301516010805483169184169190911790556060830151601180548316918416919091179055608083015160128054831691841691909117905560a083015160138054831691841691909117905560c083015160148054831691841691909117905560e083015160158054831691841691909117905561010090920151601680549093169116179055613fc18061021f5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c8063989e6fd911610063578063989e6fd91461018b578063b4bd6f4614610193578063d1a43bda146101a6578063d7b65745146101ae578063f8ccbf471461024c575f80fd5b806347ae49e714610094578063522c441d1461012657806358f674761461012e57806365cacaa41461016e575b5f80fd5b61009c61026f565b60405161011d919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a08084015182169083015260c08084015182169083015260e0808401518216908301526101009283015116918101919091526101200190565b60405180910390f35b61009c6102ff565b61015661013c3660046106be565b600d6020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161011d565b335f908152600d60205260409020546001600160a01b0316610156565b61009c6103a0565b6101566101a13660046106be565b610432565b61009c61051c565b600e54600f546010546011546012546013546014546015546016546101f2986001600160a01b03908116988116978116968116958116948116938116928116911689565b604080516001600160a01b039a8b168152988a1660208a01529689169688019690965293871660608701529186166080860152851660a0850152841660c0840152831660e08301529091166101008201526101200161011d565b600c5461025f9062010000900460ff1681565b604051901515815260200161011d565b610277610666565b5060408051610120810182525f808252735425890298aed601595a70ab815c96711a31bc656020830152739cfcc1b289e59fbe1e769f020c77315df847376092820192909252606081018290526080810182905260a0810182905260c0810191909152738b9b2af4afb389b4a70a474dfd4adcd4a302bb4060e0820152604d61010082015290565b610307610666565b50604080516101208101825273c558dbdd856501fcd9aaf1e62eae57a9f0629a3c81527394a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c860208201525f91810182905273e3e0106227181958abfba960c13d0fe52c73326560608201526080810182905260a0810182905260c0810191909152736ae43d3271ff6888e7fc43fd7321a503ff73895160e0820152604d61010082015290565b6103a8610666565b6103e66040518060400160405280601881526020017f54657374696e67204f6e20416e76696c204e6574776f726b00000000000000008152506105fd565b5060408051610120810182525f80825260016020830152918101829052606081019190915260026080820152600360a0820152600660c0820152600760e0820152604d61010082015290565b6016546015546011546013546012546040515f95869588956001600160a01b0392831695918316949083169391831692169061046d906106b1565b6001600160a01b0396871681529486166020860152928516604085015290841660608401528316608083015290911660a082015260c001604051809103905ff0801580156104bd573d5f803e3d5ffd5b506001600160a01b038481165f818152600d602052604080822080546001600160a01b031916948616948517905551939450919290917f5d9c31ffa0fecffd7cf379989a3c7af252f0335e0d2a1320b55245912c781f5391a392915050565b610524610666565b5060408051610120810182526006602160991b01815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152604d61010082015290565b6106408160405160240161061191906106eb565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610643565b50565b610640815f6a636f6e736f6c652e6c6f6790505f80835160208501845afa505050565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b6138548061073883390190565b5f602082840312156106ce575f80fd5b81356001600160a01b03811681146106e4575f80fd5b9392505050565b5f602080835283518060208501525f5b81811015610717578581018301518582016040015282016106fb565b505f604082860101526040601f19601f830116850101925050509291505056fe60c060405234801562000010575f80fd5b506040516200385438038062003854833981016040819052620000339162000135565b83838383896001600160a01b0381166200006657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007181620000ca565b50600180546001600160a01b039586166001600160a01b0319918216179091556002805494861694821694909417909355908316608052821660a052600380549790921696169590951790945550620001b29350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811462000130575f80fd5b919050565b5f805f805f8060c087890312156200014b575f80fd5b620001568762000119565b9550620001666020880162000119565b9450620001766040880162000119565b9350620001866060880162000119565b9250620001966080880162000119565b9150620001a660a0880162000119565b90509295509295509295565b60805160a051613656620001fe5f395f81816102830152818161048301528181611ffb01526123b301525f8181610244015281816117e301528181611906015261199e01526136565ff3fe608060405234801561000f575f80fd5b5060043610610132575f3560e01c8063a03e4bc3116100b4578063ca11615e11610079578063ca11615e14610327578063dc0661801461033a578063e6e1bdec146103b3578063e8f6daa9146103bb578063f2fde38b146103ce578063f5ff5c76146103e1575f80fd5b8063a03e4bc3146102c8578063a1db9782146102db578063aab76479146102ee578063bcf685ed14610301578063c7d716d714610314575f80fd5b8063715018a6116100fa578063715018a614610237578063735de9f71461023f5780638bdb2afa1461027e5780638da5cb5b146102a557806397feb926146102b5575f80fd5b806321db8240146101365780634a0de08f14610170578063592bac55146101a85780635d631152146101c9578063604e3706146101de575b5f80fd5b61013e6103f4565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0015b60405180910390f35b61018361017e366004612dcc565b61047d565b604080516001600160801b039094168452602084019290925290820152606001610167565b6101bb6101b6366004612e10565b6106c2565b604051908152602001610167565b6101dc6101d7366004612efb565b6107b6565b005b6101f16101ec366004612f51565b610a28565b604051610167919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b6101dc610ab6565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b0316610266565b6101dc6102c3366004612f6c565b610ac9565b600154610266906001600160a01b031681565b6101dc6102e9366004612f6c565b610cb0565b6101bb6102fc366004612efb565b610ebb565b6101dc61030f366004612f51565b6111d5565b6101dc610322366004612fa4565b6111ff565b6101dc61033536600461304c565b61155b565b610381610348366004612f51565b600460208190525f9182526040909120805460018201546002830154600384015493909401546001600160a01b03909216939092909185565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a001610167565b6101bb611720565b600254610266906001600160a01b031681565b6101dc6103dc366004612f51565b61178f565b600354610266906001600160a01b031681565b600154604051632fe4a15f60e21b81523060048201525f91829182918291829182916001600160a01b039091169063bf92857c9060240160c060405180830381865afa158015610446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046a91906130b2565b949b939a50919850965094509092509050565b5f805f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828888886040518463ffffffff1660e01b81526004016104d1939291906130f8565b602060405180830381865afa1580156104ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105109190613120565b90506001600160a01b0381166105415760405162461bcd60e51b81526004016105389061313b565b60405180910390fd5b5f80876001600160a01b0316896001600160a01b031610610563578789610566565b88885b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156105a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105cc9190613187565b5050505050915091505f6064826105e39190613228565b90505f6105f1836064613253565b6040516bffffffffffffffffffffffff193060601b16602082015260e884811b603483015282901b60378201529091506001600160a01b0388169063514ea4bf90603a01604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161066991815260200190565b60a060405180830381865afa158015610684573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a8919061328e565b50929c50909a509850505050505050505093509350939050565b6003545f906001600160a01b03163314806106e657505f546001600160a01b031633145b6107025760405162461bcd60e51b8152600401610538906132e1565b6001600160a01b0385165f9081526004602052604090206001015483111561073c5760405162461bcd60e51b81526004016105389061330e565b61074a8585856001866117cc565b6001600160a01b0386165f9081526004602052604081206001018054929350859290919061077990849061333c565b90915550506001600160a01b0384165f90815260046020526040812060010180548392906107a890849061334f565b909155509095945050505050565b6003546001600160a01b03163314806107d857505f546001600160a01b031633145b6107f45760405162461bcd60e51b8152600401610538906132e1565b6040805180820190915260048152636161766560e01b60209182015283519084012083907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b183291480159061088c575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b156108ac57806040516303622bc560e21b815260040161053891906133a5565b6001600160a01b0383165f908152600460205260409020600101548211156108e65760405162461bcd60e51b81526004016105389061330e565b6040805180820190915260048152636161766560e01b6020918201528451908501207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd70161096d5761093883836119f6565b6001600160a01b0383165f908152600460205260408120600201805484929061096290849061334f565b909155506109f39050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528451908501207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee82016109f3576109c38383611b75565b6001600160a01b0383165f90815260046020526040812060030180548492906109ed90849061334f565b90915550505b6001600160a01b0383165f9081526004602052604081206001018054849290610a1d90849061333c565b909155505050505050565b610a5e6040518060a001604052805f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b039081165f90815260046020818152604092839020835160a08101855281549095168552600181015491850191909152600281015492840192909252600382015460608401520154608082015290565b610abe611ce0565b610ac75f611d0c565b565b610ad1611ce0565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610b1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3f91906133b7565b1015610b865760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b6044820152606401610538565b6040516323b872dd60e01b8152336004820152306024820152604481018290525f906001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610bd8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfc91906133ce565b905080610c3d5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610538565b6001600160a01b0383165f9081526004602052604081206001018054849290610c6790849061334f565b90915550506040518281526001600160a01b038416907fab79632de7fe1724598ce2214eaa326d90d48064d2d3397406ecc5769316a5f6906020015b60405180910390a2505050565b610cb8611ce0565b6001600160a01b0382165f90815260046020526040902060010154811115610cf25760405162461bcd60e51b81526004016105389061330e565b816001600160a01b031663095ea7b3610d125f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610d5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8091906133ce565b505f826001600160a01b031663a9059cbb610da25f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303815f875af1158015610dec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1091906133ce565b905080610e515760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610538565b6001600160a01b0383165f9081526004602052604081206001018054849290610e7b90849061333c565b90915550506040518281526001600160a01b038416907f7e2c99819371db0a6fc6f4269fe872496e44f502df19ba3eae594b7a1598746090602001610ca3565b6003545f906001600160a01b0316331480610edf57505f546001600160a01b031633145b610efb5760405162461bcd60e51b8152600401610538906132e1565b6040805180820190915260048152636161766560e01b60209182015284519085012084907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b1832914801590610f93575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b15610fb357806040516303622bc560e21b815260040161053891906133a5565b6040805180820190915260048152636161766560e01b6020918201528551908601207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd7016110a9576001600160a01b0384165f908152600460205260409020600201548311156110655760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e74000000006044820152606401610538565b61106f8484611d5b565b6001600160a01b0385165f9081526004602052604081206002018054929450859290919061109e90849061333c565b9091555061119e9050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528551908601207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee820161119e576001600160a01b0384165f9081526004602052604090206003015483111561115f5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e74000000006044820152606401610538565b6111698484611e48565b6001600160a01b0385165f9081526004602052604081206003018054929450859290919061119890849061333c565b90915550505b6001600160a01b0384165f90815260046020526040812060010180548492906111c890849061334f565b9091555050509392505050565b6111dd611ce0565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633148061122157505f546001600160a01b031633145b61123d5760405162461bcd60e51b8152600401610538906132e1565b6040805180820190915260078152660756e69737761760cc1b60209182015288519089012088907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e7132148015906112d957506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b156112f957806040516303622bc560e21b815260040161053891906133a5565b6001600160a01b0388165f908152600460205260409020600101548611156113635760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e3000000000006044820152606401610538565b6001600160a01b0387165f908152600460205260409020600101548511156113cd5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e3100000000006044820152606401610538565b6040805180820190915260078152660756e69737761760cc1b6020918201528951908a01207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece0161148c5761142788888888888888611ff7565b506001600160a01b0388165f908152600460208190526040822001805488929061145290849061334f565b90915550506001600160a01b0387165f908152600460208190526040822001805487929061148190849061334f565b909155506114f29050565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528951908a01207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016114f2576040516305fcd0f760e01b815260040160405180910390fd5b6001600160a01b0388165f908152600460205260408120600101805488929061151c90849061333c565b90915550506001600160a01b0387165f908152600460205260408120600101805487929061154b90849061333c565b9091555050505050505050505050565b6003546001600160a01b031633148061157d57505f546001600160a01b031633145b6115995760405162461bcd60e51b8152600401610538906132e1565b6040805180820190915260078152660756e69737761760cc1b60209182015284519085012084907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e71321480159061163557506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b1561165557806040516303622bc560e21b815260040161053891906133a5565b6040805180820190915260078152660756e69737761760cc1b6020918201528551908601207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece016116b3576116ae8484610bb88561239a565b611719565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528551908601207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d01611719576040516305fcd0f760e01b815260040160405180910390fd5b5050505050565b6002546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611766573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178a91906133b7565b905090565b611797611ce0565b6001600160a01b0381166117c057604051631e4fbdf760e01b81525f6004820152602401610538565b6117c981611d0c565b50565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018590525f919087169063095ea7b3906044016020604051808303815f875af115801561183b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061185f91906133ce565b5060408051610100810182526001600160a01b0388811682528781166020830190815262ffffff8681168486019081523060608601908152426080870190815260a087018c815260c088018c81525f60e08a01908152995163414bf38960e01b815289518916600482015296518816602488015293519094166044860152905185166064850152516084840152905160a48301525160c48201529251811660e484015290917f00000000000000000000000000000000000000000000000000000000000000009091169063414bf38990610104016020604051808303815f875af115801561194f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197391906133b7565b604080516001600160a01b038a811682528981166020830152918101889052606081018390529193507f000000000000000000000000000000000000000000000000000000000000000016907fad56699d0f375866eb895ed27203058a36a713382aaded78eb6b67da266d43329060800160405180910390a25095945050505050565b60015460405163095ea7b360e01b81526001600160a01b039182166004820152602481018390525f9184169063095ea7b3906044016020604051808303815f875af1158015611a47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6b91906133ce565b905080611aca5760405162461bcd60e51b815260206004820152602760248201527f417070726f76616c206f6620617373657420696e746f204161766520706f6f6c6044820152660819985a5b195960ca1b6064820152608401610538565b60015460405163617ba03760e01b81526001600160a01b038581166004830152602482018590523060448301525f60648301529091169063617ba037906084015f604051808303815f87803b158015611b21575f80fd5b505af1158015611b33573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611b689291906133e7565b60405180910390a1505050565b60025460405163095ea7b360e01b81526001600160a01b039182166004820152602481018390525f9184169063095ea7b3906044016020604051808303815f875af1158015611bc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bea91906133ce565b905080611c485760405162461bcd60e51b815260206004820152602660248201527f417070726f76616c206f6620617373657420696e746f20436f6d706f756e642060448201526519985a5b195960d21b6064820152608401610538565b600254604051634232cd6360e01b81523060048201526001600160a01b0385811660248301526044820185905290911690634232cd63906064015f604051808303815f87803b158015611c99575f80fd5b505af1158015611cab573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611b6892919061341b565b5f546001600160a01b03163314610ac75760405163118cdaa760e01b8152336004820152602401610538565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80611d656103f4565b5050505050905082811015611d8c5760405162461bcd60e51b815260040161053890613453565b600154604051631a4ca37b60e21b81526001600160a01b03868116600483015260248201869052306044830152909116906369328dec906064016020604051808303815f875af1158015611de2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e0691906133b7565b91507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b58484604051611e399291906133e7565b60405180910390a15092915050565b5f80611e52611720565b905082811015611e745760405162461bcd60e51b815260040161053890613453565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015611eb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611edc91906133b7565b60025460405163f3fef3a360e01b81526001600160a01b0388811660048301526024820188905292935091169063f3fef3a3906044015f604051808303815f87803b158015611f29575f80fd5b505af1158015611f3b573d5f803e3d5ffd5b50506040516370a0823160e01b81523060048201525f92506001600160a01b03881691506370a0823190602401602060405180830381865afa158015611f83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fa791906133b7565b9050611fb3828261333c565b93507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b58685604051611fe692919061341b565b60405180910390a150505092915050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828a8a886040518463ffffffff1660e01b8152600401612049939291906130f8565b602060405180830381865afa158015612064573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120889190613120565b90506001600160a01b0381166120b05760405162461bcd60e51b81526004016105389061313b565b5f80896001600160a01b03168b6001600160a01b0316106120d257898b6120d5565b8a8a5b915091505f826001600160a01b03168c6001600160a01b0316146120f957886120fb565b895b90505f836001600160a01b03168d6001600160a01b03161461211d578a61211f565b895b60405163095ea7b360e01b81526001600160a01b038781166004830152602482018590529192509085169063095ea7b3906044016020604051808303815f875af115801561216f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061219391906133ce565b5060405163095ea7b360e01b81526001600160a01b0386811660048301526024820183905284169063095ea7b3906044016020604051808303815f875af11580156121e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220491906133ce565b505f856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612242573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122669190613187565b50505050505090505f6122788a612679565b90505f6122848a612679565b90506122938383838888612ab4565b98505f80896001600160a01b0316633c8a7d8d308f8f8f306040516020016122ca91906001600160a01b0391909116815260200190565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016122f9959493929190613495565b60408051808303815f875af1158015612314573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233891906134e1565b91509150896001600160a01b03167fce0669c03a6bebf1a7a80046c110092cafdff0bb527ff2e4ea213faf8f07cf118a8a8e868660405161237d959493929190613503565b60405180910390a250505050505050505050979650505050505050565b604051630b4c774160e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631698ee82906123ec908890889088906004016130f8565b602060405180830381865afa158015612407573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061242b9190613120565b90506001600160a01b0381166124535760405162461bcd60e51b81526004016105389061313b565b5f80856001600160a01b0316876001600160a01b031610612475578587612478565b86865b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156124ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124de9190613187565b5050505050915091505f6064826124f59190613228565b90505f612503836064613253565b60405163a34123a760e01b8152600284810b600483015282900b60248201526001600160801b038a1660448201529091505f9081906001600160a01b038a169063a34123a79060640160408051808303815f875af1158015612567573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061258b91906134e1565b6040516309e3d67b60e31b8152306004820152600287810b602483015286900b60448201526001600160801b0380841660648301528216608482015291935091506001600160a01b038a1690634f1eb3d89060a40160408051808303815f875af11580156125fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261f919061353d565b5050886001600160a01b03167ff0c5c8e0b584b9430fbe397d62831fc7eca3e734a39a08659847de97469501de89898d8686604051612662959493929190613503565b60405180910390a250505050505050505050505050565b5f620d89e719600283900b128015906126a4575061269a620d89e71961356e565b60020b8260020b13155b6126df5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964207469636b60a01b6044820152606401610538565b5f808360020b126126f3578260020b612700565b8260020b6127009061358e565b90505f816001165f0361271757600160801b612729565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612768576080612763826ffff97272373d413259a46990580e213a6135a8565b901c90505b600482161561279257608061278d826ffff2e50f5f656932ef12357cf3c7fdcc6135a8565b901c90505b60088216156127bc5760806127b7826fffe5caca7e10e4e61c3624eaa0941cd06135a8565b901c90505b60108216156127e65760806127e1826fffcb9843d60f6159c9db58835c9266446135a8565b901c90505b602082161561281057608061280b826fff973b41fa98c081472e6896dfb254c06135a8565b901c90505b604082161561283a576080612835826fff2ea16466c96a3843ec78b326b528616135a8565b901c90505b608082161561286457608061285f826ffe5dee046a99a2a811c461f1969c30536135a8565b901c90505b61010082161561288f57608061288a826ffcbe86c7900a88aedcffc83b479aa3a46135a8565b901c90505b6102008216156128ba5760806128b5826ff987a7253ac413176f2b074cf7815e546135a8565b901c90505b6104008216156128e55760806128e0826ff3392b0822b70005940c7a398e4b70f36135a8565b901c90505b61080082161561291057608061290b826fe7159475a2c29b7443b29c7fa6e889d96135a8565b901c90505b61100082161561293b576080612936826fd097f3bdfd2022b8845ad8f792aa58256135a8565b901c90505b612000821615612966576080612961826fa9f746462d870fdf8a65dc1f90e061e56135a8565b901c90505b61400082161561299157608061298c826f70d869a156d2a1b890bb3df62baf32f76135a8565b901c90505b6180008216156129bc5760806129b7826f31be135f97d08fd981231505542fcfa66135a8565b901c90505b620100008216156129e85760806129e3826f09aa508b5b7a84e1c677de54f3e99bc96135a8565b901c90505b62020000821615612a13576080612a0e826e5d6af8dedb81196699c329225ee6046135a8565b901c90505b62040000821615612a3d576080612a38826d2216e584f5fa1ea926041bedfe986135a8565b901c90505b62080000821615612a65576080612a60826b048a170391f7dc42444e8fa26135a8565b901c90505b5f8460020b1315612a7e57612a7b815f196135d3565b90505b612a8d640100000000826135e6565b15612a99576001612a9b565b5f5b612aac9060ff16602083901c61334f565b949350505050565b5f836001600160a01b0316856001600160a01b03161115612ad3579293925b846001600160a01b0316866001600160a01b031611612afe57612af7858585612b75565b9050612b6c565b836001600160a01b0316866001600160a01b03161015612b5e575f612b24878686612b75565b90505f612b32878986612be8565b9050806001600160801b0316826001600160801b031610612b535780612b55565b815b92505050612b6c565b612b69858584612be8565b90505b95945050505050565b5f826001600160a01b0316846001600160a01b03161115612b94579192915b5f612bb6856001600160a01b0316856001600160a01b0316600160601b612c1d565b9050612bdd612bd88483612bca89896135f9565b6001600160a01b0316612c1d565b612d8c565b9150505b9392505050565b5f826001600160a01b0316846001600160a01b03161115612c07579192915b612aac612bd883600160601b612bca88886135f9565b5f80805f19858709858702925082811083820303915050805f03612c51575f8411612c46575f80fd5b508290049050612be1565b808411612c5c575f80fd5b5f848688098084039381119092039190505f612c7a8619600161334f565b8616958690049593849004935f819003046001019050612c9a81846135a8565b909317925f612caa8760036135a8565b6002189050612cb981886135a8565b612cc490600261333c565b612cce90826135a8565b9050612cda81886135a8565b612ce590600261333c565b612cef90826135a8565b9050612cfb81886135a8565b612d0690600261333c565b612d1090826135a8565b9050612d1c81886135a8565b612d2790600261333c565b612d3190826135a8565b9050612d3d81886135a8565b612d4890600261333c565b612d5290826135a8565b9050612d5e81886135a8565b612d6990600261333c565b612d7390826135a8565b9050612d7f81866135a8565b9998505050505050505050565b806001600160801b0381168114612da1575f80fd5b919050565b6001600160a01b03811681146117c9575f80fd5b803562ffffff81168114612da1575f80fd5b5f805f60608486031215612dde575f80fd5b8335612de981612da6565b92506020840135612df981612da6565b9150612e0760408501612dba565b90509250925092565b5f805f8060808587031215612e23575f80fd5b8435612e2e81612da6565b93506020850135612e3e81612da6565b925060408501359150612e5360608601612dba565b905092959194509250565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112612e81575f80fd5b813567ffffffffffffffff80821115612e9c57612e9c612e5e565b604051601f8301601f19908116603f01168101908282118183101715612ec457612ec4612e5e565b81604052838152866020858801011115612edc575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f60608486031215612f0d575f80fd5b833567ffffffffffffffff811115612f23575f80fd5b612f2f86828701612e72565b9350506020840135612f4081612da6565b929592945050506040919091013590565b5f60208284031215612f61575f80fd5b8135612be181612da6565b5f8060408385031215612f7d575f80fd5b8235612f8881612da6565b946020939093013593505050565b8060020b81146117c9575f80fd5b5f805f805f805f80610100898b031215612fbc575f80fd5b883567ffffffffffffffff811115612fd2575f80fd5b612fde8b828c01612e72565b9850506020890135612fef81612da6565b96506040890135612fff81612da6565b9550606089013594506080890135935061301b60a08a01612dba565b925060c089013561302b81612f96565b915060e089013561303b81612f96565b809150509295985092959890939650565b5f805f806080858703121561305f575f80fd5b843567ffffffffffffffff811115613075575f80fd5b61308187828801612e72565b945050602085013561309281612da6565b925060408501356130a281612da6565b9396929550929360600135925050565b5f805f805f8060c087890312156130c7575f80fd5b865195506020870151945060408701519350606087015192506080870151915060a087015190509295509295509295565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b5f60208284031215613130575f80fd5b8151612be181612da6565b602080825260129082015271141bdbdb08191bd95cdb89dd08195e1a5cdd60721b604082015260600190565b805161ffff81168114612da1575f80fd5b80518015158114612da1575f80fd5b5f805f805f805f60e0888a03121561319d575f80fd5b87516131a881612da6565b60208901519097506131b981612f96565b95506131c760408901613167565b94506131d560608901613167565b93506131e360808901613167565b925060a088015160ff811681146131f8575f80fd5b915061320660c08901613178565b905092959891949750929550565b634e487b7160e01b5f52601160045260245ffd5b600282810b9082900b03627fffff198112627fffff8213171561324d5761324d613214565b92915050565b600281810b9083900b01627fffff8113627fffff198212171561324d5761324d613214565b80516001600160801b0381168114612da1575f80fd5b5f805f805f60a086880312156132a2575f80fd5b6132ab86613278565b945060208601519350604086015192506132c760608701613278565b91506132d560808701613278565b90509295509295909350565b60208082526013908201527227b7363c9030b3b2b73a1037b91037bbb732b960691b604082015260600190565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b8181038181111561324d5761324d613214565b8082018082111561324d5761324d613214565b5f81518084525f5b818110156133865760208185018101518683018201520161336a565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f612be16020830184613362565b5f602082840312156133c7575f80fd5b5051919050565b5f602082840312156133de575f80fd5b612be182613178565b6060808252600490820152634161766560e01b60808201526001600160a01b03929092166020830152604082015260a00190565b60608082526008908201526710dbdb5c1bdd5b9960c21b60808201526001600160a01b03929092166020830152604082015260a00190565b60208082526022908201527f43616e6e6f74207769746864726177206d6f7265207468616e20626f72726f77604082015261195960f21b606082015260800190565b60018060a01b03861681528460020b60208201528360020b60408201526001600160801b038316606082015260a060808201525f6134d660a0830184613362565b979650505050505050565b5f80604083850312156134f2575f80fd5b505080516020909101519092909150565b6001600160a01b0395861681529390941660208401526001600160801b039190911660408301526060820152608081019190915260a00190565b5f806040838503121561354e575f80fd5b61355783613278565b915061356560208401613278565b90509250929050565b5f8160020b627fffff19810361358657613586613214565b5f0392915050565b5f600160ff1b82016135a2576135a2613214565b505f0390565b808202811582820484141761324d5761324d613214565b634e487b7160e01b5f52601260045260245ffd5b5f826135e1576135e16135bf565b500490565b5f826135f4576135f46135bf565b500690565b6001600160a01b0382811682821603908082111561361957613619613214565b509291505056fea2646970667358221220fb5c2a00a8ae482dd197a7a109c3db4fe86b2f56f8b951d4b352b1a7ef8a30c264736f6c63430008160033a2646970667358221220472810b03add19bec8ad27296ac8d04aea1e9f33c3e4da127d25eb27ddda164d64736f6c63430008160033", - "nonce": "0x1ec", + "input": "0x6080604052600c805462ff00ff191662010001179055348015610020575f80fd5b5061016560408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506040805161012081018252734200000000000000000000000000000000000006815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b8051600e80546001600160a01b03199081166001600160a01b03938416179091556020830151600f8054831691841691909117905560408301516010805483169184169190911790556060830151601180548316918416919091179055608083015160128054831691841691909117905560a083015160138054831691841691909117905560c083015160148054831691841691909117905560e083015160158054831691841691909117905561010090920151601680549093169116179055614b16806102325f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063989e6fd911610063578063989e6fd91461019e578063b4bd6f46146101a6578063d1a43bda146101b9578063d7b65745146101c1578063f8ccbf471461025f575f80fd5b806347ae49e71461009f578063522c441d1461013157806358f674761461013957806365cacaa4146101795780637e8af5bd14610196575b5f80fd5b6100a7610282565b604051610128919081516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015182169083015260808084015182169083015260a08084015182169083015260c08084015182169083015260e0808401518216908301526101009283015116918101919091526101200190565b60405180910390f35b6100a7610312565b6101616101473660046107e5565b600d6020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610128565b335f908152600d60205260409020546001600160a01b0316610161565b6100a76103b3565b6100a76104b4565b6101616101b43660046107e5565b610546565b6100a7610630565b600e54600f54601054601154601254601354601454601554601654610205986001600160a01b03908116988116978116968116958116948116938116928116911689565b604080516001600160a01b039a8b168152988a1660208a01529689169688019690965293871660608701529186166080860152851660a0850152841660c0840152831660e083015290911661010082015261012001610128565b600c546102729062010000900460ff1681565b6040519015158152602001610128565b61028a61078d565b5060408051610120810182525f808252735425890298aed601595a70ab815c96711a31bc656020830152739cfcc1b289e59fbe1e769f020c77315df847376092820192909252606081018290526080810182905260a0810182905260c0810191909152738b9b2af4afb389b4a70a474dfd4adcd4a302bb4060e0820152604d61010082015290565b61031a61078d565b50604080516101208101825273c558dbdd856501fcd9aaf1e62eae57a9f0629a3c81527394a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c860208201525f91810182905273e3e0106227181958abfba960c13d0fe52c73326560608201526080810182905260a0810182905260c0810191909152736ae43d3271ff6888e7fc43fd7321a503ff73895160e0820152604d61010082015290565b6103bb61078d565b506040805161012081018252731df462e2712496373a347f8ad10802a5e95f053d81527375faf114eafb1bdbe2f0316df893fd58ce46aa4d602082015273460b97bd498e1157530aeb3086301d5225b912169181019190915273fb4561c6aff45c00ee0d2ef33d058e2f96959f0f606082015273248ab79bbb9bc29bb72f7cd42f17e054fc40188e608082015273101f443b4d1b059569d643917553c771e1b9663e60a0820152732779a0cc1c3e0e44d2542ec3e79e3864ae93ef0b60c082015273bfc91d59fdaa134a4ed45f7b584caf96d7792eff60e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b6104bc61078d565b6104fa6040518060400160405280601881526020017f54657374696e67204f6e20416e76696c204e6574776f726b0000000000000000815250610724565b5060408051610120810182525f80825260016020830152918101829052606081019190915260026080820152600360a0820152600660c0820152600760e0820152604d61010082015290565b6016546015546011546013546012546040515f95869588956001600160a01b03928316959183169490831693918316921690610581906107d8565b6001600160a01b0396871681529486166020860152928516604085015290841660608401528316608083015290911660a082015260c001604051809103905ff0801580156105d1573d5f803e3d5ffd5b506001600160a01b038481165f818152600d602052604080822080546001600160a01b031916948616948517905551939450919290917f5d9c31ffa0fecffd7cf379989a3c7af252f0335e0d2a1320b55245912c781f5391a392915050565b61063861078d565b5060408051610120810182526006602160991b01815273036cbd53842c5426634e7929541ec2318f3dcf7e602082015273fe45bf4def7223ab1bf83ca17a4462ef1647f7ff9181019190915273571621ce60cebb0c1d442b5afb38b1663c6bf0176060820152734752ba5dbc23f44d87826276bf6fd6b1c372ad2460808201527394cc0aac535ccdb3c01d6787d6413c739ae12bc460a082015273c5290058841028f1614f3a6f0f5816cad0df5e2760c082015273be781d7bdf469f3d94a62cdcc407ace106aeca7460e0820152737e393441edc1bb1621318e000cdfc74947f23b2661010082015290565b610767816040516024016107389190610812565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261076a565b50565b610767815f6a636f6e736f6c652e6c6f6790505f80835160208501845afa505050565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b6142828061085f83390190565b5f602082840312156107f5575f80fd5b81356001600160a01b038116811461080b575f80fd5b9392505050565b5f602080835283518060208501525f5b8181101561083e57858101830151858201604001528201610822565b505f604082860101526040601f19601f830116850101925050509291505056fe60c060405234801562000010575f80fd5b506040516200428238038062004282833981016040819052620000339162000135565b83838383896001600160a01b0381166200006657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007181620000ca565b50600180546001600160a01b039586166001600160a01b0319918216179091556002805494861694821694909417909355908316608052821660a052600380549790921696169590951790945550620001b29350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811462000130575f80fd5b919050565b5f805f805f8060c087890312156200014b575f80fd5b620001568762000119565b9550620001666020880162000119565b9450620001766040880162000119565b9350620001866060880162000119565b9250620001966080880162000119565b9150620001a660a0880162000119565b90509295509295509295565b60805160a051614084620001fe5f395f81816102ac0152818161057701528181612488015261283b01525f818161026d01528181611ccb01528181611d900152611e3001526140845ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c8063a03e4bc3116100bf578063dc06618011610079578063dc06618014610363578063e6e1bdec146103dc578063e8f6daa9146103e4578063f04f2707146103f7578063f2fde38b1461040a578063f5ff5c761461041d575f80fd5b8063a03e4bc3146102f1578063a1db978214610304578063aab7647914610317578063bcf685ed1461032a578063c7d716d71461033d578063ca11615e14610350575f80fd5b8063604e370611610110578063604e370614610207578063715018a614610260578063735de9f7146102685780638bdb2afa146102a75780638da5cb5b146102ce57806397feb926146102de575f80fd5b80630c5443791461014c57806321db8240146101615780634a0de08f1461019b578063592bac55146101d35780635d631152146101f4575b5f80fd5b61015f61015a3660046134a9565b610430565b005b6101696104e8565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0015b60405180910390f35b6101ae6101a9366004613522565b610571565b604080516001600160801b039094168452602084019290925290820152606001610192565b6101e66101e136600461356a565b6107ad565b604051908152602001610192565b61015f610202366004613626565b6108a1565b61021a61021536600461367c565b610b13565b604051610192919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b61015f610ba1565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610192565b61028f7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661028f565b61015f6102ec366004613697565b610bb4565b60015461028f906001600160a01b031681565b61015f610312366004613697565b610d9b565b6101e6610325366004613626565b610f86565b61015f61033836600461367c565b6112a0565b61015f61034b3660046136cf565b6112ca565b61015f61035e366004613779565b611626565b6103aa61037136600461367c565b600460208190525f9182526040909120805460018201546002830154600384015493909401546001600160a01b03909216939092909185565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a001610192565b6101e66117eb565b60025461028f906001600160a01b031681565b61015f61040536600461382b565b61185a565b61015f61041836600461367c565b611aea565b60035461028f906001600160a01b031681565b6003546001600160a01b031633148061045257505f546001600160a01b031633145b6104775760405162461bcd60e51b815260040161046e9061392d565b60405180910390fd5b8060045f855f8151811061048d5761048d61395a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206001015410156104d65760405162461bcd60e51b815260040161046e9061396e565b6104e284848484611b27565b50505050565b600154604051632fe4a15f60e21b81523060048201525f91829182918291829182916001600160a01b039091169063bf92857c9060240160c060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e919061399c565b949b939a50919850965094509092509050565b5f805f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828888886040518463ffffffff1660e01b81526004016105c5939291906139e2565b602060405180830381865afa1580156105e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106049190613a0a565b90506001600160a01b03811661062c5760405162461bcd60e51b815260040161046e90613a25565b5f80876001600160a01b0316896001600160a01b03161061064e578789610651565b88885b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b79190613a71565b5050505050915091505f6064826106ce9190613b12565b90505f6106dc836064613b3d565b6040516bffffffffffffffffffffffff193060601b16602082015260e884811b603483015282901b60378201529091506001600160a01b0388169063514ea4bf90603a01604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161075491815260200190565b60a060405180830381865afa15801561076f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107939190613b78565b50929c50909a509850505050505050505093509350939050565b6003545f906001600160a01b03163314806107d157505f546001600160a01b031633145b6107ed5760405162461bcd60e51b815260040161046e9061392d565b6001600160a01b0385165f908152600460205260409020600101548311156108275760405162461bcd60e51b815260040161046e9061396e565b610835858585600186611ca5565b6001600160a01b0386165f90815260046020526040812060010180549293508592909190610864908490613bcb565b90915550506001600160a01b0384165f9081526004602052604081206001018054839290610893908490613bde565b909155509095945050505050565b6003546001600160a01b03163314806108c357505f546001600160a01b031633145b6108df5760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015283519084012083907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b1832914801590610977575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561099757806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0383165f908152600460205260409020600101548211156109d15760405162461bcd60e51b815260040161046e9061396e565b6040805180820190915260048152636161766560e01b6020918201528451908501207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701610a5857610a238383611e88565b6001600160a01b0383165f9081526004602052604081206002018054849290610a4d908490613bde565b90915550610ade9050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528451908501207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201610ade57610aae8383612006565b6001600160a01b0383165f9081526004602052604081206003018054849290610ad8908490613bde565b90915550505b6001600160a01b0383165f9081526004602052604081206001018054849290610b08908490613bcb565b909155505050505050565b610b496040518060a001604052805f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b039081165f90815260046020818152604092839020835160a08101855281549095168552600181015491850191909152600281015492840192909252600382015460608401520154608082015290565b610ba9612170565b610bb25f61219c565b565b610bbc612170565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e90604401602060405180830381865afa158015610c06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2a9190613c46565b1015610c715760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015260640161046e565b6040516323b872dd60e01b8152336004820152306024820152604481018290525f906001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610cc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce79190613c5d565b905080610d285760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610d52908490613bde565b90915550506040518281526001600160a01b038416907fab79632de7fe1724598ce2214eaa326d90d48064d2d3397406ecc5769316a5f6906020015b60405180910390a2505050565b610da3612170565b6001600160a01b0382165f90815260046020526040902060010154811115610ddd5760405162461bcd60e51b815260040161046e9061396e565b816001600160a01b031663095ea7b3610dfd5f546001600160a01b031690565b836040518363ffffffff1660e01b8152600401610e1b929190613c76565b6020604051808303815f875af1158015610e37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5b9190613c5d565b505f826001600160a01b031663a9059cbb610e7d5f546001600160a01b031690565b846040518363ffffffff1660e01b8152600401610e9b929190613c76565b6020604051808303815f875af1158015610eb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edb9190613c5d565b905080610f1c5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161046e565b6001600160a01b0383165f9081526004602052604081206001018054849290610f46908490613bcb565b90915550506040518281526001600160a01b038416907f7e2c99819371db0a6fc6f4269fe872496e44f502df19ba3eae594b7a1598746090602001610d8e565b6003545f906001600160a01b0316331480610faa57505f546001600160a01b031633145b610fc65760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260048152636161766560e01b60209182015284519085012084907fe0a39fef8aa5887c76606e7a14a5db8dc6676191e4866b2a609a3aa003b183291480159061105e575060408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528151908201207f2b05eae252b2d830081b9362c105fc1b4e5f974a0c53bee02c06419c2f4a117e14155b1561107e57806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260048152636161766560e01b6020918201528551908601207f1f5c6010755a7783899f9185eb5a247239989e6e1b7994d59f65c55ffc4e7cd701611174576001600160a01b0384165f908152600460205260409020600201548311156111305760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61113a84846121eb565b6001600160a01b0385165f90815260046020526040812060020180549294508592909190611169908490613bcb565b909155506112699050565b60408051808201909152600881526718dbdb5c1bdd5b9960c21b6020918201528551908601207fd4fa151dad4d27cff7e46c9d3efa03e4b1a068b5f3ac411fd3f9be63d0b5ee8201611269576001600160a01b0384165f9081526004602052604090206003015483111561122a5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420696e76657374656420616d6f756e7400000000604482015260640161046e565b61123484846122d8565b6001600160a01b0385165f90815260046020526040812060030180549294508592909190611263908490613bcb565b90915550505b6001600160a01b0384165f9081526004602052604081206001018054849290611293908490613bde565b9091555050509392505050565b6112a8612170565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314806112ec57505f546001600160a01b031633145b6113085760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015288519089012088907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e7132148015906113a457506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b156113c457806040516303622bc560e21b815260040161046e9190613c34565b6001600160a01b0388165f9081526004602052604090206001015486111561142e5760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e300000000000604482015260640161046e565b6001600160a01b0387165f908152600460205260409020600101548511156114985760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742062616c616e636520746f6b656e310000000000604482015260640161046e565b6040805180820190915260078152660756e69737761760cc1b6020918201528951908a01207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece01611557576114f288888888888888612484565b506001600160a01b0388165f908152600460208190526040822001805488929061151d908490613bde565b90915550506001600160a01b0387165f908152600460208190526040822001805487929061154c908490613bde565b909155506115bd9050565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528951908a01207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016115bd576040516305fcd0f760e01b815260040160405180910390fd5b6001600160a01b0388165f90815260046020526040812060010180548892906115e7908490613bcb565b90915550506001600160a01b0387165f9081526004602052604081206001018054879290611616908490613bcb565b9091555050505050505050505050565b6003546001600160a01b031633148061164857505f546001600160a01b031633145b6116645760405162461bcd60e51b815260040161046e9061392d565b6040805180820190915260078152660756e69737761760cc1b60209182015284519085012084907fa2a03459171c76bff45817330c10ef9f8af07011a33005b73b50189bbc7e71321480159061170057506040805180820190915260098152686165726f64726f6d6560b81b6020918201528151908201207fc570e6c17f57bc6841b1057f94fcf1785f440006714dbd98f64d859b54cd25d314155b1561172057806040516303622bc560e21b815260040161046e9190613c34565b6040805180820190915260078152660756e69737761760cc1b6020918201528551908601207f5d5fcba6e8e389400ba7e8ccf3ef1060750f8fee5ccffa48c4afe76443818ece0161177e576117798484610bb885612822565b6117e4565b6040805180820190915260098152686165726f64726f6d6560b81b6020918201528551908601207f3a8f193e80a84397be4efa806b030e87a0bbfff98eb2426709b27a64ab32da2d016117e4576040516305fcd0f760e01b815260040160405180910390fd5b5050505050565b6002546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611831573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118559190613c46565b905090565b3373ba12222222228d8ba445958a75a0704d566bf2c8146118c75760405162461bcd60e51b815260206004820152602160248201527f556e617574686f72697a65643a204f6e6c792042616c616e636572205661756c6044820152601d60fa1b606482015260840161046e565b5f818060200190518101906118dc9190613cf4565b90505f845f815181106118f1576118f161395a565b60200260200101519050611964825f01515f815181106119135761191361395a565b602002602001015183602001515f815181106119315761193161395a565b60200260200101518385602001516001815181106119515761195161395a565b60200260200101515f8760400151612b01565b611a56825f015160018151811061197d5761197d61395a565b6020026020010151836020015160018151811061199c5761199c61395a565b602002602001015184602001516001815181106119bb576119bb61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a2d9190613c46565b85602001515f81518110611a4357611a4361395a565b6020026020010151858760400151612b01565b81602001515f81518110611a6c57611a6c61395a565b60200260200101516001600160a01b031663a9059cbb30836040518363ffffffff1660e01b8152600401611aa1929190613c76565b6020604051808303815f875af1158015611abd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae19190613c5d565b50505050505050565b611af2612170565b6001600160a01b038116611b1b57604051631e4fbdf760e01b81525f600482015260240161046e565b611b248161219c565b50565b5f60405180606001604052808681526020018581526020018462ffffff168152509050611bb3815f01515f81518110611b6257611b6261395a565b602002602001015182602001515f81518110611b8057611b8061395a565b6020026020010151848460200151600181518110611ba057611ba061395a565b60200260200101515f8660400151612b01565b6117e4815f0151600181518110611bcc57611bcc61395a565b60200260200101518260200151600181518110611beb57611beb61395a565b60200260200101518360200151600181518110611c0a57611c0a61395a565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611c58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7c9190613c46565b84602001515f81518110611c9257611c9261395a565b6020026020010151868660400151612b01565b60405163095ea7b360e01b81525f906001600160a01b0387169063095ea7b390611cf5907f0000000000000000000000000000000000000000000000000000000000000000908890600401613c76565b6020604051808303815f875af1158015611d11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d359190613c5d565b5060408051610100810182526001600160a01b038089168252878116602083015262ffffff85168284015230606083015242608083015260a0820187905260c082018690525f60e0830152915163414bf38960e01b815290917f0000000000000000000000000000000000000000000000000000000000000000169063414bf38990611dc5908490600401613dac565b6020604051808303815f875af1158015611de1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e059190613c46565b604080516001600160a01b038a811682528981166020830152918101889052606081018390529193507f000000000000000000000000000000000000000000000000000000000000000016907fad56699d0f375866eb895ed27203058a36a713382aaded78eb6b67da266d43329060800160405180910390a25095945050505050565b60015460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b392611ebc9216908690600401613c76565b6020604051808303815f875af1158015611ed8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efc9190613c5d565b905080611f5b5760405162461bcd60e51b815260206004820152602760248201527f417070726f76616c206f6620617373657420696e746f204161766520706f6f6c6044820152660819985a5b195960ca1b606482015260840161046e565b60015460405163617ba03760e01b81526001600160a01b038581166004830152602482018590523060448301525f60648301529091169063617ba037906084015f604051808303815f87803b158015611fb2575f80fd5b505af1158015611fc4573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e15565b60405180910390a1505050565b60025460405163095ea7b360e01b81525f916001600160a01b038086169263095ea7b39261203a9216908690600401613c76565b6020604051808303815f875af1158015612056573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207a9190613c5d565b9050806120d85760405162461bcd60e51b815260206004820152602660248201527f417070726f76616c206f6620617373657420696e746f20436f6d706f756e642060448201526519985a5b195960d21b606482015260840161046e565b600254604051634232cd6360e01b81523060048201526001600160a01b0385811660248301526044820185905290911690634232cd63906064015f604051808303815f87803b158015612129575f80fd5b505af115801561213b573d5f803e3d5ffd5b505050507f76bfb501e0568602c59c0cffcde817c5bc2696480830199d9f8c115afe02c54e8383604051611ff9929190613e49565b5f546001600160a01b03163314610bb25760405163118cdaa760e01b815233600482015260240161046e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f806121f56104e8565b505050505090508281101561221c5760405162461bcd60e51b815260040161046e90613e81565b600154604051631a4ca37b60e21b81526001600160a01b03868116600483015260248201869052306044830152909116906369328dec906064016020604051808303815f875af1158015612272573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122969190613c46565b91507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b584846040516122c9929190613e15565b60405180910390a15092915050565b5f806122e26117eb565b9050828110156123045760405162461bcd60e51b815260040161046e90613e81565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015612348573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236c9190613c46565b60025460405163f3fef3a360e01b81529192506001600160a01b03169063f3fef3a39061239f9088908890600401613c76565b5f604051808303815f87803b1580156123b6575f80fd5b505af11580156123c8573d5f803e3d5ffd5b50506040516370a0823160e01b81523060048201525f92506001600160a01b03881691506370a0823190602401602060405180830381865afa158015612410573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124349190613c46565b90506124408282613bcb565b93507ff2119ac293790f480d31afd7d613930c9e10d9432d0dedb82738f50368fa27b58685604051612473929190613e49565b60405180910390a150505092915050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828a8a886040518463ffffffff1660e01b81526004016124d6939291906139e2565b602060405180830381865afa1580156124f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125159190613a0a565b90506001600160a01b03811661253d5760405162461bcd60e51b815260040161046e90613a25565b5f80896001600160a01b03168b6001600160a01b03161061255f57898b612562565b8a8a5b915091505f826001600160a01b03168c6001600160a01b0316146125865788612588565b895b90505f836001600160a01b03168d6001600160a01b0316146125aa578a6125ac565b895b60405163095ea7b360e01b81529091506001600160a01b0385169063095ea7b3906125dd9088908690600401613c76565b6020604051808303815f875af11580156125f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261d9190613c5d565b5060405163095ea7b360e01b81526001600160a01b0384169063095ea7b39061264c9088908590600401613c76565b6020604051808303815f875af1158015612668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061268c9190613c5d565b505f856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156126ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126ee9190613a71565b50505050505090505f6127008a612c7b565b90505f61270c8a612c7b565b905061271b83838388886130b6565b98505f80896001600160a01b0316633c8a7d8d308f8f8f3060405160200161275291906001600160a01b0391909116815260200190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612781959493929190613ec3565b60408051808303815f875af115801561279c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127c09190613f0f565b91509150896001600160a01b03167fce0669c03a6bebf1a7a80046c110092cafdff0bb527ff2e4ea213faf8f07cf118a8a8e8686604051612805959493929190613f31565b60405180910390a250505050505050505050979650505050505050565b604051630b4c774160e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631698ee8290612874908890889088906004016139e2565b602060405180830381865afa15801561288f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128b39190613a0a565b90506001600160a01b0381166128db5760405162461bcd60e51b815260040161046e90613a25565b5f80856001600160a01b0316876001600160a01b0316106128fd578587612900565b86865b915091505f80846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015612942573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129669190613a71565b5050505050915091505f60648261297d9190613b12565b90505f61298b836064613b3d565b60405163a34123a760e01b8152600284810b600483015282900b60248201526001600160801b038a1660448201529091505f9081906001600160a01b038a169063a34123a79060640160408051808303815f875af11580156129ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a139190613f0f565b6040516309e3d67b60e31b8152306004820152600287810b602483015286900b60448201526001600160801b0380841660648301528216608482015291935091506001600160a01b038a1690634f1eb3d89060a40160408051808303815f875af1158015612a83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aa79190613f6b565b5050886001600160a01b03167ff0c5c8e0b584b9430fbe397d62831fc7eca3e734a39a08659847de97469501de89898d8686604051612aea959493929190613f31565b60405180910390a250505050505050505050505050565b60405163095ea7b360e01b81526001600160a01b0386169063095ea7b390612b2f9089908890600401613c76565b6020604051808303815f875af1158015612b4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6f9190613c5d565b5060408051610100810182526001600160a01b038088168252858116602083015262ffffff84168284015230606083015242608083015260a0820187905260c082018590525f60e0830152915163414bf38960e01b8152909188169063414bf38990612bdf908490600401613dac565b6020604051808303815f875af1158015612bfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1f9190613c46565b50604080516001600160a01b03808916825286166020820152908101869052606081018490527f25f1d03755df23c30e25db2dbd3891e31ce084bdfbfc46f9fe5e446ee5f9b2d49060800160405180910390a150505050505050565b5f620d89e719600283900b12801590612ca65750612c9c620d89e719613f9c565b60020b8260020b13155b612ce15760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964207469636b60a01b604482015260640161046e565b5f808360020b12612cf5578260020b612d02565b8260020b612d0290613fbc565b90505f816001165f03612d1957600160801b612d2b565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612d6a576080612d65826ffff97272373d413259a46990580e213a613fd6565b901c90505b6004821615612d94576080612d8f826ffff2e50f5f656932ef12357cf3c7fdcc613fd6565b901c90505b6008821615612dbe576080612db9826fffe5caca7e10e4e61c3624eaa0941cd0613fd6565b901c90505b6010821615612de8576080612de3826fffcb9843d60f6159c9db58835c926644613fd6565b901c90505b6020821615612e12576080612e0d826fff973b41fa98c081472e6896dfb254c0613fd6565b901c90505b6040821615612e3c576080612e37826fff2ea16466c96a3843ec78b326b52861613fd6565b901c90505b6080821615612e66576080612e61826ffe5dee046a99a2a811c461f1969c3053613fd6565b901c90505b610100821615612e91576080612e8c826ffcbe86c7900a88aedcffc83b479aa3a4613fd6565b901c90505b610200821615612ebc576080612eb7826ff987a7253ac413176f2b074cf7815e54613fd6565b901c90505b610400821615612ee7576080612ee2826ff3392b0822b70005940c7a398e4b70f3613fd6565b901c90505b610800821615612f12576080612f0d826fe7159475a2c29b7443b29c7fa6e889d9613fd6565b901c90505b611000821615612f3d576080612f38826fd097f3bdfd2022b8845ad8f792aa5825613fd6565b901c90505b612000821615612f68576080612f63826fa9f746462d870fdf8a65dc1f90e061e5613fd6565b901c90505b614000821615612f93576080612f8e826f70d869a156d2a1b890bb3df62baf32f7613fd6565b901c90505b618000821615612fbe576080612fb9826f31be135f97d08fd981231505542fcfa6613fd6565b901c90505b62010000821615612fea576080612fe5826f09aa508b5b7a84e1c677de54f3e99bc9613fd6565b901c90505b62020000821615613015576080613010826e5d6af8dedb81196699c329225ee604613fd6565b901c90505b6204000082161561303f57608061303a826d2216e584f5fa1ea926041bedfe98613fd6565b901c90505b62080000821615613067576080613062826b048a170391f7dc42444e8fa2613fd6565b901c90505b5f8460020b13156130805761307d815f19614001565b90505b61308f64010000000082614014565b1561309b57600161309d565b5f5b6130ae9060ff16602083901c613bde565b949350505050565b5f836001600160a01b0316856001600160a01b031611156130d5579293925b846001600160a01b0316866001600160a01b031611613100576130f9858585613177565b905061316e565b836001600160a01b0316866001600160a01b03161015613160575f613126878686613177565b90505f6131348789866131ea565b9050806001600160801b0316826001600160801b0316106131555780613157565b815b9250505061316e565b61316b8585846131ea565b90505b95945050505050565b5f826001600160a01b0316846001600160a01b03161115613196579192915b5f6131b8856001600160a01b0316856001600160a01b0316600160601b61321f565b90506131df6131da84836131cc8989614027565b6001600160a01b031661321f565b61338e565b9150505b9392505050565b5f826001600160a01b0316846001600160a01b03161115613209579192915b6130ae6131da83600160601b6131cc8888614027565b5f80805f19858709858702925082811083820303915050805f03613253575f8411613248575f80fd5b5082900490506131e3565b80841161325e575f80fd5b5f848688098084039381119092039190505f61327c86196001613bde565b8616958690049593849004935f81900304600101905061329c8184613fd6565b909317925f6132ac876003613fd6565b60021890506132bb8188613fd6565b6132c6906002613bcb565b6132d09082613fd6565b90506132dc8188613fd6565b6132e7906002613bcb565b6132f19082613fd6565b90506132fd8188613fd6565b613308906002613bcb565b6133129082613fd6565b905061331e8188613fd6565b613329906002613bcb565b6133339082613fd6565b905061333f8188613fd6565b61334a906002613bcb565b6133549082613fd6565b90506133608188613fd6565b61336b906002613bcb565b6133759082613fd6565b90506133818186613fd6565b9998505050505050505050565b806001600160801b03811681146133a3575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133e5576133e56133a8565b604052919050565b5f67ffffffffffffffff821115613406576134066133a8565b5060051b60200190565b6001600160a01b0381168114611b24575f80fd5b5f82601f830112613433575f80fd5b81356020613448613443836133ed565b6133bc565b8083825260208201915060208460051b870101935086841115613469575f80fd5b602086015b8481101561348e57803561348181613410565b835291830191830161346e565b509695505050505050565b62ffffff81168114611b24575f80fd5b5f805f80608085870312156134bc575f80fd5b843567ffffffffffffffff808211156134d3575f80fd5b6134df88838901613424565b955060208701359150808211156134f4575f80fd5b5061350187828801613424565b935050604085013561351281613499565b9396929550929360600135925050565b5f805f60608486031215613534575f80fd5b833561353f81613410565b9250602084013561354f81613410565b9150604084013561355f81613499565b809150509250925092565b5f805f806080858703121561357d575f80fd5b843561358881613410565b9350602085013561359881613410565b92506040850135915060608501356135af81613499565b939692955090935050565b5f82601f8301126135c9575f80fd5b813567ffffffffffffffff8111156135e3576135e36133a8565b6135f6601f8201601f19166020016133bc565b81815284602083860101111561360a575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215613638575f80fd5b833567ffffffffffffffff81111561364e575f80fd5b61365a868287016135ba565b935050602084013561366b81613410565b929592945050506040919091013590565b5f6020828403121561368c575f80fd5b81356131e381613410565b5f80604083850312156136a8575f80fd5b82356136b381613410565b946020939093013593505050565b8060020b8114611b24575f80fd5b5f805f805f805f80610100898b0312156136e7575f80fd5b883567ffffffffffffffff8111156136fd575f80fd5b6137098b828c016135ba565b985050602089013561371a81613410565b9650604089013561372a81613410565b9550606089013594506080890135935060a089013561374881613499565b925060c0890135613758816136c1565b915060e0890135613768816136c1565b809150509295985092959890939650565b5f805f806080858703121561378c575f80fd5b843567ffffffffffffffff8111156137a2575f80fd5b6137ae878288016135ba565b94505060208501356137bf81613410565b9250604085013561351281613410565b5f82601f8301126137de575f80fd5b813560206137ee613443836133ed565b8083825260208201915060208460051b87010193508684111561380f575f80fd5b602086015b8481101561348e5780358352918301918301613814565b5f805f806080858703121561383e575f80fd5b843567ffffffffffffffff80821115613855575f80fd5b818701915087601f830112613868575f80fd5b81356020613878613443836133ed565b82815260059290921b8401810191818101908b841115613896575f80fd5b948201945b838610156138bd5785356138ae81613410565b8252948201949082019061389b565b985050880135925050808211156138d2575f80fd5b6138de888389016137cf565b945060408701359150808211156138f3575f80fd5b6138ff888389016137cf565b93506060870135915080821115613914575f80fd5b50613921878288016135ba565b91505092959194509250565b60208082526013908201527227b7363c9030b3b2b73a1037b91037bbb732b960691b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b5f805f805f8060c087890312156139b1575f80fd5b865195506020870151945060408701519350606087015192506080870151915060a087015190509295509295509295565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b5f60208284031215613a1a575f80fd5b81516131e381613410565b602080825260129082015271141bdbdb08191bd95cdb89dd08195e1a5cdd60721b604082015260600190565b805161ffff811681146133a3575f80fd5b805180151581146133a3575f80fd5b5f805f805f805f60e0888a031215613a87575f80fd5b8751613a9281613410565b6020890151909750613aa3816136c1565b9550613ab160408901613a51565b9450613abf60608901613a51565b9350613acd60808901613a51565b925060a088015160ff81168114613ae2575f80fd5b9150613af060c08901613a62565b905092959891949750929550565b634e487b7160e01b5f52601160045260245ffd5b600282810b9082900b03627fffff198112627fffff82131715613b3757613b37613afe565b92915050565b600281810b9083900b01627fffff8113627fffff1982121715613b3757613b37613afe565b80516001600160801b03811681146133a3575f80fd5b5f805f805f60a08688031215613b8c575f80fd5b613b9586613b62565b94506020860151935060408601519250613bb160608701613b62565b9150613bbf60808701613b62565b90509295509295909350565b81810381811115613b3757613b37613afe565b80820180821115613b3757613b37613afe565b5f81518084525f5b81811015613c1557602081850181015186830182015201613bf9565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6131e36020830184613bf1565b5f60208284031215613c56575f80fd5b5051919050565b5f60208284031215613c6d575f80fd5b6131e382613a62565b6001600160a01b03929092168252602082015260400190565b5f82601f830112613c9e575f80fd5b81516020613cae613443836133ed565b8083825260208201915060208460051b870101935086841115613ccf575f80fd5b602086015b8481101561348e578051613ce781613410565b8352918301918301613cd4565b5f60208284031215613d04575f80fd5b815167ffffffffffffffff80821115613d1b575f80fd5b9083019060608286031215613d2e575f80fd5b604051606081018181108382111715613d4957613d496133a8565b604052825182811115613d5a575f80fd5b613d6687828601613c8f565b825250602083015182811115613d7a575f80fd5b613d8687828601613c8f565b60208301525060408301519250613d9c83613499565b6040810192909252509392505050565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0838101519083015260c0808401519083015260e09283015116918101919091526101000190565b6060808252600490820152634161766560e01b60808201526001600160a01b03929092166020830152604082015260a00190565b60608082526008908201526710dbdb5c1bdd5b9960c21b60808201526001600160a01b03929092166020830152604082015260a00190565b60208082526022908201527f43616e6e6f74207769746864726177206d6f7265207468616e20626f72726f77604082015261195960f21b606082015260800190565b60018060a01b03861681528460020b60208201528360020b60408201526001600160801b038316606082015260a060808201525f613f0460a0830184613bf1565b979650505050505050565b5f8060408385031215613f20575f80fd5b505080516020909101519092909150565b6001600160a01b0395861681529390941660208401526001600160801b039190911660408301526060820152608081019190915260a00190565b5f8060408385031215613f7c575f80fd5b613f8583613b62565b9150613f9360208401613b62565b90509250929050565b5f8160020b627fffff198103613fb457613fb4613afe565b5f0392915050565b5f600160ff1b8201613fd057613fd0613afe565b505f0390565b8082028115828204841417613b3757613b37613afe565b634e487b7160e01b5f52601260045260245ffd5b5f8261400f5761400f613fed565b500490565b5f8261402257614022613fed565b500690565b6001600160a01b0382811682821603908082111561404757614047613afe565b509291505056fea26469706673582212202e954e0c1c84544b0d3b88ad8f9d5c1feff61dee33e04446365814cc9aba2d5b64736f6c63430008160033a2646970667358221220d81b44da4713734a4b51907fa4a37a5f14757a7bbc90dbd52fad45150e75c70164736f6c63430008160033", + "nonce": "0x1f1", "chainId": "0x14a34" }, "additionalContracts": [], @@ -22,25 +22,25 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x97af31", + "cumulativeGasUsed": "0x764b49", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x4f6a853d43237dcb7715e1e2e4a5dbf8c6483c200ea9d79eeacd6c3d54802ef4", - "transactionIndex": "0x33", - "blockHash": "0x081af5e84bb3796005fc2f4f01249b6262b696f53b2e9fecfe9f717fa8090e3a", - "blockNumber": "0x149eb1b", - "gasUsed": "0x3a1e42", - "effectiveGasPrice": "0xe5ce7", + "transactionHash": "0x3688f48f9c08abe47125d839b6d2fa151b7dac03ac0051c58c94c0fa963c520e", + "transactionIndex": "0x1f", + "blockHash": "0xc316eb4b7eae9959eec40b6c4ef0b8878d2d78c6c127188cbdac15c5daed6ec6", + "blockNumber": "0x14ab01c", + "gasUsed": "0x43b261", + "effectiveGasPrice": "0x5bf61", "from": "0x12b2434a1022d5787bf06056f2885fe35de62bf8", "to": null, - "contractAddress": "0x210088ae6ee018133791f20406bb239f1ea98379", + "contractAddress": "0x99a3e04423dec42407dfed6a3d984d9a6200511d", "l1BaseFeeScalar": "0x44d", "l1BlobBaseFee": "0x1", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x1a1084d7b8b", - "l1GasPrice": "0x2e0b84442", - "l1GasUsed": "0x20223" + "l1Fee": "0x2ba7a96e23e", + "l1GasPrice": "0x41655ded3", + "l1GasUsed": "0x25e4f" } ], "libraries": [], @@ -48,10 +48,10 @@ "returns": { "0": { "internal_type": "contract VaultFactory", - "value": "0x210088AE6EE018133791f20406Bb239f1ea98379" + "value": "0x99A3E04423dec42407dFed6A3d984d9A6200511d" } }, - "timestamp": 1739011371, + "timestamp": 1739112252, "chain": 84532, - "commit": "2319c6d" + "commit": "bf3b81b" } \ No newline at end of file diff --git a/script/HelperConfig.s.sol b/script/HelperConfig.s.sol index 4fe6ad2..121be04 100644 --- a/script/HelperConfig.s.sol +++ b/script/HelperConfig.s.sol @@ -38,7 +38,7 @@ contract HelperConfig is Script { uniswapRouter: 0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4, uniswapQouter: 0xC5290058841028F1614F3A6F0F5816cAd0df5E27, aavePool: 0xbE781D7Bdf469f3d94a62Cdcc407aCe106AEcA74, - agent: address(77) + agent: 0x7e393441Edc1Bb1621318E000cDfC74947f23b26 }); return BaseSepoliaConfig; } @@ -57,7 +57,7 @@ contract HelperConfig is Script { uniswapRouter: 0x101F443B4d1b059569D643917553c771E1b9663E, uniswapQouter: 0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B, aavePool: 0xBfC91D59fdAA134A4ED45f7B584cAf96D7792Eff, - agent: address(77) + agent: 0x7e393441Edc1Bb1621318E000cDfC74947f23b26 }); return ArbitrumSepoliaConfig; } diff --git a/src/VaultFactory.sol b/src/VaultFactory.sol index b82a84a..04512d3 100644 --- a/src/VaultFactory.sol +++ b/src/VaultFactory.sol @@ -34,7 +34,7 @@ contract VaultFactory is HelperConfig { * Currently hardcoded to Base Sepolia, could be made more flexible in future versions */ constructor() { - activeNetworkConfig = getArbitrumSepoliaConfig(); + activeNetworkConfig = getBaseSepoliaConfig(); } /**