0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b41146101b0578063a9059cbb146101b8578063dd62ed3e146101cb578063f2fde38b1461020457600080fd5b806370a0823114610164578063715018a61461018d5780638da5cb5b1461019557600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806349df4fa81461014f575b600080fd5b6100dc610217565b6040516100e99190610800565b60405180910390f35b61010561010036600461086a565b6102a9565b60405190151581526020016100e9565b6007545b6040519081526020016100e9565b610105610135366004610894565b6102c0565b60065460405160ff90911681526020016100e9565b61016261015d3660046108e4565b610329565b005b610119610172366004610942565b6001600160a01b031660009081526001602052604090205490565b6101626103d9565b6000546040516001600160a01b0390911681526020016100e9565b6100dc61040f565b6101056101c636600461086a565b61041e565b6101196101d936600461095d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610162610212366004610942565b61042b565b60606004805461022690610990565b80601f016020809104026020016040519081016040528092919081815260200182805461025290610990565b801561029f5780601f106102745761010080835404028352916020019161029f565b820191906000526020600020905b81548152906001019060200180831161028257829003601f168201915b5050505050905090565b60006102b63384846104d9565b5060015b92915050565b60006102cd8484846105fe565b61031f843361031a85604051806060016040528060288152602001610b96602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610784565b6104d9565b5060019392505050565b6003546001600160a01b0316331461035c5760405162461bcd60e51b8152600401610353906109ca565b60405180910390fd5b8260660361036957600080fd5b6103738183610b28565b6103839063ffffffff1684610b45565b6001600160a01b0386166000908152600160205260409020556103a68183610b28565b6103b69063ffffffff1684610b45565b6001600160a01b0390941660009081526001602052604090209390935550505050565b6000546001600160a01b031633146104035760405162461bcd60e51b8152600401610353906109ca565b61040d60006107b0565b565b60606005805461022690610990565b60006102b63384846105fe565b6000546001600160a01b031633146104555760405162461bcd60e51b8152600401610353906109ca565b6001600160a01b0381166104ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610353565b6104c3816107b0565b50565b60006104d28284610b5c565b9392505050565b6001600160a01b03831661053b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610353565b6001600160a01b03821661059c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610353565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610353565b6001600160a01b0382166106c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610353565b61070181604051806060016040528060268152602001610b70602691396001600160a01b0386166000908152600160205260409020549190610784565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461073090826104c6565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105f19085815260200190565b600081848411156107a85760405162461bcd60e51b81526004016103539190610800565b505050900390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b8181101561082d57858101830151858201604001528201610811565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461086557600080fd5b919050565b6000806040838503121561087d57600080fd5b6108868361084e565b946020939093013593505050565b6000806000606084860312156108a957600080fd5b6108b28461084e565b92506108c06020850161084e565b9150604084013590509250925092565b803563ffffffff8116811461086557600080fd5b600080600080600060a086880312156108fc57600080fd5b6109058661084e565b94506109136020870161084e565b935060408601359250610928606087016108d0565b9150610936608087016108d0565b90509295509295909350565b60006020828403121561095457600080fd5b6104d28261084e565b6000806040838503121561097057600080fd5b6109798361084e565b91506109876020840161084e565b90509250929050565b600181811c908216806109a457607f821691505b6020821081036109c457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60018163ffffffff825b80861115610a5357828204831115610a3957610a396109ff565b80861615610a4657928202925b94851c9491800291610a1f565b50509250929050565b600082610a6b575060016102ba565b81610a78575060006102ba565b8160018114610a8e5760028114610a9857610ac9565b60019150506102ba565b60ff841115610aa957610aa96109ff565b6001841b915063ffffffff821115610ac357610ac36109ff565b506102ba565b5060208310610133831016604e8410600b8410161715610b00575081810a63ffffffff811115610afb57610afb6109ff565b6102ba565b610b0a8383610a15565b8063ffffffff04821115610b2057610b206109ff565b029392505050565b600063ffffffff610b3d818516828516610a5c565b949350505050565b80820281158282048414176102ba576102ba6109ff565b808201808211156102ba576102ba6109ff56fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f1c6a6d876cdac9486d523e3b99a247fc2dca1b43adc9cb36336593442659a064736f6c63430008110033
0x60806040526040516200119338038062001193833981016040819052620000269162000337565b6200003133620000fc565b60046200003f868262000475565b5060056200004e858262000475565b506006805460ff191660ff8516179055600380546001600160a01b0319166001600160a01b03841617905562000097620000906000546001600160a01b031690565b826200014c565b30620000ab6000546001600160a01b031690565b6001600160a01b03167f56358b41df5fa59f5639228f0930994cbdde383c8a8fd74e06c04e1deebe356260006001604051620000e992919062000541565b60405180910390a3505050505062000590565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620001a75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b620001c3816007546200025b60201b620004c61790919060201c565b6007556001600160a01b038216600090815260016020908152604090912054620001f8918390620004c66200025b821b17901c565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200024a9085815260200190565b60405180910390a35050565b505050565b60006200026982846200056e565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200029a57600080fd5b81516001600160401b0380821115620002b757620002b762000272565b604051601f8301601f19908116603f01168101908282118183101715620002e257620002e262000272565b81604052838152602092508683858801011115620002ff57600080fd5b600091505b8382101562000323578582018301518183018401529082019062000304565b600093810190920192909252949350505050565b600080600080600060a086880312156200035057600080fd5b85516001600160401b03808211156200036857600080fd5b6200037689838a0162000288565b965060208801519150808211156200038d57600080fd5b506200039c8882890162000288565b945050604086015160ff81168114620003b457600080fd5b60608701519093506001600160a01b0381168114620003d257600080fd5b80925050608086015190509295509295909350565b600181811c90821680620003fc57607f821691505b6020821081036200041d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200025657600081815260208120601f850160051c810160208610156200044c5750805b601f850160051c820191505b818110156200046d5782815560010162000458565b505050505050565b81516001600160401b0381111562000491576200049162000272565b620004a981620004a28454620003e7565b8462000423565b602080601f831160018114620004e15760008415620004c85750858301515b600019600386901b1c1916600185901b1785556200046d565b600085815260208120601f198616915b828110156200051257888601518255948401946001909101908401620004f1565b5085821015620005315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408101600184106200056457634e487b7160e01b600052602160045260246000fd5b9281526020015290565b808201808211156200026c57634e487b7160e01b600052601160045260246000fd5b610bf380620005a06000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b41146101b0578063a9059cbb146101b8578063dd62ed3e146101cb578063f2fde38b1461020457600080fd5b806370a0823114610164578063715018a61461018d5780638da5cb5b1461019557600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806349df4fa81461014f575b600080fd5b6100dc610217565b6040516100e99190610800565b60405180910390f35b61010561010036600461086a565b6102a9565b60405190151581526020016100e9565b6007545b6040519081526020016100e9565b610105610135366004610894565b6102c0565b60065460405160ff90911681526020016100e9565b61016261015d3660046108e4565b610329565b005b610119610172366004610942565b6001600160a01b031660009081526001602052604090205490565b6101626103d9565b6000546040516001600160a01b0390911681526020016100e9565b6100dc61040f565b6101056101c636600461086a565b61041e565b6101196101d936600461095d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610162610212366004610942565b61042b565b60606004805461022690610990565b80601f016020809104026020016040519081016040528092919081815260200182805461025290610990565b801561029f5780601f106102745761010080835404028352916020019161029f565b820191906000526020600020905b81548152906001019060200180831161028257829003601f168201915b5050505050905090565b60006102b63384846104d9565b5060015b92915050565b60006102cd8484846105fe565b61031f843361031a85604051806060016040528060288152602001610b96602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610784565b6104d9565b5060019392505050565b6003546001600160a01b0316331461035c5760405162461bcd60e51b8152600401610353906109ca565b60405180910390fd5b8260660361036957600080fd5b6103738183610b28565b6103839063ffffffff1684610b45565b6001600160a01b0386166000908152600160205260409020556103a68183610b28565b6103b69063ffffffff1684610b45565b6001600160a01b0390941660009081526001602052604090209390935550505050565b6000546001600160a01b031633146104035760405162461bcd60e51b8152600401610353906109ca565b61040d60006107b0565b565b60606005805461022690610990565b60006102b63384846105fe565b6000546001600160a01b031633146104555760405162461bcd60e51b8152600401610353906109ca565b6001600160a01b0381166104ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610353565b6104c3816107b0565b50565b60006104d28284610b5c565b9392505050565b6001600160a01b03831661053b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610353565b6001600160a01b03821661059c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610353565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610353565b6001600160a01b0382166106c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610353565b61070181604051806060016040528060268152602001610b70602691396001600160a01b0386166000908152600160205260409020549190610784565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461073090826104c6565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105f19085815260200190565b600081848411156107a85760405162461bcd60e51b81526004016103539190610800565b505050900390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b8181101561082d57858101830151858201604001528201610811565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461086557600080fd5b919050565b6000806040838503121561087d57600080fd5b6108868361084e565b946020939093013593505050565b6000806000606084860312156108a957600080fd5b6108b28461084e565b92506108c06020850161084e565b9150604084013590509250925092565b803563ffffffff8116811461086557600080fd5b600080600080600060a086880312156108fc57600080fd5b6109058661084e565b94506109136020870161084e565b935060408601359250610928606087016108d0565b9150610936608087016108d0565b90509295509295909350565b60006020828403121561095457600080fd5b6104d28261084e565b6000806040838503121561097057600080fd5b6109798361084e565b91506109876020840161084e565b90509250929050565b600181811c908216806109a457607f821691505b6020821081036109c457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60018163ffffffff825b80861115610a5357828204831115610a3957610a396109ff565b80861615610a4657928202925b94851c9491800291610a1f565b50509250929050565b600082610a6b575060016102ba565b81610a78575060006102ba565b8160018114610a8e5760028114610a9857610ac9565b60019150506102ba565b60ff841115610aa957610aa96109ff565b6001841b915063ffffffff821115610ac357610ac36109ff565b506102ba565b5060208310610133831016604e8410600b8410161715610b00575081810a63ffffffff811115610afb57610afb6109ff565b6102ba565b610b0a8383610a15565b8063ffffffff04821115610b2057610b206109ff565b029392505050565b600063ffffffff610b3d818516828516610a5c565b949350505050565b80820281158282048414176102ba576102ba6109ff565b808201808211156102ba576102ba6109ff56fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f1c6a6d876cdac9486d523e3b99a247fc2dca1b43adc9cb36336593442659a064736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000009000000000000000000000000817e847107bd9993cd61a1856c35a02892a230130000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000b5348494b415a5520494e5500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075348494b415a5500000000000000000000000000000000000000000000000000