60806040526005805463ffffffff60a01b1916905560c8620000246012600a620004c2565b620000359064174876e800620004d9565b620000419190620004f3565b600655600f600855600f6009555f600a5560646012600a620000649190620004c2565b620000759064174876e800620004d9565b62000082906002620004d9565b6200008e9190620004f3565b600b553480156200009d575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556040805163c45a015560e01b815290519192839263c45a01559280830192602092918290030181865afa15801562000140573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000166919062000513565b6001600160a01b031663c9c653963060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ec919062000513565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000237573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025d919062000513565b600580546001600160a01b0319166001600160a01b0392909216919091179055620002853390565b600780546001600160a01b0319166001600160a01b0392909216919091179055620002b36012600a620004c2565b620002c49064174876e800620004d9565b335f81815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003066012600a620004c2565b620003179064174876e800620004d9565b60405190815260200160405180910390a3600160035f6200033f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055506005805460ff60b81b1916600160b81b17905543600a556200053b565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200040757815f1904821115620003eb57620003eb620003b3565b80851615620003f957918102915b93841c9390800290620003cc565b509250929050565b5f826200041f57506001620004bc565b816200042d57505f620004bc565b8160018114620004465760028114620004515762000471565b6001915050620004bc565b60ff841115620004655762000465620003b3565b50506001821b620004bc565b5060208310610133831016604e8410600b841016171562000496575081810a620004bc565b620004a28383620003c7565b805f1904821115620004b857620004b8620003b3565b0290505b92915050565b5f620004d260ff8416836200040f565b9392505050565b8082028115828204841417620004bc57620004bc620003b3565b5f826200050e57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000524575f80fd5b81516001600160a01b0381168114620004d2575f80fd5b6112e480620005495f395ff3fe60806040526004361061013f575f3560e01c80635a406fc9116100b3578063a9059cbb1161006d578063a9059cbb146103a5578063db602efd146103c4578063dd62ed3e146103e3578063e0f3ccf514610427578063e4748b9e1461043c578063e57a35b714610451575f80fd5b80635a406fc9146102de57806370a08231146102f2578063751039fc1461032657806382247ec01461033a5780638da5cb5b1461034f57806395d89b4114610375575f80fd5b806323b635851161010457806323b635851461020f57806323b872dd1461022e578063313ce5671461024d5780634ada218b1461026857806352547435146102885780635342acb4146102a7575f80fd5b806306fdde031461014a57806307df7a0d14610194578063095ea7b3146101aa57806318160ddd146101d95780631b300e46146101fb575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152601081526f444f4e414c444a5452554d502e434f4d60801b60208201525b60405161018b9190610f22565b60405180910390f35b34801561019f575f80fd5b506101a8610470565b005b3480156101b5575f80fd5b506101c96101c4366004610f84565b6104c9565b604051901515815260200161018b565b3480156101e4575f80fd5b506101ed6104df565b60405190815260200161018b565b348015610206575f80fd5b506101a8610500565b34801561021a575f80fd5b506101c9610229366004610fae565b610552565b348015610239575f80fd5b506101c9610248366004610fc5565b610568565b348015610258575f80fd5b506040516012815260200161018b565b348015610273575f80fd5b506005546101c990600160a01b900460ff1681565b348015610293575f80fd5b506101a86102a2366004610fae565b6105cf565b3480156102b2575f80fd5b506101c96102c1366004611003565b6001600160a01b03165f9081526003602052604090205460ff1690565b3480156102e9575f80fd5b50600a546101ed565b3480156102fd575f80fd5b506101ed61030c366004611003565b6001600160a01b03165f9081526002602052604090205490565b348015610331575f80fd5b506101a861064c565b348015610345575f80fd5b506101ed600b5481565b34801561035a575f80fd5b505f546040516001600160a01b03909116815260200161018b565b348015610380575f80fd5b50604080518082019091526008815267135551c814d213d560c21b602082015261017e565b3480156103b0575f80fd5b506101c96103bf366004610f84565b61069f565b3480156103cf575f80fd5b506101a86103de366004610fae565b6106ab565b3480156103ee575f80fd5b506101ed6103fd36600461101e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610432575f80fd5b506101ed60095481565b348015610447575f80fd5b506101ed60085481565b34801561045c575f80fd5b506101a861046b366004610fae565b61071c565b5f546001600160a01b031633146104a25760405162461bcd60e51b815260040161049990611055565b60405180910390fd5b6005805462ff00ff60a01b19166201000160a01b1790556104c443600361109e565b600a55565b5f6104d533848461078d565b5060015b92915050565b5f6104ec6012600a611191565b6104fb9064174876e80061119f565b905090565b5f546001600160a01b031633146105295760405162461bcd60e51b815260040161049990611055565b6105356012600a611191565b6105449064174876e80061119f565b600b555f6008819055600955565b5f6105603361dead846107ed565b506001919050565b5f6105748484846107ed565b6105c584336105c085604051806060016040528060288152602001611287602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190610b71565b61078d565b5060019392505050565b5f546001600160a01b031633146105f85760405162461bcd60e51b815260040161049990611055565b5f81116106475760405162461bcd60e51b815260206004820152601960248201527f616d6f756e742073686f756c64206e6f74206265207a65726f000000000000006044820152606401610499565b600655565b5f546001600160a01b031633146106755760405162461bcd60e51b815260040161049990611055565b6106816012600a611191565b6106909064174876e80061119f565b600b5560036008819055600955565b5f6104d53384846107ed565b5f546001600160a01b031633146106d45760405162461bcd60e51b815260040161049990611055565b60648111156107175760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206e65772046656560881b6044820152606401610499565b600955565b5f546001600160a01b031633146107455760405162461bcd60e51b815260040161049990611055565b60648111156107885760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206e65772046656560881b6044820152606401610499565b600855565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161084e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610499565b6001600160a01b0383165f90815260036020526040812054819060ff168061088d57506001600160a01b0384165f9081526003602052604090205460ff165b905080610a3357600554600160a01b900460ff166108e65760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b6044820152606401610499565b6005546001600160a01b039081169086160361099957600b548361091e866001600160a01b03165f9081526002602052604090205490565b610928919061109e565b11156109765760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610499565b610996606461099060085486610ba990919063ffffffff16565b90610c2e565b91505b6005546001600160a01b03908116908516036109cc576109c9606461099060095486610ba990919063ffffffff16565b91505b600554600160a81b900460ff161580156109f357506005546001600160a01b038581169116145b8015610a085750600554600160b01b900460ff165b8015610a235750600654305f90815260026020526040902054115b15610a3357610a33600654610c6f565b8115610aab57305f90815260026020526040902054610a529083610ccf565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610aa29086815260200190565b60405180910390a35b6001600160a01b0385165f90815260026020526040902054610acd9084610d2d565b6001600160a01b0386165f90815260026020526040902055610b10610af28484610d2d565b6001600160a01b0386165f9081526002602052604090205490610ccf565b6001600160a01b038086165f8181526002602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610b598686610d2d565b60405190815260200160405180910390a35050505050565b5f8184841115610b945760405162461bcd60e51b81526004016104999190610f22565b505f610ba084866111b6565b95945050505050565b5f825f03610bb857505f6104d9565b5f610bc3838561119f565b905082610bd085836111c9565b14610c275760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610499565b9392505050565b5f610c2783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d6e565b5f610c7982610d9a565b6007546040516001600160a01b039091169047905f81818185875af1925050503d805f8114610cc3576040519150601f19603f3d011682016040523d82523d5f602084013e610cc8565b606091505b5050505050565b5f80610cdb838561109e565b905083811015610c275760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610499565b5f610c2783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b71565b5f8183610d8e5760405162461bcd60e51b81526004016104999190610f22565b505f610ba084866111c9565b6005805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610de057610de06111e8565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7491906111fc565b81600181518110610e8757610e876111e8565b6001600160a01b039283166020918202929092010152600454610ead913091168461078d565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610ee49186915f9187913091429101611217565b5f604051808303815f87803b158015610efb575f80fd5b505af1158015610f0d573d5f803e3d5ffd5b50506005805460ff60a81b1916905550505050565b5f6020808352835180828501525f5b81811015610f4d57858101830151858201604001528201610f31565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f81575f80fd5b50565b5f8060408385031215610f95575f80fd5b8235610fa081610f6d565b946020939093013593505050565b5f60208284031215610fbe575f80fd5b5035919050565b5f805f60608486031215610fd7575f80fd5b8335610fe281610f6d565b92506020840135610ff281610f6d565b929592945050506040919091013590565b5f60208284031215611013575f80fd5b8135610c2781610f6d565b5f806040838503121561102f575f80fd5b823561103a81610f6d565b9150602083013561104a81610f6d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104d9576104d961108a565b600181815b808511156110eb57815f19048211156110d1576110d161108a565b808516156110de57918102915b93841c93908002906110b6565b509250929050565b5f82611101575060016104d9565b8161110d57505f6104d9565b8160018114611123576002811461112d57611149565b60019150506104d9565b60ff84111561113e5761113e61108a565b50506001821b6104d9565b5060208310610133831016604e8410600b841016171561116c575081810a6104d9565b61117683836110b1565b805f19048211156111895761118961108a565b029392505050565b5f610c2760ff8416836110f3565b80820281158282048414176104d9576104d961108a565b818103818111156104d9576104d961108a565b5f826111e357634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561120c575f80fd5b8151610c2781610f6d565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112655784516001600160a01b031683529383019391830191600101611240565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cd2815c603ee6f347805b1b10060356364033f71ecd6f0eff8208978e147ac9464736f6c63430008150033