0x60806040526004361061014f5760003560e01c806367ac77b4116100b657806395d89b411161006f57806395d89b4114610184578063a9059cbb146103dd578063ca33e64c146103fd578063d51ed1c81461041d578063dd62ed3e1461043d578063f2fde38b1461048357600080fd5b806367ac77b4146103115780636ddd17131461034557806370a082311461035f578063715018a614610395578063893d20e8146103aa5780638da5cb5b146103bf57600080fd5b80632b112e49116101085780632b112e491461023c5780632e8fa82114610251578063313ce5671461026757806349bd5a5e14610283578063571ac8b0146102cf5780636505f2c9146102ef57600080fd5b80630445b6671461015b57806306fdde0314610184578063095ea7b3146101b75780631161ae39146101e757806318160ddd1461020757806323b872dd1461021c57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610171600b5481565b6040519081526020015b60405180910390f35b34801561019057600080fd5b5060408051808201825260048152634249424960e01b6020820152905161017b9190610ab7565b3480156101c357600080fd5b506101d76101d2366004610b21565b6104a3565b604051901515815260200161017b565b3480156101f357600080fd5b506101d7610202366004610b4b565b610510565b34801561021357600080fd5b50600054610171565b34801561022857600080fd5b506101d7610237366004610b6d565b610524565b34801561024857600080fd5b506101716105e4565b34801561025d57600080fd5b50610171600c5481565b34801561027357600080fd5b506040516012815260200161017b565b34801561028f57600080fd5b506102b77f000000000000000000000000d570b66b4d55ab0923b8724157d666d4770aed5d81565b6040516001600160a01b03909116815260200161017b565b3480156102db57600080fd5b506101d76102ea366004610ba9565b610636565b3480156102fb57600080fd5b5061030f61030a366004610bc4565b610644565b005b34801561031d57600080fd5b506102b77f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561035157600080fd5b50600a546101d79060ff1681565b34801561036b57600080fd5b5061017161037a366004610ba9565b6001600160a01b031660009081526004602052604090205490565b3480156103a157600080fd5b5061030f610651565b3480156103b657600080fd5b506102b7610665565b3480156103cb57600080fd5b506001546001600160a01b03166102b7565b3480156103e957600080fd5b506101d76103f8366004610b21565b610679565b34801561040957600080fd5b506007546102b7906001600160a01b031681565b34801561042957600080fd5b50610171610438366004610bc4565b61068d565b34801561044957600080fd5b50610171610458366004610bdd565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561048f57600080fd5b5061030f61049e366004610ba9565b6106f4565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104fe9086815260200190565b60405180910390a35060015b92915050565b60008261051c8361068d565b119392505050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146105d1576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526005825283812033825290915291909120546105ac918490610772565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6105dc84848461079e565b949350505050565b6003546001600160a01b0316600090815260046020526040812054610631906002546001600160a01b031660009081526004602052604090205461062b90600054906109db565b906109db565b905090565b600061050a826000196104a3565b61064c6109e7565b600655565b6106596109e7565b6106636000610a41565b565b60006106316001546001600160a01b031690565b600061068633848461079e565b9392505050565b600061050a61069a6105e4565b6106ee6106e760026106e17f000000000000000000000000d570b66b4d55ab0923b8724157d666d4770aed5d6001600160a01b031660009081526004602052604090205490565b90610a93565b8590610a93565b90610a9f565b6106fc6109e7565b6001600160a01b0381166107665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61076f81610a41565b50565b600081848411156107965760405162461bcd60e51b815260040161075d9190610ab7565b505050900390565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546107ef918490610772565b6001600160a01b0385166000908152600460205260408120919091558061081e6001546001600160a01b031690565b6001600160a01b0316866001600160a01b031614610875577f000000000000000000000000d570b66b4d55ab0923b8724157d666d4770aed5d6001600160a01b0316856001600160a01b0316036108755760065491505b61088460646106ee8685610a93565b61088f906000610c26565b90508015610927576002546001600160a01b03166000908152600460205260409020546108bc9082610aab565b6108c7906001610c39565b600280546001600160a01b03908116600090815260046020908152604091829020949094559154915184815291811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b61095e6109348286610c50565b61093f906000610c26565b6001600160a01b03871660009081526004602052604090205490610aab565b610969906001610c39565b6001600160a01b0380871660008181526004602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6109b38488610c50565b6109be906000610c26565b60405190815260200160405180910390a350600195945050505050565b60006106868284610c50565b6001546001600160a01b031633146106635760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075d565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106868284610c39565b60006106868284610c63565b60006106868284610c26565b600060208083528351808285015260005b81811015610ae457858101830151858201604001528201610ac8565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b1c57600080fd5b919050565b60008060408385031215610b3457600080fd5b610b3d83610b05565b946020939093013593505050565b60008060408385031215610b5e57600080fd5b50508035926020909101359150565b600080600060608486031215610b8257600080fd5b610b8b84610b05565b9250610b9960208501610b05565b9150604084013590509250925092565b600060208284031215610bbb57600080fd5b61068682610b05565b600060208284031215610bd657600080fd5b5035919050565b60008060408385031215610bf057600080fd5b610bf983610b05565b9150610c0760208401610b05565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050a5761050a610c10565b808202811582820484141761050a5761050a610c10565b8181038181111561050a5761050a610c10565b600082610c8057634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212208e6d0e208bf9e67b6b7e739b5317d2d1b1587e98d0ca4be98cedddc53eaceae364736f6c63430008110033
0x60c0604052620000126012600a6200041d565b6200002490650574fbde600062000435565b6000818155600280546001600160a01b031990811661dead1790915560038054909116905560065560146008556064600955600a805460ff19166001179055612710906200007490601e62000435565b6200008091906200044f565b600b55612710600054601e62000097919062000435565b620000a391906200044f565b600c55348015620000b357600080fd5b50620000bf33620002b6565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000117573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013d919062000472565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b1919062000472565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000225919062000472565b6001600160a01b0390811660a052811660808190523060009081526005602090815260408083209383529281528282206000199055600780546001600160a01b031916339081179091558254818452600483528484208190559351938452927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200049d565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200035f57816000190482111562000343576200034362000308565b808516156200035157918102915b93841c939080029062000323565b509250929050565b600082620003785750600162000417565b81620003875750600062000417565b8160018114620003a05760028114620003ab57620003cb565b600191505062000417565b60ff841115620003bf57620003bf62000308565b50506001821b62000417565b5060208310610133831016604e8410600b8410161715620003f0575081810a62000417565b620003fc83836200031e565b806000190482111562000413576200041362000308565b0290505b92915050565b60006200042e60ff84168362000367565b9392505050565b808202811582820484141762000417576200041762000308565b6000826200046d57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200048557600080fd5b81516001600160a01b03811681146200042e57600080fd5b60805160a051610cbb620004d160003960008181610295015281816106a70152610838015260006103230152610cbb6000f3fe60806040526004361061014f5760003560e01c806367ac77b4116100b657806395d89b411161006f57806395d89b4114610184578063a9059cbb146103dd578063ca33e64c146103fd578063d51ed1c81461041d578063dd62ed3e1461043d578063f2fde38b1461048357600080fd5b806367ac77b4146103115780636ddd17131461034557806370a082311461035f578063715018a614610395578063893d20e8146103aa5780638da5cb5b146103bf57600080fd5b80632b112e49116101085780632b112e491461023c5780632e8fa82114610251578063313ce5671461026757806349bd5a5e14610283578063571ac8b0146102cf5780636505f2c9146102ef57600080fd5b80630445b6671461015b57806306fdde0314610184578063095ea7b3146101b75780631161ae39146101e757806318160ddd1461020757806323b872dd1461021c57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610171600b5481565b6040519081526020015b60405180910390f35b34801561019057600080fd5b5060408051808201825260048152634249424960e01b6020820152905161017b9190610ab7565b3480156101c357600080fd5b506101d76101d2366004610b21565b6104a3565b604051901515815260200161017b565b3480156101f357600080fd5b506101d7610202366004610b4b565b610510565b34801561021357600080fd5b50600054610171565b34801561022857600080fd5b506101d7610237366004610b6d565b610524565b34801561024857600080fd5b506101716105e4565b34801561025d57600080fd5b50610171600c5481565b34801561027357600080fd5b506040516012815260200161017b565b34801561028f57600080fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161017b565b3480156102db57600080fd5b506101d76102ea366004610ba9565b610636565b3480156102fb57600080fd5b5061030f61030a366004610bc4565b610644565b005b34801561031d57600080fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b34801561035157600080fd5b50600a546101d79060ff1681565b34801561036b57600080fd5b5061017161037a366004610ba9565b6001600160a01b031660009081526004602052604090205490565b3480156103a157600080fd5b5061030f610651565b3480156103b657600080fd5b506102b7610665565b3480156103cb57600080fd5b506001546001600160a01b03166102b7565b3480156103e957600080fd5b506101d76103f8366004610b21565b610679565b34801561040957600080fd5b506007546102b7906001600160a01b031681565b34801561042957600080fd5b50610171610438366004610bc4565b61068d565b34801561044957600080fd5b50610171610458366004610bdd565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561048f57600080fd5b5061030f61049e366004610ba9565b6106f4565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104fe9086815260200190565b60405180910390a35060015b92915050565b60008261051c8361068d565b119392505050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146105d1576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526005825283812033825290915291909120546105ac918490610772565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6105dc84848461079e565b949350505050565b6003546001600160a01b0316600090815260046020526040812054610631906002546001600160a01b031660009081526004602052604090205461062b90600054906109db565b906109db565b905090565b600061050a826000196104a3565b61064c6109e7565b600655565b6106596109e7565b6106636000610a41565b565b60006106316001546001600160a01b031690565b600061068633848461079e565b9392505050565b600061050a61069a6105e4565b6106ee6106e760026106e17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526004602052604090205490565b90610a93565b8590610a93565b90610a9f565b6106fc6109e7565b6001600160a01b0381166107665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61076f81610a41565b50565b600081848411156107965760405162461bcd60e51b815260040161075d9190610ab7565b505050900390565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546107ef918490610772565b6001600160a01b0385166000908152600460205260408120919091558061081e6001546001600160a01b031690565b6001600160a01b0316866001600160a01b031614610875577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036108755760065491505b61088460646106ee8685610a93565b61088f906000610c26565b90508015610927576002546001600160a01b03166000908152600460205260409020546108bc9082610aab565b6108c7906001610c39565b600280546001600160a01b03908116600090815260046020908152604091829020949094559154915184815291811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b61095e6109348286610c50565b61093f906000610c26565b6001600160a01b03871660009081526004602052604090205490610aab565b610969906001610c39565b6001600160a01b0380871660008181526004602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6109b38488610c50565b6109be906000610c26565b60405190815260200160405180910390a350600195945050505050565b60006106868284610c50565b6001546001600160a01b031633146106635760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075d565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006106868284610c39565b60006106868284610c63565b60006106868284610c26565b600060208083528351808285015260005b81811015610ae457858101830151858201604001528201610ac8565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b1c57600080fd5b919050565b60008060408385031215610b3457600080fd5b610b3d83610b05565b946020939093013593505050565b60008060408385031215610b5e57600080fd5b50508035926020909101359150565b600080600060608486031215610b8257600080fd5b610b8b84610b05565b9250610b9960208501610b05565b9150604084013590509250925092565b600060208284031215610bbb57600080fd5b61068682610b05565b600060208284031215610bd657600080fd5b5035919050565b60008060408385031215610bf057600080fd5b610bf983610b05565b9150610c0760208401610b05565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050a5761050a610c10565b808202811582820484141761050a5761050a610c10565b8181038181111561050a5761050a610c10565b600082610c8057634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212208e6d0e208bf9e67b6b7e739b5317d2d1b1587e98d0ca4be98cedddc53eaceae364736f6c63430008110033