UNPKG

@zjbtest/contracts

Version:
394 lines (393 loc) 1.22 MB
{ "contractName": "DEX", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "tokenA", "type": "address" }, { "indexed": true, "internalType": "address", "name": "tokenB", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "maxAmountA", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "maxAmountB", "type": "uint256" } ], "name": "AddedLiquidity", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "tokenA", "type": "address" }, { "indexed": true, "internalType": "address", "name": "tokenB", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "remove_share", "type": "uint256" } ], "name": "RemovedLiquidity", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" }, { "indexed": false, "internalType": "uint256", "name": "supply_amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "target_amount", "type": "uint256" } ], "name": "Swaped", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "tokenA", "type": "address" }, { "internalType": "address", "name": "tokenB", "type": "address" } ], "name": "getLiquidityPool", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenA", "type": "address" }, { "internalType": "address", "name": "tokenB", "type": "address" } ], "name": "getLiquidityTokenAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "uint256", "name": "supplyAmount", "type": "uint256" } ], "name": "getSwapTargetAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "uint256", "name": "targetAmount", "type": "uint256" } ], "name": "getSwapSupplyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "uint256", "name": "supplyAmount", "type": "uint256" }, { "internalType": "uint256", "name": "minTargetAmount", "type": "uint256" } ], "name": "swapWithExactSupply", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "path", "type": "address[]" }, { "internalType": "uint256", "name": "targetAmount", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupplyAmount", "type": "uint256" } ], "name": "swapWithExactTarget", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenA", "type": "address" }, { "internalType": "address", "name": "tokenB", "type": "address" }, { "internalType": "uint256", "name": "maxAmountA", "type": "uint256" }, { "internalType": "uint256", "name": "maxAmountB", "type": "uint256" }, { "internalType": "uint256", "name": "minShareIncrement", "type": "uint256" } ], "name": "addLiquidity", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenA", "type": "address" }, { "internalType": "address", "name": "tokenB", "type": "address" }, { "internalType": "uint256", "name": "removeShare", "type": "uint256" }, { "internalType": "uint256", "name": "minWithdrawnA", "type": "uint256" }, { "internalType": "uint256", "name": "minWithdrawnB", "type": "uint256" } ], "name": "removeLiquidity", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxAmountA\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxAmountB\",\"type\":\"uint256\"}],\"name\":\"AddedLiquidity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remove_share\",\"type\":\"uint256\"}],\"name\":\"RemovedLiquidity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supply_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"target_amount\",\"type\":\"uint256\"}],\"name\":\"Swaped\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minShareIncrement\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getLiquidityPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getLiquidityTokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"targetAmount\",\"type\":\"uint256\"}],\"name\":\"getSwapSupplyAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"supplyAmount\",\"type\":\"uint256\"}],\"name\":\"getSwapTargetAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"removeShare\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minWithdrawnA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minWithdrawnB\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"supplyAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTargetAmount\",\"type\":\"uint256\"}],\"name\":\"swapWithExactSupply\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"targetAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSupplyAmount\",\"type\":\"uint256\"}],\"name\":\"swapWithExactTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addLiquidity(address,address,uint256,uint256,uint256)\":{\"details\":\"Add liquidity to the trading pair. Returns a boolean value indicating whether the operation succeeded.\"},\"getLiquidityPool(address,address)\":{\"details\":\"Get liquidity pool of the currency_id_a and currency_id_b. Returns (liquidity_a, liquidity_b)\"},\"getLiquidityTokenAddress(address,address)\":{\"details\":\"Get Liquidity token address. Returns (liquidity_token_address)\"},\"getSwapSupplyAmount(address[],uint256)\":{\"details\":\"Get swap supply amount. Returns (supply_amount)\"},\"getSwapTargetAmount(address[],uint256)\":{\"details\":\"Get swap target amount. Returns (target_amount)\"},\"removeLiquidity(address,address,uint256,uint256,uint256)\":{\"details\":\"Remove liquidity from the trading pair. Returns a boolean value indicating whether the operation succeeded.\"},\"swapWithExactSupply(address[],uint256,uint256)\":{\"details\":\"Swap with exact supply. Returns a boolean value indicating whether the operation succeeded.\"},\"swapWithExactTarget(address[],uint256,uint256)\":{\"details\":\"Swap with exact target. Returns a boolean value indicating whether the operation succeeded.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/dex/DEX.sol\":\"DEX\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/dex/DEX.sol\":{\"keccak256\":\"0x785e6c274eee9ba591c5e7e828b76cd8d8ea88e49d4b24b94d3b2a6472471071\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b679beebafe73dc268e2956b17be3c68e15888ad40c80db219c7896252b7ffa\",\"dweb:/ipfs/QmPqqsXisbohkGdbirkUC85SgyH9Sa4ZK1cwoW6MgBeiX9\"]},\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/dex/IDEX.sol\":{\"keccak256\":\"0x139b56d71b84a9781e5da2fed311191cfd2c569653c325980e7159d12861e6c8\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9a2d59a633b20a52f4e955c571f6832dbacabfdf9428b0a4dc8320352cf0ebc7\",\"dweb:/ipfs/QmXqfM3LYM6H1sDybKmDCFEVvJKj6RuPQqPrXWkju2hC3t\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b506120d5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063dbcd19a21161005b578063dbcd19a21461014d578063e2dc85dc1461017d578063f4f31ede146101ad578063ffd73c4a146101de57610088565b80633d8d96201461008d5780634d60beb1146100bd5780636fc4b4e5146100ed57806391c98a2a1461011d575b600080fd5b6100a760048036038101906100a291906117e5565b61020e565b6040516100b49190611d0a565b60405180910390f35b6100d760048036038101906100d29190611791565b6104ad565b6040516100e49190611e25565b60405180910390f35b610107600480360381019061010291906117e5565b6106f2565b6040516101149190611d0a565b60405180910390f35b6101376004803603810190610132919061171a565b610991565b6040516101449190611d0a565b60405180910390f35b61016760048036038101906101629190611791565b610c9f565b6040516101749190611e25565b60405180910390f35b6101976004803603810190610192919061171a565b610ee4565b6040516101a49190611d0a565b60405180910390f35b6101c760048036038101906101c291906116de565b6111ac565b6040516101d5929190611e40565b60405180910390f35b6101f860048036038101906101f391906116de565b6113be565b6040516102059190611bab565b60405180910390f35b600080600090505b84518110156102e257600073ffffffffffffffffffffffffffffffffffffffff16858281518110610270577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614156102cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c690611d65565b60405180910390fd5b80806102da90611fb3565b915050610216565b506000831415610327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031e90611dc5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff163387878760405160240161035a9493929190611c50565b6040516020818303038152906040527f9782ac81000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103e49190611b94565b6000604051808303816000865af19150503d8060008114610421576040519150601f19603f3d011682016040523d82523d6000602084013e610426565b606091505b5091509150600082141561043b573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7b1ccce9b5299ff0ae3d9adc0855268a4ad3527b2bcde01ccadde2fb878ecb8a8783806020019051810190610488919061184c565b8860405161049893929190611ccc565b60405180910390a26001925050509392505050565b600080600090505b835181101561058157600073ffffffffffffffffffffffffffffffffffffffff1684828151811061050f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141561056e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056590611d65565b60405180910390fd5b808061057990611fb3565b9150506104b5565b5060008214156105c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bd90611d85565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff1685856040516024016105f5929190611c9c565b6040516020818303038152906040527f4d60beb1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161067f9190611b94565b600060405180830381855afa9150503d80600081146106ba576040519150601f19603f3d011682016040523d82523d6000602084013e6106bf565b606091505b509150915060008214156106d4573d60208201fd5b808060200190518101906106e8919061184c565b9250505092915050565b600080600090505b84518110156107c657600073ffffffffffffffffffffffffffffffffffffffff16858281518110610754577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614156107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa90611d65565b60405180910390fd5b80806107be90611fb3565b9150506106fa565b50600083141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290611d85565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff163387878760405160240161083e9493929190611c50565b6040516020818303038152906040527f579baa18000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108c89190611b94565b6000604051808303816000865af19150503d8060008114610905576040519150601f19603f3d011682016040523d82523d6000602084013e61090a565b606091505b5091509150600082141561091f573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7b1ccce9b5299ff0ae3d9adc0855268a4ad3527b2bcde01ccadde2fb878ecb8a87878480602001905181019061096d919061184c565b60405161097c93929190611ccc565b60405180910390a26001925050509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6990611de5565b60405180910390fd5b6000841415610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad90611e05565b60405180910390fd5b6000831415610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190611d25565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff16338989898989604051602401610b3196959493929190611bef565b6040516020818303038152906040527f67088d59000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610bbb9190611b94565b6000604051808303816000865af19150503d8060008114610bf8576040519150601f19603f3d011682016040523d82523d6000602084013e610bfd565b606091505b50915091506000821415610c12573d60208201fd5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f5b6f5f6550282279c4e72b95a8ba538bea92c64dec9e8c7c08a556d4457225c88989604051610c88929190611e40565b60405180910390a460019250505095945050505050565b600080600090505b8351811015610d7357600073ffffffffffffffffffffffffffffffffffffffff16848281518110610d01577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790611d65565b60405180910390fd5b8080610d6b90611fb3565b915050610ca7565b506000821415610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90611dc5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff168585604051602401610de7929190611c9c565b6040516020818303038152906040527fdbcd19a2000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e719190611b94565b600060405180830381855afa9150503d8060008114610eac576040519150601f19603f3d011682016040523d82523d6000602084013e610eb1565b606091505b50915091506000821415610ec6573d60208201fd5b80806020019051810190610eda919061184c565b9250505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90611de5565b60405180910390fd5b6000841415611009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100090611da5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff1633898989898960405160240161104096959493929190611bef565b6040516020818303038152906040527f35315332000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ca9190611b94565b6000604051808303816000865af19150503d8060008114611107576040519150601f19603f3d011682016040523d82523d6000602084013e61110c565b606091505b50915091506000821415611121573d60208201fd5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f038116623990e7d0fed04a27e35b5dc88000ea942b37360c5898ae750bfa5df6896040516111959190611e25565b60405180910390a460019250505095945050505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561121f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121690611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561128f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128690611de5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff1686866040516024016112be929190611bc6565b6040516020818303038152906040527ff4f31ede000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516113489190611b94565b600060405180830381855afa9150503d8060008114611383576040519150601f19603f3d011682016040523d82523d6000602084013e611388565b606091505b5091509150600082141561139d573d60208201fd5b808060200190518101906113b19190611875565b9350935050509250929050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690611de5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff1685856040516024016114ce929190611bc6565b6040516020818303038152906040527fffd73c4a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115589190611b94565b600060405180830381855afa9150503d8060008114611593576040519150601f19603f3d011682016040523d82523d6000602084013e611598565b606091505b509150915060008214156115ad573d60208201fd5b808060200190518101906115c191906116b5565b9250505092915050565b60006115de6115d984611e9a565b611e69565b905080838252602082019050828560208602820111156115fd57600080fd5b60005b8581101561162d57816116138882611637565b845260208401935060208301925050600181019050611600565b5050509392505050565b6000813590506116468161205a565b92915050565b60008151905061165b81612071565b92915050565b600082601f83011261167257600080fd5b81356116828482602086016115cb565b91505092915050565b60008135905061169a81612088565b92915050565b6000815190506116af81612088565b92915050565b6000602082840312156116c757600080fd5b60006116d58482850161164c565b91505092915050565b600080604083850312156116f157600080fd5b60006116ff85828601611637565b925050602061171085828601611637565b9150509250929050565b600080600080600060a0868803121561173257600080fd5b600061174088828901611637565b955050602061175188828901611637565b94505060406117628882890161168b565b93505060606117738882890161168b565b92505060806117848882890161168b565b9150509295509295909350565b600080604083850312156117a457600080fd5b600083013567ffffffffffffffff8111156117be57600080fd5b6117ca85828601611661565b92505060206117db8582860161168b565b9150509250929050565b6000806000606084860312156117fa57600080fd5b600084013567ffffffffffffffff81111561181457600080fd5b61182086828701611661565b93505060206118318682870161168b565b92505060406118428682870161168b565b9150509250925092565b60006020828403121561185e57600080fd5b600061186c848285016116a0565b91505092915050565b6000806040838503121561188857600080fd5b6000611896858286016116a0565b92505060206118a7858286016116a0565b9150509250929050565b60006118bd83836118c9565b60208301905092915050565b6118d281611f26565b82525050565b6118e181611f26565b82525050565b60006118f282611ed6565b6118fc8185611ef9565b935061190783611ec6565b8060005b8381101561193857815161191f88826118b1565b975061192a83611eec565b92505060018101905061190b565b5085935050505092915050565b61194e81611f4a565b82525050565b600061195f82611ee1565b6119698185611f0a565b9350611979818560208601611f80565b80840191505092915050565b6000611992601783611f15565b91507f4445583a206d6178416d6f756e7442206973207a65726f0000000000000000006000830152602082019050919050565b60006119d2601b83611f15565b91507f4445583a20746f6b656e41206973207a65726f206164647265737300000000006000830152602082019050919050565b6000611a12601a83611f15565b91507f4445583a20746f6b656e206973207a65726f20616464726573730000000000006000830152602082019050919050565b6000611a52601983611f15565b91507f4445583a20737570706c79416d6f756e74206973207a65726f000000000000006000830152602082019050919050565b6000611a92601883611f15565b91507f4445583a2072656d6f76655368617265206973207a65726f00000000000000006000830152602082019050919050565b6000611ad2601983611f15565b91507f4445583a20746172676574416d6f756e74206973207a65726f000000000000006000830152602082019050919050565b6000611b12601b83611f15565b91507f4445583a20746f6b656e42206973207a65726f206164647265737300000000006000830152602082019050919050565b6000611b52601783611f15565b91507f4445583a206d6178416d6f756e7441206973207a65726f0000000000000000006000830152602082019050919050565b611b8e81611f76565b82525050565b6000611ba08284611954565b915081905092915050565b6000602082019050611bc060008301846118d8565b92915050565b6000604082019050611bdb60008301856118d8565b611be860208301846118d8565b9392505050565b600060c082019050611c0460008301896118d8565b611c1160208301886118d8565b611c1e60408301876118d8565b611c2b6060830186611b85565b611c386080830185611b85565b611c4560a0830184611b85565b979650505050505050565b6000608082019050611c6560008301876118d8565b8181036020830152611c7781866118e7565b9050611c866040830185611b85565b611c936060830184611b85565b95945050505050565b60006040820190508181036000830152611cb681856118e7565b9050611cc56020830184611b85565b9392505050565b60006060820190508181036000830152611ce681866118e7565b9050611cf56020830185611b85565b611d026040830184611b85565b949350505050565b6000602082019050611d1f6000830184611945565b92915050565b60006020820190508181036000830152611d3e81611985565b9050919050565b60006020820190508181036000830152611d5e816119c5565b9050919050565b60006020820190508181036000830152611d7e81611a05565b9050919050565b60006020820190508181036000830152611d9e81611a45565b9050919050565b60006020820190508181036000830152611dbe81611a85565b9050919050565b60006020820190508181036000830152611dde81611ac5565b9050919050565b60006020820190508181036000830152611dfe81611b05565b9050919050565b60006020820190508181036000830152611e1e81611b45565b9050919050565b6000602082019050611e3a6000830184611b85565b92915050565b6000604082019050611e556000830185611b85565b611e626020830184611b85565b9392505050565b6000604051905081810181811067ffffffffffffffff82111715611e9057611e8f61202b565b5b8060405250919050565b600067ffffffffffffffff821115611eb557611eb461202b565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611f3182611f56565b9050919050565b6000611f4382611f56565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015611f9e578082015181840152602081019050611f83565b83811115611fad576000848401525b50505050565b6000611fbe82611f76565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611ff157611ff0611ffc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61206381611f26565b811461206e57600080fd5b50565b61207a81611f38565b811461208557600080fd5b50565b61209181611f76565b811461209c57600080fd5b5056fea26469706673582212205afd204b5e69cc8a34fa2fa750ccbf41c1bda7959ff8c65712c09969d746496564736f6c63430008000033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063dbcd19a21161005b578063dbcd19a21461014d578063e2dc85dc1461017d578063f4f31ede146101ad578063ffd73c4a146101de57610088565b80633d8d96201461008d5780634d60beb1146100bd5780636fc4b4e5146100ed57806391c98a2a1461011d575b600080fd5b6100a760048036038101906100a291906117e5565b61020e565b6040516100b49190611d0a565b60405180910390f35b6100d760048036038101906100d29190611791565b6104ad565b6040516100e49190611e25565b60405180910390f35b610107600480360381019061010291906117e5565b6106f2565b6040516101149190611d0a565b60405180910390f35b6101376004803603810190610132919061171a565b610991565b6040516101449190611d0a565b60405180910390f35b61016760048036038101906101629190611791565b610c9f565b6040516101749190611e25565b60405180910390f35b6101976004803603810190610192919061171a565b610ee4565b6040516101a49190611d0a565b60405180910390f35b6101c760048036038101906101c291906116de565b6111ac565b6040516101d5929190611e40565b60405180910390f35b6101f860048036038101906101f391906116de565b6113be565b6040516102059190611bab565b60405180910390f35b600080600090505b84518110156102e257600073ffffffffffffffffffffffffffffffffffffffff16858281518110610270577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614156102cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c690611d65565b60405180910390fd5b80806102da90611fb3565b915050610216565b506000831415610327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031e90611dc5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff163387878760405160240161035a9493929190611c50565b6040516020818303038152906040527f9782ac81000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103e49190611b94565b6000604051808303816000865af19150503d8060008114610421576040519150601f19603f3d011682016040523d82523d6000602084013e610426565b606091505b5091509150600082141561043b573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7b1ccce9b5299ff0ae3d9adc0855268a4ad3527b2bcde01ccadde2fb878ecb8a8783806020019051810190610488919061184c565b8860405161049893929190611ccc565b60405180910390a26001925050509392505050565b600080600090505b835181101561058157600073ffffffffffffffffffffffffffffffffffffffff1684828151811061050f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141561056e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056590611d65565b60405180910390fd5b808061057990611fb3565b9150506104b5565b5060008214156105c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bd90611d85565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff1685856040516024016105f5929190611c9c565b6040516020818303038152906040527f4d60beb1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161067f9190611b94565b600060405180830381855afa9150503d80600081146106ba576040519150601f19603f3d011682016040523d82523d6000602084013e6106bf565b606091505b509150915060008214156106d4573d60208201fd5b808060200190518101906106e8919061184c565b9250505092915050565b600080600090505b84518110156107c657600073ffffffffffffffffffffffffffffffffffffffff16858281518110610754577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614156107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa90611d65565b60405180910390fd5b80806107be90611fb3565b9150506106fa565b50600083141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290611d85565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff163387878760405160240161083e9493929190611c50565b6040516020818303038152906040527f579baa18000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108c89190611b94565b6000604051808303816000865af19150503d8060008114610905576040519150601f19603f3d011682016040523d82523d6000602084013e61090a565b606091505b5091509150600082141561091f573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7b1ccce9b5299ff0ae3d9adc0855268a4ad3527b2bcde01ccadde2fb878ecb8a87878480602001905181019061096d919061184c565b60405161097c93929190611ccc565b60405180910390a26001925050509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6990611de5565b60405180910390fd5b6000841415610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad90611e05565b60405180910390fd5b6000831415610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190611d25565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff16338989898989604051602401610b3196959493929190611bef565b6040516020818303038152906040527f67088d59000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610bbb9190611b94565b6000604051808303816000865af19150503d8060008114610bf8576040519150601f19603f3d011682016040523d82523d6000602084013e610bfd565b606091505b50915091506000821415610c12573d60208201fd5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f5b6f5f6550282279c4e72b95a8ba538bea92c64dec9e8c7c08a556d4457225c88989604051610c88929190611e40565b60405180910390a460019250505095945050505050565b600080600090505b8351811015610d7357600073ffffffffffffffffffffffffffffffffffffffff16848281518110610d01577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790611d65565b60405180910390fd5b8080610d6b90611fb3565b915050610ca7565b506000821415610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90611dc5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff168585604051602401610de7929190611c9c565b6040516020818303038152906040527fdbcd19a2000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e719190611b94565b600060405180830381855afa9150503d8060008114610eac576040519150601f19603f3d011682016040523d82523d6000602084013e610eb1565b606091505b50915091506000821415610ec6573d60208201fd5b80806020019051810190610eda919061184c565b9250505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90611de5565b60405180910390fd5b6000841415611009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100090611da5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff1633898989898960405160240161104096959493929190611bef565b6040516020818303038152906040527f35315332000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ca9190611b94565b6000604051808303816000865af19150503d8060008114611107576040519150601f19603f3d011682016040523d82523d6000602084013e61110c565b606091505b50915091506000821415611121573d60208201fd5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f038116623990e7d0fed04a27e35b5dc88000ea942b37360c5898ae750bfa5df6896040516111959190611e25565b60405180910390a460019250505095945050505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561121f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121690611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561128f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128690611de5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff1686866040516024016112be929190611bc6565b6040516020818303038152906040527ff4f31ede000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516113489190611b94565b600060405180830381855afa9150503d8060008114611383576040519150601f19603f3d011682016040523d82523d6000602084013e611388565b606091505b5091509150600082141561139d573d60208201fd5b808060200190518101906113b19190611875565b9350935050509250929050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690611de5565b60405180910390fd5b60008061040573ffffffffffffffffffffffffffffffffffffffff1685856040516024016114ce929190611bc6565b6040516020818303038152906040527fffd73c4a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115589190611b94565b600060405180830381855afa9150503d8060008114611593576040519150601f19603f3d011682016040523d82523d6000602084013e611598565b606091505b509150915060008214156115ad573d60208201fd5b808060200190518101906115c191906116b5565b9250505092915050565b60006115de6115d984611e9a565b611e69565b905080838252602082019050828560208602820111156115fd57600080fd5b60005b8581101561162d57816116138882611637565b845260208401935060208301925050600181019050611600565b5050509392505050565b6000813590506116468161205a565b92915050565b60008151905061165b81612071565b92915050565b600082601f83011261167257600080fd5b81356116828482602086016115cb565b91505092915050565b60008135905061169a81612088565b92915050565b6000815190506116af81612088565b92915050565b6000602082840312156116c757600080fd5b60006116d58482850161164c565b91505092915050565b600080604083850312156116f157600080fd5b60006116ff85828601611637565b925050602061171085828601611637565b9150509250929050565b600080600080600060a0868803121561173257600080fd5b600061174088828901611637565b955050602061175188828901611637565b94505060406117628882890161168b565b93505060606117738882890161168b565b92505060806117848882890161168b565b9150509295509295909350565b600080604083850312156117a457600080fd5b600083013567ffffffffffffffff8111156117be57600080fd5b6117ca85828601611661565b92505060206117db8582860161168b565b9150509250929050565b6000806000606084860312156117fa57600080fd5b600084013567ffffffffffffffff81111561181457600080fd5b61182086828701611661565b93505060206118318682870161168b565b92505060406118428682870161168b565b9150509250925092565b60006020828403121561185e57600080fd5b600061186c848285016116a0565b91505092915050565b6000806040838503121561188857600080fd5b6000611896858286016116a0565b92505060206118a7858286016116a0565b9150509250929050565b60006118bd83836118c9565b60208301905092915050565b6118d281611f26565b82525050565b6118e181611f26565b82525050565b60006118f282611ed6565b6118fc8185611ef9565b935061190783611ec6565b8060005b8381101561193857815161191f88826118b1565b975061192a83611eec565b92505060018101905061190b565b5085935050505092915050565b61194e81611f4a565b82525050565b600061195f82611ee1565b6119698185611f0a565b9350611979818560208601611f80565b80840191505092915050565b6000611992601783611f15565b91507f4445583a206d6178416d6f756e7442206973207a65726f0000000000000000006000830152602082019050919050565b60006119d2601b83611f15565b91507f4445583a20746f6b656e41206973207a65726f206164647265737300000000006000830152602082019050919050565b6000611a12601a83611f15565b91507f4445583a20746f6b656e206973207a65726f20616464726573730000000000006000830152602082019050919050565b6000611a52601983611f15565b91507f4445583a20737570706c79416d6f756e74206973207a65726f000000000000006000830152602082019050919050565b6000611a92601883611f15565b91507f4445583a2072656d6f76655368617265206973207a65726f00000000000000006000830152602082019050919050565b6000611ad2601983611f15565b91507f4445583a20746172676574416d6f756e74206973207a65726f000000000000006000830152602082019050919050565b6000611b12601b83611f15565b91507f4445583a20746f6b656e42206973207a65726f206164647265737300000000006000830152602082019050919050565b6000611b52601783611f15565b91507f4445583a206d6178416d6f756e7441206973207a65726f0000000000000000006000830152602082019050919050565b611b8e81611f76565b82525050565b6000611ba08284611954565b915081905092915050565b6000602082019050611bc060008301846118d8565b92915050565b6000604082019050611bdb60008301856118d8565b611be860208301846118d8565b9392505050565b600060c082019050611c0460008301896118d8565b611c1160208301886118d8565b611c1e60408301876118d8565b611c2b6060830186611b85565b611c386080830185611b85565b611c4560a0830184611b85565b979650505050505050565b6000608082019050611c6560008301876118d8565b8181036020830152611c7781866118e7565b9050611c866040830185611b85565b611c936060830184611b85565b95945050505050565b60006040820190508181036000830152611cb681856118e7565b9050611cc56020830184611b85565b9392505050565b60006060820190508181036000830152611ce681866118e7565b9050611cf56020830185611b85565b611d026040830184611b85565b949350505050565b6000602082019050611d1f6000830184611945565b92915050565b60006020820190508181036000830152611d3e81611985565b9050919050565b60006020820190508181036000830152611d5e816119c5565b9050919050565b60006020820190508181036000830152611d7e81611a05565b9050919050565b60006020820190508181036000830152611d9e81611a45565b9050919050565b60006020820190508181036000830152611dbe81611a85565b9050919050565b60006020820190508181036000830152611dde81611ac5565b9050919050565b60006020820190508181036000830152611dfe81611b05565b9050919050565b60006020820190508181036000830152611e1e81611b45565b9050919050565b6000602082019050611e3a6000830184611b85565b92915050565b6000604082019050611e556000830185611b85565b611e626020830184611b85565b9392505050565b6000604051905081810181811067ffffffffffffffff82111715611e9057611e8f61202b565b5b8060405250919050565b600067ffffffffffffffff821115611eb557611eb461202b565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611f3182611f56565b9050919050565b6000611f4382611f56565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015611f9e578082015181840152602081019050611f83565b83811115611fad576000848401525b50505050565b6000611fbe82611f76565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611ff157611ff0611ffc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61206381611f26565b811461206e57600080fd5b50565b61207a81611f38565b811461208557600080fd5b50565b61209181611f76565b811461209c57600080fd5b5056fea26469706673582212205afd204b5e69cc8a34fa2fa750ccbf41c1bda7959ff8c65712c09969d746496564736f6c63430008000033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:20638:20", "statements": [ { "body": { "nodeType": "YulBlock", "src": "126:520:20", "statements": [ { "nodeType": "YulAssignment", "src": "136:89:20", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "217:6:20" } ], "functionName": { "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", "nodeType": "YulIdentifier", "src": "160:56:20" }, "nodeType": "YulFunctionCall", "src": "160:64:20" } ], "functionName": { "name": "allocateMemory", "nodeType": "YulIdentifier", "src": "145:14:20" }, "nodeType": "YulFunctionCall", "src": "145:80:20" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "136:5:20" } ]