diff --git a/.gitignore b/.gitignore index 29095acb..79cde4e4 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ deployments/hardhat deployments/docker subgraph/generated subgraph/tests/.bin/* +crytic-export/ +corpus/ \ No newline at end of file diff --git a/contracts/echidna/Addresses.sol b/contracts/echidna/Addresses.sol new file mode 100644 index 00000000..e8068f6e --- /dev/null +++ b/contracts/echidna/Addresses.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity =0.8.10; + +import "../Vault.sol"; +import "../test/TestERC20.sol"; + +contract Addresses { + Vault vault = Vault(0x6A4A62E5A7eD13c361b176A5F62C2eE620Ac0DF8); + TestERC20 underlying = TestERC20(0x1dC4c1cEFEF38a777b15aA20260a54E584b16C48); +} diff --git a/contracts/echidna/Echidna_Deposit_Withdraw.sol b/contracts/echidna/Echidna_Deposit_Withdraw.sol new file mode 100644 index 00000000..a5900a8a --- /dev/null +++ b/contracts/echidna/Echidna_Deposit_Withdraw.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity =0.8.10; +import "./Helper.sol"; + +contract Echidna_Deposit_Withdraw is Helper { + + // zero address should always revert + function withdraw_zero_address_recipient(uint256[] memory _ids) public { + withdraw_should_revert(address(0), _ids); + } + + function withdraw_should_revert(address recipient, uint256[] memory _ids) internal { + try vault.withdraw(recipient, _ids) { + assert(false); + } catch { + assert(true); + } + } +} diff --git a/contracts/echidna/Echidna_Deposit_Withdraw.yml b/contracts/echidna/Echidna_Deposit_Withdraw.yml new file mode 100644 index 00000000..f8271328 --- /dev/null +++ b/contracts/echidna/Echidna_Deposit_Withdraw.yml @@ -0,0 +1,5 @@ +initialize: contracts/echidna/init.json +coverage: true +testMode: assertion +corpusDir: 'corpus' +codeSize: 0xfffffffffff \ No newline at end of file diff --git a/contracts/echidna/Helper.sol b/contracts/echidna/Helper.sol new file mode 100644 index 00000000..d10cb966 --- /dev/null +++ b/contracts/echidna/Helper.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity =0.8.10; +import "./Addresses.sol"; + +contract Helper is Addresses { + + +} diff --git a/contracts/echidna/init.json b/contracts/echidna/init.json new file mode 100644 index 00000000..77154087 --- /dev/null +++ b/contracts/echidna/init.json @@ -0,0 +1,25 @@ +[ +{"event": "AccountCreated", "address": "5409ed021d9299bf6814279a6a1411a7e866a631"}, +{"event": "AccountCreated", "address": "6ecbe1db9ef729cbe972c83fb886247691fb6beb"}, +{"event": "AccountCreated", "address": "e36ea790bc9d7ab70c55260c66d52b1eca985f84"}, +{"event": "AccountCreated", "address": "e834ec434daba538cd1b9fe1582052b880bd7e63"}, +{"event": "AccountCreated", "address": "78dc5d2d739606d31509c31d654056a45185ecb6"}, +{"event": "AccountCreated", "address": "a8dda8d7f5310e4a9e24f8eba77e091ac264f872"}, +{"event": "AccountCreated", "address": "06cef8e666768cc40cc78cf93d9611019ddcb628"}, +{"event": "AccountCreated", "address": "4404ac8bd8f9618d27ad2f1485aa1b2cfd82482d"}, +{"event": "AccountCreated", "address": "7457d5e02197480db681d3fdf256c7aca21bdc12"}, +{"event": "AccountCreated", "address": "91c987bf62d25945db517bdaa840a6c661374402"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0x5e6096", "gas_price": "0x4a817c800", "data": "0x60a06040523480156200001157600080fd5b50604051620071b2380380620071b283398101604081905262000034916200036e565b6001808190555062000051826200028160201b620018741760201c565b620000a35760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e76657374506572630000000000000060448201526064015b60405180910390fd5b6001600160a01b0384166200010a5760405162461bcd60e51b815260206004820152602660248201527f5661756c74436f6e746578743a20756e6465726c79696e672063616e6e6f742060448201526506265203078360d41b60648201526084016200009a565b600083116200015c5760405162461bcd60e51b815260206004820152601960248201527f6d696e4c6f636b506572696f642063616e6e6f7420626520300000000000000060448201526064016200009a565b6200016960008262000289565b620001957fb165298935924f540e4181c03493a5d686c54a0aaeb3f6216de85b7ffbba77388262000289565b6004829055600280546001600160a01b0319166001600160a01b03861617905560808390526040513090620001ca9062000339565b6001600160a01b039091168152602001604051809103906000f080158015620001f7573d6000803e3d6000fd5b50600680546001600160a01b0319166001600160a01b03929092169190911790556040513090620002289062000347565b6001600160a01b039091168152602001604051809103906000f08015801562000255573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b039290921691909117905550620003bf92505050565b612710101590565b62000295828262000299565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000295576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002f53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611c8d806200383d83390190565b611ce880620054ca83390190565b6001600160a01b03811681146200036b57600080fd5b50565b600080600080608085870312156200038557600080fd5b8451620003928162000355565b8094505060208501519250604085015191506060850151620003b48162000355565b939692955090935050565b60805161345b620003e2600039600081816103ce01526114db015261345b6000f3fe608060405234801561001057600080fd5b50600436106102c85760003560e01c8063947fdb8b1161017b578063c0ddb692116100d8578063df6f9ba71161008c578063e84b25a211610071578063e84b25a21461063f578063eb0ebfbc14610652578063f0f442601461065b57600080fd5b8063df6f9ba714610619578063e4020fdf1461062c57600080fd5b8063c70920bc116100bd578063c70920bc146105eb578063d547741f146105f3578063d812053f1461060657600080fd5b8063c0ddb692146105cb578063c63aa3e7146105d357600080fd5b8063aaa466881161012f578063b0c29efe11610114578063b0c29efe146105b0578063bba97d33146105b8578063bd2e3ecd1461041757600080fd5b8063aaa4668814610548578063b02c43d01461055b57600080fd5b8063a164c25d11610160578063a164c25d14610523578063a217fddf1461052d578063a8c62e761461053557600080fd5b8063947fdb8b146104fd578063999927df1461051057600080fd5b80636f307dc3116102295780638293744b116101dd5780638b6ed67d116101c25780638b6ed67d14610493578063908de6c2146104a657806391d14854146104c657600080fd5b80638293744b1461045d578063878ecfec1461047057600080fd5b806376082a5e1161020e57806376082a5e146103f057806376490b56146104175780637c2032e71461042157600080fd5b80636f307dc31461039e57806373ae54b5146103c957600080fd5b806333a100ca116102805780633a98ef39116102655780633a98ef39146103835780633c90a1701461038c5780634b1533b21461039557600080fd5b806333a100ca1461035d57806336568abe1461037057600080fd5b8063248a9ca3116102b1578063248a9ca31461031257806324f2db0c146103355780632f2ff15d1461034a57600080fd5b806301ffc9a7146102cd5780631325d5f1146102f5575b600080fd5b6102e06102db366004612d70565b61066e565b60405190151581526020015b60405180910390f35b610304670de0b6b3a764000081565b6040519081526020016102ec565b610304610320366004612d9a565b60009081526020819052604090206001015490565b610348610343366004612db3565b6106e6565b005b610348610358366004612e3d565b610854565b61034861036b366004612e6d565b61087f565b61034861037e366004612e3d565b610b04565b610304600d5481565b61030460045481565b610304600e5481565b6002546103b1906001600160a01b031681565b6040516001600160a01b0390911681526020016102ec565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b6103047fb165298935924f540e4181c03493a5d686c54a0aaeb3f6216de85b7ffbba773881565b61030462dd7c0081565b61044861042f366004612d9a565b600b602052600090815260409020805460019091015482565b604080519283526020830191909152016102ec565b61034861046b366004612efa565b610b90565b61030461047e366004612d9a565b6000908152600b602052604090206001015490565b6007546103b1906001600160a01b031681565b6103046104b4366004612d9a565b6000908152600b602052604090205490565b6102e06104d4366004612e3d565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61034861050b366004612fb5565b610c52565b61034861051e366004612e6d565b610e9b565b6103046212750081565b610304600081565b6003546103b1906001600160a01b031681565b6006546103b1906001600160a01b031681565b610590610569366004612d9a565b60096020526000908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016102ec565b6103046110c0565b6103046105c6366004612e6d565b611175565b610304611258565b60405167ffffffffffffffff421681526020016102ec565b61030461128a565b610348610601366004612e3d565b6113fc565b610348610614366004612fd7565b611422565b610348610627366004612efa565b61161b565b61034861063a366004612efa565b6116d5565b61034861064d366004613029565b61178d565b61030460055481565b610348610669366004612e6d565b611830565b60006001600160e01b031982167fc56fd5460000000000000000000000000000000000000000000000000000000014806106d157506001600160e01b031982167f9b736be800000000000000000000000000000000000000000000000000000000145b806106e057506106e08261187c565b92915050565b7fb165298935924f540e4181c03493a5d686c54a0aaeb3f6216de85b7ffbba773861071181336118e3565b6003546001600160a01b031661076e5760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a207374726174656779206973206e6f742073657400000000000060448201526064015b60405180910390fd5b60006107786110c0565b905080156107d15760035460025461079d916001600160a01b03918216911683611961565b6040518181527fac9f7997c30b6a3cc9c74953898b5de154359339c7ec0d6d70ceb98e55db1a4b9060200160405180910390a15b6003546040517f8842db470000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638842db479061081c9087908790600401613044565b600060405180830381600087803b15801561083657600080fd5b505af115801561084a573d6000803e3d6000fd5b5050505050505050565b60008281526020819052604090206001015461087081336118e3565b61087a83836119f2565b505050565b600061088b81336118e3565b6001600160a01b0382166108e15760405162461bcd60e51b815260206004820152601260248201527f5661756c743a20737472617465677920307800000000000000000000000000006044820152606401610765565b306001600160a01b0316826001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094d9190613073565b6001600160a01b0316146109a35760405162461bcd60e51b815260206004820152601460248201527f5661756c743a20696e76616c6964207661756c740000000000000000000000006044820152606401610765565b6003546001600160a01b03161580610a2f5750600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d9190613090565b155b610aa15760405162461bcd60e51b815260206004820152602260248201527f5661756c743a2073747261746567792068617320696e7665737465642066756e60448201527f64730000000000000000000000000000000000000000000000000000000000006064820152608401610765565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091556040517f4da9c22c924692646a21cf1f423781ae3285198dc22e8a6912835d3272b90b3c90600090a25050565b6001600160a01b0381163314610b825760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610765565b610b8c8282611a90565b5050565b60026001541415610be35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b038216610c3e5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b610c4a82826000611b0f565b505060018055565b60026001541415610ca55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b600260015581610cf75760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f742073706f6e736f7220300000000000000000006044820152606401610765565b621275008110158015610d0d575062dd7c008111155b610d595760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20696e76616c6964206c6f636b20706572696f640000000000006044820152606401610765565b6000610d6542836130bf565b6006549091506000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015610dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de79190613090565b6040805160808101825286815260006020808301828152838501888152606085018481528785526009845293869020945185559051600185015551600284015590516003909201919091558151878152908101859052919250339183917f7ca3497675c6d3ec00b1edc13b8e0b06169ee96a663ab25a74af7da53378f09e910160405180910390a38360056000828254610e8191906130bf565b90915550610e9190503385611b99565b5050600180555050565b60026001541415610eee5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b038116610f495760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b6000610f5433611175565b905080610f6157506110b9565b6000610f7782600d54610f72611258565b611c4e565b90506000610f8f82600d54610f8a611258565b611d0d565b6007549091506000906001600160a01b03166342ec38e2336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f9190613090565b600254909150611029906001600160a01b03168684611961565b6000818152600b60205260408120600101805485929061104a9084906130d7565b9250508190555082600d600082825461106391906130d7565b909155505060408051828152602081018490529081018490526001600160a01b038616907fc64c05237373d420472e7259849c0a314d9c3424021920543562ceffa9b10f949060600160405180910390a2505050505b5060018055565b6000806110d76004546110d161128a565b90611d3c565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111529190613090565b90508181106111645760009250505090565b61116e81836130d7565b9250505090565b6007546040517f42ec38e20000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009283929116906342ec38e290602401602060405180830381865afa1580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112009190613090565b6000818152600b602052604081208054600190910154600d54939450909290919061122f908390610f8a611258565b90508281116112445750600095945050505050565b61124e83826130d7565b9695505050505050565b60008061126361128a565b905080600554111561127757600091505090565b60055461128490826130d7565b91505090565b6003546000906001600160a01b03161561139057600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113159190613090565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561135d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113819190613090565b61138b91906130bf565b905090565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138b9190613090565b60008281526020819052604090206001015461141881336118e3565b61087a8383611a90565b600260015414156114755760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b6002600155600e5460009061148990611d55565b905081356114d95760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f74206465706f73697420300000000000000000006044820152606401610765565b7f0000000000000000000000000000000000000000000000000000000000000000826040013510158015611514575062dd7c00826040013511155b6115605760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20696e76616c6964206c6f636b20706572696f640000000000006044820152606401610765565b611568611258565b8111156115dd5760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a2063616e6e6f74206465706f736974207768656e207969656c6460448201527f206973206e6567617469766500000000000000000000000000000000000000006064820152608401610765565b60006115ed4260408501356130bf565b905061160783358261160260208701876130ee565b611df2565b611612338435611b99565b50506001805550565b6002600154141561166e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b0382166116c95760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b610c4a82826001611b0f565b600260015414156117285760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b0382166117835760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b610c4a828261201c565b600061179981336118e3565b61ffff821661271010156117ef5760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e7665737450657263000000000000006044820152606401610765565b60405161ffff831681527fdd970e7931ce785c1e52bab847c1a662f017c55c66edb76ddebbf61b5aa307859060200160405180910390a15061ffff16600455565b600061183c81336118e3565b6040516001600160a01b038316907f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a25050565b612710101590565b60006001600160e01b031982167f7965db0b0000000000000000000000000000000000000000000000000000000014806106e057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146106e0565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610b8c5761191f816001600160a01b03166014612320565b61192a836020612320565b60405160200161193b92919061316b565b60408051601f198184030181529082905262461bcd60e51b825261076591600401613218565b6040516001600160a01b03831660248201526044810182905261087a9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152612501565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610b8c576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611a4c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610b8c576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600d546000611b1c611258565b8451909150600090815b818160ff161015611b7857611b5a878260ff1681518110611b4957611b4961322b565b602002602001015186868b8a6125e6565b611b6490846130bf565b925080611b7081613241565b915050611b26565b50600254611b90906001600160a01b03168884611961565b50505050505050565b6000611ba361128a565b600254909150611bbe906001600160a01b03168430856129c1565b6000611bc861128a565b9050611bd483836130bf565b8114611c485760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a20616d6f756e7420726563656976656420646f6573206e6f742060448201527f6d6174636820706172616d7300000000000000000000000000000000000000006064820152608401610765565b50505050565b600083611c5d57506000611d06565b82611c7b57611c74670de0b6b3a764000085613261565b9050611d06565b81611cee5760405162461bcd60e51b815260206004820152603660248201527f5661756c743a2063616e6e6f7420636f6d70757465207368617265732077686560448201527f6e2074686572652773206e6f207072696e636970616c000000000000000000006064820152608401610765565b81611cf98486613261565b611d039190613280565b90505b9392505050565b6000821580611d1a575081155b15611d2757506000611d06565b82611d328584613261565b611c749190613280565b6000612710611d4b8385613261565b611d069190613280565b6003546000906001600160a01b0316611d6c575090565b6003546040517f93c3a68f000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116906393c3a68f90602401602060405180830381865afa158015611dce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e09190613090565b600d546000611dff611258565b90506000611e0c60085490565b905060008085611e20600880546001019055565b60005b81811015611f49576000898983818110611e3f57611e3f61322b565b9050602002810190611e5191906132a2565b611e5a906132c2565b805190915061ffff16611ed55760405162461bcd60e51b815260206004820152602360248201527f5661756c743a20636c61696d2070657263656e746167652063616e6e6f74206260448201527f65203000000000000000000000000000000000000000000000000000000000006064820152608401610765565b6000611ee26001856130d7565b8314611efe578151611ef9908e9061ffff16611d3c565b611f08565b611f08858e6130d7565b9050611f1887828e858d8d612a12565b8151611f289061ffff16876130bf565b9550611f3481866130bf565b9450505080611f4290613382565b9050611e23565b506127108314611fc15760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20636c61696d7320646f6e27742061646420757020746f20313060448201527f30250000000000000000000000000000000000000000000000000000000000006064820152608401610765565b8982146120105760405162461bcd60e51b815260206004820152601c60248201527f5661756c743a20616d6f756e7420646f65736e277420616464207570000000006044820152606401610765565b50505050505050505050565b8051600090815b818160ff161015612292576000848260ff16815181106120455761204561322b565b602090810291909101810151600081815260099092526040808320600281015460019091015460065492516331a9108f60e11b8152600481018590529395509093909290916001600160a01b031690636352211e90602401602060405180830381865afa1580156120ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120de9190613073565b6000858152600960205260409020549091506001600160a01b03821633146121485760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20796f7520617265206e6f7420616c6c6f7765640000000000006044820152606401610765565b428411156121985760405162461bcd60e51b815260206004820152601760248201527f5661756c743a20616d6f756e74206973206c6f636b65640000000000000000006044820152606401610765565b82156121e65760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f7420612073706f6e736f726044820152606401610765565b6121f081896130bf565b600654604051630852cd8d60e31b8152600481018890529199506001600160a01b0316906342966c6890602401600060405180830381600087803b15801561223757600080fd5b505af115801561224b573d6000803e3d6000fd5b50506040518792507f05394e48d744e4a16d65f52f88cdaf0f60f5d18af259df878d44cb80826d221f9150600090a25050505050808061228a90613241565b915050612023565b508161229c61128a565b8111156122eb5760405162461bcd60e51b815260206004820152601760248201527f5661756c743a206e6f7420656e6f7567682066756e64730000000000000000006044820152606401610765565b82600560008282546122fd91906130d7565b9091555050600254612319906001600160a01b03168683611961565b5050505050565b6060600061232f836002613261565b61233a9060026130bf565b67ffffffffffffffff81111561235257612352612e8a565b6040519080825280601f01601f19166020018201604052801561237c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106123b3576123b361322b565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106123fe576123fe61322b565b60200101906001600160f81b031916908160001a9053506000612422846002613261565b61242d9060016130bf565b90505b60018111156124b2577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061246e5761246e61322b565b1a60f81b8282815181106124845761248461322b565b60200101906001600160f81b031916908160001a90535060049490941c936124ab8161339d565b9050612430565b508315611d065760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610765565b6000612556826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612c659092919063ffffffff16565b80519091501561087a578080602001905181019061257491906133b4565b61087a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610765565b6000336006546040516331a9108f60e11b8152600481018990526001600160a01b039283169290911690636352211e90602401602060405180830381865afa158015612636573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265a9190613073565b6001600160a01b0316146126d65760405162461bcd60e51b815260206004820152602960248201527f5661756c743a20796f7520617265206e6f7420746865206f776e6572206f662060448201527f61206465706f73697400000000000000000000000000000000000000000000006064820152608401610765565b6000868152600960205260409020600201544210156127375760405162461bcd60e51b815260206004820152601860248201527f5661756c743a206465706f736974206973206c6f636b656400000000000000006044820152606401610765565b6000868152600960205260409020600101546127955760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f742061206465706f7369746044820152606401610765565b600086815260096020908152604080832060018082015460038301549254818752600b909552928520908101549054929491939290916127d6848c8c611c4e565b90506000858211806127e757508382115b90508880156127f35750805b1561281457826128038587613261565b61280d9190613280565b9150612888565b80156128885760405162461bcd60e51b815260206004820152603560248201527f5661756c743a2063616e6e6f74207769746864726177206d6f7265207468616e60448201527f2074686520617661696c61626c6520616d6f756e7400000000000000000000006064820152608401610765565b6000878152600b6020526040812060010180548492906128a99084906130d7565b90915550506000878152600b6020526040812080548792906128cc9084906130d7565b9250508190555081600d60008282546128e591906130d7565b9250508190555084600e60008282546128fe91906130d7565b9091555050600654604051630852cd8d60e31b8152600481018f90526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b50505050896001600160a01b03168d7f95fa98cd1a0b1d7d20d4f5d9f62889e8cfd8d172a99939d2a2f46bb668eb2f4f8460405161299d91815260200190565b60405180910390a36129b0828d8d611d0d565b9d9c50505050505050505050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611c489085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016119a6565b6000612a1f868484611c4e565b60075460208601516040517f6a6278420000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350600092911690636a627842906024016020604051808303816000875af1158015612a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab29190613090565b905081600b60008381526020019081526020016000206001016000828254612ada91906130bf565b90915550506000818152600b602052604081208054899290612afd9084906130bf565b9250508190555081600d6000828254612b1691906130bf565b9250508190555086600e6000828254612b2f91906130bf565b90915550506006546000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015612b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb39190613090565b604080516080810182528a815260208082018681528284018c81526060840189815260008781526009855295909520935184559051600184015551600283015591516003909101558701519091506001600160a01b0316336001600160a01b0316827fd65adbe4936a4680b96204561081c35dabe24fe745c6d959f2acb5d7ee40028a8c8c88888e8e60400151604051612c52969594939291906133d6565b60405180910390a4505050505050505050565b6060611d03848460008585843b612cbe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610765565b600080866001600160a01b03168587604051612cda9190613413565b60006040518083038185875af1925050503d8060008114612d17576040519150601f19603f3d011682016040523d82523d6000602084013e612d1c565b606091505b5091509150612d2c828286612d37565b979650505050505050565b60608315612d46575081611d06565b825115612d565782518084602001fd5b8160405162461bcd60e51b81526004016107659190613218565b600060208284031215612d8257600080fd5b81356001600160e01b031981168114611d0657600080fd5b600060208284031215612dac57600080fd5b5035919050565b60008060208385031215612dc657600080fd5b823567ffffffffffffffff80821115612dde57600080fd5b818501915085601f830112612df257600080fd5b813581811115612e0157600080fd5b866020828501011115612e1357600080fd5b60209290920196919550909350505050565b6001600160a01b0381168114612e3a57600080fd5b50565b60008060408385031215612e5057600080fd5b823591506020830135612e6281612e25565b809150509250929050565b600060208284031215612e7f57600080fd5b8135611d0681612e25565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612ec357612ec3612e8a565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612ef257612ef2612e8a565b604052919050565b60008060408385031215612f0d57600080fd5b8235612f1881612e25565b915060208381013567ffffffffffffffff80821115612f3657600080fd5b818601915086601f830112612f4a57600080fd5b813581811115612f5c57612f5c612e8a565b8060051b9150612f6d848301612ec9565b8181529183018401918481019089841115612f8757600080fd5b938501935b83851015612fa557843582529385019390850190612f8c565b8096505050505050509250929050565b60008060408385031215612fc857600080fd5b50508035926020909101359150565b600060208284031215612fe957600080fd5b813567ffffffffffffffff81111561300057600080fd5b820160608185031215611d0657600080fd5b803561ffff8116811461302457600080fd5b919050565b60006020828403121561303b57600080fd5b611d0682613012565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561308557600080fd5b8151611d0681612e25565b6000602082840312156130a257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156130d2576130d26130a9565b500190565b6000828210156130e9576130e96130a9565b500390565b6000808335601e1984360301811261310557600080fd5b83018035915067ffffffffffffffff82111561312057600080fd5b6020019150600581901b360382131561313857600080fd5b9250929050565b60005b8381101561315a578181015183820152602001613142565b83811115611c485750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516131a381601785016020880161313f565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516131e081602884016020880161313f565b01602801949350505050565b6000815180845261320481602086016020860161313f565b601f01601f19169290920160200192915050565b602081526000611d0660208301846131ec565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff811415613258576132586130a9565b60010192915050565b600081600019048311821515161561327b5761327b6130a9565b500290565b60008261329d57634e487b7160e01b600052601260045260246000fd5b500490565b60008235605e198336030181126132b857600080fd5b9190910192915050565b6000606082360312156132d457600080fd5b6132dc612ea0565b6132e583613012565b81526020808401356132f681612e25565b82820152604084013567ffffffffffffffff8082111561331557600080fd5b9085019036601f83011261332857600080fd5b81358181111561333a5761333a612e8a565b61334c601f8201601f19168501612ec9565b9150808252368482850101111561336257600080fd5b808484018584013760009082019093019290925250604082015292915050565b6000600019821415613396576133966130a9565b5060010190565b6000816133ac576133ac6130a9565b506000190190565b6000602082840312156133c657600080fd5b81518015158114611d0657600080fd5b86815285602082015284604082015283606082015282608082015260c060a0820152600061340760c08301846131ec565b98975050505050505050565b600082516132b881846020870161313f56fea2646970667358221220b18d9865cb4b79d3a360334c53218d688dfc40ae8f307e295bf39de6a31deb9064736f6c634300080a003360806040523480156200001157600080fd5b5060405162001c8d38038062001c8d833981016040819052620000349162000149565b6040805160208082018084526000808452845192830190945283825282519293919262000063929190620000a3565b50805162000079906001906020840190620000a3565b5050600780546001600160a01b0319166001600160a01b03939093169290921790915550620001b8565b828054620000b1906200017b565b90600052602060002090601f016020900481019282620000d5576000855562000120565b82601f10620000f057805160ff191683800117855562000120565b8280016001018555821562000120579182015b828111156200012057825182559160200191906001019062000103565b506200012e92915062000132565b5090565b5b808211156200012e576000815560010162000133565b6000602082840312156200015c57600080fd5b81516001600160a01b03811681146200017457600080fd5b9392505050565b600181811c908216806200019057607f821691505b60208210811415620001b257634e487b7160e01b600052602260045260246000fd5b50919050565b611ac580620001c86000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636352211e116100b2578063a22cb46511610081578063c87b56dd11610066578063c87b56dd1461025e578063e985e9c514610271578063fbfa77cf146102ad57600080fd5b8063a22cb46514610238578063b88d4fde1461024b57600080fd5b80636352211e146101e95780636a627842146101fc57806370a082311461021d57806395d89b411461023057600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342966c68146101c35780634f558e79146101d657600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e36600461151d565b6102c0565b60405190151581526020015b60405180910390f35b61015061035d565b60405161013f9190611592565b61017061016b3660046115a5565b610454565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046115d3565b6104ee565b005b61019b6101ab3660046115ff565b610620565b61019b6101be3660046115ff565b6106a7565b61019b6101d13660046115a5565b6106c2565b6101336101e43660046115a5565b610728565b6101706101f73660046115a5565b610747565b61020f61020a366004611640565b6107d2565b60405190815260200161013f565b61020f61022b366004611640565b610854565b6101506108ee565b61019b61024636600461165d565b6109d1565b61019b61025936600461170a565b6109e0565b61015061026c3660046115a5565b610a6e565b61013361027f3660046117b9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061032357506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061035757507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb91906117e7565b6001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015610408573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104309190810190611804565b604051602001610440919061187b565b604051602081830303815290604052905090565b6000818152600260205260408120546001600160a01b03166104d25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006104f982610747565b9050806001600160a01b0316836001600160a01b031614156105835760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016104c9565b336001600160a01b038216148061059f575061059f813361027f565b6106115760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016104c9565b61061b8383610b64565b505050565b61062a3382610bdf565b61069c5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104c9565b61061b838383610cd6565b61061b838383604051806020016040528060008152506109e0565b6007546001600160a01b0316331461071c5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a656400000000000060448201526064016104c9565b61072581610eb0565b50565b6000818152600260205260408120546001600160a01b03161515610357565b6000818152600260205260408120546001600160a01b0316806103575760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016104c9565b6007546000906001600160a01b0316331461082f5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a656400000000000060448201526064016104c9565b600061083a60065490565b905061084a600680546001019055565b6103578382610f58565b60006001600160a01b0382166108d25760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016104c9565b506001600160a01b031660009081526003602052604090205490565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c91906117e7565b6001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610999573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c19190810190611804565b60405160200161044091906118e7565b6109dc338383610f72565b5050565b6109ea3383610bdf565b610a5c5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104c9565b610a6884848484611041565b50505050565b6000818152600260205260409020546060906001600160a01b0316610afb5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e000000000000000000000000000000000060648201526084016104c9565b6000610b1260408051602081019091526000815290565b90506000815111610b325760405180602001604052806000815250610b5d565b80610b3c846110bf565b604051602001610b4d929190611953565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610ba682610747565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610c585760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016104c9565b6000610c6383610747565b9050806001600160a01b0316846001600160a01b03161480610c9e5750836001600160a01b0316610c9384610454565b6001600160a01b0316145b80610cce57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610ce982610747565b6001600160a01b031614610d655760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016104c9565b6001600160a01b038216610de05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104c9565b610deb600082610b64565b6001600160a01b0383166000908152600360205260408120805460019290610e14908490611998565b90915550506001600160a01b0382166000908152600360205260408120805460019290610e429084906119af565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000610ebb82610747565b9050610ec8600083610b64565b6001600160a01b0381166000908152600360205260408120805460019290610ef1908490611998565b9091555050600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6109dc8282604051806020016040528060008152506111f1565b816001600160a01b0316836001600160a01b03161415610fd45760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104c9565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61104c848484610cd6565b6110588484848461126f565b610a685760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104c9565b6060816110ff57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156111295780611113816119c7565b91506111229050600a836119f8565b9150611103565b60008167ffffffffffffffff8111156111445761114461169b565b6040519080825280601f01601f19166020018201604052801561116e576020820181803683370190505b5090505b8415610cce57611183600183611998565b9150611190600a86611a0c565b61119b9060306119af565b60f81b8183815181106111b0576111b0611a20565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506111ea600a866119f8565b9450611172565b6111fb83836113b8565b611208600084848461126f565b61061b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104c9565b60006001600160a01b0384163b156113ad57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906112b3903390899088908890600401611a36565b6020604051808303816000875af19250505080156112ee575060408051601f3d908101601f191682019092526112eb91810190611a72565b60015b611393573d80801561131c576040519150601f19603f3d011682016040523d82523d6000602084013e611321565b606091505b50805161138b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104c9565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610cce565b506001949350505050565b6001600160a01b03821661140e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104c9565b6000818152600260205260409020546001600160a01b0316156114735760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104c9565b6001600160a01b038216600090815260036020526040812080546001929061149c9084906119af565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461072557600080fd5b60006020828403121561152f57600080fd5b8135610b5d81611507565b60005b8381101561155557818101518382015260200161153d565b83811115610a685750506000910152565b6000815180845261157e81602086016020860161153a565b601f01601f19169290920160200192915050565b602081526000610b5d6020830184611566565b6000602082840312156115b757600080fd5b5035919050565b6001600160a01b038116811461072557600080fd5b600080604083850312156115e657600080fd5b82356115f1816115be565b946020939093013593505050565b60008060006060848603121561161457600080fd5b833561161f816115be565b9250602084013561162f816115be565b929592945050506040919091013590565b60006020828403121561165257600080fd5b8135610b5d816115be565b6000806040838503121561167057600080fd5b823561167b816115be565b91506020830135801515811461169057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116da576116da61169b565b604052919050565b600067ffffffffffffffff8211156116fc576116fc61169b565b50601f01601f191660200190565b6000806000806080858703121561172057600080fd5b843561172b816115be565b9350602085013561173b816115be565b925060408501359150606085013567ffffffffffffffff81111561175e57600080fd5b8501601f8101871361176f57600080fd5b803561178261177d826116e2565b6116b1565b81815288602083850101111561179757600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600080604083850312156117cc57600080fd5b82356117d7816115be565b91506020830135611690816115be565b6000602082840312156117f957600080fd5b8151610b5d816115be565b60006020828403121561181657600080fd5b815167ffffffffffffffff81111561182d57600080fd5b8201601f8101841361183e57600080fd5b805161184c61177d826116e2565b81815285602083850101111561186157600080fd5b61187282602083016020860161153a565b95945050505050565b7f53616e64636c6f636b00000000000000000000000000000000000000000000008152600082516118b381600985016020870161153a565b7f202d204465706f7369746f7273000000000000000000000000000000000000006009939091019283015250601601919050565b7f51554152545a2d0000000000000000000000000000000000000000000000000081526000825161191f81600785016020870161153a565b7f2d444550000000000000000000000000000000000000000000000000000000006007939091019283015250600b01919050565b6000835161196581846020880161153a565b83519083019061197981836020880161153a565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119aa576119aa611982565b500390565b600082198211156119c2576119c2611982565b500190565b60006000198214156119db576119db611982565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611a0757611a076119e2565b500490565b600082611a1b57611a1b6119e2565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b03808716835280861660208401525083604083015260806060830152611a686080830184611566565b9695505050505050565b600060208284031215611a8457600080fd5b8151610b5d8161150756fea26469706673582212205ee5b51e017fa66607bf66829c4928d99498f3642272c14859c0e9376a47846c64736f6c634300080a003360806040523480156200001157600080fd5b5060405162001ce838038062001ce8833981016040819052620000349162000149565b6040805160208082018084526000808452845192830190945283825282519293919262000063929190620000a3565b50805162000079906001906020840190620000a3565b5050600780546001600160a01b0319166001600160a01b03939093169290921790915550620001b8565b828054620000b1906200017b565b90600052602060002090601f016020900481019282620000d5576000855562000120565b82601f10620000f057805160ff191683800117855562000120565b8280016001018555821562000120579182015b828111156200012057825182559160200191906001019062000103565b506200012e92915062000132565b5090565b5b808211156200012e576000815560010162000133565b6000602082840312156200015c57600080fd5b81516001600160a01b03811681146200017457600080fd5b9392505050565b600181811c908216806200019057607f821691505b60208210811415620001b257634e487b7160e01b600052602260045260246000fd5b50919050565b611b2080620001c86000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636a627842116100b2578063adde18b011610081578063c87b56dd11610066578063c87b56dd14610281578063e985e9c514610294578063fbfa77cf146102d057600080fd5b8063adde18b01461024e578063b88d4fde1461026e57600080fd5b80636a6278421461020d57806370a082311461022057806395d89b4114610233578063a22cb4651461023b57600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342ec38e2146101c35780636352211e146101fa57600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e366004611578565b6102e3565b60405190151581526020015b60405180910390f35b610150610380565b60405161013f91906115ed565b61017061016b366004611600565b610477565b6040516001600160a01b03909116815260200161013f565b61019b61019636600461162e565b610511565b005b61019b6101ab36600461165a565b610643565b61019b6101be36600461165a565b6106ca565b6101ec6101d136600461169b565b6001600160a01b031660009081526008602052604090205490565b60405190815260200161013f565b610170610208366004611600565b6106e5565b6101ec61021b36600461169b565b610770565b6101ec61022e36600461169b565b610807565b6101506108a1565b61019b6102493660046116b8565b610984565b6101ec61025c36600461169b565b60086020526000908152604090205481565b61019b61027c366004611765565b610993565b61015061028f366004611600565b610a21565b6101336102a2366004611814565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061034657506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061037a57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee9190611842565b6001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801561042b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610453919081019061185f565b60405160200161046391906118d6565b604051602081830303815290604052905090565b6000818152600260205260408120546001600160a01b03166104f55760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061051c826106e5565b9050806001600160a01b0316836001600160a01b031614156105a65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016104ec565b336001600160a01b03821614806105c257506105c281336102a2565b6106345760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016104ec565b61063e8383610b17565b505050565b61064d3382610b92565b6106bf5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104ec565b61063e838383610c89565b61063e83838360405180602001604052806000815250610993565b6000818152600260205260408120546001600160a01b03168061037a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016104ec565b6007546000906001600160a01b031633146107cd5760405162461bcd60e51b815260206004820152601860248201527f436c61696d6572733a206e6f7420617574686f72697a6564000000000000000060448201526064016104ec565b6001600160a01b0382166000908152600860205260409020548061037a576107f9600680546001019055565b5060065461037a8382610e6e565b60006001600160a01b0382166108855760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016104ec565b506001600160a01b031660009081526003602052604090205490565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa1580156108eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090f9190611842565b6001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561094c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610974919081019061185f565b6040516020016104639190611942565b61098f338383610e88565b5050565b61099d3383610b92565b610a0f5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104ec565b610a1b84848484610f57565b50505050565b6000818152600260205260409020546060906001600160a01b0316610aae5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e000000000000000000000000000000000060648201526084016104ec565b6000610ac560408051602081019091526000815290565b90506000815111610ae55760405180602001604052806000815250610b10565b80610aef84610fd5565b604051602001610b009291906119ae565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610b59826106e5565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610c0b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016104ec565b6000610c16836106e5565b9050806001600160a01b0316846001600160a01b03161480610c515750836001600160a01b0316610c4684610477565b6001600160a01b0316145b80610c8157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610c9c826106e5565b6001600160a01b031614610d185760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016104ec565b6001600160a01b038216610d935760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104ec565b610d9e838383611107565b610da9600082610b17565b6001600160a01b0383166000908152600360205260408120805460019290610dd29084906119f3565b90915550506001600160a01b0382166000908152600360205260408120805460019290610e00908490611a0a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61098f82826040518060200160405280600081525061123d565b816001600160a01b0316836001600160a01b03161415610eea5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104ec565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610f62848484610c89565b610f6e848484846112bb565b610a1b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104ec565b60608161101557505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561103f578061102981611a22565b91506110389050600a83611a53565b9150611019565b60008167ffffffffffffffff81111561105a5761105a6116f6565b6040519080825280601f01601f191660200182016040528015611084576020820181803683370190505b5090505b8415610c81576110996001836119f3565b91506110a6600a86611a67565b6110b1906030611a0a565b60f81b8183815181106110c6576110c6611a7b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611100600a86611a53565b9450611088565b6001600160a01b03821661115d5760405162461bcd60e51b815260206004820152601e60248201527f436c61696d6572733a2063616e6e6f74206275726e2074686973204e4654000060448201526064016104ec565b6001600160a01b038316611189576001600160a01b039190911660009081526008602052604090205550565b6001600160a01b038216600090815260086020526040902054156112155760405162461bcd60e51b815260206004820152602860248201527f436c61696d6572733a2064657374696e6174696f6e20616c726561647920686160448201527f7320616e204e465400000000000000000000000000000000000000000000000060648201526084016104ec565b6001600160a01b03928316600090815260086020526040808220829055929093168352912055565b6112478383611404565b61125460008484846112bb565b61063e5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104ec565b60006001600160a01b0384163b156113f957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906112ff903390899088908890600401611a91565b6020604051808303816000875af192505050801561133a575060408051601f3d908101601f1916820190925261133791810190611acd565b60015b6113df573d808015611368576040519150601f19603f3d011682016040523d82523d6000602084013e61136d565b606091505b5080516113d75760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104ec565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610c81565b506001949350505050565b6001600160a01b03821661145a5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104ec565b6000818152600260205260409020546001600160a01b0316156114bf5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104ec565b6114cb60008383611107565b6001600160a01b03821660009081526003602052604081208054600192906114f4908490611a0a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461157557600080fd5b50565b60006020828403121561158a57600080fd5b8135610b108161155f565b60005b838110156115b0578181015183820152602001611598565b83811115610a1b5750506000910152565b600081518084526115d9816020860160208601611595565b601f01601f19169290920160200192915050565b602081526000610b1060208301846115c1565b60006020828403121561161257600080fd5b5035919050565b6001600160a01b038116811461157557600080fd5b6000806040838503121561164157600080fd5b823561164c81611619565b946020939093013593505050565b60008060006060848603121561166f57600080fd5b833561167a81611619565b9250602084013561168a81611619565b929592945050506040919091013590565b6000602082840312156116ad57600080fd5b8135610b1081611619565b600080604083850312156116cb57600080fd5b82356116d681611619565b9150602083013580151581146116eb57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611735576117356116f6565b604052919050565b600067ffffffffffffffff821115611757576117576116f6565b50601f01601f191660200190565b6000806000806080858703121561177b57600080fd5b843561178681611619565b9350602085013561179681611619565b925060408501359150606085013567ffffffffffffffff8111156117b957600080fd5b8501601f810187136117ca57600080fd5b80356117dd6117d88261173d565b61170c565b8181528860208385010111156117f257600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b6000806040838503121561182757600080fd5b823561183281611619565b915060208301356116eb81611619565b60006020828403121561185457600080fd5b8151610b1081611619565b60006020828403121561187157600080fd5b815167ffffffffffffffff81111561188857600080fd5b8201601f8101841361189957600080fd5b80516118a76117d88261173d565b8181528560208385010111156118bc57600080fd5b6118cd826020830160208601611595565b95945050505050565b7f53616e64636c6f636b000000000000000000000000000000000000000000000081526000825161190e816009850160208701611595565b7f202d204465706f7369746f7273000000000000000000000000000000000000006009939091019283015250601601919050565b7f51554152545a2d0000000000000000000000000000000000000000000000000081526000825161197a816007850160208701611595565b7f2d444550000000000000000000000000000000000000000000000000000000006007939091019283015250600b01919050565b600083516119c0818460208801611595565b8351908301906119d4818360208801611595565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611a0557611a056119dd565b500390565b60008219821115611a1d57611a1d6119dd565b500190565b6000600019821415611a3657611a366119dd565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611a6257611a62611a3d565b500490565b600082611a7657611a76611a3d565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b03808716835280861660208401525083604083015260806060830152611ac360808301846115c1565b9695505050505050565b600060208284031215611adf57600080fd5b8151610b108161155f56fea264697066735822122003f42c9b093fbf83de73ebbd1b26fb36c33005517374e75f60da0b1af0bc6a2264736f6c634300080a00330000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000012750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005409ed021d9299bf6814279a6a1411a7e866a631", "value": "0x0"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0xc1aff", "gas_price": "0x4a817c800", "data": "0x60806040523480156200001157600080fd5b5060405162000f3838038062000f3883398101604081905262000034916200024a565b6040518060400160405280600981526020016804d6f636b45524332360bc1b8152506040518060400160405280600381526020016226a29960e91b81525081600390805190602001906200008a929190620001a4565b508051620000a0906004906020840190620001a4565b505050620000b53382620000bc60201b60201c565b50620002c8565b6001600160a01b038216620001175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012b919062000264565b90915550506001600160a01b038216600090815260208190526040812080548392906200015a90849062000264565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001b2906200028b565b90600052602060002090601f016020900481019282620001d6576000855562000221565b82601f10620001f157805160ff191683800117855562000221565b8280016001018555821562000221579182015b828111156200022157825182559160200191906001019062000204565b506200022f92915062000233565b5090565b5b808211156200022f576000815560010162000234565b6000602082840312156200025d57600080fd5b5051919050565b600082198211156200028657634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002a057607f821691505b60208210811415620002c257634e487b7160e01b600052602260045260246000fd5b50919050565b610c6080620002d86000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101b2578063a457c2d7146101c5578063a9059cbb146101d8578063dd62ed3e146101eb57600080fd5b806340c10f191461016c57806370a082311461018157806395d89b41146101aa57600080fd5b806323b872dd116100bd57806323b872dd14610137578063313ce5671461014a578063395093511461015957600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec610224565b6040516100f99190610a7e565b60405180910390f35b610115610110366004610aef565b6102b6565b60405190151581526020016100f9565b6002545b6040519081526020016100f9565b610115610145366004610b19565b6102cc565b604051601281526020016100f9565b610115610167366004610aef565b610390565b61017f61017a366004610aef565b6103cc565b005b61012961018f366004610b55565b6001600160a01b031660009081526020819052604090205490565b6100ec6103da565b61017f6101c0366004610aef565b6103e9565b6101156101d3366004610aef565b6103f3565b6101156101e6366004610aef565b6104a4565b6101296101f9366004610b77565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461023390610baa565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610baa565b80156102ac5780601f10610281576101008083540402835291602001916102ac565b820191906000526020600020905b81548152906001019060200180831161028f57829003601f168201915b5050505050905090565b60006102c33384846104b1565b50600192915050565b60006102d984848461060a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103785760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61038585338584036104b1565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102c39185906103c7908690610bfb565b6104b1565b6103d68282610822565b5050565b60606004805461023390610baa565b6103d68282610901565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561048d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161036f565b61049a33858584036104b1565b5060019392505050565b60006102c333848461060a565b6001600160a01b03831661052c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166105a85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166107025760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038316600090815260208190526040902054818110156107915760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107c8908490610bfb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161081491815260200190565b60405180910390a350505050565b6001600160a01b0382166108785760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161036f565b806002600082825461088a9190610bfb565b90915550506001600160a01b038216600090815260208190526040812080548392906108b7908490610bfb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661097d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b03821660009081526020819052604090205481811015610a0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a3b908490610c13565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016105fd565b600060208083528351808285015260005b81811015610aab57858101830151858201604001528201610a8f565b81811115610abd576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610aea57600080fd5b919050565b60008060408385031215610b0257600080fd5b610b0b83610ad3565b946020939093013593505050565b600080600060608486031215610b2e57600080fd5b610b3784610ad3565b9250610b4560208501610ad3565b9150604084013590509250925092565b600060208284031215610b6757600080fd5b610b7082610ad3565b9392505050565b60008060408385031215610b8a57600080fd5b610b9383610ad3565b9150610ba160208401610ad3565b90509250929050565b600181811c90821680610bbe57607f821691505b60208210811415610bdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c0e57610c0e610be5565b500190565b600082821015610c2557610c25610be5565b50039056fea264697066735822122039c1aae5d50fb3eac139f7e0e991ffe1a830c171490d7829dddb7ed3f9527a2264736f6c634300080a00330000000000000000000000000000000000000000000000000000000000000000", "value": "0x0"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0xc1aff", "gas_price": "0x4a817c800", "data": "0x60806040523480156200001157600080fd5b5060405162000f3838038062000f3883398101604081905262000034916200024a565b6040518060400160405280600981526020016804d6f636b45524332360bc1b8152506040518060400160405280600381526020016226a29960e91b81525081600390805190602001906200008a929190620001a4565b508051620000a0906004906020840190620001a4565b505050620000b53382620000bc60201b60201c565b50620002c8565b6001600160a01b038216620001175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012b919062000264565b90915550506001600160a01b038216600090815260208190526040812080548392906200015a90849062000264565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001b2906200028b565b90600052602060002090601f016020900481019282620001d6576000855562000221565b82601f10620001f157805160ff191683800117855562000221565b8280016001018555821562000221579182015b828111156200022157825182559160200191906001019062000204565b506200022f92915062000233565b5090565b5b808211156200022f576000815560010162000234565b6000602082840312156200025d57600080fd5b5051919050565b600082198211156200028657634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002a057607f821691505b60208210811415620002c257634e487b7160e01b600052602260045260246000fd5b50919050565b610c6080620002d86000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101b2578063a457c2d7146101c5578063a9059cbb146101d8578063dd62ed3e146101eb57600080fd5b806340c10f191461016c57806370a082311461018157806395d89b41146101aa57600080fd5b806323b872dd116100bd57806323b872dd14610137578063313ce5671461014a578063395093511461015957600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec610224565b6040516100f99190610a7e565b60405180910390f35b610115610110366004610aef565b6102b6565b60405190151581526020016100f9565b6002545b6040519081526020016100f9565b610115610145366004610b19565b6102cc565b604051601281526020016100f9565b610115610167366004610aef565b610390565b61017f61017a366004610aef565b6103cc565b005b61012961018f366004610b55565b6001600160a01b031660009081526020819052604090205490565b6100ec6103da565b61017f6101c0366004610aef565b6103e9565b6101156101d3366004610aef565b6103f3565b6101156101e6366004610aef565b6104a4565b6101296101f9366004610b77565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461023390610baa565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610baa565b80156102ac5780601f10610281576101008083540402835291602001916102ac565b820191906000526020600020905b81548152906001019060200180831161028f57829003601f168201915b5050505050905090565b60006102c33384846104b1565b50600192915050565b60006102d984848461060a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103785760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61038585338584036104b1565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102c39185906103c7908690610bfb565b6104b1565b6103d68282610822565b5050565b60606004805461023390610baa565b6103d68282610901565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561048d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161036f565b61049a33858584036104b1565b5060019392505050565b60006102c333848461060a565b6001600160a01b03831661052c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166105a85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166107025760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038316600090815260208190526040902054818110156107915760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107c8908490610bfb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161081491815260200190565b60405180910390a350505050565b6001600160a01b0382166108785760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161036f565b806002600082825461088a9190610bfb565b90915550506001600160a01b038216600090815260208190526040812080548392906108b7908490610bfb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661097d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b03821660009081526020819052604090205481811015610a0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a3b908490610c13565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016105fd565b600060208083528351808285015260005b81811015610aab57858101830151858201604001528201610a8f565b81811115610abd576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610aea57600080fd5b919050565b60008060408385031215610b0257600080fd5b610b0b83610ad3565b946020939093013593505050565b600080600060608486031215610b2e57600080fd5b610b3784610ad3565b9250610b4560208501610ad3565b9150604084013590509250925092565b600060208284031215610b6757600080fd5b610b7082610ad3565b9392505050565b60008060408385031215610b8a57600080fd5b610b9383610ad3565b9150610ba160208401610ad3565b90509250929050565b600181811c90821680610bbe57607f821691505b60208210811415610bdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c0e57610c0e610be5565b500190565b600082821015610c2557610c25610be5565b50039056fea264697066735822122039c1aae5d50fb3eac139f7e0e991ffe1a830c171490d7829dddb7ed3f9527a2264736f6c634300080a00330000000000000000000000000000000000000000000000000000000000000000", "value": "0x0"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0x5e6096", "gas_price": "0x4a817c800", "data": "0x60a06040523480156200001157600080fd5b50604051620071b2380380620071b283398101604081905262000034916200036e565b6001808190555062000051826200028160201b620018741760201c565b620000a35760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e76657374506572630000000000000060448201526064015b60405180910390fd5b6001600160a01b0384166200010a5760405162461bcd60e51b815260206004820152602660248201527f5661756c74436f6e746578743a20756e6465726c79696e672063616e6e6f742060448201526506265203078360d41b60648201526084016200009a565b600083116200015c5760405162461bcd60e51b815260206004820152601960248201527f6d696e4c6f636b506572696f642063616e6e6f7420626520300000000000000060448201526064016200009a565b6200016960008262000289565b620001957fb165298935924f540e4181c03493a5d686c54a0aaeb3f6216de85b7ffbba77388262000289565b6004829055600280546001600160a01b0319166001600160a01b03861617905560808390526040513090620001ca9062000339565b6001600160a01b039091168152602001604051809103906000f080158015620001f7573d6000803e3d6000fd5b50600680546001600160a01b0319166001600160a01b03929092169190911790556040513090620002289062000347565b6001600160a01b039091168152602001604051809103906000f08015801562000255573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b039290921691909117905550620003bf92505050565b612710101590565b62000295828262000299565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000295576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002f53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611c8d806200383d83390190565b611ce880620054ca83390190565b6001600160a01b03811681146200036b57600080fd5b50565b600080600080608085870312156200038557600080fd5b8451620003928162000355565b8094505060208501519250604085015191506060850151620003b48162000355565b939692955090935050565b60805161345b620003e2600039600081816103ce01526114db015261345b6000f3fe608060405234801561001057600080fd5b50600436106102c85760003560e01c8063947fdb8b1161017b578063c0ddb692116100d8578063df6f9ba71161008c578063e84b25a211610071578063e84b25a21461063f578063eb0ebfbc14610652578063f0f442601461065b57600080fd5b8063df6f9ba714610619578063e4020fdf1461062c57600080fd5b8063c70920bc116100bd578063c70920bc146105eb578063d547741f146105f3578063d812053f1461060657600080fd5b8063c0ddb692146105cb578063c63aa3e7146105d357600080fd5b8063aaa466881161012f578063b0c29efe11610114578063b0c29efe146105b0578063bba97d33146105b8578063bd2e3ecd1461041757600080fd5b8063aaa4668814610548578063b02c43d01461055b57600080fd5b8063a164c25d11610160578063a164c25d14610523578063a217fddf1461052d578063a8c62e761461053557600080fd5b8063947fdb8b146104fd578063999927df1461051057600080fd5b80636f307dc3116102295780638293744b116101dd5780638b6ed67d116101c25780638b6ed67d14610493578063908de6c2146104a657806391d14854146104c657600080fd5b80638293744b1461045d578063878ecfec1461047057600080fd5b806376082a5e1161020e57806376082a5e146103f057806376490b56146104175780637c2032e71461042157600080fd5b80636f307dc31461039e57806373ae54b5146103c957600080fd5b806333a100ca116102805780633a98ef39116102655780633a98ef39146103835780633c90a1701461038c5780634b1533b21461039557600080fd5b806333a100ca1461035d57806336568abe1461037057600080fd5b8063248a9ca3116102b1578063248a9ca31461031257806324f2db0c146103355780632f2ff15d1461034a57600080fd5b806301ffc9a7146102cd5780631325d5f1146102f5575b600080fd5b6102e06102db366004612d70565b61066e565b60405190151581526020015b60405180910390f35b610304670de0b6b3a764000081565b6040519081526020016102ec565b610304610320366004612d9a565b60009081526020819052604090206001015490565b610348610343366004612db3565b6106e6565b005b610348610358366004612e3d565b610854565b61034861036b366004612e6d565b61087f565b61034861037e366004612e3d565b610b04565b610304600d5481565b61030460045481565b610304600e5481565b6002546103b1906001600160a01b031681565b6040516001600160a01b0390911681526020016102ec565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b6103047fb165298935924f540e4181c03493a5d686c54a0aaeb3f6216de85b7ffbba773881565b61030462dd7c0081565b61044861042f366004612d9a565b600b602052600090815260409020805460019091015482565b604080519283526020830191909152016102ec565b61034861046b366004612efa565b610b90565b61030461047e366004612d9a565b6000908152600b602052604090206001015490565b6007546103b1906001600160a01b031681565b6103046104b4366004612d9a565b6000908152600b602052604090205490565b6102e06104d4366004612e3d565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61034861050b366004612fb5565b610c52565b61034861051e366004612e6d565b610e9b565b6103046212750081565b610304600081565b6003546103b1906001600160a01b031681565b6006546103b1906001600160a01b031681565b610590610569366004612d9a565b60096020526000908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016102ec565b6103046110c0565b6103046105c6366004612e6d565b611175565b610304611258565b60405167ffffffffffffffff421681526020016102ec565b61030461128a565b610348610601366004612e3d565b6113fc565b610348610614366004612fd7565b611422565b610348610627366004612efa565b61161b565b61034861063a366004612efa565b6116d5565b61034861064d366004613029565b61178d565b61030460055481565b610348610669366004612e6d565b611830565b60006001600160e01b031982167fc56fd5460000000000000000000000000000000000000000000000000000000014806106d157506001600160e01b031982167f9b736be800000000000000000000000000000000000000000000000000000000145b806106e057506106e08261187c565b92915050565b7fb165298935924f540e4181c03493a5d686c54a0aaeb3f6216de85b7ffbba773861071181336118e3565b6003546001600160a01b031661076e5760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a207374726174656779206973206e6f742073657400000000000060448201526064015b60405180910390fd5b60006107786110c0565b905080156107d15760035460025461079d916001600160a01b03918216911683611961565b6040518181527fac9f7997c30b6a3cc9c74953898b5de154359339c7ec0d6d70ceb98e55db1a4b9060200160405180910390a15b6003546040517f8842db470000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638842db479061081c9087908790600401613044565b600060405180830381600087803b15801561083657600080fd5b505af115801561084a573d6000803e3d6000fd5b5050505050505050565b60008281526020819052604090206001015461087081336118e3565b61087a83836119f2565b505050565b600061088b81336118e3565b6001600160a01b0382166108e15760405162461bcd60e51b815260206004820152601260248201527f5661756c743a20737472617465677920307800000000000000000000000000006044820152606401610765565b306001600160a01b0316826001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094d9190613073565b6001600160a01b0316146109a35760405162461bcd60e51b815260206004820152601460248201527f5661756c743a20696e76616c6964207661756c740000000000000000000000006044820152606401610765565b6003546001600160a01b03161580610a2f5750600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d9190613090565b155b610aa15760405162461bcd60e51b815260206004820152602260248201527f5661756c743a2073747261746567792068617320696e7665737465642066756e60448201527f64730000000000000000000000000000000000000000000000000000000000006064820152608401610765565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091556040517f4da9c22c924692646a21cf1f423781ae3285198dc22e8a6912835d3272b90b3c90600090a25050565b6001600160a01b0381163314610b825760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610765565b610b8c8282611a90565b5050565b60026001541415610be35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b038216610c3e5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b610c4a82826000611b0f565b505060018055565b60026001541415610ca55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b600260015581610cf75760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f742073706f6e736f7220300000000000000000006044820152606401610765565b621275008110158015610d0d575062dd7c008111155b610d595760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20696e76616c6964206c6f636b20706572696f640000000000006044820152606401610765565b6000610d6542836130bf565b6006549091506000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015610dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de79190613090565b6040805160808101825286815260006020808301828152838501888152606085018481528785526009845293869020945185559051600185015551600284015590516003909201919091558151878152908101859052919250339183917f7ca3497675c6d3ec00b1edc13b8e0b06169ee96a663ab25a74af7da53378f09e910160405180910390a38360056000828254610e8191906130bf565b90915550610e9190503385611b99565b5050600180555050565b60026001541415610eee5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b038116610f495760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b6000610f5433611175565b905080610f6157506110b9565b6000610f7782600d54610f72611258565b611c4e565b90506000610f8f82600d54610f8a611258565b611d0d565b6007549091506000906001600160a01b03166342ec38e2336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f9190613090565b600254909150611029906001600160a01b03168684611961565b6000818152600b60205260408120600101805485929061104a9084906130d7565b9250508190555082600d600082825461106391906130d7565b909155505060408051828152602081018490529081018490526001600160a01b038616907fc64c05237373d420472e7259849c0a314d9c3424021920543562ceffa9b10f949060600160405180910390a2505050505b5060018055565b6000806110d76004546110d161128a565b90611d3c565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111529190613090565b90508181106111645760009250505090565b61116e81836130d7565b9250505090565b6007546040517f42ec38e20000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009283929116906342ec38e290602401602060405180830381865afa1580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112009190613090565b6000818152600b602052604081208054600190910154600d54939450909290919061122f908390610f8a611258565b90508281116112445750600095945050505050565b61124e83826130d7565b9695505050505050565b60008061126361128a565b905080600554111561127757600091505090565b60055461128490826130d7565b91505090565b6003546000906001600160a01b03161561139057600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113159190613090565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561135d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113819190613090565b61138b91906130bf565b905090565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138b9190613090565b60008281526020819052604090206001015461141881336118e3565b61087a8383611a90565b600260015414156114755760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b6002600155600e5460009061148990611d55565b905081356114d95760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f74206465706f73697420300000000000000000006044820152606401610765565b7f0000000000000000000000000000000000000000000000000000000000000000826040013510158015611514575062dd7c00826040013511155b6115605760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20696e76616c6964206c6f636b20706572696f640000000000006044820152606401610765565b611568611258565b8111156115dd5760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a2063616e6e6f74206465706f736974207768656e207969656c6460448201527f206973206e6567617469766500000000000000000000000000000000000000006064820152608401610765565b60006115ed4260408501356130bf565b905061160783358261160260208701876130ee565b611df2565b611612338435611b99565b50506001805550565b6002600154141561166e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b0382166116c95760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b610c4a82826001611b0f565b600260015414156117285760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b0382166117835760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b610c4a828261201c565b600061179981336118e3565b61ffff821661271010156117ef5760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e7665737450657263000000000000006044820152606401610765565b60405161ffff831681527fdd970e7931ce785c1e52bab847c1a662f017c55c66edb76ddebbf61b5aa307859060200160405180910390a15061ffff16600455565b600061183c81336118e3565b6040516001600160a01b038316907f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a25050565b612710101590565b60006001600160e01b031982167f7965db0b0000000000000000000000000000000000000000000000000000000014806106e057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146106e0565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610b8c5761191f816001600160a01b03166014612320565b61192a836020612320565b60405160200161193b92919061316b565b60408051601f198184030181529082905262461bcd60e51b825261076591600401613218565b6040516001600160a01b03831660248201526044810182905261087a9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152612501565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610b8c576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611a4c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610b8c576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600d546000611b1c611258565b8451909150600090815b818160ff161015611b7857611b5a878260ff1681518110611b4957611b4961322b565b602002602001015186868b8a6125e6565b611b6490846130bf565b925080611b7081613241565b915050611b26565b50600254611b90906001600160a01b03168884611961565b50505050505050565b6000611ba361128a565b600254909150611bbe906001600160a01b03168430856129c1565b6000611bc861128a565b9050611bd483836130bf565b8114611c485760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a20616d6f756e7420726563656976656420646f6573206e6f742060448201527f6d6174636820706172616d7300000000000000000000000000000000000000006064820152608401610765565b50505050565b600083611c5d57506000611d06565b82611c7b57611c74670de0b6b3a764000085613261565b9050611d06565b81611cee5760405162461bcd60e51b815260206004820152603660248201527f5661756c743a2063616e6e6f7420636f6d70757465207368617265732077686560448201527f6e2074686572652773206e6f207072696e636970616c000000000000000000006064820152608401610765565b81611cf98486613261565b611d039190613280565b90505b9392505050565b6000821580611d1a575081155b15611d2757506000611d06565b82611d328584613261565b611c749190613280565b6000612710611d4b8385613261565b611d069190613280565b6003546000906001600160a01b0316611d6c575090565b6003546040517f93c3a68f000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116906393c3a68f90602401602060405180830381865afa158015611dce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e09190613090565b600d546000611dff611258565b90506000611e0c60085490565b905060008085611e20600880546001019055565b60005b81811015611f49576000898983818110611e3f57611e3f61322b565b9050602002810190611e5191906132a2565b611e5a906132c2565b805190915061ffff16611ed55760405162461bcd60e51b815260206004820152602360248201527f5661756c743a20636c61696d2070657263656e746167652063616e6e6f74206260448201527f65203000000000000000000000000000000000000000000000000000000000006064820152608401610765565b6000611ee26001856130d7565b8314611efe578151611ef9908e9061ffff16611d3c565b611f08565b611f08858e6130d7565b9050611f1887828e858d8d612a12565b8151611f289061ffff16876130bf565b9550611f3481866130bf565b9450505080611f4290613382565b9050611e23565b506127108314611fc15760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20636c61696d7320646f6e27742061646420757020746f20313060448201527f30250000000000000000000000000000000000000000000000000000000000006064820152608401610765565b8982146120105760405162461bcd60e51b815260206004820152601c60248201527f5661756c743a20616d6f756e7420646f65736e277420616464207570000000006044820152606401610765565b50505050505050505050565b8051600090815b818160ff161015612292576000848260ff16815181106120455761204561322b565b602090810291909101810151600081815260099092526040808320600281015460019091015460065492516331a9108f60e11b8152600481018590529395509093909290916001600160a01b031690636352211e90602401602060405180830381865afa1580156120ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120de9190613073565b6000858152600960205260409020549091506001600160a01b03821633146121485760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20796f7520617265206e6f7420616c6c6f7765640000000000006044820152606401610765565b428411156121985760405162461bcd60e51b815260206004820152601760248201527f5661756c743a20616d6f756e74206973206c6f636b65640000000000000000006044820152606401610765565b82156121e65760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f7420612073706f6e736f726044820152606401610765565b6121f081896130bf565b600654604051630852cd8d60e31b8152600481018890529199506001600160a01b0316906342966c6890602401600060405180830381600087803b15801561223757600080fd5b505af115801561224b573d6000803e3d6000fd5b50506040518792507f05394e48d744e4a16d65f52f88cdaf0f60f5d18af259df878d44cb80826d221f9150600090a25050505050808061228a90613241565b915050612023565b508161229c61128a565b8111156122eb5760405162461bcd60e51b815260206004820152601760248201527f5661756c743a206e6f7420656e6f7567682066756e64730000000000000000006044820152606401610765565b82600560008282546122fd91906130d7565b9091555050600254612319906001600160a01b03168683611961565b5050505050565b6060600061232f836002613261565b61233a9060026130bf565b67ffffffffffffffff81111561235257612352612e8a565b6040519080825280601f01601f19166020018201604052801561237c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106123b3576123b361322b565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106123fe576123fe61322b565b60200101906001600160f81b031916908160001a9053506000612422846002613261565b61242d9060016130bf565b90505b60018111156124b2577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061246e5761246e61322b565b1a60f81b8282815181106124845761248461322b565b60200101906001600160f81b031916908160001a90535060049490941c936124ab8161339d565b9050612430565b508315611d065760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610765565b6000612556826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612c659092919063ffffffff16565b80519091501561087a578080602001905181019061257491906133b4565b61087a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610765565b6000336006546040516331a9108f60e11b8152600481018990526001600160a01b039283169290911690636352211e90602401602060405180830381865afa158015612636573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265a9190613073565b6001600160a01b0316146126d65760405162461bcd60e51b815260206004820152602960248201527f5661756c743a20796f7520617265206e6f7420746865206f776e6572206f662060448201527f61206465706f73697400000000000000000000000000000000000000000000006064820152608401610765565b6000868152600960205260409020600201544210156127375760405162461bcd60e51b815260206004820152601860248201527f5661756c743a206465706f736974206973206c6f636b656400000000000000006044820152606401610765565b6000868152600960205260409020600101546127955760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f742061206465706f7369746044820152606401610765565b600086815260096020908152604080832060018082015460038301549254818752600b909552928520908101549054929491939290916127d6848c8c611c4e565b90506000858211806127e757508382115b90508880156127f35750805b1561281457826128038587613261565b61280d9190613280565b9150612888565b80156128885760405162461bcd60e51b815260206004820152603560248201527f5661756c743a2063616e6e6f74207769746864726177206d6f7265207468616e60448201527f2074686520617661696c61626c6520616d6f756e7400000000000000000000006064820152608401610765565b6000878152600b6020526040812060010180548492906128a99084906130d7565b90915550506000878152600b6020526040812080548792906128cc9084906130d7565b9250508190555081600d60008282546128e591906130d7565b9250508190555084600e60008282546128fe91906130d7565b9091555050600654604051630852cd8d60e31b8152600481018f90526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b50505050896001600160a01b03168d7f95fa98cd1a0b1d7d20d4f5d9f62889e8cfd8d172a99939d2a2f46bb668eb2f4f8460405161299d91815260200190565b60405180910390a36129b0828d8d611d0d565b9d9c50505050505050505050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611c489085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016119a6565b6000612a1f868484611c4e565b60075460208601516040517f6a6278420000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350600092911690636a627842906024016020604051808303816000875af1158015612a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab29190613090565b905081600b60008381526020019081526020016000206001016000828254612ada91906130bf565b90915550506000818152600b602052604081208054899290612afd9084906130bf565b9250508190555081600d6000828254612b1691906130bf565b9250508190555086600e6000828254612b2f91906130bf565b90915550506006546000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015612b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb39190613090565b604080516080810182528a815260208082018681528284018c81526060840189815260008781526009855295909520935184559051600184015551600283015591516003909101558701519091506001600160a01b0316336001600160a01b0316827fd65adbe4936a4680b96204561081c35dabe24fe745c6d959f2acb5d7ee40028a8c8c88888e8e60400151604051612c52969594939291906133d6565b60405180910390a4505050505050505050565b6060611d03848460008585843b612cbe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610765565b600080866001600160a01b03168587604051612cda9190613413565b60006040518083038185875af1925050503d8060008114612d17576040519150601f19603f3d011682016040523d82523d6000602084013e612d1c565b606091505b5091509150612d2c828286612d37565b979650505050505050565b60608315612d46575081611d06565b825115612d565782518084602001fd5b8160405162461bcd60e51b81526004016107659190613218565b600060208284031215612d8257600080fd5b81356001600160e01b031981168114611d0657600080fd5b600060208284031215612dac57600080fd5b5035919050565b60008060208385031215612dc657600080fd5b823567ffffffffffffffff80821115612dde57600080fd5b818501915085601f830112612df257600080fd5b813581811115612e0157600080fd5b866020828501011115612e1357600080fd5b60209290920196919550909350505050565b6001600160a01b0381168114612e3a57600080fd5b50565b60008060408385031215612e5057600080fd5b823591506020830135612e6281612e25565b809150509250929050565b600060208284031215612e7f57600080fd5b8135611d0681612e25565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612ec357612ec3612e8a565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612ef257612ef2612e8a565b604052919050565b60008060408385031215612f0d57600080fd5b8235612f1881612e25565b915060208381013567ffffffffffffffff80821115612f3657600080fd5b818601915086601f830112612f4a57600080fd5b813581811115612f5c57612f5c612e8a565b8060051b9150612f6d848301612ec9565b8181529183018401918481019089841115612f8757600080fd5b938501935b83851015612fa557843582529385019390850190612f8c565b8096505050505050509250929050565b60008060408385031215612fc857600080fd5b50508035926020909101359150565b600060208284031215612fe957600080fd5b813567ffffffffffffffff81111561300057600080fd5b820160608185031215611d0657600080fd5b803561ffff8116811461302457600080fd5b919050565b60006020828403121561303b57600080fd5b611d0682613012565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561308557600080fd5b8151611d0681612e25565b6000602082840312156130a257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156130d2576130d26130a9565b500190565b6000828210156130e9576130e96130a9565b500390565b6000808335601e1984360301811261310557600080fd5b83018035915067ffffffffffffffff82111561312057600080fd5b6020019150600581901b360382131561313857600080fd5b9250929050565b60005b8381101561315a578181015183820152602001613142565b83811115611c485750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516131a381601785016020880161313f565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516131e081602884016020880161313f565b01602801949350505050565b6000815180845261320481602086016020860161313f565b601f01601f19169290920160200192915050565b602081526000611d0660208301846131ec565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff811415613258576132586130a9565b60010192915050565b600081600019048311821515161561327b5761327b6130a9565b500290565b60008261329d57634e487b7160e01b600052601260045260246000fd5b500490565b60008235605e198336030181126132b857600080fd5b9190910192915050565b6000606082360312156132d457600080fd5b6132dc612ea0565b6132e583613012565b81526020808401356132f681612e25565b82820152604084013567ffffffffffffffff8082111561331557600080fd5b9085019036601f83011261332857600080fd5b81358181111561333a5761333a612e8a565b61334c601f8201601f19168501612ec9565b9150808252368482850101111561336257600080fd5b808484018584013760009082019093019290925250604082015292915050565b6000600019821415613396576133966130a9565b5060010190565b6000816133ac576133ac6130a9565b506000190190565b6000602082840312156133c657600080fd5b81518015158114611d0657600080fd5b86815285602082015284604082015283606082015282608082015260c060a0820152600061340760c08301846131ec565b98975050505050505050565b600082516132b881846020870161313f56fea2646970667358221220b18d9865cb4b79d3a360334c53218d688dfc40ae8f307e295bf39de6a31deb9064736f6c634300080a003360806040523480156200001157600080fd5b5060405162001c8d38038062001c8d833981016040819052620000349162000149565b6040805160208082018084526000808452845192830190945283825282519293919262000063929190620000a3565b50805162000079906001906020840190620000a3565b5050600780546001600160a01b0319166001600160a01b03939093169290921790915550620001b8565b828054620000b1906200017b565b90600052602060002090601f016020900481019282620000d5576000855562000120565b82601f10620000f057805160ff191683800117855562000120565b8280016001018555821562000120579182015b828111156200012057825182559160200191906001019062000103565b506200012e92915062000132565b5090565b5b808211156200012e576000815560010162000133565b6000602082840312156200015c57600080fd5b81516001600160a01b03811681146200017457600080fd5b9392505050565b600181811c908216806200019057607f821691505b60208210811415620001b257634e487b7160e01b600052602260045260246000fd5b50919050565b611ac580620001c86000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636352211e116100b2578063a22cb46511610081578063c87b56dd11610066578063c87b56dd1461025e578063e985e9c514610271578063fbfa77cf146102ad57600080fd5b8063a22cb46514610238578063b88d4fde1461024b57600080fd5b80636352211e146101e95780636a627842146101fc57806370a082311461021d57806395d89b411461023057600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342966c68146101c35780634f558e79146101d657600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e36600461151d565b6102c0565b60405190151581526020015b60405180910390f35b61015061035d565b60405161013f9190611592565b61017061016b3660046115a5565b610454565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046115d3565b6104ee565b005b61019b6101ab3660046115ff565b610620565b61019b6101be3660046115ff565b6106a7565b61019b6101d13660046115a5565b6106c2565b6101336101e43660046115a5565b610728565b6101706101f73660046115a5565b610747565b61020f61020a366004611640565b6107d2565b60405190815260200161013f565b61020f61022b366004611640565b610854565b6101506108ee565b61019b61024636600461165d565b6109d1565b61019b61025936600461170a565b6109e0565b61015061026c3660046115a5565b610a6e565b61013361027f3660046117b9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061032357506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061035757507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb91906117e7565b6001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015610408573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104309190810190611804565b604051602001610440919061187b565b604051602081830303815290604052905090565b6000818152600260205260408120546001600160a01b03166104d25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006104f982610747565b9050806001600160a01b0316836001600160a01b031614156105835760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016104c9565b336001600160a01b038216148061059f575061059f813361027f565b6106115760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016104c9565b61061b8383610b64565b505050565b61062a3382610bdf565b61069c5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104c9565b61061b838383610cd6565b61061b838383604051806020016040528060008152506109e0565b6007546001600160a01b0316331461071c5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a656400000000000060448201526064016104c9565b61072581610eb0565b50565b6000818152600260205260408120546001600160a01b03161515610357565b6000818152600260205260408120546001600160a01b0316806103575760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016104c9565b6007546000906001600160a01b0316331461082f5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a656400000000000060448201526064016104c9565b600061083a60065490565b905061084a600680546001019055565b6103578382610f58565b60006001600160a01b0382166108d25760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016104c9565b506001600160a01b031660009081526003602052604090205490565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c91906117e7565b6001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610999573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c19190810190611804565b60405160200161044091906118e7565b6109dc338383610f72565b5050565b6109ea3383610bdf565b610a5c5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104c9565b610a6884848484611041565b50505050565b6000818152600260205260409020546060906001600160a01b0316610afb5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e000000000000000000000000000000000060648201526084016104c9565b6000610b1260408051602081019091526000815290565b90506000815111610b325760405180602001604052806000815250610b5d565b80610b3c846110bf565b604051602001610b4d929190611953565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610ba682610747565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610c585760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016104c9565b6000610c6383610747565b9050806001600160a01b0316846001600160a01b03161480610c9e5750836001600160a01b0316610c9384610454565b6001600160a01b0316145b80610cce57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610ce982610747565b6001600160a01b031614610d655760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016104c9565b6001600160a01b038216610de05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104c9565b610deb600082610b64565b6001600160a01b0383166000908152600360205260408120805460019290610e14908490611998565b90915550506001600160a01b0382166000908152600360205260408120805460019290610e429084906119af565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000610ebb82610747565b9050610ec8600083610b64565b6001600160a01b0381166000908152600360205260408120805460019290610ef1908490611998565b9091555050600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6109dc8282604051806020016040528060008152506111f1565b816001600160a01b0316836001600160a01b03161415610fd45760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104c9565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61104c848484610cd6565b6110588484848461126f565b610a685760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104c9565b6060816110ff57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156111295780611113816119c7565b91506111229050600a836119f8565b9150611103565b60008167ffffffffffffffff8111156111445761114461169b565b6040519080825280601f01601f19166020018201604052801561116e576020820181803683370190505b5090505b8415610cce57611183600183611998565b9150611190600a86611a0c565b61119b9060306119af565b60f81b8183815181106111b0576111b0611a20565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506111ea600a866119f8565b9450611172565b6111fb83836113b8565b611208600084848461126f565b61061b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104c9565b60006001600160a01b0384163b156113ad57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906112b3903390899088908890600401611a36565b6020604051808303816000875af19250505080156112ee575060408051601f3d908101601f191682019092526112eb91810190611a72565b60015b611393573d80801561131c576040519150601f19603f3d011682016040523d82523d6000602084013e611321565b606091505b50805161138b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104c9565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610cce565b506001949350505050565b6001600160a01b03821661140e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104c9565b6000818152600260205260409020546001600160a01b0316156114735760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104c9565b6001600160a01b038216600090815260036020526040812080546001929061149c9084906119af565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461072557600080fd5b60006020828403121561152f57600080fd5b8135610b5d81611507565b60005b8381101561155557818101518382015260200161153d565b83811115610a685750506000910152565b6000815180845261157e81602086016020860161153a565b601f01601f19169290920160200192915050565b602081526000610b5d6020830184611566565b6000602082840312156115b757600080fd5b5035919050565b6001600160a01b038116811461072557600080fd5b600080604083850312156115e657600080fd5b82356115f1816115be565b946020939093013593505050565b60008060006060848603121561161457600080fd5b833561161f816115be565b9250602084013561162f816115be565b929592945050506040919091013590565b60006020828403121561165257600080fd5b8135610b5d816115be565b6000806040838503121561167057600080fd5b823561167b816115be565b91506020830135801515811461169057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116da576116da61169b565b604052919050565b600067ffffffffffffffff8211156116fc576116fc61169b565b50601f01601f191660200190565b6000806000806080858703121561172057600080fd5b843561172b816115be565b9350602085013561173b816115be565b925060408501359150606085013567ffffffffffffffff81111561175e57600080fd5b8501601f8101871361176f57600080fd5b803561178261177d826116e2565b6116b1565b81815288602083850101111561179757600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600080604083850312156117cc57600080fd5b82356117d7816115be565b91506020830135611690816115be565b6000602082840312156117f957600080fd5b8151610b5d816115be565b60006020828403121561181657600080fd5b815167ffffffffffffffff81111561182d57600080fd5b8201601f8101841361183e57600080fd5b805161184c61177d826116e2565b81815285602083850101111561186157600080fd5b61187282602083016020860161153a565b95945050505050565b7f53616e64636c6f636b00000000000000000000000000000000000000000000008152600082516118b381600985016020870161153a565b7f202d204465706f7369746f7273000000000000000000000000000000000000006009939091019283015250601601919050565b7f51554152545a2d0000000000000000000000000000000000000000000000000081526000825161191f81600785016020870161153a565b7f2d444550000000000000000000000000000000000000000000000000000000006007939091019283015250600b01919050565b6000835161196581846020880161153a565b83519083019061197981836020880161153a565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119aa576119aa611982565b500390565b600082198211156119c2576119c2611982565b500190565b60006000198214156119db576119db611982565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611a0757611a076119e2565b500490565b600082611a1b57611a1b6119e2565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b03808716835280861660208401525083604083015260806060830152611a686080830184611566565b9695505050505050565b600060208284031215611a8457600080fd5b8151610b5d8161150756fea26469706673582212205ee5b51e017fa66607bf66829c4928d99498f3642272c14859c0e9376a47846c64736f6c634300080a003360806040523480156200001157600080fd5b5060405162001ce838038062001ce8833981016040819052620000349162000149565b6040805160208082018084526000808452845192830190945283825282519293919262000063929190620000a3565b50805162000079906001906020840190620000a3565b5050600780546001600160a01b0319166001600160a01b03939093169290921790915550620001b8565b828054620000b1906200017b565b90600052602060002090601f016020900481019282620000d5576000855562000120565b82601f10620000f057805160ff191683800117855562000120565b8280016001018555821562000120579182015b828111156200012057825182559160200191906001019062000103565b506200012e92915062000132565b5090565b5b808211156200012e576000815560010162000133565b6000602082840312156200015c57600080fd5b81516001600160a01b03811681146200017457600080fd5b9392505050565b600181811c908216806200019057607f821691505b60208210811415620001b257634e487b7160e01b600052602260045260246000fd5b50919050565b611b2080620001c86000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636a627842116100b2578063adde18b011610081578063c87b56dd11610066578063c87b56dd14610281578063e985e9c514610294578063fbfa77cf146102d057600080fd5b8063adde18b01461024e578063b88d4fde1461026e57600080fd5b80636a6278421461020d57806370a082311461022057806395d89b4114610233578063a22cb4651461023b57600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342ec38e2146101c35780636352211e146101fa57600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e366004611578565b6102e3565b60405190151581526020015b60405180910390f35b610150610380565b60405161013f91906115ed565b61017061016b366004611600565b610477565b6040516001600160a01b03909116815260200161013f565b61019b61019636600461162e565b610511565b005b61019b6101ab36600461165a565b610643565b61019b6101be36600461165a565b6106ca565b6101ec6101d136600461169b565b6001600160a01b031660009081526008602052604090205490565b60405190815260200161013f565b610170610208366004611600565b6106e5565b6101ec61021b36600461169b565b610770565b6101ec61022e36600461169b565b610807565b6101506108a1565b61019b6102493660046116b8565b610984565b6101ec61025c36600461169b565b60086020526000908152604090205481565b61019b61027c366004611765565b610993565b61015061028f366004611600565b610a21565b6101336102a2366004611814565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061034657506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061037a57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee9190611842565b6001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801561042b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610453919081019061185f565b60405160200161046391906118d6565b604051602081830303815290604052905090565b6000818152600260205260408120546001600160a01b03166104f55760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061051c826106e5565b9050806001600160a01b0316836001600160a01b031614156105a65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016104ec565b336001600160a01b03821614806105c257506105c281336102a2565b6106345760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016104ec565b61063e8383610b17565b505050565b61064d3382610b92565b6106bf5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104ec565b61063e838383610c89565b61063e83838360405180602001604052806000815250610993565b6000818152600260205260408120546001600160a01b03168061037a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016104ec565b6007546000906001600160a01b031633146107cd5760405162461bcd60e51b815260206004820152601860248201527f436c61696d6572733a206e6f7420617574686f72697a6564000000000000000060448201526064016104ec565b6001600160a01b0382166000908152600860205260409020548061037a576107f9600680546001019055565b5060065461037a8382610e6e565b60006001600160a01b0382166108855760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016104ec565b506001600160a01b031660009081526003602052604090205490565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa1580156108eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090f9190611842565b6001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561094c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610974919081019061185f565b6040516020016104639190611942565b61098f338383610e88565b5050565b61099d3383610b92565b610a0f5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104ec565b610a1b84848484610f57565b50505050565b6000818152600260205260409020546060906001600160a01b0316610aae5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e000000000000000000000000000000000060648201526084016104ec565b6000610ac560408051602081019091526000815290565b90506000815111610ae55760405180602001604052806000815250610b10565b80610aef84610fd5565b604051602001610b009291906119ae565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610b59826106e5565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610c0b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016104ec565b6000610c16836106e5565b9050806001600160a01b0316846001600160a01b03161480610c515750836001600160a01b0316610c4684610477565b6001600160a01b0316145b80610c8157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610c9c826106e5565b6001600160a01b031614610d185760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016104ec565b6001600160a01b038216610d935760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104ec565b610d9e838383611107565b610da9600082610b17565b6001600160a01b0383166000908152600360205260408120805460019290610dd29084906119f3565b90915550506001600160a01b0382166000908152600360205260408120805460019290610e00908490611a0a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61098f82826040518060200160405280600081525061123d565b816001600160a01b0316836001600160a01b03161415610eea5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104ec565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610f62848484610c89565b610f6e848484846112bb565b610a1b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104ec565b60608161101557505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561103f578061102981611a22565b91506110389050600a83611a53565b9150611019565b60008167ffffffffffffffff81111561105a5761105a6116f6565b6040519080825280601f01601f191660200182016040528015611084576020820181803683370190505b5090505b8415610c81576110996001836119f3565b91506110a6600a86611a67565b6110b1906030611a0a565b60f81b8183815181106110c6576110c6611a7b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611100600a86611a53565b9450611088565b6001600160a01b03821661115d5760405162461bcd60e51b815260206004820152601e60248201527f436c61696d6572733a2063616e6e6f74206275726e2074686973204e4654000060448201526064016104ec565b6001600160a01b038316611189576001600160a01b039190911660009081526008602052604090205550565b6001600160a01b038216600090815260086020526040902054156112155760405162461bcd60e51b815260206004820152602860248201527f436c61696d6572733a2064657374696e6174696f6e20616c726561647920686160448201527f7320616e204e465400000000000000000000000000000000000000000000000060648201526084016104ec565b6001600160a01b03928316600090815260086020526040808220829055929093168352912055565b6112478383611404565b61125460008484846112bb565b61063e5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104ec565b60006001600160a01b0384163b156113f957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906112ff903390899088908890600401611a91565b6020604051808303816000875af192505050801561133a575060408051601f3d908101601f1916820190925261133791810190611acd565b60015b6113df573d808015611368576040519150601f19603f3d011682016040523d82523d6000602084013e61136d565b606091505b5080516113d75760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104ec565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610c81565b506001949350505050565b6001600160a01b03821661145a5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104ec565b6000818152600260205260409020546001600160a01b0316156114bf5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104ec565b6114cb60008383611107565b6001600160a01b03821660009081526003602052604081208054600192906114f4908490611a0a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461157557600080fd5b50565b60006020828403121561158a57600080fd5b8135610b108161155f565b60005b838110156115b0578181015183820152602001611598565b83811115610a1b5750506000910152565b600081518084526115d9816020860160208601611595565b601f01601f19169290920160200192915050565b602081526000610b1060208301846115c1565b60006020828403121561161257600080fd5b5035919050565b6001600160a01b038116811461157557600080fd5b6000806040838503121561164157600080fd5b823561164c81611619565b946020939093013593505050565b60008060006060848603121561166f57600080fd5b833561167a81611619565b9250602084013561168a81611619565b929592945050506040919091013590565b6000602082840312156116ad57600080fd5b8135610b1081611619565b600080604083850312156116cb57600080fd5b82356116d681611619565b9150602083013580151581146116eb57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611735576117356116f6565b604052919050565b600067ffffffffffffffff821115611757576117576116f6565b50601f01601f191660200190565b6000806000806080858703121561177b57600080fd5b843561178681611619565b9350602085013561179681611619565b925060408501359150606085013567ffffffffffffffff8111156117b957600080fd5b8501601f810187136117ca57600080fd5b80356117dd6117d88261173d565b61170c565b8181528860208385010111156117f257600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b6000806040838503121561182757600080fd5b823561183281611619565b915060208301356116eb81611619565b60006020828403121561185457600080fd5b8151610b1081611619565b60006020828403121561187157600080fd5b815167ffffffffffffffff81111561188857600080fd5b8201601f8101841361189957600080fd5b80516118a76117d88261173d565b8181528560208385010111156118bc57600080fd5b6118cd826020830160208601611595565b95945050505050565b7f53616e64636c6f636b000000000000000000000000000000000000000000000081526000825161190e816009850160208701611595565b7f202d204465706f7369746f7273000000000000000000000000000000000000006009939091019283015250601601919050565b7f51554152545a2d0000000000000000000000000000000000000000000000000081526000825161197a816007850160208701611595565b7f2d444550000000000000000000000000000000000000000000000000000000006007939091019283015250600b01919050565b600083516119c0818460208801611595565b8351908301906119d4818360208801611595565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611a0557611a056119dd565b500390565b60008219821115611a1d57611a1d6119dd565b500190565b6000600019821415611a3657611a366119dd565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611a6257611a62611a3d565b500490565b600082611a7657611a76611a3d565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b03808716835280861660208401525083604083015260806060830152611ac360808301846115c1565b9695505050505050565b600060208284031215611adf57600080fd5b8151610b108161155f56fea264697066735822122003f42c9b093fbf83de73ebbd1b26fb36c33005517374e75f60da0b1af0bc6a2264736f6c634300080a00330000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000012750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005409ed021d9299bf6814279a6a1411a7e866a631", "value": "0x0"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0xc1aff", "gas_price": "0x4a817c800", "data": "0x60806040523480156200001157600080fd5b5060405162000f3838038062000f3883398101604081905262000034916200024a565b6040518060400160405280600981526020016804d6f636b45524332360bc1b8152506040518060400160405280600381526020016226a29960e91b81525081600390805190602001906200008a929190620001a4565b508051620000a0906004906020840190620001a4565b505050620000b53382620000bc60201b60201c565b50620002c8565b6001600160a01b038216620001175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012b919062000264565b90915550506001600160a01b038216600090815260208190526040812080548392906200015a90849062000264565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001b2906200028b565b90600052602060002090601f016020900481019282620001d6576000855562000221565b82601f10620001f157805160ff191683800117855562000221565b8280016001018555821562000221579182015b828111156200022157825182559160200191906001019062000204565b506200022f92915062000233565b5090565b5b808211156200022f576000815560010162000234565b6000602082840312156200025d57600080fd5b5051919050565b600082198211156200028657634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002a057607f821691505b60208210811415620002c257634e487b7160e01b600052602260045260246000fd5b50919050565b610c6080620002d86000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101b2578063a457c2d7146101c5578063a9059cbb146101d8578063dd62ed3e146101eb57600080fd5b806340c10f191461016c57806370a082311461018157806395d89b41146101aa57600080fd5b806323b872dd116100bd57806323b872dd14610137578063313ce5671461014a578063395093511461015957600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec610224565b6040516100f99190610a7e565b60405180910390f35b610115610110366004610aef565b6102b6565b60405190151581526020016100f9565b6002545b6040519081526020016100f9565b610115610145366004610b19565b6102cc565b604051601281526020016100f9565b610115610167366004610aef565b610390565b61017f61017a366004610aef565b6103cc565b005b61012961018f366004610b55565b6001600160a01b031660009081526020819052604090205490565b6100ec6103da565b61017f6101c0366004610aef565b6103e9565b6101156101d3366004610aef565b6103f3565b6101156101e6366004610aef565b6104a4565b6101296101f9366004610b77565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461023390610baa565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610baa565b80156102ac5780601f10610281576101008083540402835291602001916102ac565b820191906000526020600020905b81548152906001019060200180831161028f57829003601f168201915b5050505050905090565b60006102c33384846104b1565b50600192915050565b60006102d984848461060a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103785760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61038585338584036104b1565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102c39185906103c7908690610bfb565b6104b1565b6103d68282610822565b5050565b60606004805461023390610baa565b6103d68282610901565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561048d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161036f565b61049a33858584036104b1565b5060019392505050565b60006102c333848461060a565b6001600160a01b03831661052c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166105a85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166107025760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038316600090815260208190526040902054818110156107915760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107c8908490610bfb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161081491815260200190565b60405180910390a350505050565b6001600160a01b0382166108785760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161036f565b806002600082825461088a9190610bfb565b90915550506001600160a01b038216600090815260208190526040812080548392906108b7908490610bfb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661097d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b03821660009081526020819052604090205481811015610a0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a3b908490610c13565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016105fd565b600060208083528351808285015260005b81811015610aab57858101830151858201604001528201610a8f565b81811115610abd576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610aea57600080fd5b919050565b60008060408385031215610b0257600080fd5b610b0b83610ad3565b946020939093013593505050565b600080600060608486031215610b2e57600080fd5b610b3784610ad3565b9250610b4560208501610ad3565b9150604084013590509250925092565b600060208284031215610b6757600080fd5b610b7082610ad3565b9392505050565b60008060408385031215610b8a57600080fd5b610b9383610ad3565b9150610ba160208401610ad3565b90509250929050565b600181811c90821680610bbe57607f821691505b60208210811415610bdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c0e57610c0e610be5565b500190565b600082821015610c2557610c25610be5565b50039056fea264697066735822122039c1aae5d50fb3eac139f7e0e991ffe1a830c171490d7829dddb7ed3f9527a2264736f6c634300080a00330000000000000000000000000000000000000000000000000000000000000000", "value": "0x0"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x1d7022f5b17d2f8b695918fb48fa1089c9f85401", "gas_used": "0xcb16b", "gas_price": "0x4a817c800", "data": "0x60806040523480156200001157600080fd5b5060405162000f3838038062000f3883398101604081905262000034916200024a565b6040518060400160405280600981526020016804d6f636b45524332360bc1b8152506040518060400160405280600381526020016226a29960e91b81525081600390805190602001906200008a929190620001a4565b508051620000a0906004906020840190620001a4565b505050620000b53382620000bc60201b60201c565b50620002c8565b6001600160a01b038216620001175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012b919062000264565b90915550506001600160a01b038216600090815260208190526040812080548392906200015a90849062000264565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001b2906200028b565b90600052602060002090601f016020900481019282620001d6576000855562000221565b82601f10620001f157805160ff191683800117855562000221565b8280016001018555821562000221579182015b828111156200022157825182559160200191906001019062000204565b506200022f92915062000233565b5090565b5b808211156200022f576000815560010162000234565b6000602082840312156200025d57600080fd5b5051919050565b600082198211156200028657634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002a057607f821691505b60208210811415620002c257634e487b7160e01b600052602260045260246000fd5b50919050565b610c6080620002d86000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101b2578063a457c2d7146101c5578063a9059cbb146101d8578063dd62ed3e146101eb57600080fd5b806340c10f191461016c57806370a082311461018157806395d89b41146101aa57600080fd5b806323b872dd116100bd57806323b872dd14610137578063313ce5671461014a578063395093511461015957600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec610224565b6040516100f99190610a7e565b60405180910390f35b610115610110366004610aef565b6102b6565b60405190151581526020016100f9565b6002545b6040519081526020016100f9565b610115610145366004610b19565b6102cc565b604051601281526020016100f9565b610115610167366004610aef565b610390565b61017f61017a366004610aef565b6103cc565b005b61012961018f366004610b55565b6001600160a01b031660009081526020819052604090205490565b6100ec6103da565b61017f6101c0366004610aef565b6103e9565b6101156101d3366004610aef565b6103f3565b6101156101e6366004610aef565b6104a4565b6101296101f9366004610b77565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461023390610baa565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610baa565b80156102ac5780601f10610281576101008083540402835291602001916102ac565b820191906000526020600020905b81548152906001019060200180831161028f57829003601f168201915b5050505050905090565b60006102c33384846104b1565b50600192915050565b60006102d984848461060a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103785760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61038585338584036104b1565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102c39185906103c7908690610bfb565b6104b1565b6103d68282610822565b5050565b60606004805461023390610baa565b6103d68282610901565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561048d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161036f565b61049a33858584036104b1565b5060019392505050565b60006102c333848461060a565b6001600160a01b03831661052c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166105a85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166107025760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038316600090815260208190526040902054818110156107915760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107c8908490610bfb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161081491815260200190565b60405180910390a350505050565b6001600160a01b0382166108785760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161036f565b806002600082825461088a9190610bfb565b90915550506001600160a01b038216600090815260208190526040812080548392906108b7908490610bfb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661097d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b03821660009081526020819052604090205481811015610a0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a3b908490610c13565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016105fd565b600060208083528351808285015260005b81811015610aab57858101830151858201604001528201610a8f565b81811115610abd576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610aea57600080fd5b919050565b60008060408385031215610b0257600080fd5b610b0b83610ad3565b946020939093013593505050565b600080600060608486031215610b2e57600080fd5b610b3784610ad3565b9250610b4560208501610ad3565b9150604084013590509250925092565b600060208284031215610b6757600080fd5b610b7082610ad3565b9392505050565b60008060408385031215610b8a57600080fd5b610b9383610ad3565b9150610ba160208401610ad3565b90509250929050565b600181811c90821680610bbe57607f821691505b60208210811415610bdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c0e57610c0e610be5565b500190565b600082821015610c2557610c25610be5565b50039056fea264697066735822122039c1aae5d50fb3eac139f7e0e991ffe1a830c171490d7829dddb7ed3f9527a2264736f6c634300080a00330000000000000000000000000000000000000000033b2e3c9fd0803ce8000000", "value": "0x0"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c", "gas_used": "0x9d78f", "gas_price": "0x4a817c800", "data": "0x608060405234801561001057600080fd5b50604051610b37380380610b3783398101604081905261002f91610116565b6001600160a01b03821661007e5760405162461bcd60e51b815260206004820152601160248201527034b73b30b634b2102aa9aa103a37b5b2b760791b60448201526064015b60405180910390fd5b6001600160a01b0381166100c95760405162461bcd60e51b815260206004820152601260248201527134b73b30b634b21030aaa9aa103a37b5b2b760711b6044820152606401610075565b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055610149565b80516001600160a01b038116811461011157600080fd5b919050565b6000806040838503121561012957600080fd5b610132836100fa565b9150610140602084016100fa565b90509250929050565b6109df806101586000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063a18b8f961161008c578063ac7e534e11610066578063ac7e534e146101e7578063bb0b8e1d146101fa578063e71f468d1461021a578063ed30abd11461023a57600080fd5b8063a18b8f9614610193578063a8a15a21146101c1578063ac1a2322146101d457600080fd5b80637249abb9116100c85780637249abb914610147578063781338c01461015a5780638278749b1461016d578063949103471461018057600080fd5b806307caf901146100ef5780631bbec15e1461011f57806333d7841e14610132575b600080fd5b6101026100fd366004610892565b61025a565b6040516001600160a01b0390911681526020015b60405180910390f35b600154610102906001600160a01b031681565b6101456101403660046108c7565b6102cd565b005b6101456101553660046108f1565b610330565b600054610102906001600160a01b031681565b61014561017b3660046108f1565b610373565b61014561018e3660046108c7565b6103fd565b6101b36101a13660046108f1565b60036020526000908152604090205481565b604051908152602001610116565b6101026101cf366004610892565b610460565b6101456101e23660046108f1565b6104d3565b600254610102906001600160a01b031681565b6101b36102083660046108f1565b60046020526000908152604090205481565b6101b36102283660046108f1565b60066020526000908152604090205481565b6101b36102483660046108f1565b60056020526000908152604090205481565b6002546000906001600160a01b031661027257600080fd5b60015461028a906001600160a01b0316333085610517565b50600280546001600160a01b03908116600090815260046020526040902092909255805473ffffffffffffffffffffffffffffffffffffffff1981169091551690565b6001600160a01b0382166000908152600460205260409020546102ef57600080fd5b600054610307906001600160a01b0316333084610517565b6001600160a01b0390911660009081526004602090815260408083208390556006909152902055565b6001600160a01b03808216600090815260066020526040812054905461035992169033906105ce565b6001600160a01b0316600090815260066020526040812055565b6001600160a01b0381166103ce5760405162461bcd60e51b815260206004820152601060248201527f696e76616c6964206f70657261746f720000000000000000000000000000000060448201526064015b60405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b03821660009081526003602052604090205461041f57600080fd5b600154610437906001600160a01b0316333084610517565b6001600160a01b0390911660009081526003602090815260408083208390556005909152902055565b6002546000906001600160a01b031661047857600080fd5b600054610490906001600160a01b0316333085610517565b50600280546001600160a01b03908116600090815260036020526040902092909255805473ffffffffffffffffffffffffffffffffffffffff1981169091551690565b6001600160a01b038082166000908152600560205260409020546001546104fd92169033906105ce565b6001600160a01b0316600090815260056020526040812055565b6040516001600160a01b03808516602483015283166044820152606481018290526105c89085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261061c565b50505050565b6040516001600160a01b0383166024820152604481018290526106179084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401610564565b505050565b6000610671826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166107019092919063ffffffff16565b805190915015610617578080602001905181019061068f919061090c565b6106175760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103c5565b6060610710848460008561071a565b90505b9392505050565b6060824710156107925760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016103c5565b843b6107e05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103c5565b600080866001600160a01b031685876040516107fc919061095a565b60006040518083038185875af1925050503d8060008114610839576040519150601f19603f3d011682016040523d82523d6000602084013e61083e565b606091505b509150915061084e828286610859565b979650505050505050565b60608315610868575081610713565b8251156108785782518084602001fd5b8160405162461bcd60e51b81526004016103c59190610976565b6000602082840312156108a457600080fd5b5035919050565b80356001600160a01b03811681146108c257600080fd5b919050565b600080604083850312156108da57600080fd5b6108e3836108ab565b946020939093013593505050565b60006020828403121561090357600080fd5b610713826108ab565b60006020828403121561091e57600080fd5b8151801515811461071357600080fd5b60005b83811015610949578181015183820152602001610931565b838111156105c85750506000910152565b6000825161096c81846020870161092e565b9190910192915050565b602081526000825180602084015261099581604085016020870161092e565b601f01601f1916919091016040019291505056fea2646970667358221220675f79b8c40c79f258ad2039ada949228fcf2244dae09ccd8d07a989c996dfae64736f6c634300080a00330000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000001d7022f5b17d2f8b695918fb48fa1089c9f85401", "value": "0x0"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x0b1ba0af832d7c05fd64161e0db78e85978e8082", "gas_used": "0x3d521", "gas_price": "0x4a817c800", "data": "0x608060405234801561001057600080fd5b506040516103ad3803806103ad83398101604081905261002f91610048565b6000805460ff191660ff92909216919091179055610072565b60006020828403121561005a57600080fd5b815160ff8116811461006b57600080fd5b9392505050565b61032c806100816000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637284e4161161005b5780637284e4161461011557806399213cd81461012f5780639a6fc8f51461017b578063feaf968c146101ce57600080fd5b8063313ce567146100825780634005e681146100a657806354fd4d5014610106575b600080fd5b60005461008f9060ff1681565b60405160ff90911681526020015b60405180910390f35b6101046100b4366004610216565b600080546affffffffffffffffffff00191661010069ffffffffffffffffffff978816021790556001939093556002919091556003556004805469ffffffffffffffffffff191691909216179055565b005b6040516001815260200161009d565b6040805160208101825260008152905161009d9190610266565b61010461013d3660046102bb565b60008054610a006affffffffffffffffffff00199091161790556001554260028190556003556004805469ffffffffffffffffffff1916600a179055565b6101976101893660046102d4565b506000908190819081908190565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a00161009d565b60005460015460025460035460045469ffffffffffffffffffff61010090950485169416610197565b803569ffffffffffffffffffff8116811461021157600080fd5b919050565b600080600080600060a0868803121561022e57600080fd5b610237866101f7565b945060208601359350604086013592506060860135915061025a608087016101f7565b90509295509295909350565b600060208083528351808285015260005b8181101561029357858101830151858201604001528201610277565b818111156102a5576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156102cd57600080fd5b5035919050565b6000602082840312156102e657600080fd5b6102ef826101f7565b939250505056fea26469706673582212203b3fd4dfb34a5b79a3319a4d713e08edc2996358a42749de2e3967a0a2802d1c64736f6c634300080a00330000000000000000000000000000000000000000000000000000000000000012", "value": "0x0"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0x5e6096", "gas_price": "0x4a817c800", "data": "0x60a06040523480156200001157600080fd5b50604051620071b2380380620071b283398101604081905262000034916200036e565b6001808190555062000051826200028160201b620018741760201c565b620000a35760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e76657374506572630000000000000060448201526064015b60405180910390fd5b6001600160a01b0384166200010a5760405162461bcd60e51b815260206004820152602660248201527f5661756c74436f6e746578743a20756e6465726c79696e672063616e6e6f742060448201526506265203078360d41b60648201526084016200009a565b600083116200015c5760405162461bcd60e51b815260206004820152601960248201527f6d696e4c6f636b506572696f642063616e6e6f7420626520300000000000000060448201526064016200009a565b6200016960008262000289565b620001957fb165298935924f540e4181c03493a5d686c54a0aaeb3f6216de85b7ffbba77388262000289565b6004829055600280546001600160a01b0319166001600160a01b03861617905560808390526040513090620001ca9062000339565b6001600160a01b039091168152602001604051809103906000f080158015620001f7573d6000803e3d6000fd5b50600680546001600160a01b0319166001600160a01b03929092169190911790556040513090620002289062000347565b6001600160a01b039091168152602001604051809103906000f08015801562000255573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b039290921691909117905550620003bf92505050565b612710101590565b62000295828262000299565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000295576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002f53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611c8d806200383d83390190565b611ce880620054ca83390190565b6001600160a01b03811681146200036b57600080fd5b50565b600080600080608085870312156200038557600080fd5b8451620003928162000355565b8094505060208501519250604085015191506060850151620003b48162000355565b939692955090935050565b60805161345b620003e2600039600081816103ce01526114db015261345b6000f3fe608060405234801561001057600080fd5b50600436106102c85760003560e01c8063947fdb8b1161017b578063c0ddb692116100d8578063df6f9ba71161008c578063e84b25a211610071578063e84b25a21461063f578063eb0ebfbc14610652578063f0f442601461065b57600080fd5b8063df6f9ba714610619578063e4020fdf1461062c57600080fd5b8063c70920bc116100bd578063c70920bc146105eb578063d547741f146105f3578063d812053f1461060657600080fd5b8063c0ddb692146105cb578063c63aa3e7146105d357600080fd5b8063aaa466881161012f578063b0c29efe11610114578063b0c29efe146105b0578063bba97d33146105b8578063bd2e3ecd1461041757600080fd5b8063aaa4668814610548578063b02c43d01461055b57600080fd5b8063a164c25d11610160578063a164c25d14610523578063a217fddf1461052d578063a8c62e761461053557600080fd5b8063947fdb8b146104fd578063999927df1461051057600080fd5b80636f307dc3116102295780638293744b116101dd5780638b6ed67d116101c25780638b6ed67d14610493578063908de6c2146104a657806391d14854146104c657600080fd5b80638293744b1461045d578063878ecfec1461047057600080fd5b806376082a5e1161020e57806376082a5e146103f057806376490b56146104175780637c2032e71461042157600080fd5b80636f307dc31461039e57806373ae54b5146103c957600080fd5b806333a100ca116102805780633a98ef39116102655780633a98ef39146103835780633c90a1701461038c5780634b1533b21461039557600080fd5b806333a100ca1461035d57806336568abe1461037057600080fd5b8063248a9ca3116102b1578063248a9ca31461031257806324f2db0c146103355780632f2ff15d1461034a57600080fd5b806301ffc9a7146102cd5780631325d5f1146102f5575b600080fd5b6102e06102db366004612d70565b61066e565b60405190151581526020015b60405180910390f35b610304670de0b6b3a764000081565b6040519081526020016102ec565b610304610320366004612d9a565b60009081526020819052604090206001015490565b610348610343366004612db3565b6106e6565b005b610348610358366004612e3d565b610854565b61034861036b366004612e6d565b61087f565b61034861037e366004612e3d565b610b04565b610304600d5481565b61030460045481565b610304600e5481565b6002546103b1906001600160a01b031681565b6040516001600160a01b0390911681526020016102ec565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b6103047fb165298935924f540e4181c03493a5d686c54a0aaeb3f6216de85b7ffbba773881565b61030462dd7c0081565b61044861042f366004612d9a565b600b602052600090815260409020805460019091015482565b604080519283526020830191909152016102ec565b61034861046b366004612efa565b610b90565b61030461047e366004612d9a565b6000908152600b602052604090206001015490565b6007546103b1906001600160a01b031681565b6103046104b4366004612d9a565b6000908152600b602052604090205490565b6102e06104d4366004612e3d565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61034861050b366004612fb5565b610c52565b61034861051e366004612e6d565b610e9b565b6103046212750081565b610304600081565b6003546103b1906001600160a01b031681565b6006546103b1906001600160a01b031681565b610590610569366004612d9a565b60096020526000908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016102ec565b6103046110c0565b6103046105c6366004612e6d565b611175565b610304611258565b60405167ffffffffffffffff421681526020016102ec565b61030461128a565b610348610601366004612e3d565b6113fc565b610348610614366004612fd7565b611422565b610348610627366004612efa565b61161b565b61034861063a366004612efa565b6116d5565b61034861064d366004613029565b61178d565b61030460055481565b610348610669366004612e6d565b611830565b60006001600160e01b031982167fc56fd5460000000000000000000000000000000000000000000000000000000014806106d157506001600160e01b031982167f9b736be800000000000000000000000000000000000000000000000000000000145b806106e057506106e08261187c565b92915050565b7fb165298935924f540e4181c03493a5d686c54a0aaeb3f6216de85b7ffbba773861071181336118e3565b6003546001600160a01b031661076e5760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a207374726174656779206973206e6f742073657400000000000060448201526064015b60405180910390fd5b60006107786110c0565b905080156107d15760035460025461079d916001600160a01b03918216911683611961565b6040518181527fac9f7997c30b6a3cc9c74953898b5de154359339c7ec0d6d70ceb98e55db1a4b9060200160405180910390a15b6003546040517f8842db470000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638842db479061081c9087908790600401613044565b600060405180830381600087803b15801561083657600080fd5b505af115801561084a573d6000803e3d6000fd5b5050505050505050565b60008281526020819052604090206001015461087081336118e3565b61087a83836119f2565b505050565b600061088b81336118e3565b6001600160a01b0382166108e15760405162461bcd60e51b815260206004820152601260248201527f5661756c743a20737472617465677920307800000000000000000000000000006044820152606401610765565b306001600160a01b0316826001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094d9190613073565b6001600160a01b0316146109a35760405162461bcd60e51b815260206004820152601460248201527f5661756c743a20696e76616c6964207661756c740000000000000000000000006044820152606401610765565b6003546001600160a01b03161580610a2f5750600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2d9190613090565b155b610aa15760405162461bcd60e51b815260206004820152602260248201527f5661756c743a2073747261746567792068617320696e7665737465642066756e60448201527f64730000000000000000000000000000000000000000000000000000000000006064820152608401610765565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091556040517f4da9c22c924692646a21cf1f423781ae3285198dc22e8a6912835d3272b90b3c90600090a25050565b6001600160a01b0381163314610b825760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610765565b610b8c8282611a90565b5050565b60026001541415610be35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b038216610c3e5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b610c4a82826000611b0f565b505060018055565b60026001541415610ca55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b600260015581610cf75760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f742073706f6e736f7220300000000000000000006044820152606401610765565b621275008110158015610d0d575062dd7c008111155b610d595760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20696e76616c6964206c6f636b20706572696f640000000000006044820152606401610765565b6000610d6542836130bf565b6006549091506000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015610dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de79190613090565b6040805160808101825286815260006020808301828152838501888152606085018481528785526009845293869020945185559051600185015551600284015590516003909201919091558151878152908101859052919250339183917f7ca3497675c6d3ec00b1edc13b8e0b06169ee96a663ab25a74af7da53378f09e910160405180910390a38360056000828254610e8191906130bf565b90915550610e9190503385611b99565b5050600180555050565b60026001541415610eee5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b038116610f495760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b6000610f5433611175565b905080610f6157506110b9565b6000610f7782600d54610f72611258565b611c4e565b90506000610f8f82600d54610f8a611258565b611d0d565b6007549091506000906001600160a01b03166342ec38e2336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f9190613090565b600254909150611029906001600160a01b03168684611961565b6000818152600b60205260408120600101805485929061104a9084906130d7565b9250508190555082600d600082825461106391906130d7565b909155505060408051828152602081018490529081018490526001600160a01b038616907fc64c05237373d420472e7259849c0a314d9c3424021920543562ceffa9b10f949060600160405180910390a2505050505b5060018055565b6000806110d76004546110d161128a565b90611d3c565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa15801561112e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111529190613090565b90508181106111645760009250505090565b61116e81836130d7565b9250505090565b6007546040517f42ec38e20000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009283929116906342ec38e290602401602060405180830381865afa1580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112009190613090565b6000818152600b602052604081208054600190910154600d54939450909290919061122f908390610f8a611258565b90508281116112445750600095945050505050565b61124e83826130d7565b9695505050505050565b60008061126361128a565b905080600554111561127757600091505090565b60055461128490826130d7565b91505090565b6003546000906001600160a01b03161561139057600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113159190613090565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561135d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113819190613090565b61138b91906130bf565b905090565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138b9190613090565b60008281526020819052604090206001015461141881336118e3565b61087a8383611a90565b600260015414156114755760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b6002600155600e5460009061148990611d55565b905081356114d95760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f74206465706f73697420300000000000000000006044820152606401610765565b7f0000000000000000000000000000000000000000000000000000000000000000826040013510158015611514575062dd7c00826040013511155b6115605760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20696e76616c6964206c6f636b20706572696f640000000000006044820152606401610765565b611568611258565b8111156115dd5760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a2063616e6e6f74206465706f736974207768656e207969656c6460448201527f206973206e6567617469766500000000000000000000000000000000000000006064820152608401610765565b60006115ed4260408501356130bf565b905061160783358261160260208701876130ee565b611df2565b611612338435611b99565b50506001805550565b6002600154141561166e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b0382166116c95760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b610c4a82826001611b0f565b600260015414156117285760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610765565b60026001556001600160a01b0382166117835760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e20616464726573732069732030786044820152606401610765565b610c4a828261201c565b600061179981336118e3565b61ffff821661271010156117ef5760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e7665737450657263000000000000006044820152606401610765565b60405161ffff831681527fdd970e7931ce785c1e52bab847c1a662f017c55c66edb76ddebbf61b5aa307859060200160405180910390a15061ffff16600455565b600061183c81336118e3565b6040516001600160a01b038316907f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a25050565b612710101590565b60006001600160e01b031982167f7965db0b0000000000000000000000000000000000000000000000000000000014806106e057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146106e0565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610b8c5761191f816001600160a01b03166014612320565b61192a836020612320565b60405160200161193b92919061316b565b60408051601f198184030181529082905262461bcd60e51b825261076591600401613218565b6040516001600160a01b03831660248201526044810182905261087a9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152612501565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610b8c576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611a4c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610b8c576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600d546000611b1c611258565b8451909150600090815b818160ff161015611b7857611b5a878260ff1681518110611b4957611b4961322b565b602002602001015186868b8a6125e6565b611b6490846130bf565b925080611b7081613241565b915050611b26565b50600254611b90906001600160a01b03168884611961565b50505050505050565b6000611ba361128a565b600254909150611bbe906001600160a01b03168430856129c1565b6000611bc861128a565b9050611bd483836130bf565b8114611c485760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a20616d6f756e7420726563656976656420646f6573206e6f742060448201527f6d6174636820706172616d7300000000000000000000000000000000000000006064820152608401610765565b50505050565b600083611c5d57506000611d06565b82611c7b57611c74670de0b6b3a764000085613261565b9050611d06565b81611cee5760405162461bcd60e51b815260206004820152603660248201527f5661756c743a2063616e6e6f7420636f6d70757465207368617265732077686560448201527f6e2074686572652773206e6f207072696e636970616c000000000000000000006064820152608401610765565b81611cf98486613261565b611d039190613280565b90505b9392505050565b6000821580611d1a575081155b15611d2757506000611d06565b82611d328584613261565b611c749190613280565b6000612710611d4b8385613261565b611d069190613280565b6003546000906001600160a01b0316611d6c575090565b6003546040517f93c3a68f000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116906393c3a68f90602401602060405180830381865afa158015611dce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e09190613090565b600d546000611dff611258565b90506000611e0c60085490565b905060008085611e20600880546001019055565b60005b81811015611f49576000898983818110611e3f57611e3f61322b565b9050602002810190611e5191906132a2565b611e5a906132c2565b805190915061ffff16611ed55760405162461bcd60e51b815260206004820152602360248201527f5661756c743a20636c61696d2070657263656e746167652063616e6e6f74206260448201527f65203000000000000000000000000000000000000000000000000000000000006064820152608401610765565b6000611ee26001856130d7565b8314611efe578151611ef9908e9061ffff16611d3c565b611f08565b611f08858e6130d7565b9050611f1887828e858d8d612a12565b8151611f289061ffff16876130bf565b9550611f3481866130bf565b9450505080611f4290613382565b9050611e23565b506127108314611fc15760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20636c61696d7320646f6e27742061646420757020746f20313060448201527f30250000000000000000000000000000000000000000000000000000000000006064820152608401610765565b8982146120105760405162461bcd60e51b815260206004820152601c60248201527f5661756c743a20616d6f756e7420646f65736e277420616464207570000000006044820152606401610765565b50505050505050505050565b8051600090815b818160ff161015612292576000848260ff16815181106120455761204561322b565b602090810291909101810151600081815260099092526040808320600281015460019091015460065492516331a9108f60e11b8152600481018590529395509093909290916001600160a01b031690636352211e90602401602060405180830381865afa1580156120ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120de9190613073565b6000858152600960205260409020549091506001600160a01b03821633146121485760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20796f7520617265206e6f7420616c6c6f7765640000000000006044820152606401610765565b428411156121985760405162461bcd60e51b815260206004820152601760248201527f5661756c743a20616d6f756e74206973206c6f636b65640000000000000000006044820152606401610765565b82156121e65760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f7420612073706f6e736f726044820152606401610765565b6121f081896130bf565b600654604051630852cd8d60e31b8152600481018890529199506001600160a01b0316906342966c6890602401600060405180830381600087803b15801561223757600080fd5b505af115801561224b573d6000803e3d6000fd5b50506040518792507f05394e48d744e4a16d65f52f88cdaf0f60f5d18af259df878d44cb80826d221f9150600090a25050505050808061228a90613241565b915050612023565b508161229c61128a565b8111156122eb5760405162461bcd60e51b815260206004820152601760248201527f5661756c743a206e6f7420656e6f7567682066756e64730000000000000000006044820152606401610765565b82600560008282546122fd91906130d7565b9091555050600254612319906001600160a01b03168683611961565b5050505050565b6060600061232f836002613261565b61233a9060026130bf565b67ffffffffffffffff81111561235257612352612e8a565b6040519080825280601f01601f19166020018201604052801561237c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106123b3576123b361322b565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106123fe576123fe61322b565b60200101906001600160f81b031916908160001a9053506000612422846002613261565b61242d9060016130bf565b90505b60018111156124b2577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061246e5761246e61322b565b1a60f81b8282815181106124845761248461322b565b60200101906001600160f81b031916908160001a90535060049490941c936124ab8161339d565b9050612430565b508315611d065760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610765565b6000612556826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612c659092919063ffffffff16565b80519091501561087a578080602001905181019061257491906133b4565b61087a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610765565b6000336006546040516331a9108f60e11b8152600481018990526001600160a01b039283169290911690636352211e90602401602060405180830381865afa158015612636573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265a9190613073565b6001600160a01b0316146126d65760405162461bcd60e51b815260206004820152602960248201527f5661756c743a20796f7520617265206e6f7420746865206f776e6572206f662060448201527f61206465706f73697400000000000000000000000000000000000000000000006064820152608401610765565b6000868152600960205260409020600201544210156127375760405162461bcd60e51b815260206004820152601860248201527f5661756c743a206465706f736974206973206c6f636b656400000000000000006044820152606401610765565b6000868152600960205260409020600101546127955760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f742061206465706f7369746044820152606401610765565b600086815260096020908152604080832060018082015460038301549254818752600b909552928520908101549054929491939290916127d6848c8c611c4e565b90506000858211806127e757508382115b90508880156127f35750805b1561281457826128038587613261565b61280d9190613280565b9150612888565b80156128885760405162461bcd60e51b815260206004820152603560248201527f5661756c743a2063616e6e6f74207769746864726177206d6f7265207468616e60448201527f2074686520617661696c61626c6520616d6f756e7400000000000000000000006064820152608401610765565b6000878152600b6020526040812060010180548492906128a99084906130d7565b90915550506000878152600b6020526040812080548792906128cc9084906130d7565b9250508190555081600d60008282546128e591906130d7565b9250508190555084600e60008282546128fe91906130d7565b9091555050600654604051630852cd8d60e31b8152600481018f90526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b50505050896001600160a01b03168d7f95fa98cd1a0b1d7d20d4f5d9f62889e8cfd8d172a99939d2a2f46bb668eb2f4f8460405161299d91815260200190565b60405180910390a36129b0828d8d611d0d565b9d9c50505050505050505050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611c489085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016119a6565b6000612a1f868484611c4e565b60075460208601516040517f6a6278420000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350600092911690636a627842906024016020604051808303816000875af1158015612a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab29190613090565b905081600b60008381526020019081526020016000206001016000828254612ada91906130bf565b90915550506000818152600b602052604081208054899290612afd9084906130bf565b9250508190555081600d6000828254612b1691906130bf565b9250508190555086600e6000828254612b2f91906130bf565b90915550506006546000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015612b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb39190613090565b604080516080810182528a815260208082018681528284018c81526060840189815260008781526009855295909520935184559051600184015551600283015591516003909101558701519091506001600160a01b0316336001600160a01b0316827fd65adbe4936a4680b96204561081c35dabe24fe745c6d959f2acb5d7ee40028a8c8c88888e8e60400151604051612c52969594939291906133d6565b60405180910390a4505050505050505050565b6060611d03848460008585843b612cbe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610765565b600080866001600160a01b03168587604051612cda9190613413565b60006040518083038185875af1925050503d8060008114612d17576040519150601f19603f3d011682016040523d82523d6000602084013e612d1c565b606091505b5091509150612d2c828286612d37565b979650505050505050565b60608315612d46575081611d06565b825115612d565782518084602001fd5b8160405162461bcd60e51b81526004016107659190613218565b600060208284031215612d8257600080fd5b81356001600160e01b031981168114611d0657600080fd5b600060208284031215612dac57600080fd5b5035919050565b60008060208385031215612dc657600080fd5b823567ffffffffffffffff80821115612dde57600080fd5b818501915085601f830112612df257600080fd5b813581811115612e0157600080fd5b866020828501011115612e1357600080fd5b60209290920196919550909350505050565b6001600160a01b0381168114612e3a57600080fd5b50565b60008060408385031215612e5057600080fd5b823591506020830135612e6281612e25565b809150509250929050565b600060208284031215612e7f57600080fd5b8135611d0681612e25565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612ec357612ec3612e8a565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612ef257612ef2612e8a565b604052919050565b60008060408385031215612f0d57600080fd5b8235612f1881612e25565b915060208381013567ffffffffffffffff80821115612f3657600080fd5b818601915086601f830112612f4a57600080fd5b813581811115612f5c57612f5c612e8a565b8060051b9150612f6d848301612ec9565b8181529183018401918481019089841115612f8757600080fd5b938501935b83851015612fa557843582529385019390850190612f8c565b8096505050505050509250929050565b60008060408385031215612fc857600080fd5b50508035926020909101359150565b600060208284031215612fe957600080fd5b813567ffffffffffffffff81111561300057600080fd5b820160608185031215611d0657600080fd5b803561ffff8116811461302457600080fd5b919050565b60006020828403121561303b57600080fd5b611d0682613012565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561308557600080fd5b8151611d0681612e25565b6000602082840312156130a257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156130d2576130d26130a9565b500190565b6000828210156130e9576130e96130a9565b500390565b6000808335601e1984360301811261310557600080fd5b83018035915067ffffffffffffffff82111561312057600080fd5b6020019150600581901b360382131561313857600080fd5b9250929050565b60005b8381101561315a578181015183820152602001613142565b83811115611c485750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516131a381601785016020880161313f565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516131e081602884016020880161313f565b01602801949350505050565b6000815180845261320481602086016020860161313f565b601f01601f19169290920160200192915050565b602081526000611d0660208301846131ec565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff811415613258576132586130a9565b60010192915050565b600081600019048311821515161561327b5761327b6130a9565b500290565b60008261329d57634e487b7160e01b600052601260045260246000fd5b500490565b60008235605e198336030181126132b857600080fd5b9190910192915050565b6000606082360312156132d457600080fd5b6132dc612ea0565b6132e583613012565b81526020808401356132f681612e25565b82820152604084013567ffffffffffffffff8082111561331557600080fd5b9085019036601f83011261332857600080fd5b81358181111561333a5761333a612e8a565b61334c601f8201601f19168501612ec9565b9150808252368482850101111561336257600080fd5b808484018584013760009082019093019290925250604082015292915050565b6000600019821415613396576133966130a9565b5060010190565b6000816133ac576133ac6130a9565b506000190190565b6000602082840312156133c657600080fd5b81518015158114611d0657600080fd5b86815285602082015284604082015283606082015282608082015260c060a0820152600061340760c08301846131ec565b98975050505050505050565b600082516132b881846020870161313f56fea2646970667358221220b18d9865cb4b79d3a360334c53218d688dfc40ae8f307e295bf39de6a31deb9064736f6c634300080a003360806040523480156200001157600080fd5b5060405162001c8d38038062001c8d833981016040819052620000349162000149565b6040805160208082018084526000808452845192830190945283825282519293919262000063929190620000a3565b50805162000079906001906020840190620000a3565b5050600780546001600160a01b0319166001600160a01b03939093169290921790915550620001b8565b828054620000b1906200017b565b90600052602060002090601f016020900481019282620000d5576000855562000120565b82601f10620000f057805160ff191683800117855562000120565b8280016001018555821562000120579182015b828111156200012057825182559160200191906001019062000103565b506200012e92915062000132565b5090565b5b808211156200012e576000815560010162000133565b6000602082840312156200015c57600080fd5b81516001600160a01b03811681146200017457600080fd5b9392505050565b600181811c908216806200019057607f821691505b60208210811415620001b257634e487b7160e01b600052602260045260246000fd5b50919050565b611ac580620001c86000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636352211e116100b2578063a22cb46511610081578063c87b56dd11610066578063c87b56dd1461025e578063e985e9c514610271578063fbfa77cf146102ad57600080fd5b8063a22cb46514610238578063b88d4fde1461024b57600080fd5b80636352211e146101e95780636a627842146101fc57806370a082311461021d57806395d89b411461023057600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342966c68146101c35780634f558e79146101d657600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e36600461151d565b6102c0565b60405190151581526020015b60405180910390f35b61015061035d565b60405161013f9190611592565b61017061016b3660046115a5565b610454565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046115d3565b6104ee565b005b61019b6101ab3660046115ff565b610620565b61019b6101be3660046115ff565b6106a7565b61019b6101d13660046115a5565b6106c2565b6101336101e43660046115a5565b610728565b6101706101f73660046115a5565b610747565b61020f61020a366004611640565b6107d2565b60405190815260200161013f565b61020f61022b366004611640565b610854565b6101506108ee565b61019b61024636600461165d565b6109d1565b61019b61025936600461170a565b6109e0565b61015061026c3660046115a5565b610a6e565b61013361027f3660046117b9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061032357506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061035757507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb91906117e7565b6001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015610408573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104309190810190611804565b604051602001610440919061187b565b604051602081830303815290604052905090565b6000818152600260205260408120546001600160a01b03166104d25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006104f982610747565b9050806001600160a01b0316836001600160a01b031614156105835760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016104c9565b336001600160a01b038216148061059f575061059f813361027f565b6106115760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016104c9565b61061b8383610b64565b505050565b61062a3382610bdf565b61069c5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104c9565b61061b838383610cd6565b61061b838383604051806020016040528060008152506109e0565b6007546001600160a01b0316331461071c5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a656400000000000060448201526064016104c9565b61072581610eb0565b50565b6000818152600260205260408120546001600160a01b03161515610357565b6000818152600260205260408120546001600160a01b0316806103575760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016104c9565b6007546000906001600160a01b0316331461082f5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a656400000000000060448201526064016104c9565b600061083a60065490565b905061084a600680546001019055565b6103578382610f58565b60006001600160a01b0382166108d25760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016104c9565b506001600160a01b031660009081526003602052604090205490565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c91906117e7565b6001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610999573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c19190810190611804565b60405160200161044091906118e7565b6109dc338383610f72565b5050565b6109ea3383610bdf565b610a5c5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104c9565b610a6884848484611041565b50505050565b6000818152600260205260409020546060906001600160a01b0316610afb5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e000000000000000000000000000000000060648201526084016104c9565b6000610b1260408051602081019091526000815290565b90506000815111610b325760405180602001604052806000815250610b5d565b80610b3c846110bf565b604051602001610b4d929190611953565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610ba682610747565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610c585760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016104c9565b6000610c6383610747565b9050806001600160a01b0316846001600160a01b03161480610c9e5750836001600160a01b0316610c9384610454565b6001600160a01b0316145b80610cce57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610ce982610747565b6001600160a01b031614610d655760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016104c9565b6001600160a01b038216610de05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104c9565b610deb600082610b64565b6001600160a01b0383166000908152600360205260408120805460019290610e14908490611998565b90915550506001600160a01b0382166000908152600360205260408120805460019290610e429084906119af565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000610ebb82610747565b9050610ec8600083610b64565b6001600160a01b0381166000908152600360205260408120805460019290610ef1908490611998565b9091555050600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6109dc8282604051806020016040528060008152506111f1565b816001600160a01b0316836001600160a01b03161415610fd45760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104c9565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61104c848484610cd6565b6110588484848461126f565b610a685760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104c9565b6060816110ff57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156111295780611113816119c7565b91506111229050600a836119f8565b9150611103565b60008167ffffffffffffffff8111156111445761114461169b565b6040519080825280601f01601f19166020018201604052801561116e576020820181803683370190505b5090505b8415610cce57611183600183611998565b9150611190600a86611a0c565b61119b9060306119af565b60f81b8183815181106111b0576111b0611a20565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506111ea600a866119f8565b9450611172565b6111fb83836113b8565b611208600084848461126f565b61061b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104c9565b60006001600160a01b0384163b156113ad57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906112b3903390899088908890600401611a36565b6020604051808303816000875af19250505080156112ee575060408051601f3d908101601f191682019092526112eb91810190611a72565b60015b611393573d80801561131c576040519150601f19603f3d011682016040523d82523d6000602084013e611321565b606091505b50805161138b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104c9565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610cce565b506001949350505050565b6001600160a01b03821661140e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104c9565b6000818152600260205260409020546001600160a01b0316156114735760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104c9565b6001600160a01b038216600090815260036020526040812080546001929061149c9084906119af565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461072557600080fd5b60006020828403121561152f57600080fd5b8135610b5d81611507565b60005b8381101561155557818101518382015260200161153d565b83811115610a685750506000910152565b6000815180845261157e81602086016020860161153a565b601f01601f19169290920160200192915050565b602081526000610b5d6020830184611566565b6000602082840312156115b757600080fd5b5035919050565b6001600160a01b038116811461072557600080fd5b600080604083850312156115e657600080fd5b82356115f1816115be565b946020939093013593505050565b60008060006060848603121561161457600080fd5b833561161f816115be565b9250602084013561162f816115be565b929592945050506040919091013590565b60006020828403121561165257600080fd5b8135610b5d816115be565b6000806040838503121561167057600080fd5b823561167b816115be565b91506020830135801515811461169057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116da576116da61169b565b604052919050565b600067ffffffffffffffff8211156116fc576116fc61169b565b50601f01601f191660200190565b6000806000806080858703121561172057600080fd5b843561172b816115be565b9350602085013561173b816115be565b925060408501359150606085013567ffffffffffffffff81111561175e57600080fd5b8501601f8101871361176f57600080fd5b803561178261177d826116e2565b6116b1565b81815288602083850101111561179757600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600080604083850312156117cc57600080fd5b82356117d7816115be565b91506020830135611690816115be565b6000602082840312156117f957600080fd5b8151610b5d816115be565b60006020828403121561181657600080fd5b815167ffffffffffffffff81111561182d57600080fd5b8201601f8101841361183e57600080fd5b805161184c61177d826116e2565b81815285602083850101111561186157600080fd5b61187282602083016020860161153a565b95945050505050565b7f53616e64636c6f636b00000000000000000000000000000000000000000000008152600082516118b381600985016020870161153a565b7f202d204465706f7369746f7273000000000000000000000000000000000000006009939091019283015250601601919050565b7f51554152545a2d0000000000000000000000000000000000000000000000000081526000825161191f81600785016020870161153a565b7f2d444550000000000000000000000000000000000000000000000000000000006007939091019283015250600b01919050565b6000835161196581846020880161153a565b83519083019061197981836020880161153a565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119aa576119aa611982565b500390565b600082198211156119c2576119c2611982565b500190565b60006000198214156119db576119db611982565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611a0757611a076119e2565b500490565b600082611a1b57611a1b6119e2565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b03808716835280861660208401525083604083015260806060830152611a686080830184611566565b9695505050505050565b600060208284031215611a8457600080fd5b8151610b5d8161150756fea26469706673582212205ee5b51e017fa66607bf66829c4928d99498f3642272c14859c0e9376a47846c64736f6c634300080a003360806040523480156200001157600080fd5b5060405162001ce838038062001ce8833981016040819052620000349162000149565b6040805160208082018084526000808452845192830190945283825282519293919262000063929190620000a3565b50805162000079906001906020840190620000a3565b5050600780546001600160a01b0319166001600160a01b03939093169290921790915550620001b8565b828054620000b1906200017b565b90600052602060002090601f016020900481019282620000d5576000855562000120565b82601f10620000f057805160ff191683800117855562000120565b8280016001018555821562000120579182015b828111156200012057825182559160200191906001019062000103565b506200012e92915062000132565b5090565b5b808211156200012e576000815560010162000133565b6000602082840312156200015c57600080fd5b81516001600160a01b03811681146200017457600080fd5b9392505050565b600181811c908216806200019057607f821691505b60208210811415620001b257634e487b7160e01b600052602260045260246000fd5b50919050565b611b2080620001c86000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636a627842116100b2578063adde18b011610081578063c87b56dd11610066578063c87b56dd14610281578063e985e9c514610294578063fbfa77cf146102d057600080fd5b8063adde18b01461024e578063b88d4fde1461026e57600080fd5b80636a6278421461020d57806370a082311461022057806395d89b4114610233578063a22cb4651461023b57600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342ec38e2146101c35780636352211e146101fa57600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e366004611578565b6102e3565b60405190151581526020015b60405180910390f35b610150610380565b60405161013f91906115ed565b61017061016b366004611600565b610477565b6040516001600160a01b03909116815260200161013f565b61019b61019636600461162e565b610511565b005b61019b6101ab36600461165a565b610643565b61019b6101be36600461165a565b6106ca565b6101ec6101d136600461169b565b6001600160a01b031660009081526008602052604090205490565b60405190815260200161013f565b610170610208366004611600565b6106e5565b6101ec61021b36600461169b565b610770565b6101ec61022e36600461169b565b610807565b6101506108a1565b61019b6102493660046116b8565b610984565b6101ec61025c36600461169b565b60086020526000908152604090205481565b61019b61027c366004611765565b610993565b61015061028f366004611600565b610a21565b6101336102a2366004611814565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061034657506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061037a57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee9190611842565b6001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801561042b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610453919081019061185f565b60405160200161046391906118d6565b604051602081830303815290604052905090565b6000818152600260205260408120546001600160a01b03166104f55760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061051c826106e5565b9050806001600160a01b0316836001600160a01b031614156105a65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016104ec565b336001600160a01b03821614806105c257506105c281336102a2565b6106345760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016104ec565b61063e8383610b17565b505050565b61064d3382610b92565b6106bf5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104ec565b61063e838383610c89565b61063e83838360405180602001604052806000815250610993565b6000818152600260205260408120546001600160a01b03168061037a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016104ec565b6007546000906001600160a01b031633146107cd5760405162461bcd60e51b815260206004820152601860248201527f436c61696d6572733a206e6f7420617574686f72697a6564000000000000000060448201526064016104ec565b6001600160a01b0382166000908152600860205260409020548061037a576107f9600680546001019055565b5060065461037a8382610e6e565b60006001600160a01b0382166108855760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016104ec565b506001600160a01b031660009081526003602052604090205490565b60075460408051636f307dc360e01b815290516060926001600160a01b031691636f307dc39160048083019260209291908290030181865afa1580156108eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090f9190611842565b6001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561094c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610974919081019061185f565b6040516020016104639190611942565b61098f338383610e88565b5050565b61099d3383610b92565b610a0f5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104ec565b610a1b84848484610f57565b50505050565b6000818152600260205260409020546060906001600160a01b0316610aae5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e000000000000000000000000000000000060648201526084016104ec565b6000610ac560408051602081019091526000815290565b90506000815111610ae55760405180602001604052806000815250610b10565b80610aef84610fd5565b604051602001610b009291906119ae565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610b59826106e5565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610c0b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016104ec565b6000610c16836106e5565b9050806001600160a01b0316846001600160a01b03161480610c515750836001600160a01b0316610c4684610477565b6001600160a01b0316145b80610c8157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610c9c826106e5565b6001600160a01b031614610d185760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016104ec565b6001600160a01b038216610d935760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104ec565b610d9e838383611107565b610da9600082610b17565b6001600160a01b0383166000908152600360205260408120805460019290610dd29084906119f3565b90915550506001600160a01b0382166000908152600360205260408120805460019290610e00908490611a0a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61098f82826040518060200160405280600081525061123d565b816001600160a01b0316836001600160a01b03161415610eea5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104ec565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610f62848484610c89565b610f6e848484846112bb565b610a1b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104ec565b60608161101557505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561103f578061102981611a22565b91506110389050600a83611a53565b9150611019565b60008167ffffffffffffffff81111561105a5761105a6116f6565b6040519080825280601f01601f191660200182016040528015611084576020820181803683370190505b5090505b8415610c81576110996001836119f3565b91506110a6600a86611a67565b6110b1906030611a0a565b60f81b8183815181106110c6576110c6611a7b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611100600a86611a53565b9450611088565b6001600160a01b03821661115d5760405162461bcd60e51b815260206004820152601e60248201527f436c61696d6572733a2063616e6e6f74206275726e2074686973204e4654000060448201526064016104ec565b6001600160a01b038316611189576001600160a01b039190911660009081526008602052604090205550565b6001600160a01b038216600090815260086020526040902054156112155760405162461bcd60e51b815260206004820152602860248201527f436c61696d6572733a2064657374696e6174696f6e20616c726561647920686160448201527f7320616e204e465400000000000000000000000000000000000000000000000060648201526084016104ec565b6001600160a01b03928316600090815260086020526040808220829055929093168352912055565b6112478383611404565b61125460008484846112bb565b61063e5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104ec565b60006001600160a01b0384163b156113f957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906112ff903390899088908890600401611a91565b6020604051808303816000875af192505050801561133a575060408051601f3d908101601f1916820190925261133791810190611acd565b60015b6113df573d808015611368576040519150601f19603f3d011682016040523d82523d6000602084013e61136d565b606091505b5080516113d75760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60648201526084016104ec565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610c81565b506001949350505050565b6001600160a01b03821661145a5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104ec565b6000818152600260205260409020546001600160a01b0316156114bf5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104ec565b6114cb60008383611107565b6001600160a01b03821660009081526003602052604081208054600192906114f4908490611a0a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461157557600080fd5b50565b60006020828403121561158a57600080fd5b8135610b108161155f565b60005b838110156115b0578181015183820152602001611598565b83811115610a1b5750506000910152565b600081518084526115d9816020860160208601611595565b601f01601f19169290920160200192915050565b602081526000610b1060208301846115c1565b60006020828403121561161257600080fd5b5035919050565b6001600160a01b038116811461157557600080fd5b6000806040838503121561164157600080fd5b823561164c81611619565b946020939093013593505050565b60008060006060848603121561166f57600080fd5b833561167a81611619565b9250602084013561168a81611619565b929592945050506040919091013590565b6000602082840312156116ad57600080fd5b8135610b1081611619565b600080604083850312156116cb57600080fd5b82356116d681611619565b9150602083013580151581146116eb57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611735576117356116f6565b604052919050565b600067ffffffffffffffff821115611757576117576116f6565b50601f01601f191660200190565b6000806000806080858703121561177b57600080fd5b843561178681611619565b9350602085013561179681611619565b925060408501359150606085013567ffffffffffffffff8111156117b957600080fd5b8501601f810187136117ca57600080fd5b80356117dd6117d88261173d565b61170c565b8181528860208385010111156117f257600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b6000806040838503121561182757600080fd5b823561183281611619565b915060208301356116eb81611619565b60006020828403121561185457600080fd5b8151610b1081611619565b60006020828403121561187157600080fd5b815167ffffffffffffffff81111561188857600080fd5b8201601f8101841361189957600080fd5b80516118a76117d88261173d565b8181528560208385010111156118bc57600080fd5b6118cd826020830160208601611595565b95945050505050565b7f53616e64636c6f636b000000000000000000000000000000000000000000000081526000825161190e816009850160208701611595565b7f202d204465706f7369746f7273000000000000000000000000000000000000006009939091019283015250601601919050565b7f51554152545a2d0000000000000000000000000000000000000000000000000081526000825161197a816007850160208701611595565b7f2d444550000000000000000000000000000000000000000000000000000000006007939091019283015250600b01919050565b600083516119c0818460208801611595565b8351908301906119d4818360208801611595565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611a0557611a056119dd565b500390565b60008219821115611a1d57611a1d6119dd565b500190565b6000600019821415611a3657611a366119dd565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611a6257611a62611a3d565b500490565b600082611a7657611a76611a3d565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b03808716835280861660208401525083604083015260806060830152611ac360808301846115c1565b9695505050505050565b600060208284031215611adf57600080fd5b8151610b108161155f56fea264697066735822122003f42c9b093fbf83de73ebbd1b26fb36c33005517374e75f60da0b1af0bc6a2264736f6c634300080a00330000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000012750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005409ed021d9299bf6814279a6a1411a7e866a631", "value": "0x0"}, +{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x34d402f14d58e001d8efbe6585051bf9706aa064", "gas_used": "0x2119c8", "gas_price": "0x4a817c800", "data": "0x6101206040523480156200001257600080fd5b5060405162002c7538038062002c7583398101604081905262000035916200064c565b868686868686863380620000905760405162461bcd60e51b815260206004820152601f60248201527f416e63686f724261736553747261746567793a206f776e65722069732030780060448201526064015b60405180910390fd5b6001600160a01b038616620000e85760405162461bcd60e51b815260206004820181905260248201527f416e63686f724261736553747261746567793a20726f75746572206973203078604482015260640162000087565b6001600160a01b038416620001405760405162461bcd60e51b815260206004820152601d60248201527f416e63686f724261736553747261746567793a20757374206973203078000000604482015260640162000087565b6001600160a01b038316620001985760405162461bcd60e51b815260206004820152601e60248201527f416e63686f724261736553747261746567793a20615553542069732030780000604482015260640162000087565b6001600160a01b038716620001fb5760405162461bcd60e51b815260206004820152602260248201527f416e63686f724261736553747261746567793a20747265617375727920697320604482015261060f60f31b606482015260840162000087565b620002158261ffff166200049460201b620010931760201c565b620002775760405162461bcd60e51b815260206004820152602b60248201527f416e63686f724261736553747261746567793a20696e76616c6964207065726660448201526a6f726d616e63652066656560a81b606482015260840162000087565b620002a16362b7eaa360e11b896001600160a01b03166200049c60201b6200109b1790919060201c565b620002f95760405162461bcd60e51b815260206004820152602160248201527f416e63686f724261736553747261746567793a206e6f7420616e20495661756c6044820152601d60fa1b606482015260840162000087565b620003066000826200054f565b620003327f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08896200054f565b600180546001600160a01b0319166001600160a01b0389811691909117909155881660a081905260408051636f307dc360e01b81529051636f307dc3916004808201926020929091908290030181865afa15801562000395573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bb9190620006fd565b6001600160a01b03908116608052600280546001600160a01b03191688831617905585811661010081905285821660c05290841660e0526001805461ffff60a01b1916600160a01b61ffff8616021790556040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa15801562000448573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046e919062000724565b6200047b90600a6200085c565b600855506200086d9d5050505050505050505050505050565b612710101590565b60008080620004b3856301ffc9a760e01b6200055f565b9092509050811580620004c4575080155b15620004d65760009250505062000549565b620004ea856001600160e01b03196200055f565b9092509050811580620004fc57508015155b156200050e5760009250505062000549565b6200051a85856200055f565b9092509050600182148015620005305750806001145b15620005425760019250505062000549565b6000925050505b92915050565b6200055b828262000593565b5050565b6040516301ffc9a760e01b8082526004820183905260009182919060208160248189617530fa905190969095509350505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200055b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620005ef3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6001600160a01b03811681146200064957600080fd5b50565b600080600080600080600060e0888a0312156200066857600080fd5b8751620006758162000633565b6020890151909750620006888162000633565b60408901519096506200069b8162000633565b6060890151909550620006ae8162000633565b6080890151909450620006c18162000633565b60a0890151909350620006d48162000633565b60c089015190925061ffff81168114620006ed57600080fd5b8091505092959891949750929550565b6000602082840312156200071057600080fd5b81516200071d8162000633565b9392505050565b6000602082840312156200073757600080fd5b815160ff811681146200071d57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007a057816000190482111562000784576200078462000749565b808516156200079257918102915b93841c939080029062000764565b509250929050565b600082620007b95750600162000549565b81620007c85750600062000549565b8160018114620007e15760028114620007ec576200080c565b600191505062000549565b60ff84111562000800576200080062000749565b50506001821b62000549565b5060208310610133831016604e8410600b841016171562000831575081810a62000549565b6200083d83836200075f565b806000190482111562000854576200085462000749565b029392505050565b60006200071d60ff841683620007a8565b60805160a05160c05160e05161010051612399620008dc600039600081816102c301526118f10152600081816102840152818161069a01526118900152600081816103de0152818161170a0152611d940152600061051e0152600081816103b7015261141c01526123996000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c80636abc84251161012a578063a217fddf116100bd578063d547741f1161008c578063eb0469e511610071578063eb0469e5146104df578063ec87621c146104f2578063fbfa77cf1461051957600080fd5b8063d547741f146104a4578063d9db2b77146104b757600080fd5b8063a217fddf14610479578063a354264d14610481578063bfd131f114610489578063ce8c42e81461049157600080fd5b80639119c067116100f95780639119c0671461041357806391d148541461041c57806393c3a68f14610453578063958437ee1461046657600080fd5b80636abc84251461039f5780636f307dc3146103b2578063781338c0146103d95780638842db471461040057600080fd5b8063428eab1e116101a2578063563233f611610171578063563233f6146103685780635c074f441461037b57806361d027b31461038457806362eac09d1461039757600080fd5b8063428eab1e1461033c5780634a614cf4146103455780634ad0b6841461034d578063524737541461035557600080fd5b80631ce63147116101de5780631ce63147146102be578063248a9ca3146102e55780632f2ff15d1461031657806336568abe1461032957600080fd5b806301ffc9a71461021057806307caf901146102385780631312e0c51461024d5780631bbec15e1461027f575b600080fd5b61022361021e366004611fa3565b610540565b60405190151581526020015b60405180910390f35b61024b610246366004611fcd565b610590565b005b61026061025b366004611fcd565b61081c565b604080516001600160a01b03909316835260208301919091520161022f565b6102a67f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161022f565b6102a67f000000000000000000000000000000000000000000000000000000000000000081565b6103086102f3366004611fcd565b60009081526020819052604090206001015490565b60405190815260200161022f565b61024b610324366004611ffb565b610854565b61024b610337366004611ffb565b61087f565b61030860075481565b600554610308565b61030861090b565b61024b610363366004611fcd565b61093d565b61024b61037636600461202b565b61094c565b61030860035481565b6001546102a6906001600160a01b031681565b600654610308565b61024b6103ad366004611fcd565b610adc565b6102a67f000000000000000000000000000000000000000000000000000000000000000081565b6102a67f000000000000000000000000000000000000000000000000000000000000000081565b61024b61040e36600461204f565b610e44565b61030860045481565b61022361042a366004611ffb565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610308610461366004611fcd565b610ed4565b610260610474366004611fcd565b610ee2565b610308600081565b610308610ef2565b61024b610f2f565b61024b61049f366004611fcd565b610fdd565b61024b6104b2366004611ffb565b61106d565b6001546104cc90600160a01b900461ffff1681565b60405161ffff909116815260200161022f565b6002546102a6906001600160a01b031681565b6103087f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b6102a67f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061058a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b3360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff166106255760405162461bcd60e51b815260206004820152602960248201527f416e63686f724261736553747261746567793a2063616c6c6572206973206e6f6044820152683a1036b0b730b3b2b960b91b60648201526084015b60405180910390fd5b806106725760405162461bcd60e51b815260206004820152601c60248201527f416e63686f724261736553747261746567793a20616d6f756e74203000000000604482015260640161061c565b806004600082825461068491906120d7565b90915550506002546106c3906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168361113d565b6002546040517f07caf901000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b0316906307caf901906024016020604051808303816000875af1158015610728573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074c91906120ef565b6040805180820182526001600160a01b0383811680835260208084018881526006805460018101825560009190915294517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290960295860180546001600160a01b031916919095161790935591517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40909301929092559151858152929350917f8ae1a29c2159df38e3ed55004e595d4a504c44b98951a0501db94b7d9dfa2113910160405180910390a25050565b6005818154811061082c57600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6000828152602081905260409020600101546108708133611269565b61087a83836112e7565b505050565b6001600160a01b03811633146108fd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c660000000000000000000000000000000000606482015260840161061c565b6109078282611385565b5050565b600080600354610919611404565b61092391906120d7565b905061092d611495565b61093790826120d7565b91505090565b610946816114fa565b50505050565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166109f05760405162461bcd60e51b815260206004820152602760248201527f416e63686f724261736553747261746567793a2063616c6c6572206973206e6f60448201527f742061646d696e00000000000000000000000000000000000000000000000000606482015260840161061c565b61ffff81166127101015610a6c5760405162461bcd60e51b815260206004820152602b60248201527f416e63686f724261736553747261746567793a20696e76616c6964207065726660448201527f6f726d616e636520666565000000000000000000000000000000000000000000606482015260840161061c565b600180547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff16600160a01b61ffff8416908102919091179091556040519081527f3c1be17360b5ce4015d5d5ddd50de6e7e9d53d49907f45d72a202e159306938c9060200160405180910390a150565b3360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16610b6c5760405162461bcd60e51b815260206004820152602960248201527f416e63686f724261736553747261746567793a2063616c6c6572206973206e6f6044820152683a1036b0b730b3b2b960b91b606482015260840161061c565b6005548110610bbd5760405162461bcd60e51b815260206004820152601f60248201527f416e63686f724261736553747261746567793a206e6f742072756e6e696e6700604482015260640161061c565b600060058281548110610bd257610bd261210c565b60009182526020822060029091020180549092506001600160a01b031690610bf8611878565b6002546040517fac1a23220000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015292935091169063ac1a232290602401600060405180830381600087803b158015610c5a57600080fd5b505af1158015610c6e573d6000803e3d6000fd5b50505050600081610c7d611878565b610c879190612122565b905060008111610cfe5760405162461bcd60e51b8152602060048201526024808201527f416e63686f724261736553747261746567793a206e6f2061555354207265747560448201527f726e656400000000000000000000000000000000000000000000000000000000606482015260840161061c565b6000846001015490508060036000828254610d199190612122565b925050819055508060076000828254610d3291906120d7565b909155505060408051828152602081018490526001600160a01b038616917f225c081659607ca4ffa8d328c88b0c3d6c99d0ba75b002e377abf8b4ca2fdc79910160405180910390a2600554610d8a90600190612122565b861015610e02576005805460009190610da590600190612122565b81548110610db557610db561210c565b60009182526020918290206040805180820190915260029092020180546001600160a01b03168083526001918201549290930182905288546001600160a01b031916909217885590870155505b6005805480610e1357610e13612139565b60008281526020812060026000199093019283020180546001600160a01b0319168155600101559055505050505050565b3360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff166109075760405162461bcd60e51b815260206004820152602960248201527f416e63686f724261736553747261746567793a2063616c6c6572206973206e6f6044820152683a1036b0b730b3b2b960b91b606482015260840161061c565b600061058a826126486118c7565b6006818154811061082c57600080fd5b600060075460001415610f055750600090565b6000600454610f12611878565b610f1c91906120d7565b905061093781610f2a6118e7565b611a28565b3360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16610fbf5760405162461bcd60e51b815260206004820152602960248201527f416e63686f724261736553747261746567793a2063616c6c6572206973206e6f6044820152683a1036b0b730b3b2b960b91b606482015260840161061c565b6000610fc9611878565b90508015610fda57610fda81610590565b50565b3360009081527fe84508f2c7fa9c351146748b3025cb78b45df37d868e48c6a75102fecdeee645602052604090205460ff16610fda5760405162461bcd60e51b815260206004820152602960248201527f416e63686f724261736553747261746567793a2063616c6c6572206973206e6f6044820152683a1036b0b730b3b2b960b91b606482015260840161061c565b6000828152602081905260409020600101546110898133611269565b61087a8383611385565b612710101590565b600080806110b0856301ffc9a760e01b611a82565b90925090508115806110c0575080155b156110d05760009250505061058a565b6110e2856001600160e01b0319611a82565b90925090508115806110f357508015155b156111035760009250505061058a565b61110d8585611a82565b90925090506001821480156111225750806001145b156111325760019250505061058a565b506000949350505050565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156111a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cb919061214f565b6111d591906120d7565b6040516001600160a01b0385166024820152604481018290529091506109469085907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152611ab6565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610907576112a5816001600160a01b03166014611b9b565b6112b0836020611b9b565b6040516020016112c1929190612194565b60408051601f198184030181529082905262461bcd60e51b825261061c91600401612215565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610907576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556113413390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610907576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024015b602060405180830381865afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611490919061214f565b905090565b6000806004546114a3611878565b6114ad91906120d7565b9050806114bc57600091505090565b60006114c66118e7565b90506114d28282611a28565b6008546114df8484612248565b6114e99190612267565b6114f39190612122565b9250505090565b600080600083600680549050116115535760405162461bcd60e51b815260206004820152601f60248201527f416e63686f724261736553747261746567793a206e6f742072756e6e696e6700604482015260640161061c565b6000600685815481106115685761156861210c565b906000526020600020906002020190506000600454611585611878565b61158f91906120d7565b6001830154835460075492935090916001600160a01b039091169060009084906115ba908590612248565b6115c49190612267565b6002546040517f7249abb90000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152929350911690637249abb990602401600060405180830381600087803b15801561162657600080fd5b505af115801561163a573d6000803e3d6000fd5b505050506000611648611d7c565b9050600081116116bf5760405162461bcd60e51b8152602060048201526024808201527f416e63686f724261736553747261746567793a206e6f7468696e67207265646560448201527f656d656400000000000000000000000000000000000000000000000000000000606482015260840161061c565b60008282116116cf5760006116f1565b6001546116f190600160a01b900461ffff166116eb8585612122565b906118c7565b9050801561176757600154611733906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911683611dcb565b6040518181527f400bdf25b31ddf5f320a4bc5dd19386740a74e689d95b01e02c4b499b51b99549060200160405180910390a15b82600760008282546117799190612122565b9250508190555084600460008282546117929190612122565b90915550506006546117a690600190612122565b8b101561181e5760068054600091906117c190600190612122565b815481106117d1576117d161210c565b60009182526020918290206040805180820190915260029092020180546001600160a01b0316808352600191820154929093018290528a546001600160a01b0319169092178a5590890155505b600680548061182f5761182f612139565b60008281526020812060026000199093019283020180546001600160a01b031916815560010155905583856118648385612122565b995099509950505050505050509193909250565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240161144f565b60006127106118d68385612248565b6118e09190612267565b9392505050565b60008060008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561194d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197191906122a8565b94509450509350935060008313801561198957508115155b80156119ad57508369ffffffffffffffffffff168169ffffffffffffffffffff1610155b611a1f5760405162461bcd60e51b815260206004820152602560248201527f416e63686f724261736553747261746567793a20696e76616c6964206155535460448201527f2072617465000000000000000000000000000000000000000000000000000000606482015260840161061c565b50909392505050565b6000806008548484611a3a9190612248565b611a449190612267565b9050600754811115611a7857600154600754611a7091600160a01b900461ffff16906116eb9084612122565b91505061058a565b5060009392505050565b6040516301ffc9a760e01b8082526004820183905260009182919060208160248189617530fa905190969095509350505050565b6000611b0b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611e149092919063ffffffff16565b80519091501561087a5780806020019051810190611b2991906122f8565b61087a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161061c565b60606000611baa836002612248565b611bb59060026120d7565b67ffffffffffffffff811115611bcd57611bcd61231a565b6040519080825280601f01601f191660200182016040528015611bf7576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611c2e57611c2e61210c565b60200101906001600160f81b031916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611c7957611c7961210c565b60200101906001600160f81b031916908160001a9053506000611c9d846002612248565b611ca89060016120d7565b90505b6001811115611d2d577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611ce957611ce961210c565b1a60f81b828281518110611cff57611cff61210c565b60200101906001600160f81b031916908160001a90535060049490941c93611d2681612330565b9050611cab565b5083156118e05760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161061c565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240161144f565b6040516001600160a01b03831660248201526044810182905261087a9084907fa9059cbb000000000000000000000000000000000000000000000000000000009060640161121d565b6060611e238484600085611e2b565b949350505050565b606082471015611ea35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161061c565b843b611ef15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161061c565b600080866001600160a01b03168587604051611f0d9190612347565b60006040518083038185875af1925050503d8060008114611f4a576040519150601f19603f3d011682016040523d82523d6000602084013e611f4f565b606091505b5091509150611f5f828286611f6a565b979650505050505050565b60608315611f795750816118e0565b825115611f895782518084602001fd5b8160405162461bcd60e51b815260040161061c9190612215565b600060208284031215611fb557600080fd5b81356001600160e01b0319811681146118e057600080fd5b600060208284031215611fdf57600080fd5b5035919050565b6001600160a01b0381168114610fda57600080fd5b6000806040838503121561200e57600080fd5b82359150602083013561202081611fe6565b809150509250929050565b60006020828403121561203d57600080fd5b813561ffff811681146118e057600080fd5b6000806020838503121561206257600080fd5b823567ffffffffffffffff8082111561207a57600080fd5b818501915085601f83011261208e57600080fd5b81358181111561209d57600080fd5b8660208285010111156120af57600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156120ea576120ea6120c1565b500190565b60006020828403121561210157600080fd5b81516118e081611fe6565b634e487b7160e01b600052603260045260246000fd5b600082821015612134576121346120c1565b500390565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561216157600080fd5b5051919050565b60005b8381101561218357818101518382015260200161216b565b838111156109465750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516121cc816017850160208801612168565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612209816028840160208801612168565b01602801949350505050565b6020815260008251806020840152612234816040850160208701612168565b601f01601f19169190910160400192915050565b6000816000190483118215151615612262576122626120c1565b500290565b60008261228457634e487b7160e01b600052601260045260246000fd5b500490565b805169ffffffffffffffffffff811681146122a357600080fd5b919050565b600080600080600060a086880312156122c057600080fd5b6122c986612289565b94506020860151935060408601519250606086015191506122ec60808701612289565b90509295509295909350565b60006020828403121561230a57600080fd5b815180151581146118e057600080fd5b634e487b7160e01b600052604160045260246000fd5b60008161233f5761233f6120c1565b506000190190565b60008251612359818460208701612168565b919091019291505056fea2646970667358221220812ba847a8d4db4a3236d7226ff0f5d21582a933096e6958b2462cf9c5c6054c64736f6c634300080a003300000000000000000000000048bacb9266a570d521063ef5dd96e61686dbe7880000000000000000000000000891c5adefa65f5e54c60f9e2140a66b17fea449000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c0000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e80820000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000001d7022f5b17d2f8b695918fb48fa1089c9f8540100000000000000000000000000000000000000000000000000000000000000c8", "value": "0x0"}, +{"event": "FunctionCall", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "to": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0x100f7", "gas_price": "0x4a817c800", "data": "0x40c10f190000000000000000000000006ecbe1db9ef729cbe972c83fb886247691fb6beb00000000000000000000000000000000000000000000003635c9adc5dea00000", "value": "0x0"}, +{"event": "FunctionCall", "from": "0x6ecbe1db9ef729cbe972c83fb886247691fb6beb", "to": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0xac9b", "gas_price": "0x4a817c800", "data": "0x095ea7b300000000000000000000000048bacb9266a570d521063ef5dd96e61686dbe78800000000000000000000000000000000000000000000003635c9adc5dea00000", "value": "0x0"}, +{"event": "FunctionCall", "from": "0x6ecbe1db9ef729cbe972c83fb886247691fb6beb", "to": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0x6c163", "gas_price": "0x4a817c800", "data": "0xd812053f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000127500000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000dead000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", "value": "0x0"} +] \ No newline at end of file diff --git a/contracts/test/EchidnaVault.sol b/contracts/test/EchidnaVault.sol deleted file mode 100644 index 09c5ea02..00000000 --- a/contracts/test/EchidnaVault.sol +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity =0.8.10; - -import "../Vault.sol"; - -contract EchidnaVault { - Vault v = Vault(0x6A4A62E5A7eD13c361b176A5F62C2eE620Ac0DF8); - - // if the preconditions are met, a vault deposit should never revert - function echidna_deposit() public view returns(bool){ - return true; - } -} diff --git a/contracts/test/EchidnaVault.yml b/contracts/test/EchidnaVault.yml deleted file mode 100644 index ddf61045..00000000 --- a/contracts/test/EchidnaVault.yml +++ /dev/null @@ -1,4 +0,0 @@ -prefix: echidna_ -initialize: contracts/test/seed/EchidnaVault.json -multi-abi: true -coverage: true diff --git a/contracts/test/seed/EchidnaVault.json b/contracts/test/seed/EchidnaVault.json deleted file mode 100644 index b278fb55..00000000 --- a/contracts/test/seed/EchidnaVault.json +++ /dev/null @@ -1,24 +0,0 @@ -[ -{"event": "AccountCreated", "address": "5409ed021d9299bf6814279a6a1411a7e866a631"}, -{"event": "AccountCreated", "address": "6ecbe1db9ef729cbe972c83fb886247691fb6beb"}, -{"event": "AccountCreated", "address": "e36ea790bc9d7ab70c55260c66d52b1eca985f84"}, -{"event": "AccountCreated", "address": "e834ec434daba538cd1b9fe1582052b880bd7e63"}, -{"event": "AccountCreated", "address": "78dc5d2d739606d31509c31d654056a45185ecb6"}, -{"event": "AccountCreated", "address": "a8dda8d7f5310e4a9e24f8eba77e091ac264f872"}, -{"event": "AccountCreated", "address": "06cef8e666768cc40cc78cf93d9611019ddcb628"}, -{"event": "AccountCreated", "address": "4404ac8bd8f9618d27ad2f1485aa1b2cfd82482d"}, -{"event": "AccountCreated", "address": "7457d5e02197480db681d3fdf256c7aca21bdc12"}, -{"event": "AccountCreated", "address": "91c987bf62d25945db517bdaa840a6c661374402"}, -{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0x555472", "gas_price": "0x4a817c800", "data": "0x60a06040523480156200001157600080fd5b5060405162006683380380620066838339810160408190526200003491620002ca565b6001600160a01b03811660008181526020818152604091829020805460ff1916600190811790915591519182528392917fe95aec380cae16330d146d5499ef7db6f3657e477104a733e771bc09e500d986910160405180910390a25060018081905550620000ad826200028d60201b620016621760201c565b620000ff5760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e76657374506572630000000000000060448201526064015b60405180910390fd5b6001600160a01b038416620001665760405162461bcd60e51b815260206004820152602660248201527f5661756c74436f6e746578743a20756e6465726c79696e672063616e6e6f742060448201526506265203078360d41b6064820152608401620000f6565b6004829055600280546001600160a01b0319166001600160a01b038616179055608083905260405130906200019b9062000295565b6001600160a01b039091168152606060208201819052600a90820152696465706f7369746f727360b01b608082015260a060408201819052600190820152600760fc1b60c082015260e001604051809103906000f08015801562000203573d6000803e3d6000fd5b50600680546001600160a01b0319166001600160a01b039290921691909117905560405130906200023490620002a3565b6001600160a01b039091168152602001604051809103906000f08015801562000261573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b0392909216919091179055506200031b92505050565b612710101590565b611b0a80620030f783390190565b611a828062004c0183390190565b6001600160a01b0381168114620002c757600080fd5b50565b60008060008060808587031215620002e157600080fd5b8451620002ee81620002b1565b80945050602085015192506040850151915060608501516200031081620002b1565b939692955090935050565b608051612db262000345600039600081816102b5015281816119ed0152611a1e0152612db26000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806396d648791161010f578063c0ddb692116100a2578063df6f9ba711610071578063df6f9ba7146104a0578063e4020fdf146104b3578063e84b25a2146104c6578063eb0ebfbc146104d957600080fd5b8063c0ddb69214610465578063c63aa3e71461046d578063c70920bc14610485578063d812053f1461048d57600080fd5b8063aaa46688116100de578063aaa46688146103e2578063b02c43d0146103f5578063b0c29efe1461044a578063bba97d331461045257600080fd5b806396d648791461038f578063999927df146103b2578063a164c25d146103c5578063a8c62e76146103cf57600080fd5b80636f307dc311610187578063878ecfec11610156578063878ecfec146103265780638b6ed67d14610349578063908de6c21461035c578063947fdb8b1461037c57600080fd5b80636f307dc31461028557806373ae54b5146102b05780637c2032e7146102d75780638293744b1461031357600080fd5b80633a98ef39116101c35780633a98ef39146102625780633c90a1701461026b5780634b1533b2146102745780634fc78d681461027d57600080fd5b806301ffc9a7146101f55780631325d5f11461021d5780631393916a1461023a57806333a100ca1461024f575b600080fd5b610208610203366004612837565b6104e2565b60405190151581526020015b60405180910390f35b61022c670de0b6b3a764000081565b604051908152602001610214565b61024d610248366004612887565b61057f565b005b61024d61025d3660046128c0565b61062c565b61022c600d5481565b61022c60045481565b61022c600e5481565b61024d6108ef565b600254610298906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b61022c7f000000000000000000000000000000000000000000000000000000000000000081565b6102fe6102e53660046128dd565b600b602052600090815260409020805460019091015482565b60408051928352602083019190915201610214565b61024d610321366004612966565b610a60565b61022c6103343660046128dd565b6000908152600b602052604090206001015490565b600754610298906001600160a01b031681565b61022c61036a3660046128dd565b6000908152600b602052604090205490565b61024d61038a366004612a21565b610b22565b61020861039d3660046128c0565b60006020819052908152604090205460ff1681565b61024d6103c03660046128c0565b610d6e565b61022c6212750081565b600354610298906001600160a01b031681565b600654610298906001600160a01b031681565b61042a6104033660046128dd565b60096020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610214565b61022c610f93565b61022c6104603660046128c0565b611048565b61022c61112b565b60405167ffffffffffffffff42168152602001610214565b61022c611147565b61024d61049b366004612a43565b6112b4565b61024d6104ae366004612966565b61140f565b61024d6104c1366004612966565b6114c9565b61024d6104d4366004612a95565b611581565b61022c60055481565b60006001600160e01b031982167f5eaec14200000000000000000000000000000000000000000000000000000000148061054557506001600160e01b031982167f9b736be800000000000000000000000000000000000000000000000000000000145b8061057957507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b3360009081526020819052604090205460ff166105cf5760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff191685151590811790915591519182527fe95aec380cae16330d146d5499ef7db6f3657e477104a733e771bc09e500d986910160405180910390a25050565b3360009081526020819052604090205460ff166106775760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064016105c6565b6001600160a01b0381166106cd5760405162461bcd60e51b815260206004820152601260248201527f5661756c743a207374726174656779203078000000000000000000000000000060448201526064016105c6565b306001600160a01b0316816001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610715573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107399190612ab0565b6001600160a01b03161461078f5760405162461bcd60e51b815260206004820152601460248201527f5661756c743a20696e76616c6964207661756c7400000000000000000000000060448201526064016105c6565b6003546001600160a01b0316158061081b5750600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108199190612acd565b155b61088d5760405162461bcd60e51b815260206004820152602260248201527f5661756c743a2073747261746567792068617320696e7665737465642066756e60448201527f647300000000000000000000000000000000000000000000000000000000000060648201526084016105c6565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f4da9c22c924692646a21cf1f423781ae3285198dc22e8a6912835d3272b90b3c90600090a250565b3360009081526020819052604090205460ff1661093a5760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064016105c6565b6003546001600160a01b03166109925760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a207374726174656779206973206e6f742073657400000000000060448201526064016105c6565b600061099c610f93565b905080156109f5576003546002546109c1916001600160a01b0391821691168361166a565b6040518181527fac9f7997c30b6a3cc9c74953898b5de154359339c7ec0d6d70ceb98e55db1a4b9060200160405180910390a15b600360009054906101000a90046001600160a01b03166001600160a01b0316634fa5d8546040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b5050505050565b60026001541415610ab35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b038216610b0e5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b610b1a82826000611700565b505060018055565b60026001541415610b755760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b600260015581610bc75760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f742073706f6e736f72203000000000000000000060448201526064016105c6565b80610be057610bd96212750042612afc565b9050610c3c565b610bed6212750042612afc565b811015610c3c5760405162461bcd60e51b815260206004820152601d60248201527f5661756c743a206c6f636b2074696d6520697320746f6f20736d616c6c00000060448201526064016105c6565b6006546000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015610c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbb9190612acd565b6040805160808101825285815260006020808301828152838501888152606085018481528785526009845293869020945185559051600185015551600284015590516003909201919091558151868152908101859052919250339183917f7ca3497675c6d3ec00b1edc13b8e0b06169ee96a663ab25a74af7da53378f09e910160405180910390a38260056000828254610d559190612afc565b90915550610d659050338461178a565b50506001805550565b60026001541415610dc15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b038116610e1c5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b6000610e2733611048565b905080610e345750610f8c565b6000610e4a82600d54610e4561112b565b61183f565b90506000610e6282600d54610e5d61112b565b6118fe565b6007549091506000906001600160a01b03166342ec38e2336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee29190612acd565b600254909150610efc906001600160a01b0316868461166a565b6000818152600b602052604081206001018054859290610f1d908490612b14565b9250508190555082600d6000828254610f369190612b14565b909155505060408051828152602081018490529081018490526001600160a01b038616907fc64c05237373d420472e7259849c0a314d9c3424021920543562ceffa9b10f949060600160405180910390a2505050505b5060018055565b600080610faa600454610fa4611147565b9061192d565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa158015611001573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110259190612acd565b90508181106110375760009250505090565b6110418183612b14565b9250505090565b6007546040517f42ec38e20000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009283929116906342ec38e290602401602060405180830381865afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190612acd565b6000818152600b602052604081208054600190910154600d549394509092909190611102908390610e5d61112b565b90508281116111175750600095945050505050565b6111218382612b14565b9695505050505050565b6000600554611138611147565b6111429190612b14565b905090565b6003546000906001600160a01b03161561124857600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d29190612acd565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561121a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123e9190612acd565b6111429190612afc565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111429190612acd565b600260015414156113075760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b6002600155600e5460009061131b90611946565b9050813561136b5760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f74206465706f736974203000000000000000000060448201526064016105c6565b61137361112b565b8111156113e85760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a2063616e6e6f74206465706f736974207768656e207969656c6460448201527f206973206e65676174697665000000000000000000000000000000000000000060648201526084016105c6565b611404823560408401356113ff6020860186612b2b565b6119e3565b610b1a33833561178a565b600260015414156114625760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b0382166114bd5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b610b1a82826001611700565b6002600154141561151c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b0382166115775760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b610b1a8282611cbc565b3360009081526020819052604090205460ff166115cc5760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064016105c6565b61ffff811661271010156116225760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e76657374506572630000000000000060448201526064016105c6565b60405161ffff821681527fdd970e7931ce785c1e52bab847c1a662f017c55c66edb76ddebbf61b5aa307859060200160405180910390a161ffff16600455565b612710101590565b6040516001600160a01b0383166024820152604481018290526116fb9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152611fb9565b505050565b600d54600061170d61112b565b8451909150600090815b818160ff1610156117695761174b878260ff168151811061173a5761173a612b7c565b602002602001015186868b8a61209e565b6117559084612afc565b92508061176181612b92565b915050611717565b50600254611781906001600160a01b0316888461166a565b50505050505050565b6000611794611147565b6002549091506117af906001600160a01b0316843085612479565b60006117b9611147565b90506117c58383612afc565b81146118395760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a20616d6f756e7420726563656976656420646f6573206e6f742060448201527f6d6174636820706172616d73000000000000000000000000000000000000000060648201526084016105c6565b50505050565b60008361184e575060006118f7565b8261186c57611865670de0b6b3a764000085612bb2565b90506118f7565b816118df5760405162461bcd60e51b815260206004820152603660248201527f5661756c743a2063616e6e6f7420636f6d70757465207368617265732077686560448201527f6e2074686572652773206e6f207072696e636970616c0000000000000000000060648201526084016105c6565b816118ea8486612bb2565b6118f49190612bd1565b90505b9392505050565b600082158061190b575081155b15611918575060006118f7565b826119238584612bb2565b6118659190612bd1565b600061271061193c8385612bb2565b6118f79190612bd1565b6003546000906001600160a01b031661195d575090565b6003546040517f93c3a68f000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116906393c3a68f90602401602060405180830381865afa1580156119bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105799190612acd565b82611a1957611a127f000000000000000000000000000000000000000000000000000000000000000042612afc565b9250611a92565b611a437f000000000000000000000000000000000000000000000000000000000000000042612afc565b831015611a925760405162461bcd60e51b815260206004820152601d60248201527f5661756c743a206c6f636b2074696d6520697320746f6f20736d616c6c00000060448201526064016105c6565b600d546000611a9f61112b565b90506000611aac60085490565b905060008085611ac0600880546001019055565b60005b81811015611be9576000898983818110611adf57611adf612b7c565b9050602002810190611af19190612bf3565b611afa90612c13565b805190915061ffff16611b755760405162461bcd60e51b815260206004820152602360248201527f5661756c743a20636c61696d2070657263656e746167652063616e6e6f74206260448201527f652030000000000000000000000000000000000000000000000000000000000060648201526084016105c6565b6000611b82600185612b14565b8314611b9e578151611b99908e9061ffff1661192d565b611ba8565b611ba8858e612b14565b9050611bb887828e858d8d6124ca565b8151611bc89061ffff1687612afc565b9550611bd48186612afc565b9450505080611be290612cd3565b9050611ac3565b506127108314611c615760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20636c61696d7320646f6e27742061646420757020746f20313060448201527f302500000000000000000000000000000000000000000000000000000000000060648201526084016105c6565b898214611cb05760405162461bcd60e51b815260206004820152601c60248201527f5661756c743a20616d6f756e7420646f65736e2774206164642075700000000060448201526064016105c6565b50505050505050505050565b8051600090815b818160ff161015611f32576000848260ff1681518110611ce557611ce5612b7c565b602090810291909101810151600081815260099092526040808320600281015460019091015460065492516331a9108f60e11b8152600481018590529395509093909290916001600160a01b031690636352211e90602401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190612ab0565b6000858152600960205260409020549091506001600160a01b0382163314611de85760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20796f7520617265206e6f7420616c6c6f77656400000000000060448201526064016105c6565b42841115611e385760405162461bcd60e51b815260206004820152601760248201527f5661756c743a20616d6f756e74206973206c6f636b656400000000000000000060448201526064016105c6565b8215611e865760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f7420612073706f6e736f7260448201526064016105c6565b611e908189612afc565b600654604051630852cd8d60e31b8152600481018890529199506001600160a01b0316906342966c6890602401600060405180830381600087803b158015611ed757600080fd5b505af1158015611eeb573d6000803e3d6000fd5b50506040518792507f05394e48d744e4a16d65f52f88cdaf0f60f5d18af259df878d44cb80826d221f9150600090a250505050508080611f2a90612b92565b915050611cc3565b5081611f3c611147565b811115611f8b5760405162461bcd60e51b815260206004820152601760248201527f5661756c743a206e6f7420656e6f7567682066756e647300000000000000000060448201526064016105c6565b8260056000828254611f9d9190612b14565b9091555050600254610a59906001600160a01b0316868361166a565b600061200e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661272c9092919063ffffffff16565b8051909150156116fb578080602001905181019061202c9190612cee565b6116fb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016105c6565b6000336006546040516331a9108f60e11b8152600481018990526001600160a01b039283169290911690636352211e90602401602060405180830381865afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121129190612ab0565b6001600160a01b03161461218e5760405162461bcd60e51b815260206004820152602960248201527f5661756c743a20796f7520617265206e6f7420746865206f776e6572206f662060448201527f61206465706f736974000000000000000000000000000000000000000000000060648201526084016105c6565b6000868152600960205260409020600201544210156121ef5760405162461bcd60e51b815260206004820152601860248201527f5661756c743a206465706f736974206973206c6f636b6564000000000000000060448201526064016105c6565b60008681526009602052604090206001015461224d5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f742061206465706f73697460448201526064016105c6565b600086815260096020908152604080832060018082015460038301549254818752600b9095529285209081015490549294919392909161228e848c8c61183f565b905060008582118061229f57508382115b90508880156122ab5750805b156122cc57826122bb8587612bb2565b6122c59190612bd1565b9150612340565b80156123405760405162461bcd60e51b815260206004820152603560248201527f5661756c743a2063616e6e6f74207769746864726177206d6f7265207468616e60448201527f2074686520617661696c61626c6520616d6f756e74000000000000000000000060648201526084016105c6565b6000878152600b602052604081206001018054849290612361908490612b14565b90915550506000878152600b602052604081208054879290612384908490612b14565b9250508190555081600d600082825461239d9190612b14565b9250508190555084600e60008282546123b69190612b14565b9091555050600654604051630852cd8d60e31b8152600481018f90526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561240157600080fd5b505af1158015612415573d6000803e3d6000fd5b50505050896001600160a01b03168d7f95fa98cd1a0b1d7d20d4f5d9f62889e8cfd8d172a99939d2a2f46bb668eb2f4f8460405161245591815260200190565b60405180910390a3612468828d8d6118fe565b9d9c50505050505050505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526118399085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016116af565b60006124d786848461183f565b60075460208601516040517f6a6278420000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350600092911690636a627842906024016020604051808303816000875af1158015612546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256a9190612acd565b905081600b600083815260200190815260200160002060010160008282546125929190612afc565b90915550506000818152600b6020526040812080548992906125b5908490612afc565b9250508190555081600d60008282546125ce9190612afc565b9250508190555086600e60008282546125e79190612afc565b90915550506006546000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015612647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266b9190612acd565b604080516080810182528a815260208082018681528284018c81526060840189815260008781526009855295909520935184559051600184015551600283015591516003909101558701519091506001600160a01b031633604080518c8152602081018c905290810186905260608101859052608081018a90526001600160a01b03919091169083907f98db8624761955d33737f627918f2b1198592f38bb40bbb0a46469b4fe1844b09060a00160405180910390a4505050505050505050565b60606118f4848460008585843b6127855760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105c6565b600080866001600160a01b031685876040516127a19190612d37565b60006040518083038185875af1925050503d80600081146127de576040519150601f19603f3d011682016040523d82523d6000602084013e6127e3565b606091505b50915091506127f38282866127fe565b979650505050505050565b6060831561280d5750816118f7565b82511561281d5782518084602001fd5b8160405162461bcd60e51b81526004016105c69190612d49565b60006020828403121561284957600080fd5b81356001600160e01b0319811681146118f757600080fd5b6001600160a01b038116811461287657600080fd5b50565b801515811461287657600080fd5b6000806040838503121561289a57600080fd5b82356128a581612861565b915060208301356128b581612879565b809150509250929050565b6000602082840312156128d257600080fd5b81356118f781612861565b6000602082840312156128ef57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561292f5761292f6128f6565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561295e5761295e6128f6565b604052919050565b6000806040838503121561297957600080fd5b823561298481612861565b915060208381013567ffffffffffffffff808211156129a257600080fd5b818601915086601f8301126129b657600080fd5b8135818111156129c8576129c86128f6565b8060051b91506129d9848301612935565b81815291830184019184810190898411156129f357600080fd5b938501935b83851015612a11578435825293850193908501906129f8565b8096505050505050509250929050565b60008060408385031215612a3457600080fd5b50508035926020909101359150565b600060208284031215612a5557600080fd5b813567ffffffffffffffff811115612a6c57600080fd5b8201606081850312156118f757600080fd5b803561ffff81168114612a9057600080fd5b919050565b600060208284031215612aa757600080fd5b6118f782612a7e565b600060208284031215612ac257600080fd5b81516118f781612861565b600060208284031215612adf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612b0f57612b0f612ae6565b500190565b600082821015612b2657612b26612ae6565b500390565b6000808335601e19843603018112612b4257600080fd5b83018035915067ffffffffffffffff821115612b5d57600080fd5b6020019150600581901b3603821315612b7557600080fd5b9250929050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff811415612ba957612ba9612ae6565b60010192915050565b6000816000190483118215151615612bcc57612bcc612ae6565b500290565b600082612bee57634e487b7160e01b600052601260045260246000fd5b500490565b60008235605e19833603018112612c0957600080fd5b9190910192915050565b600060608236031215612c2557600080fd5b612c2d61290c565b612c3683612a7e565b8152602080840135612c4781612861565b82820152604084013567ffffffffffffffff80821115612c6657600080fd5b9085019036601f830112612c7957600080fd5b813581811115612c8b57612c8b6128f6565b612c9d601f8201601f19168501612935565b91508082523684828501011115612cb357600080fd5b808484018584013760009082019093019290925250604082015292915050565b6000600019821415612ce757612ce7612ae6565b5060010190565b600060208284031215612d0057600080fd5b81516118f781612879565b60005b83811015612d26578181015183820152602001612d0e565b838111156118395750506000910152565b60008251612c09818460208701612d0b565b6020815260008251806020840152612d68816040850160208701612d0b565b601f01601f1916919091016040019291505056fea2646970667358221220ce166d69b4ef6b812346a76fd40a5d400facc9983c00439e0f7f3ee7c88d3c7164736f6c634300080a003360806040523480156200001157600080fd5b5060405162001b0a38038062001b0a833981016040819052620000349162000203565b8151829082906200004d90600090602085019062000090565b5080516200006390600190602084019062000090565b5050600780546001600160a01b0319166001600160a01b03959095169490941790935550620002ca915050565b8280546200009e906200028d565b90600052602060002090601f016020900481019282620000c257600085556200010d565b82601f10620000dd57805160ff19168380011785556200010d565b828001600101855582156200010d579182015b828111156200010d578251825591602001919060010190620000f0565b506200011b9291506200011f565b5090565b5b808211156200011b576000815560010162000120565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200015e57600080fd5b81516001600160401b03808211156200017b576200017b62000136565b604051601f8301601f19908116603f01168101908282118183101715620001a657620001a662000136565b81604052838152602092508683858801011115620001c357600080fd5b600091505b83821015620001e75785820183015181830184015290820190620001c8565b83821115620001f95760008385830101525b9695505050505050565b6000806000606084860312156200021957600080fd5b83516001600160a01b03811681146200023157600080fd5b60208501519093506001600160401b03808211156200024f57600080fd5b6200025d878388016200014c565b935060408601519150808211156200027457600080fd5b5062000283868287016200014c565b9150509250925092565b600181811c90821680620002a257607f821691505b60208210811415620002c457634e487b7160e01b600052602260045260246000fd5b50919050565b61183080620002da6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636352211e116100b2578063a22cb46511610081578063c87b56dd11610066578063c87b56dd1461025e578063e985e9c514610271578063fbfa77cf146102ad57600080fd5b8063a22cb46514610238578063b88d4fde1461024b57600080fd5b80636352211e146101e95780636a627842146101fc57806370a082311461021d57806395d89b411461023057600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342966c68146101c35780634f558e79146101d657600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e3660046113e9565b6102c0565b60405190151581526020015b60405180910390f35b61015061035d565b60405161013f919061145e565b61017061016b366004611471565b6103ef565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046114a1565b610489565b005b61019b6101ab3660046114cb565b6105bb565b61019b6101be3660046114cb565b610642565b61019b6101d1366004611471565b61065d565b6101336101e4366004611471565b6106c3565b6101706101f7366004611471565b6106e2565b61020f61020a366004611507565b61076d565b60405190815260200161013f565b61020f61022b366004611507565b6107f4565b61015061088e565b61019b610246366004611522565b61089d565b61019b610259366004611574565b6108ac565b61015061026c366004611471565b61093a565b61013361027f366004611650565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061032357506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061035757507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60606000805461036c90611683565b80601f016020809104026020016040519081016040528092919081815260200182805461039890611683565b80156103e55780601f106103ba576101008083540402835291602001916103e5565b820191906000526020600020905b8154815290600101906020018083116103c857829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661046d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b6000610494826106e2565b9050806001600160a01b0316836001600160a01b0316141561051e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610464565b336001600160a01b038216148061053a575061053a813361027f565b6105ac5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610464565b6105b68383610a30565b505050565b6105c53382610aab565b6106375760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610464565b6105b6838383610ba2565b6105b6838383604051806020016040528060008152506108ac565b6007546001600160a01b031633146106b75760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a65640000000000006044820152606401610464565b6106c081610d7c565b50565b6000818152600260205260408120546001600160a01b03161515610357565b6000818152600260205260408120546001600160a01b0316806103575760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610464565b6007546000906001600160a01b031633146107ca5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a65640000000000006044820152606401610464565b60006107d560065490565b90506107e5600680546001019055565b6103578382610e24565b919050565b60006001600160a01b0382166108725760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610464565b506001600160a01b031660009081526003602052604090205490565b60606001805461036c90611683565b6108a8338383610e3e565b5050565b6108b63383610aab565b6109285760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610464565b61093484848484610f0d565b50505050565b6000818152600260205260409020546060906001600160a01b03166109c75760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610464565b60006109de60408051602081019091526000815290565b905060008151116109fe5760405180602001604052806000815250610a29565b80610a0884610f8b565b604051602001610a199291906116be565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610a72826106e2565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610b245760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610464565b6000610b2f836106e2565b9050806001600160a01b0316846001600160a01b03161480610b6a5750836001600160a01b0316610b5f846103ef565b6001600160a01b0316145b80610b9a57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610bb5826106e2565b6001600160a01b031614610c315760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610464565b6001600160a01b038216610cac5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610464565b610cb7600082610a30565b6001600160a01b0383166000908152600360205260408120805460019290610ce0908490611703565b90915550506001600160a01b0382166000908152600360205260408120805460019290610d0e90849061171a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000610d87826106e2565b9050610d94600083610a30565b6001600160a01b0381166000908152600360205260408120805460019290610dbd908490611703565b9091555050600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6108a88282604051806020016040528060008152506110bd565b816001600160a01b0316836001600160a01b03161415610ea05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610464565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610f18848484610ba2565b610f248484848461113b565b6109345760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610464565b606081610fcb57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610ff55780610fdf81611732565b9150610fee9050600a83611763565b9150610fcf565b60008167ffffffffffffffff8111156110105761101061155e565b6040519080825280601f01601f19166020018201604052801561103a576020820181803683370190505b5090505b8415610b9a5761104f600183611703565b915061105c600a86611777565b61106790603061171a565b60f81b81838151811061107c5761107c61178b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506110b6600a86611763565b945061103e565b6110c78383611284565b6110d4600084848461113b565b6105b65760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610464565b60006001600160a01b0384163b1561127957604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061117f9033908990889088906004016117a1565b6020604051808303816000875af19250505080156111ba575060408051601f3d908101601f191682019092526111b7918101906117dd565b60015b61125f573d8080156111e8576040519150601f19603f3d011682016040523d82523d6000602084013e6111ed565b606091505b5080516112575760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610464565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610b9a565b506001949350505050565b6001600160a01b0382166112da5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610464565b6000818152600260205260409020546001600160a01b03161561133f5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610464565b6001600160a01b038216600090815260036020526040812080546001929061136890849061171a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b0319811681146106c057600080fd5b6000602082840312156113fb57600080fd5b8135610a29816113d3565b60005b83811015611421578181015183820152602001611409565b838111156109345750506000910152565b6000815180845261144a816020860160208601611406565b601f01601f19169290920160200192915050565b602081526000610a296020830184611432565b60006020828403121561148357600080fd5b5035919050565b80356001600160a01b03811681146107ef57600080fd5b600080604083850312156114b457600080fd5b6114bd8361148a565b946020939093013593505050565b6000806000606084860312156114e057600080fd5b6114e98461148a565b92506114f76020850161148a565b9150604084013590509250925092565b60006020828403121561151957600080fd5b610a298261148a565b6000806040838503121561153557600080fd5b61153e8361148a565b91506020830135801515811461155357600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561158a57600080fd5b6115938561148a565b93506115a16020860161148a565b925060408501359150606085013567ffffffffffffffff808211156115c557600080fd5b818701915087601f8301126115d957600080fd5b8135818111156115eb576115eb61155e565b604051601f8201601f19908116603f011681019083821181831017156116135761161361155e565b816040528281528a602084870101111561162c57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561166357600080fd5b61166c8361148a565b915061167a6020840161148a565b90509250929050565b600181811c9082168061169757607f821691505b602082108114156116b857634e487b7160e01b600052602260045260246000fd5b50919050565b600083516116d0818460208801611406565b8351908301906116e4818360208801611406565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611715576117156116ed565b500390565b6000821982111561172d5761172d6116ed565b500190565b6000600019821415611746576117466116ed565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826117725761177261174d565b500490565b6000826117865761178661174d565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b038087168352808616602084015250836040830152608060608301526117d36080830184611432565b9695505050505050565b6000602082840312156117ef57600080fd5b8151610a29816113d356fea26469706673582212201da06ae3538d67712b688ba6f2baa93253d4c0486392f8a83b7ed0fdc52e4ff264736f6c634300080a00336080604052600780546001600160a01b03191690553480156200002157600080fd5b5060405162001a8238038062001a82833981016040819052620000449162000178565b6040805180820182526008815267436c61696d65727360c01b602080830191825283518085019094526006845265534e44434c4d60d01b9084015281519192916200009291600091620000d2565b508051620000a8906001906020840190620000d2565b5050600780546001600160a01b0319166001600160a01b03939093169290921790915550620001e7565b828054620000e090620001aa565b90600052602060002090601f0160209004810192826200010457600085556200014f565b82601f106200011f57805160ff19168380011785556200014f565b828001600101855582156200014f579182015b828111156200014f57825182559160200191906001019062000132565b506200015d92915062000161565b5090565b5b808211156200015d576000815560010162000162565b6000602082840312156200018b57600080fd5b81516001600160a01b0381168114620001a357600080fd5b9392505050565b600181811c90821680620001bf57607f821691505b60208210811415620001e157634e487b7160e01b600052602260045260246000fd5b50919050565b61188b80620001f76000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636a627842116100b2578063adde18b011610081578063c87b56dd11610066578063c87b56dd14610281578063e985e9c514610294578063fbfa77cf146102d057600080fd5b8063adde18b01461024e578063b88d4fde1461026e57600080fd5b80636a6278421461020d57806370a082311461022057806395d89b4114610233578063a22cb4651461023b57600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342ec38e2146101c35780636352211e146101fa57600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e366004611444565b6102e3565b60405190151581526020015b60405180910390f35b610150610380565b60405161013f91906114b9565b61017061016b3660046114cc565b610412565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046114fc565b6104ac565b005b61019b6101ab366004611526565b6105de565b61019b6101be366004611526565b610665565b6101ec6101d1366004611562565b6001600160a01b031660009081526008602052604090205490565b60405190815260200161013f565b6101706102083660046114cc565b610680565b6101ec61021b366004611562565b61070b565b6101ec61022e366004611562565b6107a7565b610150610841565b61019b61024936600461157d565b610850565b6101ec61025c366004611562565b60086020526000908152604090205481565b61019b61027c3660046115cf565b61085f565b61015061028f3660046114cc565b6108ed565b6101336102a23660046116ab565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061034657506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061037a57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60606000805461038f906116de565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb906116de565b80156104085780601f106103dd57610100808354040283529160200191610408565b820191906000526020600020905b8154815290600101906020018083116103eb57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166104905760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006104b782610680565b9050806001600160a01b0316836001600160a01b031614156105415760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610487565b336001600160a01b038216148061055d575061055d81336102a2565b6105cf5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610487565b6105d983836109e3565b505050565b6105e83382610a5e565b61065a5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610487565b6105d9838383610b55565b6105d98383836040518060200160405280600081525061085f565b6000818152600260205260408120546001600160a01b03168061037a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610487565b6007546000906001600160a01b031633146107685760405162461bcd60e51b815260206004820152601860248201527f436c61696d6572733a206e6f7420617574686f72697a656400000000000000006044820152606401610487565b6001600160a01b0382166000908152600860205260409020548061037a57610794600680546001019055565b5060065461037a8382610d3a565b919050565b60006001600160a01b0382166108255760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610487565b506001600160a01b031660009081526003602052604090205490565b60606001805461038f906116de565b61085b338383610d54565b5050565b6108693383610a5e565b6108db5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610487565b6108e784848484610e23565b50505050565b6000818152600260205260409020546060906001600160a01b031661097a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610487565b600061099160408051602081019091526000815290565b905060008151116109b157604051806020016040528060008152506109dc565b806109bb84610ea1565b6040516020016109cc929190611719565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610a2582610680565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610ad75760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610487565b6000610ae283610680565b9050806001600160a01b0316846001600160a01b03161480610b1d5750836001600160a01b0316610b1284610412565b6001600160a01b0316145b80610b4d57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610b6882610680565b6001600160a01b031614610be45760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610487565b6001600160a01b038216610c5f5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610487565b610c6a838383610fd3565b610c756000826109e3565b6001600160a01b0383166000908152600360205260408120805460019290610c9e90849061175e565b90915550506001600160a01b0382166000908152600360205260408120805460019290610ccc908490611775565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61085b828260405180602001604052806000815250611109565b816001600160a01b0316836001600160a01b03161415610db65760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610487565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610e2e848484610b55565b610e3a84848484611187565b6108e75760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610487565b606081610ee157505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610f0b5780610ef58161178d565b9150610f049050600a836117be565b9150610ee5565b60008167ffffffffffffffff811115610f2657610f266115b9565b6040519080825280601f01601f191660200182016040528015610f50576020820181803683370190505b5090505b8415610b4d57610f6560018361175e565b9150610f72600a866117d2565b610f7d906030611775565b60f81b818381518110610f9257610f926117e6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610fcc600a866117be565b9450610f54565b6001600160a01b0382166110295760405162461bcd60e51b815260206004820152601e60248201527f436c61696d6572733a2063616e6e6f74206275726e2074686973204e465400006044820152606401610487565b6001600160a01b038316611055576001600160a01b039190911660009081526008602052604090205550565b6001600160a01b038216600090815260086020526040902054156110e15760405162461bcd60e51b815260206004820152602860248201527f436c61696d6572733a2064657374696e6174696f6e20616c726561647920686160448201527f7320616e204e46540000000000000000000000000000000000000000000000006064820152608401610487565b6001600160a01b03928316600090815260086020526040808220829055929093168352912055565b61111383836112d0565b6111206000848484611187565b6105d95760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610487565b60006001600160a01b0384163b156112c557604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906111cb9033908990889088906004016117fc565b6020604051808303816000875af1925050508015611206575060408051601f3d908101601f1916820190925261120391810190611838565b60015b6112ab573d808015611234576040519150601f19603f3d011682016040523d82523d6000602084013e611239565b606091505b5080516112a35760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610487565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610b4d565b506001949350505050565b6001600160a01b0382166113265760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610487565b6000818152600260205260409020546001600160a01b03161561138b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610487565b61139760008383610fd3565b6001600160a01b03821660009081526003602052604081208054600192906113c0908490611775565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461144157600080fd5b50565b60006020828403121561145657600080fd5b81356109dc8161142b565b60005b8381101561147c578181015183820152602001611464565b838111156108e75750506000910152565b600081518084526114a5816020860160208601611461565b601f01601f19169290920160200192915050565b6020815260006109dc602083018461148d565b6000602082840312156114de57600080fd5b5035919050565b80356001600160a01b03811681146107a257600080fd5b6000806040838503121561150f57600080fd5b611518836114e5565b946020939093013593505050565b60008060006060848603121561153b57600080fd5b611544846114e5565b9250611552602085016114e5565b9150604084013590509250925092565b60006020828403121561157457600080fd5b6109dc826114e5565b6000806040838503121561159057600080fd5b611599836114e5565b9150602083013580151581146115ae57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156115e557600080fd5b6115ee856114e5565b93506115fc602086016114e5565b925060408501359150606085013567ffffffffffffffff8082111561162057600080fd5b818701915087601f83011261163457600080fd5b813581811115611646576116466115b9565b604051601f8201601f19908116603f0116810190838211818310171561166e5761166e6115b9565b816040528281528a602084870101111561168757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156116be57600080fd5b6116c7836114e5565b91506116d5602084016114e5565b90509250929050565b600181811c908216806116f257607f821691505b6020821081141561171357634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161172b818460208801611461565b83519083019061173f818360208801611461565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561177057611770611748565b500390565b6000821982111561178857611788611748565b500190565b60006000198214156117a1576117a1611748565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826117cd576117cd6117a8565b500490565b6000826117e1576117e16117a8565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b0380871683528086166020840152508360408301526080606083015261182e608083018461148d565b9695505050505050565b60006020828403121561184a57600080fd5b81516109dc8161142b56fea26469706673582212203cb75f6dd87a7c2f3502af671455cc90cef2d5d3072f9b13ff2c773f9818c29264736f6c634300080a00330000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000012750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005409ed021d9299bf6814279a6a1411a7e866a631", "value": "0x0"}, -{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0xc1aff", "gas_price": "0x4a817c800", "data": "0x60806040523480156200001157600080fd5b5060405162000f3838038062000f3883398101604081905262000034916200024a565b6040518060400160405280600981526020016804d6f636b45524332360bc1b8152506040518060400160405280600381526020016226a29960e91b81525081600390805190602001906200008a929190620001a4565b508051620000a0906004906020840190620001a4565b505050620000b53382620000bc60201b60201c565b50620002c8565b6001600160a01b038216620001175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012b919062000264565b90915550506001600160a01b038216600090815260208190526040812080548392906200015a90849062000264565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001b2906200028b565b90600052602060002090601f016020900481019282620001d6576000855562000221565b82601f10620001f157805160ff191683800117855562000221565b8280016001018555821562000221579182015b828111156200022157825182559160200191906001019062000204565b506200022f92915062000233565b5090565b5b808211156200022f576000815560010162000234565b6000602082840312156200025d57600080fd5b5051919050565b600082198211156200028657634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002a057607f821691505b60208210811415620002c257634e487b7160e01b600052602260045260246000fd5b50919050565b610c6080620002d86000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101b2578063a457c2d7146101c5578063a9059cbb146101d8578063dd62ed3e146101eb57600080fd5b806340c10f191461016c57806370a082311461018157806395d89b41146101aa57600080fd5b806323b872dd116100bd57806323b872dd14610137578063313ce5671461014a578063395093511461015957600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec610224565b6040516100f99190610a7e565b60405180910390f35b610115610110366004610aef565b6102b6565b60405190151581526020016100f9565b6002545b6040519081526020016100f9565b610115610145366004610b19565b6102cc565b604051601281526020016100f9565b610115610167366004610aef565b610390565b61017f61017a366004610aef565b6103cc565b005b61012961018f366004610b55565b6001600160a01b031660009081526020819052604090205490565b6100ec6103da565b61017f6101c0366004610aef565b6103e9565b6101156101d3366004610aef565b6103f3565b6101156101e6366004610aef565b6104a4565b6101296101f9366004610b77565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461023390610baa565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610baa565b80156102ac5780601f10610281576101008083540402835291602001916102ac565b820191906000526020600020905b81548152906001019060200180831161028f57829003601f168201915b5050505050905090565b60006102c33384846104b1565b50600192915050565b60006102d984848461060a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103785760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61038585338584036104b1565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102c39185906103c7908690610bfb565b6104b1565b6103d68282610822565b5050565b60606004805461023390610baa565b6103d68282610901565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561048d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161036f565b61049a33858584036104b1565b5060019392505050565b60006102c333848461060a565b6001600160a01b03831661052c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166105a85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166107025760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038316600090815260208190526040902054818110156107915760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107c8908490610bfb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161081491815260200190565b60405180910390a350505050565b6001600160a01b0382166108785760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161036f565b806002600082825461088a9190610bfb565b90915550506001600160a01b038216600090815260208190526040812080548392906108b7908490610bfb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661097d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b03821660009081526020819052604090205481811015610a0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a3b908490610c13565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016105fd565b600060208083528351808285015260005b81811015610aab57858101830151858201604001528201610a8f565b81811115610abd576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610aea57600080fd5b919050565b60008060408385031215610b0257600080fd5b610b0b83610ad3565b946020939093013593505050565b600080600060608486031215610b2e57600080fd5b610b3784610ad3565b9250610b4560208501610ad3565b9150604084013590509250925092565b600060208284031215610b6757600080fd5b610b7082610ad3565b9392505050565b60008060408385031215610b8a57600080fd5b610b9383610ad3565b9150610ba160208401610ad3565b90509250929050565b600181811c90821680610bbe57607f821691505b60208210811415610bdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c0e57610c0e610be5565b500190565b600082821015610c2557610c25610be5565b50039056fea264697066735822122039c1aae5d50fb3eac139f7e0e991ffe1a830c171490d7829dddb7ed3f9527a2264736f6c634300080a00330000000000000000000000000000000000000000000000000000000000000000", "value": "0x0"}, -{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0xc1aff", "gas_price": "0x4a817c800", "data": "0x60806040523480156200001157600080fd5b5060405162000f3838038062000f3883398101604081905262000034916200024a565b6040518060400160405280600981526020016804d6f636b45524332360bc1b8152506040518060400160405280600381526020016226a29960e91b81525081600390805190602001906200008a929190620001a4565b508051620000a0906004906020840190620001a4565b505050620000b53382620000bc60201b60201c565b50620002c8565b6001600160a01b038216620001175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012b919062000264565b90915550506001600160a01b038216600090815260208190526040812080548392906200015a90849062000264565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001b2906200028b565b90600052602060002090601f016020900481019282620001d6576000855562000221565b82601f10620001f157805160ff191683800117855562000221565b8280016001018555821562000221579182015b828111156200022157825182559160200191906001019062000204565b506200022f92915062000233565b5090565b5b808211156200022f576000815560010162000234565b6000602082840312156200025d57600080fd5b5051919050565b600082198211156200028657634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002a057607f821691505b60208210811415620002c257634e487b7160e01b600052602260045260246000fd5b50919050565b610c6080620002d86000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101b2578063a457c2d7146101c5578063a9059cbb146101d8578063dd62ed3e146101eb57600080fd5b806340c10f191461016c57806370a082311461018157806395d89b41146101aa57600080fd5b806323b872dd116100bd57806323b872dd14610137578063313ce5671461014a578063395093511461015957600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec610224565b6040516100f99190610a7e565b60405180910390f35b610115610110366004610aef565b6102b6565b60405190151581526020016100f9565b6002545b6040519081526020016100f9565b610115610145366004610b19565b6102cc565b604051601281526020016100f9565b610115610167366004610aef565b610390565b61017f61017a366004610aef565b6103cc565b005b61012961018f366004610b55565b6001600160a01b031660009081526020819052604090205490565b6100ec6103da565b61017f6101c0366004610aef565b6103e9565b6101156101d3366004610aef565b6103f3565b6101156101e6366004610aef565b6104a4565b6101296101f9366004610b77565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461023390610baa565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610baa565b80156102ac5780601f10610281576101008083540402835291602001916102ac565b820191906000526020600020905b81548152906001019060200180831161028f57829003601f168201915b5050505050905090565b60006102c33384846104b1565b50600192915050565b60006102d984848461060a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103785760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61038585338584036104b1565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102c39185906103c7908690610bfb565b6104b1565b6103d68282610822565b5050565b60606004805461023390610baa565b6103d68282610901565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561048d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161036f565b61049a33858584036104b1565b5060019392505050565b60006102c333848461060a565b6001600160a01b03831661052c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166105a85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0382166107025760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038316600090815260208190526040902054818110156107915760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107c8908490610bfb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161081491815260200190565b60405180910390a350505050565b6001600160a01b0382166108785760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161036f565b806002600082825461088a9190610bfb565b90915550506001600160a01b038216600090815260208190526040812080548392906108b7908490610bfb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661097d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b03821660009081526020819052604090205481811015610a0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161036f565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a3b908490610c13565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016105fd565b600060208083528351808285015260005b81811015610aab57858101830151858201604001528201610a8f565b81811115610abd576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610aea57600080fd5b919050565b60008060408385031215610b0257600080fd5b610b0b83610ad3565b946020939093013593505050565b600080600060608486031215610b2e57600080fd5b610b3784610ad3565b9250610b4560208501610ad3565b9150604084013590509250925092565b600060208284031215610b6757600080fd5b610b7082610ad3565b9392505050565b60008060408385031215610b8a57600080fd5b610b9383610ad3565b9150610ba160208401610ad3565b90509250929050565b600181811c90821680610bbe57607f821691505b60208210811415610bdf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610c0e57610c0e610be5565b500190565b600082821015610c2557610c25610be5565b50039056fea264697066735822122039c1aae5d50fb3eac139f7e0e991ffe1a830c171490d7829dddb7ed3f9527a2264736f6c634300080a00330000000000000000000000000000000000000000000000000000000000000000", "value": "0x0"}, -{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0x555472", "gas_price": "0x4a817c800", "data": "0x60a06040523480156200001157600080fd5b5060405162006683380380620066838339810160408190526200003491620002ca565b6001600160a01b03811660008181526020818152604091829020805460ff1916600190811790915591519182528392917fe95aec380cae16330d146d5499ef7db6f3657e477104a733e771bc09e500d986910160405180910390a25060018081905550620000ad826200028d60201b620016621760201c565b620000ff5760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e76657374506572630000000000000060448201526064015b60405180910390fd5b6001600160a01b038416620001665760405162461bcd60e51b815260206004820152602660248201527f5661756c74436f6e746578743a20756e6465726c79696e672063616e6e6f742060448201526506265203078360d41b6064820152608401620000f6565b6004829055600280546001600160a01b0319166001600160a01b038616179055608083905260405130906200019b9062000295565b6001600160a01b039091168152606060208201819052600a90820152696465706f7369746f727360b01b608082015260a060408201819052600190820152600760fc1b60c082015260e001604051809103906000f08015801562000203573d6000803e3d6000fd5b50600680546001600160a01b0319166001600160a01b039290921691909117905560405130906200023490620002a3565b6001600160a01b039091168152602001604051809103906000f08015801562000261573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b0392909216919091179055506200031b92505050565b612710101590565b611b0a80620030f783390190565b611a828062004c0183390190565b6001600160a01b0381168114620002c757600080fd5b50565b60008060008060808587031215620002e157600080fd5b8451620002ee81620002b1565b80945050602085015192506040850151915060608501516200031081620002b1565b939692955090935050565b608051612db262000345600039600081816102b5015281816119ed0152611a1e0152612db26000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806396d648791161010f578063c0ddb692116100a2578063df6f9ba711610071578063df6f9ba7146104a0578063e4020fdf146104b3578063e84b25a2146104c6578063eb0ebfbc146104d957600080fd5b8063c0ddb69214610465578063c63aa3e71461046d578063c70920bc14610485578063d812053f1461048d57600080fd5b8063aaa46688116100de578063aaa46688146103e2578063b02c43d0146103f5578063b0c29efe1461044a578063bba97d331461045257600080fd5b806396d648791461038f578063999927df146103b2578063a164c25d146103c5578063a8c62e76146103cf57600080fd5b80636f307dc311610187578063878ecfec11610156578063878ecfec146103265780638b6ed67d14610349578063908de6c21461035c578063947fdb8b1461037c57600080fd5b80636f307dc31461028557806373ae54b5146102b05780637c2032e7146102d75780638293744b1461031357600080fd5b80633a98ef39116101c35780633a98ef39146102625780633c90a1701461026b5780634b1533b2146102745780634fc78d681461027d57600080fd5b806301ffc9a7146101f55780631325d5f11461021d5780631393916a1461023a57806333a100ca1461024f575b600080fd5b610208610203366004612837565b6104e2565b60405190151581526020015b60405180910390f35b61022c670de0b6b3a764000081565b604051908152602001610214565b61024d610248366004612887565b61057f565b005b61024d61025d3660046128c0565b61062c565b61022c600d5481565b61022c60045481565b61022c600e5481565b61024d6108ef565b600254610298906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b61022c7f000000000000000000000000000000000000000000000000000000000000000081565b6102fe6102e53660046128dd565b600b602052600090815260409020805460019091015482565b60408051928352602083019190915201610214565b61024d610321366004612966565b610a60565b61022c6103343660046128dd565b6000908152600b602052604090206001015490565b600754610298906001600160a01b031681565b61022c61036a3660046128dd565b6000908152600b602052604090205490565b61024d61038a366004612a21565b610b22565b61020861039d3660046128c0565b60006020819052908152604090205460ff1681565b61024d6103c03660046128c0565b610d6e565b61022c6212750081565b600354610298906001600160a01b031681565b600654610298906001600160a01b031681565b61042a6104033660046128dd565b60096020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610214565b61022c610f93565b61022c6104603660046128c0565b611048565b61022c61112b565b60405167ffffffffffffffff42168152602001610214565b61022c611147565b61024d61049b366004612a43565b6112b4565b61024d6104ae366004612966565b61140f565b61024d6104c1366004612966565b6114c9565b61024d6104d4366004612a95565b611581565b61022c60055481565b60006001600160e01b031982167f5eaec14200000000000000000000000000000000000000000000000000000000148061054557506001600160e01b031982167f9b736be800000000000000000000000000000000000000000000000000000000145b8061057957507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b3360009081526020819052604090205460ff166105cf5760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff191685151590811790915591519182527fe95aec380cae16330d146d5499ef7db6f3657e477104a733e771bc09e500d986910160405180910390a25050565b3360009081526020819052604090205460ff166106775760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064016105c6565b6001600160a01b0381166106cd5760405162461bcd60e51b815260206004820152601260248201527f5661756c743a207374726174656779203078000000000000000000000000000060448201526064016105c6565b306001600160a01b0316816001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610715573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107399190612ab0565b6001600160a01b03161461078f5760405162461bcd60e51b815260206004820152601460248201527f5661756c743a20696e76616c6964207661756c7400000000000000000000000060448201526064016105c6565b6003546001600160a01b0316158061081b5750600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108199190612acd565b155b61088d5760405162461bcd60e51b815260206004820152602260248201527f5661756c743a2073747261746567792068617320696e7665737465642066756e60448201527f647300000000000000000000000000000000000000000000000000000000000060648201526084016105c6565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f4da9c22c924692646a21cf1f423781ae3285198dc22e8a6912835d3272b90b3c90600090a250565b3360009081526020819052604090205460ff1661093a5760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064016105c6565b6003546001600160a01b03166109925760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a207374726174656779206973206e6f742073657400000000000060448201526064016105c6565b600061099c610f93565b905080156109f5576003546002546109c1916001600160a01b0391821691168361166a565b6040518181527fac9f7997c30b6a3cc9c74953898b5de154359339c7ec0d6d70ceb98e55db1a4b9060200160405180910390a15b600360009054906101000a90046001600160a01b03166001600160a01b0316634fa5d8546040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b5050505050565b60026001541415610ab35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b038216610b0e5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b610b1a82826000611700565b505060018055565b60026001541415610b755760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b600260015581610bc75760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f742073706f6e736f72203000000000000000000060448201526064016105c6565b80610be057610bd96212750042612afc565b9050610c3c565b610bed6212750042612afc565b811015610c3c5760405162461bcd60e51b815260206004820152601d60248201527f5661756c743a206c6f636b2074696d6520697320746f6f20736d616c6c00000060448201526064016105c6565b6006546000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015610c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbb9190612acd565b6040805160808101825285815260006020808301828152838501888152606085018481528785526009845293869020945185559051600185015551600284015590516003909201919091558151868152908101859052919250339183917f7ca3497675c6d3ec00b1edc13b8e0b06169ee96a663ab25a74af7da53378f09e910160405180910390a38260056000828254610d559190612afc565b90915550610d659050338461178a565b50506001805550565b60026001541415610dc15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b038116610e1c5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b6000610e2733611048565b905080610e345750610f8c565b6000610e4a82600d54610e4561112b565b61183f565b90506000610e6282600d54610e5d61112b565b6118fe565b6007549091506000906001600160a01b03166342ec38e2336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee29190612acd565b600254909150610efc906001600160a01b0316868461166a565b6000818152600b602052604081206001018054859290610f1d908490612b14565b9250508190555082600d6000828254610f369190612b14565b909155505060408051828152602081018490529081018490526001600160a01b038616907fc64c05237373d420472e7259849c0a314d9c3424021920543562ceffa9b10f949060600160405180910390a2505050505b5060018055565b600080610faa600454610fa4611147565b9061192d565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa158015611001573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110259190612acd565b90508181106110375760009250505090565b6110418183612b14565b9250505090565b6007546040517f42ec38e20000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009283929116906342ec38e290602401602060405180830381865afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190612acd565b6000818152600b602052604081208054600190910154600d549394509092909190611102908390610e5d61112b565b90508281116111175750600095945050505050565b6111218382612b14565b9695505050505050565b6000600554611138611147565b6111429190612b14565b905090565b6003546000906001600160a01b03161561124857600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d29190612acd565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561121a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123e9190612acd565b6111429190612afc565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111429190612acd565b600260015414156113075760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b6002600155600e5460009061131b90611946565b9050813561136b5760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f74206465706f736974203000000000000000000060448201526064016105c6565b61137361112b565b8111156113e85760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a2063616e6e6f74206465706f736974207768656e207969656c6460448201527f206973206e65676174697665000000000000000000000000000000000000000060648201526084016105c6565b611404823560408401356113ff6020860186612b2b565b6119e3565b610b1a33833561178a565b600260015414156114625760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b0382166114bd5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b610b1a82826001611700565b6002600154141561151c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b0382166115775760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b610b1a8282611cbc565b3360009081526020819052604090205460ff166115cc5760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064016105c6565b61ffff811661271010156116225760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e76657374506572630000000000000060448201526064016105c6565b60405161ffff821681527fdd970e7931ce785c1e52bab847c1a662f017c55c66edb76ddebbf61b5aa307859060200160405180910390a161ffff16600455565b612710101590565b6040516001600160a01b0383166024820152604481018290526116fb9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152611fb9565b505050565b600d54600061170d61112b565b8451909150600090815b818160ff1610156117695761174b878260ff168151811061173a5761173a612b7c565b602002602001015186868b8a61209e565b6117559084612afc565b92508061176181612b92565b915050611717565b50600254611781906001600160a01b0316888461166a565b50505050505050565b6000611794611147565b6002549091506117af906001600160a01b0316843085612479565b60006117b9611147565b90506117c58383612afc565b81146118395760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a20616d6f756e7420726563656976656420646f6573206e6f742060448201527f6d6174636820706172616d73000000000000000000000000000000000000000060648201526084016105c6565b50505050565b60008361184e575060006118f7565b8261186c57611865670de0b6b3a764000085612bb2565b90506118f7565b816118df5760405162461bcd60e51b815260206004820152603660248201527f5661756c743a2063616e6e6f7420636f6d70757465207368617265732077686560448201527f6e2074686572652773206e6f207072696e636970616c0000000000000000000060648201526084016105c6565b816118ea8486612bb2565b6118f49190612bd1565b90505b9392505050565b600082158061190b575081155b15611918575060006118f7565b826119238584612bb2565b6118659190612bd1565b600061271061193c8385612bb2565b6118f79190612bd1565b6003546000906001600160a01b031661195d575090565b6003546040517f93c3a68f000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116906393c3a68f90602401602060405180830381865afa1580156119bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105799190612acd565b82611a1957611a127f000000000000000000000000000000000000000000000000000000000000000042612afc565b9250611a92565b611a437f000000000000000000000000000000000000000000000000000000000000000042612afc565b831015611a925760405162461bcd60e51b815260206004820152601d60248201527f5661756c743a206c6f636b2074696d6520697320746f6f20736d616c6c00000060448201526064016105c6565b600d546000611a9f61112b565b90506000611aac60085490565b905060008085611ac0600880546001019055565b60005b81811015611be9576000898983818110611adf57611adf612b7c565b9050602002810190611af19190612bf3565b611afa90612c13565b805190915061ffff16611b755760405162461bcd60e51b815260206004820152602360248201527f5661756c743a20636c61696d2070657263656e746167652063616e6e6f74206260448201527f652030000000000000000000000000000000000000000000000000000000000060648201526084016105c6565b6000611b82600185612b14565b8314611b9e578151611b99908e9061ffff1661192d565b611ba8565b611ba8858e612b14565b9050611bb887828e858d8d6124ca565b8151611bc89061ffff1687612afc565b9550611bd48186612afc565b9450505080611be290612cd3565b9050611ac3565b506127108314611c615760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20636c61696d7320646f6e27742061646420757020746f20313060448201527f302500000000000000000000000000000000000000000000000000000000000060648201526084016105c6565b898214611cb05760405162461bcd60e51b815260206004820152601c60248201527f5661756c743a20616d6f756e7420646f65736e2774206164642075700000000060448201526064016105c6565b50505050505050505050565b8051600090815b818160ff161015611f32576000848260ff1681518110611ce557611ce5612b7c565b602090810291909101810151600081815260099092526040808320600281015460019091015460065492516331a9108f60e11b8152600481018590529395509093909290916001600160a01b031690636352211e90602401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190612ab0565b6000858152600960205260409020549091506001600160a01b0382163314611de85760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20796f7520617265206e6f7420616c6c6f77656400000000000060448201526064016105c6565b42841115611e385760405162461bcd60e51b815260206004820152601760248201527f5661756c743a20616d6f756e74206973206c6f636b656400000000000000000060448201526064016105c6565b8215611e865760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f7420612073706f6e736f7260448201526064016105c6565b611e908189612afc565b600654604051630852cd8d60e31b8152600481018890529199506001600160a01b0316906342966c6890602401600060405180830381600087803b158015611ed757600080fd5b505af1158015611eeb573d6000803e3d6000fd5b50506040518792507f05394e48d744e4a16d65f52f88cdaf0f60f5d18af259df878d44cb80826d221f9150600090a250505050508080611f2a90612b92565b915050611cc3565b5081611f3c611147565b811115611f8b5760405162461bcd60e51b815260206004820152601760248201527f5661756c743a206e6f7420656e6f7567682066756e647300000000000000000060448201526064016105c6565b8260056000828254611f9d9190612b14565b9091555050600254610a59906001600160a01b0316868361166a565b600061200e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661272c9092919063ffffffff16565b8051909150156116fb578080602001905181019061202c9190612cee565b6116fb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016105c6565b6000336006546040516331a9108f60e11b8152600481018990526001600160a01b039283169290911690636352211e90602401602060405180830381865afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121129190612ab0565b6001600160a01b03161461218e5760405162461bcd60e51b815260206004820152602960248201527f5661756c743a20796f7520617265206e6f7420746865206f776e6572206f662060448201527f61206465706f736974000000000000000000000000000000000000000000000060648201526084016105c6565b6000868152600960205260409020600201544210156121ef5760405162461bcd60e51b815260206004820152601860248201527f5661756c743a206465706f736974206973206c6f636b6564000000000000000060448201526064016105c6565b60008681526009602052604090206001015461224d5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f742061206465706f73697460448201526064016105c6565b600086815260096020908152604080832060018082015460038301549254818752600b9095529285209081015490549294919392909161228e848c8c61183f565b905060008582118061229f57508382115b90508880156122ab5750805b156122cc57826122bb8587612bb2565b6122c59190612bd1565b9150612340565b80156123405760405162461bcd60e51b815260206004820152603560248201527f5661756c743a2063616e6e6f74207769746864726177206d6f7265207468616e60448201527f2074686520617661696c61626c6520616d6f756e74000000000000000000000060648201526084016105c6565b6000878152600b602052604081206001018054849290612361908490612b14565b90915550506000878152600b602052604081208054879290612384908490612b14565b9250508190555081600d600082825461239d9190612b14565b9250508190555084600e60008282546123b69190612b14565b9091555050600654604051630852cd8d60e31b8152600481018f90526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561240157600080fd5b505af1158015612415573d6000803e3d6000fd5b50505050896001600160a01b03168d7f95fa98cd1a0b1d7d20d4f5d9f62889e8cfd8d172a99939d2a2f46bb668eb2f4f8460405161245591815260200190565b60405180910390a3612468828d8d6118fe565b9d9c50505050505050505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526118399085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016116af565b60006124d786848461183f565b60075460208601516040517f6a6278420000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350600092911690636a627842906024016020604051808303816000875af1158015612546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256a9190612acd565b905081600b600083815260200190815260200160002060010160008282546125929190612afc565b90915550506000818152600b6020526040812080548992906125b5908490612afc565b9250508190555081600d60008282546125ce9190612afc565b9250508190555086600e60008282546125e79190612afc565b90915550506006546000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015612647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266b9190612acd565b604080516080810182528a815260208082018681528284018c81526060840189815260008781526009855295909520935184559051600184015551600283015591516003909101558701519091506001600160a01b031633604080518c8152602081018c905290810186905260608101859052608081018a90526001600160a01b03919091169083907f98db8624761955d33737f627918f2b1198592f38bb40bbb0a46469b4fe1844b09060a00160405180910390a4505050505050505050565b60606118f4848460008585843b6127855760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105c6565b600080866001600160a01b031685876040516127a19190612d37565b60006040518083038185875af1925050503d80600081146127de576040519150601f19603f3d011682016040523d82523d6000602084013e6127e3565b606091505b50915091506127f38282866127fe565b979650505050505050565b6060831561280d5750816118f7565b82511561281d5782518084602001fd5b8160405162461bcd60e51b81526004016105c69190612d49565b60006020828403121561284957600080fd5b81356001600160e01b0319811681146118f757600080fd5b6001600160a01b038116811461287657600080fd5b50565b801515811461287657600080fd5b6000806040838503121561289a57600080fd5b82356128a581612861565b915060208301356128b581612879565b809150509250929050565b6000602082840312156128d257600080fd5b81356118f781612861565b6000602082840312156128ef57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561292f5761292f6128f6565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561295e5761295e6128f6565b604052919050565b6000806040838503121561297957600080fd5b823561298481612861565b915060208381013567ffffffffffffffff808211156129a257600080fd5b818601915086601f8301126129b657600080fd5b8135818111156129c8576129c86128f6565b8060051b91506129d9848301612935565b81815291830184019184810190898411156129f357600080fd5b938501935b83851015612a11578435825293850193908501906129f8565b8096505050505050509250929050565b60008060408385031215612a3457600080fd5b50508035926020909101359150565b600060208284031215612a5557600080fd5b813567ffffffffffffffff811115612a6c57600080fd5b8201606081850312156118f757600080fd5b803561ffff81168114612a9057600080fd5b919050565b600060208284031215612aa757600080fd5b6118f782612a7e565b600060208284031215612ac257600080fd5b81516118f781612861565b600060208284031215612adf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612b0f57612b0f612ae6565b500190565b600082821015612b2657612b26612ae6565b500390565b6000808335601e19843603018112612b4257600080fd5b83018035915067ffffffffffffffff821115612b5d57600080fd5b6020019150600581901b3603821315612b7557600080fd5b9250929050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff811415612ba957612ba9612ae6565b60010192915050565b6000816000190483118215151615612bcc57612bcc612ae6565b500290565b600082612bee57634e487b7160e01b600052601260045260246000fd5b500490565b60008235605e19833603018112612c0957600080fd5b9190910192915050565b600060608236031215612c2557600080fd5b612c2d61290c565b612c3683612a7e565b8152602080840135612c4781612861565b82820152604084013567ffffffffffffffff80821115612c6657600080fd5b9085019036601f830112612c7957600080fd5b813581811115612c8b57612c8b6128f6565b612c9d601f8201601f19168501612935565b91508082523684828501011115612cb357600080fd5b808484018584013760009082019093019290925250604082015292915050565b6000600019821415612ce757612ce7612ae6565b5060010190565b600060208284031215612d0057600080fd5b81516118f781612879565b60005b83811015612d26578181015183820152602001612d0e565b838111156118395750506000910152565b60008251612c09818460208701612d0b565b6020815260008251806020840152612d68816040850160208701612d0b565b601f01601f1916919091016040019291505056fea2646970667358221220ce166d69b4ef6b812346a76fd40a5d400facc9983c00439e0f7f3ee7c88d3c7164736f6c634300080a003360806040523480156200001157600080fd5b5060405162001b0a38038062001b0a833981016040819052620000349162000203565b8151829082906200004d90600090602085019062000090565b5080516200006390600190602084019062000090565b5050600780546001600160a01b0319166001600160a01b03959095169490941790935550620002ca915050565b8280546200009e906200028d565b90600052602060002090601f016020900481019282620000c257600085556200010d565b82601f10620000dd57805160ff19168380011785556200010d565b828001600101855582156200010d579182015b828111156200010d578251825591602001919060010190620000f0565b506200011b9291506200011f565b5090565b5b808211156200011b576000815560010162000120565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200015e57600080fd5b81516001600160401b03808211156200017b576200017b62000136565b604051601f8301601f19908116603f01168101908282118183101715620001a657620001a662000136565b81604052838152602092508683858801011115620001c357600080fd5b600091505b83821015620001e75785820183015181830184015290820190620001c8565b83821115620001f95760008385830101525b9695505050505050565b6000806000606084860312156200021957600080fd5b83516001600160a01b03811681146200023157600080fd5b60208501519093506001600160401b03808211156200024f57600080fd5b6200025d878388016200014c565b935060408601519150808211156200027457600080fd5b5062000283868287016200014c565b9150509250925092565b600181811c90821680620002a257607f821691505b60208210811415620002c457634e487b7160e01b600052602260045260246000fd5b50919050565b61183080620002da6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636352211e116100b2578063a22cb46511610081578063c87b56dd11610066578063c87b56dd1461025e578063e985e9c514610271578063fbfa77cf146102ad57600080fd5b8063a22cb46514610238578063b88d4fde1461024b57600080fd5b80636352211e146101e95780636a627842146101fc57806370a082311461021d57806395d89b411461023057600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342966c68146101c35780634f558e79146101d657600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e3660046113e9565b6102c0565b60405190151581526020015b60405180910390f35b61015061035d565b60405161013f919061145e565b61017061016b366004611471565b6103ef565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046114a1565b610489565b005b61019b6101ab3660046114cb565b6105bb565b61019b6101be3660046114cb565b610642565b61019b6101d1366004611471565b61065d565b6101336101e4366004611471565b6106c3565b6101706101f7366004611471565b6106e2565b61020f61020a366004611507565b61076d565b60405190815260200161013f565b61020f61022b366004611507565b6107f4565b61015061088e565b61019b610246366004611522565b61089d565b61019b610259366004611574565b6108ac565b61015061026c366004611471565b61093a565b61013361027f366004611650565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061032357506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061035757507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60606000805461036c90611683565b80601f016020809104026020016040519081016040528092919081815260200182805461039890611683565b80156103e55780601f106103ba576101008083540402835291602001916103e5565b820191906000526020600020905b8154815290600101906020018083116103c857829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661046d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b6000610494826106e2565b9050806001600160a01b0316836001600160a01b0316141561051e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610464565b336001600160a01b038216148061053a575061053a813361027f565b6105ac5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610464565b6105b68383610a30565b505050565b6105c53382610aab565b6106375760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610464565b6105b6838383610ba2565b6105b6838383604051806020016040528060008152506108ac565b6007546001600160a01b031633146106b75760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a65640000000000006044820152606401610464565b6106c081610d7c565b50565b6000818152600260205260408120546001600160a01b03161515610357565b6000818152600260205260408120546001600160a01b0316806103575760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610464565b6007546000906001600160a01b031633146107ca5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a65640000000000006044820152606401610464565b60006107d560065490565b90506107e5600680546001019055565b6103578382610e24565b919050565b60006001600160a01b0382166108725760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610464565b506001600160a01b031660009081526003602052604090205490565b60606001805461036c90611683565b6108a8338383610e3e565b5050565b6108b63383610aab565b6109285760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610464565b61093484848484610f0d565b50505050565b6000818152600260205260409020546060906001600160a01b03166109c75760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610464565b60006109de60408051602081019091526000815290565b905060008151116109fe5760405180602001604052806000815250610a29565b80610a0884610f8b565b604051602001610a199291906116be565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610a72826106e2565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610b245760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610464565b6000610b2f836106e2565b9050806001600160a01b0316846001600160a01b03161480610b6a5750836001600160a01b0316610b5f846103ef565b6001600160a01b0316145b80610b9a57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610bb5826106e2565b6001600160a01b031614610c315760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610464565b6001600160a01b038216610cac5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610464565b610cb7600082610a30565b6001600160a01b0383166000908152600360205260408120805460019290610ce0908490611703565b90915550506001600160a01b0382166000908152600360205260408120805460019290610d0e90849061171a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000610d87826106e2565b9050610d94600083610a30565b6001600160a01b0381166000908152600360205260408120805460019290610dbd908490611703565b9091555050600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6108a88282604051806020016040528060008152506110bd565b816001600160a01b0316836001600160a01b03161415610ea05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610464565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610f18848484610ba2565b610f248484848461113b565b6109345760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610464565b606081610fcb57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610ff55780610fdf81611732565b9150610fee9050600a83611763565b9150610fcf565b60008167ffffffffffffffff8111156110105761101061155e565b6040519080825280601f01601f19166020018201604052801561103a576020820181803683370190505b5090505b8415610b9a5761104f600183611703565b915061105c600a86611777565b61106790603061171a565b60f81b81838151811061107c5761107c61178b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506110b6600a86611763565b945061103e565b6110c78383611284565b6110d4600084848461113b565b6105b65760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610464565b60006001600160a01b0384163b1561127957604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061117f9033908990889088906004016117a1565b6020604051808303816000875af19250505080156111ba575060408051601f3d908101601f191682019092526111b7918101906117dd565b60015b61125f573d8080156111e8576040519150601f19603f3d011682016040523d82523d6000602084013e6111ed565b606091505b5080516112575760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610464565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610b9a565b506001949350505050565b6001600160a01b0382166112da5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610464565b6000818152600260205260409020546001600160a01b03161561133f5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610464565b6001600160a01b038216600090815260036020526040812080546001929061136890849061171a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b0319811681146106c057600080fd5b6000602082840312156113fb57600080fd5b8135610a29816113d3565b60005b83811015611421578181015183820152602001611409565b838111156109345750506000910152565b6000815180845261144a816020860160208601611406565b601f01601f19169290920160200192915050565b602081526000610a296020830184611432565b60006020828403121561148357600080fd5b5035919050565b80356001600160a01b03811681146107ef57600080fd5b600080604083850312156114b457600080fd5b6114bd8361148a565b946020939093013593505050565b6000806000606084860312156114e057600080fd5b6114e98461148a565b92506114f76020850161148a565b9150604084013590509250925092565b60006020828403121561151957600080fd5b610a298261148a565b6000806040838503121561153557600080fd5b61153e8361148a565b91506020830135801515811461155357600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561158a57600080fd5b6115938561148a565b93506115a16020860161148a565b925060408501359150606085013567ffffffffffffffff808211156115c557600080fd5b818701915087601f8301126115d957600080fd5b8135818111156115eb576115eb61155e565b604051601f8201601f19908116603f011681019083821181831017156116135761161361155e565b816040528281528a602084870101111561162c57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561166357600080fd5b61166c8361148a565b915061167a6020840161148a565b90509250929050565b600181811c9082168061169757607f821691505b602082108114156116b857634e487b7160e01b600052602260045260246000fd5b50919050565b600083516116d0818460208801611406565b8351908301906116e4818360208801611406565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611715576117156116ed565b500390565b6000821982111561172d5761172d6116ed565b500190565b6000600019821415611746576117466116ed565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826117725761177261174d565b500490565b6000826117865761178661174d565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b038087168352808616602084015250836040830152608060608301526117d36080830184611432565b9695505050505050565b6000602082840312156117ef57600080fd5b8151610a29816113d356fea26469706673582212201da06ae3538d67712b688ba6f2baa93253d4c0486392f8a83b7ed0fdc52e4ff264736f6c634300080a00336080604052600780546001600160a01b03191690553480156200002157600080fd5b5060405162001a8238038062001a82833981016040819052620000449162000178565b6040805180820182526008815267436c61696d65727360c01b602080830191825283518085019094526006845265534e44434c4d60d01b9084015281519192916200009291600091620000d2565b508051620000a8906001906020840190620000d2565b5050600780546001600160a01b0319166001600160a01b03939093169290921790915550620001e7565b828054620000e090620001aa565b90600052602060002090601f0160209004810192826200010457600085556200014f565b82601f106200011f57805160ff19168380011785556200014f565b828001600101855582156200014f579182015b828111156200014f57825182559160200191906001019062000132565b506200015d92915062000161565b5090565b5b808211156200015d576000815560010162000162565b6000602082840312156200018b57600080fd5b81516001600160a01b0381168114620001a357600080fd5b9392505050565b600181811c90821680620001bf57607f821691505b60208210811415620001e157634e487b7160e01b600052602260045260246000fd5b50919050565b61188b80620001f76000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636a627842116100b2578063adde18b011610081578063c87b56dd11610066578063c87b56dd14610281578063e985e9c514610294578063fbfa77cf146102d057600080fd5b8063adde18b01461024e578063b88d4fde1461026e57600080fd5b80636a6278421461020d57806370a082311461022057806395d89b4114610233578063a22cb4651461023b57600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342ec38e2146101c35780636352211e146101fa57600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e366004611444565b6102e3565b60405190151581526020015b60405180910390f35b610150610380565b60405161013f91906114b9565b61017061016b3660046114cc565b610412565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046114fc565b6104ac565b005b61019b6101ab366004611526565b6105de565b61019b6101be366004611526565b610665565b6101ec6101d1366004611562565b6001600160a01b031660009081526008602052604090205490565b60405190815260200161013f565b6101706102083660046114cc565b610680565b6101ec61021b366004611562565b61070b565b6101ec61022e366004611562565b6107a7565b610150610841565b61019b61024936600461157d565b610850565b6101ec61025c366004611562565b60086020526000908152604090205481565b61019b61027c3660046115cf565b61085f565b61015061028f3660046114cc565b6108ed565b6101336102a23660046116ab565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061034657506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061037a57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60606000805461038f906116de565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb906116de565b80156104085780601f106103dd57610100808354040283529160200191610408565b820191906000526020600020905b8154815290600101906020018083116103eb57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166104905760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006104b782610680565b9050806001600160a01b0316836001600160a01b031614156105415760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610487565b336001600160a01b038216148061055d575061055d81336102a2565b6105cf5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610487565b6105d983836109e3565b505050565b6105e83382610a5e565b61065a5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610487565b6105d9838383610b55565b6105d98383836040518060200160405280600081525061085f565b6000818152600260205260408120546001600160a01b03168061037a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610487565b6007546000906001600160a01b031633146107685760405162461bcd60e51b815260206004820152601860248201527f436c61696d6572733a206e6f7420617574686f72697a656400000000000000006044820152606401610487565b6001600160a01b0382166000908152600860205260409020548061037a57610794600680546001019055565b5060065461037a8382610d3a565b919050565b60006001600160a01b0382166108255760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610487565b506001600160a01b031660009081526003602052604090205490565b60606001805461038f906116de565b61085b338383610d54565b5050565b6108693383610a5e565b6108db5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610487565b6108e784848484610e23565b50505050565b6000818152600260205260409020546060906001600160a01b031661097a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610487565b600061099160408051602081019091526000815290565b905060008151116109b157604051806020016040528060008152506109dc565b806109bb84610ea1565b6040516020016109cc929190611719565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610a2582610680565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610ad75760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610487565b6000610ae283610680565b9050806001600160a01b0316846001600160a01b03161480610b1d5750836001600160a01b0316610b1284610412565b6001600160a01b0316145b80610b4d57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610b6882610680565b6001600160a01b031614610be45760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610487565b6001600160a01b038216610c5f5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610487565b610c6a838383610fd3565b610c756000826109e3565b6001600160a01b0383166000908152600360205260408120805460019290610c9e90849061175e565b90915550506001600160a01b0382166000908152600360205260408120805460019290610ccc908490611775565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61085b828260405180602001604052806000815250611109565b816001600160a01b0316836001600160a01b03161415610db65760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610487565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610e2e848484610b55565b610e3a84848484611187565b6108e75760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610487565b606081610ee157505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610f0b5780610ef58161178d565b9150610f049050600a836117be565b9150610ee5565b60008167ffffffffffffffff811115610f2657610f266115b9565b6040519080825280601f01601f191660200182016040528015610f50576020820181803683370190505b5090505b8415610b4d57610f6560018361175e565b9150610f72600a866117d2565b610f7d906030611775565b60f81b818381518110610f9257610f926117e6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610fcc600a866117be565b9450610f54565b6001600160a01b0382166110295760405162461bcd60e51b815260206004820152601e60248201527f436c61696d6572733a2063616e6e6f74206275726e2074686973204e465400006044820152606401610487565b6001600160a01b038316611055576001600160a01b039190911660009081526008602052604090205550565b6001600160a01b038216600090815260086020526040902054156110e15760405162461bcd60e51b815260206004820152602860248201527f436c61696d6572733a2064657374696e6174696f6e20616c726561647920686160448201527f7320616e204e46540000000000000000000000000000000000000000000000006064820152608401610487565b6001600160a01b03928316600090815260086020526040808220829055929093168352912055565b61111383836112d0565b6111206000848484611187565b6105d95760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610487565b60006001600160a01b0384163b156112c557604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906111cb9033908990889088906004016117fc565b6020604051808303816000875af1925050508015611206575060408051601f3d908101601f1916820190925261120391810190611838565b60015b6112ab573d808015611234576040519150601f19603f3d011682016040523d82523d6000602084013e611239565b606091505b5080516112a35760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610487565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610b4d565b506001949350505050565b6001600160a01b0382166113265760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610487565b6000818152600260205260409020546001600160a01b03161561138b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610487565b61139760008383610fd3565b6001600160a01b03821660009081526003602052604081208054600192906113c0908490611775565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461144157600080fd5b50565b60006020828403121561145657600080fd5b81356109dc8161142b565b60005b8381101561147c578181015183820152602001611464565b838111156108e75750506000910152565b600081518084526114a5816020860160208601611461565b601f01601f19169290920160200192915050565b6020815260006109dc602083018461148d565b6000602082840312156114de57600080fd5b5035919050565b80356001600160a01b03811681146107a257600080fd5b6000806040838503121561150f57600080fd5b611518836114e5565b946020939093013593505050565b60008060006060848603121561153b57600080fd5b611544846114e5565b9250611552602085016114e5565b9150604084013590509250925092565b60006020828403121561157457600080fd5b6109dc826114e5565b6000806040838503121561159057600080fd5b611599836114e5565b9150602083013580151581146115ae57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156115e557600080fd5b6115ee856114e5565b93506115fc602086016114e5565b925060408501359150606085013567ffffffffffffffff8082111561162057600080fd5b818701915087601f83011261163457600080fd5b813581811115611646576116466115b9565b604051601f8201601f19908116603f0116810190838211818310171561166e5761166e6115b9565b816040528281528a602084870101111561168757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156116be57600080fd5b6116c7836114e5565b91506116d5602084016114e5565b90509250929050565b600181811c908216806116f257607f821691505b6020821081141561171357634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161172b818460208801611461565b83519083019061173f818360208801611461565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561177057611770611748565b500390565b6000821982111561178857611788611748565b500190565b60006000198214156117a1576117a1611748565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826117cd576117cd6117a8565b500490565b6000826117e1576117e16117a8565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b0380871683528086166020840152508360408301526080606083015261182e608083018461148d565b9695505050505050565b60006020828403121561184a57600080fd5b81516109dc8161142b56fea26469706673582212203cb75f6dd87a7c2f3502af671455cc90cef2d5d3072f9b13ff2c773f9818c29264736f6c634300080a00330000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000012750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005409ed021d9299bf6814279a6a1411a7e866a631", "value": "0x0"}, -{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0x555472", "gas_price": "0x4a817c800", "data": "0x60a06040523480156200001157600080fd5b5060405162006683380380620066838339810160408190526200003491620002ca565b6001600160a01b03811660008181526020818152604091829020805460ff1916600190811790915591519182528392917fe95aec380cae16330d146d5499ef7db6f3657e477104a733e771bc09e500d986910160405180910390a25060018081905550620000ad826200028d60201b620016621760201c565b620000ff5760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e76657374506572630000000000000060448201526064015b60405180910390fd5b6001600160a01b038416620001665760405162461bcd60e51b815260206004820152602660248201527f5661756c74436f6e746578743a20756e6465726c79696e672063616e6e6f742060448201526506265203078360d41b6064820152608401620000f6565b6004829055600280546001600160a01b0319166001600160a01b038616179055608083905260405130906200019b9062000295565b6001600160a01b039091168152606060208201819052600a90820152696465706f7369746f727360b01b608082015260a060408201819052600190820152600760fc1b60c082015260e001604051809103906000f08015801562000203573d6000803e3d6000fd5b50600680546001600160a01b0319166001600160a01b039290921691909117905560405130906200023490620002a3565b6001600160a01b039091168152602001604051809103906000f08015801562000261573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b0392909216919091179055506200031b92505050565b612710101590565b611b0a80620030f783390190565b611a828062004c0183390190565b6001600160a01b0381168114620002c757600080fd5b50565b60008060008060808587031215620002e157600080fd5b8451620002ee81620002b1565b80945050602085015192506040850151915060608501516200031081620002b1565b939692955090935050565b608051612db262000345600039600081816102b5015281816119ed0152611a1e0152612db26000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806396d648791161010f578063c0ddb692116100a2578063df6f9ba711610071578063df6f9ba7146104a0578063e4020fdf146104b3578063e84b25a2146104c6578063eb0ebfbc146104d957600080fd5b8063c0ddb69214610465578063c63aa3e71461046d578063c70920bc14610485578063d812053f1461048d57600080fd5b8063aaa46688116100de578063aaa46688146103e2578063b02c43d0146103f5578063b0c29efe1461044a578063bba97d331461045257600080fd5b806396d648791461038f578063999927df146103b2578063a164c25d146103c5578063a8c62e76146103cf57600080fd5b80636f307dc311610187578063878ecfec11610156578063878ecfec146103265780638b6ed67d14610349578063908de6c21461035c578063947fdb8b1461037c57600080fd5b80636f307dc31461028557806373ae54b5146102b05780637c2032e7146102d75780638293744b1461031357600080fd5b80633a98ef39116101c35780633a98ef39146102625780633c90a1701461026b5780634b1533b2146102745780634fc78d681461027d57600080fd5b806301ffc9a7146101f55780631325d5f11461021d5780631393916a1461023a57806333a100ca1461024f575b600080fd5b610208610203366004612837565b6104e2565b60405190151581526020015b60405180910390f35b61022c670de0b6b3a764000081565b604051908152602001610214565b61024d610248366004612887565b61057f565b005b61024d61025d3660046128c0565b61062c565b61022c600d5481565b61022c60045481565b61022c600e5481565b61024d6108ef565b600254610298906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b61022c7f000000000000000000000000000000000000000000000000000000000000000081565b6102fe6102e53660046128dd565b600b602052600090815260409020805460019091015482565b60408051928352602083019190915201610214565b61024d610321366004612966565b610a60565b61022c6103343660046128dd565b6000908152600b602052604090206001015490565b600754610298906001600160a01b031681565b61022c61036a3660046128dd565b6000908152600b602052604090205490565b61024d61038a366004612a21565b610b22565b61020861039d3660046128c0565b60006020819052908152604090205460ff1681565b61024d6103c03660046128c0565b610d6e565b61022c6212750081565b600354610298906001600160a01b031681565b600654610298906001600160a01b031681565b61042a6104033660046128dd565b60096020526000908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610214565b61022c610f93565b61022c6104603660046128c0565b611048565b61022c61112b565b60405167ffffffffffffffff42168152602001610214565b61022c611147565b61024d61049b366004612a43565b6112b4565b61024d6104ae366004612966565b61140f565b61024d6104c1366004612966565b6114c9565b61024d6104d4366004612a95565b611581565b61022c60055481565b60006001600160e01b031982167f5eaec14200000000000000000000000000000000000000000000000000000000148061054557506001600160e01b031982167f9b736be800000000000000000000000000000000000000000000000000000000145b8061057957507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b3360009081526020819052604090205460ff166105cf5760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff191685151590811790915591519182527fe95aec380cae16330d146d5499ef7db6f3657e477104a733e771bc09e500d986910160405180910390a25050565b3360009081526020819052604090205460ff166106775760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064016105c6565b6001600160a01b0381166106cd5760405162461bcd60e51b815260206004820152601260248201527f5661756c743a207374726174656779203078000000000000000000000000000060448201526064016105c6565b306001600160a01b0316816001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610715573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107399190612ab0565b6001600160a01b03161461078f5760405162461bcd60e51b815260206004820152601460248201527f5661756c743a20696e76616c6964207661756c7400000000000000000000000060448201526064016105c6565b6003546001600160a01b0316158061081b5750600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108199190612acd565b155b61088d5760405162461bcd60e51b815260206004820152602260248201527f5661756c743a2073747261746567792068617320696e7665737465642066756e60448201527f647300000000000000000000000000000000000000000000000000000000000060648201526084016105c6565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f4da9c22c924692646a21cf1f423781ae3285198dc22e8a6912835d3272b90b3c90600090a250565b3360009081526020819052604090205460ff1661093a5760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064016105c6565b6003546001600160a01b03166109925760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a207374726174656779206973206e6f742073657400000000000060448201526064016105c6565b600061099c610f93565b905080156109f5576003546002546109c1916001600160a01b0391821691168361166a565b6040518181527fac9f7997c30b6a3cc9c74953898b5de154359339c7ec0d6d70ceb98e55db1a4b9060200160405180910390a15b600360009054906101000a90046001600160a01b03166001600160a01b0316634fa5d8546040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b5050505050565b60026001541415610ab35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b038216610b0e5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b610b1a82826000611700565b505060018055565b60026001541415610b755760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b600260015581610bc75760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f742073706f6e736f72203000000000000000000060448201526064016105c6565b80610be057610bd96212750042612afc565b9050610c3c565b610bed6212750042612afc565b811015610c3c5760405162461bcd60e51b815260206004820152601d60248201527f5661756c743a206c6f636b2074696d6520697320746f6f20736d616c6c00000060448201526064016105c6565b6006546000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015610c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbb9190612acd565b6040805160808101825285815260006020808301828152838501888152606085018481528785526009845293869020945185559051600185015551600284015590516003909201919091558151868152908101859052919250339183917f7ca3497675c6d3ec00b1edc13b8e0b06169ee96a663ab25a74af7da53378f09e910160405180910390a38260056000828254610d559190612afc565b90915550610d659050338461178a565b50506001805550565b60026001541415610dc15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b038116610e1c5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b6000610e2733611048565b905080610e345750610f8c565b6000610e4a82600d54610e4561112b565b61183f565b90506000610e6282600d54610e5d61112b565b6118fe565b6007549091506000906001600160a01b03166342ec38e2336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee29190612acd565b600254909150610efc906001600160a01b0316868461166a565b6000818152600b602052604081206001018054859290610f1d908490612b14565b9250508190555082600d6000828254610f369190612b14565b909155505060408051828152602081018490529081018490526001600160a01b038616907fc64c05237373d420472e7259849c0a314d9c3424021920543562ceffa9b10f949060600160405180910390a2505050505b5060018055565b600080610faa600454610fa4611147565b9061192d565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa158015611001573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110259190612acd565b90508181106110375760009250505090565b6110418183612b14565b9250505090565b6007546040517f42ec38e20000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015260009283929116906342ec38e290602401602060405180830381865afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190612acd565b6000818152600b602052604081208054600190910154600d549394509092909190611102908390610e5d61112b565b90508281116111175750600095945050505050565b6111218382612b14565b9695505050505050565b6000600554611138611147565b6111429190612b14565b905090565b6003546000906001600160a01b03161561124857600360009054906101000a90046001600160a01b03166001600160a01b0316634ad0b6846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d29190612acd565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561121a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123e9190612acd565b6111429190612afc565b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111429190612acd565b600260015414156113075760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b6002600155600e5460009061131b90611946565b9050813561136b5760405162461bcd60e51b815260206004820152601760248201527f5661756c743a2063616e6e6f74206465706f736974203000000000000000000060448201526064016105c6565b61137361112b565b8111156113e85760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a2063616e6e6f74206465706f736974207768656e207969656c6460448201527f206973206e65676174697665000000000000000000000000000000000000000060648201526084016105c6565b611404823560408401356113ff6020860186612b2b565b6119e3565b610b1a33833561178a565b600260015414156114625760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b0382166114bd5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b610b1a82826001611700565b6002600154141561151c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c6565b60026001556001600160a01b0382166115775760405162461bcd60e51b815260206004820181905260248201527f5661756c743a2064657374696e6174696f6e206164647265737320697320307860448201526064016105c6565b610b1a8282611cbc565b3360009081526020819052604090205460ff166115cc5760405162461bcd60e51b8152602060048201526009602482015268155395149554d5115160ba1b60448201526064016105c6565b61ffff811661271010156116225760405162461bcd60e51b815260206004820152601960248201527f5661756c743a20696e76616c696420696e76657374506572630000000000000060448201526064016105c6565b60405161ffff821681527fdd970e7931ce785c1e52bab847c1a662f017c55c66edb76ddebbf61b5aa307859060200160405180910390a161ffff16600455565b612710101590565b6040516001600160a01b0383166024820152604481018290526116fb9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152611fb9565b505050565b600d54600061170d61112b565b8451909150600090815b818160ff1610156117695761174b878260ff168151811061173a5761173a612b7c565b602002602001015186868b8a61209e565b6117559084612afc565b92508061176181612b92565b915050611717565b50600254611781906001600160a01b0316888461166a565b50505050505050565b6000611794611147565b6002549091506117af906001600160a01b0316843085612479565b60006117b9611147565b90506117c58383612afc565b81146118395760405162461bcd60e51b815260206004820152602c60248201527f5661756c743a20616d6f756e7420726563656976656420646f6573206e6f742060448201527f6d6174636820706172616d73000000000000000000000000000000000000000060648201526084016105c6565b50505050565b60008361184e575060006118f7565b8261186c57611865670de0b6b3a764000085612bb2565b90506118f7565b816118df5760405162461bcd60e51b815260206004820152603660248201527f5661756c743a2063616e6e6f7420636f6d70757465207368617265732077686560448201527f6e2074686572652773206e6f207072696e636970616c0000000000000000000060648201526084016105c6565b816118ea8486612bb2565b6118f49190612bd1565b90505b9392505050565b600082158061190b575081155b15611918575060006118f7565b826119238584612bb2565b6118659190612bd1565b600061271061193c8385612bb2565b6118f79190612bd1565b6003546000906001600160a01b031661195d575090565b6003546040517f93c3a68f000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03909116906393c3a68f90602401602060405180830381865afa1580156119bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105799190612acd565b82611a1957611a127f000000000000000000000000000000000000000000000000000000000000000042612afc565b9250611a92565b611a437f000000000000000000000000000000000000000000000000000000000000000042612afc565b831015611a925760405162461bcd60e51b815260206004820152601d60248201527f5661756c743a206c6f636b2074696d6520697320746f6f20736d616c6c00000060448201526064016105c6565b600d546000611a9f61112b565b90506000611aac60085490565b905060008085611ac0600880546001019055565b60005b81811015611be9576000898983818110611adf57611adf612b7c565b9050602002810190611af19190612bf3565b611afa90612c13565b805190915061ffff16611b755760405162461bcd60e51b815260206004820152602360248201527f5661756c743a20636c61696d2070657263656e746167652063616e6e6f74206260448201527f652030000000000000000000000000000000000000000000000000000000000060648201526084016105c6565b6000611b82600185612b14565b8314611b9e578151611b99908e9061ffff1661192d565b611ba8565b611ba8858e612b14565b9050611bb887828e858d8d6124ca565b8151611bc89061ffff1687612afc565b9550611bd48186612afc565b9450505080611be290612cd3565b9050611ac3565b506127108314611c615760405162461bcd60e51b815260206004820152602260248201527f5661756c743a20636c61696d7320646f6e27742061646420757020746f20313060448201527f302500000000000000000000000000000000000000000000000000000000000060648201526084016105c6565b898214611cb05760405162461bcd60e51b815260206004820152601c60248201527f5661756c743a20616d6f756e7420646f65736e2774206164642075700000000060448201526064016105c6565b50505050505050505050565b8051600090815b818160ff161015611f32576000848260ff1681518110611ce557611ce5612b7c565b602090810291909101810151600081815260099092526040808320600281015460019091015460065492516331a9108f60e11b8152600481018590529395509093909290916001600160a01b031690636352211e90602401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190612ab0565b6000858152600960205260409020549091506001600160a01b0382163314611de85760405162461bcd60e51b815260206004820152601a60248201527f5661756c743a20796f7520617265206e6f7420616c6c6f77656400000000000060448201526064016105c6565b42841115611e385760405162461bcd60e51b815260206004820152601760248201527f5661756c743a20616d6f756e74206973206c6f636b656400000000000000000060448201526064016105c6565b8215611e865760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f7420612073706f6e736f7260448201526064016105c6565b611e908189612afc565b600654604051630852cd8d60e31b8152600481018890529199506001600160a01b0316906342966c6890602401600060405180830381600087803b158015611ed757600080fd5b505af1158015611eeb573d6000803e3d6000fd5b50506040518792507f05394e48d744e4a16d65f52f88cdaf0f60f5d18af259df878d44cb80826d221f9150600090a250505050508080611f2a90612b92565b915050611cc3565b5081611f3c611147565b811115611f8b5760405162461bcd60e51b815260206004820152601760248201527f5661756c743a206e6f7420656e6f7567682066756e647300000000000000000060448201526064016105c6565b8260056000828254611f9d9190612b14565b9091555050600254610a59906001600160a01b0316868361166a565b600061200e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661272c9092919063ffffffff16565b8051909150156116fb578080602001905181019061202c9190612cee565b6116fb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016105c6565b6000336006546040516331a9108f60e11b8152600481018990526001600160a01b039283169290911690636352211e90602401602060405180830381865afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121129190612ab0565b6001600160a01b03161461218e5760405162461bcd60e51b815260206004820152602960248201527f5661756c743a20796f7520617265206e6f7420746865206f776e6572206f662060448201527f61206465706f736974000000000000000000000000000000000000000000000060648201526084016105c6565b6000868152600960205260409020600201544210156121ef5760405162461bcd60e51b815260206004820152601860248201527f5661756c743a206465706f736974206973206c6f636b6564000000000000000060448201526064016105c6565b60008681526009602052604090206001015461224d5760405162461bcd60e51b815260206004820181905260248201527f5661756c743a20746f6b656e206964206973206e6f742061206465706f73697460448201526064016105c6565b600086815260096020908152604080832060018082015460038301549254818752600b9095529285209081015490549294919392909161228e848c8c61183f565b905060008582118061229f57508382115b90508880156122ab5750805b156122cc57826122bb8587612bb2565b6122c59190612bd1565b9150612340565b80156123405760405162461bcd60e51b815260206004820152603560248201527f5661756c743a2063616e6e6f74207769746864726177206d6f7265207468616e60448201527f2074686520617661696c61626c6520616d6f756e74000000000000000000000060648201526084016105c6565b6000878152600b602052604081206001018054849290612361908490612b14565b90915550506000878152600b602052604081208054879290612384908490612b14565b9250508190555081600d600082825461239d9190612b14565b9250508190555084600e60008282546123b69190612b14565b9091555050600654604051630852cd8d60e31b8152600481018f90526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561240157600080fd5b505af1158015612415573d6000803e3d6000fd5b50505050896001600160a01b03168d7f95fa98cd1a0b1d7d20d4f5d9f62889e8cfd8d172a99939d2a2f46bb668eb2f4f8460405161245591815260200190565b60405180910390a3612468828d8d6118fe565b9d9c50505050505050505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526118399085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016116af565b60006124d786848461183f565b60075460208601516040517f6a6278420000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350600092911690636a627842906024016020604051808303816000875af1158015612546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256a9190612acd565b905081600b600083815260200190815260200160002060010160008282546125929190612afc565b90915550506000818152600b6020526040812080548992906125b5908490612afc565b9250508190555081600d60008282546125ce9190612afc565b9250508190555086600e60008282546125e79190612afc565b90915550506006546000906001600160a01b0316636a627842336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af1158015612647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266b9190612acd565b604080516080810182528a815260208082018681528284018c81526060840189815260008781526009855295909520935184559051600184015551600283015591516003909101558701519091506001600160a01b031633604080518c8152602081018c905290810186905260608101859052608081018a90526001600160a01b03919091169083907f98db8624761955d33737f627918f2b1198592f38bb40bbb0a46469b4fe1844b09060a00160405180910390a4505050505050505050565b60606118f4848460008585843b6127855760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105c6565b600080866001600160a01b031685876040516127a19190612d37565b60006040518083038185875af1925050503d80600081146127de576040519150601f19603f3d011682016040523d82523d6000602084013e6127e3565b606091505b50915091506127f38282866127fe565b979650505050505050565b6060831561280d5750816118f7565b82511561281d5782518084602001fd5b8160405162461bcd60e51b81526004016105c69190612d49565b60006020828403121561284957600080fd5b81356001600160e01b0319811681146118f757600080fd5b6001600160a01b038116811461287657600080fd5b50565b801515811461287657600080fd5b6000806040838503121561289a57600080fd5b82356128a581612861565b915060208301356128b581612879565b809150509250929050565b6000602082840312156128d257600080fd5b81356118f781612861565b6000602082840312156128ef57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561292f5761292f6128f6565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561295e5761295e6128f6565b604052919050565b6000806040838503121561297957600080fd5b823561298481612861565b915060208381013567ffffffffffffffff808211156129a257600080fd5b818601915086601f8301126129b657600080fd5b8135818111156129c8576129c86128f6565b8060051b91506129d9848301612935565b81815291830184019184810190898411156129f357600080fd5b938501935b83851015612a11578435825293850193908501906129f8565b8096505050505050509250929050565b60008060408385031215612a3457600080fd5b50508035926020909101359150565b600060208284031215612a5557600080fd5b813567ffffffffffffffff811115612a6c57600080fd5b8201606081850312156118f757600080fd5b803561ffff81168114612a9057600080fd5b919050565b600060208284031215612aa757600080fd5b6118f782612a7e565b600060208284031215612ac257600080fd5b81516118f781612861565b600060208284031215612adf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612b0f57612b0f612ae6565b500190565b600082821015612b2657612b26612ae6565b500390565b6000808335601e19843603018112612b4257600080fd5b83018035915067ffffffffffffffff821115612b5d57600080fd5b6020019150600581901b3603821315612b7557600080fd5b9250929050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff811415612ba957612ba9612ae6565b60010192915050565b6000816000190483118215151615612bcc57612bcc612ae6565b500290565b600082612bee57634e487b7160e01b600052601260045260246000fd5b500490565b60008235605e19833603018112612c0957600080fd5b9190910192915050565b600060608236031215612c2557600080fd5b612c2d61290c565b612c3683612a7e565b8152602080840135612c4781612861565b82820152604084013567ffffffffffffffff80821115612c6657600080fd5b9085019036601f830112612c7957600080fd5b813581811115612c8b57612c8b6128f6565b612c9d601f8201601f19168501612935565b91508082523684828501011115612cb357600080fd5b808484018584013760009082019093019290925250604082015292915050565b6000600019821415612ce757612ce7612ae6565b5060010190565b600060208284031215612d0057600080fd5b81516118f781612879565b60005b83811015612d26578181015183820152602001612d0e565b838111156118395750506000910152565b60008251612c09818460208701612d0b565b6020815260008251806020840152612d68816040850160208701612d0b565b601f01601f1916919091016040019291505056fea2646970667358221220ce166d69b4ef6b812346a76fd40a5d400facc9983c00439e0f7f3ee7c88d3c7164736f6c634300080a003360806040523480156200001157600080fd5b5060405162001b0a38038062001b0a833981016040819052620000349162000203565b8151829082906200004d90600090602085019062000090565b5080516200006390600190602084019062000090565b5050600780546001600160a01b0319166001600160a01b03959095169490941790935550620002ca915050565b8280546200009e906200028d565b90600052602060002090601f016020900481019282620000c257600085556200010d565b82601f10620000dd57805160ff19168380011785556200010d565b828001600101855582156200010d579182015b828111156200010d578251825591602001919060010190620000f0565b506200011b9291506200011f565b5090565b5b808211156200011b576000815560010162000120565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200015e57600080fd5b81516001600160401b03808211156200017b576200017b62000136565b604051601f8301601f19908116603f01168101908282118183101715620001a657620001a662000136565b81604052838152602092508683858801011115620001c357600080fd5b600091505b83821015620001e75785820183015181830184015290820190620001c8565b83821115620001f95760008385830101525b9695505050505050565b6000806000606084860312156200021957600080fd5b83516001600160a01b03811681146200023157600080fd5b60208501519093506001600160401b03808211156200024f57600080fd5b6200025d878388016200014c565b935060408601519150808211156200027457600080fd5b5062000283868287016200014c565b9150509250925092565b600181811c90821680620002a257607f821691505b60208210811415620002c457634e487b7160e01b600052602260045260246000fd5b50919050565b61183080620002da6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636352211e116100b2578063a22cb46511610081578063c87b56dd11610066578063c87b56dd1461025e578063e985e9c514610271578063fbfa77cf146102ad57600080fd5b8063a22cb46514610238578063b88d4fde1461024b57600080fd5b80636352211e146101e95780636a627842146101fc57806370a082311461021d57806395d89b411461023057600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342966c68146101c35780634f558e79146101d657600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e3660046113e9565b6102c0565b60405190151581526020015b60405180910390f35b61015061035d565b60405161013f919061145e565b61017061016b366004611471565b6103ef565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046114a1565b610489565b005b61019b6101ab3660046114cb565b6105bb565b61019b6101be3660046114cb565b610642565b61019b6101d1366004611471565b61065d565b6101336101e4366004611471565b6106c3565b6101706101f7366004611471565b6106e2565b61020f61020a366004611507565b61076d565b60405190815260200161013f565b61020f61022b366004611507565b6107f4565b61015061088e565b61019b610246366004611522565b61089d565b61019b610259366004611574565b6108ac565b61015061026c366004611471565b61093a565b61013361027f366004611650565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061032357506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061035757507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60606000805461036c90611683565b80601f016020809104026020016040519081016040528092919081815260200182805461039890611683565b80156103e55780601f106103ba576101008083540402835291602001916103e5565b820191906000526020600020905b8154815290600101906020018083116103c857829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661046d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b6000610494826106e2565b9050806001600160a01b0316836001600160a01b0316141561051e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610464565b336001600160a01b038216148061053a575061053a813361027f565b6105ac5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610464565b6105b68383610a30565b505050565b6105c53382610aab565b6106375760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610464565b6105b6838383610ba2565b6105b6838383604051806020016040528060008152506108ac565b6007546001600160a01b031633146106b75760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a65640000000000006044820152606401610464565b6106c081610d7c565b50565b6000818152600260205260408120546001600160a01b03161515610357565b6000818152600260205260408120546001600160a01b0316806103575760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610464565b6007546000906001600160a01b031633146107ca5760405162461bcd60e51b815260206004820152601a60248201527f4465706f7369746f72733a206e6f7420617574686f72697a65640000000000006044820152606401610464565b60006107d560065490565b90506107e5600680546001019055565b6103578382610e24565b919050565b60006001600160a01b0382166108725760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610464565b506001600160a01b031660009081526003602052604090205490565b60606001805461036c90611683565b6108a8338383610e3e565b5050565b6108b63383610aab565b6109285760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610464565b61093484848484610f0d565b50505050565b6000818152600260205260409020546060906001600160a01b03166109c75760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610464565b60006109de60408051602081019091526000815290565b905060008151116109fe5760405180602001604052806000815250610a29565b80610a0884610f8b565b604051602001610a199291906116be565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610a72826106e2565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610b245760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610464565b6000610b2f836106e2565b9050806001600160a01b0316846001600160a01b03161480610b6a5750836001600160a01b0316610b5f846103ef565b6001600160a01b0316145b80610b9a57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610bb5826106e2565b6001600160a01b031614610c315760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610464565b6001600160a01b038216610cac5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610464565b610cb7600082610a30565b6001600160a01b0383166000908152600360205260408120805460019290610ce0908490611703565b90915550506001600160a01b0382166000908152600360205260408120805460019290610d0e90849061171a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000610d87826106e2565b9050610d94600083610a30565b6001600160a01b0381166000908152600360205260408120805460019290610dbd908490611703565b9091555050600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6108a88282604051806020016040528060008152506110bd565b816001600160a01b0316836001600160a01b03161415610ea05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610464565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610f18848484610ba2565b610f248484848461113b565b6109345760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610464565b606081610fcb57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610ff55780610fdf81611732565b9150610fee9050600a83611763565b9150610fcf565b60008167ffffffffffffffff8111156110105761101061155e565b6040519080825280601f01601f19166020018201604052801561103a576020820181803683370190505b5090505b8415610b9a5761104f600183611703565b915061105c600a86611777565b61106790603061171a565b60f81b81838151811061107c5761107c61178b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506110b6600a86611763565b945061103e565b6110c78383611284565b6110d4600084848461113b565b6105b65760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610464565b60006001600160a01b0384163b1561127957604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061117f9033908990889088906004016117a1565b6020604051808303816000875af19250505080156111ba575060408051601f3d908101601f191682019092526111b7918101906117dd565b60015b61125f573d8080156111e8576040519150601f19603f3d011682016040523d82523d6000602084013e6111ed565b606091505b5080516112575760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610464565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610b9a565b506001949350505050565b6001600160a01b0382166112da5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610464565b6000818152600260205260409020546001600160a01b03161561133f5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610464565b6001600160a01b038216600090815260036020526040812080546001929061136890849061171a565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b0319811681146106c057600080fd5b6000602082840312156113fb57600080fd5b8135610a29816113d3565b60005b83811015611421578181015183820152602001611409565b838111156109345750506000910152565b6000815180845261144a816020860160208601611406565b601f01601f19169290920160200192915050565b602081526000610a296020830184611432565b60006020828403121561148357600080fd5b5035919050565b80356001600160a01b03811681146107ef57600080fd5b600080604083850312156114b457600080fd5b6114bd8361148a565b946020939093013593505050565b6000806000606084860312156114e057600080fd5b6114e98461148a565b92506114f76020850161148a565b9150604084013590509250925092565b60006020828403121561151957600080fd5b610a298261148a565b6000806040838503121561153557600080fd5b61153e8361148a565b91506020830135801515811461155357600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561158a57600080fd5b6115938561148a565b93506115a16020860161148a565b925060408501359150606085013567ffffffffffffffff808211156115c557600080fd5b818701915087601f8301126115d957600080fd5b8135818111156115eb576115eb61155e565b604051601f8201601f19908116603f011681019083821181831017156116135761161361155e565b816040528281528a602084870101111561162c57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561166357600080fd5b61166c8361148a565b915061167a6020840161148a565b90509250929050565b600181811c9082168061169757607f821691505b602082108114156116b857634e487b7160e01b600052602260045260246000fd5b50919050565b600083516116d0818460208801611406565b8351908301906116e4818360208801611406565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611715576117156116ed565b500390565b6000821982111561172d5761172d6116ed565b500190565b6000600019821415611746576117466116ed565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826117725761177261174d565b500490565b6000826117865761178661174d565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b038087168352808616602084015250836040830152608060608301526117d36080830184611432565b9695505050505050565b6000602082840312156117ef57600080fd5b8151610a29816113d356fea26469706673582212201da06ae3538d67712b688ba6f2baa93253d4c0486392f8a83b7ed0fdc52e4ff264736f6c634300080a00336080604052600780546001600160a01b03191690553480156200002157600080fd5b5060405162001a8238038062001a82833981016040819052620000449162000178565b6040805180820182526008815267436c61696d65727360c01b602080830191825283518085019094526006845265534e44434c4d60d01b9084015281519192916200009291600091620000d2565b508051620000a8906001906020840190620000d2565b5050600780546001600160a01b0319166001600160a01b03939093169290921790915550620001e7565b828054620000e090620001aa565b90600052602060002090601f0160209004810192826200010457600085556200014f565b82601f106200011f57805160ff19168380011785556200014f565b828001600101855582156200014f579182015b828111156200014f57825182559160200191906001019062000132565b506200015d92915062000161565b5090565b5b808211156200015d576000815560010162000162565b6000602082840312156200018b57600080fd5b81516001600160a01b0381168114620001a357600080fd5b9392505050565b600181811c90821680620001bf57607f821691505b60208210811415620001e157634e487b7160e01b600052602260045260246000fd5b50919050565b61188b80620001f76000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636a627842116100b2578063adde18b011610081578063c87b56dd11610066578063c87b56dd14610281578063e985e9c514610294578063fbfa77cf146102d057600080fd5b8063adde18b01461024e578063b88d4fde1461026e57600080fd5b80636a6278421461020d57806370a082311461022057806395d89b4114610233578063a22cb4651461023b57600080fd5b806323b872dd116100ee57806323b872dd1461019d57806342842e0e146101b057806342ec38e2146101c35780636352211e146101fa57600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361012e366004611444565b6102e3565b60405190151581526020015b60405180910390f35b610150610380565b60405161013f91906114b9565b61017061016b3660046114cc565b610412565b6040516001600160a01b03909116815260200161013f565b61019b6101963660046114fc565b6104ac565b005b61019b6101ab366004611526565b6105de565b61019b6101be366004611526565b610665565b6101ec6101d1366004611562565b6001600160a01b031660009081526008602052604090205490565b60405190815260200161013f565b6101706102083660046114cc565b610680565b6101ec61021b366004611562565b61070b565b6101ec61022e366004611562565b6107a7565b610150610841565b61019b61024936600461157d565b610850565b6101ec61025c366004611562565b60086020526000908152604090205481565b61019b61027c3660046115cf565b61085f565b61015061028f3660046114cc565b6108ed565b6101336102a23660046116ab565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600754610170906001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061034657506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061037a57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60606000805461038f906116de565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb906116de565b80156104085780601f106103dd57610100808354040283529160200191610408565b820191906000526020600020905b8154815290600101906020018083116103eb57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166104905760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006104b782610680565b9050806001600160a01b0316836001600160a01b031614156105415760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610487565b336001600160a01b038216148061055d575061055d81336102a2565b6105cf5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610487565b6105d983836109e3565b505050565b6105e83382610a5e565b61065a5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610487565b6105d9838383610b55565b6105d98383836040518060200160405280600081525061085f565b6000818152600260205260408120546001600160a01b03168061037a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610487565b6007546000906001600160a01b031633146107685760405162461bcd60e51b815260206004820152601860248201527f436c61696d6572733a206e6f7420617574686f72697a656400000000000000006044820152606401610487565b6001600160a01b0382166000908152600860205260409020548061037a57610794600680546001019055565b5060065461037a8382610d3a565b919050565b60006001600160a01b0382166108255760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610487565b506001600160a01b031660009081526003602052604090205490565b60606001805461038f906116de565b61085b338383610d54565b5050565b6108693383610a5e565b6108db5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610487565b6108e784848484610e23565b50505050565b6000818152600260205260409020546060906001600160a01b031661097a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610487565b600061099160408051602081019091526000815290565b905060008151116109b157604051806020016040528060008152506109dc565b806109bb84610ea1565b6040516020016109cc929190611719565b6040516020818303038152906040525b9392505050565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190610a2582610680565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316610ad75760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610487565b6000610ae283610680565b9050806001600160a01b0316846001600160a01b03161480610b1d5750836001600160a01b0316610b1284610412565b6001600160a01b0316145b80610b4d57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316610b6882610680565b6001600160a01b031614610be45760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152608401610487565b6001600160a01b038216610c5f5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610487565b610c6a838383610fd3565b610c756000826109e3565b6001600160a01b0383166000908152600360205260408120805460019290610c9e90849061175e565b90915550506001600160a01b0382166000908152600360205260408120805460019290610ccc908490611775565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61085b828260405180602001604052806000815250611109565b816001600160a01b0316836001600160a01b03161415610db65760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610487565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610e2e848484610b55565b610e3a84848484611187565b6108e75760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610487565b606081610ee157505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610f0b5780610ef58161178d565b9150610f049050600a836117be565b9150610ee5565b60008167ffffffffffffffff811115610f2657610f266115b9565b6040519080825280601f01601f191660200182016040528015610f50576020820181803683370190505b5090505b8415610b4d57610f6560018361175e565b9150610f72600a866117d2565b610f7d906030611775565b60f81b818381518110610f9257610f926117e6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610fcc600a866117be565b9450610f54565b6001600160a01b0382166110295760405162461bcd60e51b815260206004820152601e60248201527f436c61696d6572733a2063616e6e6f74206275726e2074686973204e465400006044820152606401610487565b6001600160a01b038316611055576001600160a01b039190911660009081526008602052604090205550565b6001600160a01b038216600090815260086020526040902054156110e15760405162461bcd60e51b815260206004820152602860248201527f436c61696d6572733a2064657374696e6174696f6e20616c726561647920686160448201527f7320616e204e46540000000000000000000000000000000000000000000000006064820152608401610487565b6001600160a01b03928316600090815260086020526040808220829055929093168352912055565b61111383836112d0565b6111206000848484611187565b6105d95760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610487565b60006001600160a01b0384163b156112c557604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906111cb9033908990889088906004016117fc565b6020604051808303816000875af1925050508015611206575060408051601f3d908101601f1916820190925261120391810190611838565b60015b6112ab573d808015611234576040519150601f19603f3d011682016040523d82523d6000602084013e611239565b606091505b5080516112a35760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610487565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610b4d565b506001949350505050565b6001600160a01b0382166113265760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610487565b6000818152600260205260409020546001600160a01b03161561138b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610487565b61139760008383610fd3565b6001600160a01b03821660009081526003602052604081208054600192906113c0908490611775565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461144157600080fd5b50565b60006020828403121561145657600080fd5b81356109dc8161142b565b60005b8381101561147c578181015183820152602001611464565b838111156108e75750506000910152565b600081518084526114a5816020860160208601611461565b601f01601f19169290920160200192915050565b6020815260006109dc602083018461148d565b6000602082840312156114de57600080fd5b5035919050565b80356001600160a01b03811681146107a257600080fd5b6000806040838503121561150f57600080fd5b611518836114e5565b946020939093013593505050565b60008060006060848603121561153b57600080fd5b611544846114e5565b9250611552602085016114e5565b9150604084013590509250925092565b60006020828403121561157457600080fd5b6109dc826114e5565b6000806040838503121561159057600080fd5b611599836114e5565b9150602083013580151581146115ae57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156115e557600080fd5b6115ee856114e5565b93506115fc602086016114e5565b925060408501359150606085013567ffffffffffffffff8082111561162057600080fd5b818701915087601f83011261163457600080fd5b813581811115611646576116466115b9565b604051601f8201601f19908116603f0116810190838211818310171561166e5761166e6115b9565b816040528281528a602084870101111561168757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156116be57600080fd5b6116c7836114e5565b91506116d5602084016114e5565b90509250929050565b600181811c908216806116f257607f821691505b6020821081141561171357634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161172b818460208801611461565b83519083019061173f818360208801611461565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561177057611770611748565b500390565b6000821982111561178857611788611748565b500190565b60006000198214156117a1576117a1611748565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826117cd576117cd6117a8565b500490565b6000826117e1576117e16117a8565b500690565b634e487b7160e01b600052603260045260246000fd5b60006001600160a01b0380871683528086166020840152508360408301526080606083015261182e608083018461148d565b9695505050505050565b60006020828403121561184a57600080fd5b81516109dc8161142b56fea26469706673582212203cb75f6dd87a7c2f3502af671455cc90cef2d5d3072f9b13ff2c773f9818c29264736f6c634300080a00330000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000012750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005409ed021d9299bf6814279a6a1411a7e866a631", "value": "0x0"}, -{"event": "ContractCreated", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "contract_address": "0x34d402f14d58e001d8efbe6585051bf9706aa064", "gas_used": "0x1b0abb", "gas_price": "0x4a817c800", "data": "0x60806040523480156200001157600080fd5b50604051620024b6380380620024b68339810160408190526200003491620008ba565b3360008181526020818152604091829020805460ff191660019081179091559151918252899289928992899289928992899291829182917fe95aec380cae16330d146d5499ef7db6f3657e477104a733e771bc09e500d986910160405180910390a2506001600160a01b038616620000f35760405162461bcd60e51b815260206004820152601960248201527f307820616464723a205f657468416e63686f72526f757465720000000000000060448201526064015b60405180910390fd5b6001600160a01b0385166200014b5760405162461bcd60e51b815260206004820152601b60248201527f3020616464723a205f65786368616e67655261746546656564657200000000006044820152606401620000ea565b6001600160a01b038416620001975760405162461bcd60e51b8152602060048201526011602482015270181030b232391d102fbab9b22a37b5b2b760791b6044820152606401620000ea565b6001600160a01b038316620001ef5760405162461bcd60e51b815260206004820152601360248201527f307820616464723a205f61557374546f6b656e000000000000000000000000006044820152606401620000ea565b620002098261ffff166200045d60201b62000ec61760201c565b620002455760405162461bcd60e51b815260206004820152600b60248201526a1a5b9d985b1a59081c18dd60aa1b6044820152606401620000ea565b6001600160a01b038716620002915760405162461bcd60e51b81526020600482015260116024820152703020616464723a205f747265617375727960781b6044820152606401620000ea565b620002bb632f5760a160e11b896001600160a01b03166200046560201b62000ece1790919060201c565b620003095760405162461bcd60e51b815260206004820152601560248201527f5f7661756c743a206e6f7420616e20495661756c7400000000000000000000006044820152606401620000ea565b600380546001600160a01b03808a166001600160a01b03199283161790925560028054928b16929091168217905560408051636f307dc360e01b81529051636f307dc3916004808201926020929091908290030181865afa15801562000373573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039991906200096b565b600180546001600160a01b03199081166001600160a01b039384161790915560068054821689841617905560078054821688841617905560048054909116868316908117909155600580549286166001600160b01b031990931692909217600160a01b61ffff8616021790915562000421908760001962000518602090811b62000f8817901c565b60055462000448906001600160a01b03168760001962000518602090811b62000f8817901c565b50505050505050505050505050505062000a72565b612710101590565b600080806200047c856301ffc9a760e01b620005fe565b90925090508115806200048d575080155b156200049f5760009250505062000512565b620004b3856001600160e01b0319620005fe565b9092509050811580620004c557508015155b15620004d75760009250505062000512565b620004e38585620005fe565b9092509050600182148015620004f95750806001145b156200050b5760019250505062000512565b6000925050505b92915050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156200056a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200059091906200098b565b6200059c9190620009a5565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152919250620005f8918691906200063216565b50505050565b6040516301ffc9a760e01b8082526004820183905260009182919060208160248189617530fa905190969095509350505050565b60006200068e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200071560201b620010d2179092919060201c565b805190915015620007105780806020019051810190620006af9190620009cc565b620007105760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620000ea565b505050565b606062000726848460008562000730565b90505b9392505050565b606082471015620007935760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620000ea565b843b620007e35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620000ea565b600080866001600160a01b0316858760405162000801919062000a1f565b60006040518083038185875af1925050503d806000811462000840576040519150601f19603f3d011682016040523d82523d6000602084013e62000845565b606091505b5090925090506200085882828662000863565b979650505050505050565b606083156200087457508162000729565b825115620008855782518084602001fd5b8160405162461bcd60e51b8152600401620000ea919062000a3d565b6001600160a01b0381168114620008b757600080fd5b50565b600080600080600080600060e0888a031215620008d657600080fd5b8751620008e381620008a1565b6020890151909750620008f681620008a1565b60408901519096506200090981620008a1565b60608901519095506200091c81620008a1565b60808901519094506200092f81620008a1565b60a08901519093506200094281620008a1565b60c089015190925061ffff811681146200095b57600080fd5b8091505092959891949750929550565b6000602082840312156200097e57600080fd5b81516200072981620008a1565b6000602082840312156200099e57600080fd5b5051919050565b60008219821115620009c757634e487b7160e01b600052601160045260246000fd5b500190565b600060208284031215620009df57600080fd5b815180151581146200072957600080fd5b60005b8381101562000a0d578181015183820152602001620009f3565b83811115620005f85750506000910152565b6000825162000a33818460208701620009f0565b9190910192915050565b602081526000825180602084015262000a5e816040850160208701620009f0565b601f01601f19169190910160400192915050565b611a348062000a826000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80636e612f9b116100f9578063a354264d11610097578063ce8c42e811610071578063ce8c42e81461039d578063d9db2b77146103b0578063eb0469e5146103d8578063fbfa77cf146103eb57600080fd5b8063a354264d1461037a578063bfd131f114610382578063c6ed7cb91461038a57600080fd5b80639119c067116100d35780639119c0671461031857806393c3a68f14610321578063958437ee1461033457806396d648791461034757600080fd5b80636e612f9b146102df5780636f307dc3146102f2578063781338c01461030557600080fd5b80634fa5d854116101665780635c074f44116101405780635c074f44146102a857806361d027b3146102b157806362eac09d146102c45780636abc8425146102cc57600080fd5b80634fa5d8541461027a5780635247375414610282578063563233f61461029557600080fd5b80631bbec15e116101a25780631bbec15e14610228578063428eab1e146102535780634a614cf41461026a5780634ad0b6841461027257600080fd5b806307caf901146101c95780631312e0c5146101de5780631393916a14610215575b600080fd5b6101dc6101d73660046117c8565b6103fe565b005b6101f16101ec3660046117c8565b610648565b604080516001600160a01b0390931683526020830191909152015b60405180910390f35b6101dc610223366004611804565b610680565b60055461023b906001600160a01b031681565b6040516001600160a01b03909116815260200161020c565b61025c600c5481565b60405190815260200161020c565b600a5461025c565b61025c61073c565b6101dc61081a565b6101dc6102903660046117c8565b61087d565b6101dc6102a336600461183d565b61088a565b61025c60085481565b60035461023b906001600160a01b031681565b600b5461025c565b6101dc6102da3660046117c8565b6109b1565b60075461023b906001600160a01b031681565b60015461023b906001600160a01b031681565b60045461023b906001600160a01b031681565b61025c60095481565b61025c61032f3660046117c8565b610bed565b6101f16103423660046117c8565b610c01565b61036a610355366004611861565b60006020819052908152604090205460ff1681565b604051901515815260200161020c565b61025c610c11565b6101dc610cc8565b6101dc610398366004611861565b610d47565b6101dc6103ab3660046117c8565b610e48565b6005546103c590600160a01b900461ffff1681565b60405161ffff909116815260200161020c565b60065461023b906001600160a01b031681565b60025461023b906001600160a01b031681565b6002546001600160a01b031633148061042657503360009081526020819052604090205460ff165b6104645760405162461bcd60e51b815260206004820152600a6024820152691c995cdd1c9a58dd195960b21b60448201526064015b60405180910390fd5b600061046e6110eb565b9050816104bd5760405162461bcd60e51b815260206004820152600860248201527f616d6f756e742030000000000000000000000000000000000000000000000000604482015260640161045b565b8181101561050d5760405162461bcd60e51b815260206004820152600c60248201527f696e73756666696369656e740000000000000000000000000000000000000000604482015260640161045b565b816009600082825461051f9190611894565b90915550506006546040517f07caf901000000000000000000000000000000000000000000000000000000008152600481018490526000916001600160a01b0316906307caf901906024016020604051808303816000875af1158015610589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ad91906118ac565b604080518082019091526001600160a01b03918216815260208101948552600b805460018101825560009190915290517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9600290920291820180546001600160a01b031916919093161790915592517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba909301929092555050565b600a818154811061065857600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b3360009081526020819052604090205460ff166106df5760405162461bcd60e51b815260206004820152600960248201527f554e545255535445440000000000000000000000000000000000000000000000604482015260640161045b565b6001600160a01b03821660008181526020818152604091829020805460ff191685151590811790915591519182527fe95aec380cae16330d146d5499ef7db6f3657e477104a733e771bc09e500d986910160405180910390a25050565b60008060085461074a61115e565b6107549190611894565b905060006009546107636110eb565b61076d9190611894565b6007546004805460405163cdd2193960e01b81526001600160a01b039182169281019290925260016024830152929350670de0b6b3a7640000928492169063cdd2193990604401602060405180830381865afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f591906118c9565b6107ff91906118e2565b6108099190611901565b6108139083611894565b9250505090565b6002546001600160a01b031633148061084257503360009081526020819052604090205460ff165b61087b5760405162461bcd60e51b815260206004820152600a6024820152691c995cdd1c9a58dd195960b21b604482015260640161045b565b565b6108868161118f565b5050565b6002546001600160a01b03163314806108b257503360009081526020819052604090205460ff165b6108eb5760405162461bcd60e51b815260206004820152600a6024820152691c995cdd1c9a58dd195960b21b604482015260640161045b565b61ffff811661271010156109415760405162461bcd60e51b815260206004820152600b60248201527f696e76616c696420706374000000000000000000000000000000000000000000604482015260640161045b565b600580547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff16600160a01b61ffff8416908102919091179091556040519081527f3c1be17360b5ce4015d5d5ddd50de6e7e9d53d49907f45d72a202e159306938c9060200160405180910390a150565b6002546001600160a01b03163314806109d957503360009081526020819052604090205460ff165b610a125760405162461bcd60e51b815260206004820152600a6024820152691c995cdd1c9a58dd195960b21b604482015260640161045b565b600a548110610a515760405162461bcd60e51b815260206004820152600b60248201526a6e6f742072756e6e696e6760a81b604482015260640161045b565b6000600a8281548110610a6657610a66611923565b6000918252602090912060065460029092020180546040517fac1a23220000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529193509091169063ac1a232290602401600060405180830381600087803b158015610adb57600080fd5b505af1158015610aef573d6000803e3d6000fd5b50505050806001015460086000828254610b099190611939565b90915550506001810154600c8054600090610b25908490611894565b9091555050600a8054610b3a90600190611939565b81548110610b4a57610b4a611923565b600091825260209091206002909102015481546001600160a01b0319166001600160a01b03909116178155600a8054610b8590600190611939565b81548110610b9557610b95611923565b9060005260206000209060020201600101548160010181905550600a805480610bc057610bc0611950565b60008281526020812060026000199093019283020180546001600160a01b03191681556001015590555050565b6000610bfb82612648611447565b92915050565b600b818154811061065857600080fd5b6000600c5460001415610c245750600090565b6000600954610c316110eb565b610c3b9190611894565b6007546004805460405163cdd2193960e01b81526001600160a01b039182169281019290925260016024830152929350610cc2928492169063cdd2193990604401602060405180830381865afa158015610c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbd91906118c9565b611460565b91505090565b6002546001600160a01b0316331480610cf057503360009081526020819052604090205460ff165b610d295760405162461bcd60e51b815260206004820152600a6024820152691c995cdd1c9a58dd195960b21b604482015260640161045b565b6000610d336110eb565b90508015610d4457610d44816103fe565b50565b6002546001600160a01b0316331480610d6f57503360009081526020819052604090205460ff165b610da85760405162461bcd60e51b815260206004820152600a6024820152691c995cdd1c9a58dd195960b21b604482015260640161045b565b6001600160a01b038116610dfe5760405162461bcd60e51b815260206004820152600760248201527f3078206164647200000000000000000000000000000000000000000000000000604482015260640161045b565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f05c1c7b34b3d887b782517f0c921f13faaab426a5fc9a5d3694051734e97dd7f90600090a250565b6002546001600160a01b0316331480610e7057503360009081526020819052604090205460ff165b610ea95760405162461bcd60e51b815260206004820152600a6024820152691c995cdd1c9a58dd195960b21b604482015260640161045b565b600254600154610d44916001600160a01b039182169116836114be565b612710101590565b60008080610ee3856301ffc9a760e01b61150c565b9092509050811580610ef3575080155b15610f0357600092505050610bfb565b610f2d857fffffffff0000000000000000000000000000000000000000000000000000000061150c565b9092509050811580610f3e57508015155b15610f4e57600092505050610bfb565b610f58858561150c565b9092509050600182148015610f6d5750806001145b15610f7d57600192505050610bfb565b506000949350505050565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101691906118c9565b6110209190611894565b6040516001600160a01b0385166024820152604481018290529091506110cc9085907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611540565b50505050565b60606110e18484600085611625565b90505b9392505050565b6005546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024015b602060405180830381865afa158015611135573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115991906118c9565b905090565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401611118565b600b5460009082106111d15760405162461bcd60e51b815260206004820152600b60248201526a6e6f742072756e6e696e6760a81b604482015260640161045b565b6000600b83815481106111e6576111e6611923565b9060005260206000209060020201905060006009546112036110eb565b61120d9190611894565b90506000818360010154600c5461122491906118e2565b61122e9190611901565b60065484546040517f7249abb90000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529293501690637249abb990602401600060405180830381600087803b15801561129157600080fd5b505af11580156112a5573d6000803e3d6000fd5b5050505060006112b3611759565b905060008282116112c55760006112e7565b6005546112e790600160a01b900461ffff166112e18585611939565b90611447565b905080156113405760035460045461130c916001600160a01b039182169116836114be565b6040518181527f400bdf25b31ddf5f320a4bc5dd19386740a74e689d95b01e02c4b499b51b99549060200160405180910390a15b82600c60008282546113529190611939565b909155505060018501546009805460009061136e908490611939565b9091555050600b805461138390600190611939565b8154811061139357611393611923565b600091825260209091206002909102015485546001600160a01b0319166001600160a01b03909116178555600b80546113ce90600190611939565b815481106113de576113de611923565b9060005260206000209060020201600101548560010181905550600b80548061140957611409611950565b60008281526020812060026000199093019283020180546001600160a01b031916815560010155905561143c8183611939565b979650505050505050565b600061271061145683856118e2565b6110e49190611901565b600080670de0b6b3a764000061147685856118e2565b6114809190611901565b9050600c548111156114b457600554600c546114ac91600160a01b900461ffff16906112e19084611939565b915050610bfb565b5060009392505050565b6040516001600160a01b0383166024820152604481018290526115079084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401611068565b505050565b6040516301ffc9a760e01b8082526004820183905260009182919060208160248189617530fa905190969095509350505050565b6000611595826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110d29092919063ffffffff16565b80519091501561150757808060200190518101906115b39190611966565b6115075760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161045b565b60608247101561169d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161045b565b843b6116eb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161045b565b600080866001600160a01b0316858760405161170791906119af565b60006040518083038185875af1925050503d8060008114611744576040519150601f19603f3d011682016040523d82523d6000602084013e611749565b606091505b509150915061143c82828661178f565b600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a0823190602401611118565b6060831561179e5750816110e4565b8251156117ae5782518084602001fd5b8160405162461bcd60e51b815260040161045b91906119cb565b6000602082840312156117da57600080fd5b5035919050565b6001600160a01b0381168114610d4457600080fd5b8015158114610d4457600080fd5b6000806040838503121561181757600080fd5b8235611822816117e1565b91506020830135611832816117f6565b809150509250929050565b60006020828403121561184f57600080fd5b813561ffff811681146110e457600080fd5b60006020828403121561187357600080fd5b81356110e4816117e1565b634e487b7160e01b600052601160045260246000fd5b600082198211156118a7576118a761187e565b500190565b6000602082840312156118be57600080fd5b81516110e4816117e1565b6000602082840312156118db57600080fd5b5051919050565b60008160001904831182151516156118fc576118fc61187e565b500290565b60008261191e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60008282101561194b5761194b61187e565b500390565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561197857600080fd5b81516110e4816117f6565b60005b8381101561199e578181015183820152602001611986565b838111156110cc5750506000910152565b600082516119c1818460208701611983565b9190910192915050565b60208152600082518060208401526119ea816040850160208701611983565b601f01601f1916919091016040019291505056fea2646970667358221220fdfa31fc20bd94c1ab0c15633ff7a642a42dd0f08dcfb34c200eebadfec3918064736f6c634300080a003300000000000000000000000048bacb9266a570d521063ef5dd96e61686dbe788000000000000000000000000906874934f74b316c0a3eedfc58394a5a7cc3161000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c0000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e80820000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000001d7022f5b17d2f8b695918fb48fa1089c9f8540100000000000000000000000000000000000000000000000000000000000000c8", "value": "0x0"}, -{"event": "FunctionCall", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "to": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0xbad9", "gas_price": "0x4a817c800", "data": "0x33a100ca00000000000000000000000034d402f14d58e001d8efbe6585051bf9706aa064", "value": "0x0"}, -{"event": "FunctionCall", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "to": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0x100f7", "gas_price": "0x4a817c800", "data": "0x40c10f190000000000000000000000006ecbe1db9ef729cbe972c83fb886247691fb6beb00000000000000000000000000000000000000000000006c6b935b8bbd400000", "value": "0x0"}, -{"event": "FunctionCall", "from": "0x6ecbe1db9ef729cbe972c83fb886247691fb6beb", "to": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0xac9b", "gas_price": "0x4a817c800", "data": "0x095ea7b300000000000000000000000048bacb9266a570d521063ef5dd96e61686dbe78800000000000000000000000000000000000000000000006c6b935b8bbd400000", "value": "0x0"}, -{"event": "FunctionCall", "from": "0x6ecbe1db9ef729cbe972c83fb886247691fb6beb", "to": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0x79beb", "gas_price": "0x4a817c800", "data": "0xd812053f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000dead000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", "value": "0x0"}, -{"event": "FunctionCall", "from": "0x5409ed021d9299bf6814279a6a1411a7e866a631", "to": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48", "gas_used": "0x8bf8", "gas_price": "0x4a817c800", "data": "0x9dc29fac00000000000000000000000048bacb9266a570d521063ef5dd96e61686dbe78800000000000000000000000000000000000000000000000107ad8f556c6c0000", "value": "0x0"}, -{"event": "FunctionCall", "from": "0x6ecbe1db9ef729cbe972c83fb886247691fb6beb", "to": "0x48bacb9266a570d521063ef5dd96e61686dbe788", "gas_used": "0x3fc58", "gas_price": "0x4a817c800", "data": "0xd812053f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000dead000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", "value": "0x0"} -] \ No newline at end of file diff --git a/test/EchidnaVault.spec.ts b/test/EchidnaVault.spec.ts deleted file mode 100644 index 81f84fd1..00000000 --- a/test/EchidnaVault.spec.ts +++ /dev/null @@ -1,228 +0,0 @@ -import type { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers"; -import { time } from "@openzeppelin/test-helpers"; -import { Contract } from "ethers"; - -import type { - Vault, - TestERC20, - Depositors, - Claimers, - USTStrategy, -} from "../typechain"; -import { Claimers__factory, Depositors__factory } from "../typechain"; - -import { ethers } from "hardhat"; -import { expect } from "chai"; - -import { depositParams, claimParams } from "./shared/factories"; -import { - getLastBlockTimestamp, - moveForwardTwoWeeks, - SHARES_MULTIPLIER, - generateNewAddress, - arrayFromTo, -} from "./shared"; - -const { utils, BigNumber } = ethers; -const { parseUnits } = ethers.utils; - -describe("Vault", () => { - let owner: SignerWithAddress; - let alice: SignerWithAddress; - let bob: SignerWithAddress; - let carol: SignerWithAddress; - - let mockEthAnchorRouter: Contract; - let mockExchangeRateFeeder: Contract; - - let underlying: TestERC20; - let aUstToken: Contract; - let vault: Vault; - let depositors: Depositors; - let claimers: Claimers; - let strategy: USTStrategy; - const treasury = generateNewAddress(); - - before(async () => { - [owner, alice, bob, carol] = await ethers.getSigners(); - - let TestERC20 = await ethers.getContractFactory("TestERC20"); - let Vault = await ethers.getContractFactory("Vault"); - let MockStrategy = await ethers.getContractFactory("MockStrategy"); - - underlying = (await TestERC20.deploy(0)) as TestERC20; - aUstToken = await TestERC20.deploy(utils.parseEther("1000000000")); - - const MockEthAnchorRouterFactory = await ethers.getContractFactory( - "MockEthAnchorRouter" - ); - mockEthAnchorRouter = await MockEthAnchorRouterFactory.deploy( - underlying.address, - aUstToken.address - ); - - const MockExchangeRateFeederFactory = await ethers.getContractFactory( - "MockExchangeRateFeeder" - ); - mockExchangeRateFeeder = await MockExchangeRateFeederFactory.deploy(); - - vault = (await Vault.deploy( - underlying.address, - 1209600, - 0, - owner.address - )) as Vault; - - strategy = (await MockStrategy.deploy( - vault.address, - treasury, - mockEthAnchorRouter.address, - mockExchangeRateFeeder.address, - underlying.address, - aUstToken.address, - BigNumber.from("200") - )) as USTStrategy; - - depositors = Depositors__factory.connect(await vault.depositors(), owner); - claimers = Claimers__factory.connect(await vault.claimers(), owner); - }); - - describe("deposit", () => { - it.skip("fails if the yield is negative", async () => { - await addUnderlyingBalance(alice, "2000"); - - const params = depositParams.build({ - amount: parseUnits("1000"), - }); - - await vault.connect(alice).deposit(params); - - await removeUnderlyingFromVault("21"); - - await expect(vault.connect(alice).deposit(params)).to.be.revertedWith( - "Vault: cannot deposit when yield is negative" - ); - }); - - it("works if the negative yield is less than the strategy's estimated fees", async () => { - await vault.setStrategy(strategy.address); - - await addUnderlyingBalance(alice, "2000"); - - const params = depositParams.build({ - amount: parseUnits("1000"), - }); - - await vault.connect(alice).deposit(params); - - await removeUnderlyingFromVault("19"); - - await vault.connect(alice).deposit(params); - }); - - it.skip("works with valid parameters", async () => { - await addUnderlyingBalance(alice, "1000"); - - const params = depositParams.build(); - - await vault.connect(alice).deposit(params); - }); - - it.skip("works with multiple claims", async () => { - await addUnderlyingBalance(alice, "1000"); - - const params = depositParams.build({ - claims: [ - claimParams.percent(50).build(), - claimParams.percent(50).build(), - ], - }); - - await vault.connect(alice).deposit(params); - }); - - it.skip("calculates correct number of shares for first deposit", async () => { - await addUnderlyingBalance(alice, "1000"); - - const amount = parseUnits("1"); - const params = depositParams.build({ amount }); - - await vault.connect(alice).deposit(params); - - expect(await vault.totalShares()).to.equal(amount.mul(SHARES_MULTIPLIER)); - }); - - it.skip("calculates correct number of shares for second deposit of equal size", async () => { - await addUnderlyingBalance(alice, "1000"); - await addUnderlyingBalance(bob, "1000"); - - const amount = parseUnits("1"); - const params = depositParams.build({ amount }); - - // deposit 1 unit - await vault.connect(alice).deposit(params); - - // deposit 1 unit - await vault.connect(bob).deposit(params); - - // total shares must be 2 units - expect(await vault.totalShares()).to.equal( - amount.mul(2).mul(SHARES_MULTIPLIER) - ); - }); - - it.skip("calculates correct number of shares for second deposit of different size", async () => { - await addUnderlyingBalance(alice, "1000"); - await addUnderlyingBalance(bob, "1000"); - const amount = parseUnits("1"); - - // deposit 1 unit - const params1 = depositParams.build({ amount }); - await vault.connect(alice).deposit(params1); - - // deposit 2 unit - const params2 = depositParams.build({ amount: amount.mul(2) }); - await vault.connect(bob).deposit(params2); - - // total shares must be 3 units - expect(await vault.totalShares()).to.equal( - amount.mul(3).mul(SHARES_MULTIPLIER) - ); - }); - - it.skip("fails if pct does not add up to 100%", async () => { - await addUnderlyingBalance(alice, "1000"); - - const params = depositParams.build({ - claims: [ - claimParams.percent(49).build(), - claimParams.percent(50).build(), - ], - }); - - const action = vault.connect(alice).deposit(params); - - await expect(action).to.be.revertedWith( - "Vault: claims don't add up to 100%" - ); - }); - }); - - function addYieldToVault(amount: string) { - return underlying.mint(vault.address, parseUnits(amount)); - } - - async function addUnderlyingBalance( - account: SignerWithAddress, - amount: string - ) { - await underlying.mint(account.address, parseUnits(amount)); - return underlying - .connect(account) - .approve(vault.address, parseUnits(amount)); - } - - function removeUnderlyingFromVault(amount: string) { - return underlying.burn(vault.address, parseUnits(amount)); - } -});