diff --git a/contract/build/contracts/CrowdFund.json b/contract/build/contracts/CrowdFund.json index 023b2d15..86613203 100644 --- a/contract/build/contracts/CrowdFund.json +++ b/contract/build/contracts/CrowdFund.json @@ -525,20 +525,20 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620032e0380380620032e0833981018060405281019080805190602001909291908051906020019092919080518201929190602001805182019291906020018051906020019092919080519060200190929190805190602001909291905050506000806000670de0b6b3a76400008a1015151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526169736520676f616c20697320736d616c6c6572207468616e20312065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001885110158015620001365750600a885111155b1515620001d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472757374656520616464726573736573206d757374206265206174206c656181526020017f7374203120616e64206e6f74206d6f7265207468616e2031300000000000000081525060400191505060405180910390fd5b6001875110158015620001e65750600a875111155b151562000281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4d696c6573746f6e6573206d757374206265206174206c65617374203120616e81526020017f64206e6f74206d6f7265207468616e203130000000000000000000000000000081525060400191505060405180910390fd5b60009250600091505b865182101562000416578682815181101515620002a357fe5b9060200190602002015190506000811115156200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d696c6573746f6e6520616d6f756e74206d757374206265206772656174657281526020017f207468616e20300000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6200037181846200059b6401000000000262002ad7179091906401000000009004565b9250600c6080604051908101604052808381526020016000815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050505081806001019250506200028a565b8983141515620004b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736581526020017f20676f616c00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60016006819055508960038190555088600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600b90805190602001906200051c929190620005b8565b508542016002819055508460018190555083600060036101000a81548160ff02191690831515021790555060008060026101000a81548160ff021916908315150217905550600060078190555060008060016101000a81548160ff0219169083151502179055506000600481905550505050505050505050506200068d565b60008183019050828110151515620005af57fe5b80905092915050565b82805482825590600052602060002090810192821562000634579160200282015b82811115620006335782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005d9565b5b50905062000643919062000647565b5090565b6200068a91905b808211156200068657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200064e565b5090565b90565b612c43806200069d6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e68565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e94565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb5565b005b34801561041557600080fd5b5061041e61122a565b005b34801561042c57600080fd5b5061044d60048036038101908080351515906020019092919050505061143e565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061181c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061185a565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118a6565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ac565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b2f565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611ba8565b005b3480156105f357600080fd5b506105fc61205d565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612063565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061243c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c161247a565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec612480565b6040518082815260200191505060405180910390f35b61070a6124a1565b005b34801561071857600080fd5b50610721612a26565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a39565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a4c565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612a98565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612abe90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e60565b610e3b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e1b57fe5b906000526020600020906004020160010154612ad790919063ffffffff16565b600c87815481101515610e4a57fe5b9060005260206000209060040201600101819055505b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610ead600284612af390919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154915061118d60055461117f3073ffffffffffffffffffffffffffffffffffffffff163185612af390919063ffffffff16565b612b2b90919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111d5573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112bb610850565b92506112c5612a98565b91506112d2600754610e94565b905082806112dd5750815b806112e55750805b151561137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113ad5760008060006101000a81548160ff021916908360028111156113a357fe5b0217905550611400565b81156113db5760016000806101000a81548160ff021916908360028111156113d157fe5b02179055506113ff565b60026000806101000a81548160ff021916908360028111156113f957fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156114fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff16151561157e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117ba576117af600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612abe90919063ffffffff16565b600781905550611818565b611811600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ad790919063ffffffff16565b6007819055505b5050565b600b8181548110151561182b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118b7610850565b151561192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611af457600a828154811015156119d057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119b4565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8057fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bb8610850565b1515611c2c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d4457fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d7557fe5b906000526020600020906004020160020154119350611db3600c87815481101515611d9c57fe5b906000526020600020906004020160010154610e94565b925084151515611e2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611ea457600c81815481101515611e6f57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611e97578091505b8080600101915050611e53565b6001820186141515611f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f5557fe5b9060005260206000209060040201600201541415611ff857600086148015611f895750600060039054906101000a900460ff165b15611fb9576001600c87815481101515611f9f57fe5b906000526020600020906004020160020181905550611ff3565b611fce60015442612ad790919063ffffffff16565b600c87815481101515611fdd57fe5b9060005260206000209060040201600201819055505b612055565b8380156120025750825b156120545761202f6120206002600154612af390919063ffffffff16565b42612ad790919063ffffffff16565b600c8781548110151561203e57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612172576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561218257fe5b9060005260206000209060040201600201541093506121c0600c868154811015156121a957fe5b906000526020600020906004020160010154610e94565b9250600c858154811015156121d157fe5b906000526020600020906004020160030160009054906101000a900460ff1691508380156121fd575082155b8015612207575081155b156123a1576001600c8681548110151561221d57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561225457fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122d0573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161235b86600c80549050612abe90919063ffffffff16565b141561239c57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612435565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561244b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff16600281111561249c57fe5b905090565b600080600060025442111580156124c55750600060029054906101000a900460ff16155b1515612539576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125d334600454612ad790919063ffffffff16565b92506003548311151515612675576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061268d5750805b151561274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561290857608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127de5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612859929190612b41565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129a4565b61295d34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ad790919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129d3576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a5b57fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ab95750600060029054906101000a900460ff16155b905090565b6000828211151515612acc57fe5b818303905092915050565b60008183019050828110151515612aea57fe5b80905092915050565b600080831415612b065760009050612b25565b8183029050818382811515612b1757fe5b04141515612b2157fe5b8090505b92915050565b60008183811515612b3857fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612bd65791602002820160005b83821115612ba757835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b6a565b8015612bd45782816101000a81549060ff0219169055600101602081600001049283019260010302612ba7565b505b509050612be39190612be7565b5090565b612c1491905b80821115612c1057600081816101000a81549060ff021916905550600101612bed565b5090565b905600a165627a7a7230582051351396444f74bc4a8b3921cf045e1b2aea376db653835bbe15cc04725c9b3d0029", - "deployedBytecode": "0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e68565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e94565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb5565b005b34801561041557600080fd5b5061041e61122a565b005b34801561042c57600080fd5b5061044d60048036038101908080351515906020019092919050505061143e565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061181c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061185a565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118a6565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ac565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b2f565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611ba8565b005b3480156105f357600080fd5b506105fc61205d565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612063565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061243c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c161247a565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec612480565b6040518082815260200191505060405180910390f35b61070a6124a1565b005b34801561071857600080fd5b50610721612a26565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a39565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a4c565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612a98565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612abe90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e60565b610e3b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e1b57fe5b906000526020600020906004020160010154612ad790919063ffffffff16565b600c87815481101515610e4a57fe5b9060005260206000209060040201600101819055505b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610ead600284612af390919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154915061118d60055461117f3073ffffffffffffffffffffffffffffffffffffffff163185612af390919063ffffffff16565b612b2b90919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111d5573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112bb610850565b92506112c5612a98565b91506112d2600754610e94565b905082806112dd5750815b806112e55750805b151561137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113ad5760008060006101000a81548160ff021916908360028111156113a357fe5b0217905550611400565b81156113db5760016000806101000a81548160ff021916908360028111156113d157fe5b02179055506113ff565b60026000806101000a81548160ff021916908360028111156113f957fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156114fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff16151561157e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117ba576117af600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612abe90919063ffffffff16565b600781905550611818565b611811600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ad790919063ffffffff16565b6007819055505b5050565b600b8181548110151561182b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118b7610850565b151561192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611af457600a828154811015156119d057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119b4565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8057fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bb8610850565b1515611c2c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d4457fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d7557fe5b906000526020600020906004020160020154119350611db3600c87815481101515611d9c57fe5b906000526020600020906004020160010154610e94565b925084151515611e2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611ea457600c81815481101515611e6f57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611e97578091505b8080600101915050611e53565b6001820186141515611f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f5557fe5b9060005260206000209060040201600201541415611ff857600086148015611f895750600060039054906101000a900460ff165b15611fb9576001600c87815481101515611f9f57fe5b906000526020600020906004020160020181905550611ff3565b611fce60015442612ad790919063ffffffff16565b600c87815481101515611fdd57fe5b9060005260206000209060040201600201819055505b612055565b8380156120025750825b156120545761202f6120206002600154612af390919063ffffffff16565b42612ad790919063ffffffff16565b600c8781548110151561203e57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612172576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561218257fe5b9060005260206000209060040201600201541093506121c0600c868154811015156121a957fe5b906000526020600020906004020160010154610e94565b9250600c858154811015156121d157fe5b906000526020600020906004020160030160009054906101000a900460ff1691508380156121fd575082155b8015612207575081155b156123a1576001600c8681548110151561221d57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561225457fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122d0573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161235b86600c80549050612abe90919063ffffffff16565b141561239c57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612435565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561244b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff16600281111561249c57fe5b905090565b600080600060025442111580156124c55750600060029054906101000a900460ff16155b1515612539576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125d334600454612ad790919063ffffffff16565b92506003548311151515612675576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061268d5750805b151561274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561290857608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127de5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612859929190612b41565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129a4565b61295d34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ad790919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129d3576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a5b57fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ab95750600060029054906101000a900460ff16155b905090565b6000828211151515612acc57fe5b818303905092915050565b60008183019050828110151515612aea57fe5b80905092915050565b600080831415612b065760009050612b25565b8183029050818382811515612b1757fe5b04141515612b2157fe5b8090505b92915050565b60008183811515612b3857fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612bd65791602002820160005b83821115612ba757835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b6a565b8015612bd45782816101000a81549060ff0219169055600101602081600001049283019260010302612ba7565b505b509050612be39190612be7565b5090565b612c1491905b80821115612c1057600081816101000a81549060ff021916905550600101612bed565b5090565b905600a165627a7a7230582051351396444f74bc4a8b3921cf045e1b2aea376db653835bbe15cc04725c9b3d0029", - "sourceMap": "87:12687:0:-;;;1437:1931;8:9:-1;5:2;;;30:1;27;20:12;5:2;1437:1931:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2194:19;2232:6;2287:20;1711:7;1697:10;:21;;1689:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1795:1;1775:9;:16;:21;;:47;;;;;1820:2;1800:9;:16;:22;;1775:47;1767:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1924:1;1902:11;:18;:23;;:51;;;;;1951:2;1929:11;:18;:24;;1902:51;1894:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2216:1;2194:23;;2241:1;2232:10;;2227:477;2248:11;:18;2244:1;:22;2227:477;;;2310:11;2322:1;2310:14;;;;;;;;;;;;;;;;;;2287:37;;2364:1;2346:15;:19;2338:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:35;2459:15;2440:14;:18;;;;;;:35;;;;;:::i;:::-;2423:52;;2489:10;2505:187;;;;;;;;;2541:15;2505:187;;;;2647:1;2505:187;;;;2601:1;2505:187;;;;2672:5;2505:187;;;;;2489:204;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2489:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2268:3;;;;;;;2227:477;;;2739:10;2721:14;:28;2713:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2906:1;2878:25;:29;;;;2929:10;2917:9;:22;;;;2963:12;2949:11;;:26;;;;;;;;;;;;;;;;;;2996:9;2985:8;:20;;;;;;;;;;;;:::i;:::-;;3032:9;3026:3;:15;3015:8;:26;;;;3075:22;3051:21;:46;;;;3139:30;3107:29;;:62;;;;;;;;;;;;;;;;;;3200:5;3179:18;;:26;;;;;;;;;;;;;;;;;;3239:1;3215:21;:25;;;;3259:5;3250:6;;:14;;;;;;;;;;;;;;;;;;3360:1;3345:12;:16;;;;1437:1931;;;;;;;;;;87:12687;;1238:128:2;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o;87:12687:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "87:12687:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;776:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;776:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1079:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1079:33:0;;;;;;;;;;;;;;;;;;;;;;;1150:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1150:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11235:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11235:234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1005:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1005:25:0;;;;;;;;;;;;;;;;;;;;;;;922:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;922:20:0;;;;;;;;;;;;;;;;;;;;;;;6712:1029;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6712:1029:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1036:37:0;;;;;;;;;;;;;;;;;;;;;;;1118:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1118:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11101:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11101:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10040:587;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10040:587:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9271:693;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9271:693:0;;;;;;8714:551;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8714:551:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1302:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11799:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11799:172:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;975:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;975:24:0;;;;;;;;;;;;;;;;;;;;;;;10724:371;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10724:371:0;;;;;;11590:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11590:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5068:1638;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5068:1638:0;;;;;;;;;;;;;;;;;;;;;;;;;;883:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;883:33:0;;;;;;;;;;;;;;;;;;;;;;;7747:961;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7747:961:0;;;;;;;;;;;;;;;;;;;;;;;;;;1207:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1207:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;948:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;948:21:0;;;;;;;;;;;;;;;;;;;;;;;11977:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11977:96:0;;;;;;;;;;;;;;;;;;;;;;;3374:1688;;;;;;800:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;800:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;836:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;836:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11475:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11475:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;776:18;;;;;;;;;;;;;:::o;1079:33::-;;;;:::o;1150:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11235:234::-;11283:4;11304:6;11313:1;11304:10;;11299:142;11320:8;:15;;;;11316:1;:19;11299:142;;;11374:8;11383:1;11374:11;;;;;;;;;;;;;;;;;;;;;;;;;;;11360:25;;:10;:25;;;11356:75;;;11412:4;11405:11;;;;11356:75;11337:3;;;;;;;11299:142;;;11457:5;11450:12;;11235:234;;;:::o;1005:25::-;;;;:::o;922:20::-;;;;:::o;6712:1029::-;6821:28;7017:27;7104:23;7190:16;12610:1;12563:12;:24;12576:10;12563:24;;;;;;;;;;;;;;;:43;;;:48;;12555:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12314:18;;;;;;;;;;;12306:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12220:6;;;;;;;;;;;12219:7;12211:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6852:12;:24;6865:10;6852:24;;;;;;;;;;;;;;;:41;;6894:5;6852:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6821:79;;6945:4;6918:31;;:23;:31;;;;6910:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:1;7047:10;7058:5;7047:17;;;;;;;;;;;;;;;;;;;;:43;;;:47;7017:77;;7177:3;7130:10;7141:5;7130:17;;;;;;;;;;;;;;;;;;;;:43;;;:50;;7104:76;;7209:22;:45;;;;;7236:18;7235:19;7209:45;7190:64;;7272:11;7264:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7378:4;7327:12;:24;7340:10;7327:24;;;;;;;;;;;;;;;:41;;7369:5;7327:48;;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;7397:4;7396:5;7392:343;;;7463:92;7511:12;:24;7524:10;7511:24;;;;;;;;;;;;;;;:43;;;7463:10;7474:5;7463:17;;;;;;;;;;;;;;;;;;;;:43;;;:47;;:92;;;;:::i;:::-;7417:10;7428:5;7417:17;;;;;;;;;;;;;;;;;;;;:43;;:138;;;;7392:343;;;7632:92;7680:12;:24;7693:10;7680:24;;;;;;;;;;;;;;;:43;;;7632:10;7643:5;7632:17;;;;;;;;;;;;;;;;;;;;:43;;;:47;;:92;;;;:::i;:::-;7586:10;7597:5;7586:17;;;;;;;;;;;;;;;;;;;;:43;;:138;;;;7392:343;6712:1029;;;;;;:::o;1036:37::-;;;;:::o;1118:26::-;;;;;;;;;;;;;:::o;11101:128::-;11166:4;11210:12;;11189:18;11205:1;11189:11;:15;;:18;;;;:::i;:::-;:33;11182:40;;11101:128;;;:::o;10040:587::-;10161:15;10349:23;10431:19;12119:6;;;;;;;;;;;12111:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10117:6;;;;;;;;;;;10109:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10179:12;:27;10192:13;10179:27;;;;;;;;;;;;;;;:36;;;;;;;;;;;;10161:54;;10234:10;10233:11;10225:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10335:4;10296:12;:27;10309:13;10296:27;;;;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;10375:12;:27;10388:13;10375:27;;;;;;;;;;;;;;;:46;;;10349:72;;10453:64;10503:13;;10453:45;10484:4;10476:21;;;10453:18;:22;;:45;;;;:::i;:::-;:49;;:64;;;;:::i;:::-;10431:86;;10527:13;:22;;:38;10550:14;10527:38;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10527:38:0;10590:13;10580:40;;;10605:14;10580:40;;;;;;;;;;;;;;;;;;10040:587;;;;:::o;9271:693::-;9319:20;9369;9412:27;12220:6;;;;;;;;;;;12219:7;12211:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9342:17;:15;:17::i;:::-;9319:40;;9392:10;:8;:10::i;:::-;9369:33;;9442:39;9459:21;;9442:16;:39::i;:::-;9412:69;;9499:15;:34;;;;9518:15;9499:34;:60;;;;9537:22;9499:60;9491:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9620:15;9616:272;;;9666:30;9651:12;;:45;;;;;;;;;;;;;;;;;;;;;;;;9616:272;;;9717:15;9713:175;;;9763:30;9748:12;;:45;;;;;;;;;;;;;;;;;;;;;;;;9713:175;;;9839:38;9824:12;;:53;;;;;;;;;;;;;;;;;;;;;;;;9713:175;9616:272;9906:4;9897:6;;:13;;;;;;;;;;;;;;;;;;9944:4;9936:21;;;9920:13;:37;;;;9271:693;;;:::o;8714:551::-;8802:15;12610:1;12563:12;:24;12576:10;12563:24;;;;;;;;;;;;;;;:43;;;:48;;12555:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12314:18;;;;;;;;;;;12306:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12220:6;;;;;;;;;;;12219:7;12211:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8820:12;:24;8833:10;8820:24;;;;;;;;;;;;;;;:35;;;;;;;;;;;;8802:53;;8881:10;8873:18;;:4;:18;;;;8865:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8990:4;8952:12;:24;8965:10;8952:24;;;;;;;;;;;;;;;:35;;;:42;;;;;;;;;;;;;;;;;;9009:4;9008:5;9004:255;;;9053:70;9079:12;:24;9092:10;9079:24;;;;;;;;;;;;;;;:43;;;9053:21;;:25;;:70;;;;:::i;:::-;9029:21;:94;;;;9004:255;;;9178:70;9204:12;:24;9217:10;9204:24;;;;;;;;;;;;;;;:43;;;9178:21;;:25;;:70;;;;:::i;:::-;9154:21;:94;;;;9004:255;8714:551;;:::o;1302:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11799:172::-;11890:4;11913:12;:32;11926:18;11913:32;;;;;;;;;;;;;;;:51;;;11906:58;;11799:172;;;:::o;975:24::-;;;;:::o;10724:371::-;10788:6;10847:26;12708:17;:15;:17::i;:::-;12700:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12119:6;;;;;;;;;;;12111:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10797:1;10788:10;;10783:271;10804:15;:22;;;;10800:1;:26;10783:271;;;10876:15;10892:1;10876:18;;;;;;;;;;;;;;;;;;;;;;;;;;;10847:47;;10913:12;:32;10926:18;10913:32;;;;;;;;;;;;;;;:41;;;;;;;;;;;;10912:42;10908:136;;;10974:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10908:136;10828:3;;;;;;;10783:271;;;11076:11;;;;;;;;;;;11063:25;;;11590:203;11697:4;11721:12;:32;11734:18;11721:32;;;;;;;;;;;;;;;:49;;11771:14;11721:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:72;;11590:203;;;;:::o;5068:1638::-;5166:25;5226:26;5314;5527:19;5566:6;12708:17;:15;:17::i;:::-;12700:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12314:18;;;;;;;;;;;12306:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12220:6;;;;;;;;;;;12219:7;12211:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:10;5205:5;5194:17;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;5166:50;;5301:3;5255:10;5266:5;5255:17;;;;;;;;;;;;;;;;;;;;:43;;;:49;5226:78;;5343:61;5360:10;5371:5;5360:17;;;;;;;;;;;;;;;;;;;;:43;;;5343:16;:61::i;:::-;5314:90;;5469:20;5468:21;5460:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5549:2;5527:24;;5575:1;5566:10;;5561:150;5582:10;:17;;;;5578:1;:21;5561:150;;;5624:10;5635:1;5624:13;;;;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;5620:81;;;5684:1;5662:24;;5620:81;5601:3;;;;;;;5561:150;;;5761:1;5743:15;:19;5729:5;:34;5721:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5959:1;5912:10;5923:5;5912:17;;;;;;;;;;;;;;;;;;;;:43;;;:48;5908:792;;;5989:1;5980:5;:10;:43;;;;;5994:29;;;;;;;;;;;5980:43;5976:395;;;6240:1;6194:10;6205:5;6194:17;;;;;;;;;;;;;;;;;;;;:43;;:47;;;;5976:395;;;6326:30;6334:21;;6326:3;:7;;:30;;;;:::i;:::-;6280:10;6291:5;6280:17;;;;;;;;;;;;;;;;;;;;:43;;:76;;;;5976:395;5908:792;;;6544:21;:46;;;;;6569:21;6544:46;6540:160;;;6652:37;6660:28;6686:1;6660:21;;:25;;:28;;;;:::i;:::-;6652:3;:7;;:37;;;;:::i;:::-;6606:10;6617:5;6606:17;;;;;;;;;;;;;;;;;;;;:43;;:83;;;;6540:160;5908:792;5068:1638;;;;;;:::o;883:33::-;;;;:::o;7747:961::-;7828:26;7916:20;8010:25;8199:11;12314:18;;;;;;;;;;;12306:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12220:6;;;;;;;;;;;12219:7;12211:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7903:3;7857:10;7868:5;7857:17;;;;;;;;;;;;;;;;;;;;:43;;;:49;7828:78;;7939:61;7956:10;7967:5;7956:17;;;;;;;;;;;;;;;;;;;;:43;;;7939:16;:61::i;:::-;7916:84;;8038:10;8049:5;8038:17;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;8010:50;;8074:21;:41;;;;;8100:15;8099:16;8074:41;:66;;;;;8120:20;8119:21;8074:66;8070:632;;;8181:4;8156:10;8167:5;8156:17;;;;;;;;;;;;;;;;;;;;:22;;;:29;;;;;;;;;;;;;;;;;;8213:10;8224:5;8213:17;;;;;;;;;;;;;;;;;;;;:24;;;8199:38;;8251:11;;;;;;;;;;;:20;;:28;8272:6;8251:28;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8251:28:0;8308:11;;;;;;;;;;;8298:30;;;8321:6;8298:30;;;;;;;;;;;;;;;;;;8430:1;8398:28;8420:5;8398:10;:17;;;;:21;;:28;;;;:::i;:::-;:33;8394:219;;;8586:11;;;;;;;;;;;8573:25;;;8394:219;8070:632;;;8643:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8070:632;7747:961;;;;;:::o;1207:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;948:21::-;;;;:::o;11977:96::-;12025:4;12053:12;;;;;;;;;;;12048:18;;;;;;;;12041:25;;11977:96;:::o;3374:1688::-;3481:20;4050:23;4124:21;12434:8;;12427:3;:15;;:38;;;;;12447:18;;;;;;;;;;;12446:19;12427:38;12419:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12220:6;;;;;;;;;;;12219:7;12211:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3504:27;3521:9;3504:12;;:16;;:27;;;;:::i;:::-;3481:50;;3568:9;;3549:15;:28;;3541:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4089:25;;4076:9;:38;;4050:64;;4167:9;;4148:15;:28;4124:52;;4194:18;:38;;;;4216:16;4194:38;4186:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4427:1;4380:12;:24;4393:10;4380:24;;;;;;;;;;;;;;;:43;;;:48;4376:502;;;4471:207;;;;;;;;;4521:9;4471:207;;;;4577:10;:17;;;;4566:29;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4566:29:0;;;;4471:207;;;;4625:5;4471:207;;;;;;4658:5;4471:207;;;;;4444:12;:24;4457:10;4444:24;;;;;;;;;;;;;;;:234;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:15;4713:10;4692:32;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4692:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4376:502;;;4809:58;4857:9;4809:12;:24;4822:10;4809:24;;;;;;;;;;;;;;;:43;;;:47;;:58;;;;:::i;:::-;4763:12;:24;4776:10;4763:24;;;;;;;;;;;;;;;:43;;:104;;;;4376:502;4903:15;4888:12;:30;;;;4948:9;;4932:12;;:25;4928:81;;;4994:4;4973:18;;:25;;;;;;;;;;;;;;;;;;4928:81;5033:10;5023:32;;;5045:9;5023:32;;;;;;;;;;;;;;;;;;3374:1688;;;:::o;800:30::-;;;;;;;;;;;;;:::o;836:41::-;;;;;;;;;;;;;:::o;1401:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11475:109::-;11516:4;11546:8;;11539:3;:15;;:38;;;;;11559:18;;;;;;;;;;;11558:19;11539:38;11532:45;;11475:109;:::o;1060:116:2:-;1120:7;1148:2;1142;:8;;1135:16;;;;;;1169:2;1164;:7;1157:14;;1060:116;;;;:::o;1238:128::-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o;203:380::-;263:9;495:1;489:2;:7;485:36;;;513:1;506:8;;;;485:36;536:2;531;:7;527:11;;561:2;555;551:1;:6;;;;;;;;:12;544:20;;;;;;577:1;570:8;;203:380;;;;;:::o;665:283::-;725:7;941:2;936;:7;;;;;;;;929:14;;665:283;;;;:::o;87:12687:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\ncontract CrowdFund {\n using SafeMath for uint256;\n\n enum FreezeReason {\n CALLER_IS_TRUSTEE,\n CROWD_FUND_FAILED,\n MAJORITY_VOTING_TO_REFUND\n }\n\n FreezeReason freezeReason;\n\n struct Milestone {\n uint amount;\n uint amountVotingAgainstPayout;\n uint payoutRequestVoteDeadline;\n bool paid;\n }\n\n struct Contributor {\n uint contributionAmount;\n // array index bool reflect milestone index vote\n bool[] milestoneNoVotes;\n bool refundVote;\n bool refunded;\n }\n\n event Deposited(address indexed payee, uint256 weiAmount);\n event Withdrawn(address indexed payee, uint256 weiAmount);\n\n bool public frozen;\n bool public isRaiseGoalReached;\n bool public immediateFirstMilestonePayout;\n uint public milestoneVotingPeriod;\n uint public deadline;\n uint public raiseGoal;\n uint public amountRaised;\n uint public frozenBalance;\n uint public minimumContributionAmount;\n uint public amountVotingForRefund;\n address public beneficiary;\n mapping(address => Contributor) public contributors;\n address[] public contributorList;\n // authorized addresses to ask for milestone payouts\n address[] public trustees;\n // constructor ensures that all values combined equal raiseGoal\n Milestone[] public milestones;\n\n constructor(\n uint _raiseGoal,\n address _beneficiary,\n address[] _trustees,\n uint[] _milestones,\n uint _deadline,\n uint _milestoneVotingPeriod,\n bool _immediateFirstMilestonePayout)\n public {\n require(_raiseGoal >= 1 ether, \"Raise goal is smaller than 1 ether\");\n require(_trustees.length >= 1 && _trustees.length <= 10, \"Trustee addresses must be at least 1 and not more than 10\");\n require(_milestones.length >= 1 && _milestones.length <= 10, \"Milestones must be at least 1 and not more than 10\");\n // TODO - require minimum duration\n // TODO - require minimum milestone voting period\n\n // ensure that cumalative milestone payouts equal raiseGoalAmount\n uint milestoneTotal = 0;\n for (uint i = 0; i < _milestones.length; i++) {\n uint milestoneAmount = _milestones[i];\n require(milestoneAmount > 0, \"Milestone amount must be greater than 0\");\n milestoneTotal = milestoneTotal.add(milestoneAmount);\n milestones.push(Milestone({\n amount: milestoneAmount,\n payoutRequestVoteDeadline: 0,\n amountVotingAgainstPayout: 0,\n paid: false\n }));\n }\n require(milestoneTotal == _raiseGoal, \"Milestone total must equal raise goal\");\n // TODO - increase minimum contribution amount is 0.1% of raise goal\n minimumContributionAmount = 1;\n raiseGoal = _raiseGoal;\n beneficiary = _beneficiary;\n trustees = _trustees;\n deadline = now + _deadline;\n milestoneVotingPeriod = _milestoneVotingPeriod;\n immediateFirstMilestonePayout = _immediateFirstMilestonePayout;\n isRaiseGoalReached = false;\n amountVotingForRefund = 0;\n frozen = false;\n // assumes no ether contributed as part of contract deployment\n amountRaised = 0;\n }\n\n function contribute() public payable onlyOnGoing onlyUnfrozen {\n // don't allow overfunding\n uint newAmountRaised = amountRaised.add(msg.value);\n require(newAmountRaised <= raiseGoal, \"Contribution exceeds the raise goal.\");\n // require minimumContributionAmount (set during construction)\n // there may be a special case where just enough has been raised so that the remaining raise amount is just smaller than the minimumContributionAmount\n // in this case, allow that the msg.value + amountRaised will equal the raiseGoal.\n // This makes sure that we don't enter a scenario where a proposal can never be fully funded\n bool greaterThanMinimum = msg.value >= minimumContributionAmount;\n bool exactlyRaiseGoal = newAmountRaised == raiseGoal;\n require(greaterThanMinimum || exactlyRaiseGoal, \"msg.value greater than minimum, or msg.value == remaining amount to be raised\");\n // in cases where an address pays > 1 times\n if (contributors[msg.sender].contributionAmount == 0) {\n contributors[msg.sender] = Contributor({\n contributionAmount: msg.value,\n milestoneNoVotes: new bool[](milestones.length),\n refundVote: false,\n refunded: false\n });\n contributorList.push(msg.sender);\n }\n else {\n contributors[msg.sender].contributionAmount = contributors[msg.sender].contributionAmount.add(msg.value);\n }\n\n amountRaised = newAmountRaised;\n if (amountRaised == raiseGoal) {\n isRaiseGoalReached = true;\n }\n emit Deposited(msg.sender, msg.value);\n }\n\n function requestMilestonePayout (uint index) public onlyTrustee onlyRaised onlyUnfrozen {\n bool milestoneAlreadyPaid = milestones[index].paid;\n bool voteDeadlineHasPassed = milestones[index].payoutRequestVoteDeadline > now;\n bool majorityAgainstPayout = isMajorityVoting(milestones[index].amountVotingAgainstPayout);\n // prevent requesting paid milestones\n require(!milestoneAlreadyPaid, \"Milestone already paid\");\n\n int lowestIndexPaid = -1;\n for (uint i = 0; i < milestones.length; i++) {\n if (milestones[i].paid) {\n lowestIndexPaid = int(i);\n }\n }\n\n require(index == uint(lowestIndexPaid + 1), \"Milestone request must be for first unpaid milestone\");\n // begin grace period for contributors to vote no on milestone payout\n if (milestones[index].payoutRequestVoteDeadline == 0) {\n if (index == 0 && immediateFirstMilestonePayout) {\n // make milestone payouts immediately avtheailable for the first milestone if immediateFirstMilestonePayout is set during consutrction\n milestones[index].payoutRequestVoteDeadline = 1;\n } else {\n milestones[index].payoutRequestVoteDeadline = now.add(milestoneVotingPeriod);\n }\n }\n // if the payoutRequestVoteDealine has passed and majority voted against it previously, begin the grace period with 2 times the deadline\n else if (voteDeadlineHasPassed && majorityAgainstPayout) {\n milestones[index].payoutRequestVoteDeadline = now.add(milestoneVotingPeriod.mul(2));\n }\n }\n\n function voteMilestonePayout(uint index, bool vote) public onlyContributor onlyRaised onlyUnfrozen {\n bool existingMilestoneNoVote = contributors[msg.sender].milestoneNoVotes[index];\n require(existingMilestoneNoVote != vote, \"Vote value must be different than existing vote state\");\n bool milestoneVotingStarted = milestones[index].payoutRequestVoteDeadline > 0;\n bool votePeriodHasEnded = milestones[index].payoutRequestVoteDeadline <= now;\n bool onGoingVote = milestoneVotingStarted && !votePeriodHasEnded;\n require(onGoingVote, \"Milestone voting must be open\");\n contributors[msg.sender].milestoneNoVotes[index] = vote;\n if (!vote) {\n milestones[index].amountVotingAgainstPayout = milestones[index].amountVotingAgainstPayout.sub(contributors[msg.sender].contributionAmount);\n } else {\n milestones[index].amountVotingAgainstPayout = milestones[index].amountVotingAgainstPayout.add(contributors[msg.sender].contributionAmount);\n }\n }\n\n function payMilestonePayout(uint index) public onlyRaised onlyUnfrozen {\n bool voteDeadlineHasPassed = milestones[index].payoutRequestVoteDeadline < now;\n bool majorityVotedNo = isMajorityVoting(milestones[index].amountVotingAgainstPayout);\n bool milestoneAlreadyPaid = milestones[index].paid;\n if (voteDeadlineHasPassed && !majorityVotedNo && !milestoneAlreadyPaid) {\n milestones[index].paid = true;\n uint amount = milestones[index].amount;\n beneficiary.transfer(amount);\n emit Withdrawn(beneficiary, amount);\n // if the final milestone just got paid\n if (milestones.length.sub(index) == 1) {\n // useful to selfdestruct in case funds were forcefully deposited into contract. otherwise they are lost.\n selfdestruct(beneficiary);\n }\n } else {\n revert(\"required conditions were not satisfied\");\n }\n }\n\n function voteRefund(bool vote) public onlyContributor onlyRaised onlyUnfrozen {\n bool refundVote = contributors[msg.sender].refundVote;\n require(vote != refundVote, \"Existing vote state is identical to vote value\");\n contributors[msg.sender].refundVote = vote;\n if (!vote) {\n amountVotingForRefund = amountVotingForRefund.sub(contributors[msg.sender].contributionAmount);\n } else {\n amountVotingForRefund = amountVotingForRefund.add(contributors[msg.sender].contributionAmount);\n }\n }\n\n function refund() public onlyUnfrozen {\n bool callerIsTrustee = isCallerTrustee();\n bool crowdFundFailed = isFailed();\n bool majorityVotingToRefund = isMajorityVoting(amountVotingForRefund);\n require(callerIsTrustee || crowdFundFailed || majorityVotingToRefund, \"Required conditions for refund are not met\");\n if (callerIsTrustee) {\n freezeReason = FreezeReason.CALLER_IS_TRUSTEE;\n } else if (crowdFundFailed) {\n freezeReason = FreezeReason.CROWD_FUND_FAILED;\n } else {\n freezeReason = FreezeReason.MAJORITY_VOTING_TO_REFUND;\n }\n frozen = true;\n frozenBalance = address(this).balance;\n }\n\n // anyone can refund a contributor if a crowdfund has been frozen\n function withdraw(address refundAddress) public onlyFrozen {\n require(frozen, \"CrowdFund is not frozen\");\n bool isRefunded = contributors[refundAddress].refunded;\n require(!isRefunded, \"Specified address is already refunded\");\n contributors[refundAddress].refunded = true;\n uint contributionAmount = contributors[refundAddress].contributionAmount;\n uint amountToRefund = contributionAmount.mul(address(this).balance).div(frozenBalance);\n refundAddress.transfer(amountToRefund);\n emit Withdrawn(refundAddress, amountToRefund);\n }\n\n // it may be useful to selfdestruct in case funds were force deposited to the contract\n function destroy() public onlyTrustee onlyFrozen {\n for (uint i = 0; i < contributorList.length; i++) {\n address contributorAddress = contributorList[i];\n if (!contributors[contributorAddress].refunded) {\n revert(\"At least one contributor has not yet refunded\");\n }\n }\n selfdestruct(beneficiary);\n }\n\n function isMajorityVoting(uint valueVoting) public view returns (bool) {\n return valueVoting.mul(2) > amountRaised;\n }\n\n function isCallerTrustee() public view returns (bool) {\n for (uint i = 0; i < trustees.length; i++) {\n if (msg.sender == trustees[i]) {\n return true;\n }\n }\n return false;\n }\n\n function isFailed() public view returns (bool) {\n return now >= deadline && !isRaiseGoalReached;\n }\n\n function getContributorMilestoneVote(address contributorAddress, uint milestoneIndex) public view returns (bool) { \n return contributors[contributorAddress].milestoneNoVotes[milestoneIndex];\n }\n\n function getContributorContributionAmount(address contributorAddress) public view returns (uint) {\n return contributors[contributorAddress].contributionAmount;\n }\n\n function getFreezeReason() public view returns (uint) {\n return uint(freezeReason);\n }\n\n modifier onlyFrozen() {\n require(frozen, \"CrowdFund is not frozen\");\n _;\n }\n\n modifier onlyUnfrozen() {\n require(!frozen, \"CrowdFund is frozen\");\n _;\n }\n\n modifier onlyRaised() {\n require(isRaiseGoalReached, \"Raise goal is not reached\");\n _;\n }\n\n modifier onlyOnGoing() {\n require(now <= deadline && !isRaiseGoalReached, \"CrowdFund is not ongoing\");\n _;\n }\n\n modifier onlyContributor() {\n require(contributors[msg.sender].contributionAmount != 0, \"Caller is not a contributor\");\n _;\n }\n\n modifier onlyTrustee() {\n require(isCallerTrustee(), \"Caller is not a trustee\");\n _;\n }\n\n}\n", - "sourcePath": "/Users/will/Documents/grant-monorepo/contract/contracts/CrowdFund.sol", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620032ee380380620032ee833981018060405281019080805190602001909291908051906020019092919080518201929190602001805182019291906020018051906020019092919080519060200190929190805190602001909291905050506000806000670de0b6b3a76400008a1015151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526169736520676f616c20697320736d616c6c6572207468616e20312065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001885110158015620001365750600a885111155b1515620001d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472757374656520616464726573736573206d757374206265206174206c656181526020017f7374203120616e64206e6f74206d6f7265207468616e2031300000000000000081525060400191505060405180910390fd5b6001875110158015620001e65750600a875111155b151562000281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4d696c6573746f6e6573206d757374206265206174206c65617374203120616e81526020017f64206e6f74206d6f7265207468616e203130000000000000000000000000000081525060400191505060405180910390fd5b60009250600091505b865182101562000416578682815181101515620002a357fe5b9060200190602002015190506000811115156200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d696c6573746f6e6520616d6f756e74206d757374206265206772656174657281526020017f207468616e20300000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6200037181846200059b6401000000000262002ae5179091906401000000009004565b9250600c6080604051908101604052808381526020016000815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050505081806001019250506200028a565b8983141515620004b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736581526020017f20676f616c00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60016006819055508960038190555088600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600b90805190602001906200051c929190620005b8565b508542016002819055508460018190555083600060036101000a81548160ff02191690831515021790555060008060026101000a81548160ff021916908315150217905550600060078190555060008060016101000a81548160ff0219169083151502179055506000600481905550505050505050505050506200068d565b60008183019050828110151515620005af57fe5b80905092915050565b82805482825590600052602060002090810192821562000634579160200282015b82811115620006335782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005d9565b5b50905062000643919062000647565b5090565b6200068a91905b808211156200068657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200064e565b5090565b90565b612c51806200069d6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e6f565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e9b565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebc565b005b34801561041557600080fd5b5061041e611231565b005b34801561042c57600080fd5b5061044d600480360381019080803515159060200190929190505050611445565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061182a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611868565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118b4565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ba565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b3d565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611bb6565b005b3480156105f357600080fd5b506105fc61206b565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612071565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061244a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1612488565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec61248e565b6040518082815260200191505060405180910390f35b61070a6124af565b005b34801561071857600080fd5b50610721612a34565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a47565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a5a565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612aa6565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612acc90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e67565b8415610e6657610e41600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e2157fe5b906000526020600020906004020160010154612ae590919063ffffffff16565b600c87815481101515610e5057fe5b9060005260206000209060040201600101819055505b5b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610eb4600284612b0190919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506111946005546111863073ffffffffffffffffffffffffffffffffffffffff163185612b0190919063ffffffff16565b612b3990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111dc573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112c2610850565b92506112cc612aa6565b91506112d9600754610e9b565b905082806112e45750815b806112ec5750805b1515611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113b45760008060006101000a81548160ff021916908360028111156113aa57fe5b0217905550611407565b81156113e25760016000806101000a81548160ff021916908360028111156113d857fe5b0217905550611406565b60026000806101000a81548160ff0219169083600281111561140057fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611501576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615151561160a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117c1576117b6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612acc90919063ffffffff16565b600781905550611826565b81156118255761181e600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ae590919063ffffffff16565b6007819055505b5b5050565b600b8181548110151561183957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118c5610850565b1515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611b0257600a828154811015156119de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119c2565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8e57fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bc6610850565b1515611c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d5257fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d8357fe5b906000526020600020906004020160020154119350611dc1600c87815481101515611daa57fe5b906000526020600020906004020160010154610e9b565b925084151515611e39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611eb257600c81815481101515611e7d57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611ea5578091505b8080600101915050611e61565b6001820186141515611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f6357fe5b906000526020600020906004020160020154141561200657600086148015611f975750600060039054906101000a900460ff165b15611fc7576001600c87815481101515611fad57fe5b906000526020600020906004020160020181905550612001565b611fdc60015442612ae590919063ffffffff16565b600c87815481101515611feb57fe5b9060005260206000209060040201600201819055505b612063565b8380156120105750825b156120625761203d61202e6002600154612b0190919063ffffffff16565b42612ae590919063ffffffff16565b600c8781548110151561204c57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561219057fe5b9060005260206000209060040201600201541093506121ce600c868154811015156121b757fe5b906000526020600020906004020160010154610e9b565b9250600c858154811015156121df57fe5b906000526020600020906004020160030160009054906101000a900460ff16915083801561220b575082155b8015612215575081155b156123af576001600c8681548110151561222b57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561226257fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122de573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161236986600c80549050612acc90919063ffffffff16565b14156123aa57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612443565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561245957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff1660028111156124aa57fe5b905090565b600080600060025442111580156124d35750600060029054906101000a900460ff16155b1515612547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125e134600454612ae590919063ffffffff16565b92506003548311151515612683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061269b5750805b151561275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561291657608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127ec5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612867929190612b4f565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129b2565b61296b34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ae590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129e1576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a6957fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ac75750600060029054906101000a900460ff16155b905090565b6000828211151515612ada57fe5b818303905092915050565b60008183019050828110151515612af857fe5b80905092915050565b600080831415612b145760009050612b33565b8183029050818382811515612b2557fe5b04141515612b2f57fe5b8090505b92915050565b60008183811515612b4657fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612be45791602002820160005b83821115612bb557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b78565b8015612be25782816101000a81549060ff0219169055600101602081600001049283019260010302612bb5565b505b509050612bf19190612bf5565b5090565b612c2291905b80821115612c1e57600081816101000a81549060ff021916905550600101612bfb565b5090565b905600a165627a7a72305820b725d6ed533ba3c21fcb343e8c393171f8c562c1668224983554c10c88ce87060029", + "deployedBytecode": "0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e6f565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e9b565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebc565b005b34801561041557600080fd5b5061041e611231565b005b34801561042c57600080fd5b5061044d600480360381019080803515159060200190929190505050611445565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061182a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611868565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118b4565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ba565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b3d565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611bb6565b005b3480156105f357600080fd5b506105fc61206b565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612071565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061244a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1612488565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec61248e565b6040518082815260200191505060405180910390f35b61070a6124af565b005b34801561071857600080fd5b50610721612a34565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a47565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a5a565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612aa6565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612acc90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e67565b8415610e6657610e41600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e2157fe5b906000526020600020906004020160010154612ae590919063ffffffff16565b600c87815481101515610e5057fe5b9060005260206000209060040201600101819055505b5b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610eb4600284612b0190919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506111946005546111863073ffffffffffffffffffffffffffffffffffffffff163185612b0190919063ffffffff16565b612b3990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111dc573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112c2610850565b92506112cc612aa6565b91506112d9600754610e9b565b905082806112e45750815b806112ec5750805b1515611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113b45760008060006101000a81548160ff021916908360028111156113aa57fe5b0217905550611407565b81156113e25760016000806101000a81548160ff021916908360028111156113d857fe5b0217905550611406565b60026000806101000a81548160ff0219169083600281111561140057fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611501576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615151561160a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117c1576117b6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612acc90919063ffffffff16565b600781905550611826565b81156118255761181e600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ae590919063ffffffff16565b6007819055505b5b5050565b600b8181548110151561183957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118c5610850565b1515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611b0257600a828154811015156119de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119c2565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8e57fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bc6610850565b1515611c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d5257fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d8357fe5b906000526020600020906004020160020154119350611dc1600c87815481101515611daa57fe5b906000526020600020906004020160010154610e9b565b925084151515611e39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611eb257600c81815481101515611e7d57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611ea5578091505b8080600101915050611e61565b6001820186141515611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f6357fe5b906000526020600020906004020160020154141561200657600086148015611f975750600060039054906101000a900460ff165b15611fc7576001600c87815481101515611fad57fe5b906000526020600020906004020160020181905550612001565b611fdc60015442612ae590919063ffffffff16565b600c87815481101515611feb57fe5b9060005260206000209060040201600201819055505b612063565b8380156120105750825b156120625761203d61202e6002600154612b0190919063ffffffff16565b42612ae590919063ffffffff16565b600c8781548110151561204c57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561219057fe5b9060005260206000209060040201600201541093506121ce600c868154811015156121b757fe5b906000526020600020906004020160010154610e9b565b9250600c858154811015156121df57fe5b906000526020600020906004020160030160009054906101000a900460ff16915083801561220b575082155b8015612215575081155b156123af576001600c8681548110151561222b57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561226257fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122de573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161236986600c80549050612acc90919063ffffffff16565b14156123aa57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612443565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561245957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff1660028111156124aa57fe5b905090565b600080600060025442111580156124d35750600060029054906101000a900460ff16155b1515612547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125e134600454612ae590919063ffffffff16565b92506003548311151515612683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061269b5750805b151561275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561291657608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127ec5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612867929190612b4f565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129b2565b61296b34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ae590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129e1576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a6957fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ac75750600060029054906101000a900460ff16155b905090565b6000828211151515612ada57fe5b818303905092915050565b60008183019050828110151515612af857fe5b80905092915050565b600080831415612b145760009050612b33565b8183029050818382811515612b2557fe5b04141515612b2f57fe5b8090505b92915050565b60008183811515612b4657fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612be45791602002820160005b83821115612bb557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b78565b8015612be25782816101000a81549060ff0219169055600101602081600001049283019260010302612bb5565b505b509050612bf19190612bf5565b5090565b612c2291905b80821115612c1e57600081816101000a81549060ff021916905550600101612bfb565b5090565b905600a165627a7a72305820b725d6ed533ba3c21fcb343e8c393171f8c562c1668224983554c10c88ce87060029", + "sourceMap": "87:12715:0:-;;;1437:1931;8:9:-1;5:2;;;30:1;27;20:12;5:2;1437:1931:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2194:19;2232:6;2287:20;1711:7;1697:10;:21;;1689:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1795:1;1775:9;:16;:21;;:47;;;;;1820:2;1800:9;:16;:22;;1775:47;1767:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1924:1;1902:11;:18;:23;;:51;;;;;1951:2;1929:11;:18;:24;;1902:51;1894:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2216:1;2194:23;;2241:1;2232:10;;2227:477;2248:11;:18;2244:1;:22;2227:477;;;2310:11;2322:1;2310:14;;;;;;;;;;;;;;;;;;2287:37;;2364:1;2346:15;:19;2338:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:35;2459:15;2440:14;:18;;;;;;:35;;;;;:::i;:::-;2423:52;;2489:10;2505:187;;;;;;;;;2541:15;2505:187;;;;2647:1;2505:187;;;;2601:1;2505:187;;;;2672:5;2505:187;;;;;2489:204;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2489:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2268:3;;;;;;;2227:477;;;2739:10;2721:14;:28;2713:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2906:1;2878:25;:29;;;;2929:10;2917:9;:22;;;;2963:12;2949:11;;:26;;;;;;;;;;;;;;;;;;2996:9;2985:8;:20;;;;;;;;;;;;:::i;:::-;;3032:9;3026:3;:15;3015:8;:26;;;;3075:22;3051:21;:46;;;;3139:30;3107:29;;:62;;;;;;;;;;;;;;;;;;3200:5;3179:18;;:26;;;;;;;;;;;;;;;;;;3239:1;3215:21;:25;;;;3259:5;3250:6;;:14;;;;;;;;;;;;;;;;;;3360:1;3345:12;:16;;;;1437:1931;;;;;;;;;;87:12715;;1238:128:2;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o;87:12715:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "87:12715:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;776:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;776:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1079:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1079:33:0;;;;;;;;;;;;;;;;;;;;;;;1150:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1150:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11263:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11263:234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1005:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1005:25:0;;;;;;;;;;;;;;;;;;;;;;;922:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;922:20:0;;;;;;;;;;;;;;;;;;;;;;;6712:1039;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6712:1039:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1036:37:0;;;;;;;;;;;;;;;;;;;;;;;1118:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1118:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11129:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11129:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10068:587;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10068:587:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9299:693;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9299:693:0;;;;;;8724:569;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8724:569:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1302:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11827:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11827:172:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;975:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;975:24:0;;;;;;;;;;;;;;;;;;;;;;;10752:371;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10752:371:0;;;;;;11618:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11618:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5068:1638;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5068:1638:0;;;;;;;;;;;;;;;;;;;;;;;;;;883:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;883:33:0;;;;;;;;;;;;;;;;;;;;;;;7757:961;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7757:961:0;;;;;;;;;;;;;;;;;;;;;;;;;;1207:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1207:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;948:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;948:21:0;;;;;;;;;;;;;;;;;;;;;;;12005:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12005:96:0;;;;;;;;;;;;;;;;;;;;;;;3374:1688;;;;;;800:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;800:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;836:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;836:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11503:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11503:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;776:18;;;;;;;;;;;;;:::o;1079:33::-;;;;:::o;1150:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11263:234::-;11311:4;11332:6;11341:1;11332:10;;11327:142;11348:8;:15;;;;11344:1;:19;11327:142;;;11402:8;11411:1;11402:11;;;;;;;;;;;;;;;;;;;;;;;;;;;11388:25;;:10;:25;;;11384:75;;;11440:4;11433:11;;;;11384:75;11365:3;;;;;;;11327:142;;;11485:5;11478:12;;11263:234;;;:::o;1005:25::-;;;;:::o;922:20::-;;;;:::o;6712:1039::-;6821:28;7017:27;7104:23;7190:16;12638:1;12591:12;:24;12604:10;12591:24;;;;;;;;;;;;;;;:43;;;:48;;12583:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12342:18;;;;;;;;;;;12334:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6852:12;:24;6865:10;6852:24;;;;;;;;;;;;;;;:41;;6894:5;6852:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6821:79;;6945:4;6918:31;;:23;:31;;;;6910:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:1;7047:10;7058:5;7047:17;;;;;;;;;;;;;;;;;;;;:43;;;:47;7017:77;;7177:3;7130:10;7141:5;7130:17;;;;;;;;;;;;;;;;;;;;:43;;;:50;;7104:76;;7209:22;:45;;;;;7236:18;7235:19;7209:45;7190:64;;7272:11;7264:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7378:4;7327:12;:24;7340:10;7327:24;;;;;;;;;;;;;;;:41;;7369:5;7327:48;;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;7397:4;7396:5;7392:353;;;7463:92;7511:12;:24;7524:10;7511:24;;;;;;;;;;;;;;;:43;;;7463:10;7474:5;7463:17;;;;;;;;;;;;;;;;;;;;:43;;;:47;;:92;;;;:::i;:::-;7417:10;7428:5;7417:17;;;;;;;;;;;;;;;;;;;;:43;;:138;;;;7392:353;;;7576:4;7572:173;;;7642:92;7690:12;:24;7703:10;7690:24;;;;;;;;;;;;;;;:43;;;7642:10;7653:5;7642:17;;;;;;;;;;;;;;;;;;;;:43;;;:47;;:92;;;;:::i;:::-;7596:10;7607:5;7596:17;;;;;;;;;;;;;;;;;;;;:43;;:138;;;;7572:173;7392:353;6712:1039;;;;;;:::o;1036:37::-;;;;:::o;1118:26::-;;;;;;;;;;;;;:::o;11129:128::-;11194:4;11238:12;;11217:18;11233:1;11217:11;:15;;:18;;;;:::i;:::-;:33;11210:40;;11129:128;;;:::o;10068:587::-;10189:15;10377:23;10459:19;12147:6;;;;;;;;;;;12139:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10145:6;;;;;;;;;;;10137:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10207:12;:27;10220:13;10207:27;;;;;;;;;;;;;;;:36;;;;;;;;;;;;10189:54;;10262:10;10261:11;10253:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10363:4;10324:12;:27;10337:13;10324:27;;;;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;10403:12;:27;10416:13;10403:27;;;;;;;;;;;;;;;:46;;;10377:72;;10481:64;10531:13;;10481:45;10512:4;10504:21;;;10481:18;:22;;:45;;;;:::i;:::-;:49;;:64;;;;:::i;:::-;10459:86;;10555:13;:22;;:38;10578:14;10555:38;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10555:38:0;10618:13;10608:40;;;10633:14;10608:40;;;;;;;;;;;;;;;;;;10068:587;;;;:::o;9299:693::-;9347:20;9397;9440:27;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9370:17;:15;:17::i;:::-;9347:40;;9420:10;:8;:10::i;:::-;9397:33;;9470:39;9487:21;;9470:16;:39::i;:::-;9440:69;;9527:15;:34;;;;9546:15;9527:34;:60;;;;9565:22;9527:60;9519:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9648:15;9644:272;;;9694:30;9679:12;;:45;;;;;;;;;;;;;;;;;;;;;;;;9644:272;;;9745:15;9741:175;;;9791:30;9776:12;;:45;;;;;;;;;;;;;;;;;;;;;;;;9741:175;;;9867:38;9852:12;;:53;;;;;;;;;;;;;;;;;;;;;;;;9741:175;9644:272;9934:4;9925:6;;:13;;;;;;;;;;;;;;;;;;9972:4;9964:21;;;9948:13;:37;;;;9299:693;;;:::o;8724:569::-;8812:15;12638:1;12591:12;:24;12604:10;12591:24;;;;;;;;;;;;;;;:43;;;:48;;12583:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12342:18;;;;;;;;;;;12334:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8830:12;:24;8843:10;8830:24;;;;;;;;;;;;;;;:35;;;;;;;;;;;;8812:53;;8891:10;8883:18;;:4;:18;;;;8875:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9000:4;8962:12;:24;8975:10;8962:24;;;;;;;;;;;;;;;:35;;;:42;;;;;;;;;;;;;;;;;;9019:4;9018:5;9014:273;;;9063:70;9089:12;:24;9102:10;9089:24;;;;;;;;;;;;;;;:43;;;9063:21;;:25;;:70;;;;:::i;:::-;9039:21;:94;;;;9014:273;;;9162:4;9158:129;;;9206:70;9232:12;:24;9245:10;9232:24;;;;;;;;;;;;;;;:43;;;9206:21;;:25;;:70;;;;:::i;:::-;9182:21;:94;;;;9158:129;9014:273;8724:569;;:::o;1302:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11827:172::-;11918:4;11941:12;:32;11954:18;11941:32;;;;;;;;;;;;;;;:51;;;11934:58;;11827:172;;;:::o;975:24::-;;;;:::o;10752:371::-;10816:6;10875:26;12736:17;:15;:17::i;:::-;12728:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12147:6;;;;;;;;;;;12139:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10825:1;10816:10;;10811:271;10832:15;:22;;;;10828:1;:26;10811:271;;;10904:15;10920:1;10904:18;;;;;;;;;;;;;;;;;;;;;;;;;;;10875:47;;10941:12;:32;10954:18;10941:32;;;;;;;;;;;;;;;:41;;;;;;;;;;;;10940:42;10936:136;;;11002:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10936:136;10856:3;;;;;;;10811:271;;;11104:11;;;;;;;;;;;11091:25;;;11618:203;11725:4;11749:12;:32;11762:18;11749:32;;;;;;;;;;;;;;;:49;;11799:14;11749:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11742:72;;11618:203;;;;:::o;5068:1638::-;5166:25;5226:26;5314;5527:19;5566:6;12736:17;:15;:17::i;:::-;12728:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12342:18;;;;;;;;;;;12334:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:10;5205:5;5194:17;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;5166:50;;5301:3;5255:10;5266:5;5255:17;;;;;;;;;;;;;;;;;;;;:43;;;:49;5226:78;;5343:61;5360:10;5371:5;5360:17;;;;;;;;;;;;;;;;;;;;:43;;;5343:16;:61::i;:::-;5314:90;;5469:20;5468:21;5460:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5549:2;5527:24;;5575:1;5566:10;;5561:150;5582:10;:17;;;;5578:1;:21;5561:150;;;5624:10;5635:1;5624:13;;;;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;5620:81;;;5684:1;5662:24;;5620:81;5601:3;;;;;;;5561:150;;;5761:1;5743:15;:19;5729:5;:34;5721:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5959:1;5912:10;5923:5;5912:17;;;;;;;;;;;;;;;;;;;;:43;;;:48;5908:792;;;5989:1;5980:5;:10;:43;;;;;5994:29;;;;;;;;;;;5980:43;5976:395;;;6240:1;6194:10;6205:5;6194:17;;;;;;;;;;;;;;;;;;;;:43;;:47;;;;5976:395;;;6326:30;6334:21;;6326:3;:7;;:30;;;;:::i;:::-;6280:10;6291:5;6280:17;;;;;;;;;;;;;;;;;;;;:43;;:76;;;;5976:395;5908:792;;;6544:21;:46;;;;;6569:21;6544:46;6540:160;;;6652:37;6660:28;6686:1;6660:21;;:25;;:28;;;;:::i;:::-;6652:3;:7;;:37;;;;:::i;:::-;6606:10;6617:5;6606:17;;;;;;;;;;;;;;;;;;;;:43;;:83;;;;6540:160;5908:792;5068:1638;;;;;;:::o;883:33::-;;;;:::o;7757:961::-;7838:26;7926:20;8020:25;8209:11;12342:18;;;;;;;;;;;12334:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7913:3;7867:10;7878:5;7867:17;;;;;;;;;;;;;;;;;;;;:43;;;:49;7838:78;;7949:61;7966:10;7977:5;7966:17;;;;;;;;;;;;;;;;;;;;:43;;;7949:16;:61::i;:::-;7926:84;;8048:10;8059:5;8048:17;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;8020:50;;8084:21;:41;;;;;8110:15;8109:16;8084:41;:66;;;;;8130:20;8129:21;8084:66;8080:632;;;8191:4;8166:10;8177:5;8166:17;;;;;;;;;;;;;;;;;;;;:22;;;:29;;;;;;;;;;;;;;;;;;8223:10;8234:5;8223:17;;;;;;;;;;;;;;;;;;;;:24;;;8209:38;;8261:11;;;;;;;;;;;:20;;:28;8282:6;8261:28;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8261:28:0;8318:11;;;;;;;;;;;8308:30;;;8331:6;8308:30;;;;;;;;;;;;;;;;;;8440:1;8408:28;8430:5;8408:10;:17;;;;:21;;:28;;;;:::i;:::-;:33;8404:219;;;8596:11;;;;;;;;;;;8583:25;;;8404:219;8080:632;;;8653:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8080:632;7757:961;;;;;:::o;1207:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;948:21::-;;;;:::o;12005:96::-;12053:4;12081:12;;;;;;;;;;;12076:18;;;;;;;;12069:25;;12005:96;:::o;3374:1688::-;3481:20;4050:23;4124:21;12462:8;;12455:3;:15;;:38;;;;;12475:18;;;;;;;;;;;12474:19;12455:38;12447:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3504:27;3521:9;3504:12;;:16;;:27;;;;:::i;:::-;3481:50;;3568:9;;3549:15;:28;;3541:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4089:25;;4076:9;:38;;4050:64;;4167:9;;4148:15;:28;4124:52;;4194:18;:38;;;;4216:16;4194:38;4186:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4427:1;4380:12;:24;4393:10;4380:24;;;;;;;;;;;;;;;:43;;;:48;4376:502;;;4471:207;;;;;;;;;4521:9;4471:207;;;;4577:10;:17;;;;4566:29;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4566:29:0;;;;4471:207;;;;4625:5;4471:207;;;;;;4658:5;4471:207;;;;;4444:12;:24;4457:10;4444:24;;;;;;;;;;;;;;;:234;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:15;4713:10;4692:32;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4692:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4376:502;;;4809:58;4857:9;4809:12;:24;4822:10;4809:24;;;;;;;;;;;;;;;:43;;;:47;;:58;;;;:::i;:::-;4763:12;:24;4776:10;4763:24;;;;;;;;;;;;;;;:43;;:104;;;;4376:502;4903:15;4888:12;:30;;;;4948:9;;4932:12;;:25;4928:81;;;4994:4;4973:18;;:25;;;;;;;;;;;;;;;;;;4928:81;5033:10;5023:32;;;5045:9;5023:32;;;;;;;;;;;;;;;;;;3374:1688;;;:::o;800:30::-;;;;;;;;;;;;;:::o;836:41::-;;;;;;;;;;;;;:::o;1401:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11503:109::-;11544:4;11574:8;;11567:3;:15;;:38;;;;;11587:18;;;;;;;;;;;11586:19;11567:38;11560:45;;11503:109;:::o;1060:116:2:-;1120:7;1148:2;1142;:8;;1135:16;;;;;;1169:2;1164;:7;1157:14;;1060:116;;;;:::o;1238:128::-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o;203:380::-;263:9;495:1;489:2;:7;485:36;;;513:1;506:8;;;;485:36;536:2;531;:7;527:11;;561:2;555;551:1;:6;;;;;;;;:12;544:20;;;;;;577:1;570:8;;203:380;;;;;:::o;665:283::-;725:7;941:2;936;:7;;;;;;;;929:14;;665:283;;;;:::o;87:12715:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\ncontract CrowdFund {\n using SafeMath for uint256;\n\n enum FreezeReason {\n CALLER_IS_TRUSTEE,\n CROWD_FUND_FAILED,\n MAJORITY_VOTING_TO_REFUND\n }\n\n FreezeReason freezeReason;\n\n struct Milestone {\n uint amount;\n uint amountVotingAgainstPayout;\n uint payoutRequestVoteDeadline;\n bool paid;\n }\n\n struct Contributor {\n uint contributionAmount;\n // array index bool reflect milestone index vote\n bool[] milestoneNoVotes;\n bool refundVote;\n bool refunded;\n }\n\n event Deposited(address indexed payee, uint256 weiAmount);\n event Withdrawn(address indexed payee, uint256 weiAmount);\n\n bool public frozen;\n bool public isRaiseGoalReached;\n bool public immediateFirstMilestonePayout;\n uint public milestoneVotingPeriod;\n uint public deadline;\n uint public raiseGoal;\n uint public amountRaised;\n uint public frozenBalance;\n uint public minimumContributionAmount;\n uint public amountVotingForRefund;\n address public beneficiary;\n mapping(address => Contributor) public contributors;\n address[] public contributorList;\n // authorized addresses to ask for milestone payouts\n address[] public trustees;\n // constructor ensures that all values combined equal raiseGoal\n Milestone[] public milestones;\n\n constructor(\n uint _raiseGoal,\n address _beneficiary,\n address[] _trustees,\n uint[] _milestones,\n uint _deadline,\n uint _milestoneVotingPeriod,\n bool _immediateFirstMilestonePayout)\n public {\n require(_raiseGoal >= 1 ether, \"Raise goal is smaller than 1 ether\");\n require(_trustees.length >= 1 && _trustees.length <= 10, \"Trustee addresses must be at least 1 and not more than 10\");\n require(_milestones.length >= 1 && _milestones.length <= 10, \"Milestones must be at least 1 and not more than 10\");\n // TODO - require minimum duration\n // TODO - require minimum milestone voting period\n\n // ensure that cumalative milestone payouts equal raiseGoalAmount\n uint milestoneTotal = 0;\n for (uint i = 0; i < _milestones.length; i++) {\n uint milestoneAmount = _milestones[i];\n require(milestoneAmount > 0, \"Milestone amount must be greater than 0\");\n milestoneTotal = milestoneTotal.add(milestoneAmount);\n milestones.push(Milestone({\n amount: milestoneAmount,\n payoutRequestVoteDeadline: 0,\n amountVotingAgainstPayout: 0,\n paid: false\n }));\n }\n require(milestoneTotal == _raiseGoal, \"Milestone total must equal raise goal\");\n // TODO - increase minimum contribution amount is 0.1% of raise goal\n minimumContributionAmount = 1;\n raiseGoal = _raiseGoal;\n beneficiary = _beneficiary;\n trustees = _trustees;\n deadline = now + _deadline;\n milestoneVotingPeriod = _milestoneVotingPeriod;\n immediateFirstMilestonePayout = _immediateFirstMilestonePayout;\n isRaiseGoalReached = false;\n amountVotingForRefund = 0;\n frozen = false;\n // assumes no ether contributed as part of contract deployment\n amountRaised = 0;\n }\n\n function contribute() public payable onlyOnGoing onlyUnfrozen {\n // don't allow overfunding\n uint newAmountRaised = amountRaised.add(msg.value);\n require(newAmountRaised <= raiseGoal, \"Contribution exceeds the raise goal.\");\n // require minimumContributionAmount (set during construction)\n // there may be a special case where just enough has been raised so that the remaining raise amount is just smaller than the minimumContributionAmount\n // in this case, allow that the msg.value + amountRaised will equal the raiseGoal.\n // This makes sure that we don't enter a scenario where a proposal can never be fully funded\n bool greaterThanMinimum = msg.value >= minimumContributionAmount;\n bool exactlyRaiseGoal = newAmountRaised == raiseGoal;\n require(greaterThanMinimum || exactlyRaiseGoal, \"msg.value greater than minimum, or msg.value == remaining amount to be raised\");\n // in cases where an address pays > 1 times\n if (contributors[msg.sender].contributionAmount == 0) {\n contributors[msg.sender] = Contributor({\n contributionAmount: msg.value,\n milestoneNoVotes: new bool[](milestones.length),\n refundVote: false,\n refunded: false\n });\n contributorList.push(msg.sender);\n }\n else {\n contributors[msg.sender].contributionAmount = contributors[msg.sender].contributionAmount.add(msg.value);\n }\n\n amountRaised = newAmountRaised;\n if (amountRaised == raiseGoal) {\n isRaiseGoalReached = true;\n }\n emit Deposited(msg.sender, msg.value);\n }\n\n function requestMilestonePayout (uint index) public onlyTrustee onlyRaised onlyUnfrozen {\n bool milestoneAlreadyPaid = milestones[index].paid;\n bool voteDeadlineHasPassed = milestones[index].payoutRequestVoteDeadline > now;\n bool majorityAgainstPayout = isMajorityVoting(milestones[index].amountVotingAgainstPayout);\n // prevent requesting paid milestones\n require(!milestoneAlreadyPaid, \"Milestone already paid\");\n\n int lowestIndexPaid = -1;\n for (uint i = 0; i < milestones.length; i++) {\n if (milestones[i].paid) {\n lowestIndexPaid = int(i);\n }\n }\n\n require(index == uint(lowestIndexPaid + 1), \"Milestone request must be for first unpaid milestone\");\n // begin grace period for contributors to vote no on milestone payout\n if (milestones[index].payoutRequestVoteDeadline == 0) {\n if (index == 0 && immediateFirstMilestonePayout) {\n // make milestone payouts immediately avtheailable for the first milestone if immediateFirstMilestonePayout is set during consutrction\n milestones[index].payoutRequestVoteDeadline = 1;\n } else {\n milestones[index].payoutRequestVoteDeadline = now.add(milestoneVotingPeriod);\n }\n }\n // if the payoutRequestVoteDealine has passed and majority voted against it previously, begin the grace period with 2 times the deadline\n else if (voteDeadlineHasPassed && majorityAgainstPayout) {\n milestones[index].payoutRequestVoteDeadline = now.add(milestoneVotingPeriod.mul(2));\n }\n }\n\n function voteMilestonePayout(uint index, bool vote) public onlyContributor onlyRaised onlyUnfrozen {\n bool existingMilestoneNoVote = contributors[msg.sender].milestoneNoVotes[index];\n require(existingMilestoneNoVote != vote, \"Vote value must be different than existing vote state\");\n bool milestoneVotingStarted = milestones[index].payoutRequestVoteDeadline > 0;\n bool votePeriodHasEnded = milestones[index].payoutRequestVoteDeadline <= now;\n bool onGoingVote = milestoneVotingStarted && !votePeriodHasEnded;\n require(onGoingVote, \"Milestone voting must be open\");\n contributors[msg.sender].milestoneNoVotes[index] = vote;\n if (!vote) {\n milestones[index].amountVotingAgainstPayout = milestones[index].amountVotingAgainstPayout.sub(contributors[msg.sender].contributionAmount);\n } else if (vote) {\n milestones[index].amountVotingAgainstPayout = milestones[index].amountVotingAgainstPayout.add(contributors[msg.sender].contributionAmount);\n }\n }\n\n function payMilestonePayout(uint index) public onlyRaised onlyUnfrozen {\n bool voteDeadlineHasPassed = milestones[index].payoutRequestVoteDeadline < now;\n bool majorityVotedNo = isMajorityVoting(milestones[index].amountVotingAgainstPayout);\n bool milestoneAlreadyPaid = milestones[index].paid;\n if (voteDeadlineHasPassed && !majorityVotedNo && !milestoneAlreadyPaid) {\n milestones[index].paid = true;\n uint amount = milestones[index].amount;\n beneficiary.transfer(amount);\n emit Withdrawn(beneficiary, amount);\n // if the final milestone just got paid\n if (milestones.length.sub(index) == 1) {\n // useful to selfdestruct in case funds were forcefully deposited into contract. otherwise they are lost.\n selfdestruct(beneficiary);\n }\n } else {\n revert(\"required conditions were not satisfied\");\n }\n }\n\n function voteRefund(bool vote) public onlyContributor onlyRaised onlyUnfrozen {\n bool refundVote = contributors[msg.sender].refundVote;\n require(vote != refundVote, \"Existing vote state is identical to vote value\");\n contributors[msg.sender].refundVote = vote;\n if (!vote) {\n amountVotingForRefund = amountVotingForRefund.sub(contributors[msg.sender].contributionAmount);\n }\n else if (vote) {\n amountVotingForRefund = amountVotingForRefund.add(contributors[msg.sender].contributionAmount);\n }\n }\n\n function refund() public onlyUnfrozen {\n bool callerIsTrustee = isCallerTrustee();\n bool crowdFundFailed = isFailed();\n bool majorityVotingToRefund = isMajorityVoting(amountVotingForRefund);\n require(callerIsTrustee || crowdFundFailed || majorityVotingToRefund, \"Required conditions for refund are not met\");\n if (callerIsTrustee) {\n freezeReason = FreezeReason.CALLER_IS_TRUSTEE;\n } else if (crowdFundFailed) {\n freezeReason = FreezeReason.CROWD_FUND_FAILED;\n } else {\n freezeReason = FreezeReason.MAJORITY_VOTING_TO_REFUND;\n }\n frozen = true;\n frozenBalance = address(this).balance;\n }\n\n // anyone can refund a contributor if a crowdfund has been frozen\n function withdraw(address refundAddress) public onlyFrozen {\n require(frozen, \"CrowdFund is not frozen\");\n bool isRefunded = contributors[refundAddress].refunded;\n require(!isRefunded, \"Specified address is already refunded\");\n contributors[refundAddress].refunded = true;\n uint contributionAmount = contributors[refundAddress].contributionAmount;\n uint amountToRefund = contributionAmount.mul(address(this).balance).div(frozenBalance);\n refundAddress.transfer(amountToRefund);\n emit Withdrawn(refundAddress, amountToRefund);\n }\n\n // it may be useful to selfdestruct in case funds were force deposited to the contract\n function destroy() public onlyTrustee onlyFrozen {\n for (uint i = 0; i < contributorList.length; i++) {\n address contributorAddress = contributorList[i];\n if (!contributors[contributorAddress].refunded) {\n revert(\"At least one contributor has not yet refunded\");\n }\n }\n selfdestruct(beneficiary);\n }\n\n function isMajorityVoting(uint valueVoting) public view returns (bool) {\n return valueVoting.mul(2) > amountRaised;\n }\n\n function isCallerTrustee() public view returns (bool) {\n for (uint i = 0; i < trustees.length; i++) {\n if (msg.sender == trustees[i]) {\n return true;\n }\n }\n return false;\n }\n\n function isFailed() public view returns (bool) {\n return now >= deadline && !isRaiseGoalReached;\n }\n\n function getContributorMilestoneVote(address contributorAddress, uint milestoneIndex) public view returns (bool) { \n return contributors[contributorAddress].milestoneNoVotes[milestoneIndex];\n }\n\n function getContributorContributionAmount(address contributorAddress) public view returns (uint) {\n return contributors[contributorAddress].contributionAmount;\n }\n\n function getFreezeReason() public view returns (uint) {\n return uint(freezeReason);\n }\n\n modifier onlyFrozen() {\n require(frozen, \"CrowdFund is not frozen\");\n _;\n }\n\n modifier onlyUnfrozen() {\n require(!frozen, \"CrowdFund is frozen\");\n _;\n }\n\n modifier onlyRaised() {\n require(isRaiseGoalReached, \"Raise goal is not reached\");\n _;\n }\n\n modifier onlyOnGoing() {\n require(now <= deadline && !isRaiseGoalReached, \"CrowdFund is not ongoing\");\n _;\n }\n\n modifier onlyContributor() {\n require(contributors[msg.sender].contributionAmount != 0, \"Caller is not a contributor\");\n _;\n }\n\n modifier onlyTrustee() {\n require(isCallerTrustee(), \"Caller is not a trustee\");\n _;\n }\n\n}", + "sourcePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", "ast": { - "absolutePath": "/Users/will/Documents/grant-monorepo/contract/contracts/CrowdFund.sol", + "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", "exportedSymbols": { "CrowdFund": [ - 1076 + 1080 ] }, - "id": 1077, + "id": 1081, "nodeType": "SourceUnit", "nodes": [ { @@ -557,8 +557,8 @@ "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 1077, - "sourceUnit": 1229, + "scope": 1081, + "sourceUnit": 1233, "src": "25:59:0", "symbolAliases": [], "unitAlias": "" @@ -569,9 +569,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1076, + "id": 1080, "linearizedBaseContracts": [ - 1076 + 1080 ], "name": "CrowdFund", "nodeType": "ContractDefinition", @@ -583,10 +583,10 @@ "id": 3, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1228, + "referencedDeclaration": 1232, "src": "118:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1228", + "typeIdentifier": "t_contract$_SafeMath_$1232", "typeString": "library SafeMath" } }, @@ -635,7 +635,7 @@ "id": 11, "name": "freezeReason", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "264:25:0", "stateVariable": true, "storageLocation": "default", @@ -769,7 +769,7 @@ ], "name": "Milestone", "nodeType": "StructDefinition", - "scope": 1076, + "scope": 1080, "src": "296:144:0", "visibility": "public" }, @@ -894,7 +894,7 @@ ], "name": "Contributor", "nodeType": "StructDefinition", - "scope": 1076, + "scope": 1080, "src": "446:197:0", "visibility": "public" }, @@ -1041,7 +1041,7 @@ "id": 44, "name": "frozen", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "776:18:0", "stateVariable": true, "storageLocation": "default", @@ -1067,7 +1067,7 @@ "id": 46, "name": "isRaiseGoalReached", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "800:30:0", "stateVariable": true, "storageLocation": "default", @@ -1093,7 +1093,7 @@ "id": 48, "name": "immediateFirstMilestonePayout", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "836:41:0", "stateVariable": true, "storageLocation": "default", @@ -1119,7 +1119,7 @@ "id": 50, "name": "milestoneVotingPeriod", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "883:33:0", "stateVariable": true, "storageLocation": "default", @@ -1145,7 +1145,7 @@ "id": 52, "name": "deadline", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "922:20:0", "stateVariable": true, "storageLocation": "default", @@ -1171,7 +1171,7 @@ "id": 54, "name": "raiseGoal", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "948:21:0", "stateVariable": true, "storageLocation": "default", @@ -1197,7 +1197,7 @@ "id": 56, "name": "amountRaised", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "975:24:0", "stateVariable": true, "storageLocation": "default", @@ -1223,7 +1223,7 @@ "id": 58, "name": "frozenBalance", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1005:25:0", "stateVariable": true, "storageLocation": "default", @@ -1249,7 +1249,7 @@ "id": 60, "name": "minimumContributionAmount", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1036:37:0", "stateVariable": true, "storageLocation": "default", @@ -1275,7 +1275,7 @@ "id": 62, "name": "amountVotingForRefund", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1079:33:0", "stateVariable": true, "storageLocation": "default", @@ -1301,7 +1301,7 @@ "id": 64, "name": "beneficiary", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1118:26:0", "stateVariable": true, "storageLocation": "default", @@ -1327,7 +1327,7 @@ "id": 68, "name": "contributors", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1150:51:0", "stateVariable": true, "storageLocation": "default", @@ -1374,7 +1374,7 @@ "id": 71, "name": "contributorList", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1207:32:0", "stateVariable": true, "storageLocation": "default", @@ -1410,7 +1410,7 @@ "id": 74, "name": "trustees", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1302:25:0", "stateVariable": true, "storageLocation": "default", @@ -1446,7 +1446,7 @@ "id": 77, "name": "milestones", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1401:29:0", "stateVariable": true, "storageLocation": "default", @@ -1573,10 +1573,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "1689:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -1790,10 +1790,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "1767:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -2007,10 +2007,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "1894:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -2259,10 +2259,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "2338:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -2354,7 +2354,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "2440:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -2783,10 +2783,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "2713:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -3040,7 +3040,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "3026:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3600,7 +3600,7 @@ "parameters": [], "src": "1679:0:0" }, - "scope": 1076, + "scope": 1080, "src": "1437:1931:0", "stateMutability": "nonpayable", "superFunction": null, @@ -3656,7 +3656,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "3521:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -3705,7 +3705,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "3504:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -3812,10 +3812,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "3541:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -3892,7 +3892,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4076:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -4101,10 +4101,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "4186:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -4167,7 +4167,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4393:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -4278,7 +4278,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4776:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -4337,7 +4337,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4857:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -4392,7 +4392,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4822:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -4445,7 +4445,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "4809:47:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -4518,7 +4518,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4457:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -4563,7 +4563,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4521:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -4761,7 +4761,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4713:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -5005,7 +5005,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "5033:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -5034,7 +5034,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "5045:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -5113,7 +5113,7 @@ "name": "onlyOnGoing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1050, + "referencedDeclaration": 1054, "src": "3411:11:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -5132,7 +5132,7 @@ "name": "onlyUnfrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, + "referencedDeclaration": 1031, "src": "3423:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -5158,7 +5158,7 @@ "parameters": [], "src": "3436:0:0" }, - "scope": 1076, + "scope": 1080, "src": "3374:1688:0", "stateMutability": "payable", "superFunction": null, @@ -5370,7 +5370,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "5301:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5490,7 +5490,7 @@ "name": "isMajorityVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 924, + "referencedDeclaration": 928, "src": "5343:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", @@ -5581,10 +5581,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "5460:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -6151,10 +6151,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "5721:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -6446,7 +6446,7 @@ "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1169, + "referencedDeclaration": 1173, "src": "6660:25:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -6481,7 +6481,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "6652:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6495,7 +6495,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "6652:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -6721,7 +6721,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "6326:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6735,7 +6735,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "6326:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -6893,7 +6893,7 @@ "name": "onlyTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, + "referencedDeclaration": 1079, "src": "5120:11:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -6912,7 +6912,7 @@ "name": "onlyRaised", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, + "referencedDeclaration": 1040, "src": "5132:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -6931,7 +6931,7 @@ "name": "onlyUnfrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, + "referencedDeclaration": 1031, "src": "5143:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -6984,7 +6984,7 @@ "parameters": [], "src": "5156:0:0" }, - "scope": 1076, + "scope": 1080, "src": "5068:1638:0", "stateMutability": "nonpayable", "superFunction": null, @@ -6992,9 +6992,9 @@ }, { "body": { - "id": 589, + "id": 591, "nodeType": "Block", - "src": "6811:930:0", + "src": "6811:940:0", "statements": [ { "assignments": [ @@ -7006,7 +7006,7 @@ "id": 494, "name": "existingMilestoneNoVote", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "6821:28:0", "stateVariable": false, "storageLocation": "default", @@ -7057,7 +7057,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "6865:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -7214,10 +7214,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "6910:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -7252,7 +7252,7 @@ "id": 511, "name": "milestoneVotingStarted", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "7017:27:0", "stateVariable": false, "storageLocation": "default", @@ -7381,7 +7381,7 @@ "id": 520, "name": "votePeriodHasEnded", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "7104:23:0", "stateVariable": false, "storageLocation": "default", @@ -7479,7 +7479,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "7177:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7505,7 +7505,7 @@ "id": 529, "name": "onGoingVote", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "7190:16:0", "stateVariable": false, "storageLocation": "default", @@ -7643,10 +7643,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "7264:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -7707,7 +7707,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "7340:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -7834,258 +7834,277 @@ } }, "falseBody": { - "id": 587, - "nodeType": "Block", - "src": "7572:163:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "condition": { + "argumentTypes": null, + "id": 570, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 484, + "src": "7576:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 589, + "nodeType": "IfStatement", + "src": "7572:173:0", + "trueBody": { + "id": 588, + "nodeType": "Block", + "src": "7582:163:0", + "statements": [ + { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 570, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7586:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 572, - "indexExpression": { - "argumentTypes": null, - "id": 571, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7597:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7586:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 573, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7586:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 579, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "7680:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 582, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 580, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "7693:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7693:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7680:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 583, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "7680:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 574, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7632:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 576, - "indexExpression": { - "argumentTypes": null, - "id": 575, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7643:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7632:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 577, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7632:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1227, - "src": "7632:47:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 584, + "id": 586, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7632:92:0", + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 571, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "7596:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", + "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" + } + }, + "id": 573, + "indexExpression": { + "argumentTypes": null, + "id": 572, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "7607:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7596:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$20_storage", + "typeString": "struct CrowdFund.Milestone storage ref" + } + }, + "id": 574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "amountVotingAgainstPayout", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "7596:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 580, + "name": "contributors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "7690:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", + "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" + } + }, + "id": 583, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 581, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "7703:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7703:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7690:24:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contributor_$30_storage", + "typeString": "struct CrowdFund.Contributor storage ref" + } + }, + "id": 584, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributionAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "7690:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 575, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "7642:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", + "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" + } + }, + "id": 577, + "indexExpression": { + "argumentTypes": null, + "id": 576, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "7653:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7642:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$20_storage", + "typeString": "struct CrowdFund.Milestone storage ref" + } + }, + "id": 578, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountVotingAgainstPayout", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "7642:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1231, + "src": "7642:47:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7642:92:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7596:138:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7586:138:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 586, - "nodeType": "ExpressionStatement", - "src": "7586:138:0" - } - ] + "id": 587, + "nodeType": "ExpressionStatement", + "src": "7596:138:0" + } + ] + } }, - "id": 588, + "id": 590, "nodeType": "IfStatement", - "src": "7392:343:0", + "src": "7392:353:0", "trueBody": { "id": 569, "nodeType": "Block", @@ -8186,7 +8205,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "7524:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -8303,7 +8322,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1203, + "referencedDeclaration": 1207, "src": "7463:47:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -8340,7 +8359,7 @@ ] }, "documentation": null, - "id": 590, + "id": 592, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8354,7 +8373,7 @@ "name": "onlyContributor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, + "referencedDeclaration": 1069, "src": "6771:15:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -8373,7 +8392,7 @@ "name": "onlyRaised", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, + "referencedDeclaration": 1040, "src": "6787:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -8392,7 +8411,7 @@ "name": "onlyUnfrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, + "referencedDeclaration": 1031, "src": "6798:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -8414,7 +8433,7 @@ "id": 482, "name": "index", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "6741:10:0", "stateVariable": false, "storageLocation": "default", @@ -8440,7 +8459,7 @@ "id": 484, "name": "vote", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "6753:9:0", "stateVariable": false, "storageLocation": "default", @@ -8471,30 +8490,30 @@ "parameters": [], "src": "6811:0:0" }, - "scope": 1076, - "src": "6712:1029:0", + "scope": 1080, + "src": "6712:1039:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 676, + "id": 678, "nodeType": "Block", - "src": "7818:890:0", + "src": "7828:890:0", "statements": [ { "assignments": [ - 600 + 602 ], "declarations": [ { "constant": false, - "id": 600, + "id": 602, "name": "voteDeadlineHasPassed", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "7828:26:0", + "scope": 679, + "src": "7838:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8502,10 +8521,10 @@ "typeString": "bool" }, "typeName": { - "id": 599, + "id": 601, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7828:4:0", + "src": "7838:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8515,14 +8534,14 @@ "visibility": "internal" } ], - "id": 607, + "id": 609, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 606, + "id": 608, "isConstant": false, "isLValue": false, "isPure": false, @@ -8533,26 +8552,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 601, + "id": 603, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "7857:10:0", + "src": "7867:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 603, + "id": 605, "indexExpression": { "argumentTypes": null, - "id": 602, + "id": 604, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "7868:5:0", + "referencedDeclaration": 594, + "src": "7878:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8563,13 +8582,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7857:17:0", + "src": "7867:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 604, + "id": 606, "isConstant": false, "isLValue": true, "isPure": false, @@ -8577,7 +8596,7 @@ "memberName": "payoutRequestVoteDeadline", "nodeType": "MemberAccess", "referencedDeclaration": 17, - "src": "7857:43:0", + "src": "7867:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8587,38 +8606,38 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 605, + "id": 607, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "7903:3:0", + "referencedDeclaration": 1249, + "src": "7913:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7857:49:0", + "src": "7867:49:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "7828:78:0" + "src": "7838:78:0" }, { "assignments": [ - 609 + 611 ], "declarations": [ { "constant": false, - "id": 609, + "id": 611, "name": "majorityVotedNo", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "7916:20:0", + "scope": 679, + "src": "7926:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8626,10 +8645,10 @@ "typeString": "bool" }, "typeName": { - "id": 608, + "id": 610, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7916:4:0", + "src": "7926:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8639,7 +8658,7 @@ "visibility": "internal" } ], - "id": 616, + "id": 618, "initialValue": { "argumentTypes": null, "arguments": [ @@ -8649,26 +8668,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 611, + "id": 613, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "7956:10:0", + "src": "7966:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 613, + "id": 615, "indexExpression": { "argumentTypes": null, - "id": 612, + "id": 614, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "7967:5:0", + "referencedDeclaration": 594, + "src": "7977:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8679,13 +8698,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7956:17:0", + "src": "7966:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 614, + "id": 616, "isConstant": false, "isLValue": true, "isPure": false, @@ -8693,7 +8712,7 @@ "memberName": "amountVotingAgainstPayout", "nodeType": "MemberAccess", "referencedDeclaration": 15, - "src": "7956:43:0", + "src": "7966:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8707,18 +8726,18 @@ "typeString": "uint256" } ], - "id": 610, + "id": 612, "name": "isMajorityVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "7939:16:0", + "referencedDeclaration": 928, + "src": "7949:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 615, + "id": 617, "isConstant": false, "isLValue": false, "isPure": false, @@ -8726,27 +8745,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7939:61:0", + "src": "7949:61:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "7916:84:0" + "src": "7926:84:0" }, { "assignments": [ - 618 + 620 ], "declarations": [ { "constant": false, - "id": 618, + "id": 620, "name": "milestoneAlreadyPaid", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "8010:25:0", + "scope": 679, + "src": "8020:25:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8754,10 +8773,10 @@ "typeString": "bool" }, "typeName": { - "id": 617, + "id": 619, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8010:4:0", + "src": "8020:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8767,33 +8786,33 @@ "visibility": "internal" } ], - "id": 623, + "id": 625, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 619, + "id": 621, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "8038:10:0", + "src": "8048:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 621, + "id": 623, "indexExpression": { "argumentTypes": null, - "id": 620, + "id": 622, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "8049:5:0", + "referencedDeclaration": 594, + "src": "8059:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8804,13 +8823,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8038:17:0", + "src": "8048:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 622, + "id": 624, "isConstant": false, "isLValue": true, "isPure": false, @@ -8818,14 +8837,14 @@ "memberName": "paid", "nodeType": "MemberAccess", "referencedDeclaration": 19, - "src": "8038:22:0", + "src": "8048:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "8010:50:0" + "src": "8020:50:0" }, { "condition": { @@ -8834,7 +8853,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 630, + "id": 632, "isConstant": false, "isLValue": false, "isPure": false, @@ -8845,19 +8864,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 627, + "id": 629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 624, + "id": 626, "name": "voteDeadlineHasPassed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "8074:21:0", + "referencedDeclaration": 602, + "src": "8084:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8867,7 +8886,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 626, + "id": 628, "isConstant": false, "isLValue": false, "isPure": false, @@ -8875,15 +8894,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "8099:16:0", + "src": "8109:16:0", "subExpression": { "argumentTypes": null, - "id": 625, + "id": 627, "name": "majorityVotedNo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "8100:15:0", + "referencedDeclaration": 611, + "src": "8110:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8894,7 +8913,7 @@ "typeString": "bool" } }, - "src": "8074:41:0", + "src": "8084:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8904,7 +8923,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 629, + "id": 631, "isConstant": false, "isLValue": false, "isPure": false, @@ -8912,15 +8931,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "8119:21:0", + "src": "8129:21:0", "subExpression": { "argumentTypes": null, - "id": 628, + "id": 630, "name": "milestoneAlreadyPaid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "8120:20:0", + "referencedDeclaration": 620, + "src": "8130:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8931,16 +8950,16 @@ "typeString": "bool" } }, - "src": "8074:66:0", + "src": "8084:66:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 674, + "id": 676, "nodeType": "Block", - "src": "8629:73:0", + "src": "8639:73:0", "statements": [ { "expression": { @@ -8949,14 +8968,14 @@ { "argumentTypes": null, "hexValue": "726571756972656420636f6e646974696f6e732077657265206e6f7420736174697366696564", - "id": 671, + "id": 673, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8650:40:0", + "src": "8660:40:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c944a403407a4b450cdf033de02e1e093564ed6120fdd470c5daee653f2d6a87", @@ -8972,21 +8991,21 @@ "typeString": "literal_string \"required conditions were not satisfied\"" } ], - "id": 670, + "id": 672, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1248, - 1249 + 1252, + 1253 ], - "referencedDeclaration": 1249, - "src": "8643:6:0", + "referencedDeclaration": 1253, + "src": "8653:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 672, + "id": 674, "isConstant": false, "isLValue": false, "isPure": false, @@ -8994,30 +9013,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8643:48:0", + "src": "8653:48:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 673, + "id": 675, "nodeType": "ExpressionStatement", - "src": "8643:48:0" + "src": "8653:48:0" } ] }, - "id": 675, + "id": 677, "nodeType": "IfStatement", - "src": "8070:632:0", + "src": "8080:632:0", "trueBody": { - "id": 669, + "id": 671, "nodeType": "Block", - "src": "8142:481:0", + "src": "8152:481:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 636, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, @@ -9028,26 +9047,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 631, + "id": 633, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "8156:10:0", + "src": "8166:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 633, + "id": 635, "indexExpression": { "argumentTypes": null, - "id": 632, + "id": 634, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "8167:5:0", + "referencedDeclaration": 594, + "src": "8177:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9058,13 +9077,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8156:17:0", + "src": "8166:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 634, + "id": 636, "isConstant": false, "isLValue": true, "isPure": false, @@ -9072,7 +9091,7 @@ "memberName": "paid", "nodeType": "MemberAccess", "referencedDeclaration": 19, - "src": "8156:22:0", + "src": "8166:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9083,14 +9102,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 635, + "id": 637, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8181:4:0", + "src": "8191:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9098,28 +9117,28 @@ }, "value": "true" }, - "src": "8156:29:0", + "src": "8166:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 637, + "id": 639, "nodeType": "ExpressionStatement", - "src": "8156:29:0" + "src": "8166:29:0" }, { "assignments": [ - 639 + 641 ], "declarations": [ { "constant": false, - "id": 639, + "id": 641, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "8199:11:0", + "scope": 679, + "src": "8209:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9127,10 +9146,10 @@ "typeString": "uint256" }, "typeName": { - "id": 638, + "id": 640, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8199:4:0", + "src": "8209:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9140,33 +9159,33 @@ "visibility": "internal" } ], - "id": 644, + "id": 646, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 640, + "id": 642, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "8213:10:0", + "src": "8223:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 642, + "id": 644, "indexExpression": { "argumentTypes": null, - "id": 641, + "id": 643, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "8224:5:0", + "referencedDeclaration": 594, + "src": "8234:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9177,13 +9196,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8213:17:0", + "src": "8223:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 643, + "id": 645, "isConstant": false, "isLValue": true, "isPure": false, @@ -9191,14 +9210,14 @@ "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 13, - "src": "8213:24:0", + "src": "8223:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "8199:38:0" + "src": "8209:38:0" }, { "expression": { @@ -9206,12 +9225,12 @@ "arguments": [ { "argumentTypes": null, - "id": 648, + "id": 650, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8272:6:0", + "referencedDeclaration": 641, + "src": "8282:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9227,18 +9246,18 @@ ], "expression": { "argumentTypes": null, - "id": 645, + "id": 647, "name": "beneficiary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 64, - "src": "8251:11:0", + "src": "8261:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 647, + "id": 649, "isConstant": false, "isLValue": false, "isPure": false, @@ -9246,13 +9265,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8251:20:0", + "src": "8261:20:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 649, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, @@ -9260,15 +9279,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8251:28:0", + "src": "8261:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 650, + "id": 652, "nodeType": "ExpressionStatement", - "src": "8251:28:0" + "src": "8261:28:0" }, { "eventCall": { @@ -9276,12 +9295,12 @@ "arguments": [ { "argumentTypes": null, - "id": 652, + "id": 654, "name": "beneficiary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 64, - "src": "8308:11:0", + "src": "8318:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9289,12 +9308,12 @@ }, { "argumentTypes": null, - "id": 653, + "id": 655, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8321:6:0", + "referencedDeclaration": 641, + "src": "8331:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9312,18 +9331,18 @@ "typeString": "uint256" } ], - "id": 651, + "id": 653, "name": "Withdrawn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 42, - "src": "8298:9:0", + "src": "8308:9:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 654, + "id": 656, "isConstant": false, "isLValue": false, "isPure": false, @@ -9331,15 +9350,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8298:30:0", + "src": "8308:30:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 655, + "id": 657, "nodeType": "EmitStatement", - "src": "8293:35:0" + "src": "8303:35:0" }, { "condition": { @@ -9348,7 +9367,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 662, + "id": 664, "isConstant": false, "isLValue": false, "isPure": false, @@ -9358,12 +9377,12 @@ "arguments": [ { "argumentTypes": null, - "id": 659, + "id": 661, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "8420:5:0", + "referencedDeclaration": 594, + "src": "8430:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9381,18 +9400,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 656, + "id": 658, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "8398:10:0", + "src": "8408:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 657, + "id": 659, "isConstant": false, "isLValue": true, "isPure": false, @@ -9400,27 +9419,27 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8398:17:0", + "src": "8408:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 658, + "id": 660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1203, - "src": "8398:21:0", + "referencedDeclaration": 1207, + "src": "8408:21:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 660, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, @@ -9428,7 +9447,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8398:28:0", + "src": "8408:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9439,14 +9458,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 661, + "id": 663, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8430:1:0", + "src": "8440:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9454,20 +9473,20 @@ }, "value": "1" }, - "src": "8398:33:0", + "src": "8408:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 668, + "id": 670, "nodeType": "IfStatement", - "src": "8394:219:0", + "src": "8404:219:0", "trueBody": { - "id": 667, + "id": 669, "nodeType": "Block", - "src": "8433:180:0", + "src": "8443:180:0", "statements": [ { "expression": { @@ -9475,12 +9494,12 @@ "arguments": [ { "argumentTypes": null, - "id": 664, + "id": 666, "name": "beneficiary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 64, - "src": "8586:11:0", + "src": "8596:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9494,18 +9513,18 @@ "typeString": "address" } ], - "id": 663, + "id": 665, "name": "selfdestruct", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1251, - "src": "8573:12:0", + "referencedDeclaration": 1255, + "src": "8583:12:0", "typeDescriptions": { "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 665, + "id": 667, "isConstant": false, "isLValue": false, "isPure": false, @@ -9513,15 +9532,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8573:25:0", + "src": "8583:25:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 666, + "id": 668, "nodeType": "ExpressionStatement", - "src": "8573:25:0" + "src": "8583:25:0" } ] } @@ -9532,63 +9551,63 @@ ] }, "documentation": null, - "id": 677, + "id": 679, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ - { - "arguments": null, - "id": 595, - "modifierName": { - "argumentTypes": null, - "id": 594, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "7794:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7794:10:0" - }, { "arguments": null, "id": 597, "modifierName": { "argumentTypes": null, "id": 596, - "name": "onlyUnfrozen", + "name": "onlyRaised", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "7805:12:0", + "referencedDeclaration": 1040, + "src": "7804:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7805:12:0" + "src": "7804:10:0" + }, + { + "arguments": null, + "id": 599, + "modifierName": { + "argumentTypes": null, + "id": 598, + "name": "onlyUnfrozen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "7815:12:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7815:12:0" } ], "name": "payMilestonePayout", "nodeType": "FunctionDefinition", "parameters": { - "id": 593, + "id": 595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 592, + "id": 594, "name": "index", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "7775:10:0", + "scope": 679, + "src": "7785:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9596,10 +9615,10 @@ "typeString": "uint256" }, "typeName": { - "id": 591, + "id": 593, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7775:4:0", + "src": "7785:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9609,39 +9628,39 @@ "visibility": "internal" } ], - "src": "7774:12:0" + "src": "7784:12:0" }, "payable": false, "returnParameters": { - "id": 598, + "id": 600, "nodeType": "ParameterList", "parameters": [], - "src": "7818:0:0" + "src": "7828:0:0" }, - "scope": 1076, - "src": "7747:961:0", + "scope": 1080, + "src": "7757:961:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 738, + "id": 742, "nodeType": "Block", - "src": "8792:473:0", + "src": "8802:491:0", "statements": [ { "assignments": [ - 689 + 691 ], "declarations": [ { "constant": false, - "id": 689, + "id": 691, "name": "refundVote", "nodeType": "VariableDeclaration", - "scope": 739, - "src": "8802:15:0", + "scope": 743, + "src": "8812:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9649,10 +9668,10 @@ "typeString": "bool" }, "typeName": { - "id": 688, + "id": 690, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8802:4:0", + "src": "8812:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9662,41 +9681,41 @@ "visibility": "internal" } ], - "id": 695, + "id": 697, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 690, + "id": 692, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "8820:12:0", + "src": "8830:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 693, + "id": 695, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 691, + "id": 693, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "8833:3:0", + "referencedDeclaration": 1247, + "src": "8843:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 692, + "id": 694, "isConstant": false, "isLValue": false, "isPure": false, @@ -9704,7 +9723,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8833:10:0", + "src": "8843:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9715,13 +9734,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8820:24:0", + "src": "8830:24:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 694, + "id": 696, "isConstant": false, "isLValue": true, "isPure": false, @@ -9729,14 +9748,14 @@ "memberName": "refundVote", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "8820:35:0", + "src": "8830:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "8802:53:0" + "src": "8812:53:0" }, { "expression": { @@ -9748,19 +9767,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 699, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 697, + "id": 699, "name": "vote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "8873:4:0", + "referencedDeclaration": 681, + "src": "8883:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9770,18 +9789,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 698, + "id": 700, "name": "refundVote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "8881:10:0", + "referencedDeclaration": 691, + "src": "8891:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8873:18:0", + "src": "8883:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9790,14 +9809,14 @@ { "argumentTypes": null, "hexValue": "4578697374696e6720766f7465207374617465206973206964656e746963616c20746f20766f74652076616c7565", - "id": 700, + "id": 702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8893:48:0", + "src": "8903:48:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_83d9b841f406ef52e32942228e28c13fcdb47e5fa9512f22f335b7955cb71cb5", @@ -9817,21 +9836,21 @@ "typeString": "literal_string \"Existing vote state is identical to vote value\"" } ], - "id": 696, + "id": 698, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "8865:7:0", + "referencedDeclaration": 1251, + "src": "8875:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 701, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -9839,20 +9858,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8865:77:0", + "src": "8875:77:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 702, + "id": 704, "nodeType": "ExpressionStatement", - "src": "8865:77:0" + "src": "8875:77:0" }, { "expression": { "argumentTypes": null, - "id": 709, + "id": 711, "isConstant": false, "isLValue": false, "isPure": false, @@ -9863,34 +9882,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 703, + "id": 705, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "8952:12:0", + "src": "8962:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 706, + "id": 708, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 704, + "id": 706, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "8965:3:0", + "referencedDeclaration": 1247, + "src": "8975:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 705, + "id": 707, "isConstant": false, "isLValue": false, "isPure": false, @@ -9898,7 +9917,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8965:10:0", + "src": "8975:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9909,13 +9928,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8952:24:0", + "src": "8962:24:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 707, + "id": 709, "isConstant": false, "isLValue": true, "isPure": false, @@ -9923,7 +9942,7 @@ "memberName": "refundVote", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "8952:35:0", + "src": "8962:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9933,31 +9952,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 708, + "id": 710, "name": "vote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "8990:4:0", + "referencedDeclaration": 681, + "src": "9000:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8952:42:0", + "src": "8962:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 710, + "id": 712, "nodeType": "ExpressionStatement", - "src": "8952:42:0" + "src": "8962:42:0" }, { "condition": { "argumentTypes": null, - "id": 712, + "id": 714, "isConstant": false, "isLValue": false, "isPure": false, @@ -9965,15 +9984,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "9008:5:0", + "src": "9018:5:0", "subExpression": { "argumentTypes": null, - "id": 711, + "id": 713, "name": "vote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "9009:4:0", + "referencedDeclaration": 681, + "src": "9019:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9985,193 +10004,212 @@ } }, "falseBody": { - "id": 736, - "nodeType": "Block", - "src": "9140:119:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "condition": { + "argumentTypes": null, + "id": 727, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 681, + "src": "9162:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 740, + "nodeType": "IfStatement", + "src": "9158:129:0", + "trueBody": { + "id": 739, + "nodeType": "Block", + "src": "9168:119:0", + "statements": [ + { + "expression": { "argumentTypes": null, - "id": 725, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9154:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 728, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "9204:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 731, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 729, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "9217:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9217:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9204:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 732, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "9204:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 726, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9178:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1227, - "src": "9178:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 733, + "id": 737, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9178:70:0", + "leftHandSide": { + "argumentTypes": null, + "id": 728, + "name": "amountVotingForRefund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "9182:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 731, + "name": "contributors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "9232:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", + "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" + } + }, + "id": 734, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 732, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "9245:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9245:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9232:24:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contributor_$30_storage", + "typeString": "struct CrowdFund.Contributor storage ref" + } + }, + "id": 735, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributionAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "9232:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 729, + "name": "amountVotingForRefund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "9206:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1231, + "src": "9206:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9206:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9182:94:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9154:94:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 735, - "nodeType": "ExpressionStatement", - "src": "9154:94:0" - } - ] + "id": 738, + "nodeType": "ExpressionStatement", + "src": "9182:94:0" + } + ] + } }, - "id": 737, + "id": 741, "nodeType": "IfStatement", - "src": "9004:255:0", + "src": "9014:273:0", "trueBody": { - "id": 724, + "id": 726, "nodeType": "Block", - "src": "9015:119:0", + "src": "9025:119:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 722, + "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 713, + "id": 715, "name": "amountVotingForRefund", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, - "src": "9029:21:0", + "src": "9039:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10188,34 +10226,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 716, + "id": 718, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "9079:12:0", + "src": "9089:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 719, + "id": 721, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 717, + "id": 719, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "9092:3:0", + "referencedDeclaration": 1247, + "src": "9102:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 718, + "id": 720, "isConstant": false, "isLValue": false, "isPure": false, @@ -10223,7 +10261,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9092:10:0", + "src": "9102:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10234,13 +10272,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9079:24:0", + "src": "9089:24:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 720, + "id": 722, "isConstant": false, "isLValue": true, "isPure": false, @@ -10248,7 +10286,7 @@ "memberName": "contributionAmount", "nodeType": "MemberAccess", "referencedDeclaration": 22, - "src": "9079:43:0", + "src": "9089:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10264,32 +10302,32 @@ ], "expression": { "argumentTypes": null, - "id": 714, + "id": 716, "name": "amountVotingForRefund", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, - "src": "9053:21:0", + "src": "9063:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 715, + "id": 717, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1203, - "src": "9053:25:0", + "referencedDeclaration": 1207, + "src": "9063:25:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 721, + "id": 723, "isConstant": false, "isLValue": false, "isPure": false, @@ -10297,21 +10335,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9053:70:0", + "src": "9063:70:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9029:94:0", + "src": "9039:94:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 723, + "id": 725, "nodeType": "ExpressionStatement", - "src": "9029:94:0" + "src": "9039:94:0" } ] } @@ -10319,48 +10357,29 @@ ] }, "documentation": null, - "id": 739, + "id": 743, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ - { - "arguments": null, - "id": 682, - "modifierName": { - "argumentTypes": null, - "id": 681, - "name": "onlyContributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "8752:15:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8752:15:0" - }, { "arguments": null, "id": 684, "modifierName": { "argumentTypes": null, "id": 683, - "name": "onlyRaised", + "name": "onlyContributor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "8768:10:0", + "referencedDeclaration": 1069, + "src": "8762:15:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8768:10:0" + "src": "8762:15:0" }, { "arguments": null, @@ -10368,33 +10387,52 @@ "modifierName": { "argumentTypes": null, "id": 685, - "name": "onlyUnfrozen", + "name": "onlyRaised", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "8779:12:0", + "referencedDeclaration": 1040, + "src": "8778:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8779:12:0" + "src": "8778:10:0" + }, + { + "arguments": null, + "id": 688, + "modifierName": { + "argumentTypes": null, + "id": 687, + "name": "onlyUnfrozen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "8789:12:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8789:12:0" } ], "name": "voteRefund", "nodeType": "FunctionDefinition", "parameters": { - "id": 680, + "id": 682, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 679, + "id": 681, "name": "vote", "nodeType": "VariableDeclaration", - "scope": 739, - "src": "8734:9:0", + "scope": 743, + "src": "8744:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10402,10 +10440,10 @@ "typeString": "bool" }, "typeName": { - "id": 678, + "id": 680, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8734:4:0", + "src": "8744:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10415,39 +10453,39 @@ "visibility": "internal" } ], - "src": "8733:11:0" + "src": "8743:11:0" }, "payable": false, "returnParameters": { - "id": 687, + "id": 689, "nodeType": "ParameterList", "parameters": [], - "src": "8792:0:0" + "src": "8802:0:0" }, - "scope": 1076, - "src": "8714:551:0", + "scope": 1080, + "src": "8724:569:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 802, + "id": 806, "nodeType": "Block", - "src": "9309:655:0", + "src": "9337:655:0", "statements": [ { "assignments": [ - 745 + 749 ], "declarations": [ { "constant": false, - "id": 745, + "id": 749, "name": "callerIsTrustee", "nodeType": "VariableDeclaration", - "scope": 803, - "src": "9319:20:0", + "scope": 807, + "src": "9347:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10455,10 +10493,10 @@ "typeString": "bool" }, "typeName": { - "id": 744, + "id": 748, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9319:4:0", + "src": "9347:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10468,24 +10506,24 @@ "visibility": "internal" } ], - "id": 748, + "id": 752, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 746, + "id": 750, "name": "isCallerTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "9342:15:0", + "referencedDeclaration": 959, + "src": "9370:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 747, + "id": 751, "isConstant": false, "isLValue": false, "isPure": false, @@ -10493,27 +10531,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9342:17:0", + "src": "9370:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "9319:40:0" + "src": "9347:40:0" }, { "assignments": [ - 750 + 754 ], "declarations": [ { "constant": false, - "id": 750, + "id": 754, "name": "crowdFundFailed", "nodeType": "VariableDeclaration", - "scope": 803, - "src": "9369:20:0", + "scope": 807, + "src": "9397:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10521,10 +10559,10 @@ "typeString": "bool" }, "typeName": { - "id": 749, + "id": 753, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9369:4:0", + "src": "9397:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10534,24 +10572,24 @@ "visibility": "internal" } ], - "id": 753, + "id": 757, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 751, + "id": 755, "name": "isFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "9392:8:0", + "referencedDeclaration": 972, + "src": "9420:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 752, + "id": 756, "isConstant": false, "isLValue": false, "isPure": false, @@ -10559,27 +10597,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9392:10:0", + "src": "9420:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "9369:33:0" + "src": "9397:33:0" }, { "assignments": [ - 755 + 759 ], "declarations": [ { "constant": false, - "id": 755, + "id": 759, "name": "majorityVotingToRefund", "nodeType": "VariableDeclaration", - "scope": 803, - "src": "9412:27:0", + "scope": 807, + "src": "9440:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10587,10 +10625,10 @@ "typeString": "bool" }, "typeName": { - "id": 754, + "id": 758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9412:4:0", + "src": "9440:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10600,18 +10638,18 @@ "visibility": "internal" } ], - "id": 759, + "id": 763, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 757, + "id": 761, "name": "amountVotingForRefund", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, - "src": "9459:21:0", + "src": "9487:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10625,18 +10663,18 @@ "typeString": "uint256" } ], - "id": 756, + "id": 760, "name": "isMajorityVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "9442:16:0", + "referencedDeclaration": 928, + "src": "9470:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 758, + "id": 762, "isConstant": false, "isLValue": false, "isPure": false, @@ -10644,14 +10682,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9442:39:0", + "src": "9470:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "9412:69:0" + "src": "9440:69:0" }, { "expression": { @@ -10663,7 +10701,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 765, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -10674,19 +10712,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 763, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 761, + "id": 765, "name": "callerIsTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "9499:15:0", + "referencedDeclaration": 749, + "src": "9527:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10696,18 +10734,18 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 762, + "id": 766, "name": "crowdFundFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "9518:15:0", + "referencedDeclaration": 754, + "src": "9546:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "9499:34:0", + "src": "9527:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10717,18 +10755,18 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 764, + "id": 768, "name": "majorityVotingToRefund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "9537:22:0", + "referencedDeclaration": 759, + "src": "9565:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "9499:60:0", + "src": "9527:60:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10737,14 +10775,14 @@ { "argumentTypes": null, "hexValue": "526571756972656420636f6e646974696f6e7320666f7220726566756e6420617265206e6f74206d6574", - "id": 766, + "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9561:44:0", + "src": "9589:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1086fb0a245a80bddbec2bbf87c88d8fc142025bee989551e1ac5ccca15d31ff", @@ -10764,21 +10802,21 @@ "typeString": "literal_string \"Required conditions for refund are not met\"" } ], - "id": 760, + "id": 764, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "9491:7:0", + "referencedDeclaration": 1251, + "src": "9519:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 767, + "id": 771, "isConstant": false, "isLValue": false, "isPure": false, @@ -10786,25 +10824,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9491:115:0", + "src": "9519:115:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 768, + "id": 772, "nodeType": "ExpressionStatement", - "src": "9491:115:0" + "src": "9519:115:0" }, { "condition": { "argumentTypes": null, - "id": 769, + "id": 773, "name": "callerIsTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "9620:15:0", + "referencedDeclaration": 749, + "src": "9648:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10813,38 +10851,38 @@ "falseBody": { "condition": { "argumentTypes": null, - "id": 776, + "id": 780, "name": "crowdFundFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "9717:15:0", + "referencedDeclaration": 754, + "src": "9745:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 788, + "id": 792, "nodeType": "Block", - "src": "9810:78:0", + "src": "9838:78:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 786, + "id": 790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 787, "name": "freezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11, - "src": "9824:12:0", + "src": "9852:12:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" @@ -10856,18 +10894,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 784, + "id": 788, "name": "FreezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "9839:12:0", + "src": "9867:12:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", "typeString": "type(enum CrowdFund.FreezeReason)" } }, - "id": 785, + "id": 789, "isConstant": false, "isLValue": false, "isPure": true, @@ -10875,48 +10913,48 @@ "memberName": "MAJORITY_VOTING_TO_REFUND", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9839:38:0", + "src": "9867:38:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "src": "9824:53:0", + "src": "9852:53:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "id": 787, + "id": 791, "nodeType": "ExpressionStatement", - "src": "9824:53:0" + "src": "9852:53:0" } ] }, - "id": 789, + "id": 793, "nodeType": "IfStatement", - "src": "9713:175:0", + "src": "9741:175:0", "trueBody": { - "id": 782, + "id": 786, "nodeType": "Block", - "src": "9734:70:0", + "src": "9762:70:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 780, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 777, + "id": 781, "name": "freezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11, - "src": "9748:12:0", + "src": "9776:12:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" @@ -10928,18 +10966,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 778, + "id": 782, "name": "FreezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "9763:12:0", + "src": "9791:12:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", "typeString": "type(enum CrowdFund.FreezeReason)" } }, - "id": 779, + "id": 783, "isConstant": false, "isLValue": false, "isPure": true, @@ -10947,49 +10985,49 @@ "memberName": "CROWD_FUND_FAILED", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9763:30:0", + "src": "9791:30:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "src": "9748:45:0", + "src": "9776:45:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "id": 781, + "id": 785, "nodeType": "ExpressionStatement", - "src": "9748:45:0" + "src": "9776:45:0" } ] } }, - "id": 790, + "id": 794, "nodeType": "IfStatement", - "src": "9616:272:0", + "src": "9644:272:0", "trueBody": { - "id": 775, + "id": 779, "nodeType": "Block", - "src": "9637:70:0", + "src": "9665:70:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 773, + "id": 777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 770, + "id": 774, "name": "freezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11, - "src": "9651:12:0", + "src": "9679:12:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" @@ -11001,18 +11039,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 771, + "id": 775, "name": "FreezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "9666:12:0", + "src": "9694:12:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", "typeString": "type(enum CrowdFund.FreezeReason)" } }, - "id": 772, + "id": 776, "isConstant": false, "isLValue": false, "isPure": true, @@ -11020,21 +11058,21 @@ "memberName": "CALLER_IS_TRUSTEE", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9666:30:0", + "src": "9694:30:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "src": "9651:45:0", + "src": "9679:45:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "id": 774, + "id": 778, "nodeType": "ExpressionStatement", - "src": "9651:45:0" + "src": "9679:45:0" } ] } @@ -11042,19 +11080,19 @@ { "expression": { "argumentTypes": null, - "id": 793, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 791, + "id": 795, "name": "frozen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44, - "src": "9897:6:0", + "src": "9925:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11065,14 +11103,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 792, + "id": 796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9906:4:0", + "src": "9934:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11080,32 +11118,32 @@ }, "value": "true" }, - "src": "9897:13:0", + "src": "9925:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 794, + "id": 798, "nodeType": "ExpressionStatement", - "src": "9897:13:0" + "src": "9925:13:0" }, { "expression": { "argumentTypes": null, - "id": 800, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 799, "name": "frozenBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 58, - "src": "9920:13:0", + "src": "9948:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11120,14 +11158,14 @@ "arguments": [ { "argumentTypes": null, - "id": 797, + "id": 801, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "9944:4:0", + "referencedDeclaration": 1262, + "src": "9972:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } } @@ -11135,24 +11173,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } ], - "id": 796, + "id": 800, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9936:7:0", + "src": "9964:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 798, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, @@ -11160,13 +11198,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9936:13:0", + "src": "9964:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 799, + "id": 803, "isConstant": false, "isLValue": false, "isPure": false, @@ -11174,76 +11212,76 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9936:21:0", + "src": "9964:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9920:37:0", + "src": "9948:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 801, + "id": 805, "nodeType": "ExpressionStatement", - "src": "9920:37:0" + "src": "9948:37:0" } ] }, "documentation": null, - "id": 803, + "id": 807, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 742, + "id": 746, "modifierName": { "argumentTypes": null, - "id": 741, + "id": 745, "name": "onlyUnfrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "9296:12:0", + "referencedDeclaration": 1031, + "src": "9324:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9296:12:0" + "src": "9324:12:0" } ], "name": "refund", "nodeType": "FunctionDefinition", "parameters": { - "id": 740, + "id": 744, "nodeType": "ParameterList", "parameters": [], - "src": "9286:2:0" + "src": "9314:2:0" }, "payable": false, "returnParameters": { - "id": 743, + "id": 747, "nodeType": "ParameterList", "parameters": [], - "src": "9309:0:0" + "src": "9337:0:0" }, - "scope": 1076, - "src": "9271:693:0", + "scope": 1080, + "src": "9299:693:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 866, + "id": 870, "nodeType": "Block", - "src": "10099:528:0", + "src": "10127:528:0", "statements": [ { "expression": { @@ -11251,12 +11289,12 @@ "arguments": [ { "argumentTypes": null, - "id": 811, + "id": 815, "name": "frozen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44, - "src": "10117:6:0", + "src": "10145:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11265,14 +11303,14 @@ { "argumentTypes": null, "hexValue": "43726f776446756e64206973206e6f742066726f7a656e", - "id": 812, + "id": 816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10125:25:0", + "src": "10153:25:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", @@ -11292,21 +11330,21 @@ "typeString": "literal_string \"CrowdFund is not frozen\"" } ], - "id": 810, + "id": 814, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "10109:7:0", + "referencedDeclaration": 1251, + "src": "10137:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 813, + "id": 817, "isConstant": false, "isLValue": false, "isPure": false, @@ -11314,28 +11352,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10109:42:0", + "src": "10137:42:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 814, + "id": 818, "nodeType": "ExpressionStatement", - "src": "10109:42:0" + "src": "10137:42:0" }, { "assignments": [ - 816 + 820 ], "declarations": [ { "constant": false, - "id": 816, + "id": 820, "name": "isRefunded", "nodeType": "VariableDeclaration", - "scope": 867, - "src": "10161:15:0", + "scope": 871, + "src": "10189:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11343,10 +11381,10 @@ "typeString": "bool" }, "typeName": { - "id": 815, + "id": 819, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10161:4:0", + "src": "10189:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11356,33 +11394,33 @@ "visibility": "internal" } ], - "id": 821, + "id": 825, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 817, + "id": 821, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "10179:12:0", + "src": "10207:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 819, + "id": 823, "indexExpression": { "argumentTypes": null, - "id": 818, + "id": 822, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10192:13:0", + "referencedDeclaration": 809, + "src": "10220:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11393,13 +11431,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10179:27:0", + "src": "10207:27:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 820, + "id": 824, "isConstant": false, "isLValue": true, "isPure": false, @@ -11407,14 +11445,14 @@ "memberName": "refunded", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "10179:36:0", + "src": "10207:36:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "10161:54:0" + "src": "10189:54:0" }, { "expression": { @@ -11422,7 +11460,7 @@ "arguments": [ { "argumentTypes": null, - "id": 824, + "id": 828, "isConstant": false, "isLValue": false, "isPure": false, @@ -11430,15 +11468,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "10233:11:0", + "src": "10261:11:0", "subExpression": { "argumentTypes": null, - "id": 823, + "id": 827, "name": "isRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "10234:10:0", + "referencedDeclaration": 820, + "src": "10262:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11452,14 +11490,14 @@ { "argumentTypes": null, "hexValue": "537065636966696564206164647265737320697320616c726561647920726566756e646564", - "id": 825, + "id": 829, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10246:39:0", + "src": "10274:39:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ad918abf6ea38b3d8dd6fccfc0198c349db0339300085e3846f4b85c44350efa", @@ -11479,21 +11517,21 @@ "typeString": "literal_string \"Specified address is already refunded\"" } ], - "id": 822, + "id": 826, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "10225:7:0", + "referencedDeclaration": 1251, + "src": "10253:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 826, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -11501,20 +11539,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10225:61:0", + "src": "10253:61:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 827, + "id": 831, "nodeType": "ExpressionStatement", - "src": "10225:61:0" + "src": "10253:61:0" }, { "expression": { "argumentTypes": null, - "id": 833, + "id": 837, "isConstant": false, "isLValue": false, "isPure": false, @@ -11525,26 +11563,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 828, + "id": 832, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "10296:12:0", + "src": "10324:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 830, + "id": 834, "indexExpression": { "argumentTypes": null, - "id": 829, + "id": 833, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10309:13:0", + "referencedDeclaration": 809, + "src": "10337:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11555,13 +11593,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10296:27:0", + "src": "10324:27:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 831, + "id": 835, "isConstant": false, "isLValue": true, "isPure": false, @@ -11569,7 +11607,7 @@ "memberName": "refunded", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "10296:36:0", + "src": "10324:36:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11580,14 +11618,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 832, + "id": 836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10335:4:0", + "src": "10363:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11595,28 +11633,28 @@ }, "value": "true" }, - "src": "10296:43:0", + "src": "10324:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 834, + "id": 838, "nodeType": "ExpressionStatement", - "src": "10296:43:0" + "src": "10324:43:0" }, { "assignments": [ - 836 + 840 ], "declarations": [ { "constant": false, - "id": 836, + "id": 840, "name": "contributionAmount", "nodeType": "VariableDeclaration", - "scope": 867, - "src": "10349:23:0", + "scope": 871, + "src": "10377:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11624,10 +11662,10 @@ "typeString": "uint256" }, "typeName": { - "id": 835, + "id": 839, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10349:4:0", + "src": "10377:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11637,33 +11675,33 @@ "visibility": "internal" } ], - "id": 841, + "id": 845, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 837, + "id": 841, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "10375:12:0", + "src": "10403:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 839, + "id": 843, "indexExpression": { "argumentTypes": null, - "id": 838, + "id": 842, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10388:13:0", + "referencedDeclaration": 809, + "src": "10416:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11674,13 +11712,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10375:27:0", + "src": "10403:27:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 840, + "id": 844, "isConstant": false, "isLValue": true, "isPure": false, @@ -11688,27 +11726,27 @@ "memberName": "contributionAmount", "nodeType": "MemberAccess", "referencedDeclaration": 22, - "src": "10375:46:0", + "src": "10403:46:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "10349:72:0" + "src": "10377:72:0" }, { "assignments": [ - 843 + 847 ], "declarations": [ { "constant": false, - "id": 843, + "id": 847, "name": "amountToRefund", "nodeType": "VariableDeclaration", - "scope": 867, - "src": "10431:19:0", + "scope": 871, + "src": "10459:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11716,10 +11754,10 @@ "typeString": "uint256" }, "typeName": { - "id": 842, + "id": 846, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10431:4:0", + "src": "10459:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11729,18 +11767,18 @@ "visibility": "internal" } ], - "id": 854, + "id": 858, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 852, + "id": 856, "name": "frozenBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 58, - "src": "10503:13:0", + "src": "10531:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11764,14 +11802,14 @@ "arguments": [ { "argumentTypes": null, - "id": 847, + "id": 851, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "10484:4:0", + "referencedDeclaration": 1262, + "src": "10512:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } } @@ -11779,24 +11817,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } ], - "id": 846, + "id": 850, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10476:7:0", + "src": "10504:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 848, + "id": 852, "isConstant": false, "isLValue": false, "isPure": false, @@ -11804,13 +11842,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10476:13:0", + "src": "10504:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 849, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, @@ -11818,7 +11856,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10476:21:0", + "src": "10504:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11834,32 +11872,32 @@ ], "expression": { "argumentTypes": null, - "id": 844, + "id": 848, "name": "contributionAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 836, - "src": "10453:18:0", + "referencedDeclaration": 840, + "src": "10481:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 845, + "id": 849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1169, - "src": "10453:22:0", + "referencedDeclaration": 1173, + "src": "10481:22:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 850, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -11867,27 +11905,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10453:45:0", + "src": "10481:45:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 851, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 1183, - "src": "10453:49:0", + "referencedDeclaration": 1187, + "src": "10481:49:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 853, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, @@ -11895,14 +11933,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10453:64:0", + "src": "10481:64:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "10431:86:0" + "src": "10459:86:0" }, { "expression": { @@ -11910,12 +11948,12 @@ "arguments": [ { "argumentTypes": null, - "id": 858, + "id": 862, "name": "amountToRefund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10550:14:0", + "referencedDeclaration": 847, + "src": "10578:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11931,18 +11969,18 @@ ], "expression": { "argumentTypes": null, - "id": 855, + "id": 859, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10527:13:0", + "referencedDeclaration": 809, + "src": "10555:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 857, + "id": 861, "isConstant": false, "isLValue": false, "isPure": false, @@ -11950,13 +11988,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10527:22:0", + "src": "10555:22:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 859, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, @@ -11964,15 +12002,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10527:38:0", + "src": "10555:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 860, + "id": 864, "nodeType": "ExpressionStatement", - "src": "10527:38:0" + "src": "10555:38:0" }, { "eventCall": { @@ -11980,12 +12018,12 @@ "arguments": [ { "argumentTypes": null, - "id": 862, + "id": 866, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10590:13:0", + "referencedDeclaration": 809, + "src": "10618:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11993,12 +12031,12 @@ }, { "argumentTypes": null, - "id": 863, + "id": 867, "name": "amountToRefund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10605:14:0", + "referencedDeclaration": 847, + "src": "10633:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12016,18 +12054,18 @@ "typeString": "uint256" } ], - "id": 861, + "id": 865, "name": "Withdrawn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 42, - "src": "10580:9:0", + "src": "10608:9:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 864, + "id": 868, "isConstant": false, "isLValue": false, "isPure": false, @@ -12035,57 +12073,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10580:40:0", + "src": "10608:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 865, + "id": 869, "nodeType": "EmitStatement", - "src": "10575:45:0" + "src": "10603:45:0" } ] }, "documentation": null, - "id": 867, + "id": 871, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 808, + "id": 812, "modifierName": { "argumentTypes": null, - "id": 807, + "id": 811, "name": "onlyFrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "10088:10:0", + "referencedDeclaration": 1021, + "src": "10116:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "10088:10:0" + "src": "10116:10:0" } ], "name": "withdraw", "nodeType": "FunctionDefinition", "parameters": { - "id": 806, + "id": 810, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 805, + "id": 809, "name": "refundAddress", "nodeType": "VariableDeclaration", - "scope": 867, - "src": "10058:21:0", + "scope": 871, + "src": "10086:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12093,10 +12131,10 @@ "typeString": "address" }, "typeName": { - "id": 804, + "id": 808, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10058:7:0", + "src": "10086:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12106,45 +12144,45 @@ "visibility": "internal" } ], - "src": "10057:23:0" + "src": "10085:23:0" }, "payable": false, "returnParameters": { - "id": 809, + "id": 813, "nodeType": "ParameterList", "parameters": [], - "src": "10099:0:0" + "src": "10127:0:0" }, - "scope": 1076, - "src": "10040:587:0", + "scope": 1080, + "src": "10068:587:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 908, + "id": 912, "nodeType": "Block", - "src": "10773:322:0", + "src": "10801:322:0", "statements": [ { "body": { - "id": 902, + "id": 906, "nodeType": "Block", - "src": "10833:221:0", + "src": "10861:221:0", "statements": [ { "assignments": [ - 886 + 890 ], "declarations": [ { "constant": false, - "id": 886, + "id": 890, "name": "contributorAddress", "nodeType": "VariableDeclaration", - "scope": 909, - "src": "10847:26:0", + "scope": 913, + "src": "10875:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12152,10 +12190,10 @@ "typeString": "address" }, "typeName": { - "id": 885, + "id": 889, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10847:7:0", + "src": "10875:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12165,31 +12203,31 @@ "visibility": "internal" } ], - "id": 890, + "id": 894, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 887, + "id": 891, "name": "contributorList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 71, - "src": "10876:15:0", + "src": "10904:15:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 889, + "id": 893, "indexExpression": { "argumentTypes": null, - "id": 888, + "id": 892, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "10892:1:0", + "referencedDeclaration": 879, + "src": "10920:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12200,19 +12238,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10876:18:0", + "src": "10904:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "10847:47:0" + "src": "10875:47:0" }, { "condition": { "argumentTypes": null, - "id": 895, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, @@ -12220,33 +12258,33 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "10912:42:0", + "src": "10940:42:0", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 895, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "10913:12:0", + "src": "10941:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 893, + "id": 897, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 896, "name": "contributorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "10926:18:0", + "referencedDeclaration": 890, + "src": "10954:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12257,13 +12295,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10913:32:0", + "src": "10941:32:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 894, + "id": 898, "isConstant": false, "isLValue": true, "isPure": false, @@ -12271,7 +12309,7 @@ "memberName": "refunded", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "10913:41:0", + "src": "10941:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12283,13 +12321,13 @@ } }, "falseBody": null, - "id": 901, + "id": 905, "nodeType": "IfStatement", - "src": "10908:136:0", + "src": "10936:136:0", "trueBody": { - "id": 900, + "id": 904, "nodeType": "Block", - "src": "10956:88:0", + "src": "10984:88:0", "statements": [ { "expression": { @@ -12298,14 +12336,14 @@ { "argumentTypes": null, "hexValue": "4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f742079657420726566756e646564", - "id": 897, + "id": 901, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10981:47:0", + "src": "11009:47:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_85d231c62370fa6b43ee7ffe2e2243eb8d4631e742e97de3a2558a277a825be1", @@ -12321,21 +12359,21 @@ "typeString": "literal_string \"At least one contributor has not yet refunded\"" } ], - "id": 896, + "id": 900, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1248, - 1249 + 1252, + 1253 ], - "referencedDeclaration": 1249, - "src": "10974:6:0", + "referencedDeclaration": 1253, + "src": "11002:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 898, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, @@ -12343,15 +12381,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10974:55:0", + "src": "11002:55:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 899, + "id": 903, "nodeType": "ExpressionStatement", - "src": "10974:55:0" + "src": "11002:55:0" } ] } @@ -12364,19 +12402,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 881, + "id": 885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 878, + "id": 882, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "10800:1:0", + "referencedDeclaration": 879, + "src": "10828:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12388,18 +12426,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 879, + "id": 883, "name": "contributorList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 71, - "src": "10804:15:0", + "src": "10832:15:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 880, + "id": 884, "isConstant": false, "isLValue": true, "isPure": false, @@ -12407,31 +12445,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10804:22:0", + "src": "10832:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10800:26:0", + "src": "10828:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 903, + "id": 907, "initializationExpression": { "assignments": [ - 875 + 879 ], "declarations": [ { "constant": false, - "id": 875, + "id": 879, "name": "i", "nodeType": "VariableDeclaration", - "scope": 909, - "src": "10788:6:0", + "scope": 913, + "src": "10816:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12439,10 +12477,10 @@ "typeString": "uint256" }, "typeName": { - "id": 874, + "id": 878, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10788:4:0", + "src": "10816:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12452,18 +12490,18 @@ "visibility": "internal" } ], - "id": 877, + "id": 881, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 876, + "id": 880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10797:1:0", + "src": "10825:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12472,12 +12510,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10788:10:0" + "src": "10816:10:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 883, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -12485,15 +12523,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10828:3:0", + "src": "10856:3:0", "subExpression": { "argumentTypes": null, - "id": 882, + "id": 886, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "10828:1:0", + "referencedDeclaration": 879, + "src": "10856:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12504,12 +12542,12 @@ "typeString": "uint256" } }, - "id": 884, + "id": 888, "nodeType": "ExpressionStatement", - "src": "10828:3:0" + "src": "10856:3:0" }, "nodeType": "ForStatement", - "src": "10783:271:0" + "src": "10811:271:0" }, { "expression": { @@ -12517,12 +12555,12 @@ "arguments": [ { "argumentTypes": null, - "id": 905, + "id": 909, "name": "beneficiary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 64, - "src": "11076:11:0", + "src": "11104:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12536,18 +12574,18 @@ "typeString": "address" } ], - "id": 904, + "id": 908, "name": "selfdestruct", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1251, - "src": "11063:12:0", + "referencedDeclaration": 1255, + "src": "11091:12:0", "typeDescriptions": { "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 906, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -12555,89 +12593,89 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11063:25:0", + "src": "11091:25:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 907, + "id": 911, "nodeType": "ExpressionStatement", - "src": "11063:25:0" + "src": "11091:25:0" } ] }, "documentation": null, - "id": 909, + "id": 913, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 870, + "id": 874, "modifierName": { "argumentTypes": null, - "id": 869, + "id": 873, "name": "onlyTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "10750:11:0", + "referencedDeclaration": 1079, + "src": "10778:11:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "10750:11:0" + "src": "10778:11:0" }, { "arguments": null, - "id": 872, + "id": 876, "modifierName": { "argumentTypes": null, - "id": 871, + "id": 875, "name": "onlyFrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "10762:10:0", + "referencedDeclaration": 1021, + "src": "10790:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "10762:10:0" + "src": "10790:10:0" } ], "name": "destroy", "nodeType": "FunctionDefinition", "parameters": { - "id": 868, + "id": 872, "nodeType": "ParameterList", "parameters": [], - "src": "10740:2:0" + "src": "10768:2:0" }, "payable": false, "returnParameters": { - "id": 873, + "id": 877, "nodeType": "ParameterList", "parameters": [], - "src": "10773:0:0" + "src": "10801:0:0" }, - "scope": 1076, - "src": "10724:371:0", + "scope": 1080, + "src": "10752:371:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 923, + "id": 927, "nodeType": "Block", - "src": "11172:57:0", + "src": "11200:57:0", "statements": [ { "expression": { @@ -12646,7 +12684,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 921, + "id": 925, "isConstant": false, "isLValue": false, "isPure": false, @@ -12657,14 +12695,14 @@ { "argumentTypes": null, "hexValue": "32", - "id": 918, + "id": 922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11205:1:0", + "src": "11233:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -12682,32 +12720,32 @@ ], "expression": { "argumentTypes": null, - "id": 916, + "id": 920, "name": "valueVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "11189:11:0", + "referencedDeclaration": 915, + "src": "11217:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 917, + "id": 921, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1169, - "src": "11189:15:0", + "referencedDeclaration": 1173, + "src": "11217:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 919, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, @@ -12715,7 +12753,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11189:18:0", + "src": "11217:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12725,32 +12763,32 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 920, + "id": 924, "name": "amountRaised", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 56, - "src": "11210:12:0", + "src": "11238:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11189:33:0", + "src": "11217:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 915, - "id": 922, + "functionReturnParameters": 919, + "id": 926, "nodeType": "Return", - "src": "11182:40:0" + "src": "11210:40:0" } ] }, "documentation": null, - "id": 924, + "id": 928, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -12758,16 +12796,16 @@ "name": "isMajorityVoting", "nodeType": "FunctionDefinition", "parameters": { - "id": 912, + "id": 916, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 911, + "id": 915, "name": "valueVoting", "nodeType": "VariableDeclaration", - "scope": 924, - "src": "11127:16:0", + "scope": 928, + "src": "11155:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12775,10 +12813,10 @@ "typeString": "uint256" }, "typeName": { - "id": 910, + "id": 914, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11127:4:0", + "src": "11155:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12788,20 +12826,20 @@ "visibility": "internal" } ], - "src": "11126:18:0" + "src": "11154:18:0" }, "payable": false, "returnParameters": { - "id": 915, + "id": 919, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 914, + "id": 918, "name": "", "nodeType": "VariableDeclaration", - "scope": 924, - "src": "11166:4:0", + "scope": 928, + "src": "11194:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12809,10 +12847,10 @@ "typeString": "bool" }, "typeName": { - "id": 913, + "id": 917, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11166:4:0", + "src": "11194:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12822,25 +12860,25 @@ "visibility": "internal" } ], - "src": "11165:6:0" + "src": "11193:6:0" }, - "scope": 1076, - "src": "11101:128:0", + "scope": 1080, + "src": "11129:128:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 954, + "id": 958, "nodeType": "Block", - "src": "11289:180:0", + "src": "11317:180:0", "statements": [ { "body": { - "id": 950, + "id": 954, "nodeType": "Block", - "src": "11342:99:0", + "src": "11370:99:0", "statements": [ { "condition": { @@ -12849,7 +12887,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 945, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, @@ -12858,18 +12896,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 940, + "id": 944, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "11360:3:0", + "referencedDeclaration": 1247, + "src": "11388:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 941, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -12877,7 +12915,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11360:10:0", + "src": "11388:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12889,26 +12927,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 942, + "id": 946, "name": "trustees", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, - "src": "11374:8:0", + "src": "11402:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 944, + "id": 948, "indexExpression": { "argumentTypes": null, - "id": 943, + "id": 947, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "11383:1:0", + "referencedDeclaration": 934, + "src": "11411:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12919,39 +12957,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11374:11:0", + "src": "11402:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "11360:25:0", + "src": "11388:25:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 949, + "id": 953, "nodeType": "IfStatement", - "src": "11356:75:0", + "src": "11384:75:0", "trueBody": { - "id": 948, + "id": 952, "nodeType": "Block", - "src": "11387:44:0", + "src": "11415:44:0", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 946, + "id": 950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11412:4:0", + "src": "11440:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12959,10 +12997,10 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 947, + "functionReturnParameters": 932, + "id": 951, "nodeType": "Return", - "src": "11405:11:0" + "src": "11433:11:0" } ] } @@ -12975,19 +13013,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 936, + "id": 940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 933, + "id": 937, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "11316:1:0", + "referencedDeclaration": 934, + "src": "11344:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12999,18 +13037,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 934, + "id": 938, "name": "trustees", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, - "src": "11320:8:0", + "src": "11348:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 935, + "id": 939, "isConstant": false, "isLValue": true, "isPure": false, @@ -13018,31 +13056,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11320:15:0", + "src": "11348:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11316:19:0", + "src": "11344:19:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 951, + "id": 955, "initializationExpression": { "assignments": [ - 930 + 934 ], "declarations": [ { "constant": false, - "id": 930, + "id": 934, "name": "i", "nodeType": "VariableDeclaration", - "scope": 955, - "src": "11304:6:0", + "scope": 959, + "src": "11332:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13050,10 +13088,10 @@ "typeString": "uint256" }, "typeName": { - "id": 929, + "id": 933, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11304:4:0", + "src": "11332:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13063,18 +13101,18 @@ "visibility": "internal" } ], - "id": 932, + "id": 936, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 931, + "id": 935, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11313:1:0", + "src": "11341:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13083,12 +13121,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "11304:10:0" + "src": "11332:10:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 938, + "id": 942, "isConstant": false, "isLValue": false, "isPure": false, @@ -13096,15 +13134,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "11337:3:0", + "src": "11365:3:0", "subExpression": { "argumentTypes": null, - "id": 937, + "id": 941, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "11337:1:0", + "referencedDeclaration": 934, + "src": "11365:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13115,25 +13153,25 @@ "typeString": "uint256" } }, - "id": 939, + "id": 943, "nodeType": "ExpressionStatement", - "src": "11337:3:0" + "src": "11365:3:0" }, "nodeType": "ForStatement", - "src": "11299:142:0" + "src": "11327:142:0" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 952, + "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11457:5:0", + "src": "11485:5:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13141,15 +13179,15 @@ }, "value": "false" }, - "functionReturnParameters": 928, - "id": 953, + "functionReturnParameters": 932, + "id": 957, "nodeType": "Return", - "src": "11450:12:0" + "src": "11478:12:0" } ] }, "documentation": null, - "id": 955, + "id": 959, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13157,23 +13195,23 @@ "name": "isCallerTrustee", "nodeType": "FunctionDefinition", "parameters": { - "id": 925, + "id": 929, "nodeType": "ParameterList", "parameters": [], - "src": "11259:2:0" + "src": "11287:2:0" }, "payable": false, "returnParameters": { - "id": 928, + "id": 932, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 931, "name": "", "nodeType": "VariableDeclaration", - "scope": 955, - "src": "11283:4:0", + "scope": 959, + "src": "11311:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13181,10 +13219,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 930, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11283:4:0", + "src": "11311:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13194,19 +13232,19 @@ "visibility": "internal" } ], - "src": "11282:6:0" + "src": "11310:6:0" }, - "scope": 1076, - "src": "11235:234:0", + "scope": 1080, + "src": "11263:234:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 967, + "id": 971, "nodeType": "Block", - "src": "11522:62:0", + "src": "11550:62:0", "statements": [ { "expression": { @@ -13215,7 +13253,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 965, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -13226,19 +13264,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 962, + "id": 966, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 960, + "id": 964, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "11539:3:0", + "referencedDeclaration": 1249, + "src": "11567:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13248,18 +13286,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 961, + "id": 965, "name": "deadline", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, - "src": "11546:8:0", + "src": "11574:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11539:15:0", + "src": "11567:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13269,7 +13307,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 964, + "id": 968, "isConstant": false, "isLValue": false, "isPure": false, @@ -13277,15 +13315,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "11558:19:0", + "src": "11586:19:0", "subExpression": { "argumentTypes": null, - "id": 963, + "id": 967, "name": "isRaiseGoalReached", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46, - "src": "11559:18:0", + "src": "11587:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13296,21 +13334,21 @@ "typeString": "bool" } }, - "src": "11539:38:0", + "src": "11567:38:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 959, - "id": 966, + "functionReturnParameters": 963, + "id": 970, "nodeType": "Return", - "src": "11532:45:0" + "src": "11560:45:0" } ] }, "documentation": null, - "id": 968, + "id": 972, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13318,23 +13356,23 @@ "name": "isFailed", "nodeType": "FunctionDefinition", "parameters": { - "id": 956, + "id": 960, "nodeType": "ParameterList", "parameters": [], - "src": "11492:2:0" + "src": "11520:2:0" }, "payable": false, "returnParameters": { - "id": 959, + "id": 963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 958, + "id": 962, "name": "", "nodeType": "VariableDeclaration", - "scope": 968, - "src": "11516:4:0", + "scope": 972, + "src": "11544:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13342,10 +13380,10 @@ "typeString": "bool" }, "typeName": { - "id": 957, + "id": 961, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11516:4:0", + "src": "11544:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13355,19 +13393,19 @@ "visibility": "internal" } ], - "src": "11515:6:0" + "src": "11543:6:0" }, - "scope": 1076, - "src": "11475:109:0", + "scope": 1080, + "src": "11503:109:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 984, + "id": 988, "nodeType": "Block", - "src": "11703:90:0", + "src": "11731:90:0", "statements": [ { "expression": { @@ -13378,26 +13416,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 977, + "id": 981, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "11721:12:0", + "src": "11749:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 979, + "id": 983, "indexExpression": { "argumentTypes": null, - "id": 978, + "id": 982, "name": "contributorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11734:18:0", + "referencedDeclaration": 974, + "src": "11762:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13408,13 +13446,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11721:32:0", + "src": "11749:32:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 980, + "id": 984, "isConstant": false, "isLValue": true, "isPure": false, @@ -13422,21 +13460,21 @@ "memberName": "milestoneNoVotes", "nodeType": "MemberAccess", "referencedDeclaration": 25, - "src": "11721:49:0", + "src": "11749:49:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage", "typeString": "bool[] storage ref" } }, - "id": 982, + "id": 986, "indexExpression": { "argumentTypes": null, - "id": 981, + "id": 985, "name": "milestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 972, - "src": "11771:14:0", + "referencedDeclaration": 976, + "src": "11799:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13447,21 +13485,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11721:65:0", + "src": "11749:65:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 976, - "id": 983, + "functionReturnParameters": 980, + "id": 987, "nodeType": "Return", - "src": "11714:72:0" + "src": "11742:72:0" } ] }, "documentation": null, - "id": 985, + "id": 989, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13469,16 +13507,16 @@ "name": "getContributorMilestoneVote", "nodeType": "FunctionDefinition", "parameters": { - "id": 973, + "id": 977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 970, + "id": 974, "name": "contributorAddress", "nodeType": "VariableDeclaration", - "scope": 985, - "src": "11627:26:0", + "scope": 989, + "src": "11655:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13486,10 +13524,10 @@ "typeString": "address" }, "typeName": { - "id": 969, + "id": 973, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11627:7:0", + "src": "11655:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13500,11 +13538,11 @@ }, { "constant": false, - "id": 972, + "id": 976, "name": "milestoneIndex", "nodeType": "VariableDeclaration", - "scope": 985, - "src": "11655:19:0", + "scope": 989, + "src": "11683:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13512,10 +13550,10 @@ "typeString": "uint256" }, "typeName": { - "id": 971, + "id": 975, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11655:4:0", + "src": "11683:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13525,20 +13563,20 @@ "visibility": "internal" } ], - "src": "11626:49:0" + "src": "11654:49:0" }, "payable": false, "returnParameters": { - "id": 976, + "id": 980, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 975, + "id": 979, "name": "", "nodeType": "VariableDeclaration", - "scope": 985, - "src": "11697:4:0", + "scope": 989, + "src": "11725:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13546,10 +13584,10 @@ "typeString": "bool" }, "typeName": { - "id": 974, + "id": 978, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11697:4:0", + "src": "11725:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13559,19 +13597,19 @@ "visibility": "internal" } ], - "src": "11696:6:0" + "src": "11724:6:0" }, - "scope": 1076, - "src": "11590:203:0", + "scope": 1080, + "src": "11618:203:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 997, + "id": 1001, "nodeType": "Block", - "src": "11896:75:0", + "src": "11924:75:0", "statements": [ { "expression": { @@ -13580,26 +13618,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 996, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "11913:12:0", + "src": "11941:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 994, + "id": 998, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 997, "name": "contributorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "11926:18:0", + "referencedDeclaration": 991, + "src": "11954:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13610,13 +13648,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11913:32:0", + "src": "11941:32:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 995, + "id": 999, "isConstant": false, "isLValue": true, "isPure": false, @@ -13624,21 +13662,21 @@ "memberName": "contributionAmount", "nodeType": "MemberAccess", "referencedDeclaration": 22, - "src": "11913:51:0", + "src": "11941:51:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 991, - "id": 996, + "functionReturnParameters": 995, + "id": 1000, "nodeType": "Return", - "src": "11906:58:0" + "src": "11934:58:0" } ] }, "documentation": null, - "id": 998, + "id": 1002, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13646,16 +13684,16 @@ "name": "getContributorContributionAmount", "nodeType": "FunctionDefinition", "parameters": { - "id": 988, + "id": 992, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 987, + "id": 991, "name": "contributorAddress", "nodeType": "VariableDeclaration", - "scope": 998, - "src": "11841:26:0", + "scope": 1002, + "src": "11869:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13663,10 +13701,10 @@ "typeString": "address" }, "typeName": { - "id": 986, + "id": 990, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11841:7:0", + "src": "11869:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13676,20 +13714,20 @@ "visibility": "internal" } ], - "src": "11840:28:0" + "src": "11868:28:0" }, "payable": false, "returnParameters": { - "id": 991, + "id": 995, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 990, + "id": 994, "name": "", "nodeType": "VariableDeclaration", - "scope": 998, - "src": "11890:4:0", + "scope": 1002, + "src": "11918:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13697,10 +13735,10 @@ "typeString": "uint256" }, "typeName": { - "id": 989, + "id": 993, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11890:4:0", + "src": "11918:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13710,19 +13748,19 @@ "visibility": "internal" } ], - "src": "11889:6:0" + "src": "11917:6:0" }, - "scope": 1076, - "src": "11799:172:0", + "scope": 1080, + "src": "11827:172:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1007, + "id": 1011, "nodeType": "Block", - "src": "12031:42:0", + "src": "12059:42:0", "statements": [ { "expression": { @@ -13730,12 +13768,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1004, + "id": 1008, "name": "freezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11, - "src": "12053:12:0", + "src": "12081:12:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" @@ -13749,20 +13787,20 @@ "typeString": "enum CrowdFund.FreezeReason" } ], - "id": 1003, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12048:4:0", + "src": "12076:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1005, + "id": 1009, "isConstant": false, "isLValue": false, "isPure": false, @@ -13770,21 +13808,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12048:18:0", + "src": "12076:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1002, - "id": 1006, + "functionReturnParameters": 1006, + "id": 1010, "nodeType": "Return", - "src": "12041:25:0" + "src": "12069:25:0" } ] }, "documentation": null, - "id": 1008, + "id": 1012, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13792,23 +13830,23 @@ "name": "getFreezeReason", "nodeType": "FunctionDefinition", "parameters": { - "id": 999, + "id": 1003, "nodeType": "ParameterList", "parameters": [], - "src": "12001:2:0" + "src": "12029:2:0" }, "payable": false, "returnParameters": { - "id": 1002, + "id": 1006, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1001, + "id": 1005, "name": "", "nodeType": "VariableDeclaration", - "scope": 1008, - "src": "12025:4:0", + "scope": 1012, + "src": "12053:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13816,10 +13854,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1000, + "id": 1004, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12025:4:0", + "src": "12053:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13829,19 +13867,19 @@ "visibility": "internal" } ], - "src": "12024:6:0" + "src": "12052:6:0" }, - "scope": 1076, - "src": "11977:96:0", + "scope": 1080, + "src": "12005:96:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1016, + "id": 1020, "nodeType": "Block", - "src": "12101:70:0", + "src": "12129:70:0", "statements": [ { "expression": { @@ -13849,12 +13887,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1011, + "id": 1015, "name": "frozen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44, - "src": "12119:6:0", + "src": "12147:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13863,14 +13901,14 @@ { "argumentTypes": null, "hexValue": "43726f776446756e64206973206e6f742066726f7a656e", - "id": 1012, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12127:25:0", + "src": "12155:25:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", @@ -13890,21 +13928,21 @@ "typeString": "literal_string \"CrowdFund is not frozen\"" } ], - "id": 1010, + "id": 1014, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12111:7:0", + "referencedDeclaration": 1251, + "src": "12139:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1013, + "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, @@ -13912,41 +13950,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12111:42:0", + "src": "12139:42:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1014, + "id": 1018, "nodeType": "ExpressionStatement", - "src": "12111:42:0" + "src": "12139:42:0" }, { - "id": 1015, + "id": 1019, "nodeType": "PlaceholderStatement", - "src": "12163:1:0" + "src": "12191:1:0" } ] }, "documentation": null, - "id": 1017, + "id": 1021, "name": "onlyFrozen", "nodeType": "ModifierDefinition", "parameters": { - "id": 1009, + "id": 1013, "nodeType": "ParameterList", "parameters": [], - "src": "12098:2:0" + "src": "12126:2:0" }, - "src": "12079:92:0", + "src": "12107:92:0", "visibility": "internal" }, { "body": { - "id": 1026, + "id": 1030, "nodeType": "Block", - "src": "12201:67:0", + "src": "12229:67:0", "statements": [ { "expression": { @@ -13954,7 +13992,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1021, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, @@ -13962,15 +14000,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "12219:7:0", + "src": "12247:7:0", "subExpression": { "argumentTypes": null, - "id": 1020, + "id": 1024, "name": "frozen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44, - "src": "12220:6:0", + "src": "12248:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13984,14 +14022,14 @@ { "argumentTypes": null, "hexValue": "43726f776446756e642069732066726f7a656e", - "id": 1022, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12228:21:0", + "src": "12256:21:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21ebfed987d130de5e469bef5346c6c759f8769c3909e5f178aa85e98366503d", @@ -14011,21 +14049,21 @@ "typeString": "literal_string \"CrowdFund is frozen\"" } ], - "id": 1019, + "id": 1023, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12211:7:0", + "referencedDeclaration": 1251, + "src": "12239:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1023, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, @@ -14033,41 +14071,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12211:39:0", + "src": "12239:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1024, + "id": 1028, "nodeType": "ExpressionStatement", - "src": "12211:39:0" + "src": "12239:39:0" }, { - "id": 1025, + "id": 1029, "nodeType": "PlaceholderStatement", - "src": "12260:1:0" + "src": "12288:1:0" } ] }, "documentation": null, - "id": 1027, + "id": 1031, "name": "onlyUnfrozen", "nodeType": "ModifierDefinition", "parameters": { - "id": 1018, + "id": 1022, "nodeType": "ParameterList", "parameters": [], - "src": "12198:2:0" + "src": "12226:2:0" }, - "src": "12177:91:0", + "src": "12205:91:0", "visibility": "internal" }, { "body": { - "id": 1035, + "id": 1039, "nodeType": "Block", - "src": "12296:84:0", + "src": "12324:84:0", "statements": [ { "expression": { @@ -14075,12 +14113,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1030, + "id": 1034, "name": "isRaiseGoalReached", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46, - "src": "12314:18:0", + "src": "12342:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14089,14 +14127,14 @@ { "argumentTypes": null, "hexValue": "526169736520676f616c206973206e6f742072656163686564", - "id": 1031, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12334:27:0", + "src": "12362:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d65d4721f73624ca6e381e7ad4c000f40a20c0abe88c0be62360bb906d10ffbe", @@ -14116,21 +14154,21 @@ "typeString": "literal_string \"Raise goal is not reached\"" } ], - "id": 1029, + "id": 1033, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12306:7:0", + "referencedDeclaration": 1251, + "src": "12334:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1032, + "id": 1036, "isConstant": false, "isLValue": false, "isPure": false, @@ -14138,41 +14176,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12306:56:0", + "src": "12334:56:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1033, + "id": 1037, "nodeType": "ExpressionStatement", - "src": "12306:56:0" + "src": "12334:56:0" }, { - "id": 1034, + "id": 1038, "nodeType": "PlaceholderStatement", - "src": "12372:1:0" + "src": "12400:1:0" } ] }, "documentation": null, - "id": 1036, + "id": 1040, "name": "onlyRaised", "nodeType": "ModifierDefinition", "parameters": { - "id": 1028, + "id": 1032, "nodeType": "ParameterList", "parameters": [], - "src": "12293:2:0" + "src": "12321:2:0" }, - "src": "12274:106:0", + "src": "12302:106:0", "visibility": "internal" }, { "body": { - "id": 1049, + "id": 1053, "nodeType": "Block", - "src": "12409:103:0", + "src": "12437:103:0", "statements": [ { "expression": { @@ -14184,7 +14222,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1044, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": false, @@ -14195,19 +14233,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1041, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1039, + "id": 1043, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "12427:3:0", + "referencedDeclaration": 1249, + "src": "12455:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14217,18 +14255,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1040, + "id": 1044, "name": "deadline", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, - "src": "12434:8:0", + "src": "12462:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12427:15:0", + "src": "12455:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14238,7 +14276,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 1043, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -14246,15 +14284,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "12446:19:0", + "src": "12474:19:0", "subExpression": { "argumentTypes": null, - "id": 1042, + "id": 1046, "name": "isRaiseGoalReached", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46, - "src": "12447:18:0", + "src": "12475:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14265,7 +14303,7 @@ "typeString": "bool" } }, - "src": "12427:38:0", + "src": "12455:38:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14274,14 +14312,14 @@ { "argumentTypes": null, "hexValue": "43726f776446756e64206973206e6f74206f6e676f696e67", - "id": 1045, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12467:26:0", + "src": "12495:26:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_843cc2d7a1ba19041b40561b89d21c7571d29e5c5e2d0d1510f441aea3fc1747", @@ -14301,21 +14339,21 @@ "typeString": "literal_string \"CrowdFund is not ongoing\"" } ], - "id": 1038, + "id": 1042, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12419:7:0", + "referencedDeclaration": 1251, + "src": "12447:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1046, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": false, @@ -14323,41 +14361,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12419:75:0", + "src": "12447:75:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1047, + "id": 1051, "nodeType": "ExpressionStatement", - "src": "12419:75:0" + "src": "12447:75:0" }, { - "id": 1048, + "id": 1052, "nodeType": "PlaceholderStatement", - "src": "12504:1:0" + "src": "12532:1:0" } ] }, "documentation": null, - "id": 1050, + "id": 1054, "name": "onlyOnGoing", "nodeType": "ModifierDefinition", "parameters": { - "id": 1037, + "id": 1041, "nodeType": "ParameterList", "parameters": [], - "src": "12406:2:0" + "src": "12434:2:0" }, - "src": "12386:126:0", + "src": "12414:126:0", "visibility": "internal" }, { "body": { - "id": 1064, + "id": 1068, "nodeType": "Block", - "src": "12545:116:0", + "src": "12573:116:0", "statements": [ { "expression": { @@ -14369,7 +14407,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1059, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -14380,34 +14418,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1053, + "id": 1057, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "12563:12:0", + "src": "12591:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 1056, + "id": 1060, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1054, + "id": 1058, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "12576:3:0", + "referencedDeclaration": 1247, + "src": "12604:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1055, + "id": 1059, "isConstant": false, "isLValue": false, "isPure": false, @@ -14415,7 +14453,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12576:10:0", + "src": "12604:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14426,13 +14464,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12563:24:0", + "src": "12591:24:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 1057, + "id": 1061, "isConstant": false, "isLValue": true, "isPure": false, @@ -14440,7 +14478,7 @@ "memberName": "contributionAmount", "nodeType": "MemberAccess", "referencedDeclaration": 22, - "src": "12563:43:0", + "src": "12591:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14451,14 +14489,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1058, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12610:1:0", + "src": "12638:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14466,7 +14504,7 @@ }, "value": "0" }, - "src": "12563:48:0", + "src": "12591:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14475,14 +14513,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f74206120636f6e7472696275746f72", - "id": 1060, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12613:29:0", + "src": "12641:29:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_27c7012fc5b199883f3d6c1e7d0d3c9cd967752b2ed8ba1703713f2d84425e7b", @@ -14502,21 +14540,21 @@ "typeString": "literal_string \"Caller is not a contributor\"" } ], - "id": 1052, + "id": 1056, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12555:7:0", + "referencedDeclaration": 1251, + "src": "12583:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1061, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, @@ -14524,41 +14562,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12555:88:0", + "src": "12583:88:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1062, + "id": 1066, "nodeType": "ExpressionStatement", - "src": "12555:88:0" + "src": "12583:88:0" }, { - "id": 1063, + "id": 1067, "nodeType": "PlaceholderStatement", - "src": "12653:1:0" + "src": "12681:1:0" } ] }, "documentation": null, - "id": 1065, + "id": 1069, "name": "onlyContributor", "nodeType": "ModifierDefinition", "parameters": { - "id": 1051, + "id": 1055, "nodeType": "ParameterList", "parameters": [], - "src": "12542:2:0" + "src": "12570:2:0" }, - "src": "12518:143:0", + "src": "12546:143:0", "visibility": "internal" }, { "body": { - "id": 1074, + "id": 1078, "nodeType": "Block", - "src": "12690:81:0", + "src": "12718:81:0", "statements": [ { "expression": { @@ -14569,18 +14607,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1068, + "id": 1072, "name": "isCallerTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "12708:15:0", + "referencedDeclaration": 959, + "src": "12736:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1069, + "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, @@ -14588,7 +14626,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12708:17:0", + "src": "12736:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14597,14 +14635,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f7420612074727573746565", - "id": 1070, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12727:25:0", + "src": "12755:25:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_efecdf3be8b72bfbf67a07f441dfdb20b968592ad6d7fba48a91dfa72a34f2d8", @@ -14624,21 +14662,21 @@ "typeString": "literal_string \"Caller is not a trustee\"" } ], - "id": 1067, + "id": 1071, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12700:7:0", + "referencedDeclaration": 1251, + "src": "12728:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1071, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": false, @@ -14646,51 +14684,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12700:53:0", + "src": "12728:53:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1076, "nodeType": "ExpressionStatement", - "src": "12700:53:0" + "src": "12728:53:0" }, { - "id": 1073, + "id": 1077, "nodeType": "PlaceholderStatement", - "src": "12763:1:0" + "src": "12791:1:0" } ] }, "documentation": null, - "id": 1075, + "id": 1079, "name": "onlyTrustee", "nodeType": "ModifierDefinition", "parameters": { - "id": 1066, + "id": 1070, "nodeType": "ParameterList", "parameters": [], - "src": "12687:2:0" + "src": "12715:2:0" }, - "src": "12667:104:0", + "src": "12695:104:0", "visibility": "internal" } ], - "scope": 1077, - "src": "87:12687:0" + "scope": 1081, + "src": "87:12715:0" } ], - "src": "0:12775:0" + "src": "0:12802:0" }, "legacyAST": { - "absolutePath": "/Users/will/Documents/grant-monorepo/contract/contracts/CrowdFund.sol", + "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", "exportedSymbols": { "CrowdFund": [ - 1076 + 1080 ] }, - "id": 1077, + "id": 1081, "nodeType": "SourceUnit", "nodes": [ { @@ -14709,8 +14747,8 @@ "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 1077, - "sourceUnit": 1229, + "scope": 1081, + "sourceUnit": 1233, "src": "25:59:0", "symbolAliases": [], "unitAlias": "" @@ -14721,9 +14759,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1076, + "id": 1080, "linearizedBaseContracts": [ - 1076 + 1080 ], "name": "CrowdFund", "nodeType": "ContractDefinition", @@ -14735,10 +14773,10 @@ "id": 3, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1228, + "referencedDeclaration": 1232, "src": "118:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1228", + "typeIdentifier": "t_contract$_SafeMath_$1232", "typeString": "library SafeMath" } }, @@ -14787,7 +14825,7 @@ "id": 11, "name": "freezeReason", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "264:25:0", "stateVariable": true, "storageLocation": "default", @@ -14921,7 +14959,7 @@ ], "name": "Milestone", "nodeType": "StructDefinition", - "scope": 1076, + "scope": 1080, "src": "296:144:0", "visibility": "public" }, @@ -15046,7 +15084,7 @@ ], "name": "Contributor", "nodeType": "StructDefinition", - "scope": 1076, + "scope": 1080, "src": "446:197:0", "visibility": "public" }, @@ -15193,7 +15231,7 @@ "id": 44, "name": "frozen", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "776:18:0", "stateVariable": true, "storageLocation": "default", @@ -15219,7 +15257,7 @@ "id": 46, "name": "isRaiseGoalReached", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "800:30:0", "stateVariable": true, "storageLocation": "default", @@ -15245,7 +15283,7 @@ "id": 48, "name": "immediateFirstMilestonePayout", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "836:41:0", "stateVariable": true, "storageLocation": "default", @@ -15271,7 +15309,7 @@ "id": 50, "name": "milestoneVotingPeriod", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "883:33:0", "stateVariable": true, "storageLocation": "default", @@ -15297,7 +15335,7 @@ "id": 52, "name": "deadline", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "922:20:0", "stateVariable": true, "storageLocation": "default", @@ -15323,7 +15361,7 @@ "id": 54, "name": "raiseGoal", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "948:21:0", "stateVariable": true, "storageLocation": "default", @@ -15349,7 +15387,7 @@ "id": 56, "name": "amountRaised", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "975:24:0", "stateVariable": true, "storageLocation": "default", @@ -15375,7 +15413,7 @@ "id": 58, "name": "frozenBalance", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1005:25:0", "stateVariable": true, "storageLocation": "default", @@ -15401,7 +15439,7 @@ "id": 60, "name": "minimumContributionAmount", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1036:37:0", "stateVariable": true, "storageLocation": "default", @@ -15427,7 +15465,7 @@ "id": 62, "name": "amountVotingForRefund", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1079:33:0", "stateVariable": true, "storageLocation": "default", @@ -15453,7 +15491,7 @@ "id": 64, "name": "beneficiary", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1118:26:0", "stateVariable": true, "storageLocation": "default", @@ -15479,7 +15517,7 @@ "id": 68, "name": "contributors", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1150:51:0", "stateVariable": true, "storageLocation": "default", @@ -15526,7 +15564,7 @@ "id": 71, "name": "contributorList", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1207:32:0", "stateVariable": true, "storageLocation": "default", @@ -15562,7 +15600,7 @@ "id": 74, "name": "trustees", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1302:25:0", "stateVariable": true, "storageLocation": "default", @@ -15598,7 +15636,7 @@ "id": 77, "name": "milestones", "nodeType": "VariableDeclaration", - "scope": 1076, + "scope": 1080, "src": "1401:29:0", "stateVariable": true, "storageLocation": "default", @@ -15725,10 +15763,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "1689:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -15942,10 +15980,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "1767:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -16159,10 +16197,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "1894:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -16411,10 +16449,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "2338:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -16506,7 +16544,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "2440:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -16935,10 +16973,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "2713:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -17192,7 +17230,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "3026:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -17752,7 +17790,7 @@ "parameters": [], "src": "1679:0:0" }, - "scope": 1076, + "scope": 1080, "src": "1437:1931:0", "stateMutability": "nonpayable", "superFunction": null, @@ -17808,7 +17846,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "3521:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -17857,7 +17895,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "3504:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -17964,10 +18002,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "3541:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -18044,7 +18082,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4076:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -18253,10 +18291,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "4186:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -18319,7 +18357,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4393:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -18430,7 +18468,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4776:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -18489,7 +18527,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4857:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -18544,7 +18582,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4822:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -18597,7 +18635,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "4809:47:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -18670,7 +18708,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4457:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -18715,7 +18753,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4521:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -18913,7 +18951,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "4713:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -19157,7 +19195,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "5033:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -19186,7 +19224,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "5045:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -19265,7 +19303,7 @@ "name": "onlyOnGoing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1050, + "referencedDeclaration": 1054, "src": "3411:11:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -19284,7 +19322,7 @@ "name": "onlyUnfrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, + "referencedDeclaration": 1031, "src": "3423:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -19310,7 +19348,7 @@ "parameters": [], "src": "3436:0:0" }, - "scope": 1076, + "scope": 1080, "src": "3374:1688:0", "stateMutability": "payable", "superFunction": null, @@ -19522,7 +19560,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "5301:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19642,7 +19680,7 @@ "name": "isMajorityVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 924, + "referencedDeclaration": 928, "src": "5343:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", @@ -19733,10 +19771,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "5460:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -20303,10 +20341,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "5721:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -20598,7 +20636,7 @@ "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1169, + "referencedDeclaration": 1173, "src": "6660:25:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -20633,7 +20671,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "6652:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20647,7 +20685,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "6652:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -20873,7 +20911,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "6326:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20887,7 +20925,7 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1227, + "referencedDeclaration": 1231, "src": "6326:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -21045,7 +21083,7 @@ "name": "onlyTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, + "referencedDeclaration": 1079, "src": "5120:11:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -21064,7 +21102,7 @@ "name": "onlyRaised", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, + "referencedDeclaration": 1040, "src": "5132:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -21083,7 +21121,7 @@ "name": "onlyUnfrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, + "referencedDeclaration": 1031, "src": "5143:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -21136,7 +21174,7 @@ "parameters": [], "src": "5156:0:0" }, - "scope": 1076, + "scope": 1080, "src": "5068:1638:0", "stateMutability": "nonpayable", "superFunction": null, @@ -21144,9 +21182,9 @@ }, { "body": { - "id": 589, + "id": 591, "nodeType": "Block", - "src": "6811:930:0", + "src": "6811:940:0", "statements": [ { "assignments": [ @@ -21158,7 +21196,7 @@ "id": 494, "name": "existingMilestoneNoVote", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "6821:28:0", "stateVariable": false, "storageLocation": "default", @@ -21209,7 +21247,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "6865:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -21366,10 +21404,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "6910:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -21404,7 +21442,7 @@ "id": 511, "name": "milestoneVotingStarted", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "7017:27:0", "stateVariable": false, "storageLocation": "default", @@ -21533,7 +21571,7 @@ "id": 520, "name": "votePeriodHasEnded", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "7104:23:0", "stateVariable": false, "storageLocation": "default", @@ -21631,7 +21669,7 @@ "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, + "referencedDeclaration": 1249, "src": "7177:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21657,7 +21695,7 @@ "id": 529, "name": "onGoingVote", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "7190:16:0", "stateVariable": false, "storageLocation": "default", @@ -21795,10 +21833,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1251, "src": "7264:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -21859,7 +21897,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "7340:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -21986,258 +22024,277 @@ } }, "falseBody": { - "id": 587, - "nodeType": "Block", - "src": "7572:163:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "condition": { + "argumentTypes": null, + "id": 570, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 484, + "src": "7576:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 589, + "nodeType": "IfStatement", + "src": "7572:173:0", + "trueBody": { + "id": 588, + "nodeType": "Block", + "src": "7582:163:0", + "statements": [ + { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 570, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7586:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 572, - "indexExpression": { - "argumentTypes": null, - "id": 571, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7597:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7586:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 573, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7586:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 579, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "7680:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 582, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 580, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "7693:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7693:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7680:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 583, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "7680:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 574, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7632:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 576, - "indexExpression": { - "argumentTypes": null, - "id": 575, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7643:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7632:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 577, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7632:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1227, - "src": "7632:47:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 584, + "id": 586, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7632:92:0", + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 571, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "7596:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", + "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" + } + }, + "id": 573, + "indexExpression": { + "argumentTypes": null, + "id": 572, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "7607:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7596:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$20_storage", + "typeString": "struct CrowdFund.Milestone storage ref" + } + }, + "id": 574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "amountVotingAgainstPayout", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "7596:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 580, + "name": "contributors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "7690:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", + "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" + } + }, + "id": 583, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 581, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "7703:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7703:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7690:24:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contributor_$30_storage", + "typeString": "struct CrowdFund.Contributor storage ref" + } + }, + "id": 584, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributionAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "7690:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 575, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "7642:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", + "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" + } + }, + "id": 577, + "indexExpression": { + "argumentTypes": null, + "id": 576, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "7653:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7642:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$20_storage", + "typeString": "struct CrowdFund.Milestone storage ref" + } + }, + "id": 578, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountVotingAgainstPayout", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "7642:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1231, + "src": "7642:47:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7642:92:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7596:138:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7586:138:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 586, - "nodeType": "ExpressionStatement", - "src": "7586:138:0" - } - ] + "id": 587, + "nodeType": "ExpressionStatement", + "src": "7596:138:0" + } + ] + } }, - "id": 588, + "id": 590, "nodeType": "IfStatement", - "src": "7392:343:0", + "src": "7392:353:0", "trueBody": { "id": 569, "nodeType": "Block", @@ -22338,7 +22395,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, + "referencedDeclaration": 1247, "src": "7524:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -22455,7 +22512,7 @@ "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1203, + "referencedDeclaration": 1207, "src": "7463:47:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", @@ -22492,7 +22549,7 @@ ] }, "documentation": null, - "id": 590, + "id": 592, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -22506,7 +22563,7 @@ "name": "onlyContributor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, + "referencedDeclaration": 1069, "src": "6771:15:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -22525,7 +22582,7 @@ "name": "onlyRaised", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, + "referencedDeclaration": 1040, "src": "6787:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -22544,7 +22601,7 @@ "name": "onlyUnfrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, + "referencedDeclaration": 1031, "src": "6798:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -22566,7 +22623,7 @@ "id": 482, "name": "index", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "6741:10:0", "stateVariable": false, "storageLocation": "default", @@ -22592,7 +22649,7 @@ "id": 484, "name": "vote", "nodeType": "VariableDeclaration", - "scope": 590, + "scope": 592, "src": "6753:9:0", "stateVariable": false, "storageLocation": "default", @@ -22623,30 +22680,30 @@ "parameters": [], "src": "6811:0:0" }, - "scope": 1076, - "src": "6712:1029:0", + "scope": 1080, + "src": "6712:1039:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 676, + "id": 678, "nodeType": "Block", - "src": "7818:890:0", + "src": "7828:890:0", "statements": [ { "assignments": [ - 600 + 602 ], "declarations": [ { "constant": false, - "id": 600, + "id": 602, "name": "voteDeadlineHasPassed", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "7828:26:0", + "scope": 679, + "src": "7838:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22654,10 +22711,10 @@ "typeString": "bool" }, "typeName": { - "id": 599, + "id": 601, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7828:4:0", + "src": "7838:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22667,14 +22724,14 @@ "visibility": "internal" } ], - "id": 607, + "id": 609, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 606, + "id": 608, "isConstant": false, "isLValue": false, "isPure": false, @@ -22685,26 +22742,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 601, + "id": 603, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "7857:10:0", + "src": "7867:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 603, + "id": 605, "indexExpression": { "argumentTypes": null, - "id": 602, + "id": 604, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "7868:5:0", + "referencedDeclaration": 594, + "src": "7878:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22715,13 +22772,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7857:17:0", + "src": "7867:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 604, + "id": 606, "isConstant": false, "isLValue": true, "isPure": false, @@ -22729,7 +22786,7 @@ "memberName": "payoutRequestVoteDeadline", "nodeType": "MemberAccess", "referencedDeclaration": 17, - "src": "7857:43:0", + "src": "7867:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22739,38 +22796,38 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 605, + "id": 607, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "7903:3:0", + "referencedDeclaration": 1249, + "src": "7913:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7857:49:0", + "src": "7867:49:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "7828:78:0" + "src": "7838:78:0" }, { "assignments": [ - 609 + 611 ], "declarations": [ { "constant": false, - "id": 609, + "id": 611, "name": "majorityVotedNo", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "7916:20:0", + "scope": 679, + "src": "7926:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22778,10 +22835,10 @@ "typeString": "bool" }, "typeName": { - "id": 608, + "id": 610, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7916:4:0", + "src": "7926:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22791,7 +22848,7 @@ "visibility": "internal" } ], - "id": 616, + "id": 618, "initialValue": { "argumentTypes": null, "arguments": [ @@ -22801,26 +22858,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 611, + "id": 613, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "7956:10:0", + "src": "7966:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 613, + "id": 615, "indexExpression": { "argumentTypes": null, - "id": 612, + "id": 614, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "7967:5:0", + "referencedDeclaration": 594, + "src": "7977:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22831,13 +22888,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7956:17:0", + "src": "7966:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 614, + "id": 616, "isConstant": false, "isLValue": true, "isPure": false, @@ -22845,7 +22902,7 @@ "memberName": "amountVotingAgainstPayout", "nodeType": "MemberAccess", "referencedDeclaration": 15, - "src": "7956:43:0", + "src": "7966:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22859,18 +22916,18 @@ "typeString": "uint256" } ], - "id": 610, + "id": 612, "name": "isMajorityVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "7939:16:0", + "referencedDeclaration": 928, + "src": "7949:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 615, + "id": 617, "isConstant": false, "isLValue": false, "isPure": false, @@ -22878,27 +22935,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7939:61:0", + "src": "7949:61:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "7916:84:0" + "src": "7926:84:0" }, { "assignments": [ - 618 + 620 ], "declarations": [ { "constant": false, - "id": 618, + "id": 620, "name": "milestoneAlreadyPaid", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "8010:25:0", + "scope": 679, + "src": "8020:25:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22906,10 +22963,10 @@ "typeString": "bool" }, "typeName": { - "id": 617, + "id": 619, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8010:4:0", + "src": "8020:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22919,33 +22976,33 @@ "visibility": "internal" } ], - "id": 623, + "id": 625, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 619, + "id": 621, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "8038:10:0", + "src": "8048:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 621, + "id": 623, "indexExpression": { "argumentTypes": null, - "id": 620, + "id": 622, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "8049:5:0", + "referencedDeclaration": 594, + "src": "8059:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22956,13 +23013,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8038:17:0", + "src": "8048:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 622, + "id": 624, "isConstant": false, "isLValue": true, "isPure": false, @@ -22970,14 +23027,14 @@ "memberName": "paid", "nodeType": "MemberAccess", "referencedDeclaration": 19, - "src": "8038:22:0", + "src": "8048:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "8010:50:0" + "src": "8020:50:0" }, { "condition": { @@ -22986,7 +23043,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 630, + "id": 632, "isConstant": false, "isLValue": false, "isPure": false, @@ -22997,19 +23054,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 627, + "id": 629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 624, + "id": 626, "name": "voteDeadlineHasPassed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "8074:21:0", + "referencedDeclaration": 602, + "src": "8084:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23019,7 +23076,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 626, + "id": 628, "isConstant": false, "isLValue": false, "isPure": false, @@ -23027,15 +23084,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "8099:16:0", + "src": "8109:16:0", "subExpression": { "argumentTypes": null, - "id": 625, + "id": 627, "name": "majorityVotedNo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "8100:15:0", + "referencedDeclaration": 611, + "src": "8110:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23046,7 +23103,7 @@ "typeString": "bool" } }, - "src": "8074:41:0", + "src": "8084:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23056,7 +23113,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 629, + "id": 631, "isConstant": false, "isLValue": false, "isPure": false, @@ -23064,15 +23121,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "8119:21:0", + "src": "8129:21:0", "subExpression": { "argumentTypes": null, - "id": 628, + "id": 630, "name": "milestoneAlreadyPaid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "8120:20:0", + "referencedDeclaration": 620, + "src": "8130:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23083,16 +23140,16 @@ "typeString": "bool" } }, - "src": "8074:66:0", + "src": "8084:66:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 674, + "id": 676, "nodeType": "Block", - "src": "8629:73:0", + "src": "8639:73:0", "statements": [ { "expression": { @@ -23101,14 +23158,14 @@ { "argumentTypes": null, "hexValue": "726571756972656420636f6e646974696f6e732077657265206e6f7420736174697366696564", - "id": 671, + "id": 673, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8650:40:0", + "src": "8660:40:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c944a403407a4b450cdf033de02e1e093564ed6120fdd470c5daee653f2d6a87", @@ -23124,21 +23181,21 @@ "typeString": "literal_string \"required conditions were not satisfied\"" } ], - "id": 670, + "id": 672, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1248, - 1249 + 1252, + 1253 ], - "referencedDeclaration": 1249, - "src": "8643:6:0", + "referencedDeclaration": 1253, + "src": "8653:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 672, + "id": 674, "isConstant": false, "isLValue": false, "isPure": false, @@ -23146,30 +23203,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8643:48:0", + "src": "8653:48:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 673, + "id": 675, "nodeType": "ExpressionStatement", - "src": "8643:48:0" + "src": "8653:48:0" } ] }, - "id": 675, + "id": 677, "nodeType": "IfStatement", - "src": "8070:632:0", + "src": "8080:632:0", "trueBody": { - "id": 669, + "id": 671, "nodeType": "Block", - "src": "8142:481:0", + "src": "8152:481:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 636, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, @@ -23180,26 +23237,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 631, + "id": 633, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "8156:10:0", + "src": "8166:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 633, + "id": 635, "indexExpression": { "argumentTypes": null, - "id": 632, + "id": 634, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "8167:5:0", + "referencedDeclaration": 594, + "src": "8177:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23210,13 +23267,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8156:17:0", + "src": "8166:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 634, + "id": 636, "isConstant": false, "isLValue": true, "isPure": false, @@ -23224,7 +23281,7 @@ "memberName": "paid", "nodeType": "MemberAccess", "referencedDeclaration": 19, - "src": "8156:22:0", + "src": "8166:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23235,14 +23292,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 635, + "id": 637, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8181:4:0", + "src": "8191:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -23250,28 +23307,28 @@ }, "value": "true" }, - "src": "8156:29:0", + "src": "8166:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 637, + "id": 639, "nodeType": "ExpressionStatement", - "src": "8156:29:0" + "src": "8166:29:0" }, { "assignments": [ - 639 + 641 ], "declarations": [ { "constant": false, - "id": 639, + "id": 641, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "8199:11:0", + "scope": 679, + "src": "8209:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23279,10 +23336,10 @@ "typeString": "uint256" }, "typeName": { - "id": 638, + "id": 640, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8199:4:0", + "src": "8209:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23292,33 +23349,33 @@ "visibility": "internal" } ], - "id": 644, + "id": 646, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 640, + "id": 642, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "8213:10:0", + "src": "8223:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 642, + "id": 644, "indexExpression": { "argumentTypes": null, - "id": 641, + "id": 643, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "8224:5:0", + "referencedDeclaration": 594, + "src": "8234:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23329,13 +23386,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8213:17:0", + "src": "8223:17:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Milestone_$20_storage", "typeString": "struct CrowdFund.Milestone storage ref" } }, - "id": 643, + "id": 645, "isConstant": false, "isLValue": true, "isPure": false, @@ -23343,14 +23400,14 @@ "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 13, - "src": "8213:24:0", + "src": "8223:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "8199:38:0" + "src": "8209:38:0" }, { "expression": { @@ -23358,12 +23415,12 @@ "arguments": [ { "argumentTypes": null, - "id": 648, + "id": 650, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8272:6:0", + "referencedDeclaration": 641, + "src": "8282:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23379,18 +23436,18 @@ ], "expression": { "argumentTypes": null, - "id": 645, + "id": 647, "name": "beneficiary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 64, - "src": "8251:11:0", + "src": "8261:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 647, + "id": 649, "isConstant": false, "isLValue": false, "isPure": false, @@ -23398,13 +23455,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8251:20:0", + "src": "8261:20:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 649, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, @@ -23412,15 +23469,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8251:28:0", + "src": "8261:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 650, + "id": 652, "nodeType": "ExpressionStatement", - "src": "8251:28:0" + "src": "8261:28:0" }, { "eventCall": { @@ -23428,12 +23485,12 @@ "arguments": [ { "argumentTypes": null, - "id": 652, + "id": 654, "name": "beneficiary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 64, - "src": "8308:11:0", + "src": "8318:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23441,12 +23498,12 @@ }, { "argumentTypes": null, - "id": 653, + "id": 655, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8321:6:0", + "referencedDeclaration": 641, + "src": "8331:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23464,18 +23521,18 @@ "typeString": "uint256" } ], - "id": 651, + "id": 653, "name": "Withdrawn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 42, - "src": "8298:9:0", + "src": "8308:9:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 654, + "id": 656, "isConstant": false, "isLValue": false, "isPure": false, @@ -23483,15 +23540,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8298:30:0", + "src": "8308:30:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 655, + "id": 657, "nodeType": "EmitStatement", - "src": "8293:35:0" + "src": "8303:35:0" }, { "condition": { @@ -23500,7 +23557,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 662, + "id": 664, "isConstant": false, "isLValue": false, "isPure": false, @@ -23510,12 +23567,12 @@ "arguments": [ { "argumentTypes": null, - "id": 659, + "id": 661, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "8420:5:0", + "referencedDeclaration": 594, + "src": "8430:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23533,18 +23590,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 656, + "id": 658, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, - "src": "8398:10:0", + "src": "8408:10:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" } }, - "id": 657, + "id": 659, "isConstant": false, "isLValue": true, "isPure": false, @@ -23552,27 +23609,27 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8398:17:0", + "src": "8408:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 658, + "id": 660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1203, - "src": "8398:21:0", + "referencedDeclaration": 1207, + "src": "8408:21:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 660, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, @@ -23580,7 +23637,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8398:28:0", + "src": "8408:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23591,14 +23648,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 661, + "id": 663, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8430:1:0", + "src": "8440:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -23606,20 +23663,20 @@ }, "value": "1" }, - "src": "8398:33:0", + "src": "8408:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 668, + "id": 670, "nodeType": "IfStatement", - "src": "8394:219:0", + "src": "8404:219:0", "trueBody": { - "id": 667, + "id": 669, "nodeType": "Block", - "src": "8433:180:0", + "src": "8443:180:0", "statements": [ { "expression": { @@ -23627,12 +23684,12 @@ "arguments": [ { "argumentTypes": null, - "id": 664, + "id": 666, "name": "beneficiary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 64, - "src": "8586:11:0", + "src": "8596:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23646,18 +23703,18 @@ "typeString": "address" } ], - "id": 663, + "id": 665, "name": "selfdestruct", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1251, - "src": "8573:12:0", + "referencedDeclaration": 1255, + "src": "8583:12:0", "typeDescriptions": { "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 665, + "id": 667, "isConstant": false, "isLValue": false, "isPure": false, @@ -23665,15 +23722,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8573:25:0", + "src": "8583:25:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 666, + "id": 668, "nodeType": "ExpressionStatement", - "src": "8573:25:0" + "src": "8583:25:0" } ] } @@ -23684,63 +23741,63 @@ ] }, "documentation": null, - "id": 677, + "id": 679, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ - { - "arguments": null, - "id": 595, - "modifierName": { - "argumentTypes": null, - "id": 594, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "7794:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7794:10:0" - }, { "arguments": null, "id": 597, "modifierName": { "argumentTypes": null, "id": 596, - "name": "onlyUnfrozen", + "name": "onlyRaised", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "7805:12:0", + "referencedDeclaration": 1040, + "src": "7804:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7805:12:0" + "src": "7804:10:0" + }, + { + "arguments": null, + "id": 599, + "modifierName": { + "argumentTypes": null, + "id": 598, + "name": "onlyUnfrozen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "7815:12:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7815:12:0" } ], "name": "payMilestonePayout", "nodeType": "FunctionDefinition", "parameters": { - "id": 593, + "id": 595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 592, + "id": 594, "name": "index", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "7775:10:0", + "scope": 679, + "src": "7785:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23748,10 +23805,10 @@ "typeString": "uint256" }, "typeName": { - "id": 591, + "id": 593, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7775:4:0", + "src": "7785:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23761,39 +23818,39 @@ "visibility": "internal" } ], - "src": "7774:12:0" + "src": "7784:12:0" }, "payable": false, "returnParameters": { - "id": 598, + "id": 600, "nodeType": "ParameterList", "parameters": [], - "src": "7818:0:0" + "src": "7828:0:0" }, - "scope": 1076, - "src": "7747:961:0", + "scope": 1080, + "src": "7757:961:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 738, + "id": 742, "nodeType": "Block", - "src": "8792:473:0", + "src": "8802:491:0", "statements": [ { "assignments": [ - 689 + 691 ], "declarations": [ { "constant": false, - "id": 689, + "id": 691, "name": "refundVote", "nodeType": "VariableDeclaration", - "scope": 739, - "src": "8802:15:0", + "scope": 743, + "src": "8812:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23801,10 +23858,10 @@ "typeString": "bool" }, "typeName": { - "id": 688, + "id": 690, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8802:4:0", + "src": "8812:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23814,41 +23871,41 @@ "visibility": "internal" } ], - "id": 695, + "id": 697, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 690, + "id": 692, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "8820:12:0", + "src": "8830:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 693, + "id": 695, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 691, + "id": 693, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "8833:3:0", + "referencedDeclaration": 1247, + "src": "8843:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 692, + "id": 694, "isConstant": false, "isLValue": false, "isPure": false, @@ -23856,7 +23913,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8833:10:0", + "src": "8843:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23867,13 +23924,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8820:24:0", + "src": "8830:24:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 694, + "id": 696, "isConstant": false, "isLValue": true, "isPure": false, @@ -23881,14 +23938,14 @@ "memberName": "refundVote", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "8820:35:0", + "src": "8830:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "8802:53:0" + "src": "8812:53:0" }, { "expression": { @@ -23900,19 +23957,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 699, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 697, + "id": 699, "name": "vote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "8873:4:0", + "referencedDeclaration": 681, + "src": "8883:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23922,18 +23979,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 698, + "id": 700, "name": "refundVote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "8881:10:0", + "referencedDeclaration": 691, + "src": "8891:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8873:18:0", + "src": "8883:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23942,14 +23999,14 @@ { "argumentTypes": null, "hexValue": "4578697374696e6720766f7465207374617465206973206964656e746963616c20746f20766f74652076616c7565", - "id": 700, + "id": 702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8893:48:0", + "src": "8903:48:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_83d9b841f406ef52e32942228e28c13fcdb47e5fa9512f22f335b7955cb71cb5", @@ -23969,21 +24026,21 @@ "typeString": "literal_string \"Existing vote state is identical to vote value\"" } ], - "id": 696, + "id": 698, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "8865:7:0", + "referencedDeclaration": 1251, + "src": "8875:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 701, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -23991,20 +24048,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8865:77:0", + "src": "8875:77:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 702, + "id": 704, "nodeType": "ExpressionStatement", - "src": "8865:77:0" + "src": "8875:77:0" }, { "expression": { "argumentTypes": null, - "id": 709, + "id": 711, "isConstant": false, "isLValue": false, "isPure": false, @@ -24015,34 +24072,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 703, + "id": 705, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "8952:12:0", + "src": "8962:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 706, + "id": 708, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 704, + "id": 706, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "8965:3:0", + "referencedDeclaration": 1247, + "src": "8975:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 705, + "id": 707, "isConstant": false, "isLValue": false, "isPure": false, @@ -24050,7 +24107,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8965:10:0", + "src": "8975:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24061,13 +24118,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8952:24:0", + "src": "8962:24:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 707, + "id": 709, "isConstant": false, "isLValue": true, "isPure": false, @@ -24075,7 +24132,7 @@ "memberName": "refundVote", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "8952:35:0", + "src": "8962:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24085,31 +24142,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 708, + "id": 710, "name": "vote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "8990:4:0", + "referencedDeclaration": 681, + "src": "9000:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8952:42:0", + "src": "8962:42:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 710, + "id": 712, "nodeType": "ExpressionStatement", - "src": "8952:42:0" + "src": "8962:42:0" }, { "condition": { "argumentTypes": null, - "id": 712, + "id": 714, "isConstant": false, "isLValue": false, "isPure": false, @@ -24117,15 +24174,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "9008:5:0", + "src": "9018:5:0", "subExpression": { "argumentTypes": null, - "id": 711, + "id": 713, "name": "vote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "9009:4:0", + "referencedDeclaration": 681, + "src": "9019:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24137,193 +24194,212 @@ } }, "falseBody": { - "id": 736, - "nodeType": "Block", - "src": "9140:119:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "condition": { + "argumentTypes": null, + "id": 727, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 681, + "src": "9162:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 740, + "nodeType": "IfStatement", + "src": "9158:129:0", + "trueBody": { + "id": 739, + "nodeType": "Block", + "src": "9168:119:0", + "statements": [ + { + "expression": { "argumentTypes": null, - "id": 725, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9154:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 728, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "9204:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 731, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 729, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "9217:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9217:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9204:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 732, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "9204:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 726, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9178:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1227, - "src": "9178:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 733, + "id": 737, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9178:70:0", + "leftHandSide": { + "argumentTypes": null, + "id": 728, + "name": "amountVotingForRefund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "9182:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 731, + "name": "contributors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "9232:12:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", + "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" + } + }, + "id": 734, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 732, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "9245:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9245:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9232:24:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contributor_$30_storage", + "typeString": "struct CrowdFund.Contributor storage ref" + } + }, + "id": 735, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributionAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "9232:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 729, + "name": "amountVotingForRefund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "9206:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1231, + "src": "9206:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9206:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9182:94:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9154:94:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 735, - "nodeType": "ExpressionStatement", - "src": "9154:94:0" - } - ] + "id": 738, + "nodeType": "ExpressionStatement", + "src": "9182:94:0" + } + ] + } }, - "id": 737, + "id": 741, "nodeType": "IfStatement", - "src": "9004:255:0", + "src": "9014:273:0", "trueBody": { - "id": 724, + "id": 726, "nodeType": "Block", - "src": "9015:119:0", + "src": "9025:119:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 722, + "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 713, + "id": 715, "name": "amountVotingForRefund", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, - "src": "9029:21:0", + "src": "9039:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24340,34 +24416,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 716, + "id": 718, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "9079:12:0", + "src": "9089:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 719, + "id": 721, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 717, + "id": 719, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "9092:3:0", + "referencedDeclaration": 1247, + "src": "9102:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 718, + "id": 720, "isConstant": false, "isLValue": false, "isPure": false, @@ -24375,7 +24451,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9092:10:0", + "src": "9102:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24386,13 +24462,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9079:24:0", + "src": "9089:24:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 720, + "id": 722, "isConstant": false, "isLValue": true, "isPure": false, @@ -24400,7 +24476,7 @@ "memberName": "contributionAmount", "nodeType": "MemberAccess", "referencedDeclaration": 22, - "src": "9079:43:0", + "src": "9089:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24416,32 +24492,32 @@ ], "expression": { "argumentTypes": null, - "id": 714, + "id": 716, "name": "amountVotingForRefund", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, - "src": "9053:21:0", + "src": "9063:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 715, + "id": 717, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1203, - "src": "9053:25:0", + "referencedDeclaration": 1207, + "src": "9063:25:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 721, + "id": 723, "isConstant": false, "isLValue": false, "isPure": false, @@ -24449,21 +24525,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9053:70:0", + "src": "9063:70:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9029:94:0", + "src": "9039:94:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 723, + "id": 725, "nodeType": "ExpressionStatement", - "src": "9029:94:0" + "src": "9039:94:0" } ] } @@ -24471,48 +24547,29 @@ ] }, "documentation": null, - "id": 739, + "id": 743, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ - { - "arguments": null, - "id": 682, - "modifierName": { - "argumentTypes": null, - "id": 681, - "name": "onlyContributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "8752:15:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8752:15:0" - }, { "arguments": null, "id": 684, "modifierName": { "argumentTypes": null, "id": 683, - "name": "onlyRaised", + "name": "onlyContributor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "8768:10:0", + "referencedDeclaration": 1069, + "src": "8762:15:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8768:10:0" + "src": "8762:15:0" }, { "arguments": null, @@ -24520,33 +24577,52 @@ "modifierName": { "argumentTypes": null, "id": 685, - "name": "onlyUnfrozen", + "name": "onlyRaised", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "8779:12:0", + "referencedDeclaration": 1040, + "src": "8778:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8779:12:0" + "src": "8778:10:0" + }, + { + "arguments": null, + "id": 688, + "modifierName": { + "argumentTypes": null, + "id": 687, + "name": "onlyUnfrozen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1031, + "src": "8789:12:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8789:12:0" } ], "name": "voteRefund", "nodeType": "FunctionDefinition", "parameters": { - "id": 680, + "id": 682, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 679, + "id": 681, "name": "vote", "nodeType": "VariableDeclaration", - "scope": 739, - "src": "8734:9:0", + "scope": 743, + "src": "8744:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24554,10 +24630,10 @@ "typeString": "bool" }, "typeName": { - "id": 678, + "id": 680, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8734:4:0", + "src": "8744:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24567,39 +24643,39 @@ "visibility": "internal" } ], - "src": "8733:11:0" + "src": "8743:11:0" }, "payable": false, "returnParameters": { - "id": 687, + "id": 689, "nodeType": "ParameterList", "parameters": [], - "src": "8792:0:0" + "src": "8802:0:0" }, - "scope": 1076, - "src": "8714:551:0", + "scope": 1080, + "src": "8724:569:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 802, + "id": 806, "nodeType": "Block", - "src": "9309:655:0", + "src": "9337:655:0", "statements": [ { "assignments": [ - 745 + 749 ], "declarations": [ { "constant": false, - "id": 745, + "id": 749, "name": "callerIsTrustee", "nodeType": "VariableDeclaration", - "scope": 803, - "src": "9319:20:0", + "scope": 807, + "src": "9347:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24607,10 +24683,10 @@ "typeString": "bool" }, "typeName": { - "id": 744, + "id": 748, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9319:4:0", + "src": "9347:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24620,24 +24696,24 @@ "visibility": "internal" } ], - "id": 748, + "id": 752, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 746, + "id": 750, "name": "isCallerTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "9342:15:0", + "referencedDeclaration": 959, + "src": "9370:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 747, + "id": 751, "isConstant": false, "isLValue": false, "isPure": false, @@ -24645,27 +24721,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9342:17:0", + "src": "9370:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "9319:40:0" + "src": "9347:40:0" }, { "assignments": [ - 750 + 754 ], "declarations": [ { "constant": false, - "id": 750, + "id": 754, "name": "crowdFundFailed", "nodeType": "VariableDeclaration", - "scope": 803, - "src": "9369:20:0", + "scope": 807, + "src": "9397:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24673,10 +24749,10 @@ "typeString": "bool" }, "typeName": { - "id": 749, + "id": 753, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9369:4:0", + "src": "9397:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24686,24 +24762,24 @@ "visibility": "internal" } ], - "id": 753, + "id": 757, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 751, + "id": 755, "name": "isFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "9392:8:0", + "referencedDeclaration": 972, + "src": "9420:8:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 752, + "id": 756, "isConstant": false, "isLValue": false, "isPure": false, @@ -24711,27 +24787,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9392:10:0", + "src": "9420:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "9369:33:0" + "src": "9397:33:0" }, { "assignments": [ - 755 + 759 ], "declarations": [ { "constant": false, - "id": 755, + "id": 759, "name": "majorityVotingToRefund", "nodeType": "VariableDeclaration", - "scope": 803, - "src": "9412:27:0", + "scope": 807, + "src": "9440:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24739,10 +24815,10 @@ "typeString": "bool" }, "typeName": { - "id": 754, + "id": 758, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9412:4:0", + "src": "9440:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24752,18 +24828,18 @@ "visibility": "internal" } ], - "id": 759, + "id": 763, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 757, + "id": 761, "name": "amountVotingForRefund", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, - "src": "9459:21:0", + "src": "9487:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24777,18 +24853,18 @@ "typeString": "uint256" } ], - "id": 756, + "id": 760, "name": "isMajorityVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "9442:16:0", + "referencedDeclaration": 928, + "src": "9470:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 758, + "id": 762, "isConstant": false, "isLValue": false, "isPure": false, @@ -24796,14 +24872,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9442:39:0", + "src": "9470:39:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "9412:69:0" + "src": "9440:69:0" }, { "expression": { @@ -24815,7 +24891,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 765, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -24826,19 +24902,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 763, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 761, + "id": 765, "name": "callerIsTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "9499:15:0", + "referencedDeclaration": 749, + "src": "9527:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24848,18 +24924,18 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 762, + "id": 766, "name": "crowdFundFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "9518:15:0", + "referencedDeclaration": 754, + "src": "9546:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "9499:34:0", + "src": "9527:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24869,18 +24945,18 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 764, + "id": 768, "name": "majorityVotingToRefund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 755, - "src": "9537:22:0", + "referencedDeclaration": 759, + "src": "9565:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "9499:60:0", + "src": "9527:60:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24889,14 +24965,14 @@ { "argumentTypes": null, "hexValue": "526571756972656420636f6e646974696f6e7320666f7220726566756e6420617265206e6f74206d6574", - "id": 766, + "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9561:44:0", + "src": "9589:44:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1086fb0a245a80bddbec2bbf87c88d8fc142025bee989551e1ac5ccca15d31ff", @@ -24916,21 +24992,21 @@ "typeString": "literal_string \"Required conditions for refund are not met\"" } ], - "id": 760, + "id": 764, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "9491:7:0", + "referencedDeclaration": 1251, + "src": "9519:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 767, + "id": 771, "isConstant": false, "isLValue": false, "isPure": false, @@ -24938,25 +25014,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9491:115:0", + "src": "9519:115:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 768, + "id": 772, "nodeType": "ExpressionStatement", - "src": "9491:115:0" + "src": "9519:115:0" }, { "condition": { "argumentTypes": null, - "id": 769, + "id": 773, "name": "callerIsTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "9620:15:0", + "referencedDeclaration": 749, + "src": "9648:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24965,38 +25041,38 @@ "falseBody": { "condition": { "argumentTypes": null, - "id": 776, + "id": 780, "name": "crowdFundFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "9717:15:0", + "referencedDeclaration": 754, + "src": "9745:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 788, + "id": 792, "nodeType": "Block", - "src": "9810:78:0", + "src": "9838:78:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 786, + "id": 790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 783, + "id": 787, "name": "freezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11, - "src": "9824:12:0", + "src": "9852:12:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" @@ -25008,18 +25084,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 784, + "id": 788, "name": "FreezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "9839:12:0", + "src": "9867:12:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", "typeString": "type(enum CrowdFund.FreezeReason)" } }, - "id": 785, + "id": 789, "isConstant": false, "isLValue": false, "isPure": true, @@ -25027,48 +25103,48 @@ "memberName": "MAJORITY_VOTING_TO_REFUND", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9839:38:0", + "src": "9867:38:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "src": "9824:53:0", + "src": "9852:53:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "id": 787, + "id": 791, "nodeType": "ExpressionStatement", - "src": "9824:53:0" + "src": "9852:53:0" } ] }, - "id": 789, + "id": 793, "nodeType": "IfStatement", - "src": "9713:175:0", + "src": "9741:175:0", "trueBody": { - "id": 782, + "id": 786, "nodeType": "Block", - "src": "9734:70:0", + "src": "9762:70:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 780, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 777, + "id": 781, "name": "freezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11, - "src": "9748:12:0", + "src": "9776:12:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" @@ -25080,18 +25156,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 778, + "id": 782, "name": "FreezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "9763:12:0", + "src": "9791:12:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", "typeString": "type(enum CrowdFund.FreezeReason)" } }, - "id": 779, + "id": 783, "isConstant": false, "isLValue": false, "isPure": true, @@ -25099,49 +25175,49 @@ "memberName": "CROWD_FUND_FAILED", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9763:30:0", + "src": "9791:30:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "src": "9748:45:0", + "src": "9776:45:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "id": 781, + "id": 785, "nodeType": "ExpressionStatement", - "src": "9748:45:0" + "src": "9776:45:0" } ] } }, - "id": 790, + "id": 794, "nodeType": "IfStatement", - "src": "9616:272:0", + "src": "9644:272:0", "trueBody": { - "id": 775, + "id": 779, "nodeType": "Block", - "src": "9637:70:0", + "src": "9665:70:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 773, + "id": 777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 770, + "id": 774, "name": "freezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11, - "src": "9651:12:0", + "src": "9679:12:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" @@ -25153,18 +25229,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 771, + "id": 775, "name": "FreezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "9666:12:0", + "src": "9694:12:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", "typeString": "type(enum CrowdFund.FreezeReason)" } }, - "id": 772, + "id": 776, "isConstant": false, "isLValue": false, "isPure": true, @@ -25172,21 +25248,21 @@ "memberName": "CALLER_IS_TRUSTEE", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9666:30:0", + "src": "9694:30:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "src": "9651:45:0", + "src": "9679:45:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" } }, - "id": 774, + "id": 778, "nodeType": "ExpressionStatement", - "src": "9651:45:0" + "src": "9679:45:0" } ] } @@ -25194,19 +25270,19 @@ { "expression": { "argumentTypes": null, - "id": 793, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 791, + "id": 795, "name": "frozen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44, - "src": "9897:6:0", + "src": "9925:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25217,14 +25293,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 792, + "id": 796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9906:4:0", + "src": "9934:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -25232,32 +25308,32 @@ }, "value": "true" }, - "src": "9897:13:0", + "src": "9925:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 794, + "id": 798, "nodeType": "ExpressionStatement", - "src": "9897:13:0" + "src": "9925:13:0" }, { "expression": { "argumentTypes": null, - "id": 800, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 795, + "id": 799, "name": "frozenBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 58, - "src": "9920:13:0", + "src": "9948:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25272,14 +25348,14 @@ "arguments": [ { "argumentTypes": null, - "id": 797, + "id": 801, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "9944:4:0", + "referencedDeclaration": 1262, + "src": "9972:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } } @@ -25287,24 +25363,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } ], - "id": 796, + "id": 800, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9936:7:0", + "src": "9964:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 798, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, @@ -25312,13 +25388,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9936:13:0", + "src": "9964:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 799, + "id": 803, "isConstant": false, "isLValue": false, "isPure": false, @@ -25326,76 +25402,76 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9936:21:0", + "src": "9964:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9920:37:0", + "src": "9948:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 801, + "id": 805, "nodeType": "ExpressionStatement", - "src": "9920:37:0" + "src": "9948:37:0" } ] }, "documentation": null, - "id": 803, + "id": 807, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 742, + "id": 746, "modifierName": { "argumentTypes": null, - "id": 741, + "id": 745, "name": "onlyUnfrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "9296:12:0", + "referencedDeclaration": 1031, + "src": "9324:12:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9296:12:0" + "src": "9324:12:0" } ], "name": "refund", "nodeType": "FunctionDefinition", "parameters": { - "id": 740, + "id": 744, "nodeType": "ParameterList", "parameters": [], - "src": "9286:2:0" + "src": "9314:2:0" }, "payable": false, "returnParameters": { - "id": 743, + "id": 747, "nodeType": "ParameterList", "parameters": [], - "src": "9309:0:0" + "src": "9337:0:0" }, - "scope": 1076, - "src": "9271:693:0", + "scope": 1080, + "src": "9299:693:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 866, + "id": 870, "nodeType": "Block", - "src": "10099:528:0", + "src": "10127:528:0", "statements": [ { "expression": { @@ -25403,12 +25479,12 @@ "arguments": [ { "argumentTypes": null, - "id": 811, + "id": 815, "name": "frozen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44, - "src": "10117:6:0", + "src": "10145:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25417,14 +25493,14 @@ { "argumentTypes": null, "hexValue": "43726f776446756e64206973206e6f742066726f7a656e", - "id": 812, + "id": 816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10125:25:0", + "src": "10153:25:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", @@ -25444,21 +25520,21 @@ "typeString": "literal_string \"CrowdFund is not frozen\"" } ], - "id": 810, + "id": 814, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "10109:7:0", + "referencedDeclaration": 1251, + "src": "10137:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 813, + "id": 817, "isConstant": false, "isLValue": false, "isPure": false, @@ -25466,28 +25542,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10109:42:0", + "src": "10137:42:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 814, + "id": 818, "nodeType": "ExpressionStatement", - "src": "10109:42:0" + "src": "10137:42:0" }, { "assignments": [ - 816 + 820 ], "declarations": [ { "constant": false, - "id": 816, + "id": 820, "name": "isRefunded", "nodeType": "VariableDeclaration", - "scope": 867, - "src": "10161:15:0", + "scope": 871, + "src": "10189:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25495,10 +25571,10 @@ "typeString": "bool" }, "typeName": { - "id": 815, + "id": 819, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10161:4:0", + "src": "10189:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25508,33 +25584,33 @@ "visibility": "internal" } ], - "id": 821, + "id": 825, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 817, + "id": 821, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "10179:12:0", + "src": "10207:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 819, + "id": 823, "indexExpression": { "argumentTypes": null, - "id": 818, + "id": 822, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10192:13:0", + "referencedDeclaration": 809, + "src": "10220:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25545,13 +25621,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10179:27:0", + "src": "10207:27:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 820, + "id": 824, "isConstant": false, "isLValue": true, "isPure": false, @@ -25559,14 +25635,14 @@ "memberName": "refunded", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "10179:36:0", + "src": "10207:36:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "10161:54:0" + "src": "10189:54:0" }, { "expression": { @@ -25574,7 +25650,7 @@ "arguments": [ { "argumentTypes": null, - "id": 824, + "id": 828, "isConstant": false, "isLValue": false, "isPure": false, @@ -25582,15 +25658,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "10233:11:0", + "src": "10261:11:0", "subExpression": { "argumentTypes": null, - "id": 823, + "id": 827, "name": "isRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "10234:10:0", + "referencedDeclaration": 820, + "src": "10262:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25604,14 +25680,14 @@ { "argumentTypes": null, "hexValue": "537065636966696564206164647265737320697320616c726561647920726566756e646564", - "id": 825, + "id": 829, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10246:39:0", + "src": "10274:39:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ad918abf6ea38b3d8dd6fccfc0198c349db0339300085e3846f4b85c44350efa", @@ -25631,21 +25707,21 @@ "typeString": "literal_string \"Specified address is already refunded\"" } ], - "id": 822, + "id": 826, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "10225:7:0", + "referencedDeclaration": 1251, + "src": "10253:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 826, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -25653,20 +25729,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10225:61:0", + "src": "10253:61:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 827, + "id": 831, "nodeType": "ExpressionStatement", - "src": "10225:61:0" + "src": "10253:61:0" }, { "expression": { "argumentTypes": null, - "id": 833, + "id": 837, "isConstant": false, "isLValue": false, "isPure": false, @@ -25677,26 +25753,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 828, + "id": 832, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "10296:12:0", + "src": "10324:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 830, + "id": 834, "indexExpression": { "argumentTypes": null, - "id": 829, + "id": 833, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10309:13:0", + "referencedDeclaration": 809, + "src": "10337:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25707,13 +25783,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10296:27:0", + "src": "10324:27:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 831, + "id": 835, "isConstant": false, "isLValue": true, "isPure": false, @@ -25721,7 +25797,7 @@ "memberName": "refunded", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "10296:36:0", + "src": "10324:36:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25732,14 +25808,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 832, + "id": 836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10335:4:0", + "src": "10363:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -25747,28 +25823,28 @@ }, "value": "true" }, - "src": "10296:43:0", + "src": "10324:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 834, + "id": 838, "nodeType": "ExpressionStatement", - "src": "10296:43:0" + "src": "10324:43:0" }, { "assignments": [ - 836 + 840 ], "declarations": [ { "constant": false, - "id": 836, + "id": 840, "name": "contributionAmount", "nodeType": "VariableDeclaration", - "scope": 867, - "src": "10349:23:0", + "scope": 871, + "src": "10377:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25776,10 +25852,10 @@ "typeString": "uint256" }, "typeName": { - "id": 835, + "id": 839, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10349:4:0", + "src": "10377:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25789,33 +25865,33 @@ "visibility": "internal" } ], - "id": 841, + "id": 845, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 837, + "id": 841, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "10375:12:0", + "src": "10403:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 839, + "id": 843, "indexExpression": { "argumentTypes": null, - "id": 838, + "id": 842, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10388:13:0", + "referencedDeclaration": 809, + "src": "10416:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25826,13 +25902,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10375:27:0", + "src": "10403:27:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 840, + "id": 844, "isConstant": false, "isLValue": true, "isPure": false, @@ -25840,27 +25916,27 @@ "memberName": "contributionAmount", "nodeType": "MemberAccess", "referencedDeclaration": 22, - "src": "10375:46:0", + "src": "10403:46:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "10349:72:0" + "src": "10377:72:0" }, { "assignments": [ - 843 + 847 ], "declarations": [ { "constant": false, - "id": 843, + "id": 847, "name": "amountToRefund", "nodeType": "VariableDeclaration", - "scope": 867, - "src": "10431:19:0", + "scope": 871, + "src": "10459:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25868,10 +25944,10 @@ "typeString": "uint256" }, "typeName": { - "id": 842, + "id": 846, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10431:4:0", + "src": "10459:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25881,18 +25957,18 @@ "visibility": "internal" } ], - "id": 854, + "id": 858, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 852, + "id": 856, "name": "frozenBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 58, - "src": "10503:13:0", + "src": "10531:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25916,14 +25992,14 @@ "arguments": [ { "argumentTypes": null, - "id": 847, + "id": 851, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "10484:4:0", + "referencedDeclaration": 1262, + "src": "10512:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } } @@ -25931,24 +26007,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } ], - "id": 846, + "id": 850, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10476:7:0", + "src": "10504:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 848, + "id": 852, "isConstant": false, "isLValue": false, "isPure": false, @@ -25956,13 +26032,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10476:13:0", + "src": "10504:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 849, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, @@ -25970,7 +26046,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10476:21:0", + "src": "10504:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25986,32 +26062,32 @@ ], "expression": { "argumentTypes": null, - "id": 844, + "id": 848, "name": "contributionAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 836, - "src": "10453:18:0", + "referencedDeclaration": 840, + "src": "10481:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 845, + "id": 849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1169, - "src": "10453:22:0", + "referencedDeclaration": 1173, + "src": "10481:22:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 850, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -26019,27 +26095,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10453:45:0", + "src": "10481:45:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 851, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 1183, - "src": "10453:49:0", + "referencedDeclaration": 1187, + "src": "10481:49:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 853, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, @@ -26047,14 +26123,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10453:64:0", + "src": "10481:64:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "10431:86:0" + "src": "10459:86:0" }, { "expression": { @@ -26062,12 +26138,12 @@ "arguments": [ { "argumentTypes": null, - "id": 858, + "id": 862, "name": "amountToRefund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10550:14:0", + "referencedDeclaration": 847, + "src": "10578:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26083,18 +26159,18 @@ ], "expression": { "argumentTypes": null, - "id": 855, + "id": 859, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10527:13:0", + "referencedDeclaration": 809, + "src": "10555:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 857, + "id": 861, "isConstant": false, "isLValue": false, "isPure": false, @@ -26102,13 +26178,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10527:22:0", + "src": "10555:22:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 859, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, @@ -26116,15 +26192,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10527:38:0", + "src": "10555:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 860, + "id": 864, "nodeType": "ExpressionStatement", - "src": "10527:38:0" + "src": "10555:38:0" }, { "eventCall": { @@ -26132,12 +26208,12 @@ "arguments": [ { "argumentTypes": null, - "id": 862, + "id": 866, "name": "refundAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "10590:13:0", + "referencedDeclaration": 809, + "src": "10618:13:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26145,12 +26221,12 @@ }, { "argumentTypes": null, - "id": 863, + "id": 867, "name": "amountToRefund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10605:14:0", + "referencedDeclaration": 847, + "src": "10633:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26168,18 +26244,18 @@ "typeString": "uint256" } ], - "id": 861, + "id": 865, "name": "Withdrawn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 42, - "src": "10580:9:0", + "src": "10608:9:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 864, + "id": 868, "isConstant": false, "isLValue": false, "isPure": false, @@ -26187,57 +26263,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10580:40:0", + "src": "10608:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 865, + "id": 869, "nodeType": "EmitStatement", - "src": "10575:45:0" + "src": "10603:45:0" } ] }, "documentation": null, - "id": 867, + "id": 871, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 808, + "id": 812, "modifierName": { "argumentTypes": null, - "id": 807, + "id": 811, "name": "onlyFrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "10088:10:0", + "referencedDeclaration": 1021, + "src": "10116:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "10088:10:0" + "src": "10116:10:0" } ], "name": "withdraw", "nodeType": "FunctionDefinition", "parameters": { - "id": 806, + "id": 810, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 805, + "id": 809, "name": "refundAddress", "nodeType": "VariableDeclaration", - "scope": 867, - "src": "10058:21:0", + "scope": 871, + "src": "10086:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26245,10 +26321,10 @@ "typeString": "address" }, "typeName": { - "id": 804, + "id": 808, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10058:7:0", + "src": "10086:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26258,45 +26334,45 @@ "visibility": "internal" } ], - "src": "10057:23:0" + "src": "10085:23:0" }, "payable": false, "returnParameters": { - "id": 809, + "id": 813, "nodeType": "ParameterList", "parameters": [], - "src": "10099:0:0" + "src": "10127:0:0" }, - "scope": 1076, - "src": "10040:587:0", + "scope": 1080, + "src": "10068:587:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 908, + "id": 912, "nodeType": "Block", - "src": "10773:322:0", + "src": "10801:322:0", "statements": [ { "body": { - "id": 902, + "id": 906, "nodeType": "Block", - "src": "10833:221:0", + "src": "10861:221:0", "statements": [ { "assignments": [ - 886 + 890 ], "declarations": [ { "constant": false, - "id": 886, + "id": 890, "name": "contributorAddress", "nodeType": "VariableDeclaration", - "scope": 909, - "src": "10847:26:0", + "scope": 913, + "src": "10875:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26304,10 +26380,10 @@ "typeString": "address" }, "typeName": { - "id": 885, + "id": 889, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10847:7:0", + "src": "10875:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26317,31 +26393,31 @@ "visibility": "internal" } ], - "id": 890, + "id": 894, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 887, + "id": 891, "name": "contributorList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 71, - "src": "10876:15:0", + "src": "10904:15:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 889, + "id": 893, "indexExpression": { "argumentTypes": null, - "id": 888, + "id": 892, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "10892:1:0", + "referencedDeclaration": 879, + "src": "10920:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26352,19 +26428,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10876:18:0", + "src": "10904:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "10847:47:0" + "src": "10875:47:0" }, { "condition": { "argumentTypes": null, - "id": 895, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, @@ -26372,33 +26448,33 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "10912:42:0", + "src": "10940:42:0", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 891, + "id": 895, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "10913:12:0", + "src": "10941:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 893, + "id": 897, "indexExpression": { "argumentTypes": null, - "id": 892, + "id": 896, "name": "contributorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "10926:18:0", + "referencedDeclaration": 890, + "src": "10954:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26409,13 +26485,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10913:32:0", + "src": "10941:32:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 894, + "id": 898, "isConstant": false, "isLValue": true, "isPure": false, @@ -26423,7 +26499,7 @@ "memberName": "refunded", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "10913:41:0", + "src": "10941:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26435,13 +26511,13 @@ } }, "falseBody": null, - "id": 901, + "id": 905, "nodeType": "IfStatement", - "src": "10908:136:0", + "src": "10936:136:0", "trueBody": { - "id": 900, + "id": 904, "nodeType": "Block", - "src": "10956:88:0", + "src": "10984:88:0", "statements": [ { "expression": { @@ -26450,14 +26526,14 @@ { "argumentTypes": null, "hexValue": "4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f742079657420726566756e646564", - "id": 897, + "id": 901, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10981:47:0", + "src": "11009:47:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_85d231c62370fa6b43ee7ffe2e2243eb8d4631e742e97de3a2558a277a825be1", @@ -26473,21 +26549,21 @@ "typeString": "literal_string \"At least one contributor has not yet refunded\"" } ], - "id": 896, + "id": 900, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1248, - 1249 + 1252, + 1253 ], - "referencedDeclaration": 1249, - "src": "10974:6:0", + "referencedDeclaration": 1253, + "src": "11002:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 898, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, @@ -26495,15 +26571,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10974:55:0", + "src": "11002:55:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 899, + "id": 903, "nodeType": "ExpressionStatement", - "src": "10974:55:0" + "src": "11002:55:0" } ] } @@ -26516,19 +26592,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 881, + "id": 885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 878, + "id": 882, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "10800:1:0", + "referencedDeclaration": 879, + "src": "10828:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26540,18 +26616,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 879, + "id": 883, "name": "contributorList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 71, - "src": "10804:15:0", + "src": "10832:15:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 880, + "id": 884, "isConstant": false, "isLValue": true, "isPure": false, @@ -26559,31 +26635,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10804:22:0", + "src": "10832:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10800:26:0", + "src": "10828:26:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 903, + "id": 907, "initializationExpression": { "assignments": [ - 875 + 879 ], "declarations": [ { "constant": false, - "id": 875, + "id": 879, "name": "i", "nodeType": "VariableDeclaration", - "scope": 909, - "src": "10788:6:0", + "scope": 913, + "src": "10816:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26591,10 +26667,10 @@ "typeString": "uint256" }, "typeName": { - "id": 874, + "id": 878, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "10788:4:0", + "src": "10816:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26604,18 +26680,18 @@ "visibility": "internal" } ], - "id": 877, + "id": 881, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 876, + "id": 880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10797:1:0", + "src": "10825:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -26624,12 +26700,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10788:10:0" + "src": "10816:10:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 883, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -26637,15 +26713,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10828:3:0", + "src": "10856:3:0", "subExpression": { "argumentTypes": null, - "id": 882, + "id": 886, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "10828:1:0", + "referencedDeclaration": 879, + "src": "10856:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26656,12 +26732,12 @@ "typeString": "uint256" } }, - "id": 884, + "id": 888, "nodeType": "ExpressionStatement", - "src": "10828:3:0" + "src": "10856:3:0" }, "nodeType": "ForStatement", - "src": "10783:271:0" + "src": "10811:271:0" }, { "expression": { @@ -26669,12 +26745,12 @@ "arguments": [ { "argumentTypes": null, - "id": 905, + "id": 909, "name": "beneficiary", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 64, - "src": "11076:11:0", + "src": "11104:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26688,18 +26764,18 @@ "typeString": "address" } ], - "id": 904, + "id": 908, "name": "selfdestruct", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1251, - "src": "11063:12:0", + "referencedDeclaration": 1255, + "src": "11091:12:0", "typeDescriptions": { "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 906, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -26707,89 +26783,89 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11063:25:0", + "src": "11091:25:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 907, + "id": 911, "nodeType": "ExpressionStatement", - "src": "11063:25:0" + "src": "11091:25:0" } ] }, "documentation": null, - "id": 909, + "id": 913, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 870, + "id": 874, "modifierName": { "argumentTypes": null, - "id": 869, + "id": 873, "name": "onlyTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "10750:11:0", + "referencedDeclaration": 1079, + "src": "10778:11:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "10750:11:0" + "src": "10778:11:0" }, { "arguments": null, - "id": 872, + "id": 876, "modifierName": { "argumentTypes": null, - "id": 871, + "id": 875, "name": "onlyFrozen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "10762:10:0", + "referencedDeclaration": 1021, + "src": "10790:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "10762:10:0" + "src": "10790:10:0" } ], "name": "destroy", "nodeType": "FunctionDefinition", "parameters": { - "id": 868, + "id": 872, "nodeType": "ParameterList", "parameters": [], - "src": "10740:2:0" + "src": "10768:2:0" }, "payable": false, "returnParameters": { - "id": 873, + "id": 877, "nodeType": "ParameterList", "parameters": [], - "src": "10773:0:0" + "src": "10801:0:0" }, - "scope": 1076, - "src": "10724:371:0", + "scope": 1080, + "src": "10752:371:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 923, + "id": 927, "nodeType": "Block", - "src": "11172:57:0", + "src": "11200:57:0", "statements": [ { "expression": { @@ -26798,7 +26874,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 921, + "id": 925, "isConstant": false, "isLValue": false, "isPure": false, @@ -26809,14 +26885,14 @@ { "argumentTypes": null, "hexValue": "32", - "id": 918, + "id": 922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11205:1:0", + "src": "11233:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -26834,32 +26910,32 @@ ], "expression": { "argumentTypes": null, - "id": 916, + "id": 920, "name": "valueVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "11189:11:0", + "referencedDeclaration": 915, + "src": "11217:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 917, + "id": 921, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 1169, - "src": "11189:15:0", + "referencedDeclaration": 1173, + "src": "11217:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 919, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, @@ -26867,7 +26943,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11189:18:0", + "src": "11217:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26877,32 +26953,32 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 920, + "id": 924, "name": "amountRaised", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 56, - "src": "11210:12:0", + "src": "11238:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11189:33:0", + "src": "11217:33:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 915, - "id": 922, + "functionReturnParameters": 919, + "id": 926, "nodeType": "Return", - "src": "11182:40:0" + "src": "11210:40:0" } ] }, "documentation": null, - "id": 924, + "id": 928, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -26910,16 +26986,16 @@ "name": "isMajorityVoting", "nodeType": "FunctionDefinition", "parameters": { - "id": 912, + "id": 916, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 911, + "id": 915, "name": "valueVoting", "nodeType": "VariableDeclaration", - "scope": 924, - "src": "11127:16:0", + "scope": 928, + "src": "11155:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26927,10 +27003,10 @@ "typeString": "uint256" }, "typeName": { - "id": 910, + "id": 914, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11127:4:0", + "src": "11155:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26940,20 +27016,20 @@ "visibility": "internal" } ], - "src": "11126:18:0" + "src": "11154:18:0" }, "payable": false, "returnParameters": { - "id": 915, + "id": 919, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 914, + "id": 918, "name": "", "nodeType": "VariableDeclaration", - "scope": 924, - "src": "11166:4:0", + "scope": 928, + "src": "11194:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26961,10 +27037,10 @@ "typeString": "bool" }, "typeName": { - "id": 913, + "id": 917, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11166:4:0", + "src": "11194:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26974,25 +27050,25 @@ "visibility": "internal" } ], - "src": "11165:6:0" + "src": "11193:6:0" }, - "scope": 1076, - "src": "11101:128:0", + "scope": 1080, + "src": "11129:128:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 954, + "id": 958, "nodeType": "Block", - "src": "11289:180:0", + "src": "11317:180:0", "statements": [ { "body": { - "id": 950, + "id": 954, "nodeType": "Block", - "src": "11342:99:0", + "src": "11370:99:0", "statements": [ { "condition": { @@ -27001,7 +27077,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 945, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, @@ -27010,18 +27086,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 940, + "id": 944, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "11360:3:0", + "referencedDeclaration": 1247, + "src": "11388:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 941, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -27029,7 +27105,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11360:10:0", + "src": "11388:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27041,26 +27117,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 942, + "id": 946, "name": "trustees", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, - "src": "11374:8:0", + "src": "11402:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 944, + "id": 948, "indexExpression": { "argumentTypes": null, - "id": 943, + "id": 947, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "11383:1:0", + "referencedDeclaration": 934, + "src": "11411:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27071,39 +27147,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11374:11:0", + "src": "11402:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "11360:25:0", + "src": "11388:25:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 949, + "id": 953, "nodeType": "IfStatement", - "src": "11356:75:0", + "src": "11384:75:0", "trueBody": { - "id": 948, + "id": 952, "nodeType": "Block", - "src": "11387:44:0", + "src": "11415:44:0", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 946, + "id": 950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11412:4:0", + "src": "11440:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -27111,10 +27187,10 @@ }, "value": "true" }, - "functionReturnParameters": 928, - "id": 947, + "functionReturnParameters": 932, + "id": 951, "nodeType": "Return", - "src": "11405:11:0" + "src": "11433:11:0" } ] } @@ -27127,19 +27203,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 936, + "id": 940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 933, + "id": 937, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "11316:1:0", + "referencedDeclaration": 934, + "src": "11344:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27151,18 +27227,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 934, + "id": 938, "name": "trustees", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 74, - "src": "11320:8:0", + "src": "11348:8:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 935, + "id": 939, "isConstant": false, "isLValue": true, "isPure": false, @@ -27170,31 +27246,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11320:15:0", + "src": "11348:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11316:19:0", + "src": "11344:19:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 951, + "id": 955, "initializationExpression": { "assignments": [ - 930 + 934 ], "declarations": [ { "constant": false, - "id": 930, + "id": 934, "name": "i", "nodeType": "VariableDeclaration", - "scope": 955, - "src": "11304:6:0", + "scope": 959, + "src": "11332:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27202,10 +27278,10 @@ "typeString": "uint256" }, "typeName": { - "id": 929, + "id": 933, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11304:4:0", + "src": "11332:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27215,18 +27291,18 @@ "visibility": "internal" } ], - "id": 932, + "id": 936, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 931, + "id": 935, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11313:1:0", + "src": "11341:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -27235,12 +27311,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "11304:10:0" + "src": "11332:10:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 938, + "id": 942, "isConstant": false, "isLValue": false, "isPure": false, @@ -27248,15 +27324,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "11337:3:0", + "src": "11365:3:0", "subExpression": { "argumentTypes": null, - "id": 937, + "id": 941, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "11337:1:0", + "referencedDeclaration": 934, + "src": "11365:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27267,25 +27343,25 @@ "typeString": "uint256" } }, - "id": 939, + "id": 943, "nodeType": "ExpressionStatement", - "src": "11337:3:0" + "src": "11365:3:0" }, "nodeType": "ForStatement", - "src": "11299:142:0" + "src": "11327:142:0" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 952, + "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11457:5:0", + "src": "11485:5:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -27293,15 +27369,15 @@ }, "value": "false" }, - "functionReturnParameters": 928, - "id": 953, + "functionReturnParameters": 932, + "id": 957, "nodeType": "Return", - "src": "11450:12:0" + "src": "11478:12:0" } ] }, "documentation": null, - "id": 955, + "id": 959, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -27309,23 +27385,23 @@ "name": "isCallerTrustee", "nodeType": "FunctionDefinition", "parameters": { - "id": 925, + "id": 929, "nodeType": "ParameterList", "parameters": [], - "src": "11259:2:0" + "src": "11287:2:0" }, "payable": false, "returnParameters": { - "id": 928, + "id": 932, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 927, + "id": 931, "name": "", "nodeType": "VariableDeclaration", - "scope": 955, - "src": "11283:4:0", + "scope": 959, + "src": "11311:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27333,10 +27409,10 @@ "typeString": "bool" }, "typeName": { - "id": 926, + "id": 930, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11283:4:0", + "src": "11311:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27346,19 +27422,19 @@ "visibility": "internal" } ], - "src": "11282:6:0" + "src": "11310:6:0" }, - "scope": 1076, - "src": "11235:234:0", + "scope": 1080, + "src": "11263:234:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 967, + "id": 971, "nodeType": "Block", - "src": "11522:62:0", + "src": "11550:62:0", "statements": [ { "expression": { @@ -27367,7 +27443,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 965, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -27378,19 +27454,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 962, + "id": 966, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 960, + "id": 964, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "11539:3:0", + "referencedDeclaration": 1249, + "src": "11567:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27400,18 +27476,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 961, + "id": 965, "name": "deadline", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, - "src": "11546:8:0", + "src": "11574:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11539:15:0", + "src": "11567:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27421,7 +27497,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 964, + "id": 968, "isConstant": false, "isLValue": false, "isPure": false, @@ -27429,15 +27505,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "11558:19:0", + "src": "11586:19:0", "subExpression": { "argumentTypes": null, - "id": 963, + "id": 967, "name": "isRaiseGoalReached", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46, - "src": "11559:18:0", + "src": "11587:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27448,21 +27524,21 @@ "typeString": "bool" } }, - "src": "11539:38:0", + "src": "11567:38:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 959, - "id": 966, + "functionReturnParameters": 963, + "id": 970, "nodeType": "Return", - "src": "11532:45:0" + "src": "11560:45:0" } ] }, "documentation": null, - "id": 968, + "id": 972, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -27470,23 +27546,23 @@ "name": "isFailed", "nodeType": "FunctionDefinition", "parameters": { - "id": 956, + "id": 960, "nodeType": "ParameterList", "parameters": [], - "src": "11492:2:0" + "src": "11520:2:0" }, "payable": false, "returnParameters": { - "id": 959, + "id": 963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 958, + "id": 962, "name": "", "nodeType": "VariableDeclaration", - "scope": 968, - "src": "11516:4:0", + "scope": 972, + "src": "11544:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27494,10 +27570,10 @@ "typeString": "bool" }, "typeName": { - "id": 957, + "id": 961, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11516:4:0", + "src": "11544:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27507,19 +27583,19 @@ "visibility": "internal" } ], - "src": "11515:6:0" + "src": "11543:6:0" }, - "scope": 1076, - "src": "11475:109:0", + "scope": 1080, + "src": "11503:109:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 984, + "id": 988, "nodeType": "Block", - "src": "11703:90:0", + "src": "11731:90:0", "statements": [ { "expression": { @@ -27530,26 +27606,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 977, + "id": 981, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "11721:12:0", + "src": "11749:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 979, + "id": 983, "indexExpression": { "argumentTypes": null, - "id": 978, + "id": 982, "name": "contributorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11734:18:0", + "referencedDeclaration": 974, + "src": "11762:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27560,13 +27636,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11721:32:0", + "src": "11749:32:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 980, + "id": 984, "isConstant": false, "isLValue": true, "isPure": false, @@ -27574,21 +27650,21 @@ "memberName": "milestoneNoVotes", "nodeType": "MemberAccess", "referencedDeclaration": 25, - "src": "11721:49:0", + "src": "11749:49:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage", "typeString": "bool[] storage ref" } }, - "id": 982, + "id": 986, "indexExpression": { "argumentTypes": null, - "id": 981, + "id": 985, "name": "milestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 972, - "src": "11771:14:0", + "referencedDeclaration": 976, + "src": "11799:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27599,21 +27675,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11721:65:0", + "src": "11749:65:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 976, - "id": 983, + "functionReturnParameters": 980, + "id": 987, "nodeType": "Return", - "src": "11714:72:0" + "src": "11742:72:0" } ] }, "documentation": null, - "id": 985, + "id": 989, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -27621,16 +27697,16 @@ "name": "getContributorMilestoneVote", "nodeType": "FunctionDefinition", "parameters": { - "id": 973, + "id": 977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 970, + "id": 974, "name": "contributorAddress", "nodeType": "VariableDeclaration", - "scope": 985, - "src": "11627:26:0", + "scope": 989, + "src": "11655:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27638,10 +27714,10 @@ "typeString": "address" }, "typeName": { - "id": 969, + "id": 973, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11627:7:0", + "src": "11655:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27652,11 +27728,11 @@ }, { "constant": false, - "id": 972, + "id": 976, "name": "milestoneIndex", "nodeType": "VariableDeclaration", - "scope": 985, - "src": "11655:19:0", + "scope": 989, + "src": "11683:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27664,10 +27740,10 @@ "typeString": "uint256" }, "typeName": { - "id": 971, + "id": 975, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11655:4:0", + "src": "11683:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27677,20 +27753,20 @@ "visibility": "internal" } ], - "src": "11626:49:0" + "src": "11654:49:0" }, "payable": false, "returnParameters": { - "id": 976, + "id": 980, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 975, + "id": 979, "name": "", "nodeType": "VariableDeclaration", - "scope": 985, - "src": "11697:4:0", + "scope": 989, + "src": "11725:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27698,10 +27774,10 @@ "typeString": "bool" }, "typeName": { - "id": 974, + "id": 978, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11697:4:0", + "src": "11725:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27711,19 +27787,19 @@ "visibility": "internal" } ], - "src": "11696:6:0" + "src": "11724:6:0" }, - "scope": 1076, - "src": "11590:203:0", + "scope": 1080, + "src": "11618:203:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 997, + "id": 1001, "nodeType": "Block", - "src": "11896:75:0", + "src": "11924:75:0", "statements": [ { "expression": { @@ -27732,26 +27808,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 992, + "id": 996, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "11913:12:0", + "src": "11941:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 994, + "id": 998, "indexExpression": { "argumentTypes": null, - "id": 993, + "id": 997, "name": "contributorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "11926:18:0", + "referencedDeclaration": 991, + "src": "11954:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27762,13 +27838,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11913:32:0", + "src": "11941:32:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 995, + "id": 999, "isConstant": false, "isLValue": true, "isPure": false, @@ -27776,21 +27852,21 @@ "memberName": "contributionAmount", "nodeType": "MemberAccess", "referencedDeclaration": 22, - "src": "11913:51:0", + "src": "11941:51:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 991, - "id": 996, + "functionReturnParameters": 995, + "id": 1000, "nodeType": "Return", - "src": "11906:58:0" + "src": "11934:58:0" } ] }, "documentation": null, - "id": 998, + "id": 1002, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -27798,16 +27874,16 @@ "name": "getContributorContributionAmount", "nodeType": "FunctionDefinition", "parameters": { - "id": 988, + "id": 992, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 987, + "id": 991, "name": "contributorAddress", "nodeType": "VariableDeclaration", - "scope": 998, - "src": "11841:26:0", + "scope": 1002, + "src": "11869:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27815,10 +27891,10 @@ "typeString": "address" }, "typeName": { - "id": 986, + "id": 990, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11841:7:0", + "src": "11869:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27828,20 +27904,20 @@ "visibility": "internal" } ], - "src": "11840:28:0" + "src": "11868:28:0" }, "payable": false, "returnParameters": { - "id": 991, + "id": 995, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 990, + "id": 994, "name": "", "nodeType": "VariableDeclaration", - "scope": 998, - "src": "11890:4:0", + "scope": 1002, + "src": "11918:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27849,10 +27925,10 @@ "typeString": "uint256" }, "typeName": { - "id": 989, + "id": 993, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11890:4:0", + "src": "11918:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27862,19 +27938,19 @@ "visibility": "internal" } ], - "src": "11889:6:0" + "src": "11917:6:0" }, - "scope": 1076, - "src": "11799:172:0", + "scope": 1080, + "src": "11827:172:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1007, + "id": 1011, "nodeType": "Block", - "src": "12031:42:0", + "src": "12059:42:0", "statements": [ { "expression": { @@ -27882,12 +27958,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1004, + "id": 1008, "name": "freezeReason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11, - "src": "12053:12:0", + "src": "12081:12:0", "typeDescriptions": { "typeIdentifier": "t_enum$_FreezeReason_$9", "typeString": "enum CrowdFund.FreezeReason" @@ -27901,20 +27977,20 @@ "typeString": "enum CrowdFund.FreezeReason" } ], - "id": 1003, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12048:4:0", + "src": "12076:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 1005, + "id": 1009, "isConstant": false, "isLValue": false, "isPure": false, @@ -27922,21 +27998,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12048:18:0", + "src": "12076:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1002, - "id": 1006, + "functionReturnParameters": 1006, + "id": 1010, "nodeType": "Return", - "src": "12041:25:0" + "src": "12069:25:0" } ] }, "documentation": null, - "id": 1008, + "id": 1012, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -27944,23 +28020,23 @@ "name": "getFreezeReason", "nodeType": "FunctionDefinition", "parameters": { - "id": 999, + "id": 1003, "nodeType": "ParameterList", "parameters": [], - "src": "12001:2:0" + "src": "12029:2:0" }, "payable": false, "returnParameters": { - "id": 1002, + "id": 1006, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1001, + "id": 1005, "name": "", "nodeType": "VariableDeclaration", - "scope": 1008, - "src": "12025:4:0", + "scope": 1012, + "src": "12053:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27968,10 +28044,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1000, + "id": 1004, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12025:4:0", + "src": "12053:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27981,19 +28057,19 @@ "visibility": "internal" } ], - "src": "12024:6:0" + "src": "12052:6:0" }, - "scope": 1076, - "src": "11977:96:0", + "scope": 1080, + "src": "12005:96:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1016, + "id": 1020, "nodeType": "Block", - "src": "12101:70:0", + "src": "12129:70:0", "statements": [ { "expression": { @@ -28001,12 +28077,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1011, + "id": 1015, "name": "frozen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44, - "src": "12119:6:0", + "src": "12147:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28015,14 +28091,14 @@ { "argumentTypes": null, "hexValue": "43726f776446756e64206973206e6f742066726f7a656e", - "id": 1012, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12127:25:0", + "src": "12155:25:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", @@ -28042,21 +28118,21 @@ "typeString": "literal_string \"CrowdFund is not frozen\"" } ], - "id": 1010, + "id": 1014, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12111:7:0", + "referencedDeclaration": 1251, + "src": "12139:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1013, + "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, @@ -28064,41 +28140,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12111:42:0", + "src": "12139:42:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1014, + "id": 1018, "nodeType": "ExpressionStatement", - "src": "12111:42:0" + "src": "12139:42:0" }, { - "id": 1015, + "id": 1019, "nodeType": "PlaceholderStatement", - "src": "12163:1:0" + "src": "12191:1:0" } ] }, "documentation": null, - "id": 1017, + "id": 1021, "name": "onlyFrozen", "nodeType": "ModifierDefinition", "parameters": { - "id": 1009, + "id": 1013, "nodeType": "ParameterList", "parameters": [], - "src": "12098:2:0" + "src": "12126:2:0" }, - "src": "12079:92:0", + "src": "12107:92:0", "visibility": "internal" }, { "body": { - "id": 1026, + "id": 1030, "nodeType": "Block", - "src": "12201:67:0", + "src": "12229:67:0", "statements": [ { "expression": { @@ -28106,7 +28182,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1021, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, @@ -28114,15 +28190,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "12219:7:0", + "src": "12247:7:0", "subExpression": { "argumentTypes": null, - "id": 1020, + "id": 1024, "name": "frozen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44, - "src": "12220:6:0", + "src": "12248:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28136,14 +28212,14 @@ { "argumentTypes": null, "hexValue": "43726f776446756e642069732066726f7a656e", - "id": 1022, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12228:21:0", + "src": "12256:21:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21ebfed987d130de5e469bef5346c6c759f8769c3909e5f178aa85e98366503d", @@ -28163,21 +28239,21 @@ "typeString": "literal_string \"CrowdFund is frozen\"" } ], - "id": 1019, + "id": 1023, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12211:7:0", + "referencedDeclaration": 1251, + "src": "12239:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1023, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, @@ -28185,41 +28261,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12211:39:0", + "src": "12239:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1024, + "id": 1028, "nodeType": "ExpressionStatement", - "src": "12211:39:0" + "src": "12239:39:0" }, { - "id": 1025, + "id": 1029, "nodeType": "PlaceholderStatement", - "src": "12260:1:0" + "src": "12288:1:0" } ] }, "documentation": null, - "id": 1027, + "id": 1031, "name": "onlyUnfrozen", "nodeType": "ModifierDefinition", "parameters": { - "id": 1018, + "id": 1022, "nodeType": "ParameterList", "parameters": [], - "src": "12198:2:0" + "src": "12226:2:0" }, - "src": "12177:91:0", + "src": "12205:91:0", "visibility": "internal" }, { "body": { - "id": 1035, + "id": 1039, "nodeType": "Block", - "src": "12296:84:0", + "src": "12324:84:0", "statements": [ { "expression": { @@ -28227,12 +28303,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1030, + "id": 1034, "name": "isRaiseGoalReached", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46, - "src": "12314:18:0", + "src": "12342:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28241,14 +28317,14 @@ { "argumentTypes": null, "hexValue": "526169736520676f616c206973206e6f742072656163686564", - "id": 1031, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12334:27:0", + "src": "12362:27:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d65d4721f73624ca6e381e7ad4c000f40a20c0abe88c0be62360bb906d10ffbe", @@ -28268,21 +28344,21 @@ "typeString": "literal_string \"Raise goal is not reached\"" } ], - "id": 1029, + "id": 1033, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12306:7:0", + "referencedDeclaration": 1251, + "src": "12334:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1032, + "id": 1036, "isConstant": false, "isLValue": false, "isPure": false, @@ -28290,41 +28366,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12306:56:0", + "src": "12334:56:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1033, + "id": 1037, "nodeType": "ExpressionStatement", - "src": "12306:56:0" + "src": "12334:56:0" }, { - "id": 1034, + "id": 1038, "nodeType": "PlaceholderStatement", - "src": "12372:1:0" + "src": "12400:1:0" } ] }, "documentation": null, - "id": 1036, + "id": 1040, "name": "onlyRaised", "nodeType": "ModifierDefinition", "parameters": { - "id": 1028, + "id": 1032, "nodeType": "ParameterList", "parameters": [], - "src": "12293:2:0" + "src": "12321:2:0" }, - "src": "12274:106:0", + "src": "12302:106:0", "visibility": "internal" }, { "body": { - "id": 1049, + "id": 1053, "nodeType": "Block", - "src": "12409:103:0", + "src": "12437:103:0", "statements": [ { "expression": { @@ -28336,7 +28412,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1044, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": false, @@ -28347,19 +28423,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1041, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1039, + "id": 1043, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "12427:3:0", + "referencedDeclaration": 1249, + "src": "12455:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28369,18 +28445,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1040, + "id": 1044, "name": "deadline", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, - "src": "12434:8:0", + "src": "12462:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12427:15:0", + "src": "12455:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28390,7 +28466,7 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 1043, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -28398,15 +28474,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "12446:19:0", + "src": "12474:19:0", "subExpression": { "argumentTypes": null, - "id": 1042, + "id": 1046, "name": "isRaiseGoalReached", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46, - "src": "12447:18:0", + "src": "12475:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28417,7 +28493,7 @@ "typeString": "bool" } }, - "src": "12427:38:0", + "src": "12455:38:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28426,14 +28502,14 @@ { "argumentTypes": null, "hexValue": "43726f776446756e64206973206e6f74206f6e676f696e67", - "id": 1045, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12467:26:0", + "src": "12495:26:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_843cc2d7a1ba19041b40561b89d21c7571d29e5c5e2d0d1510f441aea3fc1747", @@ -28453,21 +28529,21 @@ "typeString": "literal_string \"CrowdFund is not ongoing\"" } ], - "id": 1038, + "id": 1042, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12419:7:0", + "referencedDeclaration": 1251, + "src": "12447:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1046, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": false, @@ -28475,41 +28551,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12419:75:0", + "src": "12447:75:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1047, + "id": 1051, "nodeType": "ExpressionStatement", - "src": "12419:75:0" + "src": "12447:75:0" }, { - "id": 1048, + "id": 1052, "nodeType": "PlaceholderStatement", - "src": "12504:1:0" + "src": "12532:1:0" } ] }, "documentation": null, - "id": 1050, + "id": 1054, "name": "onlyOnGoing", "nodeType": "ModifierDefinition", "parameters": { - "id": 1037, + "id": 1041, "nodeType": "ParameterList", "parameters": [], - "src": "12406:2:0" + "src": "12434:2:0" }, - "src": "12386:126:0", + "src": "12414:126:0", "visibility": "internal" }, { "body": { - "id": 1064, + "id": 1068, "nodeType": "Block", - "src": "12545:116:0", + "src": "12573:116:0", "statements": [ { "expression": { @@ -28521,7 +28597,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1059, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, @@ -28532,34 +28608,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1053, + "id": 1057, "name": "contributors", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 68, - "src": "12563:12:0", + "src": "12591:12:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" } }, - "id": 1056, + "id": 1060, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1054, + "id": 1058, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "12576:3:0", + "referencedDeclaration": 1247, + "src": "12604:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1055, + "id": 1059, "isConstant": false, "isLValue": false, "isPure": false, @@ -28567,7 +28643,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12576:10:0", + "src": "12604:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28578,13 +28654,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12563:24:0", + "src": "12591:24:0", "typeDescriptions": { "typeIdentifier": "t_struct$_Contributor_$30_storage", "typeString": "struct CrowdFund.Contributor storage ref" } }, - "id": 1057, + "id": 1061, "isConstant": false, "isLValue": true, "isPure": false, @@ -28592,7 +28668,7 @@ "memberName": "contributionAmount", "nodeType": "MemberAccess", "referencedDeclaration": 22, - "src": "12563:43:0", + "src": "12591:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28603,14 +28679,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1058, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12610:1:0", + "src": "12638:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -28618,7 +28694,7 @@ }, "value": "0" }, - "src": "12563:48:0", + "src": "12591:48:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28627,14 +28703,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f74206120636f6e7472696275746f72", - "id": 1060, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12613:29:0", + "src": "12641:29:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_27c7012fc5b199883f3d6c1e7d0d3c9cd967752b2ed8ba1703713f2d84425e7b", @@ -28654,21 +28730,21 @@ "typeString": "literal_string \"Caller is not a contributor\"" } ], - "id": 1052, + "id": 1056, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12555:7:0", + "referencedDeclaration": 1251, + "src": "12583:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1061, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, @@ -28676,41 +28752,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12555:88:0", + "src": "12583:88:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1062, + "id": 1066, "nodeType": "ExpressionStatement", - "src": "12555:88:0" + "src": "12583:88:0" }, { - "id": 1063, + "id": 1067, "nodeType": "PlaceholderStatement", - "src": "12653:1:0" + "src": "12681:1:0" } ] }, "documentation": null, - "id": 1065, + "id": 1069, "name": "onlyContributor", "nodeType": "ModifierDefinition", "parameters": { - "id": 1051, + "id": 1055, "nodeType": "ParameterList", "parameters": [], - "src": "12542:2:0" + "src": "12570:2:0" }, - "src": "12518:143:0", + "src": "12546:143:0", "visibility": "internal" }, { "body": { - "id": 1074, + "id": 1078, "nodeType": "Block", - "src": "12690:81:0", + "src": "12718:81:0", "statements": [ { "expression": { @@ -28721,18 +28797,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1068, + "id": 1072, "name": "isCallerTrustee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "12708:15:0", + "referencedDeclaration": 959, + "src": "12736:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1069, + "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, @@ -28740,7 +28816,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12708:17:0", + "src": "12736:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -28749,14 +28825,14 @@ { "argumentTypes": null, "hexValue": "43616c6c6572206973206e6f7420612074727573746565", - "id": 1070, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12727:25:0", + "src": "12755:25:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_efecdf3be8b72bfbf67a07f441dfdb20b968592ad6d7fba48a91dfa72a34f2d8", @@ -28776,21 +28852,21 @@ "typeString": "literal_string \"Caller is not a trustee\"" } ], - "id": 1067, + "id": 1071, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1246, - 1247 + 1250, + 1251 ], - "referencedDeclaration": 1247, - "src": "12700:7:0", + "referencedDeclaration": 1251, + "src": "12728:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1071, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": false, @@ -28798,42 +28874,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12700:53:0", + "src": "12728:53:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1072, + "id": 1076, "nodeType": "ExpressionStatement", - "src": "12700:53:0" + "src": "12728:53:0" }, { - "id": 1073, + "id": 1077, "nodeType": "PlaceholderStatement", - "src": "12763:1:0" + "src": "12791:1:0" } ] }, "documentation": null, - "id": 1075, + "id": 1079, "name": "onlyTrustee", "nodeType": "ModifierDefinition", "parameters": { - "id": 1066, + "id": 1070, "nodeType": "ParameterList", "parameters": [], - "src": "12687:2:0" + "src": "12715:2:0" }, - "src": "12667:104:0", + "src": "12695:104:0", "visibility": "internal" } ], - "scope": 1077, - "src": "87:12687:0" + "scope": 1081, + "src": "87:12715:0" } ], - "src": "0:12775:0" + "src": "0:12802:0" }, "compiler": { "name": "solc", @@ -28841,5 +28917,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-11-16T20:36:37.827Z" + "updatedAt": "2018-09-26T03:49:30.936Z" } \ No newline at end of file diff --git a/contract/build/contracts/CrowdFundFactory.json b/contract/build/contracts/CrowdFundFactory.json index 651d41db..b42770e5 100644 --- a/contract/build/contracts/CrowdFundFactory.json +++ b/contract/build/contracts/CrowdFundFactory.json @@ -57,24 +57,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50613684806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806350f74ec014610046575b600080fd5b34801561005257600080fd5b5061013760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919080359060200190929190803515159060200190929190505050610179565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808888888888888861018b610368565b808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200186815260200185815260200184151515158152602001838103835288818151815260200191508051906020019060200280838360005b8381101561021d578082015181840152602081019050610202565b50505050905001838103825287818151815260200191508051906020019060200280838360005b8381101561025f578082015181840152602081019050610244565b505050509050019950505050505050505050604051809103906000f08015801561028d573d6000803e3d6000fd5b5090507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080915050979650505050505050565b6040516132e08061037983390190560060806040523480156200001157600080fd5b50604051620032e0380380620032e0833981018060405281019080805190602001909291908051906020019092919080518201929190602001805182019291906020018051906020019092919080519060200190929190805190602001909291905050506000806000670de0b6b3a76400008a1015151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526169736520676f616c20697320736d616c6c6572207468616e20312065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001885110158015620001365750600a885111155b1515620001d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472757374656520616464726573736573206d757374206265206174206c656181526020017f7374203120616e64206e6f74206d6f7265207468616e2031300000000000000081525060400191505060405180910390fd5b6001875110158015620001e65750600a875111155b151562000281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4d696c6573746f6e6573206d757374206265206174206c65617374203120616e81526020017f64206e6f74206d6f7265207468616e203130000000000000000000000000000081525060400191505060405180910390fd5b60009250600091505b865182101562000416578682815181101515620002a357fe5b9060200190602002015190506000811115156200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d696c6573746f6e6520616d6f756e74206d757374206265206772656174657281526020017f207468616e20300000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6200037181846200059b6401000000000262002ad7179091906401000000009004565b9250600c6080604051908101604052808381526020016000815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050505081806001019250506200028a565b8983141515620004b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736581526020017f20676f616c00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60016006819055508960038190555088600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600b90805190602001906200051c929190620005b8565b508542016002819055508460018190555083600060036101000a81548160ff02191690831515021790555060008060026101000a81548160ff021916908315150217905550600060078190555060008060016101000a81548160ff0219169083151502179055506000600481905550505050505050505050506200068d565b60008183019050828110151515620005af57fe5b80905092915050565b82805482825590600052602060002090810192821562000634579160200282015b82811115620006335782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005d9565b5b50905062000643919062000647565b5090565b6200068a91905b808211156200068657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200064e565b5090565b90565b612c43806200069d6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e68565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e94565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb5565b005b34801561041557600080fd5b5061041e61122a565b005b34801561042c57600080fd5b5061044d60048036038101908080351515906020019092919050505061143e565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061181c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061185a565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118a6565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ac565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b2f565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611ba8565b005b3480156105f357600080fd5b506105fc61205d565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612063565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061243c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c161247a565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec612480565b6040518082815260200191505060405180910390f35b61070a6124a1565b005b34801561071857600080fd5b50610721612a26565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a39565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a4c565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612a98565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612abe90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e60565b610e3b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e1b57fe5b906000526020600020906004020160010154612ad790919063ffffffff16565b600c87815481101515610e4a57fe5b9060005260206000209060040201600101819055505b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610ead600284612af390919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154915061118d60055461117f3073ffffffffffffffffffffffffffffffffffffffff163185612af390919063ffffffff16565b612b2b90919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111d5573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112bb610850565b92506112c5612a98565b91506112d2600754610e94565b905082806112dd5750815b806112e55750805b151561137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113ad5760008060006101000a81548160ff021916908360028111156113a357fe5b0217905550611400565b81156113db5760016000806101000a81548160ff021916908360028111156113d157fe5b02179055506113ff565b60026000806101000a81548160ff021916908360028111156113f957fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156114fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff16151561157e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117ba576117af600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612abe90919063ffffffff16565b600781905550611818565b611811600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ad790919063ffffffff16565b6007819055505b5050565b600b8181548110151561182b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118b7610850565b151561192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611af457600a828154811015156119d057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119b4565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8057fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bb8610850565b1515611c2c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d4457fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d7557fe5b906000526020600020906004020160020154119350611db3600c87815481101515611d9c57fe5b906000526020600020906004020160010154610e94565b925084151515611e2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611ea457600c81815481101515611e6f57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611e97578091505b8080600101915050611e53565b6001820186141515611f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f5557fe5b9060005260206000209060040201600201541415611ff857600086148015611f895750600060039054906101000a900460ff165b15611fb9576001600c87815481101515611f9f57fe5b906000526020600020906004020160020181905550611ff3565b611fce60015442612ad790919063ffffffff16565b600c87815481101515611fdd57fe5b9060005260206000209060040201600201819055505b612055565b8380156120025750825b156120545761202f6120206002600154612af390919063ffffffff16565b42612ad790919063ffffffff16565b600c8781548110151561203e57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612172576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561218257fe5b9060005260206000209060040201600201541093506121c0600c868154811015156121a957fe5b906000526020600020906004020160010154610e94565b9250600c858154811015156121d157fe5b906000526020600020906004020160030160009054906101000a900460ff1691508380156121fd575082155b8015612207575081155b156123a1576001600c8681548110151561221d57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561225457fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122d0573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161235b86600c80549050612abe90919063ffffffff16565b141561239c57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612435565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561244b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff16600281111561249c57fe5b905090565b600080600060025442111580156124c55750600060029054906101000a900460ff16155b1515612539576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125d334600454612ad790919063ffffffff16565b92506003548311151515612675576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061268d5750805b151561274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561290857608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127de5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612859929190612b41565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129a4565b61295d34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ad790919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129d3576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a5b57fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ab95750600060029054906101000a900460ff16155b905090565b6000828211151515612acc57fe5b818303905092915050565b60008183019050828110151515612aea57fe5b80905092915050565b600080831415612b065760009050612b25565b8183029050818382811515612b1757fe5b04141515612b2157fe5b8090505b92915050565b60008183811515612b3857fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612bd65791602002820160005b83821115612ba757835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b6a565b8015612bd45782816101000a81549060ff0219169055600101602081600001049283019260010302612ba7565b505b509050612be39190612be7565b5090565b612c1491905b80821115612c1057600081816101000a81549060ff021916905550600101612bed565b5090565b905600a165627a7a7230582051351396444f74bc4a8b3921cf045e1b2aea376db653835bbe15cc04725c9b3d0029a165627a7a72305820934808680be9c81f1fba40415b4ca3b9b11aaa579220c370ce09f0bdcdd30d220029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806350f74ec014610046575b600080fd5b34801561005257600080fd5b5061013760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919080359060200190929190803515159060200190929190505050610179565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808888888888888861018b610368565b808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200186815260200185815260200184151515158152602001838103835288818151815260200191508051906020019060200280838360005b8381101561021d578082015181840152602081019050610202565b50505050905001838103825287818151815260200191508051906020019060200280838360005b8381101561025f578082015181840152602081019050610244565b505050509050019950505050505050505050604051809103906000f08015801561028d573d6000803e3d6000fd5b5090507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080915050979650505050505050565b6040516132e08061037983390190560060806040523480156200001157600080fd5b50604051620032e0380380620032e0833981018060405281019080805190602001909291908051906020019092919080518201929190602001805182019291906020018051906020019092919080519060200190929190805190602001909291905050506000806000670de0b6b3a76400008a1015151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526169736520676f616c20697320736d616c6c6572207468616e20312065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001885110158015620001365750600a885111155b1515620001d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472757374656520616464726573736573206d757374206265206174206c656181526020017f7374203120616e64206e6f74206d6f7265207468616e2031300000000000000081525060400191505060405180910390fd5b6001875110158015620001e65750600a875111155b151562000281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4d696c6573746f6e6573206d757374206265206174206c65617374203120616e81526020017f64206e6f74206d6f7265207468616e203130000000000000000000000000000081525060400191505060405180910390fd5b60009250600091505b865182101562000416578682815181101515620002a357fe5b9060200190602002015190506000811115156200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d696c6573746f6e6520616d6f756e74206d757374206265206772656174657281526020017f207468616e20300000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6200037181846200059b6401000000000262002ad7179091906401000000009004565b9250600c6080604051908101604052808381526020016000815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050505081806001019250506200028a565b8983141515620004b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736581526020017f20676f616c00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60016006819055508960038190555088600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600b90805190602001906200051c929190620005b8565b508542016002819055508460018190555083600060036101000a81548160ff02191690831515021790555060008060026101000a81548160ff021916908315150217905550600060078190555060008060016101000a81548160ff0219169083151502179055506000600481905550505050505050505050506200068d565b60008183019050828110151515620005af57fe5b80905092915050565b82805482825590600052602060002090810192821562000634579160200282015b82811115620006335782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005d9565b5b50905062000643919062000647565b5090565b6200068a91905b808211156200068657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200064e565b5090565b90565b612c43806200069d6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e68565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e94565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eb5565b005b34801561041557600080fd5b5061041e61122a565b005b34801561042c57600080fd5b5061044d60048036038101908080351515906020019092919050505061143e565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061181c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061185a565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118a6565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ac565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b2f565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611ba8565b005b3480156105f357600080fd5b506105fc61205d565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612063565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061243c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c161247a565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec612480565b6040518082815260200191505060405180910390f35b61070a6124a1565b005b34801561071857600080fd5b50610721612a26565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a39565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a4c565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612a98565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612abe90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e60565b610e3b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e1b57fe5b906000526020600020906004020160010154612ad790919063ffffffff16565b600c87815481101515610e4a57fe5b9060005260206000209060040201600101819055505b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610ead600284612af390919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154915061118d60055461117f3073ffffffffffffffffffffffffffffffffffffffff163185612af390919063ffffffff16565b612b2b90919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111d5573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112bb610850565b92506112c5612a98565b91506112d2600754610e94565b905082806112dd5750815b806112e55750805b151561137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113ad5760008060006101000a81548160ff021916908360028111156113a357fe5b0217905550611400565b81156113db5760016000806101000a81548160ff021916908360028111156113d157fe5b02179055506113ff565b60026000806101000a81548160ff021916908360028111156113f957fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156114fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff16151561157e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117ba576117af600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612abe90919063ffffffff16565b600781905550611818565b611811600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ad790919063ffffffff16565b6007819055505b5050565b600b8181548110151561182b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118b7610850565b151561192b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611af457600a828154811015156119d057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119b4565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8057fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bb8610850565b1515611c2c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d4457fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d7557fe5b906000526020600020906004020160020154119350611db3600c87815481101515611d9c57fe5b906000526020600020906004020160010154610e94565b925084151515611e2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611ea457600c81815481101515611e6f57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611e97578091505b8080600101915050611e53565b6001820186141515611f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f5557fe5b9060005260206000209060040201600201541415611ff857600086148015611f895750600060039054906101000a900460ff165b15611fb9576001600c87815481101515611f9f57fe5b906000526020600020906004020160020181905550611ff3565b611fce60015442612ad790919063ffffffff16565b600c87815481101515611fdd57fe5b9060005260206000209060040201600201819055505b612055565b8380156120025750825b156120545761202f6120206002600154612af390919063ffffffff16565b42612ad790919063ffffffff16565b600c8781548110151561203e57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612172576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561218257fe5b9060005260206000209060040201600201541093506121c0600c868154811015156121a957fe5b906000526020600020906004020160010154610e94565b9250600c858154811015156121d157fe5b906000526020600020906004020160030160009054906101000a900460ff1691508380156121fd575082155b8015612207575081155b156123a1576001600c8681548110151561221d57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561225457fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122d0573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161235b86600c80549050612abe90919063ffffffff16565b141561239c57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612435565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561244b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff16600281111561249c57fe5b905090565b600080600060025442111580156124c55750600060029054906101000a900460ff16155b1515612539576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125d334600454612ad790919063ffffffff16565b92506003548311151515612675576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061268d5750805b151561274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561290857608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127de5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612859929190612b41565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129a4565b61295d34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ad790919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129d3576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a5b57fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ab95750600060029054906101000a900460ff16155b905090565b6000828211151515612acc57fe5b818303905092915050565b60008183019050828110151515612aea57fe5b80905092915050565b600080831415612b065760009050612b25565b8183029050818382811515612b1757fe5b04141515612b2157fe5b8090505b92915050565b60008183811515612b3857fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612bd65791602002820160005b83821115612ba757835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b6a565b8015612bd45782816101000a81549060ff0219169055600101602081600001049283019260010302612ba7565b505b509050612be39190612be7565b5090565b612c1491905b80821115612c1057600081816101000a81549060ff021916905550600101612bed565b5090565b905600a165627a7a7230582051351396444f74bc4a8b3921cf045e1b2aea376db653835bbe15cc04725c9b3d0029a165627a7a72305820934808680be9c81f1fba40415b4ca3b9b11aaa579220c370ce09f0bdcdd30d220029", + "bytecode": "0x608060405234801561001057600080fd5b50613692806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806350f74ec014610046575b600080fd5b34801561005257600080fd5b5061013760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919080359060200190929190803515159060200190929190505050610179565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808888888888888861018b610368565b808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200186815260200185815260200184151515158152602001838103835288818151815260200191508051906020019060200280838360005b8381101561021d578082015181840152602081019050610202565b50505050905001838103825287818151815260200191508051906020019060200280838360005b8381101561025f578082015181840152602081019050610244565b505050509050019950505050505050505050604051809103906000f08015801561028d573d6000803e3d6000fd5b5090507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080915050979650505050505050565b6040516132ee8061037983390190560060806040523480156200001157600080fd5b50604051620032ee380380620032ee833981018060405281019080805190602001909291908051906020019092919080518201929190602001805182019291906020018051906020019092919080519060200190929190805190602001909291905050506000806000670de0b6b3a76400008a1015151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526169736520676f616c20697320736d616c6c6572207468616e20312065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001885110158015620001365750600a885111155b1515620001d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472757374656520616464726573736573206d757374206265206174206c656181526020017f7374203120616e64206e6f74206d6f7265207468616e2031300000000000000081525060400191505060405180910390fd5b6001875110158015620001e65750600a875111155b151562000281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4d696c6573746f6e6573206d757374206265206174206c65617374203120616e81526020017f64206e6f74206d6f7265207468616e203130000000000000000000000000000081525060400191505060405180910390fd5b60009250600091505b865182101562000416578682815181101515620002a357fe5b9060200190602002015190506000811115156200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d696c6573746f6e6520616d6f756e74206d757374206265206772656174657281526020017f207468616e20300000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6200037181846200059b6401000000000262002ae5179091906401000000009004565b9250600c6080604051908101604052808381526020016000815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050505081806001019250506200028a565b8983141515620004b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736581526020017f20676f616c00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60016006819055508960038190555088600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600b90805190602001906200051c929190620005b8565b508542016002819055508460018190555083600060036101000a81548160ff02191690831515021790555060008060026101000a81548160ff021916908315150217905550600060078190555060008060016101000a81548160ff0219169083151502179055506000600481905550505050505050505050506200068d565b60008183019050828110151515620005af57fe5b80905092915050565b82805482825590600052602060002090810192821562000634579160200282015b82811115620006335782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005d9565b5b50905062000643919062000647565b5090565b6200068a91905b808211156200068657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200064e565b5090565b90565b612c51806200069d6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e6f565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e9b565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebc565b005b34801561041557600080fd5b5061041e611231565b005b34801561042c57600080fd5b5061044d600480360381019080803515159060200190929190505050611445565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061182a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611868565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118b4565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ba565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b3d565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611bb6565b005b3480156105f357600080fd5b506105fc61206b565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612071565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061244a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1612488565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec61248e565b6040518082815260200191505060405180910390f35b61070a6124af565b005b34801561071857600080fd5b50610721612a34565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a47565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a5a565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612aa6565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612acc90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e67565b8415610e6657610e41600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e2157fe5b906000526020600020906004020160010154612ae590919063ffffffff16565b600c87815481101515610e5057fe5b9060005260206000209060040201600101819055505b5b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610eb4600284612b0190919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506111946005546111863073ffffffffffffffffffffffffffffffffffffffff163185612b0190919063ffffffff16565b612b3990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111dc573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112c2610850565b92506112cc612aa6565b91506112d9600754610e9b565b905082806112e45750815b806112ec5750805b1515611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113b45760008060006101000a81548160ff021916908360028111156113aa57fe5b0217905550611407565b81156113e25760016000806101000a81548160ff021916908360028111156113d857fe5b0217905550611406565b60026000806101000a81548160ff0219169083600281111561140057fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611501576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615151561160a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117c1576117b6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612acc90919063ffffffff16565b600781905550611826565b81156118255761181e600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ae590919063ffffffff16565b6007819055505b5b5050565b600b8181548110151561183957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118c5610850565b1515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611b0257600a828154811015156119de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119c2565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8e57fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bc6610850565b1515611c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d5257fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d8357fe5b906000526020600020906004020160020154119350611dc1600c87815481101515611daa57fe5b906000526020600020906004020160010154610e9b565b925084151515611e39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611eb257600c81815481101515611e7d57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611ea5578091505b8080600101915050611e61565b6001820186141515611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f6357fe5b906000526020600020906004020160020154141561200657600086148015611f975750600060039054906101000a900460ff165b15611fc7576001600c87815481101515611fad57fe5b906000526020600020906004020160020181905550612001565b611fdc60015442612ae590919063ffffffff16565b600c87815481101515611feb57fe5b9060005260206000209060040201600201819055505b612063565b8380156120105750825b156120625761203d61202e6002600154612b0190919063ffffffff16565b42612ae590919063ffffffff16565b600c8781548110151561204c57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561219057fe5b9060005260206000209060040201600201541093506121ce600c868154811015156121b757fe5b906000526020600020906004020160010154610e9b565b9250600c858154811015156121df57fe5b906000526020600020906004020160030160009054906101000a900460ff16915083801561220b575082155b8015612215575081155b156123af576001600c8681548110151561222b57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561226257fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122de573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161236986600c80549050612acc90919063ffffffff16565b14156123aa57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612443565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561245957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff1660028111156124aa57fe5b905090565b600080600060025442111580156124d35750600060029054906101000a900460ff16155b1515612547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125e134600454612ae590919063ffffffff16565b92506003548311151515612683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061269b5750805b151561275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561291657608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127ec5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612867929190612b4f565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129b2565b61296b34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ae590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129e1576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a6957fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ac75750600060029054906101000a900460ff16155b905090565b6000828211151515612ada57fe5b818303905092915050565b60008183019050828110151515612af857fe5b80905092915050565b600080831415612b145760009050612b33565b8183029050818382811515612b2557fe5b04141515612b2f57fe5b8090505b92915050565b60008183811515612b4657fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612be45791602002820160005b83821115612bb557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b78565b8015612be25782816101000a81549060ff0219169055600101602081600001049283019260010302612bb5565b505b509050612bf19190612bf5565b5090565b612c2291905b80821115612c1e57600081816101000a81549060ff021916905550600101612bfb565b5090565b905600a165627a7a72305820b725d6ed533ba3c21fcb343e8c393171f8c562c1668224983554c10c88ce87060029a165627a7a7230582038c1809b6ce57218a64a17a9211e1b79cca7e3c5a544e99070a9b555c6cb52430029", + "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806350f74ec014610046575b600080fd5b34801561005257600080fd5b5061013760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919080359060200190929190803515159060200190929190505050610179565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808888888888888861018b610368565b808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200186815260200185815260200184151515158152602001838103835288818151815260200191508051906020019060200280838360005b8381101561021d578082015181840152602081019050610202565b50505050905001838103825287818151815260200191508051906020019060200280838360005b8381101561025f578082015181840152602081019050610244565b505050509050019950505050505050505050604051809103906000f08015801561028d573d6000803e3d6000fd5b5090507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080915050979650505050505050565b6040516132ee8061037983390190560060806040523480156200001157600080fd5b50604051620032ee380380620032ee833981018060405281019080805190602001909291908051906020019092919080518201929190602001805182019291906020018051906020019092919080519060200190929190805190602001909291905050506000806000670de0b6b3a76400008a1015151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526169736520676f616c20697320736d616c6c6572207468616e20312065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001885110158015620001365750600a885111155b1515620001d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472757374656520616464726573736573206d757374206265206174206c656181526020017f7374203120616e64206e6f74206d6f7265207468616e2031300000000000000081525060400191505060405180910390fd5b6001875110158015620001e65750600a875111155b151562000281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4d696c6573746f6e6573206d757374206265206174206c65617374203120616e81526020017f64206e6f74206d6f7265207468616e203130000000000000000000000000000081525060400191505060405180910390fd5b60009250600091505b865182101562000416578682815181101515620002a357fe5b9060200190602002015190506000811115156200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d696c6573746f6e6520616d6f756e74206d757374206265206772656174657281526020017f207468616e20300000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6200037181846200059b6401000000000262002ae5179091906401000000009004565b9250600c6080604051908101604052808381526020016000815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050505081806001019250506200028a565b8983141515620004b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736581526020017f20676f616c00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60016006819055508960038190555088600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600b90805190602001906200051c929190620005b8565b508542016002819055508460018190555083600060036101000a81548160ff02191690831515021790555060008060026101000a81548160ff021916908315150217905550600060078190555060008060016101000a81548160ff0219169083151502179055506000600481905550505050505050505050506200068d565b60008183019050828110151515620005af57fe5b80905092915050565b82805482825590600052602060002090810192821562000634579160200282015b82811115620006335782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005d9565b5b50905062000643919062000647565b5090565b6200068a91905b808211156200068657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200064e565b5090565b90565b612c51806200069d6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e6f565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e9b565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebc565b005b34801561041557600080fd5b5061041e611231565b005b34801561042c57600080fd5b5061044d600480360381019080803515159060200190929190505050611445565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061182a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611868565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118b4565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ba565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b3d565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611bb6565b005b3480156105f357600080fd5b506105fc61206b565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612071565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061244a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1612488565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec61248e565b6040518082815260200191505060405180910390f35b61070a6124af565b005b34801561071857600080fd5b50610721612a34565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a47565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a5a565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612aa6565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612acc90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e67565b8415610e6657610e41600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e2157fe5b906000526020600020906004020160010154612ae590919063ffffffff16565b600c87815481101515610e5057fe5b9060005260206000209060040201600101819055505b5b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610eb4600284612b0190919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506111946005546111863073ffffffffffffffffffffffffffffffffffffffff163185612b0190919063ffffffff16565b612b3990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111dc573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112c2610850565b92506112cc612aa6565b91506112d9600754610e9b565b905082806112e45750815b806112ec5750805b1515611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113b45760008060006101000a81548160ff021916908360028111156113aa57fe5b0217905550611407565b81156113e25760016000806101000a81548160ff021916908360028111156113d857fe5b0217905550611406565b60026000806101000a81548160ff0219169083600281111561140057fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611501576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615151561160a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117c1576117b6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612acc90919063ffffffff16565b600781905550611826565b81156118255761181e600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ae590919063ffffffff16565b6007819055505b5b5050565b600b8181548110151561183957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118c5610850565b1515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611b0257600a828154811015156119de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119c2565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8e57fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bc6610850565b1515611c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d5257fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d8357fe5b906000526020600020906004020160020154119350611dc1600c87815481101515611daa57fe5b906000526020600020906004020160010154610e9b565b925084151515611e39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611eb257600c81815481101515611e7d57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611ea5578091505b8080600101915050611e61565b6001820186141515611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f6357fe5b906000526020600020906004020160020154141561200657600086148015611f975750600060039054906101000a900460ff165b15611fc7576001600c87815481101515611fad57fe5b906000526020600020906004020160020181905550612001565b611fdc60015442612ae590919063ffffffff16565b600c87815481101515611feb57fe5b9060005260206000209060040201600201819055505b612063565b8380156120105750825b156120625761203d61202e6002600154612b0190919063ffffffff16565b42612ae590919063ffffffff16565b600c8781548110151561204c57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561219057fe5b9060005260206000209060040201600201541093506121ce600c868154811015156121b757fe5b906000526020600020906004020160010154610e9b565b9250600c858154811015156121df57fe5b906000526020600020906004020160030160009054906101000a900460ff16915083801561220b575082155b8015612215575081155b156123af576001600c8681548110151561222b57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561226257fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122de573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161236986600c80549050612acc90919063ffffffff16565b14156123aa57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612443565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561245957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff1660028111156124aa57fe5b905090565b600080600060025442111580156124d35750600060029054906101000a900460ff16155b1515612547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125e134600454612ae590919063ffffffff16565b92506003548311151515612683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061269b5750805b151561275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561291657608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127ec5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612867929190612b4f565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129b2565b61296b34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ae590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129e1576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a6957fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ac75750600060029054906101000a900460ff16155b905090565b6000828211151515612ada57fe5b818303905092915050565b60008183019050828110151515612af857fe5b80905092915050565b600080831415612b145760009050612b33565b8183029050818382811515612b2557fe5b04141515612b2f57fe5b8090505b92915050565b60008183811515612b4657fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612be45791602002820160005b83821115612bb557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b78565b8015612be25782816101000a81549060ff0219169055600101602081600001049283019260010302612bb5565b505b509050612bf19190612bf5565b5090565b612c2291905b80821115612c1e57600081816101000a81549060ff021916905550600101612bfb565b5090565b905600a165627a7a72305820b725d6ed533ba3c21fcb343e8c393171f8c562c1668224983554c10c88ce87060029a165627a7a7230582038c1809b6ce57218a64a17a9211e1b79cca7e3c5a544e99070a9b555c6cb52430029", "sourceMap": "52:860:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:860:1;;;;;;;", "deployedSourceMap": "52:860:1:-;;;;;;;;;;;;;;;;;;;;;;;;159:751;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:751:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;462:7;481:28;539:15;568:13;595:17;626:13;653:17;684:30;728:29;512:255;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;512:255:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;512:255:1;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;512:255:1;481:286;;782:37;798:20;782:37;;;;;;;;;;;;;;;;;;;;;;829:10;845:20;829:37;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;829:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:20;876:27;;159:751;;;;;;;;;;:::o;52:860::-;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.24;\nimport \"./CrowdFund.sol\";\n\ncontract CrowdFundFactory {\n address[] crowdfunds;\n\n event ContractCreated(address newAddress);\n\n function createCrowdFund (\n uint raiseGoalAmount, \n address payOutAddress, \n address[] trusteesAddresses, \n uint[] allMilestones,\n uint durationInSeconds,\n uint milestoneVotingPeriodInSeconds,\n bool immediateFirstMilestonePayout\n ) public returns(address) {\n address newCrowdFundContract = new CrowdFund(\n raiseGoalAmount,\n payOutAddress,\n trusteesAddresses,\n allMilestones,\n durationInSeconds,\n milestoneVotingPeriodInSeconds,\n immediateFirstMilestonePayout\n );\n emit ContractCreated(newCrowdFundContract);\n crowdfunds.push(newCrowdFundContract);\n return newCrowdFundContract;\n }\n}", - "sourcePath": "/Users/will/Documents/grant-monorepo/contract/contracts/CrowdFundFactory.sol", + "sourcePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFundFactory.sol", "ast": { - "absolutePath": "/Users/will/Documents/grant-monorepo/contract/contracts/CrowdFundFactory.sol", + "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFundFactory.sol", "exportedSymbols": { "CrowdFundFactory": [ - 1134 + 1138 ] }, - "id": 1135, + "id": 1139, "nodeType": "SourceUnit", "nodes": [ { - "id": 1078, + "id": 1082, "literals": [ "solidity", "^", @@ -85,12 +85,12 @@ "src": "0:24:1" }, { - "absolutePath": "/Users/will/Documents/grant-monorepo/contract/contracts/CrowdFund.sol", + "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", "file": "./CrowdFund.sol", - "id": 1079, + "id": 1083, "nodeType": "ImportDirective", - "scope": 1135, - "sourceUnit": 1077, + "scope": 1139, + "sourceUnit": 1081, "src": "25:25:1", "symbolAliases": [], "unitAlias": "" @@ -98,24 +98,24 @@ { "baseContracts": [], "contractDependencies": [ - 1076 + 1080 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1134, + "id": 1138, "linearizedBaseContracts": [ - 1134 + 1138 ], "name": "CrowdFundFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1082, + "id": 1086, "name": "crowdfunds", "nodeType": "VariableDeclaration", - "scope": 1134, + "scope": 1138, "src": "84:20:1", "stateVariable": true, "storageLocation": "default", @@ -125,7 +125,7 @@ }, "typeName": { "baseType": { - "id": 1080, + "id": 1084, "name": "address", "nodeType": "ElementaryTypeName", "src": "84:7:1", @@ -134,7 +134,7 @@ "typeString": "address" } }, - "id": 1081, + "id": 1085, "length": null, "nodeType": "ArrayTypeName", "src": "84:9:1", @@ -149,20 +149,20 @@ { "anonymous": false, "documentation": null, - "id": 1086, + "id": 1090, "name": "ContractCreated", "nodeType": "EventDefinition", "parameters": { - "id": 1085, + "id": 1089, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1084, + "id": 1088, "indexed": false, "name": "newAddress", "nodeType": "VariableDeclaration", - "scope": 1086, + "scope": 1090, "src": "133:18:1", "stateVariable": false, "storageLocation": "default", @@ -171,7 +171,7 @@ "typeString": "address" }, "typeName": { - "id": 1083, + "id": 1087, "name": "address", "nodeType": "ElementaryTypeName", "src": "133:7:1", @@ -190,21 +190,21 @@ }, { "body": { - "id": 1132, + "id": 1136, "nodeType": "Block", "src": "471:439:1", "statements": [ { "assignments": [ - 1108 + 1112 ], "declarations": [ { "constant": false, - "id": 1108, + "id": 1112, "name": "newCrowdFundContract", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "481:28:1", "stateVariable": false, "storageLocation": "default", @@ -213,7 +213,7 @@ "typeString": "address" }, "typeName": { - "id": 1107, + "id": 1111, "name": "address", "nodeType": "ElementaryTypeName", "src": "481:7:1", @@ -226,17 +226,17 @@ "visibility": "internal" } ], - "id": 1119, + "id": 1123, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1111, + "id": 1115, "name": "raiseGoalAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1088, + "referencedDeclaration": 1092, "src": "539:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -245,11 +245,11 @@ }, { "argumentTypes": null, - "id": 1112, + "id": 1116, "name": "payOutAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, + "referencedDeclaration": 1094, "src": "568:13:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -258,11 +258,11 @@ }, { "argumentTypes": null, - "id": 1113, + "id": 1117, "name": "trusteesAddresses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1097, "src": "595:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -271,11 +271,11 @@ }, { "argumentTypes": null, - "id": 1114, + "id": 1118, "name": "allMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, + "referencedDeclaration": 1100, "src": "626:13:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", @@ -284,11 +284,11 @@ }, { "argumentTypes": null, - "id": 1115, + "id": 1119, "name": "durationInSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, + "referencedDeclaration": 1102, "src": "653:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -297,11 +297,11 @@ }, { "argumentTypes": null, - "id": 1116, + "id": 1120, "name": "milestoneVotingPeriodInSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1100, + "referencedDeclaration": 1104, "src": "684:30:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -310,11 +310,11 @@ }, { "argumentTypes": null, - "id": 1117, + "id": 1121, "name": "immediateFirstMilestonePayout", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, + "referencedDeclaration": 1106, "src": "728:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -353,7 +353,7 @@ "typeString": "bool" } ], - "id": 1110, + "id": 1114, "isConstant": false, "isLValue": false, "isPure": false, @@ -361,23 +361,23 @@ "nodeType": "NewExpression", "src": "512:13:1", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_contract$_CrowdFund_$1076_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_contract$_CrowdFund_$1080_$", "typeString": "function (uint256,address,address[] memory,uint256[] memory,uint256,uint256,bool) returns (contract CrowdFund)" }, "typeName": { "contractScope": null, - "id": 1109, + "id": 1113, "name": "CrowdFund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1076, + "referencedDeclaration": 1080, "src": "516:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } } }, - "id": 1118, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, @@ -387,7 +387,7 @@ "nodeType": "FunctionCall", "src": "512:255:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } }, @@ -400,11 +400,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1121, + "id": 1125, "name": "newCrowdFundContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, + "referencedDeclaration": 1112, "src": "798:20:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -419,18 +419,18 @@ "typeString": "address" } ], - "id": 1120, + "id": 1124, "name": "ContractCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, + "referencedDeclaration": 1090, "src": "782:15:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1122, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": false, @@ -444,7 +444,7 @@ "typeString": "tuple()" } }, - "id": 1123, + "id": 1127, "nodeType": "EmitStatement", "src": "777:42:1" }, @@ -454,11 +454,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1127, + "id": 1131, "name": "newCrowdFundContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, + "referencedDeclaration": 1112, "src": "845:20:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -475,18 +475,18 @@ ], "expression": { "argumentTypes": null, - "id": 1124, + "id": 1128, "name": "crowdfunds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1082, + "referencedDeclaration": 1086, "src": "829:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1126, + "id": 1130, "isConstant": false, "isLValue": false, "isPure": false, @@ -500,7 +500,7 @@ "typeString": "function (address) returns (uint256)" } }, - "id": 1128, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, @@ -514,33 +514,33 @@ "typeString": "uint256" } }, - "id": 1129, + "id": 1133, "nodeType": "ExpressionStatement", "src": "829:37:1" }, { "expression": { "argumentTypes": null, - "id": 1130, + "id": 1134, "name": "newCrowdFundContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, + "referencedDeclaration": 1112, "src": "883:20:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1106, - "id": 1131, + "functionReturnParameters": 1110, + "id": 1135, "nodeType": "Return", "src": "876:27:1" } ] }, "documentation": null, - "id": 1133, + "id": 1137, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -548,15 +548,15 @@ "name": "createCrowdFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 1103, + "id": 1107, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1088, + "id": 1092, "name": "raiseGoalAmount", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "194:20:1", "stateVariable": false, "storageLocation": "default", @@ -565,7 +565,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1087, + "id": 1091, "name": "uint", "nodeType": "ElementaryTypeName", "src": "194:4:1", @@ -579,10 +579,10 @@ }, { "constant": false, - "id": 1090, + "id": 1094, "name": "payOutAddress", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "225:21:1", "stateVariable": false, "storageLocation": "default", @@ -591,7 +591,7 @@ "typeString": "address" }, "typeName": { - "id": 1089, + "id": 1093, "name": "address", "nodeType": "ElementaryTypeName", "src": "225:7:1", @@ -605,10 +605,10 @@ }, { "constant": false, - "id": 1093, + "id": 1097, "name": "trusteesAddresses", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "257:27:1", "stateVariable": false, "storageLocation": "default", @@ -618,7 +618,7 @@ }, "typeName": { "baseType": { - "id": 1091, + "id": 1095, "name": "address", "nodeType": "ElementaryTypeName", "src": "257:7:1", @@ -627,7 +627,7 @@ "typeString": "address" } }, - "id": 1092, + "id": 1096, "length": null, "nodeType": "ArrayTypeName", "src": "257:9:1", @@ -641,10 +641,10 @@ }, { "constant": false, - "id": 1096, + "id": 1100, "name": "allMilestones", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "295:20:1", "stateVariable": false, "storageLocation": "default", @@ -654,7 +654,7 @@ }, "typeName": { "baseType": { - "id": 1094, + "id": 1098, "name": "uint", "nodeType": "ElementaryTypeName", "src": "295:4:1", @@ -663,7 +663,7 @@ "typeString": "uint256" } }, - "id": 1095, + "id": 1099, "length": null, "nodeType": "ArrayTypeName", "src": "295:6:1", @@ -677,10 +677,10 @@ }, { "constant": false, - "id": 1098, + "id": 1102, "name": "durationInSeconds", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "325:22:1", "stateVariable": false, "storageLocation": "default", @@ -689,7 +689,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1097, + "id": 1101, "name": "uint", "nodeType": "ElementaryTypeName", "src": "325:4:1", @@ -703,10 +703,10 @@ }, { "constant": false, - "id": 1100, + "id": 1104, "name": "milestoneVotingPeriodInSeconds", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "357:35:1", "stateVariable": false, "storageLocation": "default", @@ -715,7 +715,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1099, + "id": 1103, "name": "uint", "nodeType": "ElementaryTypeName", "src": "357:4:1", @@ -729,10 +729,10 @@ }, { "constant": false, - "id": 1102, + "id": 1106, "name": "immediateFirstMilestonePayout", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "402:34:1", "stateVariable": false, "storageLocation": "default", @@ -741,7 +741,7 @@ "typeString": "bool" }, "typeName": { - "id": 1101, + "id": 1105, "name": "bool", "nodeType": "ElementaryTypeName", "src": "402:4:1", @@ -758,15 +758,15 @@ }, "payable": false, "returnParameters": { - "id": 1106, + "id": 1110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1105, + "id": 1109, "name": "", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "462:7:1", "stateVariable": false, "storageLocation": "default", @@ -775,7 +775,7 @@ "typeString": "address" }, "typeName": { - "id": 1104, + "id": 1108, "name": "address", "nodeType": "ElementaryTypeName", "src": "462:7:1", @@ -790,31 +790,31 @@ ], "src": "461:9:1" }, - "scope": 1134, + "scope": 1138, "src": "159:751:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1135, + "scope": 1139, "src": "52:860:1" } ], "src": "0:912:1" }, "legacyAST": { - "absolutePath": "/Users/will/Documents/grant-monorepo/contract/contracts/CrowdFundFactory.sol", + "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFundFactory.sol", "exportedSymbols": { "CrowdFundFactory": [ - 1134 + 1138 ] }, - "id": 1135, + "id": 1139, "nodeType": "SourceUnit", "nodes": [ { - "id": 1078, + "id": 1082, "literals": [ "solidity", "^", @@ -825,12 +825,12 @@ "src": "0:24:1" }, { - "absolutePath": "/Users/will/Documents/grant-monorepo/contract/contracts/CrowdFund.sol", + "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", "file": "./CrowdFund.sol", - "id": 1079, + "id": 1083, "nodeType": "ImportDirective", - "scope": 1135, - "sourceUnit": 1077, + "scope": 1139, + "sourceUnit": 1081, "src": "25:25:1", "symbolAliases": [], "unitAlias": "" @@ -838,24 +838,24 @@ { "baseContracts": [], "contractDependencies": [ - 1076 + 1080 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1134, + "id": 1138, "linearizedBaseContracts": [ - 1134 + 1138 ], "name": "CrowdFundFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1082, + "id": 1086, "name": "crowdfunds", "nodeType": "VariableDeclaration", - "scope": 1134, + "scope": 1138, "src": "84:20:1", "stateVariable": true, "storageLocation": "default", @@ -865,7 +865,7 @@ }, "typeName": { "baseType": { - "id": 1080, + "id": 1084, "name": "address", "nodeType": "ElementaryTypeName", "src": "84:7:1", @@ -874,7 +874,7 @@ "typeString": "address" } }, - "id": 1081, + "id": 1085, "length": null, "nodeType": "ArrayTypeName", "src": "84:9:1", @@ -889,20 +889,20 @@ { "anonymous": false, "documentation": null, - "id": 1086, + "id": 1090, "name": "ContractCreated", "nodeType": "EventDefinition", "parameters": { - "id": 1085, + "id": 1089, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1084, + "id": 1088, "indexed": false, "name": "newAddress", "nodeType": "VariableDeclaration", - "scope": 1086, + "scope": 1090, "src": "133:18:1", "stateVariable": false, "storageLocation": "default", @@ -911,7 +911,7 @@ "typeString": "address" }, "typeName": { - "id": 1083, + "id": 1087, "name": "address", "nodeType": "ElementaryTypeName", "src": "133:7:1", @@ -930,21 +930,21 @@ }, { "body": { - "id": 1132, + "id": 1136, "nodeType": "Block", "src": "471:439:1", "statements": [ { "assignments": [ - 1108 + 1112 ], "declarations": [ { "constant": false, - "id": 1108, + "id": 1112, "name": "newCrowdFundContract", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "481:28:1", "stateVariable": false, "storageLocation": "default", @@ -953,7 +953,7 @@ "typeString": "address" }, "typeName": { - "id": 1107, + "id": 1111, "name": "address", "nodeType": "ElementaryTypeName", "src": "481:7:1", @@ -966,17 +966,17 @@ "visibility": "internal" } ], - "id": 1119, + "id": 1123, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1111, + "id": 1115, "name": "raiseGoalAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1088, + "referencedDeclaration": 1092, "src": "539:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -985,11 +985,11 @@ }, { "argumentTypes": null, - "id": 1112, + "id": 1116, "name": "payOutAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, + "referencedDeclaration": 1094, "src": "568:13:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -998,11 +998,11 @@ }, { "argumentTypes": null, - "id": 1113, + "id": 1117, "name": "trusteesAddresses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1093, + "referencedDeclaration": 1097, "src": "595:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -1011,11 +1011,11 @@ }, { "argumentTypes": null, - "id": 1114, + "id": 1118, "name": "allMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, + "referencedDeclaration": 1100, "src": "626:13:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", @@ -1024,11 +1024,11 @@ }, { "argumentTypes": null, - "id": 1115, + "id": 1119, "name": "durationInSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, + "referencedDeclaration": 1102, "src": "653:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1037,11 +1037,11 @@ }, { "argumentTypes": null, - "id": 1116, + "id": 1120, "name": "milestoneVotingPeriodInSeconds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1100, + "referencedDeclaration": 1104, "src": "684:30:1", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1050,11 +1050,11 @@ }, { "argumentTypes": null, - "id": 1117, + "id": 1121, "name": "immediateFirstMilestonePayout", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, + "referencedDeclaration": 1106, "src": "728:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1093,7 +1093,7 @@ "typeString": "bool" } ], - "id": 1110, + "id": 1114, "isConstant": false, "isLValue": false, "isPure": false, @@ -1101,23 +1101,23 @@ "nodeType": "NewExpression", "src": "512:13:1", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_contract$_CrowdFund_$1076_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_contract$_CrowdFund_$1080_$", "typeString": "function (uint256,address,address[] memory,uint256[] memory,uint256,uint256,bool) returns (contract CrowdFund)" }, "typeName": { "contractScope": null, - "id": 1109, + "id": 1113, "name": "CrowdFund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1076, + "referencedDeclaration": 1080, "src": "516:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } } }, - "id": 1118, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, @@ -1127,7 +1127,7 @@ "nodeType": "FunctionCall", "src": "512:255:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1076", + "typeIdentifier": "t_contract$_CrowdFund_$1080", "typeString": "contract CrowdFund" } }, @@ -1140,11 +1140,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1121, + "id": 1125, "name": "newCrowdFundContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, + "referencedDeclaration": 1112, "src": "798:20:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1159,18 +1159,18 @@ "typeString": "address" } ], - "id": 1120, + "id": 1124, "name": "ContractCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, + "referencedDeclaration": 1090, "src": "782:15:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1122, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": false, @@ -1184,7 +1184,7 @@ "typeString": "tuple()" } }, - "id": 1123, + "id": 1127, "nodeType": "EmitStatement", "src": "777:42:1" }, @@ -1194,11 +1194,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1127, + "id": 1131, "name": "newCrowdFundContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, + "referencedDeclaration": 1112, "src": "845:20:1", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1215,18 +1215,18 @@ ], "expression": { "argumentTypes": null, - "id": 1124, + "id": 1128, "name": "crowdfunds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1082, + "referencedDeclaration": 1086, "src": "829:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1126, + "id": 1130, "isConstant": false, "isLValue": false, "isPure": false, @@ -1240,7 +1240,7 @@ "typeString": "function (address) returns (uint256)" } }, - "id": 1128, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, @@ -1254,33 +1254,33 @@ "typeString": "uint256" } }, - "id": 1129, + "id": 1133, "nodeType": "ExpressionStatement", "src": "829:37:1" }, { "expression": { "argumentTypes": null, - "id": 1130, + "id": 1134, "name": "newCrowdFundContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, + "referencedDeclaration": 1112, "src": "883:20:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1106, - "id": 1131, + "functionReturnParameters": 1110, + "id": 1135, "nodeType": "Return", "src": "876:27:1" } ] }, "documentation": null, - "id": 1133, + "id": 1137, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1288,15 +1288,15 @@ "name": "createCrowdFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 1103, + "id": 1107, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1088, + "id": 1092, "name": "raiseGoalAmount", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "194:20:1", "stateVariable": false, "storageLocation": "default", @@ -1305,7 +1305,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1087, + "id": 1091, "name": "uint", "nodeType": "ElementaryTypeName", "src": "194:4:1", @@ -1319,10 +1319,10 @@ }, { "constant": false, - "id": 1090, + "id": 1094, "name": "payOutAddress", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "225:21:1", "stateVariable": false, "storageLocation": "default", @@ -1331,7 +1331,7 @@ "typeString": "address" }, "typeName": { - "id": 1089, + "id": 1093, "name": "address", "nodeType": "ElementaryTypeName", "src": "225:7:1", @@ -1345,10 +1345,10 @@ }, { "constant": false, - "id": 1093, + "id": 1097, "name": "trusteesAddresses", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "257:27:1", "stateVariable": false, "storageLocation": "default", @@ -1358,7 +1358,7 @@ }, "typeName": { "baseType": { - "id": 1091, + "id": 1095, "name": "address", "nodeType": "ElementaryTypeName", "src": "257:7:1", @@ -1367,7 +1367,7 @@ "typeString": "address" } }, - "id": 1092, + "id": 1096, "length": null, "nodeType": "ArrayTypeName", "src": "257:9:1", @@ -1381,10 +1381,10 @@ }, { "constant": false, - "id": 1096, + "id": 1100, "name": "allMilestones", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "295:20:1", "stateVariable": false, "storageLocation": "default", @@ -1394,7 +1394,7 @@ }, "typeName": { "baseType": { - "id": 1094, + "id": 1098, "name": "uint", "nodeType": "ElementaryTypeName", "src": "295:4:1", @@ -1403,7 +1403,7 @@ "typeString": "uint256" } }, - "id": 1095, + "id": 1099, "length": null, "nodeType": "ArrayTypeName", "src": "295:6:1", @@ -1417,10 +1417,10 @@ }, { "constant": false, - "id": 1098, + "id": 1102, "name": "durationInSeconds", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "325:22:1", "stateVariable": false, "storageLocation": "default", @@ -1429,7 +1429,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1097, + "id": 1101, "name": "uint", "nodeType": "ElementaryTypeName", "src": "325:4:1", @@ -1443,10 +1443,10 @@ }, { "constant": false, - "id": 1100, + "id": 1104, "name": "milestoneVotingPeriodInSeconds", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "357:35:1", "stateVariable": false, "storageLocation": "default", @@ -1455,7 +1455,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1099, + "id": 1103, "name": "uint", "nodeType": "ElementaryTypeName", "src": "357:4:1", @@ -1469,10 +1469,10 @@ }, { "constant": false, - "id": 1102, + "id": 1106, "name": "immediateFirstMilestonePayout", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "402:34:1", "stateVariable": false, "storageLocation": "default", @@ -1481,7 +1481,7 @@ "typeString": "bool" }, "typeName": { - "id": 1101, + "id": 1105, "name": "bool", "nodeType": "ElementaryTypeName", "src": "402:4:1", @@ -1498,15 +1498,15 @@ }, "payable": false, "returnParameters": { - "id": 1106, + "id": 1110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1105, + "id": 1109, "name": "", "nodeType": "VariableDeclaration", - "scope": 1133, + "scope": 1137, "src": "462:7:1", "stateVariable": false, "storageLocation": "default", @@ -1515,7 +1515,7 @@ "typeString": "address" }, "typeName": { - "id": 1104, + "id": 1108, "name": "address", "nodeType": "ElementaryTypeName", "src": "462:7:1", @@ -1530,14 +1530,14 @@ ], "src": "461:9:1" }, - "scope": 1134, + "scope": 1138, "src": "159:751:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1135, + "scope": 1139, "src": "52:860:1" } ], @@ -1548,31 +1548,19 @@ "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "1541435837030": { + "3": { "events": {}, "links": {}, - "address": "0x893717db73a6f9785772080b3a0bc9cd24b27ea2", - "transactionHash": "0xe7b84dc8a577ba38bebf38cc2928ed550ab00de70b5000c334d6d1137b223ad1" + "address": "0x2bfade54e1afc13d50bcb14b8134aafc0be59558", + "transactionHash": "0xf9aa2d035873d9ae6f3bf1d3a254ca774c22b2cd37c3d92ee41218fe3677e5f2" }, - "1541447574419": { + "1537836920395": { "events": {}, "links": {}, - "address": "0x0f919d15940c0a6c11ee6f4c88ae5d03d91246bf", - "transactionHash": "0xa0259d1a6924f52fb52017ad410a860083749e4d444a29f02ed70309b831a123" - }, - "1542400539532": { - "events": {}, - "links": {}, - "address": "0x23de420265da56889af074254dd900bc888efbf6", - "transactionHash": "0xa0259d1a6924f52fb52017ad410a860083749e4d444a29f02ed70309b831a123" - }, - "1542657525387": { - "events": {}, - "links": {}, - "address": "0x355f1ceac11b3b41641657c24258f74cdd7a1f4b", - "transactionHash": "0xa0259d1a6924f52fb52017ad410a860083749e4d444a29f02ed70309b831a123" + "address": "0xf313d4b4f8c2467d6552c51392076ba90aa233b3", + "transactionHash": "0x6158097c6dcb93aeaad4b21ea540bf2a97d52050c04d36e54558df1aff60bbb8" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-11-19T19:59:35.976Z" + "updatedAt": "2018-09-26T04:00:55.909Z" } \ No newline at end of file