6080604052600080546001600160c01b0319167733abe795f9c1b6136608c36db211bd7590f5fdae0210b79017905534801561003a57600080fd5b506107e88061004a6000396000f3fe6080604052600436106100955760003560e01c806370a082311161005957806370a082311461015d57806395d89b411461017f578063a9059cbb14610194578063b2542e28146101b4578063dd62ed3e146101d657600080fd5b806306fdde03146100a1578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd14610121578063313ce5671461014157600080fd5b3661009c57005b600080fd5b3480156100ad57600080fd5b506100b6610222565b6040516100c391906104e0565b60405180910390f35b3480156100d857600080fd5b506100ec6100e736600461054a565b610242565b60405190151581526020016100c3565b34801561010857600080fd5b5060005463ffffffff165b6040519081526020016100c3565b34801561012d57600080fd5b506100ec61013c366004610574565b6102b9565b34801561014d57600080fd5b50604051600081526020016100c3565b34801561016957600080fd5b506101136101783660046105b0565b506126ac90565b34801561018b57600080fd5b506100b6610325565b3480156101a057600080fd5b506100ec6101af36600461054a565b610345565b3480156101c057600080fd5b506101d46101cf3660046105e1565b610359565b005b3480156101e257600080fd5b506101136101f13660046106a6565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205463ffffffff1690565b606060405180606001604052806029815260200161076860299139905090565b3360008181526003602090815260408083206001600160a01b038716808552908352818420805463ffffffff191663ffffffff881617905590518581529293909290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b6001600160a01b03831660009081526003602090815260408083203384529091528120805483919083906102f490849063ffffffff166106ef565b92506101000a81548163ffffffff021916908363ffffffff16021790555061031d848484610400565b949350505050565b606060405180606001604052806022815260200161079160229139905090565b6000610352338484610400565b9392505050565b60005b81518161ffff1610156103fc57818161ffff168151811061037f5761037f610713565b60200260200101516001600160a01b0316600060049054906101000a90046001600160a01b03166001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6126ac6040516103e291815260200190565b60405180910390a3806103f481610729565b91505061035c565b5050565b6001600160a01b03831660009081526001602052604081205461042a90839063ffffffff166106ef565b6001600160a01b03858116600090815260016020526040808220805463ffffffff191663ffffffff9586161790559186168152205461046b9184911661074a565b6001600160a01b03848116600081815260016020908152604091829020805463ffffffff191663ffffffff9690961695909517909455518581529092918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35060019392505050565b600060208083528351808285015260005b8181101561050d578581018301518582016040015282016104f1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461054557600080fd5b919050565b6000806040838503121561055d57600080fd5b6105668361052e565b946020939093013593505050565b60008060006060848603121561058957600080fd5b6105928461052e565b92506105a06020850161052e565b9150604084013590509250925092565b6000602082840312156105c257600080fd5b6103528261052e565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156105f457600080fd5b823567ffffffffffffffff8082111561060c57600080fd5b818501915085601f83011261062057600080fd5b813581811115610632576106326105cb565b8060051b604051601f19603f83011681018181108582111715610657576106576105cb565b60405291825284820192508381018501918883111561067557600080fd5b938501935b8285101561069a5761068b8561052e565b8452938501939285019261067a565b98975050505050505050565b600080604083850312156106b957600080fd5b6106c28361052e565b91506106d06020840161052e565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908082111561070c5761070c6106d9565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103610740576107406106d9565b6001019392505050565b63ffffffff81811683821601908082111561070c5761070c6106d956fe23204c616e64776f6c662041697264726f70205469636b657420286c616e642d776f6c662e6f7267294765742024574f4c462061697264726f70206174206c616e642d776f6c662e6f7267a2646970667358221220c3991afafa59faf5dafbd311e6518c97e6cada6f1eb0ba252ffa2ad6b67fa7d464736f6c63430008140033