0x6080604052600436106102075760003560e01c80637bce5a0411610118578063c24ad66c116100a0578063d0a398141161006f578063d0a39814146105cd578063dd62ed3e146105e3578063ea2f0b3714610629578063f239eab814610649578063f2fde38b1461065f57600080fd5b8063c24ad66c1461056c578063c9567bf91461058c578063c99f2fed146105a1578063cc70acee146105b757600080fd5b80639740a946116100e75780639740a946146104da5780639f71146d146104f0578063a8b0898214610510578063a9059cbb14610536578063b9e937001461055657600080fd5b80637bce5a04146104615780638da5cb5b14610477578063921369131461049557806395d89b41146104ab57600080fd5b806323b872dd1161019b57806347afcbfe1161016a57806347afcbfe146103d55780635030bf15146103eb5780636cce46fc1461040057806370a0823114610416578063715018a61461044c57600080fd5b806323b872dd14610359578063313ce567146103795780633722355c14610395578063437823ec146103b557600080fd5b806318160ddd116101d757806318160ddd146102d65780631c499ab0146102f55780631d6167ac146103155780631f3fed8f1461034357600080fd5b8062f44d241461021357806303fd2a451461023557806306fdde0314610268578063095ea7b3146102a657600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e366004611851565b61067f565b005b34801561024157600080fd5b5061024b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027457600080fd5b5060408051808201909152600c81526b53756d6d65722047616d657360a01b60208201525b60405161025f919061188c565b3480156102b257600080fd5b506102c66102c1366004611803565b6106ce565b604051901515815260200161025f565b3480156102e257600080fd5b506013545b60405190815260200161025f565b34801561030157600080fd5b50610233610310366004611851565b6106e5565b34801561032157600080fd5b506010546103309061ffff1681565b60405161ffff909116815260200161025f565b34801561034f57600080fd5b506102e7600f5481565b34801561036557600080fd5b506102c66103743660046117c2565b61072b565b34801561038557600080fd5b506040516009815260200161025f565b3480156103a157600080fd5b506102336103b0366004611748565b6107dc565b3480156103c157600080fd5b506102336103d0366004611748565b61082a565b3480156103e157600080fd5b506102e7600a5481565b3480156103f757600080fd5b50610233610878565b34801561040c57600080fd5b506102e760095481565b34801561042257600080fd5b506102e7610431366004611748565b6001600160a01b031660009081526001602052604090205490565b34801561045857600080fd5b506102336108ff565b34801561046d57600080fd5b506102e760075481565b34801561048357600080fd5b506000546001600160a01b031661024b565b3480156104a157600080fd5b506102e7600b5481565b3480156104b757600080fd5b5060408051808201909152600681526529aaa6a6a2a960d11b6020820152610299565b3480156104e657600080fd5b506102e7600d5481565b3480156104fc57600080fd5b5061023361050b366004611748565b610935565b34801561051c57600080fd5b5060105461024b906201000090046001600160a01b031681565b34801561054257600080fd5b506102c6610551366004611803565b610980565b34801561056257600080fd5b506102e760085481565b34801561057857600080fd5b5061023361058736600461186a565b61098d565b34801561059857600080fd5b506102336109ed565b3480156105ad57600080fd5b506102e760065481565b3480156105c357600080fd5b506102e7600e5481565b3480156105d957600080fd5b506102e7600c5481565b3480156105ef57600080fd5b506102e76105fe366004611789565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561063557600080fd5b50610233610644366004611748565b610b22565b34801561065557600080fd5b506102e760055481565b34801561066b57600080fd5b5061023361067a366004611748565b610b6d565b6000546001600160a01b031633146106b25760405162461bcd60e51b81526004016106a9906118e1565b60405180910390fd5b6106be6009600a611a04565b6106c89082611aaf565b60155550565b60006106db338484610c05565b5060015b92915050565b6000546001600160a01b0316331461070f5760405162461bcd60e51b81526004016106a9906118e1565b61071b6009600a611a04565b6107259082611aaf565b60145550565b6000610738848484610d29565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107bd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a9565b6107d185336107cc8685611ace565b610c05565b506001949350505050565b6000546001600160a01b031633146108065760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146108545760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146108a25760405162461bcd60e51b81526004016106a9906118e1565b60006009819055600a819055610258600b819055600582905560068290556007819055906108d09080611987565b6108da9190611987565b600c556007546006546005546108f09190611987565b6108fa9190611987565b600855565b6000546001600160a01b031633146109295760405162461bcd60e51b81526004016106a9906118e1565b61093360006111bb565b565b6000546001600160a01b0316331461095f5760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b03166000908152600460205260409020805460ff19169055565b60006106db338484610d29565b6000546001600160a01b031633146109b75760405162461bcd60e51b81526004016106a9906118e1565b6109c36009600a611a04565b6109cd9083611aaf565b6015556109dc6009600a611a04565b6109e69082611aaf565b6014555050565b6000546001600160a01b03163314610a175760405162461bcd60e51b81526004016106a9906118e1565b601254600160a01b900460ff1615610a715760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106a9565b60128054652d79883d2000601481905560155562ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610ae757600080fd5b505af1158015610afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1f919061182f565b50565b6000546001600160a01b03163314610b4c5760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610b975760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b038116610bfc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a9565b610b1f816111bb565b6001600160a01b038316610c675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a9565b6001600160a01b038216610cc85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d8d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a9565b6001600160a01b038216610def5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a9565b60008111610e515760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a9565b6001600160a01b038316600090815260016020526040902054811115610ed35760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016106a9565b601254600160a01b900460ff1680610f0357506001600160a01b03831660009081526003602052604090205460ff165b80610f2657506001600160a01b03821660009081526003602052604090205460ff165b610f725760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c65642079657400000000000000000060448201526064016106a9565b6012546001600160a01b038481169116148015610f9d57506011546001600160a01b03838116911614155b8015610fc257506001600160a01b03821660009081526003602052604090205460ff16155b15611019576015548111156110195760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e000000000000000060448201526064016106a9565b6012546001600160a01b03848116911614801561104457506011546001600160a01b03838116911614155b801561106957506001600160a01b03821660009081526004602052604090205460ff16155b156110ed576014546001600160a01b0383166000908152600160205260409020546110949083611987565b11156110ed5760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b60648201526084016106a9565b30600090815260016020526040902054601254600160a81b900460ff1615801561112557506012546001600160a01b03858116911614155b801561113a5750601254600160b01b900460ff165b80156111465750600081115b15611166576111548161120b565b4780156111645761116447611394565b505b6001600160a01b0384166000908152600360205260409020546111b59085908590859060ff16806111af57506001600160a01b03871660009081526003602052604090205460ff165b156113d2565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061125357611253611afb565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156112a757600080fd5b505afa1580156112bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112df919061176c565b816001815181106112f2576112f2611afb565b6001600160a01b0392831660209182029290920101526011546113189130911684610c05565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790611351908590600090869030904290600401611916565b600060405180830381600087803b15801561136b57600080fd5b505af115801561137f573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6016546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113ce573d6000803e3d6000fd5b5050565b6001600160a01b038416600090815260016020526040812080548492906113fa908490611ace565b90915550600090508161140d5782611418565b61141885858561148e565b6001600160a01b038516600090815260016020526040812080549293508392909190611445908490611987565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611b278339815191528360405161147f91815260200190565b60405180910390a35050505050565b6012546000906001600160a01b0385811691161480156114b057506000600854115b156115265760105460055461ffff909116906114cc9084611aaf565b6114d6919061199f565b600d5560105460065461ffff909116906114f09084611aaf565b6114fa919061199f565b600e5560105460075461ffff909116906115149084611aaf565b61151e919061199f565b600f556115b7565b6012546001600160a01b03848116911614801561154557506000600c54115b156115b75760105460095461ffff909116906115619084611aaf565b61156b919061199f565b600d55601054600a5461ffff909116906115859084611aaf565b61158f919061199f565b600e55601054600b5461ffff909116906115a99084611aaf565b6115b3919061199f565b600f555b600d546010546201000090046001600160a01b0316600090815260016020526040812080549091906115ea908490611987565b9091555050601054600d546040516001600160a01b0362010000909304831692871691600080516020611b278339815191529161162991815260200190565b60405180910390a3600e5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054909190611672908490611987565b9091555050600e546013546116879190611ace565b601355600e54604080519182525161dead916001600160a01b03871691600080516020611b278339815191529181900360200190a3600f5430600090815260016020526040812080549091906116de908490611987565b9091555050600f5460405190815230906001600160a01b03861690600080516020611b278339815191529060200160405180910390a36000600f54600e54600d546117299190611987565b6117339190611987565b905061173f8184611ace565b95945050505050565b60006020828403121561175a57600080fd5b813561176581611b11565b9392505050565b60006020828403121561177e57600080fd5b815161176581611b11565b6000806040838503121561179c57600080fd5b82356117a781611b11565b915060208301356117b781611b11565b809150509250929050565b6000806000606084860312156117d757600080fd5b83356117e281611b11565b925060208401356117f281611b11565b929592945050506040919091013590565b6000806040838503121561181657600080fd5b823561182181611b11565b946020939093013593505050565b60006020828403121561184157600080fd5b8151801515811461176557600080fd5b60006020828403121561186357600080fd5b5035919050565b6000806040838503121561187d57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156118b95785810183015185820160400152820161189d565b818111156118cb576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119665784516001600160a01b031683529383019391830191600101611941565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561199a5761199a611ae5565b500190565b6000826119bc57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156119fc5781600019048211156119e2576119e2611ae5565b808516156119ef57918102915b93841c93908002906119c6565b509250929050565b600061176560ff841683600082611a1d575060016106df565b81611a2a575060006106df565b8160018114611a405760028114611a4a57611a66565b60019150506106df565b60ff841115611a5b57611a5b611ae5565b50506001821b6106df565b5060208310610133831016604e8410600b8410161715611a89575081810a6106df565b611a9383836119c1565b8060001904821115611aa757611aa7611ae5565b029392505050565b6000816000190483118215151615611ac957611ac9611ae5565b500290565b600082821015611ae057611ae0611ae5565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610b1f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e1da48884920b5a899ef539c60d051820b3c2296b2c92fd2d06867f91c5a4c1b64736f6c63430008070033
0x6080604052600060055560006006556103e860075560075460065460055462000029919062000693565b62000035919062000693565b60085560006009556000600a556103e8600b55600b54600a546009546200005d919062000693565b62000069919062000693565b600c556010805461ffff19166127101790556012805461ffff60a81b1916905567016345785d8a0000601355652d79883d20006014819055601555348015620000b157600080fd5b50620000bd3362000611565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156200011e57600080fd5b505afa15801562000133573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000159919062000661565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a257600080fd5b505afa158015620001b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001dd919062000661565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200022657600080fd5b505af11580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000261919062000661565b601260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c157600080fd5b505afa158015620002d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fc919062000661565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034557600080fd5b505afa1580156200035a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000380919062000661565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015620003c757600080fd5b505afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000402919062000661565b601080546001600160a01b03928316620100000262010000600160b01b0319909116179055601680546001600160a01b031916734f2ef12e1360563e56f47849dbd4ca20d12079b017905560135460008054909216825260016020526040822055600581905560068190556103e8600781905581908180828062000487838062000693565b62000493919062000693565b6008556009839055600a829055600b81905580620004b2838562000693565b620004be919062000693565b600c55600160036000620004da6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556016549091168352908220805490931681179092556004906200054a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155601654909116835291208054909216179055620005b46000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601354604051620005fc91815260200190565b60405180910390a350505050505050620006ba565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200067457600080fd5b81516001600160a01b03811681146200068c57600080fd5b9392505050565b60008219821115620006b557634e487b7160e01b600052601160045260246000fd5b500190565b611b7c80620006ca6000396000f3fe6080604052600436106102075760003560e01c80637bce5a0411610118578063c24ad66c116100a0578063d0a398141161006f578063d0a39814146105cd578063dd62ed3e146105e3578063ea2f0b3714610629578063f239eab814610649578063f2fde38b1461065f57600080fd5b8063c24ad66c1461056c578063c9567bf91461058c578063c99f2fed146105a1578063cc70acee146105b757600080fd5b80639740a946116100e75780639740a946146104da5780639f71146d146104f0578063a8b0898214610510578063a9059cbb14610536578063b9e937001461055657600080fd5b80637bce5a04146104615780638da5cb5b14610477578063921369131461049557806395d89b41146104ab57600080fd5b806323b872dd1161019b57806347afcbfe1161016a57806347afcbfe146103d55780635030bf15146103eb5780636cce46fc1461040057806370a0823114610416578063715018a61461044c57600080fd5b806323b872dd14610359578063313ce567146103795780633722355c14610395578063437823ec146103b557600080fd5b806318160ddd116101d757806318160ddd146102d65780631c499ab0146102f55780631d6167ac146103155780631f3fed8f1461034357600080fd5b8062f44d241461021357806303fd2a451461023557806306fdde0314610268578063095ea7b3146102a657600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e366004611851565b61067f565b005b34801561024157600080fd5b5061024b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027457600080fd5b5060408051808201909152600c81526b53756d6d65722047616d657360a01b60208201525b60405161025f919061188c565b3480156102b257600080fd5b506102c66102c1366004611803565b6106ce565b604051901515815260200161025f565b3480156102e257600080fd5b506013545b60405190815260200161025f565b34801561030157600080fd5b50610233610310366004611851565b6106e5565b34801561032157600080fd5b506010546103309061ffff1681565b60405161ffff909116815260200161025f565b34801561034f57600080fd5b506102e7600f5481565b34801561036557600080fd5b506102c66103743660046117c2565b61072b565b34801561038557600080fd5b506040516009815260200161025f565b3480156103a157600080fd5b506102336103b0366004611748565b6107dc565b3480156103c157600080fd5b506102336103d0366004611748565b61082a565b3480156103e157600080fd5b506102e7600a5481565b3480156103f757600080fd5b50610233610878565b34801561040c57600080fd5b506102e760095481565b34801561042257600080fd5b506102e7610431366004611748565b6001600160a01b031660009081526001602052604090205490565b34801561045857600080fd5b506102336108ff565b34801561046d57600080fd5b506102e760075481565b34801561048357600080fd5b506000546001600160a01b031661024b565b3480156104a157600080fd5b506102e7600b5481565b3480156104b757600080fd5b5060408051808201909152600681526529aaa6a6a2a960d11b6020820152610299565b3480156104e657600080fd5b506102e7600d5481565b3480156104fc57600080fd5b5061023361050b366004611748565b610935565b34801561051c57600080fd5b5060105461024b906201000090046001600160a01b031681565b34801561054257600080fd5b506102c6610551366004611803565b610980565b34801561056257600080fd5b506102e760085481565b34801561057857600080fd5b5061023361058736600461186a565b61098d565b34801561059857600080fd5b506102336109ed565b3480156105ad57600080fd5b506102e760065481565b3480156105c357600080fd5b506102e7600e5481565b3480156105d957600080fd5b506102e7600c5481565b3480156105ef57600080fd5b506102e76105fe366004611789565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561063557600080fd5b50610233610644366004611748565b610b22565b34801561065557600080fd5b506102e760055481565b34801561066b57600080fd5b5061023361067a366004611748565b610b6d565b6000546001600160a01b031633146106b25760405162461bcd60e51b81526004016106a9906118e1565b60405180910390fd5b6106be6009600a611a04565b6106c89082611aaf565b60155550565b60006106db338484610c05565b5060015b92915050565b6000546001600160a01b0316331461070f5760405162461bcd60e51b81526004016106a9906118e1565b61071b6009600a611a04565b6107259082611aaf565b60145550565b6000610738848484610d29565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107bd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a9565b6107d185336107cc8685611ace565b610c05565b506001949350505050565b6000546001600160a01b031633146108065760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146108545760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146108a25760405162461bcd60e51b81526004016106a9906118e1565b60006009819055600a819055610258600b819055600582905560068290556007819055906108d09080611987565b6108da9190611987565b600c556007546006546005546108f09190611987565b6108fa9190611987565b600855565b6000546001600160a01b031633146109295760405162461bcd60e51b81526004016106a9906118e1565b61093360006111bb565b565b6000546001600160a01b0316331461095f5760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b03166000908152600460205260409020805460ff19169055565b60006106db338484610d29565b6000546001600160a01b031633146109b75760405162461bcd60e51b81526004016106a9906118e1565b6109c36009600a611a04565b6109cd9083611aaf565b6015556109dc6009600a611a04565b6109e69082611aaf565b6014555050565b6000546001600160a01b03163314610a175760405162461bcd60e51b81526004016106a9906118e1565b601254600160a01b900460ff1615610a715760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106a9565b60128054652d79883d2000601481905560155562ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610ae757600080fd5b505af1158015610afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1f919061182f565b50565b6000546001600160a01b03163314610b4c5760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610b975760405162461bcd60e51b81526004016106a9906118e1565b6001600160a01b038116610bfc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a9565b610b1f816111bb565b6001600160a01b038316610c675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a9565b6001600160a01b038216610cc85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d8d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a9565b6001600160a01b038216610def5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a9565b60008111610e515760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a9565b6001600160a01b038316600090815260016020526040902054811115610ed35760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016106a9565b601254600160a01b900460ff1680610f0357506001600160a01b03831660009081526003602052604090205460ff165b80610f2657506001600160a01b03821660009081526003602052604090205460ff165b610f725760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c65642079657400000000000000000060448201526064016106a9565b6012546001600160a01b038481169116148015610f9d57506011546001600160a01b03838116911614155b8015610fc257506001600160a01b03821660009081526003602052604090205460ff16155b15611019576015548111156110195760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e000000000000000060448201526064016106a9565b6012546001600160a01b03848116911614801561104457506011546001600160a01b03838116911614155b801561106957506001600160a01b03821660009081526004602052604090205460ff16155b156110ed576014546001600160a01b0383166000908152600160205260409020546110949083611987565b11156110ed5760405162461bcd60e51b815260206004820152602260248201527f526563697069656e742065786365656473206d61782077616c6c65742073697a604482015261329760f11b60648201526084016106a9565b30600090815260016020526040902054601254600160a81b900460ff1615801561112557506012546001600160a01b03858116911614155b801561113a5750601254600160b01b900460ff165b80156111465750600081115b15611166576111548161120b565b4780156111645761116447611394565b505b6001600160a01b0384166000908152600360205260409020546111b59085908590859060ff16806111af57506001600160a01b03871660009081526003602052604090205460ff165b156113d2565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061125357611253611afb565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156112a757600080fd5b505afa1580156112bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112df919061176c565b816001815181106112f2576112f2611afb565b6001600160a01b0392831660209182029290920101526011546113189130911684610c05565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790611351908590600090869030904290600401611916565b600060405180830381600087803b15801561136b57600080fd5b505af115801561137f573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6016546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113ce573d6000803e3d6000fd5b5050565b6001600160a01b038416600090815260016020526040812080548492906113fa908490611ace565b90915550600090508161140d5782611418565b61141885858561148e565b6001600160a01b038516600090815260016020526040812080549293508392909190611445908490611987565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611b278339815191528360405161147f91815260200190565b60405180910390a35050505050565b6012546000906001600160a01b0385811691161480156114b057506000600854115b156115265760105460055461ffff909116906114cc9084611aaf565b6114d6919061199f565b600d5560105460065461ffff909116906114f09084611aaf565b6114fa919061199f565b600e5560105460075461ffff909116906115149084611aaf565b61151e919061199f565b600f556115b7565b6012546001600160a01b03848116911614801561154557506000600c54115b156115b75760105460095461ffff909116906115619084611aaf565b61156b919061199f565b600d55601054600a5461ffff909116906115859084611aaf565b61158f919061199f565b600e55601054600b5461ffff909116906115a99084611aaf565b6115b3919061199f565b600f555b600d546010546201000090046001600160a01b0316600090815260016020526040812080549091906115ea908490611987565b9091555050601054600d546040516001600160a01b0362010000909304831692871691600080516020611b278339815191529161162991815260200190565b60405180910390a3600e5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054909190611672908490611987565b9091555050600e546013546116879190611ace565b601355600e54604080519182525161dead916001600160a01b03871691600080516020611b278339815191529181900360200190a3600f5430600090815260016020526040812080549091906116de908490611987565b9091555050600f5460405190815230906001600160a01b03861690600080516020611b278339815191529060200160405180910390a36000600f54600e54600d546117299190611987565b6117339190611987565b905061173f8184611ace565b95945050505050565b60006020828403121561175a57600080fd5b813561176581611b11565b9392505050565b60006020828403121561177e57600080fd5b815161176581611b11565b6000806040838503121561179c57600080fd5b82356117a781611b11565b915060208301356117b781611b11565b809150509250929050565b6000806000606084860312156117d757600080fd5b83356117e281611b11565b925060208401356117f281611b11565b929592945050506040919091013590565b6000806040838503121561181657600080fd5b823561182181611b11565b946020939093013593505050565b60006020828403121561184157600080fd5b8151801515811461176557600080fd5b60006020828403121561186357600080fd5b5035919050565b6000806040838503121561187d57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156118b95785810183015185820160400152820161189d565b818111156118cb576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119665784516001600160a01b031683529383019391830191600101611941565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561199a5761199a611ae5565b500190565b6000826119bc57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156119fc5781600019048211156119e2576119e2611ae5565b808516156119ef57918102915b93841c93908002906119c6565b509250929050565b600061176560ff841683600082611a1d575060016106df565b81611a2a575060006106df565b8160018114611a405760028114611a4a57611a66565b60019150506106df565b60ff841115611a5b57611a5b611ae5565b50506001821b6106df565b5060208310610133831016604e8410600b8410161715611a89575081810a6106df565b611a9383836119c1565b8060001904821115611aa757611aa7611ae5565b029392505050565b6000816000190483118215151615611ac957611ac9611ae5565b500290565b600082821015611ae057611ae0611ae5565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610b1f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e1da48884920b5a899ef539c60d051820b3c2296b2c92fd2d06867f91c5a4c1b64736f6c63430008070033