From 8f110300cbd0c04f201b4f20d182d0cc33ffb901 Mon Sep 17 00:00:00 2001 From: Jordi Baylina Date: Thu, 23 Nov 2017 14:59:43 +0100 Subject: [PATCH] Version --- build/ILiquidPledgingPlugin.sol.js | 1 + build/LiquidPledging.sol.js | 17 +- build/LiquidPledgingBase.sol.js | 12 +- build/LiquidPledgingBase_all.sol | 138 +- build/LiquidPledgingMock.sol.js | 22 +- build/LiquidPledgingMock_all.sol | 149 +- build/LiquidPledging_all.sol | 149 +- build/Owned.sol.js | 1 + build/TestSimpleProjectPlugin.sol.js | 22 + build/TestSimpleProjectPluginFactory.sol.js | 25 + build/TestSimpleProjectPluginFactory_all.sol | 1122 +++++ build/TestSimpleProjectPlugin_all.sol | 1101 +++++ build/Vault.sol.js | 9 +- build/Vault_all.sol | 4 +- package-lock.json | 4431 ++++++++++++++++-- 15 files changed, 6724 insertions(+), 479 deletions(-) create mode 100644 build/TestSimpleProjectPlugin.sol.js create mode 100644 build/TestSimpleProjectPluginFactory.sol.js create mode 100644 build/TestSimpleProjectPluginFactory_all.sol create mode 100644 build/TestSimpleProjectPlugin_all.sol diff --git a/build/ILiquidPledgingPlugin.sol.js b/build/ILiquidPledgingPlugin.sol.js index 8c29835..3a9babf 100644 --- a/build/ILiquidPledgingPlugin.sol.js +++ b/build/ILiquidPledgingPlugin.sol.js @@ -2,5 +2,6 @@ exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" exports._sha256 = "0xdca1f6e8e45033d2b165904df14f39c39500c42395eabcc79e156346438f3259" diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js index c91602e..0a79342 100644 --- a/build/LiquidPledging.sol.js +++ b/build/LiquidPledging.sol.js @@ -2,11 +2,18 @@ exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" -exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200434483398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140f9806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061233595505050505050565b6102726001604060020a0360043581169060243516612380565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124ea915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125d5915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612642915050565b34156108d657600080fd5b6102726001604060020a036004351660243561272d565b34156108f857600080fd5b61090c6001604060020a0360043516612841565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a0695505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a71915050565b3415610b5857600080fd5b610b60612b5c565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d99565b600080610b9387612b6b565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612baf565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612baf565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b6b565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612bf5565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612cbb565b9050610e99848285612fab565b50505050565b600080600080600080600080610eb489612b6b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b6b565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612baf565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613074565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612cbb565b9050611217858286612fab565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b6b565b94506112ce86612baf565b93506112d989612baf565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b1415611366576113618888886130bb565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130eb565b6001845460ff16600281111561139b57fe5b14156113c0576113b388888760020180549050613314565b9750611361888888613419565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a613540565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e88888760020180549050613314565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b90525087613540565b6001604060020a0390811691508114156116c8576113b3888860018589600201805490500303613314565b818111156116e7576113b3888860018589600201805490500303613314565b8181116113c25761154e888860018489600201805490500303613314565b6002845460ff16600281111561171757fe5b14156113c057611734888860018589600201805490500303613314565b97506113c28888886135a6565b505050505050505050565b60008060008061175b85612b6b565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd6138b5565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612cbb565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612cbb565b90506118cd85828560000154612fab565b8094506118d985612b6b565b92505b6118e585612bf5565b90506001604060020a03808216908616146119095761190985828560000154612fab565b8093505b505050919050565b6001805490818082016119288382613dab565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613ddc565b50606082015181600201908051611a08929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612baf565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138b9565b10611db057600080fd5b60018054925082808201611dc48382613dab565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613ddc565b50606082015181600201908051611ea5929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612baf565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613dab565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613ddc565b50606082015181600201908051612124929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b60008060006122978561174c565b94506122a285612b6b565b6003810154909350608060020a90046001604060020a031615156122c557600080fd5b60018301546122dc906001604060020a0316612baf565b9150612303826101006040519081016040528154909190829060ff166002811115610f8357fe5b600383015461232190608060020a90046001604060020a0316612bf5565b905061232e858286612fab565b5050505050565b600080805b8351821015612379576001604060020a0384838151811061235757fe5b9060200190602002015116905061236d8161174c565b5060019091019061233a565b5050919050565b60008080806001604060020a03861615156123c6576123c36020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b6123cf86612baf565b93506123f6846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff16600281111561240857fe5b1461241257600080fd5b3492506000831161242257600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561245557600080fd5b6124848660006040518059106124685750595b9080825280602002602001820160405250600080600080612cbb565b915061248f82612b6b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124e2868385886112a7565b505050505050565b60006124f586612baf565b90506001815460ff16600281111561250957fe5b1461251357600080fd5b805433600160a060020a03908116610100909204161461253257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612565929160200190613ddc565b506002810183805161257b929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124e2576001604060020a038584815181106125f757fe5b90602001906020020151169150604060020a85848151811061261557fe5b9060200190602002015181151561262857fe5b049050612637868383876112a7565b6001909201916125da565b600061264d86612baf565b90506000815460ff16600281111561266157fe5b1461266b57600080fd5b805433600160a060020a03908116610100909204161461268a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126bd929160200190613ddc565b50600281018380516126d3929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461274d57600080fd5b61275684612b6b565b91506001600383015460c060020a900460ff16600281111561277457fe5b1461277e57600080fd5b6001820154600283018054612836926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561281157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127ce5790505b505050506003860154600091508190608060020a90046001604060020a031681612cbb565b9050610e8c8161174c565b60008061284c613d99565b612854613d99565b60008060008060006128658a612baf565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f8201819004810201604051908101604052809291908181526020018280546001816001161561010002031660029004801561291b5780601f106128f05761010080835404028352916020019161291b565b820191906000526020600020905b8154815290600101906020018083116128fe57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129ba5780601f1061298f576101008083540402835291602001916129ba565b820191906000526020600020905b81548152906001019060200180831161299d57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a03848481518110612a2857fe5b90602001906020020151169150604060020a848481518110612a4657fe5b90602001906020020151811515612a5957fe5b049050612a66828261272d565b600190920191612a0b565b6000612a7c86612baf565b90506002815460ff166002811115612a9057fe5b14612a9a57600080fd5b805433600160a060020a039081166101009092041614612ab957600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612aec929160200190613ddc565b5060028101838051612b02929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b8357600080fd5b600080546001604060020a038416908110612b9a57fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bc957600080fd5b600180546001604060020a038416908110612be057fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c125760009250612379565b612c1b84612b6b565b6001810154909250612c35906001604060020a0316612baf565b90506000815460ff166002811115612c4957fe5b1415612c5757839250612379565b6002815460ff166002811115612c6957fe5b14612c7057fe5b6001820154612c87906001604060020a0316610ca1565b1515612c9557839250612379565b6003820154612cb390608060020a90046001604060020a0316612bf5565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d08578082015183820152602001612cf0565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d7557fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dde57809250612f9f565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e1c8382613e5a565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e8d57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ed8929160200190613e86565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f9357fe5b02179055505050508092505b50509695505050505050565b6000806000612fbd6001878787613923565b9250846001604060020a0316866001604060020a03161415612fde576124e2565b821515612fea576124e2565b612ff386612b6b565b9150612ffe85612b6b565b82549091508390101561301057600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a361306b6000878786613923565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130ad57508060e00151600160a060020a031633600160a060020a0316145b15156130b857600080fd5b50565b6000610e8c8260006040518059106124685750599080825280602002602001820160405250600080600080612cbb565b60008060006130f986612b6b565b9250601461322d8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131845790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b600281111561322557fe5b905250613949565b1061323757600080fd5b61324084610ca1565b1561324a57600080fd5b60018301546002840180546132d7926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612cbb565b91506133078460006040518059106118a05750599080825280602002602001820160405250600080866000612cbb565b90506124e2868287612fab565b60008061331f613d99565b60008061332b88612b6b565b60028101549094508690036040518059106133435750595b90808252806020026020018201604052509250600091505b60028401548690038210156133d1576002840180548390811061337a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133af57fe5b6001604060020a0390921660209283029091019091015260019091019061335b565b60018401546003850154613401916001604060020a039081169186916000918291608060020a9091041681612cbb565b905061340e888289612fab565b979650505050505050565b6000613423613d99565b60008061342f87612b6b565b60028101549094506014901061344457600080fd5b60028401546001016040518059106134595750595b90808252806020026020018201604052509250600091505b60028401548210156134e4576002840180548390811061348d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134c257fe5b6001604060020a03909216602092830290910190910152600190910190613471565b600284015485908490815181106134f757fe5b6001604060020a039283166020918202909201015260018501546003860154613533929182169186916000918291608060020a90041681612cbb565b905061306b878288612fab565b6000805b83604001515181101561359457826001604060020a03168460400151828151811061356b57fe5b906020019060200201516001604060020a0316141561358c5780915061359f565b600101613544565b6001604060020a0391505b5092915050565b6000806135b285612b6b565b915060146136a88360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757600091825260209182902080546001604060020a031684529082028301929091600891018084116131845750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b106136b257600080fd5b6136bb83610ca1565b156136c557600080fd5b6001820154600283018054612321926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561375857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137155790505b50505050508561388e8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561382857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137e55790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561387b57fe5b600281111561388657fe5b905250613a74565b6138966138b5565b6003880154910190608060020a90046001604060020a03166000612cbb565b4290565b6000806002835160028111156138cb57fe5b146138d257fe5b8260a001516001604060020a031615156138ef5760019150610d4b565b6138fc8360a00151612baf565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139318585808685613afe565b90506139408584868685613afe565b95945050505050565b6000808260a001516001604060020a031615156139695760009150610d4b565b6139768360a00151612b6b565b9050613a6a8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757600091825260209182902080546001604060020a031684529082028301929091600891018084116131845750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b6001019392505050565b6000806000613a868460200151612baf565b60038101546001604060020a031693509150600090505b83604001515181101561237957613acc84604001518281518110613abd57fe5b90602001906020020151612baf565b60038101549092506001604060020a031683901115613af65760038201546001604060020a031692505b600101613a9d565b600080600080866001604060020a0316886001604060020a031614613b2557610100613b28565b60005b61ffff169250849350613b3a88612b6b565b6001810154909250613b5a908a906001604060020a031689898789613c1c565b9350600090505b60028201546001604060020a0382161015613bd557613bcb8983600201836001604060020a0316815481101515613b9457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c1c565b9350600101613b61565b600382015460006001604060020a039091161115613c10576003820154613c0d908a906001604060020a0316898960ff880189613c1c565b93505b50505095945050505050565b80600080613c2988612baf565b6004810154909150600160a060020a031615801590613c485750600083115b15612f9f578815613d03576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cd257600080fd5b6102c65a03f11515613ce357600080fd5b505050604051805192505082821115613cfb57600080fd5b819250612f9f565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d7957600080fd5b6102c65a03f11515613d8a57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dd757600502816005028360005260206000209182019101613dd79190613f3a565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e1d57805160ff1916838001178555613e4a565b82800160010185558215613e4a579182015b82811115613e4a578251825591602001919060010190613e2f565b50613e56929150613fc5565b5090565b815481835581811511613dd757600402816004028360005260206000209182019101613dd79190613fdf565b82805482825590600052602060002090600301600490048101928215613f2e5791602002820160005b83821115613ef957835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613eaf565b8015613f2c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ef9565b505b50613e5692915061403f565b610d5991905b80821115613e5657805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f736001830182614064565b613f81600283016000614064565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f40565b610d5991905b80821115613e565760008155600101613fcb565b610d5991905b80821115613e5657600080825560018201805467ffffffffffffffff1916905561401260028301826140a8565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fe5565b610d5991905b80821115613e5657805467ffffffffffffffff19168155600101614045565b50805460018160011615610100020316600290046000825580601f1061408a57506130b8565b601f0160209004906000526020600020908101906130b89190613fc5565b5080546000825560030160049004906000526020600020908101906130b89190613fc55600a165627a7a723058204d4b9a70b100a8aeb242b9259b86804bc77b7d1932bb1a401fd8dd6901da34300029" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a7230582048208e1b0e29be87e62a0a6ddee714204159b7252927614aeff513586ef533890029" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620048968339810160405280805160008054600160a060020a03191633600160a060020a0316179055915081905060016200006060038262000098565b50600162000070600282620000cc565b5060048054600160a060020a031916600160a060020a03929092169190911790555062000264565b815481835581811511620000c757600502816005028360005260206000209182019101620000c79190620000fb565b505050565b815481835581811511620000c757600402816004028360005260206000209182019101620000c791906200016f565b6200016c91905b8082111562000168578054600160a860020a031916815560006200012a6001830182620001da565b6200013a600283016000620001da565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000102565b5090565b90565b6200016c91905b808211156200016857600080825560018201805467ffffffffffffffff19169055620001a6600283018262000225565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000176565b50805460018160011615610100020316600290046000825580601f1062000202575062000222565b601f01602090049060005260206000209081019062000222919062000247565b50565b5080546000825560030160049004906000526020600020908101906200022291905b6200016c91905b808211156200016857600081556001016200024e565b61462280620002746000396000f3006060604052600436106101be5763ffffffff60e060020a60003504166314e7b1dc81146101c35780632101a6ad1461027c57806329026614146102af5780632a8ec8cc146102c75780632af4c31e146102ec5780632ee888081461030b578063387402911461032d5780633f657a461461034557806343387983146103c357806347c5ef43146103e55780634eafbcd51461041457806350f8a8031461043357806352dc7dcc1461046e5780635503d9ba1461051a57806357adafb61461052d5780635afe68d01461057c578063666a342714610592578063710bf322146105b157806372116e92146105d0578063796d56541461068c57806379ba5097146106ab5780637c2d86f7146106be5780637f61fa93146106d157806381ea44081461077d5780638da5cb5b1461079c5780639398f5a2146107cb578063af9f45631461081a578063bde60ac91461083c578063cc19ecf714610856578063ce17273c14610911578063d091b55014610960578063d639cd7314610973578063db7c2314146109db578063e9c211e214610a96578063eba8ba0614610ab8578063ef3766e414610c0e578063f6b24b1c14610c5d578063fbfa77cf14610d18575b600080fd5b34156101ce57600080fd5b6101e56001604060020a0360043516602435610d2b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561023f578082015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561028757600080fd5b61029b6001604060020a0360043516610e50565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c5600435610f00565b005b34156102d257600080fd5b6102da610f36565b60405190815260200160405180910390f35b34156102f757600080fd5b6102c5600160a060020a0360043516610f41565b341561031657600080fd5b6102c56001604060020a0360043516602435610fd5565b341561033857600080fd5b6102c560043515156110f2565b341561035057600080fd5b6103646001604060020a0360043516611120565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103a957fe5b60ff16815260200197505050505050505060405180910390f35b34156103ce57600080fd5b6102c56001604060020a0360043516602435611185565b34156103f057600080fd5b6102c56001604060020a036004358116906024358116906044359060643516611528565b341561041f57600080fd5b61029b600160a060020a03600435166119cd565b341561043e57600080fd5b6104526001604060020a0360043516611a1b565b6040516001604060020a03909116815260200160405180910390f35b341561047957600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611be4915050565b341561052557600080fd5b6102da611ddd565b341561053857600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611de795505050505050565b341561058757600080fd5b6102c5600435611e52565b341561059d57600080fd5b6102c5600160a060020a0360043516611e85565b34156105bc57600080fd5b6102c5600160a060020a0360043516611f02565b34156105db57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611f739050565b341561069757600080fd5b6102c56001604060020a03600435166123a6565b34156106b657600080fd5b6102c5612434565b34156106c957600080fd5b61029b6124b4565b34156106dc57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124bd915050565b341561078857600080fd5b6102da600160a060020a03600435166126b5565b34156107a757600080fd5b6107af612744565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102c5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061275395505050505050565b341561082557600080fd5b6102c56001604060020a03600435166024356127be565b6102c56001604060020a036004358116906024351661286a565b341561086157600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506129d4915050565b341561091c57600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612abf95505050505050565b341561096b57600080fd5b6107af612af6565b341561097e57600080fd5b6102c5600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b05915050565b34156109e657600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612b72915050565b3415610aa157600080fd5b6102c56001604060020a0360043516602435612c5d565b3415610ac357600080fd5b610ad76001604060020a0360043516612d71565b60405180896002811115610ae757fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b68578082015183820152602001610b50565b50505050905090810190601f168015610b955780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610bcb578082015183820152602001610bb3565b50505050905090810190601f168015610bf85780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c1957600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f3695505050505050565b3415610c6857600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612fa1915050565b3415610d2357600080fd5b6107af61308c565b600080610d366142cf565b600080610d428761309b565b91508160020160018703815481101515610d5857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610d8c856130e1565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e405780601f10610e1557610100808354040283529160200191610e40565b820191906000526020600020905b815481529060010190602001808311610e2357829003601f168201915b5050505050925050509250925092565b600080610e5c836130e1565b90506000815460ff166002811115610e7057fe5b1415610e7f5760009150610efa565b6002815460ff166002811115610e9157fe5b14610e9857fe5b6003810154608060020a900460ff1615610eb55760019150610efa565b6003810154604060020a90046001604060020a03161515610ed95760009150610efa565b6003810154610ef790604060020a90046001604060020a0316610e50565b91505b50919050565b60005433600160a060020a03908116911614610f1b57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f5d57600080fd5b600160a060020a0382161515610f7257600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a03908116911614610ff557600080fd5b610ffe8461309b565b91506001600383015460c060020a900460ff16600281111561101c57fe5b1461102657600080fd5b60018201546002830180546110df926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110765790505b505050506003860154600091508190608060020a90046001604060020a03166002613127565b90506110ec848285613419565b50505050565b60005433600160a060020a0390811691161461110d57600080fd5b6007805460ff1916911515919091179055565b6000806000806000806000806111358961309b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b600080600061119385611a1b565b945061119e8561309b565b92506000600384015460c060020a900460ff1660028111156111bc57fe5b146111c657600080fd5b60018301546111dd906001604060020a03166130e1565b91506113d2826101006040519081016040528154909190829060ff16600281111561120457fe5b600281111561120f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112db5780601f106112b0576101008083540402835291602001916112db565b820191906000526020600020905b8154815290600101906020018083116112be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526134e2565b600183015460028401805461148b926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561146557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114225790505b505050506003870154600091508190608060020a90046001604060020a03166001613127565b9050611498858286613419565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b5050505050505050565b600080600080600061153988611a1b565b97506115448861309b565b945061154f866130e1565b935061155a896130e1565b9250611581836101006040519081016040528154909190829060ff16600281111561120457fe5b6000600386015460c060020a900460ff16600281111561159d57fe5b146115a757600080fd5b60018501546001604060020a038a811691161415611648576000845460ff1660028111156115d157fe5b14156115e7576115e2888888613529565b611643565b6002845460ff1660028111156115f957fe5b141561160a576115e2888888613559565b6001845460ff16600281111561161c57fe5b14156116415761163488888760020180549050613782565b97506115e2888888613887565bfe5b6119c2565b6117798560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116cf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561176557fe5b600281111561177057fe5b9052508a6139ae565b6001604060020a0390811692508214611641576000845460ff16600281111561179e57fe5b14156117d55760018501546001604060020a038781169116146117bd57fe5b6117cf88888760020180549050613782565b506119c2565b6001845460ff1660028111156117e757fe5b14156119865761191e8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118b757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118745790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561190a57fe5b600281111561191557fe5b905250876139ae565b6001604060020a03908116915081141561194957611634888860018589600201805490500303613782565b8181111561196857611634888860018589600201805490500303613782565b818111611643576117cf888860018489600201805490500303613782565b6002845460ff16600281111561199857fe5b1415611641576119b5888860018589600201805490500303613782565b9750611643888888613a14565b505050505050505050565b600754600090819060ff1615806119eb5750600160a060020a038316155b156119f95760019150610efa565b611a02836126b5565b60009081526006602052604090205460ff169392505050565b600080600080611a2a8561309b565b92506000600384015460c060020a900460ff166002811115611a4857fe5b14611a5557849350611bdc565b600383015460006001604060020a03909116118015611a8e57506003830154604060020a90046001604060020a0316611a8c613d23565b115b15611bab576001830154600284018054611b4b926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611ae35790505b505050506003870154600091508190608060020a90046001604060020a031681613127565b6003840154909250611b8b906001604060020a03166000604051805910611b6f5750595b9080825280602002602001820160405250600080866000613127565b9050611b9c85828560000154613419565b809450611ba88561309b565b92505b611bb485613d27565b90506001604060020a0380821690861614611bd857611bd885828560000154613419565b8093505b505050919050565b6000611bef826119cd565b1515611bfa57600080fd5b5060038054908160018101611c0f83826142e1565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c8e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cd4929160200190614312565b50606082015181600201908051611cef929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b83518310156110ec576001604060020a03848481518110611e0957fe5b90602001906020020151169150604060020a848481518110611e2757fe5b90602001906020020151811515611e3a57fe5b049050611e478282611185565b600190920191611dec565b60005433600160a060020a03908116911614611e6d57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611ea057600080fd5b610dac600160a060020a03821614611eb757600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f1d57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611f7f836119cd565b1515611f8a57600080fd5b6001604060020a038516156121bf57611fa2856130e1565b90506002815460ff166002811115611fb657fe5b14611fc057600080fd5b60146121b5826101006040519081016040528154909190829060ff166002811115611fe757fe5b6002811115611ff257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121605780601f1061213557610100808354040283529160200191612160565b820191906000526020600020905b81548152906001019060200180831161214357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613def565b106121bf57600080fd5b60038054925082600181016121d483826142e1565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561225457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161229a929160200190614312565b506060820151816002019080516122b5929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123b1826130e1565b90506123d8816101006040519081016040528154909190829060ff16600281111561120457fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461245257600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006124c8826119cd565b15156124d357600080fd5b50600380549081600181016124e883826142e1565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ad929160200190614312565b506060820151816002019080516125c8929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126bf6142cf565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b602083106127105780518252601f1990920191602091820191016126f1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b83518310156110ec576001604060020a0384848151811061277557fe5b90602001906020020151169150604060020a84848151811061279357fe5b906020019060200201518115156127a657fe5b0490506127b38282610fd5565b600190920191612758565b60008060006127cc85611a1b565b94506127d78561309b565b6003810154909350608060020a90046001604060020a031615156127fa57600080fd5b6001830154612811906001604060020a03166130e1565b9150612838826101006040519081016040528154909190829060ff16600281111561120457fe5b600383015461285690608060020a90046001604060020a0316613d27565b9050612863858286613419565b5050505050565b60008080806001604060020a03861615156128b0576128ad6020604051908101604052806000815250602060405190810160405260008082526203f480906124bd565b95505b6128b9866130e1565b93506128e0846101006040519081016040528154909190829060ff16600281111561120457fe5b6000845460ff1660028111156128f257fe5b146128fc57600080fd5b3492506000831161290c57600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561293f57600080fd5b61296e8660006040518059106129525750595b9080825280602002602001820160405250600080600080613127565b91506129798261309b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36129cc86838588611528565b505050505050565b60006129df866130e1565b90506001815460ff1660028111156129f357fe5b146129fd57600080fd5b805433600160a060020a039081166101009092041614612a1c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a4f929160200190614312565b5060028101838051612a65929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612af257612ae9828281518110612ada57fe5b90602001906020020151611a1b565b50600101612ac2565b5050565b600154600160a060020a031681565b600080805b84518310156129cc576001604060020a03858481518110612b2757fe5b90602001906020020151169150604060020a858481518110612b4557fe5b90602001906020020151811515612b5857fe5b049050612b6786838387611528565b600190920191612b0a565b6000612b7d866130e1565b90506000815460ff166002811115612b9157fe5b14612b9b57600080fd5b805433600160a060020a039081166101009092041614612bba57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612bed929160200190614312565b5060028101838051612c03929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612c7d57600080fd5b612c868461309b565b91506001600383015460c060020a900460ff166002811115612ca457fe5b14612cae57600080fd5b6001820154600283018054612d66926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d4157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612cfe5790505b505050506003860154600091508190608060020a90046001604060020a031681613127565b90506110df81611a1b565b600080612d7c6142cf565b612d846142cf565b6000806000806000612d958a6130e1565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e4b5780601f10612e2057610100808354040283529160200191612e4b565b820191906000526020600020905b815481529060010190602001808311612e2e57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eea5780601f10612ebf57610100808354040283529160200191612eea565b820191906000526020600020905b815481529060010190602001808311612ecd57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b83518310156110ec576001604060020a03848481518110612f5857fe5b90602001906020020151169150604060020a848481518110612f7657fe5b90602001906020020151811515612f8957fe5b049050612f968282612c5d565b600190920191612f3b565b6000612fac866130e1565b90506002815460ff166002811115612fc057fe5b14612fca57600080fd5b805433600160a060020a039081166101009092041614612fe957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161301c929160200190614312565b5060028101838051613032929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130b557600080fd5b600280546001604060020a0384169081106130cc57fe5b90600052602060002090600402019050919050565b6003546000906001604060020a038316106130fb57600080fd5b600380546001604060020a03841690811061311257fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561317457808201518382015260200161315c565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156131e157fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561324a5780925061340d565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161328a8382614390565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156132fb57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556040820151816002019080516133469291602001906143bc565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561340157fe5b02179055505050508092505b50509695505050505050565b600080600061342b6001878787613e59565b9250846001604060020a0316866001604060020a0316141561344c576129cc565b821515613458576129cc565b6134618661309b565b915061346c8561309b565b82549091508390101561347e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36134d96000878786613e59565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061351b57508060e00151600160a060020a031633600160a060020a0316145b151561352657600080fd5b50565b60006110df8260006040518059106129525750599080825280602002602001820160405250600080600080613127565b60008060006135678661309b565b9250601461369b8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116135f25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b600281111561369357fe5b905250613e7f565b106136a557600080fd5b6136ae84610e50565b156136b857600080fd5b6001830154600284018054613745926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611ae35750505050600388015460009250829150608060020a90046001604060020a031681613127565b9150613775846000604051805910611b6f5750599080825280602002602001820160405250600080866000613127565b90506129cc868287613419565b60008061378d6142cf565b6000806137998861309b565b60028101549094508690036040518059106137b15750595b90808252806020026020018201604052509250600091505b600284015486900382101561383f57600284018054839081106137e857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061381d57fe5b6001604060020a039092166020928302909101909101526001909101906137c9565b6001840154600385015461386f916001604060020a039081169186916000918291608060020a9091041681613127565b905061387c888289613419565b979650505050505050565b60006138916142cf565b60008061389d8761309b565b6002810154909450601490106138b257600080fd5b60028401546001016040518059106138c75750595b90808252806020026020018201604052509250600091505b600284015482101561395257600284018054839081106138fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061393057fe5b6001604060020a039092166020928302909101909101526001909101906138df565b6002840154859084908151811061396557fe5b6001604060020a0392831660209182029092010152600185015460038601546139a1929182169186916000918291608060020a90041681613127565b90506134d9878288613419565b6000805b836040015151811015613a0257826001604060020a0316846040015182815181106139d957fe5b906020019060200201516001604060020a031614156139fa57809150613a0d565b6001016139b2565b6001604060020a0391505b5092915050565b600080613a208561309b565b91506014613b168360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b10613b2057600080fd5b613b2983610e50565b15613b3357600080fd5b6001820154600283018054612856926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b505050505085613cfc8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613c9657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c535790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613ce957fe5b6002811115613cf457fe5b905250613faa565b613d04613d23565b6003880154910190608060020a90046001604060020a03166000613127565b4290565b600080806001604060020a0384161515613d445760009250613de8565b613d4d8461309b565b6001810154909250613d67906001604060020a03166130e1565b90506000815460ff166002811115613d7b57fe5b1415613d8957839250613de8565b6002815460ff166002811115613d9b57fe5b14613da257fe5b6001820154613db9906001604060020a0316610e50565b1515613dc757839250613de8565b6003820154613de590608060020a90046001604060020a0316613d27565b92505b5050919050565b600080600283516002811115613e0157fe5b14613e0857fe5b8260a001516001604060020a03161515613e255760019150610efa565b613e328360a001516130e1565b9050610ef7816101006040519081016040528154909190829060ff166002811115611fe757fe5b80613e678585808685614034565b9050613e768584868685614034565b95945050505050565b6000808260a001516001604060020a03161515613e9f5760009150610efa565b613eac8360a0015161309b565b9050613fa08160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b6001019392505050565b6000806000613fbc84602001516130e1565b60038101546001604060020a031693509150600090505b836040015151811015613de85761400284604001518281518110613ff357fe5b906020019060200201516130e1565b60038101549092506001604060020a03168390111561402c5760038201546001604060020a031692505b600101613fd3565b600080600080866001604060020a0316886001604060020a03161461405b5761010061405e565b60005b61ffff1692508493506140708861309b565b6001810154909250614090908a906001604060020a031689898789614152565b9350600090505b60028201546001604060020a038216101561410b576141018983600201836001604060020a03168154811015156140ca57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189614152565b9350600101614097565b600382015460006001604060020a039091161115614146576003820154614143908a906001604060020a0316898960ff880189614152565b93505b50505095945050505050565b8060008061415f886130e1565b6004810154909150600160a060020a03161580159061417e5750600083115b1561340d578815614239576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561420857600080fd5b6102c65a03f1151561421957600080fd5b50505060405180519250508282111561423157600080fd5b81925061340d565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142af57600080fd5b6102c65a03f115156142c057600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b81548183558181151161430d5760050281600502836000526020600020918201910161430d9190614470565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061435357805160ff1916838001178555614380565b82800160010185558215614380579182015b82811115614380578251825591602001919060010190614365565b5061438c9291506144ee565b5090565b81548183558181151161430d5760040281600402836000526020600020918201910161430d9190614508565b828054828255906000526020600020906003016004900481019282156144645791602002820160005b8382111561442f57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026143e5565b80156144625782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261442f565b505b5061438c929150614568565b610f3e91905b8082111561438c57805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144a9600183018261458d565b6144b760028301600061458d565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501614476565b610f3e91905b8082111561438c57600081556001016144f4565b610f3e91905b8082111561438c57600080825560018201805467ffffffffffffffff1916905561453b60028301826145d1565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161450e565b610f3e91905b8082111561438c57805467ffffffffffffffff1916815560010161456e565b50805460018160011615610100020316600290046000825580601f106145b35750613526565b601f01602090049060005260206000209081019061352691906144ee565b50805460008255600301600490049060005260206000209081019061352691906144ee5600a165627a7a723058201d04dd9ec5f77e3e5415c26eb9862448fec271458e89c775b623100eb12791290029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a60003504166314e7b1dc81146101c35780632101a6ad1461027c57806329026614146102af5780632a8ec8cc146102c75780632af4c31e146102ec5780632ee888081461030b578063387402911461032d5780633f657a461461034557806343387983146103c357806347c5ef43146103e55780634eafbcd51461041457806350f8a8031461043357806352dc7dcc1461046e5780635503d9ba1461051a57806357adafb61461052d5780635afe68d01461057c578063666a342714610592578063710bf322146105b157806372116e92146105d0578063796d56541461068c57806379ba5097146106ab5780637c2d86f7146106be5780637f61fa93146106d157806381ea44081461077d5780638da5cb5b1461079c5780639398f5a2146107cb578063af9f45631461081a578063bde60ac91461083c578063cc19ecf714610856578063ce17273c14610911578063d091b55014610960578063d639cd7314610973578063db7c2314146109db578063e9c211e214610a96578063eba8ba0614610ab8578063ef3766e414610c0e578063f6b24b1c14610c5d578063fbfa77cf14610d18575b600080fd5b34156101ce57600080fd5b6101e56001604060020a0360043516602435610d2b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561023f578082015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561028757600080fd5b61029b6001604060020a0360043516610e50565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c5600435610f00565b005b34156102d257600080fd5b6102da610f36565b60405190815260200160405180910390f35b34156102f757600080fd5b6102c5600160a060020a0360043516610f41565b341561031657600080fd5b6102c56001604060020a0360043516602435610fd5565b341561033857600080fd5b6102c560043515156110f2565b341561035057600080fd5b6103646001604060020a0360043516611120565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103a957fe5b60ff16815260200197505050505050505060405180910390f35b34156103ce57600080fd5b6102c56001604060020a0360043516602435611185565b34156103f057600080fd5b6102c56001604060020a036004358116906024358116906044359060643516611528565b341561041f57600080fd5b61029b600160a060020a03600435166119cd565b341561043e57600080fd5b6104526001604060020a0360043516611a1b565b6040516001604060020a03909116815260200160405180910390f35b341561047957600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611be4915050565b341561052557600080fd5b6102da611ddd565b341561053857600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611de795505050505050565b341561058757600080fd5b6102c5600435611e52565b341561059d57600080fd5b6102c5600160a060020a0360043516611e85565b34156105bc57600080fd5b6102c5600160a060020a0360043516611f02565b34156105db57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611f739050565b341561069757600080fd5b6102c56001604060020a03600435166123a6565b34156106b657600080fd5b6102c5612434565b34156106c957600080fd5b61029b6124b4565b34156106dc57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124bd915050565b341561078857600080fd5b6102da600160a060020a03600435166126b5565b34156107a757600080fd5b6107af612744565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102c5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061275395505050505050565b341561082557600080fd5b6102c56001604060020a03600435166024356127be565b6102c56001604060020a036004358116906024351661286a565b341561086157600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506129d4915050565b341561091c57600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612abf95505050505050565b341561096b57600080fd5b6107af612af6565b341561097e57600080fd5b6102c5600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b05915050565b34156109e657600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612b72915050565b3415610aa157600080fd5b6102c56001604060020a0360043516602435612c5d565b3415610ac357600080fd5b610ad76001604060020a0360043516612d71565b60405180896002811115610ae757fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b68578082015183820152602001610b50565b50505050905090810190601f168015610b955780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610bcb578082015183820152602001610bb3565b50505050905090810190601f168015610bf85780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c1957600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f3695505050505050565b3415610c6857600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612fa1915050565b3415610d2357600080fd5b6107af61308c565b600080610d366142cf565b600080610d428761309b565b91508160020160018703815481101515610d5857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610d8c856130e1565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e405780601f10610e1557610100808354040283529160200191610e40565b820191906000526020600020905b815481529060010190602001808311610e2357829003601f168201915b5050505050925050509250925092565b600080610e5c836130e1565b90506000815460ff166002811115610e7057fe5b1415610e7f5760009150610efa565b6002815460ff166002811115610e9157fe5b14610e9857fe5b6003810154608060020a900460ff1615610eb55760019150610efa565b6003810154604060020a90046001604060020a03161515610ed95760009150610efa565b6003810154610ef790604060020a90046001604060020a0316610e50565b91505b50919050565b60005433600160a060020a03908116911614610f1b57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f5d57600080fd5b600160a060020a0382161515610f7257600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a03908116911614610ff557600080fd5b610ffe8461309b565b91506001600383015460c060020a900460ff16600281111561101c57fe5b1461102657600080fd5b60018201546002830180546110df926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110765790505b505050506003860154600091508190608060020a90046001604060020a03166002613127565b90506110ec848285613419565b50505050565b60005433600160a060020a0390811691161461110d57600080fd5b6007805460ff1916911515919091179055565b6000806000806000806000806111358961309b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b600080600061119385611a1b565b945061119e8561309b565b92506000600384015460c060020a900460ff1660028111156111bc57fe5b146111c657600080fd5b60018301546111dd906001604060020a03166130e1565b91506113d2826101006040519081016040528154909190829060ff16600281111561120457fe5b600281111561120f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112db5780601f106112b0576101008083540402835291602001916112db565b820191906000526020600020905b8154815290600101906020018083116112be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526134e2565b600183015460028401805461148b926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561146557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114225790505b505050506003870154600091508190608060020a90046001604060020a03166001613127565b9050611498858286613419565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b5050505050505050565b600080600080600061153988611a1b565b97506115448861309b565b945061154f866130e1565b935061155a896130e1565b9250611581836101006040519081016040528154909190829060ff16600281111561120457fe5b6000600386015460c060020a900460ff16600281111561159d57fe5b146115a757600080fd5b60018501546001604060020a038a811691161415611648576000845460ff1660028111156115d157fe5b14156115e7576115e2888888613529565b611643565b6002845460ff1660028111156115f957fe5b141561160a576115e2888888613559565b6001845460ff16600281111561161c57fe5b14156116415761163488888760020180549050613782565b97506115e2888888613887565bfe5b6119c2565b6117798560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116cf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561176557fe5b600281111561177057fe5b9052508a6139ae565b6001604060020a0390811692508214611641576000845460ff16600281111561179e57fe5b14156117d55760018501546001604060020a038781169116146117bd57fe5b6117cf88888760020180549050613782565b506119c2565b6001845460ff1660028111156117e757fe5b14156119865761191e8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118b757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118745790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561190a57fe5b600281111561191557fe5b905250876139ae565b6001604060020a03908116915081141561194957611634888860018589600201805490500303613782565b8181111561196857611634888860018589600201805490500303613782565b818111611643576117cf888860018489600201805490500303613782565b6002845460ff16600281111561199857fe5b1415611641576119b5888860018589600201805490500303613782565b9750611643888888613a14565b505050505050505050565b600754600090819060ff1615806119eb5750600160a060020a038316155b156119f95760019150610efa565b611a02836126b5565b60009081526006602052604090205460ff169392505050565b600080600080611a2a8561309b565b92506000600384015460c060020a900460ff166002811115611a4857fe5b14611a5557849350611bdc565b600383015460006001604060020a03909116118015611a8e57506003830154604060020a90046001604060020a0316611a8c613d23565b115b15611bab576001830154600284018054611b4b926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611ae35790505b505050506003870154600091508190608060020a90046001604060020a031681613127565b6003840154909250611b8b906001604060020a03166000604051805910611b6f5750595b9080825280602002602001820160405250600080866000613127565b9050611b9c85828560000154613419565b809450611ba88561309b565b92505b611bb485613d27565b90506001604060020a0380821690861614611bd857611bd885828560000154613419565b8093505b505050919050565b6000611bef826119cd565b1515611bfa57600080fd5b5060038054908160018101611c0f83826142e1565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c8e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cd4929160200190614312565b50606082015181600201908051611cef929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b83518310156110ec576001604060020a03848481518110611e0957fe5b90602001906020020151169150604060020a848481518110611e2757fe5b90602001906020020151811515611e3a57fe5b049050611e478282611185565b600190920191611dec565b60005433600160a060020a03908116911614611e6d57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611ea057600080fd5b610dac600160a060020a03821614611eb757600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f1d57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611f7f836119cd565b1515611f8a57600080fd5b6001604060020a038516156121bf57611fa2856130e1565b90506002815460ff166002811115611fb657fe5b14611fc057600080fd5b60146121b5826101006040519081016040528154909190829060ff166002811115611fe757fe5b6002811115611ff257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121605780601f1061213557610100808354040283529160200191612160565b820191906000526020600020905b81548152906001019060200180831161214357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613def565b106121bf57600080fd5b60038054925082600181016121d483826142e1565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561225457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161229a929160200190614312565b506060820151816002019080516122b5929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123b1826130e1565b90506123d8816101006040519081016040528154909190829060ff16600281111561120457fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461245257600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006124c8826119cd565b15156124d357600080fd5b50600380549081600181016124e883826142e1565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ad929160200190614312565b506060820151816002019080516125c8929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126bf6142cf565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b602083106127105780518252601f1990920191602091820191016126f1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b83518310156110ec576001604060020a0384848151811061277557fe5b90602001906020020151169150604060020a84848151811061279357fe5b906020019060200201518115156127a657fe5b0490506127b38282610fd5565b600190920191612758565b60008060006127cc85611a1b565b94506127d78561309b565b6003810154909350608060020a90046001604060020a031615156127fa57600080fd5b6001830154612811906001604060020a03166130e1565b9150612838826101006040519081016040528154909190829060ff16600281111561120457fe5b600383015461285690608060020a90046001604060020a0316613d27565b9050612863858286613419565b5050505050565b60008080806001604060020a03861615156128b0576128ad6020604051908101604052806000815250602060405190810160405260008082526203f480906124bd565b95505b6128b9866130e1565b93506128e0846101006040519081016040528154909190829060ff16600281111561120457fe5b6000845460ff1660028111156128f257fe5b146128fc57600080fd5b3492506000831161290c57600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561293f57600080fd5b61296e8660006040518059106129525750595b9080825280602002602001820160405250600080600080613127565b91506129798261309b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36129cc86838588611528565b505050505050565b60006129df866130e1565b90506001815460ff1660028111156129f357fe5b146129fd57600080fd5b805433600160a060020a039081166101009092041614612a1c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a4f929160200190614312565b5060028101838051612a65929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612af257612ae9828281518110612ada57fe5b90602001906020020151611a1b565b50600101612ac2565b5050565b600154600160a060020a031681565b600080805b84518310156129cc576001604060020a03858481518110612b2757fe5b90602001906020020151169150604060020a858481518110612b4557fe5b90602001906020020151811515612b5857fe5b049050612b6786838387611528565b600190920191612b0a565b6000612b7d866130e1565b90506000815460ff166002811115612b9157fe5b14612b9b57600080fd5b805433600160a060020a039081166101009092041614612bba57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612bed929160200190614312565b5060028101838051612c03929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612c7d57600080fd5b612c868461309b565b91506001600383015460c060020a900460ff166002811115612ca457fe5b14612cae57600080fd5b6001820154600283018054612d66926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d4157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612cfe5790505b505050506003860154600091508190608060020a90046001604060020a031681613127565b90506110df81611a1b565b600080612d7c6142cf565b612d846142cf565b6000806000806000612d958a6130e1565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e4b5780601f10612e2057610100808354040283529160200191612e4b565b820191906000526020600020905b815481529060010190602001808311612e2e57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eea5780601f10612ebf57610100808354040283529160200191612eea565b820191906000526020600020905b815481529060010190602001808311612ecd57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b83518310156110ec576001604060020a03848481518110612f5857fe5b90602001906020020151169150604060020a848481518110612f7657fe5b90602001906020020151811515612f8957fe5b049050612f968282612c5d565b600190920191612f3b565b6000612fac866130e1565b90506002815460ff166002811115612fc057fe5b14612fca57600080fd5b805433600160a060020a039081166101009092041614612fe957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161301c929160200190614312565b5060028101838051613032929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130b557600080fd5b600280546001604060020a0384169081106130cc57fe5b90600052602060002090600402019050919050565b6003546000906001604060020a038316106130fb57600080fd5b600380546001604060020a03841690811061311257fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561317457808201518382015260200161315c565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156131e157fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561324a5780925061340d565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161328a8382614390565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156132fb57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556040820151816002019080516133469291602001906143bc565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561340157fe5b02179055505050508092505b50509695505050505050565b600080600061342b6001878787613e59565b9250846001604060020a0316866001604060020a0316141561344c576129cc565b821515613458576129cc565b6134618661309b565b915061346c8561309b565b82549091508390101561347e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36134d96000878786613e59565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061351b57508060e00151600160a060020a031633600160a060020a0316145b151561352657600080fd5b50565b60006110df8260006040518059106129525750599080825280602002602001820160405250600080600080613127565b60008060006135678661309b565b9250601461369b8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116135f25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b600281111561369357fe5b905250613e7f565b106136a557600080fd5b6136ae84610e50565b156136b857600080fd5b6001830154600284018054613745926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611ae35750505050600388015460009250829150608060020a90046001604060020a031681613127565b9150613775846000604051805910611b6f5750599080825280602002602001820160405250600080866000613127565b90506129cc868287613419565b60008061378d6142cf565b6000806137998861309b565b60028101549094508690036040518059106137b15750595b90808252806020026020018201604052509250600091505b600284015486900382101561383f57600284018054839081106137e857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061381d57fe5b6001604060020a039092166020928302909101909101526001909101906137c9565b6001840154600385015461386f916001604060020a039081169186916000918291608060020a9091041681613127565b905061387c888289613419565b979650505050505050565b60006138916142cf565b60008061389d8761309b565b6002810154909450601490106138b257600080fd5b60028401546001016040518059106138c75750595b90808252806020026020018201604052509250600091505b600284015482101561395257600284018054839081106138fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061393057fe5b6001604060020a039092166020928302909101909101526001909101906138df565b6002840154859084908151811061396557fe5b6001604060020a0392831660209182029092010152600185015460038601546139a1929182169186916000918291608060020a90041681613127565b90506134d9878288613419565b6000805b836040015151811015613a0257826001604060020a0316846040015182815181106139d957fe5b906020019060200201516001604060020a031614156139fa57809150613a0d565b6001016139b2565b6001604060020a0391505b5092915050565b600080613a208561309b565b91506014613b168360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b10613b2057600080fd5b613b2983610e50565b15613b3357600080fd5b6001820154600283018054612856926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b505050505085613cfc8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613c9657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c535790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613ce957fe5b6002811115613cf457fe5b905250613faa565b613d04613d23565b6003880154910190608060020a90046001604060020a03166000613127565b4290565b600080806001604060020a0384161515613d445760009250613de8565b613d4d8461309b565b6001810154909250613d67906001604060020a03166130e1565b90506000815460ff166002811115613d7b57fe5b1415613d8957839250613de8565b6002815460ff166002811115613d9b57fe5b14613da257fe5b6001820154613db9906001604060020a0316610e50565b1515613dc757839250613de8565b6003820154613de590608060020a90046001604060020a0316613d27565b92505b5050919050565b600080600283516002811115613e0157fe5b14613e0857fe5b8260a001516001604060020a03161515613e255760019150610efa565b613e328360a001516130e1565b9050610ef7816101006040519081016040528154909190829060ff166002811115611fe757fe5b80613e678585808685614034565b9050613e768584868685614034565b95945050505050565b6000808260a001516001604060020a03161515613e9f5760009150610efa565b613eac8360a0015161309b565b9050613fa08160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b6001019392505050565b6000806000613fbc84602001516130e1565b60038101546001604060020a031693509150600090505b836040015151811015613de85761400284604001518281518110613ff357fe5b906020019060200201516130e1565b60038101549092506001604060020a03168390111561402c5760038201546001604060020a031692505b600101613fd3565b600080600080866001604060020a0316886001604060020a03161461405b5761010061405e565b60005b61ffff1692508493506140708861309b565b6001810154909250614090908a906001604060020a031689898789614152565b9350600090505b60028201546001604060020a038216101561410b576141018983600201836001604060020a03168154811015156140ca57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189614152565b9350600101614097565b600382015460006001604060020a039091161115614146576003820154614143908a906001604060020a0316898960ff880189614152565b93505b50505095945050505050565b8060008061415f886130e1565b6004810154909150600160a060020a03161580159061417e5750600083115b1561340d578815614239576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561420857600080fd5b6102c65a03f1151561421957600080fd5b50505060405180519250508282111561423157600080fd5b81925061340d565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142af57600080fd5b6102c65a03f115156142c057600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b81548183558181151161430d5760050281600502836000526020600020918201910161430d9190614470565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061435357805160ff1916838001178555614380565b82800160010185558215614380579182015b82811115614380578251825591602001919060010190614365565b5061438c9291506144ee565b5090565b81548183558181151161430d5760040281600402836000526020600020918201910161430d9190614508565b828054828255906000526020600020906003016004900481019282156144645791602002820160005b8382111561442f57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026143e5565b80156144625782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261442f565b505b5061438c929150614568565b610f3e91905b8082111561438c57805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144a9600183018261458d565b6144b760028301600061458d565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501614476565b610f3e91905b8082111561438c57600081556001016144f4565b610f3e91905b8082111561438c57600080825560018201805467ffffffffffffffff1916905561453b60028301826145d1565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161450e565b610f3e91905b8082111561438c57805467ffffffffffffffff1916815560010161456e565b50805460018160011615610100020316600290046000825580601f106145b35750613526565b601f01602090049060005260206000209081019061352691906144ee565b50805460008255600301600490049060005260206000209081019061352691906144ee5600a165627a7a723058201d04dd9ec5f77e3e5415c26eb9862448fec271458e89c775b623100eb12791290029" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620022388339810160405280805160008054600160a060020a03191633600160a060020a03161790559150600190506200005f60038262000096565b5060016200006f600282620000ca565b5060048054600160a060020a031916600160a060020a039290921691909117905562000262565b815481835581811511620000c557600502816005028360005260206000209182019101620000c59190620000f9565b505050565b815481835581811511620000c557600402816004028360005260206000209182019101620000c591906200016d565b6200016a91905b8082111562000166578054600160a860020a03191681556000620001286001830182620001d8565b62000138600283016000620001d8565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000100565b5090565b90565b6200016a91905b808211156200016657600080825560018201805467ffffffffffffffff19169055620001a4600283018262000223565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000174565b50805460018160011615610100020316600290046000825580601f1062000200575062000220565b601f01602090049060005260206000209081019062000220919062000245565b50565b5080546000825560030160049004906000526020600020908101906200022091905b6200016a91905b808211156200016657600081556001016200024c565b611fc680620002726000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a72305820ffda96fd528ce408a09eb6acf5a5a92084ae9802235fc1c21d808ff4059d4d350029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a72305820ffda96fd528ce408a09eb6acf5a5a92084ae9802235fc1c21d808ff4059d4d350029" +exports.OwnedAbi = [{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556103b08061003b6000396000f3006060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a7230582008437a4607bbcd91071c2e125b7acee254bcbef3f489a8c5cb29c3bafe7761c00029" +exports.OwnedRuntimeByteCode = "0x6060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a7230582008437a4607bbcd91071c2e125b7acee254bcbef3f489a8c5cb29c3bafe7761c00029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.VaultByteCode = "0x" +exports.VaultRuntimeByteCode = "0x" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" -exports._sha256 = "0xf779b1ee136d7b63203d65207b5b9960eb240ff89493b65181a48999808f4fa1" +exports._sha256 = "0xdb1aa2ae8150ed95b50811999c67d8ccbe2f3af054f8652a26823b5635aa17f2" diff --git a/build/LiquidPledgingBase.sol.js b/build/LiquidPledgingBase.sol.js index ebddda1..df1c37c 100644 --- a/build/LiquidPledgingBase.sol.js +++ b/build/LiquidPledgingBase.sol.js @@ -2,9 +2,15 @@ exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a723058201215bea8f006cb5c585a0631fcee8b723cd2817899dce7f4f50fcdf5cc157e480029" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620022388339810160405280805160008054600160a060020a03191633600160a060020a03161790559150600190506200005f60038262000096565b5060016200006f600282620000ca565b5060048054600160a060020a031916600160a060020a039290921691909117905562000262565b815481835581811511620000c557600502816005028360005260206000209182019101620000c59190620000f9565b505050565b815481835581811511620000c557600402816004028360005260206000209182019101620000c591906200016d565b6200016a91905b8082111562000166578054600160a860020a03191681556000620001286001830182620001d8565b62000138600283016000620001d8565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000100565b5090565b90565b6200016a91905b808211156200016657600080825560018201805467ffffffffffffffff19169055620001a4600283018262000223565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000174565b50805460018160011615610100020316600290046000825580601f1062000200575062000220565b601f01602090049060005260206000209081019062000220919062000245565b50565b5080546000825560030160049004906000526020600020908101906200022091905b6200016a91905b808211156200016657600081556001016200024c565b611fc680620002726000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a723058202c8d3e7e12422b77e9e9ec78e12b9add47281351af7ec65cd71f1f514e23479d0029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a723058202c8d3e7e12422b77e9e9ec78e12b9add47281351af7ec65cd71f1f514e23479d0029" +exports.OwnedAbi = [{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556103b08061003b6000396000f3006060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a72305820f87f2ce6d3bdb26cc17ee9ab1120437a7110498745ee7ce1e635106d9fa936a40029" +exports.OwnedRuntimeByteCode = "0x6060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a72305820f87f2ce6d3bdb26cc17ee9ab1120437a7110498745ee7ce1e635106d9fa936a40029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.VaultByteCode = "0x" +exports.VaultRuntimeByteCode = "0x" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" -exports._sha256 = "0x4015d9fdc97a031838e6efed18f8963efc7f634dfd0f0c3a0077ef4dec1ada6b" +exports._sha256 = "0xcf2011db17c2354714c5901d2ce462573d5c43f28afbdb3fa1324b534fc14a0a" diff --git a/build/LiquidPledgingBase_all.sol b/build/LiquidPledgingBase_all.sol index 656eed3..d77d76b 100644 --- a/build/LiquidPledgingBase_all.sol +++ b/build/LiquidPledgingBase_all.sol @@ -33,11 +33,96 @@ contract ILiquidPledgingPlugin { uint amount); } +//File: node_modules/giveth-common-contracts/contracts/Owned.sol +pragma solidity ^0.4.15; + + +/// @title Owned +/// @author Adrià Massanet +/// @notice The Owned contract has an owner address, and provides basic +/// authorization control functions, this simplifies & the implementation of +/// user permissions; this contract has three work flows for a change in +/// ownership, the first requires the new owner to validate that they have the +/// ability to accept ownership, the second allows the ownership to be +/// directly transfered without requiring acceptance, and the third allows for +/// the ownership to be removed to allow for decentralization +contract Owned { + + address public owner; + address public newOwnerCandidate; + + event OwnershipRequested(address indexed by, address indexed to); + event OwnershipTransferred(address indexed from, address indexed to); + event OwnershipRemoved(); + + /// @dev The constructor sets the `msg.sender` as the`owner` of the contract + function Owned() public { + owner = msg.sender; + } + + /// @dev `owner` is the only address that can call a function with this + /// modifier + modifier onlyOwner() { + require (msg.sender == owner); + _; + } + + /// @dev In this 1st option for ownership transfer `proposeOwnership()` must + /// be called first by the current `owner` then `acceptOwnership()` must be + /// called by the `newOwnerCandidate` + /// @notice `onlyOwner` Proposes to transfer control of the contract to a + /// new owner + /// @param _newOwnerCandidate The address being proposed as the new owner + function proposeOwnership(address _newOwnerCandidate) public onlyOwner { + newOwnerCandidate = _newOwnerCandidate; + OwnershipRequested(msg.sender, newOwnerCandidate); + } + + /// @notice Can only be called by the `newOwnerCandidate`, accepts the + /// transfer of ownership + function acceptOwnership() public { + require(msg.sender == newOwnerCandidate); + + address oldOwner = owner; + owner = newOwnerCandidate; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 2nd option for ownership transfer `changeOwnership()` can + /// be called and it will immediately assign ownership to the `newOwner` + /// @notice `owner` can step down and assign some other address to this role + /// @param _newOwner The address of the new owner + function changeOwnership(address _newOwner) public onlyOwner { + require(_newOwner != 0x0); + + address oldOwner = owner; + owner = _newOwner; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 3rd option for ownership transfer `removeOwnership()` can + /// be called and it will immediately assign ownership to the 0x0 address; + /// it requires a 0xdece be input as a parameter to prevent accidental use + /// @notice Decentralizes the contract, this operation cannot be undone + /// @param _dac `0xdac` has to be entered for this function to work + function removeOwnership(address _dac) public onlyOwner { + require(_dac == 0xdac); + owner = 0x0; + newOwnerCandidate = 0x0; + OwnershipRemoved(); + } +} + //File: ./contracts/LiquidPledgingBase.sol pragma solidity ^0.4.11; + /// @dev This is declares a few functions from `Vault` so that the /// `LiquidPledgingBase` contract can interface with the `Vault` contract contract Vault { @@ -45,7 +130,7 @@ contract Vault { function () payable; } -contract LiquidPledgingBase { +contract LiquidPledgingBase is Owned { // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 20; uint constant MAX_SUBPROJECT_LEVEL = 20; @@ -83,6 +168,9 @@ contract LiquidPledgingBase { // this mapping allows you to search for a specific pledge's index number by the hash of that pledge mapping (bytes32 => uint64) hPledge2idx;//TODO Fix typo + mapping (bytes32 => bool) pluginWhitelist; + + bool public usePluginWhitelist = true; ///// @@ -109,12 +197,13 @@ contract LiquidPledgingBase { /////// -// Adminss functions +// Admin functions ////// /// @notice Creates a giver. function addGiver(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin ) returns (uint64 idGiver) { + require(isValidPlugin(plugin)); idGiver = uint64(admins.length); @@ -155,6 +244,7 @@ contract LiquidPledgingBase { /// @notice Creates a new Delegate function addDelegate(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDelegate) { //TODO return index number + require(isValidPlugin(plugin)); idDelegate = uint64(admins.length); @@ -194,6 +284,8 @@ contract LiquidPledgingBase { /// @notice Creates a new Project function addProject(string name, string url, address projectAdmin, uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idProject) { + require(isValidPlugin(plugin)); + if (parentProject != 0) { PledgeAdmin storage pa = findAdmin(parentProject); require(pa.adminType == PledgeAdminType.Project); @@ -409,4 +501,46 @@ contract LiquidPledgingBase { function checkAdminOwner(PledgeAdmin m) internal constant { require((msg.sender == m.addr) || (msg.sender == address(m.plugin))); } + +//////// +// Plugin Whitelist Methods +/////// + + function addValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = true; + } + + function removeValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = false; + } + + function useWhitelist(bool useWhitelist) external onlyOwner { + usePluginWhitelist = useWhitelist; + } + + function isValidPlugin(address addr) public returns(bool) { + if (!usePluginWhitelist || addr == 0x0) return true; + + bytes32 contractHash = getCodeHash(addr); + + return pluginWhitelist[contractHash]; + } + + function getCodeHash(address addr) public returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + // new "memory end" including padding + mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) + // store length in memory + mstore(o_code, size) + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } } diff --git a/build/LiquidPledgingMock.sol.js b/build/LiquidPledgingMock.sol.js index b5afa1e..edee21a 100644 --- a/build/LiquidPledgingMock.sol.js +++ b/build/LiquidPledgingMock.sol.js @@ -2,13 +2,21 @@ exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" -exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingByteCode = "0x606060405234156200001057600080fd5b6040516020806200434483398101604052808051915081905060016200003781806200006f565b50600162000047600082620000a3565b5060028054600160a060020a031916600160a060020a0392909216919091179055506200023b565b8154818355818115116200009e576005028160050283600052602060002091820191016200009e9190620000d2565b505050565b8154818355818115116200009e576004028160040283600052602060002091820191016200009e919062000146565b6200014391905b808211156200013f578054600160a860020a03191681556000620001016001830182620001b1565b62000111600283016000620001b1565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d9565b5090565b90565b6200014391905b808211156200013f57600080825560018201805467ffffffffffffffff191690556200017d6002830182620001fc565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014d565b50805460018160011615610100020316600290046000825580601f10620001d95750620001f9565b601f016020900490600052602060002090810190620001f991906200021e565b50565b508054600082556003016004900490600052602060002090810190620001f991905b6200014391905b808211156200013f576000815560010162000225565b6140f9806200024b6000396000f30060606040526004361061013a5763ffffffff60e060020a60003504166314e7b1dc811461013f5780632101a6ad146101f85780632a8ec8cc1461022b5780632ee88808146102505780633f657a461461027457806343387983146102f257806347c5ef431461031457806350f8a8031461034357806352dc7dcc1461037e5780635503d9ba1461042a57806357adafb61461043d57806372116e921461048c578063796d5654146105485780637f61fa93146105675780639398f5a214610613578063af9f456314610662578063bce0906d14610684578063bde60ac9146106d3578063cc19ecf7146106ed578063d639cd73146107a8578063db7c231414610810578063e9c211e2146108cb578063eba8ba06146108ed578063ef3766e414610a43578063f6b24b1c14610a92578063fbfa77cf14610b4d575b600080fd5b341561014a57600080fd5b6101616001604060020a0360043516602435610b7c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101bb5780820151838201526020016101a3565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561020357600080fd5b6102176001604060020a0360043516610ca1565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610d51565b60405190815260200160405180910390f35b341561025b57600080fd5b6102726001604060020a0360043516602435610d5c565b005b341561027f57600080fd5b6102936001604060020a0360043516610e9f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102d857fe5b60ff16815260200197505050505050505060405180910390f35b34156102fd57600080fd5b6102726001604060020a0360043516602435610f04565b341561031f57600080fd5b6102726001604060020a0360043581169060243581169060443590606435166112a7565b341561034e57600080fd5b6103626001604060020a036004351661174c565b6040516001604060020a03909116815260200160405180910390f35b341561038957600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611915915050565b341561043557600080fd5b61023e611b03565b341561044857600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b0d95505050505050565b341561049757600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611b789050565b341561055357600080fd5b6102726001604060020a0360043516611fa3565b341561057257600080fd5b61036260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612031915050565b341561061e57600080fd5b610272600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061221e95505050505050565b341561066d57600080fd5b6102726001604060020a0360043516602435612289565b341561068f57600080fd5b610362600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061233595505050505050565b6102726001604060020a0360043581169060243516612380565b34156106f857600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124ea915050565b34156107b357600080fd5b610272600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a031692506125d5915050565b341561081b57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612642915050565b34156108d657600080fd5b6102726001604060020a036004351660243561272d565b34156108f857600080fd5b61090c6001604060020a0360043516612841565b6040518089600281111561091c57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561099d578082015183820152602001610985565b50505050905090810190601f1680156109ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a005780820151838201526020016109e8565b50505050905090810190601f168015610a2d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a4e57600080fd5b6102726004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a0695505050505050565b3415610a9d57600080fd5b610272600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a71915050565b3415610b5857600080fd5b610b60612b5c565b604051600160a060020a03909116815260200160405180910390f35b600080610b87613d99565b600080610b9387612b6b565b91508160020160018703815481101515610ba957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610bdd85612baf565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050925050509250925092565b600080610cad83612baf565b90506000815460ff166002811115610cc157fe5b1415610cd05760009150610d4b565b6002815460ff166002811115610ce257fe5b14610ce957fe5b6003810154608060020a900460ff1615610d065760019150610d4b565b6003810154604060020a90046001604060020a03161515610d2a5760009150610d4b565b6003810154610d4890604060020a90046001604060020a0316610ca1565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610d7c57600080fd5b610d8584612b6b565b91506001600383015460c060020a900460ff166002811115610da357fe5b14610dad57600080fd5b836001604060020a0316610dc085612bf5565b6001604060020a031614610dd357600080fd5b6001820154600283018054610e8c926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610e6657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e235790505b505050506003860154600091508190608060020a90046001604060020a03166002612cbb565b9050610e99848285612fab565b50505050565b600080600080600080600080610eb489612b6b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f128561174c565b9450610f1d85612b6b565b92506000600384015460c060020a900460ff166002811115610f3b57fe5b14610f4557600080fd5b6001830154610f5c906001604060020a0316612baf565b9150611151826101006040519081016040528154909190829060ff166002811115610f8357fe5b6002811115610f8e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105a5780601f1061102f5761010080835404028352916020019161105a565b820191906000526020600020905b81548152906001019060200180831161103d57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110fc5780601f106110d1576101008083540402835291602001916110fc565b820191906000526020600020905b8154815290600101906020018083116110df57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613074565b600183015460028401805461120a926001604060020a031691906020808202016040519081016040528092919081815260200182805480156111e457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111a15790505b505050506003870154600091508190608060020a90046001604060020a03166001612cbb565b9050611217858286612fab565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561128c57600080fd5b6102c65a03f1151561129d57600080fd5b5050505050505050565b60008060008060006112b88861174c565b97506112c388612b6b565b94506112ce86612baf565b93506112d989612baf565b9250611300836101006040519081016040528154909190829060ff166002811115610f8357fe5b6000600386015460c060020a900460ff16600281111561131c57fe5b1461132657600080fd5b60018501546001604060020a038a8116911614156113c7576000845460ff16600281111561135057fe5b1415611366576113618888886130bb565b6113c2565b6002845460ff16600281111561137857fe5b1415611389576113618888886130eb565b6001845460ff16600281111561139b57fe5b14156113c0576113b388888760020180549050613314565b9750611361888888613419565bfe5b611741565b6114f88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561149157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161144e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156114e457fe5b60028111156114ef57fe5b9052508a613540565b6001604060020a03908116925082146113c0576000845460ff16600281111561151d57fe5b14156115545760018501546001604060020a0387811691161461153c57fe5b61154e88888760020180549050613314565b50611741565b6001845460ff16600281111561156657fe5b14156117055761169d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561163657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115f35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561168957fe5b600281111561169457fe5b90525087613540565b6001604060020a0390811691508114156116c8576113b3888860018589600201805490500303613314565b818111156116e7576113b3888860018589600201805490500303613314565b8181116113c25761154e888860018489600201805490500303613314565b6002845460ff16600281111561171757fe5b14156113c057611734888860018589600201805490500303613314565b97506113c28888886135a6565b505050505050505050565b60008060008061175b85612b6b565b92506000600384015460c060020a900460ff16600281111561177957fe5b146117865784935061190d565b600383015460006001604060020a039091161180156117bf57506003830154604060020a90046001604060020a03166117bd6138b5565b115b156118dc57600183015460028401805461187c926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118145790505b505050506003870154600091508190608060020a90046001604060020a031681612cbb565b60038401549092506118bc906001604060020a031660006040518059106118a05750595b9080825280602002602001820160405250600080866000612cbb565b90506118cd85828560000154612fab565b8094506118d985612b6b565b92505b6118e585612bf5565b90506001604060020a03808216908616146119095761190985828560000154612fab565b8093505b505050919050565b6001805490818082016119288382613dab565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119a757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516119ed929160200190613ddc565b50606082015181600201908051611a08929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610e99576001604060020a03848481518110611b2f57fe5b90602001906020020151169150604060020a848481518110611b4d57fe5b90602001906020020151811515611b6057fe5b049050611b6d8282610f04565b600190920191611b12565b6000806001604060020a03851615611db057611b9385612baf565b90506002815460ff166002811115611ba757fe5b14611bb157600080fd5b6014611da6826101006040519081016040528154909190829060ff166002811115611bd857fe5b6002811115611be357fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caf5780601f10611c8457610100808354040283529160200191611caf565b820191906000526020600020905b815481529060010190602001808311611c9257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d515780601f10611d2657610100808354040283529160200191611d51565b820191906000526020600020905b815481529060010190602001808311611d3457829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526138b9565b10611db057600080fd5b60018054925082808201611dc48382613dab565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e4457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611e8a929160200190613ddc565b50606082015181600201908051611ea5929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fae82612baf565b9050611fd5816101006040519081016040528154909190829060ff166002811115610f8357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120448382613dab565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156120c357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612109929160200190613ddc565b50606082015181600201908051612124929160200190613ddc565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610e99576001604060020a0384848151811061224057fe5b90602001906020020151169150604060020a84848151811061225e57fe5b9060200190602002015181151561227157fe5b04905061227e8282610d5c565b600190920191612223565b60008060006122978561174c565b94506122a285612b6b565b6003810154909350608060020a90046001604060020a031615156122c557600080fd5b60018301546122dc906001604060020a0316612baf565b9150612303826101006040519081016040528154909190829060ff166002811115610f8357fe5b600383015461232190608060020a90046001604060020a0316612bf5565b905061232e858286612fab565b5050505050565b600080805b8351821015612379576001604060020a0384838151811061235757fe5b9060200190602002015116905061236d8161174c565b5060019091019061233a565b5050919050565b60008080806001604060020a03861615156123c6576123c36020604051908101604052806000815250602060405190810160405260008082526203f48090612031565b95505b6123cf86612baf565b93506123f6846101006040519081016040528154909190829060ff166002811115610f8357fe5b6000845460ff16600281111561240857fe5b1461241257600080fd5b3492506000831161242257600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561245557600080fd5b6124848660006040518059106124685750595b9080825280602002602001820160405250600080600080612cbb565b915061248f82612b6b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36124e2868385886112a7565b505050505050565b60006124f586612baf565b90506001815460ff16600281111561250957fe5b1461251357600080fd5b805433600160a060020a03908116610100909204161461253257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612565929160200190613ddc565b506002810183805161257b929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b84518310156124e2576001604060020a038584815181106125f757fe5b90602001906020020151169150604060020a85848151811061261557fe5b9060200190602002015181151561262857fe5b049050612637868383876112a7565b6001909201916125da565b600061264d86612baf565b90506000815460ff16600281111561266157fe5b1461266b57600080fd5b805433600160a060020a03908116610100909204161461268a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516126bd929160200190613ddc565b50600281018380516126d3929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461274d57600080fd5b61275684612b6b565b91506001600383015460c060020a900460ff16600281111561277457fe5b1461277e57600080fd5b6001820154600283018054612836926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561281157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116127ce5790505b505050506003860154600091508190608060020a90046001604060020a031681612cbb565b9050610e8c8161174c565b60008061284c613d99565b612854613d99565b60008060008060006128658a612baf565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f8201819004810201604051908101604052809291908181526020018280546001816001161561010002031660029004801561291b5780601f106128f05761010080835404028352916020019161291b565b820191906000526020600020905b8154815290600101906020018083116128fe57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129ba5780601f1061298f576101008083540402835291602001916129ba565b820191906000526020600020905b81548152906001019060200180831161299d57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610e99576001604060020a03848481518110612a2857fe5b90602001906020020151169150604060020a848481518110612a4657fe5b90602001906020020151811515612a5957fe5b049050612a66828261272d565b600190920191612a0b565b6000612a7c86612baf565b90506002815460ff166002811115612a9057fe5b14612a9a57600080fd5b805433600160a060020a039081166101009092041614612ab957600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612aec929160200190613ddc565b5060028101838051612b02929160200190613ddc565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612b8357600080fd5b600080546001604060020a038416908110612b9a57fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612bc957600080fd5b600180546001604060020a038416908110612be057fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c125760009250612379565b612c1b84612b6b565b6001810154909250612c35906001604060020a0316612baf565b90506000815460ff166002811115612c4957fe5b1415612c5757839250612379565b6002815460ff166002811115612c6957fe5b14612c7057fe5b6001820154612c87906001604060020a0316610ca1565b1515612c9557839250612379565b6003820154612cb390608060020a90046001604060020a0316612bf5565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d08578082015183820152602001612cf0565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612d7557fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612dde57809250612f9f565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e1c8382613e5a565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612e8d57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612ed8929160200190613e86565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612f9357fe5b02179055505050508092505b50509695505050505050565b6000806000612fbd6001878787613923565b9250846001604060020a0316866001604060020a03161415612fde576124e2565b821515612fea576124e2565b612ff386612b6b565b9150612ffe85612b6b565b82549091508390101561301057600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a361306b6000878786613923565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130ad57508060e00151600160a060020a031633600160a060020a0316145b15156130b857600080fd5b50565b6000610e8c8260006040518059106124685750599080825280602002602001820160405250600080600080612cbb565b60008060006130f986612b6b565b9250601461322d8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131845790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b600281111561322557fe5b905250613949565b1061323757600080fd5b61324084610ca1565b1561324a57600080fd5b60018301546002840180546132d7926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561185757600091825260209182902080546001604060020a031684529082028301929091600891018084116118145750505050600388015460009250829150608060020a90046001604060020a031681612cbb565b91506133078460006040518059106118a05750599080825280602002602001820160405250600080866000612cbb565b90506124e2868287612fab565b60008061331f613d99565b60008061332b88612b6b565b60028101549094508690036040518059106133435750595b90808252806020026020018201604052509250600091505b60028401548690038210156133d1576002840180548390811061337a57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133af57fe5b6001604060020a0390921660209283029091019091015260019091019061335b565b60018401546003850154613401916001604060020a039081169186916000918291608060020a9091041681612cbb565b905061340e888289612fab565b979650505050505050565b6000613423613d99565b60008061342f87612b6b565b60028101549094506014901061344457600080fd5b60028401546001016040518059106134595750595b90808252806020026020018201604052509250600091505b60028401548210156134e4576002840180548390811061348d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106134c257fe5b6001604060020a03909216602092830290910190910152600190910190613471565b600284015485908490815181106134f757fe5b6001604060020a039283166020918202909201015260018501546003860154613533929182169186916000918291608060020a90041681612cbb565b905061306b878288612fab565b6000805b83604001515181101561359457826001604060020a03168460400151828151811061356b57fe5b906020019060200201516001604060020a0316141561358c5780915061359f565b600101613544565b6001604060020a0391505b5092915050565b6000806135b285612b6b565b915060146136a88360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757600091825260209182902080546001604060020a031684529082028301929091600891018084116131845750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b106136b257600080fd5b6136bb83610ca1565b156136c557600080fd5b6001820154600283018054612321926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561375857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137155790505b50505050508561388e8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561382857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116137e55790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561387b57fe5b600281111561388657fe5b905250613a74565b6138966138b5565b6003880154910190608060020a90046001604060020a03166000612cbb565b4290565b6000806002835160028111156138cb57fe5b146138d257fe5b8260a001516001604060020a031615156138ef5760019150610d4b565b6138fc8360a00151612baf565b9050610d48816101006040519081016040528154909190829060ff166002811115611bd857fe5b806139318585808685613afe565b90506139408584868685613afe565b95945050505050565b6000808260a001516001604060020a031615156139695760009150610d4b565b6139768360a00151612b6b565b9050613a6a8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156131c757600091825260209182902080546001604060020a031684529082028301929091600891018084116131845750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561321a57fe5b6001019392505050565b6000806000613a868460200151612baf565b60038101546001604060020a031693509150600090505b83604001515181101561237957613acc84604001518281518110613abd57fe5b90602001906020020151612baf565b60038101549092506001604060020a031683901115613af65760038201546001604060020a031692505b600101613a9d565b600080600080866001604060020a0316886001604060020a031614613b2557610100613b28565b60005b61ffff169250849350613b3a88612b6b565b6001810154909250613b5a908a906001604060020a031689898789613c1c565b9350600090505b60028201546001604060020a0382161015613bd557613bcb8983600201836001604060020a0316815481101515613b9457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c1c565b9350600101613b61565b600382015460006001604060020a039091161115613c10576003820154613c0d908a906001604060020a0316898960ff880189613c1c565b93505b50505095945050505050565b80600080613c2988612baf565b6004810154909150600160a060020a031615801590613c485750600083115b15612f9f578815613d03576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613cd257600080fd5b6102c65a03f11515613ce357600080fd5b505050604051805192505082821115613cfb57600080fd5b819250612f9f565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613d7957600080fd5b6102c65a03f11515613d8a57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613dd757600502816005028360005260206000209182019101613dd79190613f3a565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e1d57805160ff1916838001178555613e4a565b82800160010185558215613e4a579182015b82811115613e4a578251825591602001919060010190613e2f565b50613e56929150613fc5565b5090565b815481835581811511613dd757600402816004028360005260206000209182019101613dd79190613fdf565b82805482825590600052602060002090600301600490048101928215613f2e5791602002820160005b83821115613ef957835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613eaf565b8015613f2c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613ef9565b505b50613e5692915061403f565b610d5991905b80821115613e5657805474ffffffffffffffffffffffffffffffffffffffffff191681556000613f736001830182614064565b613f81600283016000614064565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f40565b610d5991905b80821115613e565760008155600101613fcb565b610d5991905b80821115613e5657600080825560018201805467ffffffffffffffff1916905561401260028301826140a8565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401613fe5565b610d5991905b80821115613e5657805467ffffffffffffffff19168155600101614045565b50805460018160011615610100020316600290046000825580601f1061408a57506130b8565b601f0160209004906000526020600020908101906130b89190613fc5565b5080546000825560030160049004906000526020600020908101906130b89190613fc55600a165627a7a72305820463a47bbd3cd6e46fb821af37a9038953193f9f8f25e5b054212339a7479723b0029" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x606060405234156200001057600080fd5b60405160208062001cb0833981016040528080519150600190506200003681806200006d565b50600162000046600082620000a1565b5060028054600160a060020a031916600160a060020a039290921691909117905562000239565b8154818355818115116200009c576005028160050283600052602060002091820191016200009c9190620000d0565b505050565b8154818355818115116200009c576004028160040283600052602060002091820191016200009c919062000144565b6200014191905b808211156200013d578054600160a860020a03191681556000620000ff6001830182620001af565b6200010f600283016000620001af565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000d7565b5090565b90565b6200014191905b808211156200013d57600080825560018201805467ffffffffffffffff191690556200017b6002830182620001fa565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200014b565b50805460018160011615610100020316600290046000825580601f10620001d75750620001f7565b601f016020900490600052602060002090810190620001f791906200021c565b50565b508054600082556003016004900490600052602060002090810190620001f791905b6200014191905b808211156200013d576000815560010162000223565b611a6780620002496000396000f3006060604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc81146100c95780632101a6ad146101845780632a8ec8cc146101b85780633f657a46146101dd57806352dc7dcc1461025d5780635503d9ba1461032757806372116e921461033a5780637f61fa93146103f7578063cc19ecf7146104a4578063db7c231414610563578063eba8ba0614610620578063f6b24b1c14610778578063fbfa77cf14610835575b600080fd5b34156100d457600080fd5b6100ec67ffffffffffffffff60043516602435610864565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561014757808201518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561018f57600080fd5b6101a467ffffffffffffffff6004351661098a565b604051901515815260200160405180910390f35b34156101c357600080fd5b6101cb610a46565b60405190815260200160405180910390f35b34156101e857600080fd5b6101fd67ffffffffffffffff60043516610a51565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561024357fe5b60ff16815260200197505050505050505060405180910390f35b341561026857600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610ad1915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033257600080fd5b6101cb610cc4565b341561034557600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff602082013581169650604082013516945060600135169150610cce9050565b341561040257600080fd5b61030a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611105915050565b34156104af57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506112f7915050565b005b341561056e57600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506113e3915050565b341561062b57600080fd5b61064067ffffffffffffffff600435166114cf565b6040518089600281111561065057fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156106d25780820151838201526020016106ba565b50505050905090810190601f1680156106ff5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561073557808201518382015260200161071d565b50505050905090810190601f1680156107625780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561078357600080fd5b6105616004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061169a915050565b341561084057600080fd5b610848611786565b604051600160a060020a03909116815260200160405180910390f35b60008061086f61188e565b60008061087b87611795565b9150816002016001870381548110151561089157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1694506108c6856117db565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050925050509250925092565b600080610996836117db565b90506000815460ff1660028111156109aa57fe5b14156109b95760009150610a40565b6002815460ff1660028111156109cb57fe5b146109d257fe5b6003810154608060020a900460ff16156109ef5760019150610a40565b600381015468010000000000000000900467ffffffffffffffff161515610a195760009150610a40565b6003810154610a3d9068010000000000000000900467ffffffffffffffff1661098a565b91505b50919050565b600054600019015b90565b600080600080600080600080610a6689611795565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600180549081808201610ae483826118a0565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610b6457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610baa9291602001906118d1565b50606082015181600201908051610bc59291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b60008067ffffffffffffffff851615610f0d57610cea856117db565b90506002815460ff166002811115610cfe57fe5b14610d0857600080fd5b6014610f03826101006040519081016040528154909190829060ff166002811115610d2f57fe5b6002811115610d3a57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e065780601f10610ddb57610100808354040283529160200191610e06565b820191906000526020600020905b815481529060010190602001808311610de957829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611823565b10610f0d57600080fd5b60018054925082808201610f2183826118a0565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115610fa257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610fe89291602001906118d1565b506060820151816002019080516110039291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60018054908180820161111883826118a0565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561119857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516111de9291602001906118d1565b506060820151816002019080516111f99291602001906118d1565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b6000611302866117db565b90506001815460ff16600281111561131657fe5b1461132057600080fd5b805433600160a060020a03908116610100909204161461133f57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516113729291602001906118d1565b50600281018380516113889291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60006113ee866117db565b90506000815460ff16600281111561140257fe5b1461140c57600080fd5b805433600160a060020a03908116610100909204161461142b57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161145e9291602001906118d1565b50600281018380516114749291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806114da61188e565b6114e261188e565b60008060008060006114f38a6117db565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116485780601f1061161d57610100808354040283529160200191611648565b820191906000526020600020905b81548152906001019060200180831161162b57829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b60006116a5866117db565b90506002815460ff1660028111156116b957fe5b146116c357600080fd5b805433600160a060020a0390811661010090920416146116e257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516117159291602001906118d1565b506002810183805161172b9291602001906118d1565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b6000805467ffffffffffffffff8316106117ae57600080fd5b6000805467ffffffffffffffff84169081106117c657fe5b90600052602060002090600402019050919050565b60015460009067ffffffffffffffff8316106117f657600080fd5b6001805467ffffffffffffffff841690811061180e57fe5b90600052602060002090600502019050919050565b60008060028351600281111561183557fe5b1461183c57fe5b8260a0015167ffffffffffffffff16151561185a5760019150610a40565b6118678360a001516117db565b9050610a3d816101006040519081016040528154909190829060ff166002811115610d2f57fe5b60206040519081016040526000815290565b8154818355818115116118cc576005028160050283600052602060002091820191016118cc919061194f565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061191257805160ff191683800117855561193f565b8280016001018555821561193f579182015b8281111561193f578251825591602001919060010190611924565b5061194b9291506119da565b5090565b610a4e91905b8082111561194b57805474ffffffffffffffffffffffffffffffffffffffffff19168155600061198860018301826119f4565b6119966002830160006119f4565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501611955565b610a4e91905b8082111561194b57600081556001016119e0565b50805460018160011615610100020316600290046000825580601f10611a1a5750611a38565b601f016020900490600052602060002090810190611a3891906119da565b505600a165627a7a7230582044fb29e66b8d398a100a2a865d99dd61103f480bd026724c1770cad088d08f400029" -exports.LiquidPledgingMockAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint256[]"}],"name":"mNormalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x606060405234156200001057600080fd5b6040516020806200439683398101604052808051915081905080600162000038818062000075565b50600162000048600082620000a9565b5060028054600160a060020a031916600160a060020a039290921691909117905550504260045562000241565b815481835581811511620000a457600502816005028360005260206000209182019101620000a49190620000d8565b505050565b815481835581811511620000a457600402816004028360005260206000209182019101620000a491906200014c565b6200014991905b8082111562000145578054600160a860020a03191681556000620001076001830182620001b7565b62000117600283016000620001b7565b506003810180546001608860020a0319169055600481018054600160a060020a0319169055600501620000df565b5090565b90565b6200014991905b808211156200014557600080825560018201805467ffffffffffffffff1916905562000183600283018262000202565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000153565b50805460018160011615610100020316600290046000825580601f10620001df5750620001ff565b601f016020900490600052602060002090810190620001ff919062000224565b50565b508054600082556003016004900490600052602060002090810190620001ff91905b6200014991905b808211156200014557600081556001016200022b565b61414580620002516000396000f3006060604052600436106101505763ffffffff60e060020a60003504166314e7b1dc81146101555780632101a6ad1461020e5780632a8ec8cc146102415780632ee88808146102665780633f657a461461028a578063433879831461030857806347c5ef431461032a57806350f8a8031461035957806352dc7dcc146103945780635503d9ba1461044057806357adafb61461045357806372116e92146104a2578063796d56541461055e5780637f61fa931461057d5780639398f5a2146106295780639da47a6b14610678578063ab8be2311461068b578063af9f4563146106a1578063bce0906d146106c3578063bde60ac914610712578063cc19ecf71461072c578063d639cd73146107e7578063db7c23141461084f578063e9c211e21461090a578063eba8ba061461092c578063ef3766e414610a82578063f6b24b1c14610ad1578063fbfa77cf14610b8c575b600080fd5b341561016057600080fd5b6101776001604060020a0360043516602435610bbb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101d15780820151838201526020016101b9565b50505050905090810190601f1680156101fe5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021957600080fd5b61022d6001604060020a0360043516610ce0565b604051901515815260200160405180910390f35b341561024c57600080fd5b610254610d90565b60405190815260200160405180910390f35b341561027157600080fd5b6102886001604060020a0360043516602435610d9b565b005b341561029557600080fd5b6102a96001604060020a0360043516610ede565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156102ee57fe5b60ff16815260200197505050505050505060405180910390f35b341561031357600080fd5b6102886001604060020a0360043516602435610f43565b341561033557600080fd5b6102886001604060020a0360043581169060243581169060443590606435166112e6565b341561036457600080fd5b6103786001604060020a036004351661178b565b6040516001604060020a03909116815260200160405180910390f35b341561039f57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611954915050565b341561044b57600080fd5b610254611b42565b341561045e57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611b4c95505050505050565b34156104ad57600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611bb79050565b341561056957600080fd5b6102886001604060020a0360043516611fe2565b341561058857600080fd5b61037860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612070915050565b341561063457600080fd5b610288600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061225d95505050505050565b341561068357600080fd5b6102546122c8565b341561069657600080fd5b6102886004356122ce565b34156106ac57600080fd5b6102886001604060020a03600435166024356122d3565b34156106ce57600080fd5b610378600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061237f95505050505050565b6102886001604060020a03600435811690602435166123ca565b341561073757600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612534915050565b34156107f257600080fd5b610288600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a0316925061261f915050565b341561085a57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a0316925061268c915050565b341561091557600080fd5b6102886001604060020a0360043516602435612777565b341561093757600080fd5b61094b6001604060020a036004351661288b565b6040518089600281111561095b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156109dc5780820151838201526020016109c4565b50505050905090810190601f168015610a095780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610a3f578082015183820152602001610a27565b50505050905090810190601f168015610a6c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610a8d57600080fd5b6102886004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612a5095505050505050565b3415610adc57600080fd5b610288600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612abb915050565b3415610b9757600080fd5b610b9f612ba6565b604051600160a060020a03909116815260200160405180910390f35b600080610bc6613de5565b600080610bd287612bb5565b91508160020160018703815481101515610be857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610c1c85612bf9565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050925050509250925092565b600080610cec83612bf9565b90506000815460ff166002811115610d0057fe5b1415610d0f5760009150610d8a565b6002815460ff166002811115610d2157fe5b14610d2857fe5b6003810154608060020a900460ff1615610d455760019150610d8a565b6003810154604060020a90046001604060020a03161515610d695760009150610d8a565b6003810154610d8790604060020a90046001604060020a0316610ce0565b91505b50919050565b600054600019015b90565b600254600090819033600160a060020a03908116911614610dbb57600080fd5b610dc484612bb5565b91506001600383015460c060020a900460ff166002811115610de257fe5b14610dec57600080fd5b836001604060020a0316610dff85612c3f565b6001604060020a031614610e1257600080fd5b6001820154600283018054610ecb926001604060020a03169190602080820201604051908101604052809291908181526020018280548015610ea557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610e625790505b505050506003860154600091508190608060020a90046001604060020a03166002612d05565b9050610ed8848285612ff5565b50505050565b600080600080600080600080610ef389612bb5565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b6000806000610f518561178b565b9450610f5c85612bb5565b92506000600384015460c060020a900460ff166002811115610f7a57fe5b14610f8457600080fd5b6001830154610f9b906001604060020a0316612bf9565b9150611190826101006040519081016040528154909190829060ff166002811115610fc257fe5b6002811115610fcd57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110995780601f1061106e57610100808354040283529160200191611099565b820191906000526020600020905b81548152906001019060200180831161107c57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526130be565b6001830154600284018054611249926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561122357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116111e05790505b505050506003870154600091508190608060020a90046001604060020a03166001612d05565b9050611256858286612ff5565b6002548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b15156112cb57600080fd5b6102c65a03f115156112dc57600080fd5b5050505050505050565b60008060008060006112f78861178b565b975061130288612bb5565b945061130d86612bf9565b935061131889612bf9565b925061133f836101006040519081016040528154909190829060ff166002811115610fc257fe5b6000600386015460c060020a900460ff16600281111561135b57fe5b1461136557600080fd5b60018501546001604060020a038a811691161415611406576000845460ff16600281111561138f57fe5b14156113a5576113a0888888613105565b611401565b6002845460ff1660028111156113b757fe5b14156113c8576113a0888888613135565b6001845460ff1660028111156113da57fe5b14156113ff576113f28888876002018054905061335e565b97506113a0888888613463565bfe5b611780565b6115378560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156114d057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161148d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561152357fe5b600281111561152e57fe5b9052508a61358a565b6001604060020a03908116925082146113ff576000845460ff16600281111561155c57fe5b14156115935760018501546001604060020a0387811691161461157b57fe5b61158d8888876002018054905061335e565b50611780565b6001845460ff1660028111156115a557fe5b1415611744576116dc8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561167557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116325790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156116c857fe5b60028111156116d357fe5b9052508761358a565b6001604060020a039081169150811415611707576113f288886001858960020180549050030361335e565b81811115611726576113f288886001858960020180549050030361335e565b8181116114015761158d88886001848960020180549050030361335e565b6002845460ff16600281111561175657fe5b14156113ff5761177388886001858960020180549050030361335e565b97506114018888886135f0565b505050505050505050565b60008060008061179a85612bb5565b92506000600384015460c060020a900460ff1660028111156117b857fe5b146117c55784935061194c565b600383015460006001604060020a039091161180156117fe57506003830154604060020a90046001604060020a03166117fc6138ff565b115b1561191b5760018301546002840180546118bb926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118535790505b505050506003870154600091508190608060020a90046001604060020a031681612d05565b60038401549092506118fb906001604060020a031660006040518059106118df5750595b9080825280602002602001820160405250600080866000612d05565b905061190c85828560000154612ff5565b80945061191885612bb5565b92505b61192485612c3f565b90506001604060020a03808216908616146119485761194885828560000154612ff5565b8093505b505050919050565b6001805490818082016119678382613df7565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156119e657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611a2c929160200190613e28565b50606082015181600201908051611a47929160200190613e28565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6001546000190190565b600080805b8351831015610ed8576001604060020a03848481518110611b6e57fe5b90602001906020020151169150604060020a848481518110611b8c57fe5b90602001906020020151811515611b9f57fe5b049050611bac8282610f43565b600190920191611b51565b6000806001604060020a03851615611def57611bd285612bf9565b90506002815460ff166002811115611be657fe5b14611bf057600080fd5b6014611de5826101006040519081016040528154909190829060ff166002811115611c1757fe5b6002811115611c2257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cee5780601f10611cc357610100808354040283529160200191611cee565b820191906000526020600020905b815481529060010190602001808311611cd157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d905780601f10611d6557610100808354040283529160200191611d90565b820191906000526020600020905b815481529060010190602001808311611d7357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613905565b10611def57600080fd5b60018054925082808201611e038382613df7565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff19166001836002811115611e8357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611ec9929160200190613e28565b50606082015181600201908051611ee4929160200190613e28565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000611fed82612bf9565b9050612014816101006040519081016040528154909190829060ff166002811115610fc257fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b6001805490818082016120838382613df7565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561210257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051612148929160200190613e28565b50606082015181600201908051612163929160200190613e28565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e0820151600491909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b600080805b8351831015610ed8576001604060020a0384848151811061227f57fe5b90602001906020020151169150604060020a84848151811061229d57fe5b906020019060200201518115156122b057fe5b0490506122bd8282610d9b565b600190920191612262565b60045481565b600455565b60008060006122e18561178b565b94506122ec85612bb5565b6003810154909350608060020a90046001604060020a0316151561230f57600080fd5b6001830154612326906001604060020a0316612bf9565b915061234d826101006040519081016040528154909190829060ff166002811115610fc257fe5b600383015461236b90608060020a90046001604060020a0316612c3f565b9050612378858286612ff5565b5050505050565b600080805b83518210156123c3576001604060020a038483815181106123a157fe5b906020019060200201511690506123b78161178b565b50600190910190612384565b5050919050565b60008080806001604060020a03861615156124105761240d6020604051908101604052806000815250602060405190810160405260008082526203f48090612070565b95505b61241986612bf9565b9350612440846101006040519081016040528154909190829060ff166002811115610fc257fe5b6000845460ff16600281111561245257fe5b1461245c57600080fd5b3492506000831161246c57600080fd5b600254600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561249f57600080fd5b6124ce8660006040518059106124b25750595b9080825280602002602001820160405250600080600080612d05565b91506124d982612bb5565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a361252c868385886112e6565b505050505050565b600061253f86612bf9565b90506001815460ff16600281111561255357fe5b1461255d57600080fd5b805433600160a060020a03908116610100909204161461257c57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516125af929160200190613e28565b50600281018380516125c5929160200190613e28565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600080805b845183101561252c576001604060020a0385848151811061264157fe5b90602001906020020151169150604060020a85848151811061265f57fe5b9060200190602002015181151561267257fe5b049050612681868383876112e6565b600190920191612624565b600061269786612bf9565b90506000815460ff1660028111156126ab57fe5b146126b557600080fd5b805433600160a060020a0390811661010090920416146126d457600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612707929160200190613e28565b506002810183805161271d929160200190613e28565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600254600090819033600160a060020a0390811691161461279757600080fd5b6127a084612bb5565b91506001600383015460c060020a900460ff1660028111156127be57fe5b146127c857600080fd5b6001820154600283018054612880926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561285b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116128185790505b505050506003860154600091508190608060020a90046001604060020a031681612d05565b9050610ecb8161178b565b600080612896613de5565b61289e613de5565b60008060008060006128af8a612bf9565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156129655780601f1061293a57610100808354040283529160200191612965565b820191906000526020600020905b81548152906001019060200180831161294857829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a045780601f106129d957610100808354040283529160200191612a04565b820191906000526020600020905b8154815290600101906020018083116129e757829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b8351831015610ed8576001604060020a03848481518110612a7257fe5b90602001906020020151169150604060020a848481518110612a9057fe5b90602001906020020151811515612aa357fe5b049050612ab08282612777565b600190920191612a55565b6000612ac686612bf9565b90506002815460ff166002811115612ada57fe5b14612ae457600080fd5b805433600160a060020a039081166101009092041614612b0357600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612b36929160200190613e28565b5060028101838051612b4c929160200190613e28565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600254600160a060020a031681565b600080546001604060020a03831610612bcd57600080fd5b600080546001604060020a038416908110612be457fe5b90600052602060002090600402019050919050565b6001546000906001604060020a03831610612c1357600080fd5b600180546001604060020a038416908110612c2a57fe5b90600052602060002090600502019050919050565b600080806001604060020a0384161515612c5c57600092506123c3565b612c6584612bb5565b6001810154909250612c7f906001604060020a0316612bf9565b90506000815460ff166002811115612c9357fe5b1415612ca1578392506123c3565b6002815460ff166002811115612cb357fe5b14612cba57fe5b6001820154612cd1906001604060020a0316610ce0565b1515612cdf578392506123c3565b6003820154612cfd90608060020a90046001604060020a0316612c3f565b949350505050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b83811015612d52578082015183820152602001612d3a565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a028152600801826002811115612dbf57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600360205260408120549193506001604060020a039091169150811115612e2857809250612fe9565b5060008054828252600360205260408220805467ffffffffffffffff19166001604060020a038316179055815490919060018101612e668382613ea6565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a03168152602001886002811115612ed757fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051612f22929160200190613ed2565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a836002811115612fdd57fe5b02179055505050508092505b50509695505050505050565b6000806000613007600187878761396f565b9250846001604060020a0316866001604060020a031614156130285761252c565b8215156130345761252c565b61303d86612bb5565b915061304885612bb5565b82549091508390101561305a57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36130b5600087878661396f565b50505050505050565b8060200151600160a060020a031633600160a060020a031614806130f757508060e00151600160a060020a031633600160a060020a0316145b151561310257600080fd5b50565b6000610ecb8260006040518059106124b25750599080825280602002602001820160405250600080600080612d05565b600080600061314386612bb5565b925060146132778460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561321157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116131ce5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561326457fe5b600281111561326f57fe5b905250613995565b1061328157600080fd5b61328a84610ce0565b1561329457600080fd5b6001830154600284018054613321926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561189657600091825260209182902080546001604060020a031684529082028301929091600891018084116118535750505050600388015460009250829150608060020a90046001604060020a031681612d05565b91506133518460006040518059106118df5750599080825280602002602001820160405250600080866000612d05565b905061252c868287612ff5565b600080613369613de5565b60008061337588612bb5565b600281015490945086900360405180591061338d5750595b90808252806020026020018201604052509250600091505b600284015486900382101561341b57600284018054839081106133c457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106133f957fe5b6001604060020a039092166020928302909101909101526001909101906133a5565b6001840154600385015461344b916001604060020a039081169186916000918291608060020a9091041681612d05565b9050613458888289612ff5565b979650505050505050565b600061346d613de5565b60008061347987612bb5565b60028101549094506014901061348e57600080fd5b60028401546001016040518059106134a35750595b90808252806020026020018201604052509250600091505b600284015482101561352e57600284018054839081106134d757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061350c57fe5b6001604060020a039092166020928302909101909101526001909101906134bb565b6002840154859084908151811061354157fe5b6001604060020a03928316602091820290920101526001850154600386015461357d929182169186916000918291608060020a90041681612d05565b90506130b5878288612ff5565b6000805b8360400151518110156135de57826001604060020a0316846040015182815181106135b557fe5b906020019060200201516001604060020a031614156135d6578091506135e9565b60010161358e565b6001604060020a0391505b5092915050565b6000806135fc85612bb5565b915060146136f28360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561321157600091825260209182902080546001604060020a031684529082028301929091600891018084116131ce5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561326457fe5b106136fc57600080fd5b61370583610ce0565b1561370f57600080fd5b600182015460028301805461236b926001604060020a031691906020808202016040519081016040528092919081815260200182805480156137a257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161375f5790505b5050505050856138d88660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561387257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161382f5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156138c557fe5b60028111156138d057fe5b905250613ac0565b6138e06138ff565b6003880154910190608060020a90046001604060020a03166000612d05565b60045490565b60008060028351600281111561391757fe5b1461391e57fe5b8260a001516001604060020a0316151561393b5760019150610d8a565b6139488360a00151612bf9565b9050610d87816101006040519081016040528154909190829060ff166002811115611c1757fe5b8061397d8585808685613b4a565b905061398c8584868685613b4a565b95945050505050565b6000808260a001516001604060020a031615156139b55760009150610d8a565b6139c28360a00151612bb5565b9050613ab68160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561321157600091825260209182902080546001604060020a031684529082028301929091600891018084116131ce5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561326457fe5b6001019392505050565b6000806000613ad28460200151612bf9565b60038101546001604060020a031693509150600090505b8360400151518110156123c357613b1884604001518281518110613b0957fe5b90602001906020020151612bf9565b60038101549092506001604060020a031683901115613b425760038201546001604060020a031692505b600101613ae9565b600080600080866001604060020a0316886001604060020a031614613b7157610100613b74565b60005b61ffff169250849350613b8688612bb5565b6001810154909250613ba6908a906001604060020a031689898789613c68565b9350600090505b60028201546001604060020a0382161015613c2157613c178983600201836001604060020a0316815481101515613be057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189613c68565b9350600101613bad565b600382015460006001604060020a039091161115613c5c576003820154613c59908a906001604060020a0316898960ff880189613c68565b93505b50505095945050505050565b80600080613c7588612bf9565b6004810154909150600160a060020a031615801590613c945750600083115b15612fe9578815613d4f576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b1515613d1e57600080fd5b6102c65a03f11515613d2f57600080fd5b505050604051805192505082821115613d4757600080fd5b819250612fe9565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b1515613dc557600080fd5b6102c65a03f11515613dd657600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b815481835581811511613e2357600502816005028360005260206000209182019101613e239190613f86565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e6957805160ff1916838001178555613e96565b82800160010185558215613e96579182015b82811115613e96578251825591602001919060010190613e7b565b50613ea2929150614011565b5090565b815481835581811511613e2357600402816004028360005260206000209182019101613e23919061402b565b82805482825590600052602060002090600301600490048101928215613f7a5791602002820160005b83821115613f4557835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302613efb565b8015613f785782816101000a8154906001604060020a030219169055600801602081600701049283019260010302613f45565b505b50613ea292915061408b565b610d9891905b80821115613ea257805474ffffffffffffffffffffffffffffffffffffffffff191681556000613fbf60018301826140b0565b613fcd6002830160006140b0565b5060038101805470ffffffffffffffffffffffffffffffffff1916905560048101805473ffffffffffffffffffffffffffffffffffffffff19169055600501613f8c565b610d9891905b80821115613ea25760008155600101614017565b610d9891905b80821115613ea257600080825560018201805467ffffffffffffffff1916905561405e60028301826140f4565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff19169055600401614031565b610d9891905b80821115613ea257805467ffffffffffffffff19168155600101614091565b50805460018160011615610100020316600290046000825580601f106140d65750613102565b601f0160209004906000526020600020908101906131029190614011565b50805460008255600301600490049060005260206000209081019061310291906140115600a165627a7a72305820ee56736790e5c0b3cc993536e5b199cb3e10bb7aa41fa118b3b5edbd7df4c53a0029" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620048968339810160405280805160008054600160a060020a03191633600160a060020a0316179055915081905060016200006060038262000098565b50600162000070600282620000cc565b5060048054600160a060020a031916600160a060020a03929092169190911790555062000264565b815481835581811511620000c757600502816005028360005260206000209182019101620000c79190620000fb565b505050565b815481835581811511620000c757600402816004028360005260206000209182019101620000c791906200016f565b6200016c91905b8082111562000168578054600160a860020a031916815560006200012a6001830182620001da565b6200013a600283016000620001da565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000102565b5090565b90565b6200016c91905b808211156200016857600080825560018201805467ffffffffffffffff19169055620001a6600283018262000225565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000176565b50805460018160011615610100020316600290046000825580601f1062000202575062000222565b601f01602090049060005260206000209081019062000222919062000247565b50565b5080546000825560030160049004906000526020600020908101906200022291905b6200016c91905b808211156200016857600081556001016200024e565b61462280620002746000396000f3006060604052600436106101be5763ffffffff60e060020a60003504166314e7b1dc81146101c35780632101a6ad1461027c57806329026614146102af5780632a8ec8cc146102c75780632af4c31e146102ec5780632ee888081461030b578063387402911461032d5780633f657a461461034557806343387983146103c357806347c5ef43146103e55780634eafbcd51461041457806350f8a8031461043357806352dc7dcc1461046e5780635503d9ba1461051a57806357adafb61461052d5780635afe68d01461057c578063666a342714610592578063710bf322146105b157806372116e92146105d0578063796d56541461068c57806379ba5097146106ab5780637c2d86f7146106be5780637f61fa93146106d157806381ea44081461077d5780638da5cb5b1461079c5780639398f5a2146107cb578063af9f45631461081a578063bde60ac91461083c578063cc19ecf714610856578063ce17273c14610911578063d091b55014610960578063d639cd7314610973578063db7c2314146109db578063e9c211e214610a96578063eba8ba0614610ab8578063ef3766e414610c0e578063f6b24b1c14610c5d578063fbfa77cf14610d18575b600080fd5b34156101ce57600080fd5b6101e56001604060020a0360043516602435610d2b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561023f578082015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561028757600080fd5b61029b6001604060020a0360043516610e50565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c5600435610f00565b005b34156102d257600080fd5b6102da610f36565b60405190815260200160405180910390f35b34156102f757600080fd5b6102c5600160a060020a0360043516610f41565b341561031657600080fd5b6102c56001604060020a0360043516602435610fd5565b341561033857600080fd5b6102c560043515156110f2565b341561035057600080fd5b6103646001604060020a0360043516611120565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103a957fe5b60ff16815260200197505050505050505060405180910390f35b34156103ce57600080fd5b6102c56001604060020a0360043516602435611185565b34156103f057600080fd5b6102c56001604060020a036004358116906024358116906044359060643516611528565b341561041f57600080fd5b61029b600160a060020a03600435166119cd565b341561043e57600080fd5b6104526001604060020a0360043516611a1b565b6040516001604060020a03909116815260200160405180910390f35b341561047957600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611be4915050565b341561052557600080fd5b6102da611ddd565b341561053857600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611de795505050505050565b341561058757600080fd5b6102c5600435611e52565b341561059d57600080fd5b6102c5600160a060020a0360043516611e85565b34156105bc57600080fd5b6102c5600160a060020a0360043516611f02565b34156105db57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611f739050565b341561069757600080fd5b6102c56001604060020a03600435166123a6565b34156106b657600080fd5b6102c5612434565b34156106c957600080fd5b61029b6124b4565b34156106dc57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124bd915050565b341561078857600080fd5b6102da600160a060020a03600435166126b5565b34156107a757600080fd5b6107af612744565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102c5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061275395505050505050565b341561082557600080fd5b6102c56001604060020a03600435166024356127be565b6102c56001604060020a036004358116906024351661286a565b341561086157600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506129d4915050565b341561091c57600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612abf95505050505050565b341561096b57600080fd5b6107af612af6565b341561097e57600080fd5b6102c5600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b05915050565b34156109e657600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612b72915050565b3415610aa157600080fd5b6102c56001604060020a0360043516602435612c5d565b3415610ac357600080fd5b610ad76001604060020a0360043516612d71565b60405180896002811115610ae757fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b68578082015183820152602001610b50565b50505050905090810190601f168015610b955780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610bcb578082015183820152602001610bb3565b50505050905090810190601f168015610bf85780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c1957600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f3695505050505050565b3415610c6857600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612fa1915050565b3415610d2357600080fd5b6107af61308c565b600080610d366142cf565b600080610d428761309b565b91508160020160018703815481101515610d5857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610d8c856130e1565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e405780601f10610e1557610100808354040283529160200191610e40565b820191906000526020600020905b815481529060010190602001808311610e2357829003601f168201915b5050505050925050509250925092565b600080610e5c836130e1565b90506000815460ff166002811115610e7057fe5b1415610e7f5760009150610efa565b6002815460ff166002811115610e9157fe5b14610e9857fe5b6003810154608060020a900460ff1615610eb55760019150610efa565b6003810154604060020a90046001604060020a03161515610ed95760009150610efa565b6003810154610ef790604060020a90046001604060020a0316610e50565b91505b50919050565b60005433600160a060020a03908116911614610f1b57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f5d57600080fd5b600160a060020a0382161515610f7257600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a03908116911614610ff557600080fd5b610ffe8461309b565b91506001600383015460c060020a900460ff16600281111561101c57fe5b1461102657600080fd5b60018201546002830180546110df926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110765790505b505050506003860154600091508190608060020a90046001604060020a03166002613127565b90506110ec848285613419565b50505050565b60005433600160a060020a0390811691161461110d57600080fd5b6007805460ff1916911515919091179055565b6000806000806000806000806111358961309b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b600080600061119385611a1b565b945061119e8561309b565b92506000600384015460c060020a900460ff1660028111156111bc57fe5b146111c657600080fd5b60018301546111dd906001604060020a03166130e1565b91506113d2826101006040519081016040528154909190829060ff16600281111561120457fe5b600281111561120f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112db5780601f106112b0576101008083540402835291602001916112db565b820191906000526020600020905b8154815290600101906020018083116112be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526134e2565b600183015460028401805461148b926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561146557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114225790505b505050506003870154600091508190608060020a90046001604060020a03166001613127565b9050611498858286613419565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b5050505050505050565b600080600080600061153988611a1b565b97506115448861309b565b945061154f866130e1565b935061155a896130e1565b9250611581836101006040519081016040528154909190829060ff16600281111561120457fe5b6000600386015460c060020a900460ff16600281111561159d57fe5b146115a757600080fd5b60018501546001604060020a038a811691161415611648576000845460ff1660028111156115d157fe5b14156115e7576115e2888888613529565b611643565b6002845460ff1660028111156115f957fe5b141561160a576115e2888888613559565b6001845460ff16600281111561161c57fe5b14156116415761163488888760020180549050613782565b97506115e2888888613887565bfe5b6119c2565b6117798560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116cf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561176557fe5b600281111561177057fe5b9052508a6139ae565b6001604060020a0390811692508214611641576000845460ff16600281111561179e57fe5b14156117d55760018501546001604060020a038781169116146117bd57fe5b6117cf88888760020180549050613782565b506119c2565b6001845460ff1660028111156117e757fe5b14156119865761191e8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118b757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118745790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561190a57fe5b600281111561191557fe5b905250876139ae565b6001604060020a03908116915081141561194957611634888860018589600201805490500303613782565b8181111561196857611634888860018589600201805490500303613782565b818111611643576117cf888860018489600201805490500303613782565b6002845460ff16600281111561199857fe5b1415611641576119b5888860018589600201805490500303613782565b9750611643888888613a14565b505050505050505050565b600754600090819060ff1615806119eb5750600160a060020a038316155b156119f95760019150610efa565b611a02836126b5565b60009081526006602052604090205460ff169392505050565b600080600080611a2a8561309b565b92506000600384015460c060020a900460ff166002811115611a4857fe5b14611a5557849350611bdc565b600383015460006001604060020a03909116118015611a8e57506003830154604060020a90046001604060020a0316611a8c613d23565b115b15611bab576001830154600284018054611b4b926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611ae35790505b505050506003870154600091508190608060020a90046001604060020a031681613127565b6003840154909250611b8b906001604060020a03166000604051805910611b6f5750595b9080825280602002602001820160405250600080866000613127565b9050611b9c85828560000154613419565b809450611ba88561309b565b92505b611bb485613d27565b90506001604060020a0380821690861614611bd857611bd885828560000154613419565b8093505b505050919050565b6000611bef826119cd565b1515611bfa57600080fd5b5060038054908160018101611c0f83826142e1565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c8e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cd4929160200190614312565b50606082015181600201908051611cef929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b83518310156110ec576001604060020a03848481518110611e0957fe5b90602001906020020151169150604060020a848481518110611e2757fe5b90602001906020020151811515611e3a57fe5b049050611e478282611185565b600190920191611dec565b60005433600160a060020a03908116911614611e6d57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611ea057600080fd5b610dac600160a060020a03821614611eb757600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f1d57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611f7f836119cd565b1515611f8a57600080fd5b6001604060020a038516156121bf57611fa2856130e1565b90506002815460ff166002811115611fb657fe5b14611fc057600080fd5b60146121b5826101006040519081016040528154909190829060ff166002811115611fe757fe5b6002811115611ff257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121605780601f1061213557610100808354040283529160200191612160565b820191906000526020600020905b81548152906001019060200180831161214357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613def565b106121bf57600080fd5b60038054925082600181016121d483826142e1565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561225457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161229a929160200190614312565b506060820151816002019080516122b5929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123b1826130e1565b90506123d8816101006040519081016040528154909190829060ff16600281111561120457fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461245257600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006124c8826119cd565b15156124d357600080fd5b50600380549081600181016124e883826142e1565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ad929160200190614312565b506060820151816002019080516125c8929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126bf6142cf565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b602083106127105780518252601f1990920191602091820191016126f1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b83518310156110ec576001604060020a0384848151811061277557fe5b90602001906020020151169150604060020a84848151811061279357fe5b906020019060200201518115156127a657fe5b0490506127b38282610fd5565b600190920191612758565b60008060006127cc85611a1b565b94506127d78561309b565b6003810154909350608060020a90046001604060020a031615156127fa57600080fd5b6001830154612811906001604060020a03166130e1565b9150612838826101006040519081016040528154909190829060ff16600281111561120457fe5b600383015461285690608060020a90046001604060020a0316613d27565b9050612863858286613419565b5050505050565b60008080806001604060020a03861615156128b0576128ad6020604051908101604052806000815250602060405190810160405260008082526203f480906124bd565b95505b6128b9866130e1565b93506128e0846101006040519081016040528154909190829060ff16600281111561120457fe5b6000845460ff1660028111156128f257fe5b146128fc57600080fd5b3492506000831161290c57600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561293f57600080fd5b61296e8660006040518059106129525750595b9080825280602002602001820160405250600080600080613127565b91506129798261309b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36129cc86838588611528565b505050505050565b60006129df866130e1565b90506001815460ff1660028111156129f357fe5b146129fd57600080fd5b805433600160a060020a039081166101009092041614612a1c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a4f929160200190614312565b5060028101838051612a65929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612af257612ae9828281518110612ada57fe5b90602001906020020151611a1b565b50600101612ac2565b5050565b600154600160a060020a031681565b600080805b84518310156129cc576001604060020a03858481518110612b2757fe5b90602001906020020151169150604060020a858481518110612b4557fe5b90602001906020020151811515612b5857fe5b049050612b6786838387611528565b600190920191612b0a565b6000612b7d866130e1565b90506000815460ff166002811115612b9157fe5b14612b9b57600080fd5b805433600160a060020a039081166101009092041614612bba57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612bed929160200190614312565b5060028101838051612c03929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612c7d57600080fd5b612c868461309b565b91506001600383015460c060020a900460ff166002811115612ca457fe5b14612cae57600080fd5b6001820154600283018054612d66926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d4157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612cfe5790505b505050506003860154600091508190608060020a90046001604060020a031681613127565b90506110df81611a1b565b600080612d7c6142cf565b612d846142cf565b6000806000806000612d958a6130e1565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e4b5780601f10612e2057610100808354040283529160200191612e4b565b820191906000526020600020905b815481529060010190602001808311612e2e57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eea5780601f10612ebf57610100808354040283529160200191612eea565b820191906000526020600020905b815481529060010190602001808311612ecd57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b83518310156110ec576001604060020a03848481518110612f5857fe5b90602001906020020151169150604060020a848481518110612f7657fe5b90602001906020020151811515612f8957fe5b049050612f968282612c5d565b600190920191612f3b565b6000612fac866130e1565b90506002815460ff166002811115612fc057fe5b14612fca57600080fd5b805433600160a060020a039081166101009092041614612fe957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161301c929160200190614312565b5060028101838051613032929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130b557600080fd5b600280546001604060020a0384169081106130cc57fe5b90600052602060002090600402019050919050565b6003546000906001604060020a038316106130fb57600080fd5b600380546001604060020a03841690811061311257fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561317457808201518382015260200161315c565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156131e157fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561324a5780925061340d565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161328a8382614390565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156132fb57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556040820151816002019080516133469291602001906143bc565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561340157fe5b02179055505050508092505b50509695505050505050565b600080600061342b6001878787613e59565b9250846001604060020a0316866001604060020a0316141561344c576129cc565b821515613458576129cc565b6134618661309b565b915061346c8561309b565b82549091508390101561347e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36134d96000878786613e59565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061351b57508060e00151600160a060020a031633600160a060020a0316145b151561352657600080fd5b50565b60006110df8260006040518059106129525750599080825280602002602001820160405250600080600080613127565b60008060006135678661309b565b9250601461369b8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116135f25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b600281111561369357fe5b905250613e7f565b106136a557600080fd5b6136ae84610e50565b156136b857600080fd5b6001830154600284018054613745926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611ae35750505050600388015460009250829150608060020a90046001604060020a031681613127565b9150613775846000604051805910611b6f5750599080825280602002602001820160405250600080866000613127565b90506129cc868287613419565b60008061378d6142cf565b6000806137998861309b565b60028101549094508690036040518059106137b15750595b90808252806020026020018201604052509250600091505b600284015486900382101561383f57600284018054839081106137e857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061381d57fe5b6001604060020a039092166020928302909101909101526001909101906137c9565b6001840154600385015461386f916001604060020a039081169186916000918291608060020a9091041681613127565b905061387c888289613419565b979650505050505050565b60006138916142cf565b60008061389d8761309b565b6002810154909450601490106138b257600080fd5b60028401546001016040518059106138c75750595b90808252806020026020018201604052509250600091505b600284015482101561395257600284018054839081106138fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061393057fe5b6001604060020a039092166020928302909101909101526001909101906138df565b6002840154859084908151811061396557fe5b6001604060020a0392831660209182029092010152600185015460038601546139a1929182169186916000918291608060020a90041681613127565b90506134d9878288613419565b6000805b836040015151811015613a0257826001604060020a0316846040015182815181106139d957fe5b906020019060200201516001604060020a031614156139fa57809150613a0d565b6001016139b2565b6001604060020a0391505b5092915050565b600080613a208561309b565b91506014613b168360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b10613b2057600080fd5b613b2983610e50565b15613b3357600080fd5b6001820154600283018054612856926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b505050505085613cfc8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613c9657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c535790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613ce957fe5b6002811115613cf457fe5b905250613faa565b613d04613d23565b6003880154910190608060020a90046001604060020a03166000613127565b4290565b600080806001604060020a0384161515613d445760009250613de8565b613d4d8461309b565b6001810154909250613d67906001604060020a03166130e1565b90506000815460ff166002811115613d7b57fe5b1415613d8957839250613de8565b6002815460ff166002811115613d9b57fe5b14613da257fe5b6001820154613db9906001604060020a0316610e50565b1515613dc757839250613de8565b6003820154613de590608060020a90046001604060020a0316613d27565b92505b5050919050565b600080600283516002811115613e0157fe5b14613e0857fe5b8260a001516001604060020a03161515613e255760019150610efa565b613e328360a001516130e1565b9050610ef7816101006040519081016040528154909190829060ff166002811115611fe757fe5b80613e678585808685614034565b9050613e768584868685614034565b95945050505050565b6000808260a001516001604060020a03161515613e9f5760009150610efa565b613eac8360a0015161309b565b9050613fa08160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b6001019392505050565b6000806000613fbc84602001516130e1565b60038101546001604060020a031693509150600090505b836040015151811015613de85761400284604001518281518110613ff357fe5b906020019060200201516130e1565b60038101549092506001604060020a03168390111561402c5760038201546001604060020a031692505b600101613fd3565b600080600080866001604060020a0316886001604060020a03161461405b5761010061405e565b60005b61ffff1692508493506140708861309b565b6001810154909250614090908a906001604060020a031689898789614152565b9350600090505b60028201546001604060020a038216101561410b576141018983600201836001604060020a03168154811015156140ca57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189614152565b9350600101614097565b600382015460006001604060020a039091161115614146576003820154614143908a906001604060020a0316898960ff880189614152565b93505b50505095945050505050565b8060008061415f886130e1565b6004810154909150600160a060020a03161580159061417e5750600083115b1561340d578815614239576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561420857600080fd5b6102c65a03f1151561421957600080fd5b50505060405180519250508282111561423157600080fd5b81925061340d565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142af57600080fd5b6102c65a03f115156142c057600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b81548183558181151161430d5760050281600502836000526020600020918201910161430d9190614470565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061435357805160ff1916838001178555614380565b82800160010185558215614380579182015b82811115614380578251825591602001919060010190614365565b5061438c9291506144ee565b5090565b81548183558181151161430d5760040281600402836000526020600020918201910161430d9190614508565b828054828255906000526020600020906003016004900481019282156144645791602002820160005b8382111561442f57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026143e5565b80156144625782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261442f565b505b5061438c929150614568565b610f3e91905b8082111561438c57805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144a9600183018261458d565b6144b760028301600061458d565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501614476565b610f3e91905b8082111561438c57600081556001016144f4565b610f3e91905b8082111561438c57600080825560018201805467ffffffffffffffff1916905561453b60028301826145d1565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161450e565b610f3e91905b8082111561438c57805467ffffffffffffffff1916815560010161456e565b50805460018160011615610100020316600290046000825580601f106145b35750613526565b601f01602090049060005260206000209081019061352691906144ee565b50805460008255600301600490049060005260206000209081019061352691906144ee5600a165627a7a72305820b34c343d6bf8129ebc143531caa33d0b61f92fcc44382fe9efbe44c69b554a920029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a60003504166314e7b1dc81146101c35780632101a6ad1461027c57806329026614146102af5780632a8ec8cc146102c75780632af4c31e146102ec5780632ee888081461030b578063387402911461032d5780633f657a461461034557806343387983146103c357806347c5ef43146103e55780634eafbcd51461041457806350f8a8031461043357806352dc7dcc1461046e5780635503d9ba1461051a57806357adafb61461052d5780635afe68d01461057c578063666a342714610592578063710bf322146105b157806372116e92146105d0578063796d56541461068c57806379ba5097146106ab5780637c2d86f7146106be5780637f61fa93146106d157806381ea44081461077d5780638da5cb5b1461079c5780639398f5a2146107cb578063af9f45631461081a578063bde60ac91461083c578063cc19ecf714610856578063ce17273c14610911578063d091b55014610960578063d639cd7314610973578063db7c2314146109db578063e9c211e214610a96578063eba8ba0614610ab8578063ef3766e414610c0e578063f6b24b1c14610c5d578063fbfa77cf14610d18575b600080fd5b34156101ce57600080fd5b6101e56001604060020a0360043516602435610d2b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561023f578082015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561028757600080fd5b61029b6001604060020a0360043516610e50565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c5600435610f00565b005b34156102d257600080fd5b6102da610f36565b60405190815260200160405180910390f35b34156102f757600080fd5b6102c5600160a060020a0360043516610f41565b341561031657600080fd5b6102c56001604060020a0360043516602435610fd5565b341561033857600080fd5b6102c560043515156110f2565b341561035057600080fd5b6103646001604060020a0360043516611120565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103a957fe5b60ff16815260200197505050505050505060405180910390f35b34156103ce57600080fd5b6102c56001604060020a0360043516602435611185565b34156103f057600080fd5b6102c56001604060020a036004358116906024358116906044359060643516611528565b341561041f57600080fd5b61029b600160a060020a03600435166119cd565b341561043e57600080fd5b6104526001604060020a0360043516611a1b565b6040516001604060020a03909116815260200160405180910390f35b341561047957600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611be4915050565b341561052557600080fd5b6102da611ddd565b341561053857600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611de795505050505050565b341561058757600080fd5b6102c5600435611e52565b341561059d57600080fd5b6102c5600160a060020a0360043516611e85565b34156105bc57600080fd5b6102c5600160a060020a0360043516611f02565b34156105db57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611f739050565b341561069757600080fd5b6102c56001604060020a03600435166123a6565b34156106b657600080fd5b6102c5612434565b34156106c957600080fd5b61029b6124b4565b34156106dc57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124bd915050565b341561078857600080fd5b6102da600160a060020a03600435166126b5565b34156107a757600080fd5b6107af612744565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102c5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061275395505050505050565b341561082557600080fd5b6102c56001604060020a03600435166024356127be565b6102c56001604060020a036004358116906024351661286a565b341561086157600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506129d4915050565b341561091c57600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612abf95505050505050565b341561096b57600080fd5b6107af612af6565b341561097e57600080fd5b6102c5600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b05915050565b34156109e657600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612b72915050565b3415610aa157600080fd5b6102c56001604060020a0360043516602435612c5d565b3415610ac357600080fd5b610ad76001604060020a0360043516612d71565b60405180896002811115610ae757fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b68578082015183820152602001610b50565b50505050905090810190601f168015610b955780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610bcb578082015183820152602001610bb3565b50505050905090810190601f168015610bf85780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c1957600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f3695505050505050565b3415610c6857600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612fa1915050565b3415610d2357600080fd5b6107af61308c565b600080610d366142cf565b600080610d428761309b565b91508160020160018703815481101515610d5857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610d8c856130e1565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e405780601f10610e1557610100808354040283529160200191610e40565b820191906000526020600020905b815481529060010190602001808311610e2357829003601f168201915b5050505050925050509250925092565b600080610e5c836130e1565b90506000815460ff166002811115610e7057fe5b1415610e7f5760009150610efa565b6002815460ff166002811115610e9157fe5b14610e9857fe5b6003810154608060020a900460ff1615610eb55760019150610efa565b6003810154604060020a90046001604060020a03161515610ed95760009150610efa565b6003810154610ef790604060020a90046001604060020a0316610e50565b91505b50919050565b60005433600160a060020a03908116911614610f1b57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f5d57600080fd5b600160a060020a0382161515610f7257600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a03908116911614610ff557600080fd5b610ffe8461309b565b91506001600383015460c060020a900460ff16600281111561101c57fe5b1461102657600080fd5b60018201546002830180546110df926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110765790505b505050506003860154600091508190608060020a90046001604060020a03166002613127565b90506110ec848285613419565b50505050565b60005433600160a060020a0390811691161461110d57600080fd5b6007805460ff1916911515919091179055565b6000806000806000806000806111358961309b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b600080600061119385611a1b565b945061119e8561309b565b92506000600384015460c060020a900460ff1660028111156111bc57fe5b146111c657600080fd5b60018301546111dd906001604060020a03166130e1565b91506113d2826101006040519081016040528154909190829060ff16600281111561120457fe5b600281111561120f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112db5780601f106112b0576101008083540402835291602001916112db565b820191906000526020600020905b8154815290600101906020018083116112be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526134e2565b600183015460028401805461148b926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561146557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114225790505b505050506003870154600091508190608060020a90046001604060020a03166001613127565b9050611498858286613419565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b5050505050505050565b600080600080600061153988611a1b565b97506115448861309b565b945061154f866130e1565b935061155a896130e1565b9250611581836101006040519081016040528154909190829060ff16600281111561120457fe5b6000600386015460c060020a900460ff16600281111561159d57fe5b146115a757600080fd5b60018501546001604060020a038a811691161415611648576000845460ff1660028111156115d157fe5b14156115e7576115e2888888613529565b611643565b6002845460ff1660028111156115f957fe5b141561160a576115e2888888613559565b6001845460ff16600281111561161c57fe5b14156116415761163488888760020180549050613782565b97506115e2888888613887565bfe5b6119c2565b6117798560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116cf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561176557fe5b600281111561177057fe5b9052508a6139ae565b6001604060020a0390811692508214611641576000845460ff16600281111561179e57fe5b14156117d55760018501546001604060020a038781169116146117bd57fe5b6117cf88888760020180549050613782565b506119c2565b6001845460ff1660028111156117e757fe5b14156119865761191e8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118b757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118745790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561190a57fe5b600281111561191557fe5b905250876139ae565b6001604060020a03908116915081141561194957611634888860018589600201805490500303613782565b8181111561196857611634888860018589600201805490500303613782565b818111611643576117cf888860018489600201805490500303613782565b6002845460ff16600281111561199857fe5b1415611641576119b5888860018589600201805490500303613782565b9750611643888888613a14565b505050505050505050565b600754600090819060ff1615806119eb5750600160a060020a038316155b156119f95760019150610efa565b611a02836126b5565b60009081526006602052604090205460ff169392505050565b600080600080611a2a8561309b565b92506000600384015460c060020a900460ff166002811115611a4857fe5b14611a5557849350611bdc565b600383015460006001604060020a03909116118015611a8e57506003830154604060020a90046001604060020a0316611a8c613d23565b115b15611bab576001830154600284018054611b4b926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611ae35790505b505050506003870154600091508190608060020a90046001604060020a031681613127565b6003840154909250611b8b906001604060020a03166000604051805910611b6f5750595b9080825280602002602001820160405250600080866000613127565b9050611b9c85828560000154613419565b809450611ba88561309b565b92505b611bb485613d27565b90506001604060020a0380821690861614611bd857611bd885828560000154613419565b8093505b505050919050565b6000611bef826119cd565b1515611bfa57600080fd5b5060038054908160018101611c0f83826142e1565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c8e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cd4929160200190614312565b50606082015181600201908051611cef929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b83518310156110ec576001604060020a03848481518110611e0957fe5b90602001906020020151169150604060020a848481518110611e2757fe5b90602001906020020151811515611e3a57fe5b049050611e478282611185565b600190920191611dec565b60005433600160a060020a03908116911614611e6d57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611ea057600080fd5b610dac600160a060020a03821614611eb757600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f1d57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611f7f836119cd565b1515611f8a57600080fd5b6001604060020a038516156121bf57611fa2856130e1565b90506002815460ff166002811115611fb657fe5b14611fc057600080fd5b60146121b5826101006040519081016040528154909190829060ff166002811115611fe757fe5b6002811115611ff257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121605780601f1061213557610100808354040283529160200191612160565b820191906000526020600020905b81548152906001019060200180831161214357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613def565b106121bf57600080fd5b60038054925082600181016121d483826142e1565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561225457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161229a929160200190614312565b506060820151816002019080516122b5929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123b1826130e1565b90506123d8816101006040519081016040528154909190829060ff16600281111561120457fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461245257600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006124c8826119cd565b15156124d357600080fd5b50600380549081600181016124e883826142e1565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ad929160200190614312565b506060820151816002019080516125c8929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126bf6142cf565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b602083106127105780518252601f1990920191602091820191016126f1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b83518310156110ec576001604060020a0384848151811061277557fe5b90602001906020020151169150604060020a84848151811061279357fe5b906020019060200201518115156127a657fe5b0490506127b38282610fd5565b600190920191612758565b60008060006127cc85611a1b565b94506127d78561309b565b6003810154909350608060020a90046001604060020a031615156127fa57600080fd5b6001830154612811906001604060020a03166130e1565b9150612838826101006040519081016040528154909190829060ff16600281111561120457fe5b600383015461285690608060020a90046001604060020a0316613d27565b9050612863858286613419565b5050505050565b60008080806001604060020a03861615156128b0576128ad6020604051908101604052806000815250602060405190810160405260008082526203f480906124bd565b95505b6128b9866130e1565b93506128e0846101006040519081016040528154909190829060ff16600281111561120457fe5b6000845460ff1660028111156128f257fe5b146128fc57600080fd5b3492506000831161290c57600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561293f57600080fd5b61296e8660006040518059106129525750595b9080825280602002602001820160405250600080600080613127565b91506129798261309b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36129cc86838588611528565b505050505050565b60006129df866130e1565b90506001815460ff1660028111156129f357fe5b146129fd57600080fd5b805433600160a060020a039081166101009092041614612a1c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a4f929160200190614312565b5060028101838051612a65929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612af257612ae9828281518110612ada57fe5b90602001906020020151611a1b565b50600101612ac2565b5050565b600154600160a060020a031681565b600080805b84518310156129cc576001604060020a03858481518110612b2757fe5b90602001906020020151169150604060020a858481518110612b4557fe5b90602001906020020151811515612b5857fe5b049050612b6786838387611528565b600190920191612b0a565b6000612b7d866130e1565b90506000815460ff166002811115612b9157fe5b14612b9b57600080fd5b805433600160a060020a039081166101009092041614612bba57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612bed929160200190614312565b5060028101838051612c03929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612c7d57600080fd5b612c868461309b565b91506001600383015460c060020a900460ff166002811115612ca457fe5b14612cae57600080fd5b6001820154600283018054612d66926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d4157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612cfe5790505b505050506003860154600091508190608060020a90046001604060020a031681613127565b90506110df81611a1b565b600080612d7c6142cf565b612d846142cf565b6000806000806000612d958a6130e1565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e4b5780601f10612e2057610100808354040283529160200191612e4b565b820191906000526020600020905b815481529060010190602001808311612e2e57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eea5780601f10612ebf57610100808354040283529160200191612eea565b820191906000526020600020905b815481529060010190602001808311612ecd57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b83518310156110ec576001604060020a03848481518110612f5857fe5b90602001906020020151169150604060020a848481518110612f7657fe5b90602001906020020151811515612f8957fe5b049050612f968282612c5d565b600190920191612f3b565b6000612fac866130e1565b90506002815460ff166002811115612fc057fe5b14612fca57600080fd5b805433600160a060020a039081166101009092041614612fe957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161301c929160200190614312565b5060028101838051613032929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130b557600080fd5b600280546001604060020a0384169081106130cc57fe5b90600052602060002090600402019050919050565b6003546000906001604060020a038316106130fb57600080fd5b600380546001604060020a03841690811061311257fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561317457808201518382015260200161315c565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156131e157fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561324a5780925061340d565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161328a8382614390565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156132fb57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556040820151816002019080516133469291602001906143bc565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561340157fe5b02179055505050508092505b50509695505050505050565b600080600061342b6001878787613e59565b9250846001604060020a0316866001604060020a0316141561344c576129cc565b821515613458576129cc565b6134618661309b565b915061346c8561309b565b82549091508390101561347e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36134d96000878786613e59565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061351b57508060e00151600160a060020a031633600160a060020a0316145b151561352657600080fd5b50565b60006110df8260006040518059106129525750599080825280602002602001820160405250600080600080613127565b60008060006135678661309b565b9250601461369b8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116135f25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b600281111561369357fe5b905250613e7f565b106136a557600080fd5b6136ae84610e50565b156136b857600080fd5b6001830154600284018054613745926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611ae35750505050600388015460009250829150608060020a90046001604060020a031681613127565b9150613775846000604051805910611b6f5750599080825280602002602001820160405250600080866000613127565b90506129cc868287613419565b60008061378d6142cf565b6000806137998861309b565b60028101549094508690036040518059106137b15750595b90808252806020026020018201604052509250600091505b600284015486900382101561383f57600284018054839081106137e857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061381d57fe5b6001604060020a039092166020928302909101909101526001909101906137c9565b6001840154600385015461386f916001604060020a039081169186916000918291608060020a9091041681613127565b905061387c888289613419565b979650505050505050565b60006138916142cf565b60008061389d8761309b565b6002810154909450601490106138b257600080fd5b60028401546001016040518059106138c75750595b90808252806020026020018201604052509250600091505b600284015482101561395257600284018054839081106138fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061393057fe5b6001604060020a039092166020928302909101909101526001909101906138df565b6002840154859084908151811061396557fe5b6001604060020a0392831660209182029092010152600185015460038601546139a1929182169186916000918291608060020a90041681613127565b90506134d9878288613419565b6000805b836040015151811015613a0257826001604060020a0316846040015182815181106139d957fe5b906020019060200201516001604060020a031614156139fa57809150613a0d565b6001016139b2565b6001604060020a0391505b5092915050565b600080613a208561309b565b91506014613b168360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b10613b2057600080fd5b613b2983610e50565b15613b3357600080fd5b6001820154600283018054612856926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b505050505085613cfc8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613c9657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c535790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613ce957fe5b6002811115613cf457fe5b905250613faa565b613d04613d23565b6003880154910190608060020a90046001604060020a03166000613127565b4290565b600080806001604060020a0384161515613d445760009250613de8565b613d4d8461309b565b6001810154909250613d67906001604060020a03166130e1565b90506000815460ff166002811115613d7b57fe5b1415613d8957839250613de8565b6002815460ff166002811115613d9b57fe5b14613da257fe5b6001820154613db9906001604060020a0316610e50565b1515613dc757839250613de8565b6003820154613de590608060020a90046001604060020a0316613d27565b92505b5050919050565b600080600283516002811115613e0157fe5b14613e0857fe5b8260a001516001604060020a03161515613e255760019150610efa565b613e328360a001516130e1565b9050610ef7816101006040519081016040528154909190829060ff166002811115611fe757fe5b80613e678585808685614034565b9050613e768584868685614034565b95945050505050565b6000808260a001516001604060020a03161515613e9f5760009150610efa565b613eac8360a0015161309b565b9050613fa08160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b6001019392505050565b6000806000613fbc84602001516130e1565b60038101546001604060020a031693509150600090505b836040015151811015613de85761400284604001518281518110613ff357fe5b906020019060200201516130e1565b60038101549092506001604060020a03168390111561402c5760038201546001604060020a031692505b600101613fd3565b600080600080866001604060020a0316886001604060020a03161461405b5761010061405e565b60005b61ffff1692508493506140708861309b565b6001810154909250614090908a906001604060020a031689898789614152565b9350600090505b60028201546001604060020a038216101561410b576141018983600201836001604060020a03168154811015156140ca57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189614152565b9350600101614097565b600382015460006001604060020a039091161115614146576003820154614143908a906001604060020a0316898960ff880189614152565b93505b50505095945050505050565b8060008061415f886130e1565b6004810154909150600160a060020a03161580159061417e5750600083115b1561340d578815614239576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561420857600080fd5b6102c65a03f1151561421957600080fd5b50505060405180519250508282111561423157600080fd5b81925061340d565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142af57600080fd5b6102c65a03f115156142c057600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b81548183558181151161430d5760050281600502836000526020600020918201910161430d9190614470565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061435357805160ff1916838001178555614380565b82800160010185558215614380579182015b82811115614380578251825591602001919060010190614365565b5061438c9291506144ee565b5090565b81548183558181151161430d5760040281600402836000526020600020918201910161430d9190614508565b828054828255906000526020600020906003016004900481019282156144645791602002820160005b8382111561442f57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026143e5565b80156144625782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261442f565b505b5061438c929150614568565b610f3e91905b8082111561438c57805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144a9600183018261458d565b6144b760028301600061458d565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501614476565b610f3e91905b8082111561438c57600081556001016144f4565b610f3e91905b8082111561438c57600080825560018201805467ffffffffffffffff1916905561453b60028301826145d1565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161450e565b610f3e91905b8082111561438c57805467ffffffffffffffff1916815560010161456e565b50805460018160011615610100020316600290046000825580601f106145b35750613526565b601f01602090049060005260206000209081019061352691906144ee565b50805460008255600301600490049060005260206000209081019061352691906144ee5600a165627a7a72305820b34c343d6bf8129ebc143531caa33d0b61f92fcc44382fe9efbe44c69b554a920029" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620022388339810160405280805160008054600160a060020a03191633600160a060020a03161790559150600190506200005f60038262000096565b5060016200006f600282620000ca565b5060048054600160a060020a031916600160a060020a039290921691909117905562000262565b815481835581811511620000c557600502816005028360005260206000209182019101620000c59190620000f9565b505050565b815481835581811511620000c557600402816004028360005260206000209182019101620000c591906200016d565b6200016a91905b8082111562000166578054600160a860020a03191681556000620001286001830182620001d8565b62000138600283016000620001d8565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000100565b5090565b90565b6200016a91905b808211156200016657600080825560018201805467ffffffffffffffff19169055620001a4600283018262000223565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000174565b50805460018160011615610100020316600290046000825580601f1062000200575062000220565b601f01602090049060005260206000209081019062000220919062000245565b50565b5080546000825560030160049004906000526020600020908101906200022091905b6200016a91905b808211156200016657600081556001016200024c565b611fc680620002726000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a72305820fa57f127ae025a3754eec6e9af4574b6b0fbaa17206b8369ae274ecb90fc24550029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a72305820fa57f127ae025a3754eec6e9af4574b6b0fbaa17206b8369ae274ecb90fc24550029" +exports.LiquidPledgingMockAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingMockByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620048e88339810160405280805160008054600160a060020a03191633600160a060020a03161790559150819050806001620000616003826200009e565b50600162000071600282620000d2565b5060048054600160a060020a031916600160a060020a03929092169190911790555050426008556200026a565b815481835581811511620000cd57600502816005028360005260206000209182019101620000cd919062000101565b505050565b815481835581811511620000cd57600402816004028360005260206000209182019101620000cd919062000175565b6200017291905b808211156200016e578054600160a860020a03191681556000620001306001830182620001e0565b62000140600283016000620001e0565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000108565b5090565b90565b6200017291905b808211156200016e57600080825560018201805467ffffffffffffffff19169055620001ac60028301826200022b565b506003810180547fffffffffffffff000000000000000000000000000000000000000000000000001690556004016200017c565b50805460018160011615610100020316600290046000825580601f1062000208575062000228565b601f0160209004906000526020600020908101906200022891906200024d565b50565b5080546000825560030160049004906000526020600020908101906200022891905b6200017291905b808211156200016e576000815560010162000254565b61466e806200027a6000396000f3006060604052600436106101d45763ffffffff60e060020a60003504166314e7b1dc81146101d95780632101a6ad1461029257806329026614146102c55780632a8ec8cc146102dd5780632af4c31e146103025780632ee888081461032157806338740291146103435780633f657a461461035b57806343387983146103d957806347c5ef43146103fb5780634eafbcd51461042a57806350f8a8031461044957806352dc7dcc146104845780635503d9ba1461053057806357adafb6146105435780635afe68d014610592578063666a3427146105a8578063710bf322146105c757806372116e92146105e6578063796d5654146106a257806379ba5097146106c15780637c2d86f7146106d45780637f61fa93146106e757806381ea4408146107935780638da5cb5b146107b25780639398f5a2146107e15780639da47a6b14610830578063ab8be23114610843578063af9f456314610859578063bde60ac91461087b578063cc19ecf714610895578063ce17273c14610950578063d091b5501461099f578063d639cd73146109b2578063db7c231414610a1a578063e9c211e214610ad5578063eba8ba0614610af7578063ef3766e414610c4d578063f6b24b1c14610c9c578063fbfa77cf14610d57575b600080fd5b34156101e457600080fd5b6101fb6001604060020a0360043516602435610d6a565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561025557808201518382015260200161023d565b50505050905090810190601f1680156102825780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561029d57600080fd5b6102b16001604060020a0360043516610e8f565b604051901515815260200160405180910390f35b34156102d057600080fd5b6102db600435610f3f565b005b34156102e857600080fd5b6102f0610f75565b60405190815260200160405180910390f35b341561030d57600080fd5b6102db600160a060020a0360043516610f80565b341561032c57600080fd5b6102db6001604060020a0360043516602435611014565b341561034e57600080fd5b6102db6004351515611131565b341561036657600080fd5b61037a6001604060020a036004351661115f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103bf57fe5b60ff16815260200197505050505050505060405180910390f35b34156103e457600080fd5b6102db6001604060020a03600435166024356111c4565b341561040657600080fd5b6102db6001604060020a036004358116906024358116906044359060643516611567565b341561043557600080fd5b6102b1600160a060020a0360043516611a0c565b341561045457600080fd5b6104686001604060020a0360043516611a5a565b6040516001604060020a03909116815260200160405180910390f35b341561048f57600080fd5b61046860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611c23915050565b341561053b57600080fd5b6102f0611e1c565b341561054e57600080fd5b6102db6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611e2695505050505050565b341561059d57600080fd5b6102db600435611e91565b34156105b357600080fd5b6102db600160a060020a0360043516611ec4565b34156105d257600080fd5b6102db600160a060020a0360043516611f41565b34156105f157600080fd5b61046860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611fb29050565b34156106ad57600080fd5b6102db6001604060020a03600435166123e5565b34156106cc57600080fd5b6102db612473565b34156106df57600080fd5b6102b16124f3565b34156106f257600080fd5b61046860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124fc915050565b341561079e57600080fd5b6102f0600160a060020a03600435166126f4565b34156107bd57600080fd5b6107c5612783565b604051600160a060020a03909116815260200160405180910390f35b34156107ec57600080fd5b6102db600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061279295505050505050565b341561083b57600080fd5b6102f06127fd565b341561084e57600080fd5b6102db600435612803565b341561086457600080fd5b6102db6001604060020a0360043516602435612808565b6102db6001604060020a03600435811690602435166128b4565b34156108a057600080fd5b6102db600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a1e915050565b341561095b57600080fd5b6102db6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612b0995505050505050565b34156109aa57600080fd5b6107c5612b40565b34156109bd57600080fd5b6102db600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b4f915050565b3415610a2557600080fd5b6102db600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612bbc915050565b3415610ae057600080fd5b6102db6001604060020a0360043516602435612ca7565b3415610b0257600080fd5b610b166001604060020a0360043516612dbb565b60405180896002811115610b2657fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610ba7578082015183820152602001610b8f565b50505050905090810190601f168015610bd45780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610c0a578082015183820152602001610bf2565b50505050905090810190601f168015610c375780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c5857600080fd5b6102db6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f8095505050505050565b3415610ca757600080fd5b6102db600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612feb915050565b3415610d6257600080fd5b6107c56130d6565b600080610d7561431b565b600080610d81876130e5565b91508160020160018703815481101515610d9757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610dcb8561312b565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e7f5780601f10610e5457610100808354040283529160200191610e7f565b820191906000526020600020905b815481529060010190602001808311610e6257829003601f168201915b5050505050925050509250925092565b600080610e9b8361312b565b90506000815460ff166002811115610eaf57fe5b1415610ebe5760009150610f39565b6002815460ff166002811115610ed057fe5b14610ed757fe5b6003810154608060020a900460ff1615610ef45760019150610f39565b6003810154604060020a90046001604060020a03161515610f185760009150610f39565b6003810154610f3690604060020a90046001604060020a0316610e8f565b91505b50919050565b60005433600160a060020a03908116911614610f5a57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f9c57600080fd5b600160a060020a0382161515610fb157600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a0390811691161461103457600080fd5b61103d846130e5565b91506001600383015460c060020a900460ff16600281111561105b57fe5b1461106557600080fd5b600182015460028301805461111e926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110f857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110b55790505b505050506003860154600091508190608060020a90046001604060020a03166002613171565b905061112b848285613463565b50505050565b60005433600160a060020a0390811691161461114c57600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080611174896130e5565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b60008060006111d285611a5a565b94506111dd856130e5565b92506000600384015460c060020a900460ff1660028111156111fb57fe5b1461120557600080fd5b600183015461121c906001604060020a031661312b565b9150611411826101006040519081016040528154909190829060ff16600281111561124357fe5b600281111561124e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131a5780601f106112ef5761010080835404028352916020019161131a565b820191906000526020600020905b8154815290600101906020018083116112fd57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113bc5780601f10611391576101008083540402835291602001916113bc565b820191906000526020600020905b81548152906001019060200180831161139f57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261352c565b60018301546002840180546114ca926001604060020a031691906020808202016040519081016040528092919081815260200182805480156114a457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114615790505b505050506003870154600091508190608060020a90046001604060020a03166001613171565b90506114d7858286613463565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561154c57600080fd5b6102c65a03f1151561155d57600080fd5b5050505050505050565b600080600080600061157888611a5a565b9750611583886130e5565b945061158e8661312b565b93506115998961312b565b92506115c0836101006040519081016040528154909190829060ff16600281111561124357fe5b6000600386015460c060020a900460ff1660028111156115dc57fe5b146115e657600080fd5b60018501546001604060020a038a811691161415611687576000845460ff16600281111561161057fe5b141561162657611621888888613573565b611682565b6002845460ff16600281111561163857fe5b1415611649576116218888886135a3565b6001845460ff16600281111561165b57fe5b141561168057611673888887600201805490506137cc565b97506116218888886138d1565bfe5b611a01565b6117b88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561175157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161170e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156117a457fe5b60028111156117af57fe5b9052508a6139f8565b6001604060020a0390811692508214611680576000845460ff1660028111156117dd57fe5b14156118145760018501546001604060020a038781169116146117fc57fe5b61180e888887600201805490506137cc565b50611a01565b6001845460ff16600281111561182657fe5b14156119c55761195d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118f657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118b35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561194957fe5b600281111561195457fe5b905250876139f8565b6001604060020a039081169150811415611988576116738888600185896002018054905003036137cc565b818111156119a7576116738888600185896002018054905003036137cc565b8181116116825761180e8888600184896002018054905003036137cc565b6002845460ff1660028111156119d757fe5b1415611680576119f48888600185896002018054905003036137cc565b9750611682888888613a5e565b505050505050505050565b600754600090819060ff161580611a2a5750600160a060020a038316155b15611a385760019150610f39565b611a41836126f4565b60009081526006602052604090205460ff169392505050565b600080600080611a69856130e5565b92506000600384015460c060020a900460ff166002811115611a8757fe5b14611a9457849350611c1b565b600383015460006001604060020a03909116118015611acd57506003830154604060020a90046001604060020a0316611acb613d6d565b115b15611bea576001830154600284018054611b8a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b6557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611b225790505b505050506003870154600091508190608060020a90046001604060020a031681613171565b6003840154909250611bca906001604060020a03166000604051805910611bae5750595b9080825280602002602001820160405250600080866000613171565b9050611bdb85828560000154613463565b809450611be7856130e5565b92505b611bf385613d73565b90506001604060020a0380821690861614611c1757611c1785828560000154613463565b8093505b505050919050565b6000611c2e82611a0c565b1515611c3957600080fd5b5060038054908160018101611c4e838261432d565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611ccd57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611d1392916020019061435e565b50606082015181600201908051611d2e92916020019061435e565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b835183101561112b576001604060020a03848481518110611e4857fe5b90602001906020020151169150604060020a848481518110611e6657fe5b90602001906020020151811515611e7957fe5b049050611e8682826111c4565b600190920191611e2b565b60005433600160a060020a03908116911614611eac57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611edf57600080fd5b610dac600160a060020a03821614611ef657600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f5c57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611fbe83611a0c565b1515611fc957600080fd5b6001604060020a038516156121fe57611fe18561312b565b90506002815460ff166002811115611ff557fe5b14611fff57600080fd5b60146121f4826101006040519081016040528154909190829060ff16600281111561202657fe5b600281111561203157fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120fd5780601f106120d2576101008083540402835291602001916120fd565b820191906000526020600020905b8154815290600101906020018083116120e057829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561219f5780601f106121745761010080835404028352916020019161219f565b820191906000526020600020905b81548152906001019060200180831161218257829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613e3b565b106121fe57600080fd5b6003805492508260018101612213838261432d565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561229357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516122d992916020019061435e565b506060820151816002019080516122f492916020019061435e565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123f08261312b565b9050612417816101006040519081016040528154909190829060ff16600281111561124357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461249157600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b600061250782611a0c565b151561251257600080fd5b5060038054908160018101612527838261432d565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156125a657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ec92916020019061435e565b5060608201518160020190805161260792916020019061435e565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126fe61431b565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061274f5780518252601f199092019160209182019101612730565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b835183101561112b576001604060020a038484815181106127b457fe5b90602001906020020151169150604060020a8484815181106127d257fe5b906020019060200201518115156127e557fe5b0490506127f28282611014565b600190920191612797565b60085481565b600855565b600080600061281685611a5a565b9450612821856130e5565b6003810154909350608060020a90046001604060020a0316151561284457600080fd5b600183015461285b906001604060020a031661312b565b9150612882826101006040519081016040528154909190829060ff16600281111561124357fe5b60038301546128a090608060020a90046001604060020a0316613d73565b90506128ad858286613463565b5050505050565b60008080806001604060020a03861615156128fa576128f76020604051908101604052806000815250602060405190810160405260008082526203f480906124fc565b95505b6129038661312b565b935061292a846101006040519081016040528154909190829060ff16600281111561124357fe5b6000845460ff16600281111561293c57fe5b1461294657600080fd5b3492506000831161295657600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561298957600080fd5b6129b886600060405180591061299c5750595b9080825280602002602001820160405250600080600080613171565b91506129c3826130e5565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612a1686838588611567565b505050505050565b6000612a298661312b565b90506001815460ff166002811115612a3d57fe5b14612a4757600080fd5b805433600160a060020a039081166101009092041614612a6657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a9992916020019061435e565b5060028101838051612aaf92916020019061435e565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612b3c57612b33828281518110612b2457fe5b90602001906020020151611a5a565b50600101612b0c565b5050565b600154600160a060020a031681565b600080805b8451831015612a16576001604060020a03858481518110612b7157fe5b90602001906020020151169150604060020a858481518110612b8f57fe5b90602001906020020151811515612ba257fe5b049050612bb186838387611567565b600190920191612b54565b6000612bc78661312b565b90506000815460ff166002811115612bdb57fe5b14612be557600080fd5b805433600160a060020a039081166101009092041614612c0457600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612c3792916020019061435e565b5060028101838051612c4d92916020019061435e565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612cc757600080fd5b612cd0846130e5565b91506001600383015460c060020a900460ff166002811115612cee57fe5b14612cf857600080fd5b6001820154600283018054612db0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d8b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612d485790505b505050506003860154600091508190608060020a90046001604060020a031681613171565b905061111e81611a5a565b600080612dc661431b565b612dce61431b565b6000806000806000612ddf8a61312b565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e955780601f10612e6a57610100808354040283529160200191612e95565b820191906000526020600020905b815481529060010190602001808311612e7857829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612f345780601f10612f0957610100808354040283529160200191612f34565b820191906000526020600020905b815481529060010190602001808311612f1757829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b835183101561112b576001604060020a03848481518110612fa257fe5b90602001906020020151169150604060020a848481518110612fc057fe5b90602001906020020151811515612fd357fe5b049050612fe08282612ca7565b600190920191612f85565b6000612ff68661312b565b90506002815460ff16600281111561300a57fe5b1461301457600080fd5b805433600160a060020a03908116610100909204161461303357600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161306692916020019061435e565b506002810183805161307c92916020019061435e565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130ff57600080fd5b600280546001604060020a03841690811061311657fe5b90600052602060002090600402019050919050565b6003546000906001604060020a0383161061314557600080fd5b600380546001604060020a03841690811061315c57fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b838110156131be5780820151838201526020016131a6565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a02815260080182600281111561322b57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561329457809250613457565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016132d483826143dc565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a0316815260200188600281111561334557fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051613390929160200190614408565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561344b57fe5b02179055505050508092505b50509695505050505050565b60008060006134756001878787613ea5565b9250846001604060020a0316866001604060020a0316141561349657612a16565b8215156134a257612a16565b6134ab866130e5565b91506134b6856130e5565b8254909150839010156134c857600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36135236000878786613ea5565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061356557508060e00151600160a060020a031633600160a060020a0316145b151561357057600080fd5b50565b600061111e82600060405180591061299c5750599080825280602002602001820160405250600080600080613171565b60008060006135b1866130e5565b925060146136e58460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561367f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161363c5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156136d257fe5b60028111156136dd57fe5b905250613ecb565b106136ef57600080fd5b6136f884610e8f565b1561370257600080fd5b600183015460028401805461378f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b6557600091825260209182902080546001604060020a03168452908202830192909160089101808411611b225750505050600388015460009250829150608060020a90046001604060020a031681613171565b91506137bf846000604051805910611bae5750599080825280602002602001820160405250600080866000613171565b9050612a16868287613463565b6000806137d761431b565b6000806137e3886130e5565b60028101549094508690036040518059106137fb5750595b90808252806020026020018201604052509250600091505b6002840154869003821015613889576002840180548390811061383257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061386757fe5b6001604060020a03909216602092830290910190910152600190910190613813565b600184015460038501546138b9916001604060020a039081169186916000918291608060020a9091041681613171565b90506138c6888289613463565b979650505050505050565b60006138db61431b565b6000806138e7876130e5565b6002810154909450601490106138fc57600080fd5b60028401546001016040518059106139115750595b90808252806020026020018201604052509250600091505b600284015482101561399c576002840180548390811061394557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061397a57fe5b6001604060020a03909216602092830290910190910152600190910190613929565b600284015485908490815181106139af57fe5b6001604060020a0392831660209182029092010152600185015460038601546139eb929182169186916000918291608060020a90041681613171565b9050613523878288613463565b6000805b836040015151811015613a4c57826001604060020a031684604001518281518110613a2357fe5b906020019060200201516001604060020a03161415613a4457809150613a57565b6001016139fc565b6001604060020a0391505b5092915050565b600080613a6a856130e5565b91506014613b608360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561367f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161363c5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156136d257fe5b10613b6a57600080fd5b613b7383610e8f565b15613b7d57600080fd5b60018201546002830180546128a0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bcd5790505b505050505085613d468660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613ce057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c9d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613d3357fe5b6002811115613d3e57fe5b905250613ff6565b613d4e613d6d565b6003880154910190608060020a90046001604060020a03166000613171565b60085490565b600080806001604060020a0384161515613d905760009250613e34565b613d99846130e5565b6001810154909250613db3906001604060020a031661312b565b90506000815460ff166002811115613dc757fe5b1415613dd557839250613e34565b6002815460ff166002811115613de757fe5b14613dee57fe5b6001820154613e05906001604060020a0316610e8f565b1515613e1357839250613e34565b6003820154613e3190608060020a90046001604060020a0316613d73565b92505b5050919050565b600080600283516002811115613e4d57fe5b14613e5457fe5b8260a001516001604060020a03161515613e715760019150610f39565b613e7e8360a0015161312b565b9050610f36816101006040519081016040528154909190829060ff16600281111561202657fe5b80613eb38585808685614080565b9050613ec28584868685614080565b95945050505050565b6000808260a001516001604060020a03161515613eeb5760009150610f39565b613ef88360a001516130e5565b9050613fec8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561367f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161363c5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156136d257fe5b6001019392505050565b6000806000614008846020015161312b565b60038101546001604060020a031693509150600090505b836040015151811015613e345761404e8460400151828151811061403f57fe5b9060200190602002015161312b565b60038101549092506001604060020a0316839011156140785760038201546001604060020a031692505b60010161401f565b600080600080866001604060020a0316886001604060020a0316146140a7576101006140aa565b60005b61ffff1692508493506140bc886130e5565b60018101549092506140dc908a906001604060020a03168989878961419e565b9350600090505b60028201546001604060020a03821610156141575761414d8983600201836001604060020a031681548110151561411657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018961419e565b93506001016140e3565b600382015460006001604060020a03909116111561419257600382015461418f908a906001604060020a0316898960ff88018961419e565b93505b50505095945050505050565b806000806141ab8861312b565b6004810154909150600160a060020a0316158015906141ca5750600083115b15613457578815614285576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561425457600080fd5b6102c65a03f1151561426557600080fd5b50505060405180519250508282111561427d57600080fd5b819250613457565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142fb57600080fd5b6102c65a03f1151561430c57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b8154818355818115116143595760050281600502836000526020600020918201910161435991906144bc565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061439f57805160ff19168380011785556143cc565b828001600101855582156143cc579182015b828111156143cc5782518255916020019190600101906143b1565b506143d892915061453a565b5090565b815481835581811511614359576004028160040283600052602060002091820191016143599190614554565b828054828255906000526020600020906003016004900481019282156144b05791602002820160005b8382111561447b57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302614431565b80156144ae5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261447b565b505b506143d89291506145b4565b610f7d91905b808211156143d857805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144f560018301826145d9565b6145036002830160006145d9565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a03191690556005016144c2565b610f7d91905b808211156143d85760008155600101614540565b610f7d91905b808211156143d857600080825560018201805467ffffffffffffffff19169055614587600283018261461d565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161455a565b610f7d91905b808211156143d857805467ffffffffffffffff191681556001016145ba565b50805460018160011615610100020316600290046000825580601f106145ff5750613570565b601f016020900490600052602060002090810190613570919061453a565b508054600082556003016004900490600052602060002090810190613570919061453a5600a165627a7a72305820ad01af9724c53453d71a4e0b5536c5432c20495de5addc973c93f79bcc58a9260029" +exports.LiquidPledgingMockRuntimeByteCode = "0x6060604052600436106101d45763ffffffff60e060020a60003504166314e7b1dc81146101d95780632101a6ad1461029257806329026614146102c55780632a8ec8cc146102dd5780632af4c31e146103025780632ee888081461032157806338740291146103435780633f657a461461035b57806343387983146103d957806347c5ef43146103fb5780634eafbcd51461042a57806350f8a8031461044957806352dc7dcc146104845780635503d9ba1461053057806357adafb6146105435780635afe68d014610592578063666a3427146105a8578063710bf322146105c757806372116e92146105e6578063796d5654146106a257806379ba5097146106c15780637c2d86f7146106d45780637f61fa93146106e757806381ea4408146107935780638da5cb5b146107b25780639398f5a2146107e15780639da47a6b14610830578063ab8be23114610843578063af9f456314610859578063bde60ac91461087b578063cc19ecf714610895578063ce17273c14610950578063d091b5501461099f578063d639cd73146109b2578063db7c231414610a1a578063e9c211e214610ad5578063eba8ba0614610af7578063ef3766e414610c4d578063f6b24b1c14610c9c578063fbfa77cf14610d57575b600080fd5b34156101e457600080fd5b6101fb6001604060020a0360043516602435610d6a565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561025557808201518382015260200161023d565b50505050905090810190601f1680156102825780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561029d57600080fd5b6102b16001604060020a0360043516610e8f565b604051901515815260200160405180910390f35b34156102d057600080fd5b6102db600435610f3f565b005b34156102e857600080fd5b6102f0610f75565b60405190815260200160405180910390f35b341561030d57600080fd5b6102db600160a060020a0360043516610f80565b341561032c57600080fd5b6102db6001604060020a0360043516602435611014565b341561034e57600080fd5b6102db6004351515611131565b341561036657600080fd5b61037a6001604060020a036004351661115f565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103bf57fe5b60ff16815260200197505050505050505060405180910390f35b34156103e457600080fd5b6102db6001604060020a03600435166024356111c4565b341561040657600080fd5b6102db6001604060020a036004358116906024358116906044359060643516611567565b341561043557600080fd5b6102b1600160a060020a0360043516611a0c565b341561045457600080fd5b6104686001604060020a0360043516611a5a565b6040516001604060020a03909116815260200160405180910390f35b341561048f57600080fd5b61046860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611c23915050565b341561053b57600080fd5b6102f0611e1c565b341561054e57600080fd5b6102db6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611e2695505050505050565b341561059d57600080fd5b6102db600435611e91565b34156105b357600080fd5b6102db600160a060020a0360043516611ec4565b34156105d257600080fd5b6102db600160a060020a0360043516611f41565b34156105f157600080fd5b61046860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611fb29050565b34156106ad57600080fd5b6102db6001604060020a03600435166123e5565b34156106cc57600080fd5b6102db612473565b34156106df57600080fd5b6102b16124f3565b34156106f257600080fd5b61046860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124fc915050565b341561079e57600080fd5b6102f0600160a060020a03600435166126f4565b34156107bd57600080fd5b6107c5612783565b604051600160a060020a03909116815260200160405180910390f35b34156107ec57600080fd5b6102db600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061279295505050505050565b341561083b57600080fd5b6102f06127fd565b341561084e57600080fd5b6102db600435612803565b341561086457600080fd5b6102db6001604060020a0360043516602435612808565b6102db6001604060020a03600435811690602435166128b4565b34156108a057600080fd5b6102db600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612a1e915050565b341561095b57600080fd5b6102db6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612b0995505050505050565b34156109aa57600080fd5b6107c5612b40565b34156109bd57600080fd5b6102db600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b4f915050565b3415610a2557600080fd5b6102db600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612bbc915050565b3415610ae057600080fd5b6102db6001604060020a0360043516602435612ca7565b3415610b0257600080fd5b610b166001604060020a0360043516612dbb565b60405180896002811115610b2657fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610ba7578082015183820152602001610b8f565b50505050905090810190601f168015610bd45780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610c0a578082015183820152602001610bf2565b50505050905090810190601f168015610c375780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c5857600080fd5b6102db6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f8095505050505050565b3415610ca757600080fd5b6102db600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612feb915050565b3415610d6257600080fd5b6107c56130d6565b600080610d7561431b565b600080610d81876130e5565b91508160020160018703815481101515610d9757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610dcb8561312b565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e7f5780601f10610e5457610100808354040283529160200191610e7f565b820191906000526020600020905b815481529060010190602001808311610e6257829003601f168201915b5050505050925050509250925092565b600080610e9b8361312b565b90506000815460ff166002811115610eaf57fe5b1415610ebe5760009150610f39565b6002815460ff166002811115610ed057fe5b14610ed757fe5b6003810154608060020a900460ff1615610ef45760019150610f39565b6003810154604060020a90046001604060020a03161515610f185760009150610f39565b6003810154610f3690604060020a90046001604060020a0316610e8f565b91505b50919050565b60005433600160a060020a03908116911614610f5a57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f9c57600080fd5b600160a060020a0382161515610fb157600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a0390811691161461103457600080fd5b61103d846130e5565b91506001600383015460c060020a900460ff16600281111561105b57fe5b1461106557600080fd5b600182015460028301805461111e926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110f857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110b55790505b505050506003860154600091508190608060020a90046001604060020a03166002613171565b905061112b848285613463565b50505050565b60005433600160a060020a0390811691161461114c57600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080611174896130e5565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b60008060006111d285611a5a565b94506111dd856130e5565b92506000600384015460c060020a900460ff1660028111156111fb57fe5b1461120557600080fd5b600183015461121c906001604060020a031661312b565b9150611411826101006040519081016040528154909190829060ff16600281111561124357fe5b600281111561124e57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131a5780601f106112ef5761010080835404028352916020019161131a565b820191906000526020600020905b8154815290600101906020018083116112fd57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113bc5780601f10611391576101008083540402835291602001916113bc565b820191906000526020600020905b81548152906001019060200180831161139f57829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a031660809091015261352c565b60018301546002840180546114ca926001604060020a031691906020808202016040519081016040528092919081815260200182805480156114a457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114615790505b505050506003870154600091508190608060020a90046001604060020a03166001613171565b90506114d7858286613463565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561154c57600080fd5b6102c65a03f1151561155d57600080fd5b5050505050505050565b600080600080600061157888611a5a565b9750611583886130e5565b945061158e8661312b565b93506115998961312b565b92506115c0836101006040519081016040528154909190829060ff16600281111561124357fe5b6000600386015460c060020a900460ff1660028111156115dc57fe5b146115e657600080fd5b60018501546001604060020a038a811691161415611687576000845460ff16600281111561161057fe5b141561162657611621888888613573565b611682565b6002845460ff16600281111561163857fe5b1415611649576116218888886135a3565b6001845460ff16600281111561165b57fe5b141561168057611673888887600201805490506137cc565b97506116218888886138d1565bfe5b611a01565b6117b88560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561175157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161170e5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156117a457fe5b60028111156117af57fe5b9052508a6139f8565b6001604060020a0390811692508214611680576000845460ff1660028111156117dd57fe5b14156118145760018501546001604060020a038781169116146117fc57fe5b61180e888887600201805490506137cc565b50611a01565b6001845460ff16600281111561182657fe5b14156119c55761195d8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118f657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118b35790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561194957fe5b600281111561195457fe5b905250876139f8565b6001604060020a039081169150811415611988576116738888600185896002018054905003036137cc565b818111156119a7576116738888600185896002018054905003036137cc565b8181116116825761180e8888600184896002018054905003036137cc565b6002845460ff1660028111156119d757fe5b1415611680576119f48888600185896002018054905003036137cc565b9750611682888888613a5e565b505050505050505050565b600754600090819060ff161580611a2a5750600160a060020a038316155b15611a385760019150610f39565b611a41836126f4565b60009081526006602052604090205460ff169392505050565b600080600080611a69856130e5565b92506000600384015460c060020a900460ff166002811115611a8757fe5b14611a9457849350611c1b565b600383015460006001604060020a03909116118015611acd57506003830154604060020a90046001604060020a0316611acb613d6d565b115b15611bea576001830154600284018054611b8a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b6557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611b225790505b505050506003870154600091508190608060020a90046001604060020a031681613171565b6003840154909250611bca906001604060020a03166000604051805910611bae5750595b9080825280602002602001820160405250600080866000613171565b9050611bdb85828560000154613463565b809450611be7856130e5565b92505b611bf385613d73565b90506001604060020a0380821690861614611c1757611c1785828560000154613463565b8093505b505050919050565b6000611c2e82611a0c565b1515611c3957600080fd5b5060038054908160018101611c4e838261432d565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611ccd57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611d1392916020019061435e565b50606082015181600201908051611d2e92916020019061435e565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b835183101561112b576001604060020a03848481518110611e4857fe5b90602001906020020151169150604060020a848481518110611e6657fe5b90602001906020020151811515611e7957fe5b049050611e8682826111c4565b600190920191611e2b565b60005433600160a060020a03908116911614611eac57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611edf57600080fd5b610dac600160a060020a03821614611ef657600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f5c57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611fbe83611a0c565b1515611fc957600080fd5b6001604060020a038516156121fe57611fe18561312b565b90506002815460ff166002811115611ff557fe5b14611fff57600080fd5b60146121f4826101006040519081016040528154909190829060ff16600281111561202657fe5b600281111561203157fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120fd5780601f106120d2576101008083540402835291602001916120fd565b820191906000526020600020905b8154815290600101906020018083116120e057829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561219f5780601f106121745761010080835404028352916020019161219f565b820191906000526020600020905b81548152906001019060200180831161218257829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613e3b565b106121fe57600080fd5b6003805492508260018101612213838261432d565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561229357fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516122d992916020019061435e565b506060820151816002019080516122f492916020019061435e565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123f08261312b565b9050612417816101006040519081016040528154909190829060ff16600281111561124357fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461249157600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b600061250782611a0c565b151561251257600080fd5b5060038054908160018101612527838261432d565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff191660018360028111156125a657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ec92916020019061435e565b5060608201518160020190805161260792916020019061435e565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126fe61431b565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061274f5780518252601f199092019160209182019101612730565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b835183101561112b576001604060020a038484815181106127b457fe5b90602001906020020151169150604060020a8484815181106127d257fe5b906020019060200201518115156127e557fe5b0490506127f28282611014565b600190920191612797565b60085481565b600855565b600080600061281685611a5a565b9450612821856130e5565b6003810154909350608060020a90046001604060020a0316151561284457600080fd5b600183015461285b906001604060020a031661312b565b9150612882826101006040519081016040528154909190829060ff16600281111561124357fe5b60038301546128a090608060020a90046001604060020a0316613d73565b90506128ad858286613463565b5050505050565b60008080806001604060020a03861615156128fa576128f76020604051908101604052806000815250602060405190810160405260008082526203f480906124fc565b95505b6129038661312b565b935061292a846101006040519081016040528154909190829060ff16600281111561124357fe5b6000845460ff16600281111561293c57fe5b1461294657600080fd5b3492506000831161295657600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561298957600080fd5b6129b886600060405180591061299c5750595b9080825280602002602001820160405250600080600080613171565b91506129c3826130e5565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a3612a1686838588611567565b505050505050565b6000612a298661312b565b90506001815460ff166002811115612a3d57fe5b14612a4757600080fd5b805433600160a060020a039081166101009092041614612a6657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a9992916020019061435e565b5060028101838051612aaf92916020019061435e565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612b3c57612b33828281518110612b2457fe5b90602001906020020151611a5a565b50600101612b0c565b5050565b600154600160a060020a031681565b600080805b8451831015612a16576001604060020a03858481518110612b7157fe5b90602001906020020151169150604060020a858481518110612b8f57fe5b90602001906020020151811515612ba257fe5b049050612bb186838387611567565b600190920191612b54565b6000612bc78661312b565b90506000815460ff166002811115612bdb57fe5b14612be557600080fd5b805433600160a060020a039081166101009092041614612c0457600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612c3792916020019061435e565b5060028101838051612c4d92916020019061435e565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612cc757600080fd5b612cd0846130e5565b91506001600383015460c060020a900460ff166002811115612cee57fe5b14612cf857600080fd5b6001820154600283018054612db0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d8b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612d485790505b505050506003860154600091508190608060020a90046001604060020a031681613171565b905061111e81611a5a565b600080612dc661431b565b612dce61431b565b6000806000806000612ddf8a61312b565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e955780601f10612e6a57610100808354040283529160200191612e95565b820191906000526020600020905b815481529060010190602001808311612e7857829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612f345780601f10612f0957610100808354040283529160200191612f34565b820191906000526020600020905b815481529060010190602001808311612f1757829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b835183101561112b576001604060020a03848481518110612fa257fe5b90602001906020020151169150604060020a848481518110612fc057fe5b90602001906020020151811515612fd357fe5b049050612fe08282612ca7565b600190920191612f85565b6000612ff68661312b565b90506002815460ff16600281111561300a57fe5b1461301457600080fd5b805433600160a060020a03908116610100909204161461303357600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161306692916020019061435e565b506002810183805161307c92916020019061435e565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130ff57600080fd5b600280546001604060020a03841690811061311657fe5b90600052602060002090600402019050919050565b6003546000906001604060020a0383161061314557600080fd5b600380546001604060020a03841690811061315c57fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b838110156131be5780820151838201526020016131a6565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a02815260080182600281111561322b57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561329457809250613457565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016132d483826143dc565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a0316815260200188600281111561334557fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a0392909216919091179055604082015181600201908051613390929160200190614408565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561344b57fe5b02179055505050508092505b50509695505050505050565b60008060006134756001878787613ea5565b9250846001604060020a0316866001604060020a0316141561349657612a16565b8215156134a257612a16565b6134ab866130e5565b91506134b6856130e5565b8254909150839010156134c857600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36135236000878786613ea5565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061356557508060e00151600160a060020a031633600160a060020a0316145b151561357057600080fd5b50565b600061111e82600060405180591061299c5750599080825280602002602001820160405250600080600080613171565b60008060006135b1866130e5565b925060146136e58460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561367f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161363c5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156136d257fe5b60028111156136dd57fe5b905250613ecb565b106136ef57600080fd5b6136f884610e8f565b1561370257600080fd5b600183015460028401805461378f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b6557600091825260209182902080546001604060020a03168452908202830192909160089101808411611b225750505050600388015460009250829150608060020a90046001604060020a031681613171565b91506137bf846000604051805910611bae5750599080825280602002602001820160405250600080866000613171565b9050612a16868287613463565b6000806137d761431b565b6000806137e3886130e5565b60028101549094508690036040518059106137fb5750595b90808252806020026020018201604052509250600091505b6002840154869003821015613889576002840180548390811061383257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061386757fe5b6001604060020a03909216602092830290910190910152600190910190613813565b600184015460038501546138b9916001604060020a039081169186916000918291608060020a9091041681613171565b90506138c6888289613463565b979650505050505050565b60006138db61431b565b6000806138e7876130e5565b6002810154909450601490106138fc57600080fd5b60028401546001016040518059106139115750595b90808252806020026020018201604052509250600091505b600284015482101561399c576002840180548390811061394557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061397a57fe5b6001604060020a03909216602092830290910190910152600190910190613929565b600284015485908490815181106139af57fe5b6001604060020a0392831660209182029092010152600185015460038601546139eb929182169186916000918291608060020a90041681613171565b9050613523878288613463565b6000805b836040015151811015613a4c57826001604060020a031684604001518281518110613a2357fe5b906020019060200201516001604060020a03161415613a4457809150613a57565b6001016139fc565b6001604060020a0391505b5092915050565b600080613a6a856130e5565b91506014613b608360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561367f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161363c5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156136d257fe5b10613b6a57600080fd5b613b7383610e8f565b15613b7d57600080fd5b60018201546002830180546128a0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bcd5790505b505050505085613d468660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613ce057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c9d5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613d3357fe5b6002811115613d3e57fe5b905250613ff6565b613d4e613d6d565b6003880154910190608060020a90046001604060020a03166000613171565b60085490565b600080806001604060020a0384161515613d905760009250613e34565b613d99846130e5565b6001810154909250613db3906001604060020a031661312b565b90506000815460ff166002811115613dc757fe5b1415613dd557839250613e34565b6002815460ff166002811115613de757fe5b14613dee57fe5b6001820154613e05906001604060020a0316610e8f565b1515613e1357839250613e34565b6003820154613e3190608060020a90046001604060020a0316613d73565b92505b5050919050565b600080600283516002811115613e4d57fe5b14613e5457fe5b8260a001516001604060020a03161515613e715760019150610f39565b613e7e8360a0015161312b565b9050610f36816101006040519081016040528154909190829060ff16600281111561202657fe5b80613eb38585808685614080565b9050613ec28584868685614080565b95945050505050565b6000808260a001516001604060020a03161515613eeb5760009150610f39565b613ef88360a001516130e5565b9050613fec8160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561367f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161363c5750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff1660028111156136d257fe5b6001019392505050565b6000806000614008846020015161312b565b60038101546001604060020a031693509150600090505b836040015151811015613e345761404e8460400151828151811061403f57fe5b9060200190602002015161312b565b60038101549092506001604060020a0316839011156140785760038201546001604060020a031692505b60010161401f565b600080600080866001604060020a0316886001604060020a0316146140a7576101006140aa565b60005b61ffff1692508493506140bc886130e5565b60018101549092506140dc908a906001604060020a03168989878961419e565b9350600090505b60028201546001604060020a03821610156141575761414d8983600201836001604060020a031681548110151561411657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018961419e565b93506001016140e3565b600382015460006001604060020a03909116111561419257600382015461418f908a906001604060020a0316898960ff88018961419e565b93505b50505095945050505050565b806000806141ab8861312b565b6004810154909150600160a060020a0316158015906141ca5750600083115b15613457578815614285576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561425457600080fd5b6102c65a03f1151561426557600080fd5b50505060405180519250508282111561427d57600080fd5b819250613457565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142fb57600080fd5b6102c65a03f1151561430c57600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b8154818355818115116143595760050281600502836000526020600020918201910161435991906144bc565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061439f57805160ff19168380011785556143cc565b828001600101855582156143cc579182015b828111156143cc5782518255916020019190600101906143b1565b506143d892915061453a565b5090565b815481835581811511614359576004028160040283600052602060002091820191016143599190614554565b828054828255906000526020600020906003016004900481019282156144b05791602002820160005b8382111561447b57835183826101000a8154816001604060020a0302191690836001604060020a031602179055509260200192600801602081600701049283019260010302614431565b80156144ae5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261447b565b505b506143d89291506145b4565b610f7d91905b808211156143d857805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144f560018301826145d9565b6145036002830160006145d9565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a03191690556005016144c2565b610f7d91905b808211156143d85760008155600101614540565b610f7d91905b808211156143d857600080825560018201805467ffffffffffffffff19169055614587600283018261461d565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161455a565b610f7d91905b808211156143d857805467ffffffffffffffff191681556001016145ba565b50805460018160011615610100020316600290046000825580601f106145ff5750613570565b601f016020900490600052602060002090810190613570919061453a565b508054600082556003016004900490600052602060002090810190613570919061453a5600a165627a7a72305820ad01af9724c53453d71a4e0b5536c5432c20495de5addc973c93f79bcc58a9260029" +exports.OwnedAbi = [{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556103b08061003b6000396000f3006060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a72305820a50b84a43c8667d9e56faa915f9163f8d9f6a25de6be60b40a707f0d9158a8b30029" +exports.OwnedRuntimeByteCode = "0x6060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a72305820a50b84a43c8667d9e56faa915f9163f8d9f6a25de6be60b40a707f0d9158a8b30029" exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] exports.VaultByteCode = "0x" +exports.VaultRuntimeByteCode = "0x" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" -exports._sha256 = "0xf017967d1e357dc62ed9d5ca4d704e0fd8cc6474df08a1cc36549dbe128b0d20" +exports._sha256 = "0x31d103540608b1a0e4c9092143010aef302e7dc4191e8c452355ad32c074fa22" diff --git a/build/LiquidPledgingMock_all.sol b/build/LiquidPledgingMock_all.sol index 53d32b6..d9ef65a 100644 --- a/build/LiquidPledgingMock_all.sol +++ b/build/LiquidPledgingMock_all.sol @@ -33,11 +33,96 @@ contract ILiquidPledgingPlugin { uint amount); } +//File: node_modules/giveth-common-contracts/contracts/Owned.sol +pragma solidity ^0.4.15; + + +/// @title Owned +/// @author Adrià Massanet +/// @notice The Owned contract has an owner address, and provides basic +/// authorization control functions, this simplifies & the implementation of +/// user permissions; this contract has three work flows for a change in +/// ownership, the first requires the new owner to validate that they have the +/// ability to accept ownership, the second allows the ownership to be +/// directly transfered without requiring acceptance, and the third allows for +/// the ownership to be removed to allow for decentralization +contract Owned { + + address public owner; + address public newOwnerCandidate; + + event OwnershipRequested(address indexed by, address indexed to); + event OwnershipTransferred(address indexed from, address indexed to); + event OwnershipRemoved(); + + /// @dev The constructor sets the `msg.sender` as the`owner` of the contract + function Owned() public { + owner = msg.sender; + } + + /// @dev `owner` is the only address that can call a function with this + /// modifier + modifier onlyOwner() { + require (msg.sender == owner); + _; + } + + /// @dev In this 1st option for ownership transfer `proposeOwnership()` must + /// be called first by the current `owner` then `acceptOwnership()` must be + /// called by the `newOwnerCandidate` + /// @notice `onlyOwner` Proposes to transfer control of the contract to a + /// new owner + /// @param _newOwnerCandidate The address being proposed as the new owner + function proposeOwnership(address _newOwnerCandidate) public onlyOwner { + newOwnerCandidate = _newOwnerCandidate; + OwnershipRequested(msg.sender, newOwnerCandidate); + } + + /// @notice Can only be called by the `newOwnerCandidate`, accepts the + /// transfer of ownership + function acceptOwnership() public { + require(msg.sender == newOwnerCandidate); + + address oldOwner = owner; + owner = newOwnerCandidate; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 2nd option for ownership transfer `changeOwnership()` can + /// be called and it will immediately assign ownership to the `newOwner` + /// @notice `owner` can step down and assign some other address to this role + /// @param _newOwner The address of the new owner + function changeOwnership(address _newOwner) public onlyOwner { + require(_newOwner != 0x0); + + address oldOwner = owner; + owner = _newOwner; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 3rd option for ownership transfer `removeOwnership()` can + /// be called and it will immediately assign ownership to the 0x0 address; + /// it requires a 0xdece be input as a parameter to prevent accidental use + /// @notice Decentralizes the contract, this operation cannot be undone + /// @param _dac `0xdac` has to be entered for this function to work + function removeOwnership(address _dac) public onlyOwner { + require(_dac == 0xdac); + owner = 0x0; + newOwnerCandidate = 0x0; + OwnershipRemoved(); + } +} + //File: contracts/LiquidPledgingBase.sol pragma solidity ^0.4.11; + /// @dev This is declares a few functions from `Vault` so that the /// `LiquidPledgingBase` contract can interface with the `Vault` contract contract Vault { @@ -45,7 +130,7 @@ contract Vault { function () payable; } -contract LiquidPledgingBase { +contract LiquidPledgingBase is Owned { // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 20; uint constant MAX_SUBPROJECT_LEVEL = 20; @@ -83,6 +168,9 @@ contract LiquidPledgingBase { // this mapping allows you to search for a specific pledge's index number by the hash of that pledge mapping (bytes32 => uint64) hPledge2idx;//TODO Fix typo + mapping (bytes32 => bool) pluginWhitelist; + + bool public usePluginWhitelist = true; ///// @@ -109,12 +197,13 @@ contract LiquidPledgingBase { /////// -// Adminss functions +// Admin functions ////// /// @notice Creates a giver. function addGiver(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin ) returns (uint64 idGiver) { + require(isValidPlugin(plugin)); idGiver = uint64(admins.length); @@ -155,6 +244,7 @@ contract LiquidPledgingBase { /// @notice Creates a new Delegate function addDelegate(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDelegate) { //TODO return index number + require(isValidPlugin(plugin)); idDelegate = uint64(admins.length); @@ -194,6 +284,8 @@ contract LiquidPledgingBase { /// @notice Creates a new Project function addProject(string name, string url, address projectAdmin, uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idProject) { + require(isValidPlugin(plugin)); + if (parentProject != 0) { PledgeAdmin storage pa = findAdmin(parentProject); require(pa.adminType == PledgeAdminType.Project); @@ -409,6 +501,48 @@ contract LiquidPledgingBase { function checkAdminOwner(PledgeAdmin m) internal constant { require((msg.sender == m.addr) || (msg.sender == address(m.plugin))); } + +//////// +// Plugin Whitelist Methods +/////// + + function addValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = true; + } + + function removeValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = false; + } + + function useWhitelist(bool useWhitelist) external onlyOwner { + usePluginWhitelist = useWhitelist; + } + + function isValidPlugin(address addr) public returns(bool) { + if (!usePluginWhitelist || addr == 0x0) return true; + + bytes32 contractHash = getCodeHash(addr); + + return pluginWhitelist[contractHash]; + } + + function getCodeHash(address addr) public returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + // new "memory end" including padding + mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) + // store length in memory + mstore(o_code, size) + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } } //File: contracts/LiquidPledging.sol @@ -436,7 +570,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idReceiver To whom it's transfered. Can be the same giver, another /// giver, a delegate or a project -function donate(uint64 idGiver, uint64 idReceiver) payable { + function donate(uint64 idGiver, uint64 idReceiver) payable { if (idGiver == 0) { idGiver = addGiver('', '', 259200, ILiquidPledgingPlugin(0x0)); // default to 3 day commitTime } @@ -593,9 +727,6 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { require(n.paymentState == PaymentState.Paying); - // Check the project is not canceled in the while. - require(getOldestPledgeNotCanceled(idPledge) == idPledge); - uint64 idNewPledge = findOrCreatePledge( n.owner, n.delegationChain, @@ -699,11 +830,9 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { } } - function mNormalizePledge(uint[] pledges) returns(uint64) { + function mNormalizePledge(uint64[] pledges) { for (uint i = 0; i < pledges.length; i++ ) { - uint64 idPledge = uint64( pledges[i] & (D64-1) ); - - normalizePledge(idPledge); + normalizePledge( pledges[i] ); } } diff --git a/build/LiquidPledging_all.sol b/build/LiquidPledging_all.sol index c31566d..9e45c64 100644 --- a/build/LiquidPledging_all.sol +++ b/build/LiquidPledging_all.sol @@ -33,11 +33,96 @@ contract ILiquidPledgingPlugin { uint amount); } +//File: node_modules/giveth-common-contracts/contracts/Owned.sol +pragma solidity ^0.4.15; + + +/// @title Owned +/// @author Adrià Massanet +/// @notice The Owned contract has an owner address, and provides basic +/// authorization control functions, this simplifies & the implementation of +/// user permissions; this contract has three work flows for a change in +/// ownership, the first requires the new owner to validate that they have the +/// ability to accept ownership, the second allows the ownership to be +/// directly transfered without requiring acceptance, and the third allows for +/// the ownership to be removed to allow for decentralization +contract Owned { + + address public owner; + address public newOwnerCandidate; + + event OwnershipRequested(address indexed by, address indexed to); + event OwnershipTransferred(address indexed from, address indexed to); + event OwnershipRemoved(); + + /// @dev The constructor sets the `msg.sender` as the`owner` of the contract + function Owned() public { + owner = msg.sender; + } + + /// @dev `owner` is the only address that can call a function with this + /// modifier + modifier onlyOwner() { + require (msg.sender == owner); + _; + } + + /// @dev In this 1st option for ownership transfer `proposeOwnership()` must + /// be called first by the current `owner` then `acceptOwnership()` must be + /// called by the `newOwnerCandidate` + /// @notice `onlyOwner` Proposes to transfer control of the contract to a + /// new owner + /// @param _newOwnerCandidate The address being proposed as the new owner + function proposeOwnership(address _newOwnerCandidate) public onlyOwner { + newOwnerCandidate = _newOwnerCandidate; + OwnershipRequested(msg.sender, newOwnerCandidate); + } + + /// @notice Can only be called by the `newOwnerCandidate`, accepts the + /// transfer of ownership + function acceptOwnership() public { + require(msg.sender == newOwnerCandidate); + + address oldOwner = owner; + owner = newOwnerCandidate; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 2nd option for ownership transfer `changeOwnership()` can + /// be called and it will immediately assign ownership to the `newOwner` + /// @notice `owner` can step down and assign some other address to this role + /// @param _newOwner The address of the new owner + function changeOwnership(address _newOwner) public onlyOwner { + require(_newOwner != 0x0); + + address oldOwner = owner; + owner = _newOwner; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 3rd option for ownership transfer `removeOwnership()` can + /// be called and it will immediately assign ownership to the 0x0 address; + /// it requires a 0xdece be input as a parameter to prevent accidental use + /// @notice Decentralizes the contract, this operation cannot be undone + /// @param _dac `0xdac` has to be entered for this function to work + function removeOwnership(address _dac) public onlyOwner { + require(_dac == 0xdac); + owner = 0x0; + newOwnerCandidate = 0x0; + OwnershipRemoved(); + } +} + //File: contracts/LiquidPledgingBase.sol pragma solidity ^0.4.11; + /// @dev This is declares a few functions from `Vault` so that the /// `LiquidPledgingBase` contract can interface with the `Vault` contract contract Vault { @@ -45,7 +130,7 @@ contract Vault { function () payable; } -contract LiquidPledgingBase { +contract LiquidPledgingBase is Owned { // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 20; uint constant MAX_SUBPROJECT_LEVEL = 20; @@ -83,6 +168,9 @@ contract LiquidPledgingBase { // this mapping allows you to search for a specific pledge's index number by the hash of that pledge mapping (bytes32 => uint64) hPledge2idx;//TODO Fix typo + mapping (bytes32 => bool) pluginWhitelist; + + bool public usePluginWhitelist = true; ///// @@ -109,12 +197,13 @@ contract LiquidPledgingBase { /////// -// Adminss functions +// Admin functions ////// /// @notice Creates a giver. function addGiver(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin ) returns (uint64 idGiver) { + require(isValidPlugin(plugin)); idGiver = uint64(admins.length); @@ -155,6 +244,7 @@ contract LiquidPledgingBase { /// @notice Creates a new Delegate function addDelegate(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDelegate) { //TODO return index number + require(isValidPlugin(plugin)); idDelegate = uint64(admins.length); @@ -194,6 +284,8 @@ contract LiquidPledgingBase { /// @notice Creates a new Project function addProject(string name, string url, address projectAdmin, uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idProject) { + require(isValidPlugin(plugin)); + if (parentProject != 0) { PledgeAdmin storage pa = findAdmin(parentProject); require(pa.adminType == PledgeAdminType.Project); @@ -409,6 +501,48 @@ contract LiquidPledgingBase { function checkAdminOwner(PledgeAdmin m) internal constant { require((msg.sender == m.addr) || (msg.sender == address(m.plugin))); } + +//////// +// Plugin Whitelist Methods +/////// + + function addValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = true; + } + + function removeValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = false; + } + + function useWhitelist(bool useWhitelist) external onlyOwner { + usePluginWhitelist = useWhitelist; + } + + function isValidPlugin(address addr) public returns(bool) { + if (!usePluginWhitelist || addr == 0x0) return true; + + bytes32 contractHash = getCodeHash(addr); + + return pluginWhitelist[contractHash]; + } + + function getCodeHash(address addr) public returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + // new "memory end" including padding + mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) + // store length in memory + mstore(o_code, size) + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } } //File: ./contracts/LiquidPledging.sol @@ -436,7 +570,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idReceiver To whom it's transfered. Can be the same giver, another /// giver, a delegate or a project -function donate(uint64 idGiver, uint64 idReceiver) payable { + function donate(uint64 idGiver, uint64 idReceiver) payable { if (idGiver == 0) { idGiver = addGiver('', '', 259200, ILiquidPledgingPlugin(0x0)); // default to 3 day commitTime } @@ -593,9 +727,6 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { require(n.paymentState == PaymentState.Paying); - // Check the project is not canceled in the while. - require(getOldestPledgeNotCanceled(idPledge) == idPledge); - uint64 idNewPledge = findOrCreatePledge( n.owner, n.delegationChain, @@ -699,11 +830,9 @@ function donate(uint64 idGiver, uint64 idReceiver) payable { } } - function mNormalizePledge(uint[] pledges) returns(uint64) { + function mNormalizePledge(uint64[] pledges) { for (uint i = 0; i < pledges.length; i++ ) { - uint64 idPledge = uint64( pledges[i] & (D64-1) ); - - normalizePledge(idPledge); + normalizePledge( pledges[i] ); } } diff --git a/build/Owned.sol.js b/build/Owned.sol.js index 55f206c..e2e5500 100644 --- a/build/Owned.sol.js +++ b/build/Owned.sol.js @@ -2,5 +2,6 @@ exports.OwnedAbi = [{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556101bc8061003b6000396000f3006060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007b578063a6f9dae1146100aa578063d4ee1d90146100c9575b600080fd5b341561007157600080fd5b6100796100dc565b005b341561008657600080fd5b61008e610128565b604051600160a060020a03909116815260200160405180910390f35b34156100b557600080fd5b610079600160a060020a0360043516610137565b34156100d457600080fd5b61008e610181565b60015433600160a060020a039081169116146100f757600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600054600160a060020a031681565b60005433600160a060020a0390811691161461015257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a0316815600a165627a7a7230582093915e2078cf23efe265b372c026c6cbc79ddd13f04e6e31d52efe53c70380790029" +exports.OwnedRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007b578063a6f9dae1146100aa578063d4ee1d90146100c9575b600080fd5b341561007157600080fd5b6100796100dc565b005b341561008657600080fd5b61008e610128565b604051600160a060020a03909116815260200160405180910390f35b34156100b557600080fd5b610079600160a060020a0360043516610137565b34156100d457600080fd5b61008e610181565b60015433600160a060020a039081169116146100f757600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600054600160a060020a031681565b60005433600160a060020a0390811691161461015257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a0316815600a165627a7a7230582093915e2078cf23efe265b372c026c6cbc79ddd13f04e6e31d52efe53c70380790029" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" exports._sha256 = "0xf61824cbb7f4765beceba9899e284825b9c60abba4179558d6b40e6976076b6b" diff --git a/build/TestSimpleProjectPlugin.sol.js b/build/TestSimpleProjectPlugin.sol.js new file mode 100644 index 0000000..eb211d7 --- /dev/null +++ b/build/TestSimpleProjectPlugin.sol.js @@ -0,0 +1,22 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620048968339810160405280805160008054600160a060020a03191633600160a060020a0316179055915081905060016200006060038262000098565b50600162000070600282620000cc565b5060048054600160a060020a031916600160a060020a03929092169190911790555062000264565b815481835581811511620000c757600502816005028360005260206000209182019101620000c79190620000fb565b505050565b815481835581811511620000c757600402816004028360005260206000209182019101620000c791906200016f565b6200016c91905b8082111562000168578054600160a860020a031916815560006200012a6001830182620001da565b6200013a600283016000620001da565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000102565b5090565b90565b6200016c91905b808211156200016857600080825560018201805467ffffffffffffffff19169055620001a6600283018262000225565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000176565b50805460018160011615610100020316600290046000825580601f1062000202575062000222565b601f01602090049060005260206000209081019062000222919062000247565b50565b5080546000825560030160049004906000526020600020908101906200022291905b6200016c91905b808211156200016857600081556001016200024e565b61462280620002746000396000f3006060604052600436106101be5763ffffffff60e060020a60003504166314e7b1dc81146101c35780632101a6ad1461027c57806329026614146102af5780632a8ec8cc146102c75780632af4c31e146102ec5780632ee888081461030b578063387402911461032d5780633f657a461461034557806343387983146103c357806347c5ef43146103e55780634eafbcd51461041457806350f8a8031461043357806352dc7dcc1461046e5780635503d9ba1461051a57806357adafb61461052d5780635afe68d01461057c578063666a342714610592578063710bf322146105b157806372116e92146105d0578063796d56541461068c57806379ba5097146106ab5780637c2d86f7146106be5780637f61fa93146106d157806381ea44081461077d5780638da5cb5b1461079c5780639398f5a2146107cb578063af9f45631461081a578063bde60ac91461083c578063cc19ecf714610856578063ce17273c14610911578063d091b55014610960578063d639cd7314610973578063db7c2314146109db578063e9c211e214610a96578063eba8ba0614610ab8578063ef3766e414610c0e578063f6b24b1c14610c5d578063fbfa77cf14610d18575b600080fd5b34156101ce57600080fd5b6101e56001604060020a0360043516602435610d2b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561023f578082015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561028757600080fd5b61029b6001604060020a0360043516610e50565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c5600435610f00565b005b34156102d257600080fd5b6102da610f36565b60405190815260200160405180910390f35b34156102f757600080fd5b6102c5600160a060020a0360043516610f41565b341561031657600080fd5b6102c56001604060020a0360043516602435610fd5565b341561033857600080fd5b6102c560043515156110f2565b341561035057600080fd5b6103646001604060020a0360043516611120565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103a957fe5b60ff16815260200197505050505050505060405180910390f35b34156103ce57600080fd5b6102c56001604060020a0360043516602435611185565b34156103f057600080fd5b6102c56001604060020a036004358116906024358116906044359060643516611528565b341561041f57600080fd5b61029b600160a060020a03600435166119cd565b341561043e57600080fd5b6104526001604060020a0360043516611a1b565b6040516001604060020a03909116815260200160405180910390f35b341561047957600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611be4915050565b341561052557600080fd5b6102da611ddd565b341561053857600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611de795505050505050565b341561058757600080fd5b6102c5600435611e52565b341561059d57600080fd5b6102c5600160a060020a0360043516611e85565b34156105bc57600080fd5b6102c5600160a060020a0360043516611f02565b34156105db57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611f739050565b341561069757600080fd5b6102c56001604060020a03600435166123a6565b34156106b657600080fd5b6102c5612434565b34156106c957600080fd5b61029b6124b4565b34156106dc57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124bd915050565b341561078857600080fd5b6102da600160a060020a03600435166126b5565b34156107a757600080fd5b6107af612744565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102c5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061275395505050505050565b341561082557600080fd5b6102c56001604060020a03600435166024356127be565b6102c56001604060020a036004358116906024351661286a565b341561086157600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506129d4915050565b341561091c57600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612abf95505050505050565b341561096b57600080fd5b6107af612af6565b341561097e57600080fd5b6102c5600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b05915050565b34156109e657600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612b72915050565b3415610aa157600080fd5b6102c56001604060020a0360043516602435612c5d565b3415610ac357600080fd5b610ad76001604060020a0360043516612d71565b60405180896002811115610ae757fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b68578082015183820152602001610b50565b50505050905090810190601f168015610b955780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610bcb578082015183820152602001610bb3565b50505050905090810190601f168015610bf85780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c1957600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f3695505050505050565b3415610c6857600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612fa1915050565b3415610d2357600080fd5b6107af61308c565b600080610d366142cf565b600080610d428761309b565b91508160020160018703815481101515610d5857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610d8c856130e1565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e405780601f10610e1557610100808354040283529160200191610e40565b820191906000526020600020905b815481529060010190602001808311610e2357829003601f168201915b5050505050925050509250925092565b600080610e5c836130e1565b90506000815460ff166002811115610e7057fe5b1415610e7f5760009150610efa565b6002815460ff166002811115610e9157fe5b14610e9857fe5b6003810154608060020a900460ff1615610eb55760019150610efa565b6003810154604060020a90046001604060020a03161515610ed95760009150610efa565b6003810154610ef790604060020a90046001604060020a0316610e50565b91505b50919050565b60005433600160a060020a03908116911614610f1b57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f5d57600080fd5b600160a060020a0382161515610f7257600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a03908116911614610ff557600080fd5b610ffe8461309b565b91506001600383015460c060020a900460ff16600281111561101c57fe5b1461102657600080fd5b60018201546002830180546110df926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110765790505b505050506003860154600091508190608060020a90046001604060020a03166002613127565b90506110ec848285613419565b50505050565b60005433600160a060020a0390811691161461110d57600080fd5b6007805460ff1916911515919091179055565b6000806000806000806000806111358961309b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b600080600061119385611a1b565b945061119e8561309b565b92506000600384015460c060020a900460ff1660028111156111bc57fe5b146111c657600080fd5b60018301546111dd906001604060020a03166130e1565b91506113d2826101006040519081016040528154909190829060ff16600281111561120457fe5b600281111561120f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112db5780601f106112b0576101008083540402835291602001916112db565b820191906000526020600020905b8154815290600101906020018083116112be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526134e2565b600183015460028401805461148b926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561146557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114225790505b505050506003870154600091508190608060020a90046001604060020a03166001613127565b9050611498858286613419565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b5050505050505050565b600080600080600061153988611a1b565b97506115448861309b565b945061154f866130e1565b935061155a896130e1565b9250611581836101006040519081016040528154909190829060ff16600281111561120457fe5b6000600386015460c060020a900460ff16600281111561159d57fe5b146115a757600080fd5b60018501546001604060020a038a811691161415611648576000845460ff1660028111156115d157fe5b14156115e7576115e2888888613529565b611643565b6002845460ff1660028111156115f957fe5b141561160a576115e2888888613559565b6001845460ff16600281111561161c57fe5b14156116415761163488888760020180549050613782565b97506115e2888888613887565bfe5b6119c2565b6117798560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116cf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561176557fe5b600281111561177057fe5b9052508a6139ae565b6001604060020a0390811692508214611641576000845460ff16600281111561179e57fe5b14156117d55760018501546001604060020a038781169116146117bd57fe5b6117cf88888760020180549050613782565b506119c2565b6001845460ff1660028111156117e757fe5b14156119865761191e8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118b757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118745790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561190a57fe5b600281111561191557fe5b905250876139ae565b6001604060020a03908116915081141561194957611634888860018589600201805490500303613782565b8181111561196857611634888860018589600201805490500303613782565b818111611643576117cf888860018489600201805490500303613782565b6002845460ff16600281111561199857fe5b1415611641576119b5888860018589600201805490500303613782565b9750611643888888613a14565b505050505050505050565b600754600090819060ff1615806119eb5750600160a060020a038316155b156119f95760019150610efa565b611a02836126b5565b60009081526006602052604090205460ff169392505050565b600080600080611a2a8561309b565b92506000600384015460c060020a900460ff166002811115611a4857fe5b14611a5557849350611bdc565b600383015460006001604060020a03909116118015611a8e57506003830154604060020a90046001604060020a0316611a8c613d23565b115b15611bab576001830154600284018054611b4b926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611ae35790505b505050506003870154600091508190608060020a90046001604060020a031681613127565b6003840154909250611b8b906001604060020a03166000604051805910611b6f5750595b9080825280602002602001820160405250600080866000613127565b9050611b9c85828560000154613419565b809450611ba88561309b565b92505b611bb485613d27565b90506001604060020a0380821690861614611bd857611bd885828560000154613419565b8093505b505050919050565b6000611bef826119cd565b1515611bfa57600080fd5b5060038054908160018101611c0f83826142e1565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c8e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cd4929160200190614312565b50606082015181600201908051611cef929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b83518310156110ec576001604060020a03848481518110611e0957fe5b90602001906020020151169150604060020a848481518110611e2757fe5b90602001906020020151811515611e3a57fe5b049050611e478282611185565b600190920191611dec565b60005433600160a060020a03908116911614611e6d57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611ea057600080fd5b610dac600160a060020a03821614611eb757600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f1d57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611f7f836119cd565b1515611f8a57600080fd5b6001604060020a038516156121bf57611fa2856130e1565b90506002815460ff166002811115611fb657fe5b14611fc057600080fd5b60146121b5826101006040519081016040528154909190829060ff166002811115611fe757fe5b6002811115611ff257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121605780601f1061213557610100808354040283529160200191612160565b820191906000526020600020905b81548152906001019060200180831161214357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613def565b106121bf57600080fd5b60038054925082600181016121d483826142e1565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561225457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161229a929160200190614312565b506060820151816002019080516122b5929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123b1826130e1565b90506123d8816101006040519081016040528154909190829060ff16600281111561120457fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461245257600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006124c8826119cd565b15156124d357600080fd5b50600380549081600181016124e883826142e1565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ad929160200190614312565b506060820151816002019080516125c8929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126bf6142cf565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b602083106127105780518252601f1990920191602091820191016126f1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b83518310156110ec576001604060020a0384848151811061277557fe5b90602001906020020151169150604060020a84848151811061279357fe5b906020019060200201518115156127a657fe5b0490506127b38282610fd5565b600190920191612758565b60008060006127cc85611a1b565b94506127d78561309b565b6003810154909350608060020a90046001604060020a031615156127fa57600080fd5b6001830154612811906001604060020a03166130e1565b9150612838826101006040519081016040528154909190829060ff16600281111561120457fe5b600383015461285690608060020a90046001604060020a0316613d27565b9050612863858286613419565b5050505050565b60008080806001604060020a03861615156128b0576128ad6020604051908101604052806000815250602060405190810160405260008082526203f480906124bd565b95505b6128b9866130e1565b93506128e0846101006040519081016040528154909190829060ff16600281111561120457fe5b6000845460ff1660028111156128f257fe5b146128fc57600080fd5b3492506000831161290c57600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561293f57600080fd5b61296e8660006040518059106129525750595b9080825280602002602001820160405250600080600080613127565b91506129798261309b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36129cc86838588611528565b505050505050565b60006129df866130e1565b90506001815460ff1660028111156129f357fe5b146129fd57600080fd5b805433600160a060020a039081166101009092041614612a1c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a4f929160200190614312565b5060028101838051612a65929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612af257612ae9828281518110612ada57fe5b90602001906020020151611a1b565b50600101612ac2565b5050565b600154600160a060020a031681565b600080805b84518310156129cc576001604060020a03858481518110612b2757fe5b90602001906020020151169150604060020a858481518110612b4557fe5b90602001906020020151811515612b5857fe5b049050612b6786838387611528565b600190920191612b0a565b6000612b7d866130e1565b90506000815460ff166002811115612b9157fe5b14612b9b57600080fd5b805433600160a060020a039081166101009092041614612bba57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612bed929160200190614312565b5060028101838051612c03929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612c7d57600080fd5b612c868461309b565b91506001600383015460c060020a900460ff166002811115612ca457fe5b14612cae57600080fd5b6001820154600283018054612d66926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d4157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612cfe5790505b505050506003860154600091508190608060020a90046001604060020a031681613127565b90506110df81611a1b565b600080612d7c6142cf565b612d846142cf565b6000806000806000612d958a6130e1565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e4b5780601f10612e2057610100808354040283529160200191612e4b565b820191906000526020600020905b815481529060010190602001808311612e2e57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eea5780601f10612ebf57610100808354040283529160200191612eea565b820191906000526020600020905b815481529060010190602001808311612ecd57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b83518310156110ec576001604060020a03848481518110612f5857fe5b90602001906020020151169150604060020a848481518110612f7657fe5b90602001906020020151811515612f8957fe5b049050612f968282612c5d565b600190920191612f3b565b6000612fac866130e1565b90506002815460ff166002811115612fc057fe5b14612fca57600080fd5b805433600160a060020a039081166101009092041614612fe957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161301c929160200190614312565b5060028101838051613032929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130b557600080fd5b600280546001604060020a0384169081106130cc57fe5b90600052602060002090600402019050919050565b6003546000906001604060020a038316106130fb57600080fd5b600380546001604060020a03841690811061311257fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561317457808201518382015260200161315c565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156131e157fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561324a5780925061340d565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161328a8382614390565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156132fb57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556040820151816002019080516133469291602001906143bc565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561340157fe5b02179055505050508092505b50509695505050505050565b600080600061342b6001878787613e59565b9250846001604060020a0316866001604060020a0316141561344c576129cc565b821515613458576129cc565b6134618661309b565b915061346c8561309b565b82549091508390101561347e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36134d96000878786613e59565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061351b57508060e00151600160a060020a031633600160a060020a0316145b151561352657600080fd5b50565b60006110df8260006040518059106129525750599080825280602002602001820160405250600080600080613127565b60008060006135678661309b565b9250601461369b8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116135f25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b600281111561369357fe5b905250613e7f565b106136a557600080fd5b6136ae84610e50565b156136b857600080fd5b6001830154600284018054613745926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611ae35750505050600388015460009250829150608060020a90046001604060020a031681613127565b9150613775846000604051805910611b6f5750599080825280602002602001820160405250600080866000613127565b90506129cc868287613419565b60008061378d6142cf565b6000806137998861309b565b60028101549094508690036040518059106137b15750595b90808252806020026020018201604052509250600091505b600284015486900382101561383f57600284018054839081106137e857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061381d57fe5b6001604060020a039092166020928302909101909101526001909101906137c9565b6001840154600385015461386f916001604060020a039081169186916000918291608060020a9091041681613127565b905061387c888289613419565b979650505050505050565b60006138916142cf565b60008061389d8761309b565b6002810154909450601490106138b257600080fd5b60028401546001016040518059106138c75750595b90808252806020026020018201604052509250600091505b600284015482101561395257600284018054839081106138fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061393057fe5b6001604060020a039092166020928302909101909101526001909101906138df565b6002840154859084908151811061396557fe5b6001604060020a0392831660209182029092010152600185015460038601546139a1929182169186916000918291608060020a90041681613127565b90506134d9878288613419565b6000805b836040015151811015613a0257826001604060020a0316846040015182815181106139d957fe5b906020019060200201516001604060020a031614156139fa57809150613a0d565b6001016139b2565b6001604060020a0391505b5092915050565b600080613a208561309b565b91506014613b168360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b10613b2057600080fd5b613b2983610e50565b15613b3357600080fd5b6001820154600283018054612856926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b505050505085613cfc8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613c9657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c535790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613ce957fe5b6002811115613cf457fe5b905250613faa565b613d04613d23565b6003880154910190608060020a90046001604060020a03166000613127565b4290565b600080806001604060020a0384161515613d445760009250613de8565b613d4d8461309b565b6001810154909250613d67906001604060020a03166130e1565b90506000815460ff166002811115613d7b57fe5b1415613d8957839250613de8565b6002815460ff166002811115613d9b57fe5b14613da257fe5b6001820154613db9906001604060020a0316610e50565b1515613dc757839250613de8565b6003820154613de590608060020a90046001604060020a0316613d27565b92505b5050919050565b600080600283516002811115613e0157fe5b14613e0857fe5b8260a001516001604060020a03161515613e255760019150610efa565b613e328360a001516130e1565b9050610ef7816101006040519081016040528154909190829060ff166002811115611fe757fe5b80613e678585808685614034565b9050613e768584868685614034565b95945050505050565b6000808260a001516001604060020a03161515613e9f5760009150610efa565b613eac8360a0015161309b565b9050613fa08160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b6001019392505050565b6000806000613fbc84602001516130e1565b60038101546001604060020a031693509150600090505b836040015151811015613de85761400284604001518281518110613ff357fe5b906020019060200201516130e1565b60038101549092506001604060020a03168390111561402c5760038201546001604060020a031692505b600101613fd3565b600080600080866001604060020a0316886001604060020a03161461405b5761010061405e565b60005b61ffff1692508493506140708861309b565b6001810154909250614090908a906001604060020a031689898789614152565b9350600090505b60028201546001604060020a038216101561410b576141018983600201836001604060020a03168154811015156140ca57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189614152565b9350600101614097565b600382015460006001604060020a039091161115614146576003820154614143908a906001604060020a0316898960ff880189614152565b93505b50505095945050505050565b8060008061415f886130e1565b6004810154909150600160a060020a03161580159061417e5750600083115b1561340d578815614239576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561420857600080fd5b6102c65a03f1151561421957600080fd5b50505060405180519250508282111561423157600080fd5b81925061340d565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142af57600080fd5b6102c65a03f115156142c057600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b81548183558181151161430d5760050281600502836000526020600020918201910161430d9190614470565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061435357805160ff1916838001178555614380565b82800160010185558215614380579182015b82811115614380578251825591602001919060010190614365565b5061438c9291506144ee565b5090565b81548183558181151161430d5760040281600402836000526020600020918201910161430d9190614508565b828054828255906000526020600020906003016004900481019282156144645791602002820160005b8382111561442f57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026143e5565b80156144625782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261442f565b505b5061438c929150614568565b610f3e91905b8082111561438c57805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144a9600183018261458d565b6144b760028301600061458d565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501614476565b610f3e91905b8082111561438c57600081556001016144f4565b610f3e91905b8082111561438c57600080825560018201805467ffffffffffffffff1916905561453b60028301826145d1565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161450e565b610f3e91905b8082111561438c57805467ffffffffffffffff1916815560010161456e565b50805460018160011615610100020316600290046000825580601f106145b35750613526565b601f01602090049060005260206000209081019061352691906144ee565b50805460008255600301600490049060005260206000209081019061352691906144ee5600a165627a7a723058203a8601ec37f8dcfee9473016e32ab8f3e43e9e556eeaca097d1d4fd506ffbf200029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a60003504166314e7b1dc81146101c35780632101a6ad1461027c57806329026614146102af5780632a8ec8cc146102c75780632af4c31e146102ec5780632ee888081461030b578063387402911461032d5780633f657a461461034557806343387983146103c357806347c5ef43146103e55780634eafbcd51461041457806350f8a8031461043357806352dc7dcc1461046e5780635503d9ba1461051a57806357adafb61461052d5780635afe68d01461057c578063666a342714610592578063710bf322146105b157806372116e92146105d0578063796d56541461068c57806379ba5097146106ab5780637c2d86f7146106be5780637f61fa93146106d157806381ea44081461077d5780638da5cb5b1461079c5780639398f5a2146107cb578063af9f45631461081a578063bde60ac91461083c578063cc19ecf714610856578063ce17273c14610911578063d091b55014610960578063d639cd7314610973578063db7c2314146109db578063e9c211e214610a96578063eba8ba0614610ab8578063ef3766e414610c0e578063f6b24b1c14610c5d578063fbfa77cf14610d18575b600080fd5b34156101ce57600080fd5b6101e56001604060020a0360043516602435610d2b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561023f578082015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561028757600080fd5b61029b6001604060020a0360043516610e50565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c5600435610f00565b005b34156102d257600080fd5b6102da610f36565b60405190815260200160405180910390f35b34156102f757600080fd5b6102c5600160a060020a0360043516610f41565b341561031657600080fd5b6102c56001604060020a0360043516602435610fd5565b341561033857600080fd5b6102c560043515156110f2565b341561035057600080fd5b6103646001604060020a0360043516611120565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103a957fe5b60ff16815260200197505050505050505060405180910390f35b34156103ce57600080fd5b6102c56001604060020a0360043516602435611185565b34156103f057600080fd5b6102c56001604060020a036004358116906024358116906044359060643516611528565b341561041f57600080fd5b61029b600160a060020a03600435166119cd565b341561043e57600080fd5b6104526001604060020a0360043516611a1b565b6040516001604060020a03909116815260200160405180910390f35b341561047957600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611be4915050565b341561052557600080fd5b6102da611ddd565b341561053857600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611de795505050505050565b341561058757600080fd5b6102c5600435611e52565b341561059d57600080fd5b6102c5600160a060020a0360043516611e85565b34156105bc57600080fd5b6102c5600160a060020a0360043516611f02565b34156105db57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611f739050565b341561069757600080fd5b6102c56001604060020a03600435166123a6565b34156106b657600080fd5b6102c5612434565b34156106c957600080fd5b61029b6124b4565b34156106dc57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124bd915050565b341561078857600080fd5b6102da600160a060020a03600435166126b5565b34156107a757600080fd5b6107af612744565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102c5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061275395505050505050565b341561082557600080fd5b6102c56001604060020a03600435166024356127be565b6102c56001604060020a036004358116906024351661286a565b341561086157600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506129d4915050565b341561091c57600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612abf95505050505050565b341561096b57600080fd5b6107af612af6565b341561097e57600080fd5b6102c5600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b05915050565b34156109e657600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612b72915050565b3415610aa157600080fd5b6102c56001604060020a0360043516602435612c5d565b3415610ac357600080fd5b610ad76001604060020a0360043516612d71565b60405180896002811115610ae757fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b68578082015183820152602001610b50565b50505050905090810190601f168015610b955780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610bcb578082015183820152602001610bb3565b50505050905090810190601f168015610bf85780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c1957600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f3695505050505050565b3415610c6857600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612fa1915050565b3415610d2357600080fd5b6107af61308c565b600080610d366142cf565b600080610d428761309b565b91508160020160018703815481101515610d5857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610d8c856130e1565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e405780601f10610e1557610100808354040283529160200191610e40565b820191906000526020600020905b815481529060010190602001808311610e2357829003601f168201915b5050505050925050509250925092565b600080610e5c836130e1565b90506000815460ff166002811115610e7057fe5b1415610e7f5760009150610efa565b6002815460ff166002811115610e9157fe5b14610e9857fe5b6003810154608060020a900460ff1615610eb55760019150610efa565b6003810154604060020a90046001604060020a03161515610ed95760009150610efa565b6003810154610ef790604060020a90046001604060020a0316610e50565b91505b50919050565b60005433600160a060020a03908116911614610f1b57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f5d57600080fd5b600160a060020a0382161515610f7257600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a03908116911614610ff557600080fd5b610ffe8461309b565b91506001600383015460c060020a900460ff16600281111561101c57fe5b1461102657600080fd5b60018201546002830180546110df926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110765790505b505050506003860154600091508190608060020a90046001604060020a03166002613127565b90506110ec848285613419565b50505050565b60005433600160a060020a0390811691161461110d57600080fd5b6007805460ff1916911515919091179055565b6000806000806000806000806111358961309b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b600080600061119385611a1b565b945061119e8561309b565b92506000600384015460c060020a900460ff1660028111156111bc57fe5b146111c657600080fd5b60018301546111dd906001604060020a03166130e1565b91506113d2826101006040519081016040528154909190829060ff16600281111561120457fe5b600281111561120f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112db5780601f106112b0576101008083540402835291602001916112db565b820191906000526020600020905b8154815290600101906020018083116112be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526134e2565b600183015460028401805461148b926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561146557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114225790505b505050506003870154600091508190608060020a90046001604060020a03166001613127565b9050611498858286613419565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b5050505050505050565b600080600080600061153988611a1b565b97506115448861309b565b945061154f866130e1565b935061155a896130e1565b9250611581836101006040519081016040528154909190829060ff16600281111561120457fe5b6000600386015460c060020a900460ff16600281111561159d57fe5b146115a757600080fd5b60018501546001604060020a038a811691161415611648576000845460ff1660028111156115d157fe5b14156115e7576115e2888888613529565b611643565b6002845460ff1660028111156115f957fe5b141561160a576115e2888888613559565b6001845460ff16600281111561161c57fe5b14156116415761163488888760020180549050613782565b97506115e2888888613887565bfe5b6119c2565b6117798560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116cf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561176557fe5b600281111561177057fe5b9052508a6139ae565b6001604060020a0390811692508214611641576000845460ff16600281111561179e57fe5b14156117d55760018501546001604060020a038781169116146117bd57fe5b6117cf88888760020180549050613782565b506119c2565b6001845460ff1660028111156117e757fe5b14156119865761191e8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118b757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118745790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561190a57fe5b600281111561191557fe5b905250876139ae565b6001604060020a03908116915081141561194957611634888860018589600201805490500303613782565b8181111561196857611634888860018589600201805490500303613782565b818111611643576117cf888860018489600201805490500303613782565b6002845460ff16600281111561199857fe5b1415611641576119b5888860018589600201805490500303613782565b9750611643888888613a14565b505050505050505050565b600754600090819060ff1615806119eb5750600160a060020a038316155b156119f95760019150610efa565b611a02836126b5565b60009081526006602052604090205460ff169392505050565b600080600080611a2a8561309b565b92506000600384015460c060020a900460ff166002811115611a4857fe5b14611a5557849350611bdc565b600383015460006001604060020a03909116118015611a8e57506003830154604060020a90046001604060020a0316611a8c613d23565b115b15611bab576001830154600284018054611b4b926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611ae35790505b505050506003870154600091508190608060020a90046001604060020a031681613127565b6003840154909250611b8b906001604060020a03166000604051805910611b6f5750595b9080825280602002602001820160405250600080866000613127565b9050611b9c85828560000154613419565b809450611ba88561309b565b92505b611bb485613d27565b90506001604060020a0380821690861614611bd857611bd885828560000154613419565b8093505b505050919050565b6000611bef826119cd565b1515611bfa57600080fd5b5060038054908160018101611c0f83826142e1565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c8e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cd4929160200190614312565b50606082015181600201908051611cef929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b83518310156110ec576001604060020a03848481518110611e0957fe5b90602001906020020151169150604060020a848481518110611e2757fe5b90602001906020020151811515611e3a57fe5b049050611e478282611185565b600190920191611dec565b60005433600160a060020a03908116911614611e6d57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611ea057600080fd5b610dac600160a060020a03821614611eb757600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f1d57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611f7f836119cd565b1515611f8a57600080fd5b6001604060020a038516156121bf57611fa2856130e1565b90506002815460ff166002811115611fb657fe5b14611fc057600080fd5b60146121b5826101006040519081016040528154909190829060ff166002811115611fe757fe5b6002811115611ff257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121605780601f1061213557610100808354040283529160200191612160565b820191906000526020600020905b81548152906001019060200180831161214357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613def565b106121bf57600080fd5b60038054925082600181016121d483826142e1565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561225457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161229a929160200190614312565b506060820151816002019080516122b5929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123b1826130e1565b90506123d8816101006040519081016040528154909190829060ff16600281111561120457fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461245257600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006124c8826119cd565b15156124d357600080fd5b50600380549081600181016124e883826142e1565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ad929160200190614312565b506060820151816002019080516125c8929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126bf6142cf565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b602083106127105780518252601f1990920191602091820191016126f1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b83518310156110ec576001604060020a0384848151811061277557fe5b90602001906020020151169150604060020a84848151811061279357fe5b906020019060200201518115156127a657fe5b0490506127b38282610fd5565b600190920191612758565b60008060006127cc85611a1b565b94506127d78561309b565b6003810154909350608060020a90046001604060020a031615156127fa57600080fd5b6001830154612811906001604060020a03166130e1565b9150612838826101006040519081016040528154909190829060ff16600281111561120457fe5b600383015461285690608060020a90046001604060020a0316613d27565b9050612863858286613419565b5050505050565b60008080806001604060020a03861615156128b0576128ad6020604051908101604052806000815250602060405190810160405260008082526203f480906124bd565b95505b6128b9866130e1565b93506128e0846101006040519081016040528154909190829060ff16600281111561120457fe5b6000845460ff1660028111156128f257fe5b146128fc57600080fd5b3492506000831161290c57600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561293f57600080fd5b61296e8660006040518059106129525750595b9080825280602002602001820160405250600080600080613127565b91506129798261309b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36129cc86838588611528565b505050505050565b60006129df866130e1565b90506001815460ff1660028111156129f357fe5b146129fd57600080fd5b805433600160a060020a039081166101009092041614612a1c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a4f929160200190614312565b5060028101838051612a65929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612af257612ae9828281518110612ada57fe5b90602001906020020151611a1b565b50600101612ac2565b5050565b600154600160a060020a031681565b600080805b84518310156129cc576001604060020a03858481518110612b2757fe5b90602001906020020151169150604060020a858481518110612b4557fe5b90602001906020020151811515612b5857fe5b049050612b6786838387611528565b600190920191612b0a565b6000612b7d866130e1565b90506000815460ff166002811115612b9157fe5b14612b9b57600080fd5b805433600160a060020a039081166101009092041614612bba57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612bed929160200190614312565b5060028101838051612c03929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612c7d57600080fd5b612c868461309b565b91506001600383015460c060020a900460ff166002811115612ca457fe5b14612cae57600080fd5b6001820154600283018054612d66926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d4157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612cfe5790505b505050506003860154600091508190608060020a90046001604060020a031681613127565b90506110df81611a1b565b600080612d7c6142cf565b612d846142cf565b6000806000806000612d958a6130e1565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e4b5780601f10612e2057610100808354040283529160200191612e4b565b820191906000526020600020905b815481529060010190602001808311612e2e57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eea5780601f10612ebf57610100808354040283529160200191612eea565b820191906000526020600020905b815481529060010190602001808311612ecd57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b83518310156110ec576001604060020a03848481518110612f5857fe5b90602001906020020151169150604060020a848481518110612f7657fe5b90602001906020020151811515612f8957fe5b049050612f968282612c5d565b600190920191612f3b565b6000612fac866130e1565b90506002815460ff166002811115612fc057fe5b14612fca57600080fd5b805433600160a060020a039081166101009092041614612fe957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161301c929160200190614312565b5060028101838051613032929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130b557600080fd5b600280546001604060020a0384169081106130cc57fe5b90600052602060002090600402019050919050565b6003546000906001604060020a038316106130fb57600080fd5b600380546001604060020a03841690811061311257fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561317457808201518382015260200161315c565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156131e157fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561324a5780925061340d565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161328a8382614390565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156132fb57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556040820151816002019080516133469291602001906143bc565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561340157fe5b02179055505050508092505b50509695505050505050565b600080600061342b6001878787613e59565b9250846001604060020a0316866001604060020a0316141561344c576129cc565b821515613458576129cc565b6134618661309b565b915061346c8561309b565b82549091508390101561347e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36134d96000878786613e59565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061351b57508060e00151600160a060020a031633600160a060020a0316145b151561352657600080fd5b50565b60006110df8260006040518059106129525750599080825280602002602001820160405250600080600080613127565b60008060006135678661309b565b9250601461369b8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116135f25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b600281111561369357fe5b905250613e7f565b106136a557600080fd5b6136ae84610e50565b156136b857600080fd5b6001830154600284018054613745926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611ae35750505050600388015460009250829150608060020a90046001604060020a031681613127565b9150613775846000604051805910611b6f5750599080825280602002602001820160405250600080866000613127565b90506129cc868287613419565b60008061378d6142cf565b6000806137998861309b565b60028101549094508690036040518059106137b15750595b90808252806020026020018201604052509250600091505b600284015486900382101561383f57600284018054839081106137e857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061381d57fe5b6001604060020a039092166020928302909101909101526001909101906137c9565b6001840154600385015461386f916001604060020a039081169186916000918291608060020a9091041681613127565b905061387c888289613419565b979650505050505050565b60006138916142cf565b60008061389d8761309b565b6002810154909450601490106138b257600080fd5b60028401546001016040518059106138c75750595b90808252806020026020018201604052509250600091505b600284015482101561395257600284018054839081106138fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061393057fe5b6001604060020a039092166020928302909101909101526001909101906138df565b6002840154859084908151811061396557fe5b6001604060020a0392831660209182029092010152600185015460038601546139a1929182169186916000918291608060020a90041681613127565b90506134d9878288613419565b6000805b836040015151811015613a0257826001604060020a0316846040015182815181106139d957fe5b906020019060200201516001604060020a031614156139fa57809150613a0d565b6001016139b2565b6001604060020a0391505b5092915050565b600080613a208561309b565b91506014613b168360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b10613b2057600080fd5b613b2983610e50565b15613b3357600080fd5b6001820154600283018054612856926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b505050505085613cfc8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613c9657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c535790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613ce957fe5b6002811115613cf457fe5b905250613faa565b613d04613d23565b6003880154910190608060020a90046001604060020a03166000613127565b4290565b600080806001604060020a0384161515613d445760009250613de8565b613d4d8461309b565b6001810154909250613d67906001604060020a03166130e1565b90506000815460ff166002811115613d7b57fe5b1415613d8957839250613de8565b6002815460ff166002811115613d9b57fe5b14613da257fe5b6001820154613db9906001604060020a0316610e50565b1515613dc757839250613de8565b6003820154613de590608060020a90046001604060020a0316613d27565b92505b5050919050565b600080600283516002811115613e0157fe5b14613e0857fe5b8260a001516001604060020a03161515613e255760019150610efa565b613e328360a001516130e1565b9050610ef7816101006040519081016040528154909190829060ff166002811115611fe757fe5b80613e678585808685614034565b9050613e768584868685614034565b95945050505050565b6000808260a001516001604060020a03161515613e9f5760009150610efa565b613eac8360a0015161309b565b9050613fa08160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b6001019392505050565b6000806000613fbc84602001516130e1565b60038101546001604060020a031693509150600090505b836040015151811015613de85761400284604001518281518110613ff357fe5b906020019060200201516130e1565b60038101549092506001604060020a03168390111561402c5760038201546001604060020a031692505b600101613fd3565b600080600080866001604060020a0316886001604060020a03161461405b5761010061405e565b60005b61ffff1692508493506140708861309b565b6001810154909250614090908a906001604060020a031689898789614152565b9350600090505b60028201546001604060020a038216101561410b576141018983600201836001604060020a03168154811015156140ca57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189614152565b9350600101614097565b600382015460006001604060020a039091161115614146576003820154614143908a906001604060020a0316898960ff880189614152565b93505b50505095945050505050565b8060008061415f886130e1565b6004810154909150600160a060020a03161580159061417e5750600083115b1561340d578815614239576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561420857600080fd5b6102c65a03f1151561421957600080fd5b50505060405180519250508282111561423157600080fd5b81925061340d565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142af57600080fd5b6102c65a03f115156142c057600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b81548183558181151161430d5760050281600502836000526020600020918201910161430d9190614470565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061435357805160ff1916838001178555614380565b82800160010185558215614380579182015b82811115614380578251825591602001919060010190614365565b5061438c9291506144ee565b5090565b81548183558181151161430d5760040281600402836000526020600020918201910161430d9190614508565b828054828255906000526020600020906003016004900481019282156144645791602002820160005b8382111561442f57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026143e5565b80156144625782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261442f565b505b5061438c929150614568565b610f3e91905b8082111561438c57805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144a9600183018261458d565b6144b760028301600061458d565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501614476565b610f3e91905b8082111561438c57600081556001016144f4565b610f3e91905b8082111561438c57600080825560018201805467ffffffffffffffff1916905561453b60028301826145d1565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161450e565b610f3e91905b8082111561438c57805467ffffffffffffffff1916815560010161456e565b50805460018160011615610100020316600290046000825580601f106145b35750613526565b601f01602090049060005260206000209081019061352691906144ee565b50805460008255600301600490049060005260206000209081019061352691906144ee5600a165627a7a723058203a8601ec37f8dcfee9473016e32ab8f3e43e9e556eeaca097d1d4fd506ffbf200029" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620022388339810160405280805160008054600160a060020a03191633600160a060020a03161790559150600190506200005f60038262000096565b5060016200006f600282620000ca565b5060048054600160a060020a031916600160a060020a039290921691909117905562000262565b815481835581811511620000c557600502816005028360005260206000209182019101620000c59190620000f9565b505050565b815481835581811511620000c557600402816004028360005260206000209182019101620000c591906200016d565b6200016a91905b8082111562000166578054600160a860020a03191681556000620001286001830182620001d8565b62000138600283016000620001d8565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000100565b5090565b90565b6200016a91905b808211156200016657600080825560018201805467ffffffffffffffff19169055620001a4600283018262000223565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000174565b50805460018160011615610100020316600290046000825580601f1062000200575062000220565b601f01602090049060005260206000209081019062000220919062000245565b50565b5080546000825560030160049004906000526020600020908101906200022091905b6200016a91905b808211156200016657600081556001016200024c565b611fc680620002726000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a72305820c8b8448fa2584f46548ab75a055b6b56396b0bf68c7597b311cc510bde0578170029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a72305820c8b8448fa2584f46548ab75a055b6b56396b0bf68c7597b311cc510bde0578170029" +exports.OwnedAbi = [{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556103b08061003b6000396000f3006060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a7230582010306742d838d2ae75e8bb710ca1380ee4283b4f435ed9f917c772a9edfefc6e0029" +exports.OwnedRuntimeByteCode = "0x6060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a7230582010306742d838d2ae75e8bb710ca1380ee4283b4f435ed9f917c772a9edfefc6e0029" +exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058202381d8a51494eb4c931a46a2df1777c7cfce15d1cd0b6ba5f6394b99f609ce7a0029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058202381d8a51494eb4c931a46a2df1777c7cfce15d1cd0b6ba5f6394b99f609ce7a0029" +exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] +exports.VaultByteCode = "0x" +exports.VaultRuntimeByteCode = "0x" +exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" +exports._sha256 = "0x93e4756a8089afa41e8c8a3cc425a3bff2d0fbaf121fd6d3cce826275d797ca2" diff --git a/build/TestSimpleProjectPluginFactory.sol.js b/build/TestSimpleProjectPluginFactory.sol.js new file mode 100644 index 0000000..b2c1e09 --- /dev/null +++ b/build/TestSimpleProjectPluginFactory.sol.js @@ -0,0 +1,25 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports.LiquidPledgingAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"}],"name":"donate","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint64"},{"indexed":true,"name":"to","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620048968339810160405280805160008054600160a060020a03191633600160a060020a0316179055915081905060016200006060038262000098565b50600162000070600282620000cc565b5060048054600160a060020a031916600160a060020a03929092169190911790555062000264565b815481835581811511620000c757600502816005028360005260206000209182019101620000c79190620000fb565b505050565b815481835581811511620000c757600402816004028360005260206000209182019101620000c791906200016f565b6200016c91905b8082111562000168578054600160a860020a031916815560006200012a6001830182620001da565b6200013a600283016000620001da565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000102565b5090565b90565b6200016c91905b808211156200016857600080825560018201805467ffffffffffffffff19169055620001a6600283018262000225565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000176565b50805460018160011615610100020316600290046000825580601f1062000202575062000222565b601f01602090049060005260206000209081019062000222919062000247565b50565b5080546000825560030160049004906000526020600020908101906200022291905b6200016c91905b808211156200016857600081556001016200024e565b61462280620002746000396000f3006060604052600436106101be5763ffffffff60e060020a60003504166314e7b1dc81146101c35780632101a6ad1461027c57806329026614146102af5780632a8ec8cc146102c75780632af4c31e146102ec5780632ee888081461030b578063387402911461032d5780633f657a461461034557806343387983146103c357806347c5ef43146103e55780634eafbcd51461041457806350f8a8031461043357806352dc7dcc1461046e5780635503d9ba1461051a57806357adafb61461052d5780635afe68d01461057c578063666a342714610592578063710bf322146105b157806372116e92146105d0578063796d56541461068c57806379ba5097146106ab5780637c2d86f7146106be5780637f61fa93146106d157806381ea44081461077d5780638da5cb5b1461079c5780639398f5a2146107cb578063af9f45631461081a578063bde60ac91461083c578063cc19ecf714610856578063ce17273c14610911578063d091b55014610960578063d639cd7314610973578063db7c2314146109db578063e9c211e214610a96578063eba8ba0614610ab8578063ef3766e414610c0e578063f6b24b1c14610c5d578063fbfa77cf14610d18575b600080fd5b34156101ce57600080fd5b6101e56001604060020a0360043516602435610d2b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561023f578082015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561028757600080fd5b61029b6001604060020a0360043516610e50565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c5600435610f00565b005b34156102d257600080fd5b6102da610f36565b60405190815260200160405180910390f35b34156102f757600080fd5b6102c5600160a060020a0360043516610f41565b341561031657600080fd5b6102c56001604060020a0360043516602435610fd5565b341561033857600080fd5b6102c560043515156110f2565b341561035057600080fd5b6103646001604060020a0360043516611120565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103a957fe5b60ff16815260200197505050505050505060405180910390f35b34156103ce57600080fd5b6102c56001604060020a0360043516602435611185565b34156103f057600080fd5b6102c56001604060020a036004358116906024358116906044359060643516611528565b341561041f57600080fd5b61029b600160a060020a03600435166119cd565b341561043e57600080fd5b6104526001604060020a0360043516611a1b565b6040516001604060020a03909116815260200160405180910390f35b341561047957600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611be4915050565b341561052557600080fd5b6102da611ddd565b341561053857600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611de795505050505050565b341561058757600080fd5b6102c5600435611e52565b341561059d57600080fd5b6102c5600160a060020a0360043516611e85565b34156105bc57600080fd5b6102c5600160a060020a0360043516611f02565b34156105db57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611f739050565b341561069757600080fd5b6102c56001604060020a03600435166123a6565b34156106b657600080fd5b6102c5612434565b34156106c957600080fd5b61029b6124b4565b34156106dc57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124bd915050565b341561078857600080fd5b6102da600160a060020a03600435166126b5565b34156107a757600080fd5b6107af612744565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102c5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061275395505050505050565b341561082557600080fd5b6102c56001604060020a03600435166024356127be565b6102c56001604060020a036004358116906024351661286a565b341561086157600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506129d4915050565b341561091c57600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612abf95505050505050565b341561096b57600080fd5b6107af612af6565b341561097e57600080fd5b6102c5600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b05915050565b34156109e657600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612b72915050565b3415610aa157600080fd5b6102c56001604060020a0360043516602435612c5d565b3415610ac357600080fd5b610ad76001604060020a0360043516612d71565b60405180896002811115610ae757fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b68578082015183820152602001610b50565b50505050905090810190601f168015610b955780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610bcb578082015183820152602001610bb3565b50505050905090810190601f168015610bf85780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c1957600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f3695505050505050565b3415610c6857600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612fa1915050565b3415610d2357600080fd5b6107af61308c565b600080610d366142cf565b600080610d428761309b565b91508160020160018703815481101515610d5857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610d8c856130e1565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e405780601f10610e1557610100808354040283529160200191610e40565b820191906000526020600020905b815481529060010190602001808311610e2357829003601f168201915b5050505050925050509250925092565b600080610e5c836130e1565b90506000815460ff166002811115610e7057fe5b1415610e7f5760009150610efa565b6002815460ff166002811115610e9157fe5b14610e9857fe5b6003810154608060020a900460ff1615610eb55760019150610efa565b6003810154604060020a90046001604060020a03161515610ed95760009150610efa565b6003810154610ef790604060020a90046001604060020a0316610e50565b91505b50919050565b60005433600160a060020a03908116911614610f1b57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f5d57600080fd5b600160a060020a0382161515610f7257600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a03908116911614610ff557600080fd5b610ffe8461309b565b91506001600383015460c060020a900460ff16600281111561101c57fe5b1461102657600080fd5b60018201546002830180546110df926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110765790505b505050506003860154600091508190608060020a90046001604060020a03166002613127565b90506110ec848285613419565b50505050565b60005433600160a060020a0390811691161461110d57600080fd5b6007805460ff1916911515919091179055565b6000806000806000806000806111358961309b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b600080600061119385611a1b565b945061119e8561309b565b92506000600384015460c060020a900460ff1660028111156111bc57fe5b146111c657600080fd5b60018301546111dd906001604060020a03166130e1565b91506113d2826101006040519081016040528154909190829060ff16600281111561120457fe5b600281111561120f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112db5780601f106112b0576101008083540402835291602001916112db565b820191906000526020600020905b8154815290600101906020018083116112be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526134e2565b600183015460028401805461148b926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561146557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114225790505b505050506003870154600091508190608060020a90046001604060020a03166001613127565b9050611498858286613419565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b5050505050505050565b600080600080600061153988611a1b565b97506115448861309b565b945061154f866130e1565b935061155a896130e1565b9250611581836101006040519081016040528154909190829060ff16600281111561120457fe5b6000600386015460c060020a900460ff16600281111561159d57fe5b146115a757600080fd5b60018501546001604060020a038a811691161415611648576000845460ff1660028111156115d157fe5b14156115e7576115e2888888613529565b611643565b6002845460ff1660028111156115f957fe5b141561160a576115e2888888613559565b6001845460ff16600281111561161c57fe5b14156116415761163488888760020180549050613782565b97506115e2888888613887565bfe5b6119c2565b6117798560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116cf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561176557fe5b600281111561177057fe5b9052508a6139ae565b6001604060020a0390811692508214611641576000845460ff16600281111561179e57fe5b14156117d55760018501546001604060020a038781169116146117bd57fe5b6117cf88888760020180549050613782565b506119c2565b6001845460ff1660028111156117e757fe5b14156119865761191e8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118b757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118745790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561190a57fe5b600281111561191557fe5b905250876139ae565b6001604060020a03908116915081141561194957611634888860018589600201805490500303613782565b8181111561196857611634888860018589600201805490500303613782565b818111611643576117cf888860018489600201805490500303613782565b6002845460ff16600281111561199857fe5b1415611641576119b5888860018589600201805490500303613782565b9750611643888888613a14565b505050505050505050565b600754600090819060ff1615806119eb5750600160a060020a038316155b156119f95760019150610efa565b611a02836126b5565b60009081526006602052604090205460ff169392505050565b600080600080611a2a8561309b565b92506000600384015460c060020a900460ff166002811115611a4857fe5b14611a5557849350611bdc565b600383015460006001604060020a03909116118015611a8e57506003830154604060020a90046001604060020a0316611a8c613d23565b115b15611bab576001830154600284018054611b4b926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611ae35790505b505050506003870154600091508190608060020a90046001604060020a031681613127565b6003840154909250611b8b906001604060020a03166000604051805910611b6f5750595b9080825280602002602001820160405250600080866000613127565b9050611b9c85828560000154613419565b809450611ba88561309b565b92505b611bb485613d27565b90506001604060020a0380821690861614611bd857611bd885828560000154613419565b8093505b505050919050565b6000611bef826119cd565b1515611bfa57600080fd5b5060038054908160018101611c0f83826142e1565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c8e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cd4929160200190614312565b50606082015181600201908051611cef929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b83518310156110ec576001604060020a03848481518110611e0957fe5b90602001906020020151169150604060020a848481518110611e2757fe5b90602001906020020151811515611e3a57fe5b049050611e478282611185565b600190920191611dec565b60005433600160a060020a03908116911614611e6d57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611ea057600080fd5b610dac600160a060020a03821614611eb757600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f1d57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611f7f836119cd565b1515611f8a57600080fd5b6001604060020a038516156121bf57611fa2856130e1565b90506002815460ff166002811115611fb657fe5b14611fc057600080fd5b60146121b5826101006040519081016040528154909190829060ff166002811115611fe757fe5b6002811115611ff257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121605780601f1061213557610100808354040283529160200191612160565b820191906000526020600020905b81548152906001019060200180831161214357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613def565b106121bf57600080fd5b60038054925082600181016121d483826142e1565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561225457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161229a929160200190614312565b506060820151816002019080516122b5929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123b1826130e1565b90506123d8816101006040519081016040528154909190829060ff16600281111561120457fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461245257600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006124c8826119cd565b15156124d357600080fd5b50600380549081600181016124e883826142e1565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ad929160200190614312565b506060820151816002019080516125c8929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126bf6142cf565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b602083106127105780518252601f1990920191602091820191016126f1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b83518310156110ec576001604060020a0384848151811061277557fe5b90602001906020020151169150604060020a84848151811061279357fe5b906020019060200201518115156127a657fe5b0490506127b38282610fd5565b600190920191612758565b60008060006127cc85611a1b565b94506127d78561309b565b6003810154909350608060020a90046001604060020a031615156127fa57600080fd5b6001830154612811906001604060020a03166130e1565b9150612838826101006040519081016040528154909190829060ff16600281111561120457fe5b600383015461285690608060020a90046001604060020a0316613d27565b9050612863858286613419565b5050505050565b60008080806001604060020a03861615156128b0576128ad6020604051908101604052806000815250602060405190810160405260008082526203f480906124bd565b95505b6128b9866130e1565b93506128e0846101006040519081016040528154909190829060ff16600281111561120457fe5b6000845460ff1660028111156128f257fe5b146128fc57600080fd5b3492506000831161290c57600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561293f57600080fd5b61296e8660006040518059106129525750595b9080825280602002602001820160405250600080600080613127565b91506129798261309b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36129cc86838588611528565b505050505050565b60006129df866130e1565b90506001815460ff1660028111156129f357fe5b146129fd57600080fd5b805433600160a060020a039081166101009092041614612a1c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a4f929160200190614312565b5060028101838051612a65929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612af257612ae9828281518110612ada57fe5b90602001906020020151611a1b565b50600101612ac2565b5050565b600154600160a060020a031681565b600080805b84518310156129cc576001604060020a03858481518110612b2757fe5b90602001906020020151169150604060020a858481518110612b4557fe5b90602001906020020151811515612b5857fe5b049050612b6786838387611528565b600190920191612b0a565b6000612b7d866130e1565b90506000815460ff166002811115612b9157fe5b14612b9b57600080fd5b805433600160a060020a039081166101009092041614612bba57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612bed929160200190614312565b5060028101838051612c03929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612c7d57600080fd5b612c868461309b565b91506001600383015460c060020a900460ff166002811115612ca457fe5b14612cae57600080fd5b6001820154600283018054612d66926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d4157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612cfe5790505b505050506003860154600091508190608060020a90046001604060020a031681613127565b90506110df81611a1b565b600080612d7c6142cf565b612d846142cf565b6000806000806000612d958a6130e1565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e4b5780601f10612e2057610100808354040283529160200191612e4b565b820191906000526020600020905b815481529060010190602001808311612e2e57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eea5780601f10612ebf57610100808354040283529160200191612eea565b820191906000526020600020905b815481529060010190602001808311612ecd57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b83518310156110ec576001604060020a03848481518110612f5857fe5b90602001906020020151169150604060020a848481518110612f7657fe5b90602001906020020151811515612f8957fe5b049050612f968282612c5d565b600190920191612f3b565b6000612fac866130e1565b90506002815460ff166002811115612fc057fe5b14612fca57600080fd5b805433600160a060020a039081166101009092041614612fe957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161301c929160200190614312565b5060028101838051613032929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130b557600080fd5b600280546001604060020a0384169081106130cc57fe5b90600052602060002090600402019050919050565b6003546000906001604060020a038316106130fb57600080fd5b600380546001604060020a03841690811061311257fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561317457808201518382015260200161315c565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156131e157fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561324a5780925061340d565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161328a8382614390565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156132fb57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556040820151816002019080516133469291602001906143bc565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561340157fe5b02179055505050508092505b50509695505050505050565b600080600061342b6001878787613e59565b9250846001604060020a0316866001604060020a0316141561344c576129cc565b821515613458576129cc565b6134618661309b565b915061346c8561309b565b82549091508390101561347e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36134d96000878786613e59565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061351b57508060e00151600160a060020a031633600160a060020a0316145b151561352657600080fd5b50565b60006110df8260006040518059106129525750599080825280602002602001820160405250600080600080613127565b60008060006135678661309b565b9250601461369b8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116135f25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b600281111561369357fe5b905250613e7f565b106136a557600080fd5b6136ae84610e50565b156136b857600080fd5b6001830154600284018054613745926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611ae35750505050600388015460009250829150608060020a90046001604060020a031681613127565b9150613775846000604051805910611b6f5750599080825280602002602001820160405250600080866000613127565b90506129cc868287613419565b60008061378d6142cf565b6000806137998861309b565b60028101549094508690036040518059106137b15750595b90808252806020026020018201604052509250600091505b600284015486900382101561383f57600284018054839081106137e857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061381d57fe5b6001604060020a039092166020928302909101909101526001909101906137c9565b6001840154600385015461386f916001604060020a039081169186916000918291608060020a9091041681613127565b905061387c888289613419565b979650505050505050565b60006138916142cf565b60008061389d8761309b565b6002810154909450601490106138b257600080fd5b60028401546001016040518059106138c75750595b90808252806020026020018201604052509250600091505b600284015482101561395257600284018054839081106138fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061393057fe5b6001604060020a039092166020928302909101909101526001909101906138df565b6002840154859084908151811061396557fe5b6001604060020a0392831660209182029092010152600185015460038601546139a1929182169186916000918291608060020a90041681613127565b90506134d9878288613419565b6000805b836040015151811015613a0257826001604060020a0316846040015182815181106139d957fe5b906020019060200201516001604060020a031614156139fa57809150613a0d565b6001016139b2565b6001604060020a0391505b5092915050565b600080613a208561309b565b91506014613b168360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b10613b2057600080fd5b613b2983610e50565b15613b3357600080fd5b6001820154600283018054612856926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b505050505085613cfc8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613c9657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c535790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613ce957fe5b6002811115613cf457fe5b905250613faa565b613d04613d23565b6003880154910190608060020a90046001604060020a03166000613127565b4290565b600080806001604060020a0384161515613d445760009250613de8565b613d4d8461309b565b6001810154909250613d67906001604060020a03166130e1565b90506000815460ff166002811115613d7b57fe5b1415613d8957839250613de8565b6002815460ff166002811115613d9b57fe5b14613da257fe5b6001820154613db9906001604060020a0316610e50565b1515613dc757839250613de8565b6003820154613de590608060020a90046001604060020a0316613d27565b92505b5050919050565b600080600283516002811115613e0157fe5b14613e0857fe5b8260a001516001604060020a03161515613e255760019150610efa565b613e328360a001516130e1565b9050610ef7816101006040519081016040528154909190829060ff166002811115611fe757fe5b80613e678585808685614034565b9050613e768584868685614034565b95945050505050565b6000808260a001516001604060020a03161515613e9f5760009150610efa565b613eac8360a0015161309b565b9050613fa08160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b6001019392505050565b6000806000613fbc84602001516130e1565b60038101546001604060020a031693509150600090505b836040015151811015613de85761400284604001518281518110613ff357fe5b906020019060200201516130e1565b60038101549092506001604060020a03168390111561402c5760038201546001604060020a031692505b600101613fd3565b600080600080866001604060020a0316886001604060020a03161461405b5761010061405e565b60005b61ffff1692508493506140708861309b565b6001810154909250614090908a906001604060020a031689898789614152565b9350600090505b60028201546001604060020a038216101561410b576141018983600201836001604060020a03168154811015156140ca57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189614152565b9350600101614097565b600382015460006001604060020a039091161115614146576003820154614143908a906001604060020a0316898960ff880189614152565b93505b50505095945050505050565b8060008061415f886130e1565b6004810154909150600160a060020a03161580159061417e5750600083115b1561340d578815614239576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561420857600080fd5b6102c65a03f1151561421957600080fd5b50505060405180519250508282111561423157600080fd5b81925061340d565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142af57600080fd5b6102c65a03f115156142c057600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b81548183558181151161430d5760050281600502836000526020600020918201910161430d9190614470565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061435357805160ff1916838001178555614380565b82800160010185558215614380579182015b82811115614380578251825591602001919060010190614365565b5061438c9291506144ee565b5090565b81548183558181151161430d5760040281600402836000526020600020918201910161430d9190614508565b828054828255906000526020600020906003016004900481019282156144645791602002820160005b8382111561442f57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026143e5565b80156144625782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261442f565b505b5061438c929150614568565b610f3e91905b8082111561438c57805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144a9600183018261458d565b6144b760028301600061458d565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501614476565b610f3e91905b8082111561438c57600081556001016144f4565b610f3e91905b8082111561438c57600080825560018201805467ffffffffffffffff1916905561453b60028301826145d1565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161450e565b610f3e91905b8082111561438c57805467ffffffffffffffff1916815560010161456e565b50805460018160011615610100020316600290046000825580601f106145b35750613526565b601f01602090049060005260206000209081019061352691906144ee565b50805460008255600301600490049060005260206000209081019061352691906144ee5600a165627a7a72305820ff6541e0f44dfeb3af0519b82b378529b8ba2878dd7e291c2bfbdef2b9f1cd9d0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a60003504166314e7b1dc81146101c35780632101a6ad1461027c57806329026614146102af5780632a8ec8cc146102c75780632af4c31e146102ec5780632ee888081461030b578063387402911461032d5780633f657a461461034557806343387983146103c357806347c5ef43146103e55780634eafbcd51461041457806350f8a8031461043357806352dc7dcc1461046e5780635503d9ba1461051a57806357adafb61461052d5780635afe68d01461057c578063666a342714610592578063710bf322146105b157806372116e92146105d0578063796d56541461068c57806379ba5097146106ab5780637c2d86f7146106be5780637f61fa93146106d157806381ea44081461077d5780638da5cb5b1461079c5780639398f5a2146107cb578063af9f45631461081a578063bde60ac91461083c578063cc19ecf714610856578063ce17273c14610911578063d091b55014610960578063d639cd7314610973578063db7c2314146109db578063e9c211e214610a96578063eba8ba0614610ab8578063ef3766e414610c0e578063f6b24b1c14610c5d578063fbfa77cf14610d18575b600080fd5b34156101ce57600080fd5b6101e56001604060020a0360043516602435610d2b565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b8381101561023f578082015183820152602001610227565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561028757600080fd5b61029b6001604060020a0360043516610e50565b604051901515815260200160405180910390f35b34156102ba57600080fd5b6102c5600435610f00565b005b34156102d257600080fd5b6102da610f36565b60405190815260200160405180910390f35b34156102f757600080fd5b6102c5600160a060020a0360043516610f41565b341561031657600080fd5b6102c56001604060020a0360043516602435610fd5565b341561033857600080fd5b6102c560043515156110f2565b341561035057600080fd5b6103646001604060020a0360043516611120565b6040518781526001604060020a038088166020830152868116604083015285811660608301528481166080830152831660a082015260c081018260028111156103a957fe5b60ff16815260200197505050505050505060405180910390f35b34156103ce57600080fd5b6102c56001604060020a0360043516602435611185565b34156103f057600080fd5b6102c56001604060020a036004358116906024358116906044359060643516611528565b341561041f57600080fd5b61029b600160a060020a03600435166119cd565b341561043e57600080fd5b6104526001604060020a0360043516611a1b565b6040516001604060020a03909116815260200160405180910390f35b341561047957600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611be4915050565b341561052557600080fd5b6102da611ddd565b341561053857600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611de795505050505050565b341561058757600080fd5b6102c5600435611e52565b341561059d57600080fd5b6102c5600160a060020a0360043516611e85565b34156105bc57600080fd5b6102c5600160a060020a0360043516611f02565b34156105db57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a03602082013581169650604082013516945060600135169150611f739050565b341561069757600080fd5b6102c56001604060020a03600435166123a6565b34156106b657600080fd5b6102c5612434565b34156106c957600080fd5b61029b6124b4565b34156106dc57600080fd5b61045260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506124bd915050565b341561078857600080fd5b6102da600160a060020a03600435166126b5565b34156107a757600080fd5b6107af612744565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102c5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061275395505050505050565b341561082557600080fd5b6102c56001604060020a03600435166024356127be565b6102c56001604060020a036004358116906024351661286a565b341561086157600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506129d4915050565b341561091c57600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612abf95505050505050565b341561096b57600080fd5b6107af612af6565b341561097e57600080fd5b6102c5600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612b05915050565b34156109e657600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612b72915050565b3415610aa157600080fd5b6102c56001604060020a0360043516602435612c5d565b3415610ac357600080fd5b610ad76001604060020a0360043516612d71565b60405180896002811115610ae757fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b68578082015183820152602001610b50565b50505050905090810190601f168015610b955780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610bcb578082015183820152602001610bb3565b50505050905090810190601f168015610bf85780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610c1957600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612f3695505050505050565b3415610c6857600080fd5b6102c5600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612fa1915050565b3415610d2357600080fd5b6107af61308c565b600080610d366142cf565b600080610d428761309b565b91508160020160018703815481101515610d5857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610d8c856130e1565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e405780601f10610e1557610100808354040283529160200191610e40565b820191906000526020600020905b815481529060010190602001808311610e2357829003601f168201915b5050505050925050509250925092565b600080610e5c836130e1565b90506000815460ff166002811115610e7057fe5b1415610e7f5760009150610efa565b6002815460ff166002811115610e9157fe5b14610e9857fe5b6003810154608060020a900460ff1615610eb55760019150610efa565b6003810154604060020a90046001604060020a03161515610ed95760009150610efa565b6003810154610ef790604060020a90046001604060020a0316610e50565b91505b50919050565b60005433600160a060020a03908116911614610f1b57600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610f5d57600080fd5b600160a060020a0382161515610f7257600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600454600090819033600160a060020a03908116911614610ff557600080fd5b610ffe8461309b565b91506001600383015460c060020a900460ff16600281111561101c57fe5b1461102657600080fd5b60018201546002830180546110df926001604060020a031691906020808202016040519081016040528092919081815260200182805480156110b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110765790505b505050506003860154600091508190608060020a90046001604060020a03166002613127565b90506110ec848285613419565b50505050565b60005433600160a060020a0390811691161461110d57600080fd5b6007805460ff1916911515919091179055565b6000806000806000806000806111358961309b565b805460018201546002830154600390930154919c6001604060020a039182169c50929a508082169950604060020a820481169850608060020a820416965060c060020a900460ff16945092505050565b600080600061119385611a1b565b945061119e8561309b565b92506000600384015460c060020a900460ff1660028111156111bc57fe5b146111c657600080fd5b60018301546111dd906001604060020a03166130e1565b91506113d2826101006040519081016040528154909190829060ff16600281111561120457fe5b600281111561120f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112db5780601f106112b0576101008083540402835291602001916112db565b820191906000526020600020905b8154815290600101906020018083116112be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a03166080909101526134e2565b600183015460028401805461148b926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561146557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114225790505b505050506003870154600091508190608060020a90046001604060020a03166001613127565b9050611498858286613419565b6004548254600160a060020a039182169163bb4f28df916001604060020a03851691610100909104168760405160e060020a63ffffffff86160281526004810193909352600160a060020a0390911660248301526044820152606401600060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b5050505050505050565b600080600080600061153988611a1b565b97506115448861309b565b945061154f866130e1565b935061155a896130e1565b9250611581836101006040519081016040528154909190829060ff16600281111561120457fe5b6000600386015460c060020a900460ff16600281111561159d57fe5b146115a757600080fd5b60018501546001604060020a038a811691161415611648576000845460ff1660028111156115d157fe5b14156115e7576115e2888888613529565b611643565b6002845460ff1660028111156115f957fe5b141561160a576115e2888888613559565b6001845460ff16600281111561161c57fe5b14156116415761163488888760020180549050613782565b97506115e2888888613887565bfe5b6119c2565b6117798560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561171257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116116cf5790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561176557fe5b600281111561177057fe5b9052508a6139ae565b6001604060020a0390811692508214611641576000845460ff16600281111561179e57fe5b14156117d55760018501546001604060020a038781169116146117bd57fe5b6117cf88888760020180549050613782565b506119c2565b6001845460ff1660028111156117e757fe5b14156119865761191e8560e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a03168152602001600282018054806020026020016040519081016040528092919081815260200182805480156118b757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116118745790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561190a57fe5b600281111561191557fe5b905250876139ae565b6001604060020a03908116915081141561194957611634888860018589600201805490500303613782565b8181111561196857611634888860018589600201805490500303613782565b818111611643576117cf888860018489600201805490500303613782565b6002845460ff16600281111561199857fe5b1415611641576119b5888860018589600201805490500303613782565b9750611643888888613a14565b505050505050505050565b600754600090819060ff1615806119eb5750600160a060020a038316155b156119f95760019150610efa565b611a02836126b5565b60009081526006602052604090205460ff169392505050565b600080600080611a2a8561309b565b92506000600384015460c060020a900460ff166002811115611a4857fe5b14611a5557849350611bdc565b600383015460006001604060020a03909116118015611a8e57506003830154604060020a90046001604060020a0316611a8c613d23565b115b15611bab576001830154600284018054611b4b926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611ae35790505b505050506003870154600091508190608060020a90046001604060020a031681613127565b6003840154909250611b8b906001604060020a03166000604051805910611b6f5750595b9080825280602002602001820160405250600080866000613127565b9050611b9c85828560000154613419565b809450611ba88561309b565b92505b611bb485613d27565b90506001604060020a0380821690861614611bd857611bd885828560000154613419565b8093505b505050919050565b6000611bef826119cd565b1515611bfa57600080fd5b5060038054908160018101611c0f83826142e1565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115611c8e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051611cd4929160200190614312565b50606082015181600201908051611cef929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b600080805b83518310156110ec576001604060020a03848481518110611e0957fe5b90602001906020020151169150604060020a848481518110611e2757fe5b90602001906020020151811515611e3a57fe5b049050611e478282611185565b600190920191611dec565b60005433600160a060020a03908116911614611e6d57600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a03908116911614611ea057600080fd5b610dac600160a060020a03821614611eb757600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a03908116911614611f1d57600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b600080611f7f836119cd565b1515611f8a57600080fd5b6001604060020a038516156121bf57611fa2856130e1565b90506002815460ff166002811115611fb657fe5b14611fc057600080fd5b60146121b5826101006040519081016040528154909190829060ff166002811115611fe757fe5b6002811115611ff257fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121605780601f1061213557610100808354040283529160200191612160565b820191906000526020600020905b81548152906001019060200180831161214357829003601f168201915b505050918352505060038201546001604060020a038082166020840152604060020a8204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152613def565b106121bf57600080fd5b60038054925082600181016121d483826142e1565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d90526001604060020a03808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff1916600183600281111561225457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161229a929160200190614312565b506060820151816002019080516122b5929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0382167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60006123b1826130e1565b90506123d8816101006040519081016040528154909190829060ff16600281111561120457fe5b60038101805470ff000000000000000000000000000000001916608060020a1790556001604060020a0382167f2d65c225503bd4cd245a36c8030073ddd0fb02c23ce540fcd901e74e5006687c60405160405180910390a25050565b60015460009033600160a060020a0390811691161461245257600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006124c8826119cd565b15156124d357600080fd5b50600380549081600181016124e883826142e1565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a90526001604060020a0389166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561256757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516125ad929160200190614312565b506060820151816002019080516125c8929160200190614312565b50608082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560a08201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a0390921691909117905550506001604060020a0381167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006126bf6142cf565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b602083106127105780518252601f1990920191602091820191016126f1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600080805b83518310156110ec576001604060020a0384848151811061277557fe5b90602001906020020151169150604060020a84848151811061279357fe5b906020019060200201518115156127a657fe5b0490506127b38282610fd5565b600190920191612758565b60008060006127cc85611a1b565b94506127d78561309b565b6003810154909350608060020a90046001604060020a031615156127fa57600080fd5b6001830154612811906001604060020a03166130e1565b9150612838826101006040519081016040528154909190829060ff16600281111561120457fe5b600383015461285690608060020a90046001604060020a0316613d27565b9050612863858286613419565b5050505050565b60008080806001604060020a03861615156128b0576128ad6020604051908101604052806000815250602060405190810160405260008082526203f480906124bd565b95505b6128b9866130e1565b93506128e0846101006040519081016040528154909190829060ff16600281111561120457fe5b6000845460ff1660028111156128f257fe5b146128fc57600080fd5b3492506000831161290c57600080fd5b600454600160a060020a031683156108fc0284604051600060405180830381858888f19350505050151561293f57600080fd5b61296e8660006040518059106129525750595b9080825280602002602001820160405250600080600080613127565b91506129798261309b565b80548401815590506001604060020a03821660007feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36129cc86838588611528565b505050505050565b60006129df866130e1565b90506001815460ff1660028111156129f357fe5b146129fd57600080fd5b805433600160a060020a039081166101009092041614612a1c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612a4f929160200190614312565b5060028101838051612a65929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612af257612ae9828281518110612ada57fe5b90602001906020020151611a1b565b50600101612ac2565b5050565b600154600160a060020a031681565b600080805b84518310156129cc576001604060020a03858481518110612b2757fe5b90602001906020020151169150604060020a858481518110612b4557fe5b90602001906020020151811515612b5857fe5b049050612b6786838387611528565b600190920191612b0a565b6000612b7d866130e1565b90506000815460ff166002811115612b9157fe5b14612b9b57600080fd5b805433600160a060020a039081166101009092041614612bba57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051612bed929160200190614312565b5060028101838051612c03929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600454600090819033600160a060020a03908116911614612c7d57600080fd5b612c868461309b565b91506001600383015460c060020a900460ff166002811115612ca457fe5b14612cae57600080fd5b6001820154600283018054612d66926001604060020a03169190602080820201604051908101604052809291908181526020018280548015612d4157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612cfe5790505b505050506003860154600091508190608060020a90046001604060020a031681613127565b90506110df81611a1b565b600080612d7c6142cf565b612d846142cf565b6000806000806000612d958a6130e1565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e4b5780601f10612e2057610100808354040283529160200191612e4b565b820191906000526020600020905b815481529060010190602001808311612e2e57829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eea5780601f10612ebf57610100808354040283529160200191612eea565b820191906000526020600020905b815481529060010190602001808311612ecd57829003601f168201915b5050505060038301546004909301549a9c999b50979990986001604060020a038084169950604060020a8404169750608060020a90920460ff169550600160a060020a03169350915050565b600080805b83518310156110ec576001604060020a03848481518110612f5857fe5b90602001906020020151169150604060020a848481518110612f7657fe5b90602001906020020151811515612f8957fe5b049050612f968282612c5d565b600190920191612f3b565b6000612fac866130e1565b90506002815460ff166002811115612fc057fe5b14612fca57600080fd5b805433600160a060020a039081166101009092041614612fe957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556001810184805161301c929160200190614312565b5060028101838051613032929160200190614312565b5060038101805467ffffffffffffffff19166001604060020a038481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b6002546000906001604060020a038316106130b557600080fd5b600280546001604060020a0384169081106130cc57fe5b90600052602060002090600402019050919050565b6003546000906001604060020a038316106130fb57600080fd5b600380546001604060020a03841690811061311257fe5b90600052602060002090600502019050919050565b600080600088888888888860405160c060020a6001604060020a03881602815260088101868051906020019060200280838360005b8381101561317457808201518382015260200161315c565b50505050905001856001604060020a03166001604060020a031660c060020a028152600801846001604060020a03166001604060020a031660c060020a028152600801836001604060020a03166001604060020a031660c060020a0281526008018260028111156131e157fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260010196505050505050506040519081900390206000818152600560205260408120549193506001604060020a03909116915081111561324a5780925061340d565b50600280546000838152600560205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161328a8382614390565b9160005260206000209060040201600060e060405190810160405280600081526020018d6001604060020a031681526020018c81526020018b6001604060020a031681526020018a6001604060020a03168152602001896001604060020a031681526020018860028111156132fb57fe5b905291905081518155602082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556040820151816002019080516133469291602001906143bc565b50606082015160038201805467ffffffffffffffff19166001604060020a039290921691909117905560808201518160030160086101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160030160106101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805478ff000000000000000000000000000000000000000000000000191660c060020a83600281111561340157fe5b02179055505050508092505b50509695505050505050565b600080600061342b6001878787613e59565b9250846001604060020a0316866001604060020a0316141561344c576129cc565b821515613458576129cc565b6134618661309b565b915061346c8561309b565b82549091508390101561347e57600080fd5b815483900382558054830181556001604060020a038086169087167feef5653f9c567b23a97bcfb111bfa6b076a95be73d85d161b4c57149c77b48018560405190815260200160405180910390a36134d96000878786613e59565b50505050505050565b8060200151600160a060020a031633600160a060020a0316148061351b57508060e00151600160a060020a031633600160a060020a0316145b151561352657600080fd5b50565b60006110df8260006040518059106129525750599080825280602002602001820160405250600080600080613127565b60008060006135678661309b565b9250601461369b8460e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116135f25790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b600281111561369357fe5b905250613e7f565b106136a557600080fd5b6136ae84610e50565b156136b857600080fd5b6001830154600284018054613745926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611b2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611ae35750505050600388015460009250829150608060020a90046001604060020a031681613127565b9150613775846000604051805910611b6f5750599080825280602002602001820160405250600080866000613127565b90506129cc868287613419565b60008061378d6142cf565b6000806137998861309b565b60028101549094508690036040518059106137b15750595b90808252806020026020018201604052509250600091505b600284015486900382101561383f57600284018054839081106137e857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061381d57fe5b6001604060020a039092166020928302909101909101526001909101906137c9565b6001840154600385015461386f916001604060020a039081169186916000918291608060020a9091041681613127565b905061387c888289613419565b979650505050505050565b60006138916142cf565b60008061389d8761309b565b6002810154909450601490106138b257600080fd5b60028401546001016040518059106138c75750595b90808252806020026020018201604052509250600091505b600284015482101561395257600284018054839081106138fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061393057fe5b6001604060020a039092166020928302909101909101526001909101906138df565b6002840154859084908151811061396557fe5b6001604060020a0392831660209182029092010152600185015460038601546139a1929182169186916000918291608060020a90041681613127565b90506134d9878288613419565b6000805b836040015151811015613a0257826001604060020a0316846040015182815181106139d957fe5b906020019060200201516001604060020a031614156139fa57809150613a0d565b6001016139b2565b6001604060020a0391505b5092915050565b600080613a208561309b565b91506014613b168360e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b10613b2057600080fd5b613b2983610e50565b15613b3357600080fd5b6001820154600283018054612856926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b505050505085613cfc8660e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a0316815260200160028201805480602002602001604051908101604052809291908181526020018280548015613c9657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613c535790505b505050918352505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff166002811115613ce957fe5b6002811115613cf457fe5b905250613faa565b613d04613d23565b6003880154910190608060020a90046001604060020a03166000613127565b4290565b600080806001604060020a0384161515613d445760009250613de8565b613d4d8461309b565b6001810154909250613d67906001604060020a03166130e1565b90506000815460ff166002811115613d7b57fe5b1415613d8957839250613de8565b6002815460ff166002811115613d9b57fe5b14613da257fe5b6001820154613db9906001604060020a0316610e50565b1515613dc757839250613de8565b6003820154613de590608060020a90046001604060020a0316613d27565b92505b5050919050565b600080600283516002811115613e0157fe5b14613e0857fe5b8260a001516001604060020a03161515613e255760019150610efa565b613e328360a001516130e1565b9050610ef7816101006040519081016040528154909190829060ff166002811115611fe757fe5b80613e678585808685614034565b9050613e768584868685614034565b95945050505050565b6000808260a001516001604060020a03161515613e9f5760009150610efa565b613eac8360a0015161309b565b9050613fa08160e06040519081016040529081600082015481526020016001820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820180548060200260200160405190810160405280929190818152602001828054801561363557600091825260209182902080546001604060020a031684529082028301929091600891018084116135f25750505092845250505060038201546001604060020a038082166020840152604060020a820481166040840152608060020a820416606083015260809091019060c060020a900460ff16600281111561368857fe5b6001019392505050565b6000806000613fbc84602001516130e1565b60038101546001604060020a031693509150600090505b836040015151811015613de85761400284604001518281518110613ff357fe5b906020019060200201516130e1565b60038101549092506001604060020a03168390111561402c5760038201546001604060020a031692505b600101613fd3565b600080600080866001604060020a0316886001604060020a03161461405b5761010061405e565b60005b61ffff1692508493506140708861309b565b6001810154909250614090908a906001604060020a031689898789614152565b9350600090505b60028201546001604060020a038216101561410b576141018983600201836001604060020a03168154811015156140ca57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316898985880160010189614152565b9350600101614097565b600382015460006001604060020a039091161115614146576003820154614143908a906001604060020a0316898960ff880189614152565b93505b50505095945050505050565b8060008061415f886130e1565b6004810154909150600160a060020a03161580159061417e5750600083115b1561340d578815614239576004810154600160a060020a031663d4edf5e5898989898960006040516020015260405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401602060405180830381600087803b151561420857600080fd5b6102c65a03f1151561421957600080fd5b50505060405180519250508282111561423157600080fd5b81925061340d565b6004810154600160a060020a031663ad1483c3898989898960405160e060020a63ffffffff88160281526001604060020a039586166004820152938516602485015291841660448401529092166064820152608481019190915260a401600060405180830381600087803b15156142af57600080fd5b6102c65a03f115156142c057600080fd5b50505050509695505050505050565b60206040519081016040526000815290565b81548183558181151161430d5760050281600502836000526020600020918201910161430d9190614470565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061435357805160ff1916838001178555614380565b82800160010185558215614380579182015b82811115614380578251825591602001919060010190614365565b5061438c9291506144ee565b5090565b81548183558181151161430d5760040281600402836000526020600020918201910161430d9190614508565b828054828255906000526020600020906003016004900481019282156144645791602002820160005b8382111561442f57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026143e5565b80156144625782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261442f565b505b5061438c929150614568565b610f3e91905b8082111561438c57805474ffffffffffffffffffffffffffffffffffffffffff1916815560006144a9600183018261458d565b6144b760028301600061458d565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501614476565b610f3e91905b8082111561438c57600081556001016144f4565b610f3e91905b8082111561438c57600080825560018201805467ffffffffffffffff1916905561453b60028301826145d1565b5060038101805478ffffffffffffffffffffffffffffffffffffffffffffffffff1916905560040161450e565b610f3e91905b8082111561438c57805467ffffffffffffffff1916815560010161456e565b50805460018160011615610100020316600290046000825580601f106145b35750613526565b601f01602090049060005260206000209081019061352691906144ee565b50805460008255600301600490049060005260206000209081019061352691906144ee5600a165627a7a72305820ff6541e0f44dfeb3af0519b82b378529b8ba2878dd7e291c2bfbdef2b9f1cd9d0029" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint256"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"paymentState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPlugin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usePluginWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vault","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idAdmin","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x60606040526007805460ff1916600117905534156200001d57600080fd5b604051602080620022388339810160405280805160008054600160a060020a03191633600160a060020a03161790559150600190506200005f60038262000096565b5060016200006f600282620000ca565b5060048054600160a060020a031916600160a060020a039290921691909117905562000262565b815481835581811511620000c557600502816005028360005260206000209182019101620000c59190620000f9565b505050565b815481835581811511620000c557600402816004028360005260206000209182019101620000c591906200016d565b6200016a91905b8082111562000166578054600160a860020a03191681556000620001286001830182620001d8565b62000138600283016000620001d8565b506003810180546001608860020a0319169055600481018054600160a060020a031916905560050162000100565b5090565b90565b6200016a91905b808211156200016657600080825560018201805467ffffffffffffffff19169055620001a4600283018262000223565b506003810180547fffffffffffffff0000000000000000000000000000000000000000000000000016905560040162000174565b50805460018160011615610100020316600290046000825580601f1062000200575062000220565b601f01602090049060005260206000209081019062000220919062000245565b50565b5080546000825560030160049004906000526020600020908101906200022091905b6200016a91905b808211156200016657600081556001016200024c565b611fc680620002726000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a7230582024cbaa7ce7b61e342a7fb650d04cee0d04a035b4edb59474dea4fd71a5019bcf0029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314e7b1dc811461014d5780632101a6ad14610208578063290266141461023c5780632a8ec8cc146102545780632af4c31e1461027957806338740291146102985780633f657a46146102b05780634eafbcd51461033057806352dc7dcc1461034f5780635503d9ba146104195780635afe68d01461042c578063666a342714610442578063710bf3221461046157806372116e921461048057806379ba50971461053d5780637c2d86f7146105505780637f61fa931461056357806381ea4408146106105780638da5cb5b1461062f578063cc19ecf71461065e578063d091b5501461071b578063db7c23141461072e578063eba8ba06146107eb578063f6b24b1c14610943578063fbfa77cf14610a00575b600080fd5b341561015857600080fd5b61017067ffffffffffffffff60043516602435610a13565b60405167ffffffffffffffff84168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156101cb5780820151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561021357600080fd5b61022867ffffffffffffffff60043516610b39565b604051901515815260200160405180910390f35b341561024757600080fd5b610252600435610bf5565b005b341561025f57600080fd5b610267610c2b565b60405190815260200160405180910390f35b341561028457600080fd5b610252600160a060020a0360043516610c36565b34156102a357600080fd5b6102526004351515610cca565b34156102bb57600080fd5b6102d067ffffffffffffffff60043516610cf8565b60405187815267ffffffffffffffff8088166020830152868116604083015285811660608301528481166080830152831660a082015260c0810182600281111561031657fe5b60ff16815260200197505050505050505060405180910390f35b341561033b57600080fd5b610228600160a060020a0360043516610d78565b341561035a57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610dc6915050565b60405167ffffffffffffffff909116815260200160405180910390f35b341561042457600080fd5b610267610fc4565b341561043757600080fd5b610252600435610fce565b341561044d57600080fd5b610252600160a060020a0360043516611001565b341561046c57600080fd5b610252600160a060020a036004351661107e565b341561048b57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506110ef9050565b341561054857600080fd5b61025261152e565b341561055b57600080fd5b6102286115ae565b341561056e57600080fd5b6103fc60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a031692506115b7915050565b341561061b57600080fd5b610267600160a060020a03600435166117b4565b341561063a57600080fd5b610642611843565b604051600160a060020a03909116815260200160405180910390f35b341561066957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611852915050565b341561072657600080fd5b61064261193e565b341561073957600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff16925061194d915050565b34156107f657600080fd5b61080b67ffffffffffffffff60043516611a39565b6040518089600281111561081b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561089d578082015183820152602001610885565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109005780820151838201526020016108e8565b50505050905090810190601f16801561092d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561094e57600080fd5b6102526004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611c04915050565b3415610a0b57600080fd5b610642611cf0565b600080610a1e611dfa565b600080610a2a87611cff565b91508160020160018703815481101515610a4057fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff169450610a7585611d47565b90508060000160019054906101000a9004600160a060020a03169350806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b295780601f10610afe57610100808354040283529160200191610b29565b820191906000526020600020905b815481529060010190602001808311610b0c57829003601f168201915b5050505050925050509250925092565b600080610b4583611d47565b90506000815460ff166002811115610b5957fe5b1415610b685760009150610bef565b6002815460ff166002811115610b7a57fe5b14610b8157fe5b6003810154608060020a900460ff1615610b9e5760019150610bef565b600381015468010000000000000000900467ffffffffffffffff161515610bc85760009150610bef565b6003810154610bec9068010000000000000000900467ffffffffffffffff16610b39565b91505b50919050565b60005433600160a060020a03908116911614610c1057600080fd5b6000908152600660205260409020805460ff19166001179055565b600254600019015b90565b6000805433600160a060020a03908116911614610c5257600080fd5b600160a060020a0382161515610c6757600080fd5b5060008054600160a060020a03838116600160a060020a031980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a03908116911614610ce557600080fd5b6007805460ff1916911515919091179055565b600080600080600080600080610d0d89611cff565b805460018201546002830154600390930154919c67ffffffffffffffff9182169c50929a50808216995068010000000000000000820481169850608060020a82041696507801000000000000000000000000000000000000000000000000900460ff16945092505050565b600754600090819060ff161580610d965750600160a060020a038316155b15610da45760019150610bef565b610dad836117b4565b60009081526006602052604090205460ff169392505050565b6000610dd182610d78565b1515610ddc57600080fd5b5060038054908160018101610df18382611e0c565b916000526020600020906005020160006101006040519081016040528060018152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff19166001836002811115610e7157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181600101908051610eb7929160200190611e3d565b50606082015181600201908051610ed2929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b6003546000190190565b60005433600160a060020a03908116911614610fe957600080fd5b6000908152600660205260409020805460ff19169055565b60005433600160a060020a0390811691161461101c57600080fd5b610dac600160a060020a0382161461103357600080fd5b60008054600160a060020a03199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461109957600080fd5b60018054600160a060020a031916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b6000806110fb83610d78565b151561110657600080fd5b67ffffffffffffffff8516156113425761111f85611d47565b90506002815460ff16600281111561113357fe5b1461113d57600080fd5b6014611338826101006040519081016040528154909190829060ff16600281111561116457fe5b600281111561116f57fe5b81526020016000820160019054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123b5780601f106112105761010080835404028352916020019161123b565b820191906000526020600020905b81548152906001019060200180831161121e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b5050509183525050600382015467ffffffffffffffff8082166020840152680100000000000000008204166040830152608060020a900460ff1615156060820152600490910154600160a060020a0316608090910152611d8f565b1061134257600080fd5b60038054925082600181016113578382611e0c565b916000526020600020906005020160006101006040519081016040528060028152600160a060020a03808c166020830152604082018e9052606082018d905267ffffffffffffffff808b1660808401528b1660a0830152600060c0830152881660e09091015291905081518154829060ff191660018360028111156113d857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a031990911617815560408201518160010190805161141e929160200190611e3d565b50606082015181600201908051611439929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff82167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60015460009033600160a060020a0390811691161461154c57600080fd5b506000805460018054600160a060020a0319808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60075460ff1681565b60006115c282610d78565b15156115cd57600080fd5b50600380549081600181016115e28382611e0c565b916000526020600020906005020160006101006040519081016040528060008152600160a060020a033381166020830152604082018b9052606082018a905267ffffffffffffffff89166080830152600060a0830181905260c0830152871660e09091015291905081518154829060ff1916600183600281111561166257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151816001019080516116a8929160200190611e3d565b506060820151816002019080516116c3929160200190611e3d565b50608082015160038201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560a08201518160030160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060c0820151600382018054911515608060020a0270ff000000000000000000000000000000001990921691909117905560e08201516004919091018054600160a060020a031916600160a060020a03909216919091179055505067ffffffffffffffff81167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a2949350505050565b60006117be611dfa565b823b604051603f8201601f19168101604052818152915080600060208401863c50806040518082805190602001908083835b6020831061180f5780518252601f1990920191602091820191016117f0565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600054600160a060020a031681565b600061185d86611d47565b90506001815460ff16600281111561187157fe5b1461187b57600080fd5b805433600160a060020a03908116610100909204161461189a57600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516118cd929160200190611e3d565b50600281018380516118e3929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600154600160a060020a031681565b600061195886611d47565b90506000815460ff16600281111561196c57fe5b1461197657600080fd5b805433600160a060020a03908116610100909204161461199557600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600181018480516119c8929160200190611e3d565b50600281018380516119de929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611a44611dfa565b611a4c611dfa565b6000806000806000611a5d8a611d47565b80546001808301805460ff84169d5061010093849004600160a060020a03169c509394509260029181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b50505050509650806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bb25780601f10611b8757610100808354040283529160200191611bb2565b820191906000526020600020905b815481529060010190602001808311611b9557829003601f168201915b5050505060038301546004909301549a9c999b509799909867ffffffffffffffff8084169950680100000000000000008404169750608060020a90920460ff169550600160a060020a03169350915050565b6000611c0f86611d47565b90506002815460ff166002811115611c2357fe5b14611c2d57600080fd5b805433600160a060020a039081166101009092041614611c4c57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560018101848051611c7f929160200190611e3d565b5060028101838051611c95929160200190611e3d565b5060038101805467ffffffffffffffff191667ffffffffffffffff8481169190911790915586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600454600160a060020a031681565b60025460009067ffffffffffffffff831610611d1a57600080fd5b6002805467ffffffffffffffff8416908110611d3257fe5b90600052602060002090600402019050919050565b60035460009067ffffffffffffffff831610611d6257600080fd5b6003805467ffffffffffffffff8416908110611d7a57fe5b90600052602060002090600502019050919050565b600080600283516002811115611da157fe5b14611da857fe5b8260a0015167ffffffffffffffff161515611dc65760019150610bef565b611dd38360a00151611d47565b9050610bec816101006040519081016040528154909190829060ff16600281111561116457fe5b60206040519081016040526000815290565b815481835581811511611e3857600502816005028360005260206000209182019101611e389190611ebb565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e7e57805160ff1916838001178555611eab565b82800160010185558215611eab579182015b82811115611eab578251825591602001919060010190611e90565b50611eb7929150611f39565b5090565b610c3391905b80821115611eb757805474ffffffffffffffffffffffffffffffffffffffffff191681556000611ef46001830182611f53565b611f02600283016000611f53565b5060038101805470ffffffffffffffffffffffffffffffffff19169055600481018054600160a060020a0319169055600501611ec1565b610c3391905b80821115611eb75760008155600101611f3f565b50805460018160011615610100020316600290046000825580601f10611f795750611f97565b601f016020900490600052602060002090810190611f979190611f39565b505600a165627a7a7230582024cbaa7ce7b61e342a7fb650d04cee0d04a035b4edb59474dea4fd71a5019bcf0029" +exports.OwnedAbi = [{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dac","type":"address"}],"name":"removeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"proposeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnershipRemoved","type":"event"}] +exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556103b08061003b6000396000f3006060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a723058205309c4b6d9c3fddb448e335a9d4f16b7499c73fc7dd6a331d019878bdeddd2620029" +exports.OwnedRuntimeByteCode = "0x6060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461007c578063666a34271461009d578063710bf322146100bc57806379ba5097146100db5780638da5cb5b146100ee578063d091b5501461011d575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610130565b005b34156100a857600080fd5b61009b600160a060020a03600435166101d1565b34156100c757600080fd5b61009b600160a060020a036004351661025b565b34156100e657600080fd5b61009b6102d9565b34156100f957600080fd5b610101610366565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610101610375565b6000805433600160a060020a0390811691161461014c57600080fd5b600160a060020a038216151561016157600080fd5b5060008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff1980841691909117938490556001805490911690559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005433600160a060020a039081169116146101ec57600080fd5b610dac600160a060020a0382161461020357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff199081169091556001805490911690557f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb60405160405180910390a150565b60005433600160a060020a0390811691161461027657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60015460009033600160a060020a039081169116146102f757600080fd5b50600080546001805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a03838116919091179586905591169091559081169116817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a723058205309c4b6d9c3fddb448e335a9d4f16b7499c73fc7dd6a331d019878bdeddd2620029" +exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820e48e2b5de8ca74699cdbc3c8de690a70fbddbd64c750dac1c501fe47dbfa7efd0029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820e48e2b5de8ca74699cdbc3c8de690a70fbddbd64c750dac1c501fe47dbfa7efd0029" +exports.TestSimpleProjectPluginFactoryAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"deploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820e48e2b5de8ca74699cdbc3c8de690a70fbddbd64c750dac1c501fe47dbfa7efd0029a165627a7a72305820ae45fdfb20e853b3bb4d929588e2ec8075d3c1a9d92b37e46ed970ebb7446b540029" +exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820e48e2b5de8ca74699cdbc3c8de690a70fbddbd64c750dac1c501fe47dbfa7efd0029a165627a7a72305820ae45fdfb20e853b3bb4d929588e2ec8075d3c1a9d92b37e46ed970ebb7446b540029" +exports.VaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}] +exports.VaultByteCode = "0x" +exports.VaultRuntimeByteCode = "0x" +exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" +exports._sha256 = "0x6828cb20a2b24eb5f526d6b6013c97b274530f11fe946888241f886f8fb03f41" diff --git a/build/TestSimpleProjectPluginFactory_all.sol b/build/TestSimpleProjectPluginFactory_all.sol new file mode 100644 index 0000000..369de71 --- /dev/null +++ b/build/TestSimpleProjectPluginFactory_all.sol @@ -0,0 +1,1122 @@ + +//File: contracts/ILiquidPledgingPlugin.sol +pragma solidity ^0.4.11; + +contract ILiquidPledgingPlugin { + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) returns (uint maxAllowed); + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount); +} + +//File: node_modules/giveth-common-contracts/contracts/Owned.sol +pragma solidity ^0.4.15; + + +/// @title Owned +/// @author Adrià Massanet +/// @notice The Owned contract has an owner address, and provides basic +/// authorization control functions, this simplifies & the implementation of +/// user permissions; this contract has three work flows for a change in +/// ownership, the first requires the new owner to validate that they have the +/// ability to accept ownership, the second allows the ownership to be +/// directly transfered without requiring acceptance, and the third allows for +/// the ownership to be removed to allow for decentralization +contract Owned { + + address public owner; + address public newOwnerCandidate; + + event OwnershipRequested(address indexed by, address indexed to); + event OwnershipTransferred(address indexed from, address indexed to); + event OwnershipRemoved(); + + /// @dev The constructor sets the `msg.sender` as the`owner` of the contract + function Owned() public { + owner = msg.sender; + } + + /// @dev `owner` is the only address that can call a function with this + /// modifier + modifier onlyOwner() { + require (msg.sender == owner); + _; + } + + /// @dev In this 1st option for ownership transfer `proposeOwnership()` must + /// be called first by the current `owner` then `acceptOwnership()` must be + /// called by the `newOwnerCandidate` + /// @notice `onlyOwner` Proposes to transfer control of the contract to a + /// new owner + /// @param _newOwnerCandidate The address being proposed as the new owner + function proposeOwnership(address _newOwnerCandidate) public onlyOwner { + newOwnerCandidate = _newOwnerCandidate; + OwnershipRequested(msg.sender, newOwnerCandidate); + } + + /// @notice Can only be called by the `newOwnerCandidate`, accepts the + /// transfer of ownership + function acceptOwnership() public { + require(msg.sender == newOwnerCandidate); + + address oldOwner = owner; + owner = newOwnerCandidate; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 2nd option for ownership transfer `changeOwnership()` can + /// be called and it will immediately assign ownership to the `newOwner` + /// @notice `owner` can step down and assign some other address to this role + /// @param _newOwner The address of the new owner + function changeOwnership(address _newOwner) public onlyOwner { + require(_newOwner != 0x0); + + address oldOwner = owner; + owner = _newOwner; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 3rd option for ownership transfer `removeOwnership()` can + /// be called and it will immediately assign ownership to the 0x0 address; + /// it requires a 0xdece be input as a parameter to prevent accidental use + /// @notice Decentralizes the contract, this operation cannot be undone + /// @param _dac `0xdac` has to be entered for this function to work + function removeOwnership(address _dac) public onlyOwner { + require(_dac == 0xdac); + owner = 0x0; + newOwnerCandidate = 0x0; + OwnershipRemoved(); + } +} + +//File: contracts/LiquidPledgingBase.sol +pragma solidity ^0.4.11; + + + + +/// @dev This is declares a few functions from `Vault` so that the +/// `LiquidPledgingBase` contract can interface with the `Vault` contract +contract Vault { + function authorizePayment(bytes32 _ref, address _dest, uint _amount); + function () payable; +} + +contract LiquidPledgingBase is Owned { + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 20; + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + enum PledgeAdminType { Giver, Delegate, Project } + enum PaymentState { Pledged, Paying, Paid } // TODO name change Pledged + + /// @dev This struct defines the details of each the PledgeAdmin, these + /// PledgeAdmins can own pledges and act as delegates + struct PledgeAdmin { // TODO name change PledgeAdmin + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // account or contract address for admin + string name; + string url; + uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + ILiquidPledgingPlugin plugin; // if the plugin is 0x0 then nothing happens if its a contract address than that smart contract is called via the milestone contract + } + + struct Pledge { + uint amount; + uint64 owner; // PledgeAdmin + uint64[] delegationChain; // list of index numbers + uint64 intendedProject; // TODO change the name only used for when delegates are precommiting to a project + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // this points to the Pledge[] index that the Pledge was derived from + PaymentState paymentState; + } + + Pledge[] pledges; + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Vault public vault; + + // this mapping allows you to search for a specific pledge's index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx;//TODO Fix typo + mapping (bytes32 => bool) pluginWhitelist; + + bool public usePluginWhitelist = true; + + +///// +// Modifiers +///// + + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + + +////// +// Constructor +////// + + /// @notice The Constructor creates the `LiquidPledgingBase` on the blockchain + /// @param _vault Where the ETH is stored that the pledges represent + function LiquidPledgingBase(address _vault) { + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + vault = Vault(_vault); + } + + +/////// +// Admin functions +////// + + /// @notice Creates a giver. + function addGiver(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin + ) returns (uint64 idGiver) { + require(isValidPlugin(plugin)); + + idGiver = uint64(admins.length); + + admins.push(PledgeAdmin( + PledgeAdminType.Giver, + msg.sender, + name, + url, + commitTime, + 0, + false, + plugin)); + + GiverAdded(idGiver); + } + + event GiverAdded(uint64 indexed idGiver); + + ///@notice Changes the address, name or commitTime associated with a specific giver + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime) + { + PledgeAdmin storage giver = findAdmin(idGiver); + require(giver.adminType == PledgeAdminType.Giver); //Must be a Giver + require(giver.addr == msg.sender); //current addr had to originate this tx + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + GiverUpdated(idGiver); + } + + event GiverUpdated(uint64 indexed idGiver); + + /// @notice Creates a new Delegate + function addDelegate(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDelegate) { //TODO return index number + require(isValidPlugin(plugin)); + + idDelegate = uint64(admins.length); + + admins.push(PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + name, + url, + commitTime, + 0, + false, + plugin)); + + DelegateAdded(idDelegate); + } + + event DelegateAdded(uint64 indexed idDelegate); + + ///@notice Changes the address, name or commitTime associated with a specific delegate + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime) { + PledgeAdmin storage delegate = findAdmin(idDelegate); + require(delegate.adminType == PledgeAdminType.Delegate); + require(delegate.addr == msg.sender); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + DelegateUpdated(idDelegate); + } + + event DelegateUpdated(uint64 indexed idDelegate); + + /// @notice Creates a new Project + function addProject(string name, string url, address projectAdmin, uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idProject) { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage pa = findAdmin(parentProject); + require(pa.adminType == PledgeAdminType.Project); + require(getProjectLevel(pa) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push(PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + name, + url, + commitTime, + parentProject, + false, + plugin)); + + + ProjectAdded(idProject); + } + + event ProjectAdded(uint64 indexed idProject); + + ///@notice Changes the address, name or commitTime associated with a specific Project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime) + { + PledgeAdmin storage project = findAdmin(idProject); + require(project.adminType == PledgeAdminType.Project); + require(project.addr == msg.sender); + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + ProjectUpdated(idProject); + } + + event ProjectUpdated(uint64 indexed idAdmin); + + +////////// +// Public constant functions +////////// + + /// @notice Public constant that states how many pledgess are in the system + function numberOfPledges() constant returns (uint) { + return pledges.length - 1; + } + /// @notice Public constant that states the details of the specified Pledge + function getPledge(uint64 idPledge) constant returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + PaymentState paymentState + ) { + Pledge storage n = findPledge(idPledge); + amount = n.amount; + owner = n.owner; + nDelegates = uint64(n.delegationChain.length); + intendedProject = n.intendedProject; + commitTime = n.commitTime; + oldPledge = n.oldPledge; + paymentState = n.paymentState; + } + /// @notice Public constant that states the delegates one by one, because + /// an array cannot be returned + function getPledgeDelegate(uint64 idPledge, uint idxDelegate) constant returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage n = findPledge(idPledge); + idDelegate = n.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + /// @notice Public constant that states the number of admins in the system + function numberOfPledgeAdmins() constant returns(uint) { + return admins.length - 1; + } + /// @notice Public constant that states the details of the specified admin + function getPledgeAdmin(uint64 idAdmin) constant returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin) + { + PledgeAdmin storage m = findAdmin(idAdmin); + adminType = m.adminType; + addr = m.addr; + name = m.name; + url = m.url; + commitTime = m.commitTime; + parentProject = m.parentProject; + canceled = m.canceled; + plugin = address(m.plugin); + } + +//////// +// Private methods +/////// + + /// @notice All pledges technically exist... but if the pledge hasn't been + /// created in this system yet then it wouldn't be in the hash array + /// hPledge2idx[]; this creates a Pledge with and amount of 0 if one is not + /// created already... + function findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + PaymentState paid + ) internal returns (uint64) + { + bytes32 hPledge = sha3(owner, delegationChain, intendedProject, commitTime, oldPledge, paid); + uint64 idx = hPledge2idx[hPledge]; + if (idx > 0) return idx; + idx = uint64(pledges.length); + hPledge2idx[hPledge] = idx; + pledges.push(Pledge(0, owner, delegationChain, intendedProject, commitTime, oldPledge, paid)); + return idx; + } + + function findAdmin(uint64 idAdmin) internal returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + function findPledge(uint64 idPledge) internal returns (Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + // a constant for the case that a delegate is requested that is not a delegate in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + + // helper function that searches the delegationChain fro a specific delegate and + // level of delegation returns their idx in the delegation chain which reflect their level of authority + function getDelegateIdx(Pledge n, uint64 idDelegate) internal returns(uint64) { + for (uint i=0; i commitTime) commitTime = m.commitTime; + } + } + + // helper function that returns the project level solely to check that there + // are not too many Projects that violate MAX_SUBCAMPAIGNS_LEVEL + function getProjectLevel(PledgeAdmin m) internal returns(uint) { + assert(m.adminType == PledgeAdminType.Project); + if (m.parentProject == 0) return(1); + PledgeAdmin storage parentNM = findAdmin(m.parentProject); + return getProjectLevel(parentNM); + } + + function isProjectCanceled(uint64 projectId) constant returns (bool) { + PledgeAdmin storage m = findAdmin(projectId); + if (m.adminType == PledgeAdminType.Giver) return false; + assert(m.adminType == PledgeAdminType.Project); + if (m.canceled) return true; + if (m.parentProject == 0) return false; + return isProjectCanceled(m.parentProject); + } + + // @notice A helper function for canceling projects + // @param idPledge the pledge that may or may not be canceled + function getOldestPledgeNotCanceled(uint64 idPledge) internal constant returns(uint64) { //todo rename + if (idPledge == 0) return 0; + Pledge storage n = findPledge(idPledge); + PledgeAdmin storage admin = findAdmin(n.owner); + if (admin.adminType == PledgeAdminType.Giver) return idPledge; + + assert(admin.adminType == PledgeAdminType.Project); + + if (!isProjectCanceled(n.owner)) return idPledge; + + return getOldestPledgeNotCanceled(n.oldPledge); + } + + function checkAdminOwner(PledgeAdmin m) internal constant { + require((msg.sender == m.addr) || (msg.sender == address(m.plugin))); + } + +//////// +// Plugin Whitelist Methods +/////// + + function addValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = true; + } + + function removeValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = false; + } + + function useWhitelist(bool useWhitelist) external onlyOwner { + usePluginWhitelist = useWhitelist; + } + + function isValidPlugin(address addr) public returns(bool) { + if (!usePluginWhitelist || addr == 0x0) return true; + + bytes32 contractHash = getCodeHash(addr); + + return pluginWhitelist[contractHash]; + } + + function getCodeHash(address addr) public returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + // new "memory end" including padding + mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) + // store length in memory + mstore(o_code, size) + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +//File: contracts/LiquidPledging.sol +pragma solidity ^0.4.11; + + + + +contract LiquidPledging is LiquidPledgingBase { + + +////// +// Constructor +////// + + // This constructor also calls the constructor for `LiquidPledgingBase` + function LiquidPledging(address _vault) LiquidPledgingBase(_vault) { + } + + /// @notice This is how value enters into the system which creates pledges; + /// the token of value goes into the vault and the amount in the pledge + /// relevant to this Giver without delegates is increased, and a normal + /// transfer is done to the idReceiver + /// @param idGiver Identifier of the giver thats donating. + /// @param idReceiver To whom it's transfered. Can be the same giver, another + /// giver, a delegate or a project + + function donate(uint64 idGiver, uint64 idReceiver) payable { + if (idGiver == 0) { + idGiver = addGiver('', '', 259200, ILiquidPledgingPlugin(0x0)); // default to 3 day commitTime + } + + PledgeAdmin storage sender = findAdmin(idGiver); + + checkAdminOwner(sender); + + require(sender.adminType == PledgeAdminType.Giver); + + uint amount = msg.value; + + require(amount > 0); + + vault.transfer(amount); // transfers the baseToken to the Vault + uint64 idPledge = findOrCreatePledge( + idGiver, + new uint64[](0), //what is new? + 0, + 0, + 0, + PaymentState.Pledged); + + + Pledge storage nTo = findPledge(idPledge); + nTo.amount += amount; + + Transfer(0, idPledge, amount); + + transfer(idGiver, idPledge, amount, idReceiver); + } + + + /// @notice Moves value between pledges + /// @param idSender ID of the giver, delegate or project admin that is transferring + /// the funds from Pledge to Pledge. This admin must have permissions to move the value + /// @param idPledge Id of the pledge that's moving the value + /// @param amount Quantity of value that's being moved + /// @param idReceiver Destination of the value, can be a giver sending to a giver or + /// a delegate, a delegate to another delegate or a project to precommit it to that project + function transfer(uint64 idSender, uint64 idPledge, uint amount, uint64 idReceiver) { + + idPledge = normalizePledge(idPledge); + + Pledge storage n = findPledge(idPledge); + PledgeAdmin storage receiver = findAdmin(idReceiver); + PledgeAdmin storage sender = findAdmin(idSender); + + checkAdminOwner(sender); + require(n.paymentState == PaymentState.Pledged); + + // If the sender is the owner + if (n.owner == idSender) { + if (receiver.adminType == PledgeAdminType.Giver) { + transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Project) { + transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Delegate) { + idPledge = undelegate(idPledge, amount, n.delegationChain.length); + appendDelegate(idPledge, amount, idReceiver); + } else { + assert(false); + } + return; + } + + // If the sender is a delegate + uint senderDIdx = getDelegateIdx(n, idSender); + if (senderDIdx != NOTFOUND) { + + // If the receiver is another giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only accept to change to the original giver to remove all delegates + assert(n.owner == idReceiver); + undelegate(idPledge, amount, n.delegationChain.length); + return; + } + + // If the receiver is another delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = getDelegateIdx(n, idReceiver); + + // If the receiver is not in the delegate list + if (receiverDIdx == NOTFOUND) { + idPledge = undelegate(idPledge, amount, n.delegationChain.length - senderDIdx - 1); + appendDelegate(idPledge, amount, idReceiver); + + // If the receiver is already part of the delegate chain and is + // after the sender, then all of the other delegates after the sender are + // removed and the receiver is appended at the end of the delegation chain + } else if (receiverDIdx > senderDIdx) { + idPledge = undelegate(idPledge, amount, n.delegationChain.length - senderDIdx - 1); + appendDelegate(idPledge, amount, idReceiver); + + // If the receiver is already part of the delegate chain and is + // before the sender, then the sender and all of the other + // delegates after the RECEIVER are revomved from the chain, + // this is interesting because the delegate undelegates from the + // delegates that delegated to this delegate... game theory issues? should this be allowed + } else if (receiverDIdx <= senderDIdx) { + undelegate(idPledge, amount, n.delegationChain.length - receiverDIdx -1); + } + return; + } + + // If the delegate wants to support a project, they undelegate all + // the delegates after them in the chain and choose a project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = undelegate(idPledge, amount, n.delegationChain.length - senderDIdx - 1); + proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // It is not the owner nor any delegate. + } + + + /// @notice This method is used to withdraw value from the system. This can be used + /// by the givers to avoid committing the donation or by project admin to use + /// the Ether. + /// @param idPledge Id of the pledge that wants to be withdrawn. + /// @param amount Quantity of Ether that wants to be withdrawn. + function withdraw(uint64 idPledge, uint amount) { + + idPledge = normalizePledge(idPledge); + + Pledge storage n = findPledge(idPledge); + + require(n.paymentState == PaymentState.Pledged); + + PledgeAdmin storage owner = findAdmin(n.owner); + + checkAdminOwner(owner); + + uint64 idNewPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Paying + ); + + doTransfer(idPledge, idNewPledge, amount); + + vault.authorizePayment(bytes32(idNewPledge), owner.addr, amount); + } + + /// @notice Method called by the vault to confirm a payment. + /// @param idPledge Id of the pledge that wants to be withdrawn. + /// @param amount Quantity of Ether that wants to be withdrawn. + function confirmPayment(uint64 idPledge, uint amount) onlyVault { + Pledge storage n = findPledge(idPledge); + + require(n.paymentState == PaymentState.Paying); + + uint64 idNewPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Paid + ); + + doTransfer(idPledge, idNewPledge, amount); + } + + /// @notice Method called by the vault to cancel a payment. + /// @param idPledge Id of the pledge that wants to be canceled for withdraw. + /// @param amount Quantity of Ether that wants to be rolled back. + function cancelPayment(uint64 idPledge, uint amount) onlyVault { + Pledge storage n = findPledge(idPledge); + + require(n.paymentState == PaymentState.Paying); //TODO change to revert + + // When a payment is canceled, never is assigned to a project. + uint64 oldPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Pledged + ); + + oldPledge = normalizePledge(oldPledge); + + doTransfer(idPledge, oldPledge, amount); + } + + /// @notice Method called to cancel this project. + /// @param idProject Id of the projct that wants to be canceled. + function cancelProject(uint64 idProject) { + PledgeAdmin storage project = findAdmin(idProject); + checkAdminOwner(project); + project.canceled = true; + + CancelProject(idProject); + } + + + function cancelPledge(uint64 idPledge, uint amount) { + idPledge = normalizePledge(idPledge); + + Pledge storage n = findPledge(idPledge); + require(n.oldPledge != 0); + + PledgeAdmin storage m = findAdmin(n.owner); + checkAdminOwner(m); + + uint64 oldPledge = getOldestPledgeNotCanceled(n.oldPledge); + doTransfer(idPledge, oldPledge, amount); + } + + +//////// +// Multi pledge methods +//////// + + // This set of functions makes moving a lot of pledges around much more + // efficient (saves gas) than calling these functions in series + uint constant D64 = 0x10000000000000000; + function mTransfer(uint64 idSender, uint[] pledgesAmounts, uint64 idReceiver) { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + transfer(idSender, idPledge, amount, idReceiver); + } + } + + function mWithdraw(uint[] pledgesAmounts) { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + withdraw(idPledge, amount); + } + } + + function mConfirmPayment(uint[] pledgesAmounts) { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + confirmPayment(idPledge, amount); + } + } + + function mCancelPayment(uint[] pledgesAmounts) { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + cancelPayment(idPledge, amount); + } + } + + function mNormalizePledge(uint64[] pledges) { + for (uint i = 0; i < pledges.length; i++ ) { + normalizePledge( pledges[i] ); + } + } + +//////// +// Private methods +/////// + + // this function is obvious, but it can also be called to undelegate everyone + // by setting yourself as the idReceiver + function transferOwnershipToProject(uint64 idPledge, uint amount, uint64 idReceiver) internal { + Pledge storage n = findPledge(idPledge); + + require(getPledgeLevel(n) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Pledged); + uint64 toPledge = findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + oldPledge, + PaymentState.Pledged); + doTransfer(idPledge, toPledge, amount); + } + + function transferOwnershipToGiver(uint64 idPledge, uint amount, uint64 idReceiver) internal { + uint64 toPledge = findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + PaymentState.Pledged); + doTransfer(idPledge, toPledge, amount); + } + + function appendDelegate(uint64 idPledge, uint amount, uint64 idReceiver) internal { + Pledge storage n= findPledge(idPledge); + + require(n.delegationChain.length < MAX_DELEGATES); //TODO change to revert and say the error + uint64[] memory newDelegationChain = new uint64[](n.delegationChain.length + 1); + for (uint i=0; i= amount); + nFrom.amount -= amount; + nTo.amount += amount; + + Transfer(from, to, amount); + callPlugins(false, from, to, amount); + } + + // This function does 2 things, #1: it checks to make sure that the pledges are correct + // if the a pledged project has already been committed then it changes the owner + // to be the proposed project (Pledge that the UI will have to read the commit time and manually + // do what this function does to the pledge for the end user at the expiration of the commitTime) + // #2: It checks to make sure that if there has been a cancellation in the chain of projects, + // then it adjusts the pledge's owner appropriately. + // This call can be called from any body at any time on any pledge. In general it can be called + // to force the calls of the affected plugins, which also need to be predicted by the UI + function normalizePledge(uint64 idPledge) returns(uint64) { + Pledge storage n = findPledge(idPledge); + + // Check to make sure this pledge hasnt already been used or is in the process of being used + if (n.paymentState != PaymentState.Pledged) return idPledge; + + // First send to a project if it's proposed and commited + if ((n.intendedProject > 0) && ( getTime() > n.commitTime)) { + uint64 oldPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Pledged); + uint64 toPledge = findOrCreatePledge( + n.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + PaymentState.Pledged); + doTransfer(idPledge, toPledge, n.amount); + idPledge = toPledge; + n = findPledge(idPledge); + } + + toPledge = getOldestPledgeNotCanceled(idPledge);// TODO toPledge is pledge defined + if (toPledge != idPledge) { + doTransfer(idPledge, toPledge, n.amount); + } + + return toPledge; + } + +///////////// +// Plugins +///////////// + + function callPlugin(bool before, uint64 adminId, uint64 fromPledge, uint64 toPledge, uint64 context, uint amount) internal returns (uint allowedAmount) { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = findAdmin(adminId); + if ((address(admin.plugin) != 0) && (allowedAmount > 0)) { + if (before) { + newAmount = admin.plugin.beforeTransfer(adminId, fromPledge, toPledge, context, amount); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer(adminId, fromPledge, toPledge, context, amount); + } + } + } + + function callPluginsPledge(bool before, uint64 idPledge, uint64 fromPledge, uint64 toPledge, uint amount) internal returns (uint allowedAmount) { + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage n = findPledge(idPledge); + + allowedAmount = callPlugin(before, n.owner, fromPledge, toPledge, offset, allowedAmount); + + for (uint64 i=0; i 0) { + allowedAmount = callPlugin(before, n.intendedProject, fromPledge, toPledge, offset + 255, allowedAmount); + } + } + + function callPlugins(bool before, uint64 fromPledge, uint64 toPledge, uint amount) internal returns (uint allowedAmount) { + allowedAmount = amount; + + allowedAmount = callPluginsPledge(before, fromPledge, fromPledge, toPledge, allowedAmount); + allowedAmount = callPluginsPledge(before, toPledge, fromPledge, toPledge, allowedAmount); + } + +///////////// +// Test functions +///////////// + + function getTime() internal returns (uint) { + return now; + } + + event Transfer(uint64 indexed from, uint64 indexed to, uint amount); + event CancelProject(uint64 indexed idProject); + +} + +//File: contracts/test/TestSimpleProjectPlugin.sol +pragma solidity ^0.4.11; + + + +// simple liquidPledging plugin contract for testing whitelist +contract TestSimpleProjectPlugin { + + uint64 public idProject; + bool initPending; + + event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + + function TestSimpleProjectPlugin() { + require(msg.sender != tx.origin); // Avoids being created directly by mistake. + initPending = true; + } + + function init( + LiquidPledging liquidPledging, + string name, + string url, + uint64 parentProject + ) { + require(initPending); + idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this)); + initPending = false; + } + + function beforeTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external returns (uint maxAllowed) { + require(!initPending); + BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + + function afterTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external { + require(!initPending); + AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + +} + +//File: ./contracts/test/TestSimpleProjectPluginFactory.sol +pragma solidity ^0.4.11; + + + + +// simple factory for deploying TestSimpleProjectPlugin.sol contract +contract TestSimpleProjectPluginFactory { + + function deploy( + LiquidPledging liquidPledging, + string name, + string url, + uint64 parentProject + ) { + TestSimpleProjectPlugin p = new TestSimpleProjectPlugin(); + p.init(liquidPledging, name, url, parentProject); + } + +} diff --git a/build/TestSimpleProjectPlugin_all.sol b/build/TestSimpleProjectPlugin_all.sol new file mode 100644 index 0000000..85be28f --- /dev/null +++ b/build/TestSimpleProjectPlugin_all.sol @@ -0,0 +1,1101 @@ + +//File: contracts/ILiquidPledgingPlugin.sol +pragma solidity ^0.4.11; + +contract ILiquidPledgingPlugin { + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) returns (uint maxAllowed); + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount); +} + +//File: node_modules/giveth-common-contracts/contracts/Owned.sol +pragma solidity ^0.4.15; + + +/// @title Owned +/// @author Adrià Massanet +/// @notice The Owned contract has an owner address, and provides basic +/// authorization control functions, this simplifies & the implementation of +/// user permissions; this contract has three work flows for a change in +/// ownership, the first requires the new owner to validate that they have the +/// ability to accept ownership, the second allows the ownership to be +/// directly transfered without requiring acceptance, and the third allows for +/// the ownership to be removed to allow for decentralization +contract Owned { + + address public owner; + address public newOwnerCandidate; + + event OwnershipRequested(address indexed by, address indexed to); + event OwnershipTransferred(address indexed from, address indexed to); + event OwnershipRemoved(); + + /// @dev The constructor sets the `msg.sender` as the`owner` of the contract + function Owned() public { + owner = msg.sender; + } + + /// @dev `owner` is the only address that can call a function with this + /// modifier + modifier onlyOwner() { + require (msg.sender == owner); + _; + } + + /// @dev In this 1st option for ownership transfer `proposeOwnership()` must + /// be called first by the current `owner` then `acceptOwnership()` must be + /// called by the `newOwnerCandidate` + /// @notice `onlyOwner` Proposes to transfer control of the contract to a + /// new owner + /// @param _newOwnerCandidate The address being proposed as the new owner + function proposeOwnership(address _newOwnerCandidate) public onlyOwner { + newOwnerCandidate = _newOwnerCandidate; + OwnershipRequested(msg.sender, newOwnerCandidate); + } + + /// @notice Can only be called by the `newOwnerCandidate`, accepts the + /// transfer of ownership + function acceptOwnership() public { + require(msg.sender == newOwnerCandidate); + + address oldOwner = owner; + owner = newOwnerCandidate; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 2nd option for ownership transfer `changeOwnership()` can + /// be called and it will immediately assign ownership to the `newOwner` + /// @notice `owner` can step down and assign some other address to this role + /// @param _newOwner The address of the new owner + function changeOwnership(address _newOwner) public onlyOwner { + require(_newOwner != 0x0); + + address oldOwner = owner; + owner = _newOwner; + newOwnerCandidate = 0x0; + + OwnershipTransferred(oldOwner, owner); + } + + /// @dev In this 3rd option for ownership transfer `removeOwnership()` can + /// be called and it will immediately assign ownership to the 0x0 address; + /// it requires a 0xdece be input as a parameter to prevent accidental use + /// @notice Decentralizes the contract, this operation cannot be undone + /// @param _dac `0xdac` has to be entered for this function to work + function removeOwnership(address _dac) public onlyOwner { + require(_dac == 0xdac); + owner = 0x0; + newOwnerCandidate = 0x0; + OwnershipRemoved(); + } +} + +//File: contracts/LiquidPledgingBase.sol +pragma solidity ^0.4.11; + + + + +/// @dev This is declares a few functions from `Vault` so that the +/// `LiquidPledgingBase` contract can interface with the `Vault` contract +contract Vault { + function authorizePayment(bytes32 _ref, address _dest, uint _amount); + function () payable; +} + +contract LiquidPledgingBase is Owned { + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 20; + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + enum PledgeAdminType { Giver, Delegate, Project } + enum PaymentState { Pledged, Paying, Paid } // TODO name change Pledged + + /// @dev This struct defines the details of each the PledgeAdmin, these + /// PledgeAdmins can own pledges and act as delegates + struct PledgeAdmin { // TODO name change PledgeAdmin + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // account or contract address for admin + string name; + string url; + uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + ILiquidPledgingPlugin plugin; // if the plugin is 0x0 then nothing happens if its a contract address than that smart contract is called via the milestone contract + } + + struct Pledge { + uint amount; + uint64 owner; // PledgeAdmin + uint64[] delegationChain; // list of index numbers + uint64 intendedProject; // TODO change the name only used for when delegates are precommiting to a project + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // this points to the Pledge[] index that the Pledge was derived from + PaymentState paymentState; + } + + Pledge[] pledges; + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Vault public vault; + + // this mapping allows you to search for a specific pledge's index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx;//TODO Fix typo + mapping (bytes32 => bool) pluginWhitelist; + + bool public usePluginWhitelist = true; + + +///// +// Modifiers +///// + + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + + +////// +// Constructor +////// + + /// @notice The Constructor creates the `LiquidPledgingBase` on the blockchain + /// @param _vault Where the ETH is stored that the pledges represent + function LiquidPledgingBase(address _vault) { + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + vault = Vault(_vault); + } + + +/////// +// Admin functions +////// + + /// @notice Creates a giver. + function addGiver(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin + ) returns (uint64 idGiver) { + require(isValidPlugin(plugin)); + + idGiver = uint64(admins.length); + + admins.push(PledgeAdmin( + PledgeAdminType.Giver, + msg.sender, + name, + url, + commitTime, + 0, + false, + plugin)); + + GiverAdded(idGiver); + } + + event GiverAdded(uint64 indexed idGiver); + + ///@notice Changes the address, name or commitTime associated with a specific giver + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime) + { + PledgeAdmin storage giver = findAdmin(idGiver); + require(giver.adminType == PledgeAdminType.Giver); //Must be a Giver + require(giver.addr == msg.sender); //current addr had to originate this tx + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + GiverUpdated(idGiver); + } + + event GiverUpdated(uint64 indexed idGiver); + + /// @notice Creates a new Delegate + function addDelegate(string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idDelegate) { //TODO return index number + require(isValidPlugin(plugin)); + + idDelegate = uint64(admins.length); + + admins.push(PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + name, + url, + commitTime, + 0, + false, + plugin)); + + DelegateAdded(idDelegate); + } + + event DelegateAdded(uint64 indexed idDelegate); + + ///@notice Changes the address, name or commitTime associated with a specific delegate + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime) { + PledgeAdmin storage delegate = findAdmin(idDelegate); + require(delegate.adminType == PledgeAdminType.Delegate); + require(delegate.addr == msg.sender); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + DelegateUpdated(idDelegate); + } + + event DelegateUpdated(uint64 indexed idDelegate); + + /// @notice Creates a new Project + function addProject(string name, string url, address projectAdmin, uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin) returns (uint64 idProject) { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage pa = findAdmin(parentProject); + require(pa.adminType == PledgeAdminType.Project); + require(getProjectLevel(pa) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push(PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + name, + url, + commitTime, + parentProject, + false, + plugin)); + + + ProjectAdded(idProject); + } + + event ProjectAdded(uint64 indexed idProject); + + ///@notice Changes the address, name or commitTime associated with a specific Project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime) + { + PledgeAdmin storage project = findAdmin(idProject); + require(project.adminType == PledgeAdminType.Project); + require(project.addr == msg.sender); + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + ProjectUpdated(idProject); + } + + event ProjectUpdated(uint64 indexed idAdmin); + + +////////// +// Public constant functions +////////// + + /// @notice Public constant that states how many pledgess are in the system + function numberOfPledges() constant returns (uint) { + return pledges.length - 1; + } + /// @notice Public constant that states the details of the specified Pledge + function getPledge(uint64 idPledge) constant returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + PaymentState paymentState + ) { + Pledge storage n = findPledge(idPledge); + amount = n.amount; + owner = n.owner; + nDelegates = uint64(n.delegationChain.length); + intendedProject = n.intendedProject; + commitTime = n.commitTime; + oldPledge = n.oldPledge; + paymentState = n.paymentState; + } + /// @notice Public constant that states the delegates one by one, because + /// an array cannot be returned + function getPledgeDelegate(uint64 idPledge, uint idxDelegate) constant returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage n = findPledge(idPledge); + idDelegate = n.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + /// @notice Public constant that states the number of admins in the system + function numberOfPledgeAdmins() constant returns(uint) { + return admins.length - 1; + } + /// @notice Public constant that states the details of the specified admin + function getPledgeAdmin(uint64 idAdmin) constant returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin) + { + PledgeAdmin storage m = findAdmin(idAdmin); + adminType = m.adminType; + addr = m.addr; + name = m.name; + url = m.url; + commitTime = m.commitTime; + parentProject = m.parentProject; + canceled = m.canceled; + plugin = address(m.plugin); + } + +//////// +// Private methods +/////// + + /// @notice All pledges technically exist... but if the pledge hasn't been + /// created in this system yet then it wouldn't be in the hash array + /// hPledge2idx[]; this creates a Pledge with and amount of 0 if one is not + /// created already... + function findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + PaymentState paid + ) internal returns (uint64) + { + bytes32 hPledge = sha3(owner, delegationChain, intendedProject, commitTime, oldPledge, paid); + uint64 idx = hPledge2idx[hPledge]; + if (idx > 0) return idx; + idx = uint64(pledges.length); + hPledge2idx[hPledge] = idx; + pledges.push(Pledge(0, owner, delegationChain, intendedProject, commitTime, oldPledge, paid)); + return idx; + } + + function findAdmin(uint64 idAdmin) internal returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + function findPledge(uint64 idPledge) internal returns (Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + // a constant for the case that a delegate is requested that is not a delegate in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + + // helper function that searches the delegationChain fro a specific delegate and + // level of delegation returns their idx in the delegation chain which reflect their level of authority + function getDelegateIdx(Pledge n, uint64 idDelegate) internal returns(uint64) { + for (uint i=0; i commitTime) commitTime = m.commitTime; + } + } + + // helper function that returns the project level solely to check that there + // are not too many Projects that violate MAX_SUBCAMPAIGNS_LEVEL + function getProjectLevel(PledgeAdmin m) internal returns(uint) { + assert(m.adminType == PledgeAdminType.Project); + if (m.parentProject == 0) return(1); + PledgeAdmin storage parentNM = findAdmin(m.parentProject); + return getProjectLevel(parentNM); + } + + function isProjectCanceled(uint64 projectId) constant returns (bool) { + PledgeAdmin storage m = findAdmin(projectId); + if (m.adminType == PledgeAdminType.Giver) return false; + assert(m.adminType == PledgeAdminType.Project); + if (m.canceled) return true; + if (m.parentProject == 0) return false; + return isProjectCanceled(m.parentProject); + } + + // @notice A helper function for canceling projects + // @param idPledge the pledge that may or may not be canceled + function getOldestPledgeNotCanceled(uint64 idPledge) internal constant returns(uint64) { //todo rename + if (idPledge == 0) return 0; + Pledge storage n = findPledge(idPledge); + PledgeAdmin storage admin = findAdmin(n.owner); + if (admin.adminType == PledgeAdminType.Giver) return idPledge; + + assert(admin.adminType == PledgeAdminType.Project); + + if (!isProjectCanceled(n.owner)) return idPledge; + + return getOldestPledgeNotCanceled(n.oldPledge); + } + + function checkAdminOwner(PledgeAdmin m) internal constant { + require((msg.sender == m.addr) || (msg.sender == address(m.plugin))); + } + +//////// +// Plugin Whitelist Methods +/////// + + function addValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = true; + } + + function removeValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = false; + } + + function useWhitelist(bool useWhitelist) external onlyOwner { + usePluginWhitelist = useWhitelist; + } + + function isValidPlugin(address addr) public returns(bool) { + if (!usePluginWhitelist || addr == 0x0) return true; + + bytes32 contractHash = getCodeHash(addr); + + return pluginWhitelist[contractHash]; + } + + function getCodeHash(address addr) public returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + // new "memory end" including padding + mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) + // store length in memory + mstore(o_code, size) + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +//File: contracts/LiquidPledging.sol +pragma solidity ^0.4.11; + + + + +contract LiquidPledging is LiquidPledgingBase { + + +////// +// Constructor +////// + + // This constructor also calls the constructor for `LiquidPledgingBase` + function LiquidPledging(address _vault) LiquidPledgingBase(_vault) { + } + + /// @notice This is how value enters into the system which creates pledges; + /// the token of value goes into the vault and the amount in the pledge + /// relevant to this Giver without delegates is increased, and a normal + /// transfer is done to the idReceiver + /// @param idGiver Identifier of the giver thats donating. + /// @param idReceiver To whom it's transfered. Can be the same giver, another + /// giver, a delegate or a project + + function donate(uint64 idGiver, uint64 idReceiver) payable { + if (idGiver == 0) { + idGiver = addGiver('', '', 259200, ILiquidPledgingPlugin(0x0)); // default to 3 day commitTime + } + + PledgeAdmin storage sender = findAdmin(idGiver); + + checkAdminOwner(sender); + + require(sender.adminType == PledgeAdminType.Giver); + + uint amount = msg.value; + + require(amount > 0); + + vault.transfer(amount); // transfers the baseToken to the Vault + uint64 idPledge = findOrCreatePledge( + idGiver, + new uint64[](0), //what is new? + 0, + 0, + 0, + PaymentState.Pledged); + + + Pledge storage nTo = findPledge(idPledge); + nTo.amount += amount; + + Transfer(0, idPledge, amount); + + transfer(idGiver, idPledge, amount, idReceiver); + } + + + /// @notice Moves value between pledges + /// @param idSender ID of the giver, delegate or project admin that is transferring + /// the funds from Pledge to Pledge. This admin must have permissions to move the value + /// @param idPledge Id of the pledge that's moving the value + /// @param amount Quantity of value that's being moved + /// @param idReceiver Destination of the value, can be a giver sending to a giver or + /// a delegate, a delegate to another delegate or a project to precommit it to that project + function transfer(uint64 idSender, uint64 idPledge, uint amount, uint64 idReceiver) { + + idPledge = normalizePledge(idPledge); + + Pledge storage n = findPledge(idPledge); + PledgeAdmin storage receiver = findAdmin(idReceiver); + PledgeAdmin storage sender = findAdmin(idSender); + + checkAdminOwner(sender); + require(n.paymentState == PaymentState.Pledged); + + // If the sender is the owner + if (n.owner == idSender) { + if (receiver.adminType == PledgeAdminType.Giver) { + transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Project) { + transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Delegate) { + idPledge = undelegate(idPledge, amount, n.delegationChain.length); + appendDelegate(idPledge, amount, idReceiver); + } else { + assert(false); + } + return; + } + + // If the sender is a delegate + uint senderDIdx = getDelegateIdx(n, idSender); + if (senderDIdx != NOTFOUND) { + + // If the receiver is another giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only accept to change to the original giver to remove all delegates + assert(n.owner == idReceiver); + undelegate(idPledge, amount, n.delegationChain.length); + return; + } + + // If the receiver is another delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = getDelegateIdx(n, idReceiver); + + // If the receiver is not in the delegate list + if (receiverDIdx == NOTFOUND) { + idPledge = undelegate(idPledge, amount, n.delegationChain.length - senderDIdx - 1); + appendDelegate(idPledge, amount, idReceiver); + + // If the receiver is already part of the delegate chain and is + // after the sender, then all of the other delegates after the sender are + // removed and the receiver is appended at the end of the delegation chain + } else if (receiverDIdx > senderDIdx) { + idPledge = undelegate(idPledge, amount, n.delegationChain.length - senderDIdx - 1); + appendDelegate(idPledge, amount, idReceiver); + + // If the receiver is already part of the delegate chain and is + // before the sender, then the sender and all of the other + // delegates after the RECEIVER are revomved from the chain, + // this is interesting because the delegate undelegates from the + // delegates that delegated to this delegate... game theory issues? should this be allowed + } else if (receiverDIdx <= senderDIdx) { + undelegate(idPledge, amount, n.delegationChain.length - receiverDIdx -1); + } + return; + } + + // If the delegate wants to support a project, they undelegate all + // the delegates after them in the chain and choose a project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = undelegate(idPledge, amount, n.delegationChain.length - senderDIdx - 1); + proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // It is not the owner nor any delegate. + } + + + /// @notice This method is used to withdraw value from the system. This can be used + /// by the givers to avoid committing the donation or by project admin to use + /// the Ether. + /// @param idPledge Id of the pledge that wants to be withdrawn. + /// @param amount Quantity of Ether that wants to be withdrawn. + function withdraw(uint64 idPledge, uint amount) { + + idPledge = normalizePledge(idPledge); + + Pledge storage n = findPledge(idPledge); + + require(n.paymentState == PaymentState.Pledged); + + PledgeAdmin storage owner = findAdmin(n.owner); + + checkAdminOwner(owner); + + uint64 idNewPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Paying + ); + + doTransfer(idPledge, idNewPledge, amount); + + vault.authorizePayment(bytes32(idNewPledge), owner.addr, amount); + } + + /// @notice Method called by the vault to confirm a payment. + /// @param idPledge Id of the pledge that wants to be withdrawn. + /// @param amount Quantity of Ether that wants to be withdrawn. + function confirmPayment(uint64 idPledge, uint amount) onlyVault { + Pledge storage n = findPledge(idPledge); + + require(n.paymentState == PaymentState.Paying); + + uint64 idNewPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Paid + ); + + doTransfer(idPledge, idNewPledge, amount); + } + + /// @notice Method called by the vault to cancel a payment. + /// @param idPledge Id of the pledge that wants to be canceled for withdraw. + /// @param amount Quantity of Ether that wants to be rolled back. + function cancelPayment(uint64 idPledge, uint amount) onlyVault { + Pledge storage n = findPledge(idPledge); + + require(n.paymentState == PaymentState.Paying); //TODO change to revert + + // When a payment is canceled, never is assigned to a project. + uint64 oldPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Pledged + ); + + oldPledge = normalizePledge(oldPledge); + + doTransfer(idPledge, oldPledge, amount); + } + + /// @notice Method called to cancel this project. + /// @param idProject Id of the projct that wants to be canceled. + function cancelProject(uint64 idProject) { + PledgeAdmin storage project = findAdmin(idProject); + checkAdminOwner(project); + project.canceled = true; + + CancelProject(idProject); + } + + + function cancelPledge(uint64 idPledge, uint amount) { + idPledge = normalizePledge(idPledge); + + Pledge storage n = findPledge(idPledge); + require(n.oldPledge != 0); + + PledgeAdmin storage m = findAdmin(n.owner); + checkAdminOwner(m); + + uint64 oldPledge = getOldestPledgeNotCanceled(n.oldPledge); + doTransfer(idPledge, oldPledge, amount); + } + + +//////// +// Multi pledge methods +//////// + + // This set of functions makes moving a lot of pledges around much more + // efficient (saves gas) than calling these functions in series + uint constant D64 = 0x10000000000000000; + function mTransfer(uint64 idSender, uint[] pledgesAmounts, uint64 idReceiver) { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + transfer(idSender, idPledge, amount, idReceiver); + } + } + + function mWithdraw(uint[] pledgesAmounts) { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + withdraw(idPledge, amount); + } + } + + function mConfirmPayment(uint[] pledgesAmounts) { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + confirmPayment(idPledge, amount); + } + } + + function mCancelPayment(uint[] pledgesAmounts) { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + cancelPayment(idPledge, amount); + } + } + + function mNormalizePledge(uint64[] pledges) { + for (uint i = 0; i < pledges.length; i++ ) { + normalizePledge( pledges[i] ); + } + } + +//////// +// Private methods +/////// + + // this function is obvious, but it can also be called to undelegate everyone + // by setting yourself as the idReceiver + function transferOwnershipToProject(uint64 idPledge, uint amount, uint64 idReceiver) internal { + Pledge storage n = findPledge(idPledge); + + require(getPledgeLevel(n) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Pledged); + uint64 toPledge = findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + oldPledge, + PaymentState.Pledged); + doTransfer(idPledge, toPledge, amount); + } + + function transferOwnershipToGiver(uint64 idPledge, uint amount, uint64 idReceiver) internal { + uint64 toPledge = findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + PaymentState.Pledged); + doTransfer(idPledge, toPledge, amount); + } + + function appendDelegate(uint64 idPledge, uint amount, uint64 idReceiver) internal { + Pledge storage n= findPledge(idPledge); + + require(n.delegationChain.length < MAX_DELEGATES); //TODO change to revert and say the error + uint64[] memory newDelegationChain = new uint64[](n.delegationChain.length + 1); + for (uint i=0; i= amount); + nFrom.amount -= amount; + nTo.amount += amount; + + Transfer(from, to, amount); + callPlugins(false, from, to, amount); + } + + // This function does 2 things, #1: it checks to make sure that the pledges are correct + // if the a pledged project has already been committed then it changes the owner + // to be the proposed project (Pledge that the UI will have to read the commit time and manually + // do what this function does to the pledge for the end user at the expiration of the commitTime) + // #2: It checks to make sure that if there has been a cancellation in the chain of projects, + // then it adjusts the pledge's owner appropriately. + // This call can be called from any body at any time on any pledge. In general it can be called + // to force the calls of the affected plugins, which also need to be predicted by the UI + function normalizePledge(uint64 idPledge) returns(uint64) { + Pledge storage n = findPledge(idPledge); + + // Check to make sure this pledge hasnt already been used or is in the process of being used + if (n.paymentState != PaymentState.Pledged) return idPledge; + + // First send to a project if it's proposed and commited + if ((n.intendedProject > 0) && ( getTime() > n.commitTime)) { + uint64 oldPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Pledged); + uint64 toPledge = findOrCreatePledge( + n.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + PaymentState.Pledged); + doTransfer(idPledge, toPledge, n.amount); + idPledge = toPledge; + n = findPledge(idPledge); + } + + toPledge = getOldestPledgeNotCanceled(idPledge);// TODO toPledge is pledge defined + if (toPledge != idPledge) { + doTransfer(idPledge, toPledge, n.amount); + } + + return toPledge; + } + +///////////// +// Plugins +///////////// + + function callPlugin(bool before, uint64 adminId, uint64 fromPledge, uint64 toPledge, uint64 context, uint amount) internal returns (uint allowedAmount) { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = findAdmin(adminId); + if ((address(admin.plugin) != 0) && (allowedAmount > 0)) { + if (before) { + newAmount = admin.plugin.beforeTransfer(adminId, fromPledge, toPledge, context, amount); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer(adminId, fromPledge, toPledge, context, amount); + } + } + } + + function callPluginsPledge(bool before, uint64 idPledge, uint64 fromPledge, uint64 toPledge, uint amount) internal returns (uint allowedAmount) { + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage n = findPledge(idPledge); + + allowedAmount = callPlugin(before, n.owner, fromPledge, toPledge, offset, allowedAmount); + + for (uint64 i=0; i 0) { + allowedAmount = callPlugin(before, n.intendedProject, fromPledge, toPledge, offset + 255, allowedAmount); + } + } + + function callPlugins(bool before, uint64 fromPledge, uint64 toPledge, uint amount) internal returns (uint allowedAmount) { + allowedAmount = amount; + + allowedAmount = callPluginsPledge(before, fromPledge, fromPledge, toPledge, allowedAmount); + allowedAmount = callPluginsPledge(before, toPledge, fromPledge, toPledge, allowedAmount); + } + +///////////// +// Test functions +///////////// + + function getTime() internal returns (uint) { + return now; + } + + event Transfer(uint64 indexed from, uint64 indexed to, uint amount); + event CancelProject(uint64 indexed idProject); + +} + +//File: ./contracts/test/TestSimpleProjectPlugin.sol +pragma solidity ^0.4.11; + + + +// simple liquidPledging plugin contract for testing whitelist +contract TestSimpleProjectPlugin { + + uint64 public idProject; + bool initPending; + + event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + + function TestSimpleProjectPlugin() { + require(msg.sender != tx.origin); // Avoids being created directly by mistake. + initPending = true; + } + + function init( + LiquidPledging liquidPledging, + string name, + string url, + uint64 parentProject + ) { + require(initPending); + idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this)); + initPending = false; + } + + function beforeTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external returns (uint maxAllowed) { + require(!initPending); + BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + + function afterTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external { + require(!initPending); + AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + +} diff --git a/build/Vault.sol.js b/build/Vault.sol.js index 5a7ef82..e99cfa0 100644 --- a/build/Vault.sol.js +++ b/build/Vault.sol.js @@ -2,9 +2,12 @@ exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idNote","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.LiquidPledgingByteCode = "0x" +exports.LiquidPledgingRuntimeByteCode = "0x" exports.OwnedAbi = [{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] -exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556101bc8061003b6000396000f3006060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007b578063a6f9dae1146100aa578063d4ee1d90146100c9575b600080fd5b341561007157600080fd5b6100796100dc565b005b341561008657600080fd5b61008e610128565b604051600160a060020a03909116815260200160405180910390f35b34156100b557600080fd5b610079600160a060020a0360043516610137565b34156100d457600080fd5b61008e610181565b60015433600160a060020a039081169116146100f757600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600054600160a060020a031681565b60005433600160a060020a0390811691161461015257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a0316815600a165627a7a72305820885574d1a0e8ce290bfa7a88060f12652b15d02606bfe818c0778bcfe49198070029" +exports.OwnedByteCode = "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556101bc8061003b6000396000f3006060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007b578063a6f9dae1146100aa578063d4ee1d90146100c9575b600080fd5b341561007157600080fd5b6100796100dc565b005b341561008657600080fd5b61008e610128565b604051600160a060020a03909116815260200160405180910390f35b34156100b557600080fd5b610079600160a060020a0360043516610137565b34156100d457600080fd5b61008e610181565b60015433600160a060020a039081169116146100f757600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600054600160a060020a031681565b60005433600160a060020a0390811691161461015257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a0316815600a165627a7a7230582022ea1315b49a397ecce480df5973e01298c259ea44de4d74a39f26cf290e323c0029" +exports.OwnedRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166379ba509781146100665780638da5cb5b1461007b578063a6f9dae1146100aa578063d4ee1d90146100c9575b600080fd5b341561007157600080fd5b6100796100dc565b005b341561008657600080fd5b61008e610128565b604051600160a060020a03909116815260200160405180910390f35b34156100b557600080fd5b610079600160a060020a0360043516610137565b34156100d457600080fd5b61008e610181565b60015433600160a060020a039081169116146100f757600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600054600160a060020a031681565b60005433600160a060020a0390811691161461015257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a0316815600a165627a7a7230582022ea1315b49a397ecce480df5973e01298c259ea44de4d74a39f26cf290e323c0029" exports.VaultAbi = [{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"state","type":"uint8"},{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"VaultMock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newLiquidPledging","type":"address"}],"name":"setLiquidPledging","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"}] -exports.VaultByteCode = "0x606060405260008054600160a060020a033316600160a060020a0319909116179055610a68806100306000396000f3006060604052600436106100cc5763ffffffff60e060020a6000350416633baf35fb81146100ce57806374041d1f146100f357806379ba5097146101225780638422927d14610135578063876ca09f1461014b57806387d81789146101615780638da5cb5b146101bf578063a4500c33146101d2578063a6f9dae1146101ea578063b796105c14610209578063bb4f28df14610258578063bbc328201461027d578063cd6b8caf146102a4578063d4ee1d90146102b7578063e99996b1146102ca578063ffd82d21146102e9575b005b34156100d957600080fd5b6100e1610338565b60405190815260200160405180910390f35b34156100fe57600080fd5b61010661033f565b604051600160a060020a03909116815260200160405180910390f35b341561012d57600080fd5b6100cc61034e565b341561014057600080fd5b6100cc60043561039a565b341561015657600080fd5b6100cc6004356103c1565b341561016c57600080fd5b6101776004356103e5565b6040518085600281111561018757fe5b60ff168152602081019490945250600160a060020a039091166040808401919091526060830191909152608090910191505180910390f35b34156101ca57600080fd5b61010661042a565b34156101dd57600080fd5b6100cc6004351515610439565b34156101f557600080fd5b6100cc600160a060020a0360043516610494565b341561021457600080fd5b6100cc60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506104de95505050505050565b341561026357600080fd5b6100e1600435600160a060020a0360243516604435610531565b341561028857600080fd5b6102906106a2565b604051901515815260200160405180910390f35b34156102af57600080fd5b6100cc6106c3565b34156102c257600080fd5b6101066106c5565b34156102d557600080fd5b6100cc600160a060020a03600435166106d4565b34156102f457600080fd5b6100cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061073495505050505050565b6003545b90565b600254600160a060020a031681565b60015433600160a060020a0390811691161461036957600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60005433600160a060020a039081169116146103b557600080fd5b6103be81610783565b50565b60005433600160a060020a039081169116146103dc57600080fd5b6103be81610881565b60038054829081106103f357fe5b6000918252602090912060049091020180546001820154600283015460039093015460ff909216935091600160a060020a03169084565b600054600160a060020a031681565b60005433600160a060020a0390811691161461045457600080fd5b60028054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60005433600160a060020a039081169116146104af57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a039081169116146104fa57600080fd5b5060005b815181101561052d5761052582828151811061051657fe5b90602001906020020151610783565b6001016104fe565b5050565b600254600090819033600160a060020a0390811691161461055157600080fd5b506003805490819061056690600183016109bc565b50600060038281548110151561057857fe5b60009182526020909120600490910201805460ff1916600183600281111561059c57fe5b0217905550846003828154811015156105b157fe5b600091825260209091206001600490920201015560038054859190839081106105d657fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055508260038281548110151561061b57fe5b6000918252602090912060036004909202010155600160a060020a03841685827fb025fbd648b47675e5160bb9a938180cda38f285280e390d3aac0c3c0002ba088660405190815260200160405180910390a460025474010000000000000000000000000000000000000000900460ff161561069a5761069a81610881565b949350505050565b60025474010000000000000000000000000000000000000000900460ff1681565b565b600154600160a060020a031681565b60005433600160a060020a039081169116146106ef57600080fd5b600254600160a060020a03161561070557600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a0390811691161461075057600080fd5b5060005b815181101561052d5761077b82828151811061076c57fe5b90602001906020020151610881565b600101610754565b600354600090821061079457600080fd5b60038054839081106107a257fe5b6000918252602082206004909102019150815460ff1660028111156107c357fe5b146107cd57600080fd5b805460ff1916600290811782555460018201546003830154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561083c57600080fd5b6102c65a03f1151561084d57600080fd5b505050817ff1a1a3c38f42dc56b083903c7f8fb342b64c15e710c3a4179a4ba5c36733e91d60405160405180910390a25050565b600354600090821061089257600080fd5b60038054839081106108a057fe5b6000918252602082206004909102019150815460ff1660028111156108c157fe5b146108cb57600080fd5b805460ff1916600117815560028101546003820154600160a060020a03909116906108fc81150290604051600060405180830381858888f19350505050151561091357600080fd5b60025460018201546003830154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561097757600080fd5b6102c65a03f1151561098857600080fd5b505050817fe46ac4851953c525120fe90499f529bf6236f067292c975d33ad0afb2c585be660405160405180910390a25050565b8154818355818115116109e8576004028160040283600052602060002091820191016109e891906109ed565b505050565b61033c91905b80821115610a3857805460ff1916815560006001820181905560028201805473ffffffffffffffffffffffffffffffffffffffff1916905560038201556004016109f3565b50905600a165627a7a72305820aff4581a87d38cad743a6d7ee5d05b3093a02b882cdfd5a325adf857ea35deec0029" +exports.VaultByteCode = "0x606060405260008054600160a060020a033316600160a060020a0319909116179055610a69806100306000396000f3006060604052600436106100cc5763ffffffff60e060020a6000350416633baf35fb81146100ce57806374041d1f146100f357806379ba5097146101225780638422927d14610135578063876ca09f1461014b57806387d81789146101615780638da5cb5b146101bf578063a4500c33146101d2578063a6f9dae1146101ea578063b796105c14610209578063bb4f28df14610258578063bbc328201461027d578063cd6b8caf146102a4578063d4ee1d90146102b7578063e99996b1146102ca578063ffd82d21146102e9575b005b34156100d957600080fd5b6100e1610338565b60405190815260200160405180910390f35b34156100fe57600080fd5b61010661033f565b604051600160a060020a03909116815260200160405180910390f35b341561012d57600080fd5b6100cc61034e565b341561014057600080fd5b6100cc60043561039a565b341561015657600080fd5b6100cc6004356103c1565b341561016c57600080fd5b6101776004356103e5565b6040518085600281111561018757fe5b60ff168152602081019490945250600160a060020a039091166040808401919091526060830191909152608090910191505180910390f35b34156101ca57600080fd5b61010661042a565b34156101dd57600080fd5b6100cc6004351515610439565b34156101f557600080fd5b6100cc600160a060020a0360043516610494565b341561021457600080fd5b6100cc60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506104de95505050505050565b341561026357600080fd5b6100e1600435600160a060020a0360243516604435610531565b341561028857600080fd5b6102906106a2565b604051901515815260200160405180910390f35b34156102af57600080fd5b6100cc6106c3565b34156102c257600080fd5b6101066106c5565b34156102d557600080fd5b6100cc600160a060020a03600435166106d4565b34156102f457600080fd5b6100cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061073495505050505050565b6003545b90565b600254600160a060020a031681565b60015433600160a060020a0390811691161461036957600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60005433600160a060020a039081169116146103b557600080fd5b6103be81610783565b50565b60005433600160a060020a039081169116146103dc57600080fd5b6103be81610881565b60038054829081106103f357fe5b6000918252602090912060049091020180546001820154600283015460039093015460ff909216935091600160a060020a03169084565b600054600160a060020a031681565b60005433600160a060020a0390811691161461045457600080fd5b60028054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60005433600160a060020a039081169116146104af57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a039081169116146104fa57600080fd5b5060005b815181101561052d5761052582828151811061051657fe5b90602001906020020151610783565b6001016104fe565b5050565b600254600090819033600160a060020a0390811691161461055157600080fd5b506003805490819061056690600183016109bd565b50600060038281548110151561057857fe5b60009182526020909120600490910201805460ff1916600183600281111561059c57fe5b0217905550846003828154811015156105b157fe5b600091825260209091206001600490920201015560038054859190839081106105d657fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055508260038281548110151561061b57fe5b6000918252602090912060036004909202010155600160a060020a03841685827fb025fbd648b47675e5160bb9a938180cda38f285280e390d3aac0c3c0002ba088660405190815260200160405180910390a460025474010000000000000000000000000000000000000000900460ff161561069a5761069a81610881565b949350505050565b60025474010000000000000000000000000000000000000000900460ff1681565b565b600154600160a060020a031681565b60005433600160a060020a039081169116146106ef57600080fd5b600254600160a060020a03161561070557600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a0390811691161461075057600080fd5b5060005b815181101561052d5761077b82828151811061076c57fe5b90602001906020020151610881565b600101610754565b600354600090821061079457600080fd5b60038054839081106107a257fe5b6000918252602082206004909102019150815460ff1660028111156107c357fe5b146107cd57600080fd5b805460ff1916600290811782555460018201546003830154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561083c57600080fd5b6102c65a03f1151561084d57600080fd5b505050817ff1a1a3c38f42dc56b083903c7f8fb342b64c15e710c3a4179a4ba5c36733e91d60405160405180910390a25050565b600354600090821061089257600080fd5b60038054839081106108a057fe5b6000918252602082206004909102019150815460ff1660028111156108c157fe5b146108cb57600080fd5b805460ff191660019081178255600254908201546003830154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561093b57600080fd5b6102c65a03f1151561094c57600080fd5b50505060028101546003820154600160a060020a039091169080156108fc0290604051600060405180830381858888f19350505050151561098c57600080fd5b817fe46ac4851953c525120fe90499f529bf6236f067292c975d33ad0afb2c585be660405160405180910390a25050565b8154818355818115116109e9576004028160040283600052602060002091820191016109e991906109ee565b505050565b61033c91905b80821115610a3957805460ff1916815560006001820181905560028201805473ffffffffffffffffffffffffffffffffffffffff1916905560038201556004016109f4565b50905600a165627a7a723058207582f888e26dcd049ac8a0d8e92d9a1459bafd8c55ad041962aa96ade28d83be0029" +exports.VaultRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a6000350416633baf35fb81146100ce57806374041d1f146100f357806379ba5097146101225780638422927d14610135578063876ca09f1461014b57806387d81789146101615780638da5cb5b146101bf578063a4500c33146101d2578063a6f9dae1146101ea578063b796105c14610209578063bb4f28df14610258578063bbc328201461027d578063cd6b8caf146102a4578063d4ee1d90146102b7578063e99996b1146102ca578063ffd82d21146102e9575b005b34156100d957600080fd5b6100e1610338565b60405190815260200160405180910390f35b34156100fe57600080fd5b61010661033f565b604051600160a060020a03909116815260200160405180910390f35b341561012d57600080fd5b6100cc61034e565b341561014057600080fd5b6100cc60043561039a565b341561015657600080fd5b6100cc6004356103c1565b341561016c57600080fd5b6101776004356103e5565b6040518085600281111561018757fe5b60ff168152602081019490945250600160a060020a039091166040808401919091526060830191909152608090910191505180910390f35b34156101ca57600080fd5b61010661042a565b34156101dd57600080fd5b6100cc6004351515610439565b34156101f557600080fd5b6100cc600160a060020a0360043516610494565b341561021457600080fd5b6100cc60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506104de95505050505050565b341561026357600080fd5b6100e1600435600160a060020a0360243516604435610531565b341561028857600080fd5b6102906106a2565b604051901515815260200160405180910390f35b34156102af57600080fd5b6100cc6106c3565b34156102c257600080fd5b6101066106c5565b34156102d557600080fd5b6100cc600160a060020a03600435166106d4565b34156102f457600080fd5b6100cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061073495505050505050565b6003545b90565b600254600160a060020a031681565b60015433600160a060020a0390811691161461036957600080fd5b6001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b60005433600160a060020a039081169116146103b557600080fd5b6103be81610783565b50565b60005433600160a060020a039081169116146103dc57600080fd5b6103be81610881565b60038054829081106103f357fe5b6000918252602090912060049091020180546001820154600283015460039093015460ff909216935091600160a060020a03169084565b600054600160a060020a031681565b60005433600160a060020a0390811691161461045457600080fd5b60028054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60005433600160a060020a039081169116146104af57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a039081169116146104fa57600080fd5b5060005b815181101561052d5761052582828151811061051657fe5b90602001906020020151610783565b6001016104fe565b5050565b600254600090819033600160a060020a0390811691161461055157600080fd5b506003805490819061056690600183016109bd565b50600060038281548110151561057857fe5b60009182526020909120600490910201805460ff1916600183600281111561059c57fe5b0217905550846003828154811015156105b157fe5b600091825260209091206001600490920201015560038054859190839081106105d657fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055508260038281548110151561061b57fe5b6000918252602090912060036004909202010155600160a060020a03841685827fb025fbd648b47675e5160bb9a938180cda38f285280e390d3aac0c3c0002ba088660405190815260200160405180910390a460025474010000000000000000000000000000000000000000900460ff161561069a5761069a81610881565b949350505050565b60025474010000000000000000000000000000000000000000900460ff1681565b565b600154600160a060020a031681565b60005433600160a060020a039081169116146106ef57600080fd5b600254600160a060020a03161561070557600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805433600160a060020a0390811691161461075057600080fd5b5060005b815181101561052d5761077b82828151811061076c57fe5b90602001906020020151610881565b600101610754565b600354600090821061079457600080fd5b60038054839081106107a257fe5b6000918252602082206004909102019150815460ff1660028111156107c357fe5b146107cd57600080fd5b805460ff1916600290811782555460018201546003830154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561083c57600080fd5b6102c65a03f1151561084d57600080fd5b505050817ff1a1a3c38f42dc56b083903c7f8fb342b64c15e710c3a4179a4ba5c36733e91d60405160405180910390a25050565b600354600090821061089257600080fd5b60038054839081106108a057fe5b6000918252602082206004909102019150815460ff1660028111156108c157fe5b146108cb57600080fd5b805460ff191660019081178255600254908201546003830154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561093b57600080fd5b6102c65a03f1151561094c57600080fd5b50505060028101546003820154600160a060020a039091169080156108fc0290604051600060405180830381858888f19350505050151561098c57600080fd5b817fe46ac4851953c525120fe90499f529bf6236f067292c975d33ad0afb2c585be660405160405180910390a25050565b8154818355818115116109e9576004028160040283600052602060002091820191016109e991906109ee565b505050565b61033c91905b80821115610a3957805460ff1916815560006001820181905560028201805473ffffffffffffffffffffffffffffffffffffffff1916905560038201556004016109f4565b50905600a165627a7a723058207582f888e26dcd049ac8a0d8e92d9a1459bafd8c55ad041962aa96ade28d83be0029" exports._solcVersion = "0.4.18+commit.9cf6e910.Emscripten.clang" -exports._sha256 = "0x55fb3ff315e3297664118d0d8d4eefb81be1c0f350996fb5657a68a41491d8be" +exports._sha256 = "0xb2949c71f25aa99d691635526a951ec5c79a604fc58daad1fce873f5c5259d34" diff --git a/build/Vault_all.sol b/build/Vault_all.sol index ebbf33e..a8b65cf 100644 --- a/build/Vault_all.sol +++ b/build/Vault_all.sol @@ -136,10 +136,10 @@ contract Vault is Owned { require(p.state == PaymentStatus.Pending); p.state = PaymentStatus.Paid; - p.dest.transfer(p.amount); // only ETH denominated in wei - liquidPledging.confirmPayment(uint64(p.ref), p.amount); + p.dest.transfer(p.amount); // only ETH denominated in wei + ConfirmPayment(_idPayment); } diff --git a/package-lock.json b/package-lock.json index d2c4b5a..50a99d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,140 @@ { "name": "liquidpledging", - "version": "0.0.9", + "version": "0.0.10", "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.32.tgz", + "integrity": "sha512-EVq4T1a2GviKiQ75OfxNrGPPhJyXzg9jjORuuwhloZbFdrhT4FHa73sv9OFWBwX7rl2b6bxBVmfxrBQYWYz9tA==", + "requires": { + "chalk": "2.3.0", + "esutils": "2.0.2", + "js-tokens": "3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.32.tgz", + "integrity": "sha512-ysfIt7p72xm5fjSJsv7fMVN/j+EwIdqu8/MJjt6TqB4wM2r6rFRi0ujBTWDkLGQkRB/P5uDV8qcFCHAHnNzmsg==", + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.32", + "@babel/template": "7.0.0-beta.32", + "@babel/types": "7.0.0-beta.32" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.32.tgz", + "integrity": "sha512-bm7lIlizycJQY5SJ3HXWJV4XjSrOt1onzrDcOxUo9FEnKRZDEr/zfi5ar2s5tvvZvve/jGHwZKVKekRw2cjPCQ==", + "requires": { + "@babel/types": "7.0.0-beta.32" + } + }, + "@babel/template": { + "version": "7.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.32.tgz", + "integrity": "sha512-DB9sLgX2mfE29vjAkxHlzLyWr31EO9HaYoAM/UsPSsL70Eudl0i25URwIfQT6S6ckeVFnFP1t6PhERVeV4EAHA==", + "requires": { + "@babel/code-frame": "7.0.0-beta.32", + "@babel/types": "7.0.0-beta.32", + "babylon": "7.0.0-beta.32", + "lodash": "4.17.4" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.32", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.32.tgz", + "integrity": "sha512-PvAmyP2IJEBVAuE5yVzrTSWCCN9VMa1eGns8w3w6FYD/ivHSUmS7n+F40Fmjn+0nCQSUFR96wP0CqQ4jxTnF4Q==" + } + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.32.tgz", + "integrity": "sha512-dGe2CLduCIZ/iDkbmnqspQguRy5ARvI+zC8TiwFnsJ2YYO2TWK7x2aEwrbkSmi0iPlBP+Syiag7Idc1qNQq74g==", + "requires": { + "@babel/code-frame": "7.0.0-beta.32", + "@babel/helper-function-name": "7.0.0-beta.32", + "@babel/types": "7.0.0-beta.32", + "babylon": "7.0.0-beta.32", + "debug": "3.1.0", + "globals": "10.4.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.32", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.32.tgz", + "integrity": "sha512-PvAmyP2IJEBVAuE5yVzrTSWCCN9VMa1eGns8w3w6FYD/ivHSUmS7n+F40Fmjn+0nCQSUFR96wP0CqQ4jxTnF4Q==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", + "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==" + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.32.tgz", + "integrity": "sha512-w8+wzVcYCMb9OfaBfay2Vg5hyj7UfBX6qQtA+kB0qsW1h1NH/7xHMwvTZNqkuFBwjz5wxGS2QmaIcC3HH+UoxA==", + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, "JSONStream": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", @@ -14,6 +145,16 @@ "through": "2.3.8" } }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "dev": true, + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, "acorn": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", @@ -43,6 +184,18 @@ "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", "dev": true }, + "ajv": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.4.0.tgz", + "integrity": "sha1-MtHPCNvIDEMvQm8S4QslEfa0ZHQ=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, "ajv-keywords": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", @@ -75,20 +228,23 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", "dev": true }, "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, "requires": { "micromatch": "2.3.11", "normalize-path": "2.1.1" @@ -110,6 +266,11 @@ "readable-stream": "2.3.2" } }, + "argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=" + }, "aria-query": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.0.tgz", @@ -123,7 +284,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, "requires": { "arr-flatten": "1.1.0" } @@ -131,8 +291,7 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "array-find-index": { "version": "1.0.2", @@ -140,6 +299,12 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, "array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", @@ -174,8 +339,12 @@ "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "asn1.js": { "version": "4.9.1", @@ -197,6 +366,11 @@ "util": "0.10.3" } }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, "assertion-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", @@ -219,9 +393,29 @@ "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", "dev": true }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, "axobject-query": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz", @@ -231,6 +425,47 @@ "ast-types-flow": "0.0.7" } }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.12.1", + "convert-source-map": "1.5.1", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.2", + "lodash": "4.17.4", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.6", + "v8flags": "2.1.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.11.0" + } + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, "babel-code-frame": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", @@ -242,6 +477,103 @@ "js-tokens": "3.0.1" } }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.8", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.6" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.11.0" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, "babel-eslint": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", @@ -254,6 +586,249 @@ "babylon": "6.17.4" } }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.6", + "trim-right": "1.0.1" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.23.0", + "babel-types": "6.25.0" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.23.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.25.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.25.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.25.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-template": "6.26.0" + } + }, "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", @@ -263,6 +838,530 @@ "babel-runtime": "6.23.0" } }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.11.0" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.25.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.23.0", + "babel-types": "6.25.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.23.0", + "babel-template": "6.26.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.25.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.23.0", + "babel-types": "6.25.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.23.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.23.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.25.0" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "regenerator-runtime": "0.10.5" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + } + } + }, + "babel-preset-env": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", + "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "2.9.0", + "invariant": "2.2.2", + "semver": "5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + } + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, "babel-runtime": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", @@ -273,6 +1372,89 @@ "regenerator-runtime": "0.10.5" } }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.11.0" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, "babel-traverse": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", @@ -311,8 +1493,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { "version": "1.2.1", @@ -320,6 +1501,15 @@ "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", "dev": true }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", @@ -335,8 +1525,25 @@ "binary-extensions": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", - "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", - "dev": true + "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=" + }, + "bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "dev": true, + "requires": { + "readable-stream": "2.3.2" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } }, "bluebird": { "version": "3.3.1", @@ -349,11 +1556,59 @@ "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", "dev": true }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + } + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -363,7 +1618,6 @@ "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, "requires": { "expand-range": "1.8.2", "preserve": "0.2.0", @@ -379,8 +1633,7 @@ "browser-stdout": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", - "dev": true + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=" }, "browserify-aes": { "version": "1.0.6", @@ -427,6 +1680,15 @@ "randombytes": "2.0.5" } }, + "browserify-sha3": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.1.tgz", + "integrity": "sha1-P/NKMAbvFcD7NWflQbkaI0ASPRE=", + "dev": true, + "requires": { + "js-sha3": "0.3.1" + } + }, "browserify-sign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", @@ -451,6 +1713,16 @@ "pako": "0.2.9" } }, + "browserslist": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.9.0.tgz", + "integrity": "sha512-vJEBcDTANoDhSHL46NeOEW5hvQw7It9uCqzeFPQhpawXfnOwnpvW5C97vn1eGJ7iCkSg8wWU0nYObE7d/N95Iw==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000770", + "electron-to-chromium": "1.3.27" + } + }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", @@ -462,6 +1734,21 @@ "isarray": "1.0.0" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-to-arraybuffer": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.2.tgz", + "integrity": "sha1-0NgFZNwxhmoZdlFUh7OrYg23yEk=", + "dev": true, + "requires": { + "tape": "3.6.1" + } + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -486,6 +1773,12 @@ "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", "dev": true }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", @@ -510,6 +1803,17 @@ } } }, + "caniuse-lite": { + "version": "1.0.30000770", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000770.tgz", + "integrity": "sha1-vI5/ULBzJzOQ22qzVzeJCaFOm9s=", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" + }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", @@ -559,7 +1863,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -577,7 +1880,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", @@ -624,7 +1926,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1", @@ -650,14 +1951,22 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "codecov": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-2.3.1.tgz", + "integrity": "sha1-fdqUXNWKH2CBAltbA+4Bou8g+G4=", + "requires": { + "argv": "0.0.2", + "request": "2.77.0", + "urlgrey": "0.4.4" + } }, "color-convert": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -665,8 +1974,12 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" }, "columnify": { "version": "1.5.4", @@ -678,12 +1991,25 @@ "wcwidth": "1.0.1" } }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, "command-join": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/command-join/-/command-join-2.0.0.tgz", "integrity": "sha1-Uui5hPSHLZUv8b3IuYOX0nxxRM8=", "dev": true }, + "commander": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.1.tgz", + "integrity": "sha512-PCNLExLlI5HiPdaJs4pMXwOTHkSCpNQ1QJH9ykZLKtKEyKu3p9HgmH5l97vM8c0IUz6d54l+xEu2GG9yuYrFzA==" + }, "compare-func": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", @@ -697,8 +2023,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.0", @@ -738,6 +2063,18 @@ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, "conventional-changelog": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.6.tgz", @@ -931,6 +2268,24 @@ "object-assign": "4.1.1" } }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, "core-js": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", @@ -940,8 +2295,17 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", + "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "vary": "1.1.2" + } }, "create-ecdh": { "version": "4.0.0", @@ -983,13 +2347,20 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, "requires": { "lru-cache": "4.1.1", "shebang-command": "1.2.0", "which": "1.2.14" } }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, "crypto-browserify": { "version": "3.11.1", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", @@ -1047,6 +2418,21 @@ "number-is-nan": "1.0.1" } }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", @@ -1075,8 +2461,105 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decompress": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", + "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", + "dev": true, + "requires": { + "decompress-tar": "4.1.1", + "decompress-tarbz2": "4.1.1", + "decompress-targz": "4.1.1", + "decompress-unzip": "4.0.1", + "graceful-fs": "4.1.11", + "make-dir": "1.0.0", + "pify": "2.3.0", + "strip-dirs": "2.1.0" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "1.0.0" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dev": true, + "requires": { + "file-type": "5.2.0", + "is-stream": "1.1.0", + "tar-stream": "1.5.5" + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dev": true, + "requires": { + "decompress-tar": "4.1.1", + "file-type": "6.2.0", + "is-stream": "1.1.0", + "seek-bzip": "1.0.5", + "unbzip2-stream": "1.2.5" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "dev": true + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dev": true, + "requires": { + "decompress-tar": "4.1.1", + "file-type": "5.2.0", + "is-stream": "1.1.0" + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "dev": true, + "requires": { + "file-type": "3.9.0", + "get-stream": "2.3.1", + "pify": "2.3.0", + "yauzl": "2.9.1" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "dev": true + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + } + } + } }, "dedent": { "version": "0.7.0", @@ -1084,6 +2567,12 @@ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, + "deep-equal": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", + "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=", + "dev": true + }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -1119,12 +2608,29 @@ } } }, + "defined": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz", + "integrity": "sha1-817qfXBekzuvE7LwOz+D2SFAOz4=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, "des.js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", @@ -1135,6 +2641,26 @@ "minimalistic-assert": "1.0.0" } }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "diff": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", + "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==" + }, "diffie-hellman": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", @@ -1156,6 +2682,12 @@ "isarray": "1.0.0" } }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", + "dev": true + }, "domain-browser": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", @@ -1177,6 +2709,33 @@ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.27", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz", + "integrity": "sha1-eOy4o5kGYYe7N07t412ccFZagD0=", + "dev": true + }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", @@ -1204,6 +2763,21 @@ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, "enhanced-resolve": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", @@ -1335,11 +2909,16 @@ "es6-symbol": "3.1.1" } }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escope": { "version": "3.6.0", @@ -1521,17 +3100,37 @@ "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, "eth-contract-class": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/eth-contract-class/-/eth-contract-class-0.0.4.tgz", - "integrity": "sha1-5QMrORuOlQkmDMHq7MY8DAS2EMo=", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/eth-contract-class/-/eth-contract-class-0.0.6.tgz", + "integrity": "sha1-OYuJUhScx0fLlZ+otdSAKIx6i84=", "requires": { "web3-core-promievent": "1.0.0-beta.22" } }, + "eth-lib": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", + "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "elliptic": "6.4.0", + "keccakjs": "0.2.1", + "nano-json-stream-parser": "0.1.2", + "servify": "0.1.12", + "ws": "3.3.2", + "xhr-request-promise": "0.1.2" + } + }, "ethereumjs-testrpc": { "version": "git://github.com/perissology/testrpc.git#81216dbc38230b88b0f7ccf749720a47a253c1eb", "dev": true, @@ -1539,6 +3138,24 @@ "webpack": "3.6.0" } }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "dev": true, + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", + "dev": true + } + } + }, "event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", @@ -1573,7 +3190,6 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -1588,7 +3204,6 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, "requires": { "is-posix-bracket": "0.1.1" } @@ -1597,11 +3212,82 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, "requires": { "fill-range": "2.2.3" } }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "dev": true, + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, "external-editor": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz", @@ -1617,17 +3303,36 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, "requires": { "is-extglob": "1.0.0" } }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, "fast-deep-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", "dev": true }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -1637,17 +3342,21 @@ "escape-string-regexp": "1.0.5" } }, + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "dev": true + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" }, "fill-range": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true, "requires": { "is-number": "2.1.0", "isobject": "2.1.0", @@ -1656,6 +3365,38 @@ "repeat-string": "1.6.1" } }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -1666,17 +3407,24 @@ "pinkie-promise": "2.0.1" } }, + "for-each": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", + "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", + "dev": true, + "requires": { + "is-function": "1.0.1" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, "requires": { "for-in": "1.0.2" } @@ -1687,6 +3435,33 @@ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, "fs-extra": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", @@ -1700,17 +3475,45 @@ "rimraf": "2.6.1" } }, + "fs-promise": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz", + "integrity": "sha1-9k5PhUvPaJqovdy6JokW2z20aFQ=", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "fs-extra": "2.1.2", + "mz": "2.7.0", + "thenify-all": "1.6.0" + }, + "dependencies": { + "fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0" + } + } + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", - "dev": true, "optional": true, "requires": { "nan": "2.6.2", @@ -1720,13 +3523,11 @@ "abbrev": { "version": "1.1.0", "bundled": true, - "dev": true, "optional": true }, "ajv": { "version": "4.11.8", "bundled": true, - "dev": true, "optional": true, "requires": { "co": "4.6.0", @@ -1735,19 +3536,16 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "aproba": { "version": "1.1.1", "bundled": true, - "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", "bundled": true, - "dev": true, "optional": true, "requires": { "delegates": "1.0.0", @@ -1757,42 +3555,35 @@ "asn1": { "version": "0.2.3", "bundled": true, - "dev": true, "optional": true }, "assert-plus": { "version": "0.2.0", "bundled": true, - "dev": true, "optional": true }, "asynckit": { "version": "0.4.0", "bundled": true, - "dev": true, "optional": true }, "aws-sign2": { "version": "0.6.0", "bundled": true, - "dev": true, "optional": true }, "aws4": { "version": "1.6.0", "bundled": true, - "dev": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true, - "dev": true + "bundled": true }, "bcrypt-pbkdf": { "version": "1.0.1", "bundled": true, - "dev": true, "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -1801,7 +3592,6 @@ "block-stream": { "version": "0.0.9", "bundled": true, - "dev": true, "requires": { "inherits": "2.0.3" } @@ -1809,7 +3599,6 @@ "boom": { "version": "2.10.1", "bundled": true, - "dev": true, "requires": { "hoek": "2.16.3" } @@ -1817,7 +3606,6 @@ "brace-expansion": { "version": "1.1.7", "bundled": true, - "dev": true, "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -1825,53 +3613,44 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "caseless": { "version": "0.12.0", "bundled": true, - "dev": true, "optional": true }, "co": { "version": "4.6.0", "bundled": true, - "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "combined-stream": { "version": "1.0.5", "bundled": true, - "dev": true, "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "cryptiles": { "version": "2.0.5", "bundled": true, - "dev": true, "optional": true, "requires": { "boom": "2.10.1" @@ -1880,7 +3659,6 @@ "dashdash": { "version": "1.14.1", "bundled": true, - "dev": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -1889,7 +3667,6 @@ "assert-plus": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true } } @@ -1897,7 +3674,6 @@ "debug": { "version": "2.6.8", "bundled": true, - "dev": true, "optional": true, "requires": { "ms": "2.0.0" @@ -1906,24 +3682,20 @@ "deep-extend": { "version": "0.4.2", "bundled": true, - "dev": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "delegates": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", "bundled": true, - "dev": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -1932,24 +3704,20 @@ "extend": { "version": "3.0.1", "bundled": true, - "dev": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "forever-agent": { "version": "0.6.1", "bundled": true, - "dev": true, "optional": true }, "form-data": { "version": "2.1.4", "bundled": true, - "dev": true, "optional": true, "requires": { "asynckit": "0.4.0", @@ -1959,13 +3727,11 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "fstream": { "version": "1.0.11", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -1976,7 +3742,6 @@ "fstream-ignore": { "version": "1.0.5", "bundled": true, - "dev": true, "optional": true, "requires": { "fstream": "1.0.11", @@ -1987,7 +3752,6 @@ "gauge": { "version": "2.7.4", "bundled": true, - "dev": true, "optional": true, "requires": { "aproba": "1.1.1", @@ -2003,7 +3767,6 @@ "getpass": { "version": "0.1.7", "bundled": true, - "dev": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -2012,7 +3775,6 @@ "assert-plus": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true } } @@ -2020,7 +3782,6 @@ "glob": { "version": "7.1.2", "bundled": true, - "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -2032,19 +3793,16 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true, - "dev": true + "bundled": true }, "har-schema": { "version": "1.0.5", "bundled": true, - "dev": true, "optional": true }, "har-validator": { "version": "4.2.1", "bundled": true, - "dev": true, "optional": true, "requires": { "ajv": "4.11.8", @@ -2054,13 +3812,11 @@ "has-unicode": { "version": "2.0.1", "bundled": true, - "dev": true, "optional": true }, "hawk": { "version": "3.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "boom": "2.10.1", @@ -2071,13 +3827,11 @@ }, "hoek": { "version": "2.16.3", - "bundled": true, - "dev": true + "bundled": true }, "http-signature": { "version": "1.1.1", "bundled": true, - "dev": true, "optional": true, "requires": { "assert-plus": "0.2.0", @@ -2088,7 +3842,6 @@ "inflight": { "version": "1.0.6", "bundled": true, - "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -2096,19 +3849,16 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "ini": { "version": "1.3.4", "bundled": true, - "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -2116,24 +3866,20 @@ "is-typedarray": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isstream": { "version": "0.1.2", "bundled": true, - "dev": true, "optional": true }, "jodid25519": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -2142,19 +3888,16 @@ "jsbn": { "version": "0.1.1", "bundled": true, - "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", "bundled": true, - "dev": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", "bundled": true, - "dev": true, "optional": true, "requires": { "jsonify": "0.0.0" @@ -2163,19 +3906,16 @@ "json-stringify-safe": { "version": "5.0.1", "bundled": true, - "dev": true, "optional": true }, "jsonify": { "version": "0.0.0", "bundled": true, - "dev": true, "optional": true }, "jsprim": { "version": "1.4.0", "bundled": true, - "dev": true, "optional": true, "requires": { "assert-plus": "1.0.0", @@ -2187,20 +3927,17 @@ "assert-plus": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true } } }, "mime-db": { "version": "1.27.0", - "bundled": true, - "dev": true + "bundled": true }, "mime-types": { "version": "2.1.15", "bundled": true, - "dev": true, "requires": { "mime-db": "1.27.0" } @@ -2208,20 +3945,17 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "bundled": true }, "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8" } @@ -2229,13 +3963,11 @@ "ms": { "version": "2.0.0", "bundled": true, - "dev": true, "optional": true }, "node-pre-gyp": { "version": "0.6.36", "bundled": true, - "dev": true, "optional": true, "requires": { "mkdirp": "0.5.1", @@ -2252,7 +3984,6 @@ "nopt": { "version": "4.0.1", "bundled": true, - "dev": true, "optional": true, "requires": { "abbrev": "1.1.0", @@ -2262,7 +3993,6 @@ "npmlog": { "version": "4.1.0", "bundled": true, - "dev": true, "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -2273,25 +4003,21 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "oauth-sign": { "version": "0.8.2", "bundled": true, - "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, - "dev": true, "optional": true }, "once": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -2299,19 +4025,16 @@ "os-homedir": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "osenv": { "version": "0.1.4", "bundled": true, - "dev": true, "optional": true, "requires": { "os-homedir": "1.0.2", @@ -2320,36 +4043,30 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "performance-now": { "version": "0.2.0", "bundled": true, - "dev": true, "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true, - "dev": true + "bundled": true }, "punycode": { "version": "1.4.1", "bundled": true, - "dev": true, "optional": true }, "qs": { "version": "6.4.0", "bundled": true, - "dev": true, "optional": true }, "rc": { "version": "1.2.1", "bundled": true, - "dev": true, "optional": true, "requires": { "deep-extend": "0.4.2", @@ -2361,7 +4078,6 @@ "minimist": { "version": "1.2.0", "bundled": true, - "dev": true, "optional": true } } @@ -2369,7 +4085,6 @@ "readable-stream": { "version": "2.2.9", "bundled": true, - "dev": true, "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -2383,7 +4098,6 @@ "request": { "version": "2.81.0", "bundled": true, - "dev": true, "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -2413,38 +4127,32 @@ "rimraf": { "version": "2.6.1", "bundled": true, - "dev": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "bundled": true, - "dev": true + "bundled": true }, "semver": { "version": "5.3.0", "bundled": true, - "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", "bundled": true, - "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", "bundled": true, - "dev": true, "optional": true }, "sntp": { "version": "1.0.9", "bundled": true, - "dev": true, "optional": true, "requires": { "hoek": "2.16.3" @@ -2453,7 +4161,6 @@ "sshpk": { "version": "1.13.0", "bundled": true, - "dev": true, "optional": true, "requires": { "asn1": "0.2.3", @@ -2470,7 +4177,6 @@ "assert-plus": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true } } @@ -2478,7 +4184,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -2488,7 +4193,6 @@ "string_decoder": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "safe-buffer": "5.0.1" } @@ -2496,13 +4200,11 @@ "stringstream": { "version": "0.0.5", "bundled": true, - "dev": true, "optional": true }, "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -2510,13 +4212,11 @@ "strip-json-comments": { "version": "2.0.1", "bundled": true, - "dev": true, "optional": true }, "tar": { "version": "2.2.1", "bundled": true, - "dev": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -2526,7 +4226,6 @@ "tar-pack": { "version": "3.4.0", "bundled": true, - "dev": true, "optional": true, "requires": { "debug": "2.6.8", @@ -2542,7 +4241,6 @@ "tough-cookie": { "version": "2.3.2", "bundled": true, - "dev": true, "optional": true, "requires": { "punycode": "1.4.1" @@ -2551,7 +4249,6 @@ "tunnel-agent": { "version": "0.6.0", "bundled": true, - "dev": true, "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -2560,30 +4257,25 @@ "tweetnacl": { "version": "0.14.5", "bundled": true, - "dev": true, "optional": true }, "uid-number": { "version": "0.0.6", "bundled": true, - "dev": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "uuid": { "version": "3.0.1", "bundled": true, - "dev": true, "optional": true }, "verror": { "version": "1.3.6", "bundled": true, - "dev": true, "optional": true, "requires": { "extsprintf": "1.0.2" @@ -2592,7 +4284,6 @@ "wide-align": { "version": "1.1.2", "bundled": true, - "dev": true, "optional": true, "requires": { "string-width": "1.0.2" @@ -2600,11 +4291,22 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, "function-bind": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", @@ -2627,11 +4329,23 @@ "wide-align": "1.1.2" } }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "requires": { + "is-property": "1.0.2" + } + }, "get-caller-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, "get-func-name": { "version": "2.0.0", @@ -2666,8 +4380,22 @@ "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } }, "git-raw-commits": { "version": "1.2.0", @@ -2711,11 +4439,47 @@ "ini": "1.3.4" } }, + "giveth-common-contracts": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/giveth-common-contracts/-/giveth-common-contracts-0.4.0.tgz", + "integrity": "sha512-zFRXh6MQyroTr2NSKwtYOX2pY78+S/SJoqwTScqJqqhFIfVxgWtqj1pOn7lEcZ44GTNdbaCh5MS7/rZiX9pasg==", + "requires": { + "babel-eslint": "8.0.2", + "codecov": "2.3.1", + "jsonfile": "3.0.1", + "solium": "0.5.5" + }, + "dependencies": { + "babel-eslint": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.0.2.tgz", + "integrity": "sha512-yyl5U088oE+419+BNLJDKVWkUokuPLQeQt9ZTy9uM9kAzbtQgyYL3JkG425B8jxXA7MwTxnDAtRLMKJNH36qjA==", + "requires": { + "@babel/code-frame": "7.0.0-beta.32", + "@babel/traverse": "7.0.0-beta.32", + "@babel/types": "7.0.0-beta.32", + "babylon": "7.0.0-beta.32" + } + }, + "babylon": { + "version": "7.0.0-beta.32", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.32.tgz", + "integrity": "sha512-PvAmyP2IJEBVAuE5yVzrTSWCCN9VMa1eGns8w3w6FYD/ivHSUmS7n+F40Fmjn+0nCQSUFR96wP0CqQ4jxTnF4Q==" + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "requires": { + "graceful-fs": "4.1.11" + } + } + } + }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -2729,7 +4493,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, "requires": { "glob-parent": "2.0.0", "is-glob": "2.0.1" @@ -2739,11 +4502,20 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, "requires": { "is-glob": "2.0.1" } }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dev": true, + "requires": { + "min-document": "2.19.0", + "process": "0.5.2" + } + }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", @@ -2763,11 +4535,32 @@ "pinkie-promise": "2.0.1" } }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.1", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" + } + }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "graceful-readlink": { "version": "1.0.1", @@ -2810,6 +4603,23 @@ } } }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "requires": { + "chalk": "1.1.3", + "commander": "2.12.1", + "is-my-json-valid": "2.16.1", + "pinkie-promise": "2.0.1" + } + }, "has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", @@ -2823,7 +4633,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -2834,6 +4643,21 @@ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, + "has-symbol-support-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz", + "integrity": "sha512-JkaetveU7hFbqnAC1EV1sF4rlojU2D4Usc5CmS69l6NfmPDnpnFUegzFg33eDkkpNCxZ0mQp65HwUDrNFS/8MA==", + "dev": true + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "requires": { + "has-symbol-support-x": "1.4.1" + } + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -2859,6 +4683,22 @@ "minimalistic-assert": "1.0.0" } }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -2870,12 +4710,55 @@ "minimalistic-crypto-utils": "1.0.1" } }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, "hosted-git-info": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", "dev": true }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + } + }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, "https-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", @@ -2919,7 +4802,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -2928,8 +4810,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.4", @@ -3037,7 +4918,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "dev": true, "requires": { "loose-envify": "1.3.1" } @@ -3045,7 +4925,12 @@ "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", "dev": true }, "is-arrayish": { @@ -3058,7 +4943,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, "requires": { "binary-extensions": "1.10.0" } @@ -3066,8 +4950,7 @@ "is-buffer": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "dev": true + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" }, "is-builtin-module": { "version": "1.0.0", @@ -3102,14 +4985,12 @@ "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" }, "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, "requires": { "is-primitive": "2.0.0" } @@ -3117,14 +4998,12 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, "is-finite": { "version": "1.0.2", @@ -3139,25 +5018,51 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, "requires": { "number-is-nan": "1.0.1" } }, + "is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", + "dev": true + }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, "requires": { "is-extglob": "1.0.0" } }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", + "dev": true + }, + "is-my-json-valid": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", + "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", + "dev": true + }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -3168,6 +5073,12 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -3177,14 +5088,12 @@ "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" }, "is-primitive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" }, "is-promise": { "version": "2.1.0", @@ -3192,6 +5101,11 @@ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", @@ -3201,11 +5115,16 @@ "has": "1.0.1" } }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-subset": { "version": "0.1.1", @@ -3228,6 +5147,11 @@ "text-extensions": "1.7.0" } }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -3237,29 +5161,52 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, "requires": { "isarray": "1.0.0" } }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dev": true, + "requires": { + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" + } + }, + "js-sha3": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.3.1.tgz", + "integrity": "sha1-hhIoAhQvCChQKg0d7h2V4lO7AkM=", + "dev": true + }, "js-tokens": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", - "dev": true + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true }, "jschardet": { "version": "1.5.1", @@ -3267,12 +5214,23 @@ "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==", "dev": true }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, "json-loader": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", "dev": true }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", @@ -3291,8 +5249,7 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json3": { "version": "3.3.2", @@ -3327,17 +5284,49 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, "jsx-ast-utils": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=", "dev": true }, + "keccakjs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.1.tgz", + "integrity": "sha1-HWM6+QfvMFu/ny+mFtVsRFYd+k0=", + "dev": true, + "requires": { + "browserify-sha3": "0.0.1", + "sha3": "1.2.0" + } + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "1.1.5" } @@ -3361,7 +5350,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, "requires": { "invert-kv": "1.0.0" } @@ -3761,7 +5749,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -3770,8 +5757,7 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -3895,7 +5881,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, "requires": { "js-tokens": "3.0.1" } @@ -3910,11 +5895,16 @@ "signal-exit": "3.0.2" } }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, "lru-cache": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", - "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -3935,11 +5925,16 @@ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, "requires": { "mimic-fn": "1.1.0" } @@ -3978,11 +5973,22 @@ "trim-newlines": "1.0.0" } }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, "requires": { "arr-diff": "2.0.0", "array-unique": "0.2.1", @@ -4009,12 +6015,45 @@ "brorand": "1.1.0" } }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, "mimic-fn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + }, + "mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", "dev": true }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dev": true, + "requires": { + "dom-walk": "0.1.1" + } + }, "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", @@ -4031,7 +6070,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "1.1.8" } @@ -4046,7 +6084,6 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" }, @@ -4054,11 +6091,19 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } + }, "mocha": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.0.tgz", @@ -4118,6 +6163,12 @@ } } }, + "mock-fs": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.4.2.tgz", + "integrity": "sha512-dF+yxZSojSiI8AXGoxj5qdFWpucndc54Ug+TwlpHFaV7j22MGG+OML2+FVa6xAZtjb/OFFQhOC37Jegx2GbEwA==", + "dev": true + }, "modify-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", @@ -4130,11 +6181,16 @@ "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=", "dev": true }, + "mout": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", + "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mute-stream": { "version": "0.0.7", @@ -4142,12 +6198,33 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "object-assign": "4.1.1", + "thenify-all": "1.6.0" + } + }, "nan": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", - "dev": true, - "optional": true + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", + "dev": true + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true }, "node-libs-browser": { "version": "2.0.0", @@ -4194,6 +6271,11 @@ } } }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" + }, "normalize-package-data": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", @@ -4210,7 +6292,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, "requires": { "remove-trailing-separator": "1.1.0" } @@ -4219,7 +6300,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, "requires": { "path-key": "2.0.1" } @@ -4227,8 +6307,30 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "dev": true, + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", + "dev": true + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "object-assign": { "version": "4.1.1", @@ -4236,21 +6338,43 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, + "object-inspect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz", + "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w=", + "dev": true + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, "requires": { "for-own": "0.1.5", "is-extendable": "0.1.1" } }, + "oboe": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", + "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", + "dev": true, + "requires": { + "http-https": "1.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -4288,6 +6412,12 @@ "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", "dev": true }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -4303,27 +6433,50 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", - "dev": true + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" }, "p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, "requires": { "p-limit": "1.1.0" } }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dev": true, + "requires": { + "p-finally": "1.0.0" + } + }, "pako": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", @@ -4353,7 +6506,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, "requires": { "glob-base": "0.3.0", "is-dotfile": "1.0.3", @@ -4361,6 +6513,16 @@ "is-glob": "2.0.1" } }, + "parse-headers": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", + "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=", + "dev": true, + "requires": { + "for-each": "0.3.2", + "trim": "0.0.1" + } + }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -4370,6 +6532,12 @@ "error-ex": "1.3.1" } }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", @@ -4394,13 +6562,17 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, "path-type": { @@ -4432,6 +6604,23 @@ "sha.js": "2.4.8" } }, + "pegjs": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", + "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -4441,14 +6630,12 @@ "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, "requires": { "pinkie": "2.0.4" } @@ -4462,23 +6649,48 @@ "find-up": "1.1.2" } }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", "dev": true }, "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "dev": true, + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "public-encrypt": { "version": "4.0.0", @@ -4496,8 +6708,7 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "q": { "version": "1.5.0", @@ -4505,6 +6716,20 @@ "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", "dev": true }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=" + }, + "query-string": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-2.4.2.tgz", + "integrity": "sha1-fbBmZCCAS6qSrp8miWKFWnYUPfs=", + "dev": true, + "requires": { + "strict-uri-encode": "1.1.0" + } + }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -4527,7 +6752,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -4537,7 +6761,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -4546,7 +6769,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "1.1.5" } @@ -4557,7 +6779,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, "requires": { "is-buffer": "1.1.5" } @@ -4573,6 +6794,38 @@ "safe-buffer": "5.1.1" } }, + "randomhex": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", + "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=", + "dev": true + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + } + } + }, "read-cmd-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", @@ -4607,7 +6860,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", - "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -4622,7 +6874,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, "requires": { "graceful-fs": "4.1.11", "minimatch": "3.0.4", @@ -4640,38 +6891,85 @@ "strip-indent": "1.0.1" } }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "babel-types": "6.25.0", + "private": "0.1.8" + } + }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, "requires": { "is-equal-shallow": "0.1.3" } }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "repeating": { "version": "2.0.1", @@ -4682,11 +6980,37 @@ "is-finite": "1.0.2" } }, + "request": { + "version": "2.77.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.77.0.tgz", + "integrity": "sha1-KwDYIDDt7cyXCJ/6XYgQqcKqMUs=", + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "node-uuid": "1.4.8", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.4.3" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-from-string": { "version": "1.2.1", @@ -4697,8 +7021,7 @@ "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve": { "version": "1.1.7", @@ -4716,6 +7039,15 @@ "signal-exit": "3.0.2" } }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -4771,8 +7103,55 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "scrypt": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", + "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", + "dev": true, + "requires": { + "nan": "2.6.2" + } + }, + "scrypt.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", + "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=", + "dev": true, + "requires": { + "scrypt": "6.0.3", + "scryptsy": "1.2.1" + } + }, + "scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "dev": true, + "requires": { + "pbkdf2": "3.0.12" + } + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "dev": true, + "requires": { + "commander": "2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, + "requires": { + "graceful-readlink": "1.0.1" + } + } + } }, "semver": { "version": "5.1.1", @@ -4780,17 +7159,237 @@ "integrity": "sha1-oykqNz5vPgeY2gsgZBuanFvEfhk=", "dev": true }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "dev": true, + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "dev": true, + "requires": { + "body-parser": "1.18.2", + "cors": "2.8.4", + "express": "4.16.2", + "request": "2.83.0", + "xhr": "2.4.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "dev": true, + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "5.4.0", + "har-schema": "2.0.0" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "dev": true, + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "dev": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true + } + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, "setimmediate": { "version": "1.0.5", @@ -4798,6 +7397,12 @@ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + }, "sha.js": { "version": "2.4.8", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", @@ -4807,11 +7412,19 @@ "inherits": "2.0.3" } }, + "sha3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.0.tgz", + "integrity": "sha1-aYnxtwpJhwWHajc+LGKs6WqpOZo=", + "dev": true, + "requires": { + "nan": "2.6.2" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "1.0.0" } @@ -4819,25 +7432,107 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", "dev": true }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-get": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", + "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=", + "dev": true, + "requires": { + "once": "1.4.0", + "unzip-response": "1.0.2", + "xtend": "4.0.1" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } + }, + "sol-digger": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sol-digger/-/sol-digger-0.0.2.tgz", + "integrity": "sha1-QGxKnTHiaef4jrHC6hATGOXgkCU=" + }, + "sol-explore": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/sol-explore/-/sol-explore-1.6.2.tgz", + "integrity": "sha1-Q66MQZ/TrAVqBfip0fsQIs1B7MI=" + }, + "solc": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.18.tgz", + "integrity": "sha512-Kq+O3PNF9Pfq7fB+lDYAuoqRdghLmZyfngsg0h1Hj38NKAeVHeGPOGeZasn5KqdPeCzbMFvaGyTySxzGv6aXCg==", + "dev": true, + "requires": { + "fs-extra": "0.30.0", + "memorystream": "0.3.1", + "require-from-string": "1.2.1", + "semver": "5.4.1", + "yargs": "4.8.1" + }, + "dependencies": { + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + }, + "yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "lodash.assign": "4.2.0", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "window-size": "0.2.0", + "y18n": "3.2.1", + "yargs-parser": "2.4.1" + } + } + } + }, "solcpiler": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/solcpiler/-/solcpiler-0.0.4.tgz", - "integrity": "sha512-Rw9XGMjhoSnM2ANmcD87MloO103zJgbRnYbnJc1Ur3Fb7B16xlHyD+GxnEmOrTL/6mBVwyT9GCD/UERmZ5K6HQ==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/solcpiler/-/solcpiler-0.0.7.tgz", + "integrity": "sha512-RlgzQ5HtnLx/K0cccc4235yMNzzaw2g+8YkRKiYPRf82DxxUUHu8fzYizSp4m0GJujW8VTdIZ8V/GRtKVp32Rg==", "dev": true, "requires": { "async": "2.5.0", "glob": "7.1.2", "lodash": "4.17.4", - "solc": "0.4.15", + "solc": "0.4.18", "web3": "0.19.1", "yargs": "8.0.2" }, @@ -4854,21 +7549,6 @@ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -4896,21 +7576,17 @@ "strip-bom": "3.0.0" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "path-key": "2.0.1" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, "path-type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", @@ -4931,47 +7607,24 @@ "path-type": "2.0.0" } }, - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true - }, - "solc": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.15.tgz", - "integrity": "sha1-iujxYGoSSj+BwoudzssJZOvfnyU=", + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "fs-extra": "0.30.0", - "memorystream": "0.3.1", - "require-from-string": "1.2.1", - "semver": "5.4.1", - "yargs": "4.8.1" - }, - "dependencies": { - "yargs": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", - "dev": true, - "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "lodash.assign": "4.2.0", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "window-size": "0.2.0", - "y18n": "3.2.1", - "yargs-parser": "2.4.1" - } - } + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "strip-ansi": { @@ -5002,6 +7655,12 @@ "xmlhttprequest": "1.8.0" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", @@ -5021,54 +7680,89 @@ "which-module": "2.0.0", "y18n": "3.2.1", "yargs-parser": "7.0.0" - }, - "dependencies": { - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "solium": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/solium/-/solium-0.5.5.tgz", + "integrity": "sha1-QgrlwHCdAMGUMBWEGLuCZL2sZqo=", + "requires": { + "chokidar": "1.7.0", + "colors": "1.1.2", + "commander": "2.12.1", + "lodash": "4.17.4", + "sol-digger": "0.0.2", + "sol-explore": "1.6.2", + "solparse": "1.4.0" + } + }, + "solparse": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/solparse/-/solparse-1.4.0.tgz", + "integrity": "sha512-fEeAJzHBw0b/Md3OU4TZHyTDtQ2NkvvilMh7ApkWC+W9sN8VvCPzttOcA93gbgsm8Cq6j9Hw/tgzb86NabXyew==", + "requires": { + "mocha": "4.0.1", + "pegjs": "0.10.0", + "yargs": "10.0.3" + }, + "dependencies": { + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "growl": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==" + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "mocha": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.0.1.tgz", + "integrity": "sha512-evDmhkoA+cBNiQQQdSKZa2b9+W2mpLoj50367lhy+Klnx9OV8XlCIhigUnn1gaTFLQCa0kdNhEGDr0hCXOQFDw==", + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.11.0", + "debug": "3.1.0", + "diff": "3.3.1", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.3", + "he": "1.1.1", + "mkdirp": "0.5.1", + "supports-color": "4.4.0" + } + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "requires": { + "has-flag": "2.0.0" } } } @@ -5094,6 +7788,15 @@ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.6" + } + }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", @@ -5133,6 +7836,34 @@ "through2": "2.0.3" } }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + }, "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", @@ -5156,11 +7887,16 @@ "xtend": "4.0.1" } }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -5171,16 +7907,19 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, "requires": { "safe-buffer": "5.1.1" } }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -5194,11 +7933,28 @@ "is-utf8": "0.2.1" } }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dev": true, + "requires": { + "is-natural-number": "4.0.1" + } + }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0" + } }, "strip-indent": { "version": "1.0.1", @@ -5233,8 +7989,56 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "swarm-js": { + "version": "0.1.37", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.37.tgz", + "integrity": "sha512-G8gi5fcXP/2upwiuOShJ258sIufBVztekgobr3cVgYXObZwJ5AXLqZn52AI+/ffft29pJexF9WNdUxjlkVehoQ==", + "dev": true, + "requires": { + "bluebird": "3.5.1", + "buffer": "5.0.8", + "decompress": "4.2.0", + "eth-lib": "0.1.27", + "fs-extra": "2.1.2", + "fs-promise": "2.0.3", + "got": "7.1.0", + "mime-types": "2.1.17", + "mkdirp-promise": "5.0.1", + "mock-fs": "4.4.2", + "setimmediate": "1.0.5", + "tar.gz": "1.0.7", + "xhr-request-promise": "0.1.2" + }, + "dependencies": { + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "buffer": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", + "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", + "dev": true, + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8" + } + }, + "fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0" + } + } + } }, "tapable": { "version": "0.2.8", @@ -5242,6 +8046,93 @@ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", "dev": true }, + "tape": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/tape/-/tape-3.6.1.tgz", + "integrity": "sha1-SJPdU+KApfWMDOswwsDrs7zVHh8=", + "dev": true, + "requires": { + "deep-equal": "0.2.2", + "defined": "0.0.0", + "glob": "3.2.11", + "inherits": "2.0.3", + "object-inspect": "0.4.0", + "resumer": "0.0.0", + "through": "2.3.8" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-stream": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", + "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", + "dev": true, + "requires": { + "bl": "1.2.1", + "end-of-stream": "1.4.0", + "readable-stream": "2.3.2", + "xtend": "4.0.1" + } + }, + "tar.gz": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tar.gz/-/tar.gz-1.0.7.tgz", + "integrity": "sha512-uhGatJvds/3diZrETqMj4RxBR779LKlIE74SsMcn5JProZsfs9j0QBwWO1RW+IWNJxS2x8Zzra1+AW6OQHWphg==", + "dev": true, + "requires": { + "bluebird": "2.11.0", + "commander": "2.12.1", + "fstream": "1.0.11", + "mout": "0.11.1", + "tar": "2.2.1" + }, + "dependencies": { + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=", + "dev": true + } + } + }, "temp-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", @@ -5286,6 +8177,24 @@ "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==", "dev": true }, + "thenify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", + "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "dev": true, + "requires": { + "any-promise": "1.3.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": "3.3.0" + } + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -5302,6 +8211,12 @@ "xtend": "4.0.1" } }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, "timers-browserify": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", @@ -5332,6 +8247,20 @@ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "requires": { + "punycode": "1.4.1" + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", @@ -5344,18 +8273,54 @@ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", "dev": true }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typedarray-to-buffer": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz", + "integrity": "sha1-EBezLZhP9VbroQD1AViauhrOLgQ=", + "dev": true, + "requires": { + "is-typedarray": "1.0.0" + } + }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -5422,12 +8387,65 @@ "webpack-sources": "1.0.1" } }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unbzip2-stream": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz", + "integrity": "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==", + "dev": true, + "requires": { + "buffer": "3.6.0", + "through": "2.3.8" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "dev": true + }, + "buffer": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", + "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", + "dev": true, + "requires": { + "base64-js": "0.0.8", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + } + } + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + }, "universalify": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", "dev": true }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unzip-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", + "dev": true + }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", @@ -5446,6 +8464,38 @@ } } }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "1.0.4" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", + "dev": true + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, + "urlgrey": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", + "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, "utf8": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz", @@ -5472,7 +8522,12 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "uuid": { @@ -5481,6 +8536,15 @@ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", "dev": true }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, "validate-npm-package-license": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", @@ -5491,6 +8555,29 @@ "spdx-expression-parse": "1.0.4" } }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", @@ -5521,8 +8608,78 @@ } }, "web3": { - "version": "git://github.com/perissology/web3.js.git#7b99cefbb6ec855441a1ab97087f03043bb6ec23", - "dev": true + "version": "1.0.0-beta.24", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.24.tgz", + "integrity": "sha1-C2U9alD0B7N/WTNx+27hvTofJ8I=", + "dev": true, + "requires": { + "web3-bzz": "1.0.0-beta.26", + "web3-core": "1.0.0-beta.26", + "web3-eth": "1.0.0-beta.26", + "web3-eth-personal": "1.0.0-beta.26", + "web3-net": "1.0.0-beta.26", + "web3-shh": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + } + }, + "web3-bzz": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.26.tgz", + "integrity": "sha1-WFihjN5XaHSAGoPR30IJX8lYWQw=", + "dev": true, + "requires": { + "got": "7.1.0", + "swarm-js": "0.1.37", + "underscore": "1.8.3" + } + }, + "web3-core": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.26.tgz", + "integrity": "sha1-hczKK2KfmK3+sOK21+K31nepeVk=", + "dev": true, + "requires": { + "web3-core-helpers": "1.0.0-beta.26", + "web3-core-method": "1.0.0-beta.26", + "web3-core-requestmanager": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.26.tgz", + "integrity": "sha1-2G31xrMQ/FjFtv9Woz0mePu8PcM=", + "dev": true, + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + } + }, + "web3-core-method": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.26.tgz", + "integrity": "sha1-SdhpoacvMiNXbIkmCe7kDTsiVXw=", + "dev": true, + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.26", + "web3-core-promievent": "1.0.0-beta.26", + "web3-core-subscriptions": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + }, + "dependencies": { + "web3-core-promievent": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.26.tgz", + "integrity": "sha1-BkJSUZ35t+banCD1lKAuz+nDU8E=", + "dev": true, + "requires": { + "bluebird": "3.3.1", + "eventemitter3": "1.1.1" + } + } + } }, "web3-core-promievent": { "version": "1.0.0-beta.22", @@ -5533,6 +8690,241 @@ "eventemitter3": "1.1.1" } }, + "web3-core-requestmanager": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.26.tgz", + "integrity": "sha1-dffvfy/GpLDTRr8AVCFXuB4UsDM=", + "dev": true, + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.26", + "web3-providers-http": "1.0.0-beta.26", + "web3-providers-ipc": "1.0.0-beta.26", + "web3-providers-ws": "1.0.0-beta.26" + } + }, + "web3-core-subscriptions": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.26.tgz", + "integrity": "sha1-0W0dbr3GDXCL9aR7hxZt1+jBl6A=", + "dev": true, + "requires": { + "eventemitter3": "1.1.1", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.26" + } + }, + "web3-eth": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.26.tgz", + "integrity": "sha1-aMAkw1a4ZWrDaVyPk9e2GzgQRKU=", + "dev": true, + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.26", + "web3-core-helpers": "1.0.0-beta.26", + "web3-core-method": "1.0.0-beta.26", + "web3-core-subscriptions": "1.0.0-beta.26", + "web3-eth-abi": "1.0.0-beta.26", + "web3-eth-accounts": "1.0.0-beta.26", + "web3-eth-contract": "1.0.0-beta.26", + "web3-eth-iban": "1.0.0-beta.26", + "web3-eth-personal": "1.0.0-beta.26", + "web3-net": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + } + }, + "web3-eth-abi": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.26.tgz", + "integrity": "sha1-Ku3ASDxna1kcccBBJXIZj3omb+I=", + "dev": true, + "requires": { + "bn.js": "4.11.6", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", + "dev": true + } + } + }, + "web3-eth-accounts": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.26.tgz", + "integrity": "sha1-N/18d3BCBGX95ZGCKYkad3OAehM=", + "dev": true, + "requires": { + "bluebird": "3.3.1", + "eth-lib": "0.2.5", + "scrypt.js": "0.2.0", + "underscore": "1.8.3", + "uuid": "2.0.1", + "web3-core": "1.0.0-beta.26", + "web3-core-helpers": "1.0.0-beta.26", + "web3-core-method": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.5.tgz", + "integrity": "sha512-pXs4ryU+7S8MPpkQpNqG4JlXEec87kbXowQbYzRVV+c5XUccrO6WOxVPDicxql1AXSBzfmBSFVkvvG+H4htuxg==", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "elliptic": "6.4.0", + "xhr-request-promise": "0.1.2" + } + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", + "dev": true + } + } + }, + "web3-eth-contract": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.26.tgz", + "integrity": "sha1-fny3FXqrYMUi20353p3L2G2BOwk=", + "dev": true, + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.26", + "web3-core-helpers": "1.0.0-beta.26", + "web3-core-method": "1.0.0-beta.26", + "web3-core-promievent": "1.0.0-beta.26", + "web3-core-subscriptions": "1.0.0-beta.26", + "web3-eth-abi": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + }, + "dependencies": { + "web3-core-promievent": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.26.tgz", + "integrity": "sha1-BkJSUZ35t+banCD1lKAuz+nDU8E=", + "dev": true, + "requires": { + "bluebird": "3.3.1", + "eventemitter3": "1.1.1" + } + } + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.26.tgz", + "integrity": "sha1-6MI2GOpapmJ73pHHPqi18ZGe43Q=", + "dev": true, + "requires": { + "bn.js": "4.11.7", + "web3-utils": "1.0.0-beta.26" + } + }, + "web3-eth-personal": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.26.tgz", + "integrity": "sha1-K4gDs01HJEfPW76BziVQSxMb7QY=", + "dev": true, + "requires": { + "web3-core": "1.0.0-beta.26", + "web3-core-helpers": "1.0.0-beta.26", + "web3-core-method": "1.0.0-beta.26", + "web3-net": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + } + }, + "web3-net": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.26.tgz", + "integrity": "sha1-UY0oO1AANf7kgL9ocIljRyWrZLM=", + "dev": true, + "requires": { + "web3-core": "1.0.0-beta.26", + "web3-core-method": "1.0.0-beta.26", + "web3-utils": "1.0.0-beta.26" + } + }, + "web3-providers-http": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.26.tgz", + "integrity": "sha1-GwFUu3UY027TT5EKZl5FFSoKyKE=", + "dev": true, + "requires": { + "web3-core-helpers": "1.0.0-beta.26", + "xhr2": "0.1.4" + } + }, + "web3-providers-ipc": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.26.tgz", + "integrity": "sha1-HffepV5nE1yQRaJsUzso0bbJ2mQ=", + "dev": true, + "requires": { + "oboe": "2.1.3", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.26" + } + }, + "web3-providers-ws": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.26.tgz", + "integrity": "sha1-z0ylFUpPsVok1GgtEJUO4Emku2E=", + "dev": true, + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.26", + "websocket": "git://github.com/frozeman/WebSocket-Node.git#7004c39c42ac98875ab61126e5b4a925430f592c" + } + }, + "web3-shh": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.26.tgz", + "integrity": "sha1-YMrff1V71rRRVHXd4z4uV7gKgg4=", + "dev": true, + "requires": { + "web3-core": "1.0.0-beta.26", + "web3-core-method": "1.0.0-beta.26", + "web3-core-subscriptions": "1.0.0-beta.26", + "web3-net": "1.0.0-beta.26" + } + }, + "web3-utils": { + "version": "1.0.0-beta.26", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.26.tgz", + "integrity": "sha1-8ErYwUSxeBxrIMKBjgUyy55tyhU=", + "dev": true, + "requires": { + "bn.js": "4.11.6", + "eth-lib": "0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", + "dev": true + }, + "utf8": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", + "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=", + "dev": true + } + } + }, "webpack": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.6.0.tgz", @@ -5743,11 +9135,20 @@ "source-map": "0.5.6" } }, + "websocket": { + "version": "git://github.com/frozeman/WebSocket-Node.git#7004c39c42ac98875ab61126e5b4a925430f592c", + "dev": true, + "requires": { + "debug": "2.6.8", + "nan": "2.6.2", + "typedarray-to-buffer": "3.1.2", + "yaeti": "0.0.6" + } + }, "which": { "version": "1.2.14", "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "dev": true, "requires": { "isexe": "2.0.0" } @@ -5783,7 +9184,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -5792,8 +9192,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "2.3.0", @@ -5849,6 +9248,67 @@ } } }, + "ws": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz", + "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==", + "dev": true, + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + } + }, + "xhr": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", + "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=", + "dev": true, + "requires": { + "global": "4.3.2", + "is-function": "1.0.1", + "parse-headers": "2.0.1", + "xtend": "4.0.1" + } + }, + "xhr-request": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.0.1.tgz", + "integrity": "sha1-g/CKSyC+7Geowcco6BAvTJ7svdo=", + "dev": true, + "requires": { + "buffer-to-arraybuffer": "0.0.2", + "object-assign": "3.0.0", + "query-string": "2.4.2", + "simple-get": "1.4.3", + "timed-out": "2.0.0", + "url-set-query": "1.0.0", + "xhr": "2.4.0" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + }, + "timed-out": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", + "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=", + "dev": true + } + } + }, + "xhr-request-promise": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz", + "integrity": "sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0=", + "dev": true, + "requires": { + "xhr-request": "1.0.1" + } + }, "xhr2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", @@ -5864,20 +9324,107 @@ "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", "dev": true }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "yargs-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", + "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", + "requires": { + "camelcase": "4.1.0" + } + } + } }, "yargs-parser": { "version": "2.4.1", @@ -5888,6 +9435,16 @@ "camelcase": "3.0.0", "lodash.assign": "4.2.0" } + }, + "yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", + "dev": true, + "requires": { + "buffer-crc32": "0.2.13", + "fd-slicer": "1.0.1" + } } } }