0x60806040526002805473c87cfd0493bcefb1314057bd96aea51d82923e9e6001600160a01b031991821681179092556003805482168317905560048054821683179055600580549091169091179055612710600655601e600781905560286008556009556064600a5534801561007457600080fd5b50600080546001600160a01b0319163390811782558152600160208190526040909120805460ff19169091179055610fb8806100b16000396000f3fe6080604052600436106100c25760003560e01c8063d7c010321161007f578063e96fada211610059578063e96fada2146101de578063f0b37c04146101f3578063f2fde38b14610213578063fe9fbb8014610233576100c2565b8063d7c0103214610196578063dab84ee7146101b6578063e59f8076146101cb576100c2565b80632f54bf6e146100c7578063304e5d59146100fd57806351477d5f1461011f57806384b1d1ef14610141578063adda68ee14610156578063b6a5d7de14610176575b600080fd5b3480156100d357600080fd5b506100e76100e23660046108d1565b610253565b6040516100f49190610a02565b60405180910390f35b34801561010957600080fd5b5061011d6101183660046108d1565b610267565b005b34801561012b57600080fd5b506101346102e5565b6040516100f49190610993565b34801561014d57600080fd5b506101346102f4565b34801561016257600080fd5b5061011d610171366004610962565b610303565b34801561018257600080fd5b5061011d6101913660046108d1565b610380565b3480156101a257600080fd5b5061011d6101b13660046108ed565b6103cc565b3480156101c257600080fd5b50610134610476565b6101346101d9366004610937565b610485565b3480156101ea57600080fd5b5061013461054b565b3480156101ff57600080fd5b5061011d61020e3660046108d1565b61055a565b34801561021f57600080fd5b5061011d61022e3660046108d1565b6105a0565b34801561023f57600080fd5b506100e761024e3660046108d1565b610635565b6000546001600160a01b0390811691161490565b61027033610635565b6102955760405162461bcd60e51b815260040161028c90610ac1565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383811691909117918290556040519116907f540f5bd3f8f82ca45e79b7f435f28e83989b81290acecf72db637424e83ce10290600090a250565b6002546001600160a01b031681565b6005546001600160a01b031681565b61030c33610635565b6103285760405162461bcd60e51b815260040161028c90610ac1565b600a8490556007839055600882905560098190556040517fd6bdd5410b748235cc7401ce5edd6e78e0d1bdd49db5a41dc47b309d1fb578cd90610372908690869086908690610ae6565b60405180910390a150505050565b61038933610253565b6103a55760405162461bcd60e51b815260040161028c90610aa1565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6103d533610635565b6103f15760405162461bcd60e51b815260040161028c90610ac1565b600380546001600160a01b038086166001600160a01b0319928316179283905560048054868316908416179081905560058054868416941693909317928390556040517fe21787ff2af43740120359435dbc79c3d7431032c8974862cbc5c8dbaa207fe69461046994908416939283169216906109a7565b60405180910390a1505050565b6004546001600160a01b031681565b6000348161049282610653565b90506000813388848989600260009054906101000a90046001600160a01b03166040516104be906108c4565b6104cd969594939291906109ca565b6040518091039082f09050801580156104ea573d6000803e3d6000fd5b506002546040519192506001600160a01b038084169233927faa27cc7936e730a86048b673d7103ffe7fccf2700562b568fd48a285c45c67d092610539928d9289928e928e9290911690610b01565b60405180910390a39695505050505050565b6003546001600160a01b031681565b61056333610253565b61057f5760405162461bcd60e51b815260040161028c90610aa1565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6105a933610253565b6105c55760405162461bcd60e51b815260040161028c90610aa1565b600080546001600160a01b0319166001600160a01b0383169081178255815260016020819052604091829020805460ff19169091179055517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639061062a908390610993565b60405180910390a150565b6001600160a01b031660009081526001602052604090205460ff1690565b600080610677600a546106716008548661078a90919063ffffffff16565b906107d8565b90506000610696600a546106716007548761078a90919063ffffffff16565b905060006106b5600a546106716009548861078a90919063ffffffff16565b905060006106cf826106c985818a8961081a565b9061081a565b6003546040519192506001600160a01b03169085156108fc029086906000818181858888f1935050505015801561070a573d6000803e3d6000fd5b506004546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015610745573d6000803e3d6000fd5b506005546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015610780573d6000803e3d6000fd5b5095945050505050565b600082610799575060006107d2565b60006107a58385610b4d565b9050826107b28583610b2d565b146107cf5760405162461bcd60e51b815260040161028c90610a60565b90505b92915050565b60006107cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061085c565b60006107cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610893565b6000818361087d5760405162461bcd60e51b815260040161028c9190610a0d565b50600061088a8486610b2d565b95945050505050565b600081848411156108b75760405162461bcd60e51b815260040161028c9190610a0d565b50600061088a8486610b6c565b6103d180610bb283390190565b6000602082840312156108e2578081fd5b81356107cf81610b99565b600080600060608486031215610901578182fd5b833561090c81610b99565b9250602084013561091c81610b99565b9150604084013561092c81610b99565b809150509250925092565b60008060006060848603121561094b578283fd5b505081359360208301359350604090920135919050565b60008060008060808587031215610977578081fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152608083015290911660a082015260c00190565b901515815260200190565b6000602080835283518082850152825b81811015610a3957858101830151858201604001528201610a1d565b81811115610a4a5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b93845260208401929092526040830152606082015260800190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b600082610b4857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610b6757610b67610b83565b500290565b600082821015610b7e57610b7e610b83565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610bae57600080fd5b5056fe60806040526040516103d13803806103d183398101604081905261002291610084565b600080546001600160a01b039788166001600160a01b031991821617909155600195909555600293909355600391909155600455600580549190931691161790556100db565b80516001600160a01b038116811461007f57600080fd5b919050565b60008060008060008060c0878903121561009c578182fd5b6100a587610068565b9550602087015194506040870151935060608701519250608087015191506100cf60a08801610068565b90509295509295509295565b6102e7806100ea6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063785fa6271161005b578063785fa627146100bd578063e5e9b661146100c5578063fd74d294146100da578063fda263e8146100e25761007d565b806302d05d3f146100825780634c8435f2146100a057806351477d5f146100b5575b600080fd5b61008a6100ea565b60405161009791906101eb565b60405180910390f35b6100a86100f9565b60405161009791906102a8565b61008a6100ff565b6100a861010e565b6100d86100d33660046101bd565b610114565b005b6100a86101b1565b6100a86101b7565b6000546001600160a01b031681565b60015481565b6005546001600160a01b031681565b60025481565b6005546001600160a01b031633146101475760405162461bcd60e51b815260040161013e906101ff565b60405180910390fd5b600454421015801561015c5750600154600214155b6101785760405162461bcd60e51b815260040161013e90610271565b6040516001600160a01b038216904780156108fc02916000818181858888f193505050501580156101ad573d6000803e3d6000fd5b5050565b60035481565b60045481565b6000602082840312156101ce578081fd5b81356001600160a01b03811681146101e4578182fd5b9392505050565b6001600160a01b0391909116815260200190565b6020808252604c908201527f4f6e6c7920737065636966696564206d6964646c65206d616e2061646472657360408201527f732063616e2077697468647261772028746f2070726576656e7420667261756460608201526b756c656e7420636c61696d7360a01b608082015260a00190565b6020808252601b908201527f436f6d7065746974696f6e206861736e7420656e646564207965740000000000604082015260600190565b9081526020019056fea264697066735822122016d44b39b993f1133085964b9fe5c0a08614cc2125d96db949cd1b2d435f30d764736f6c63430008000033a2646970667358221220bc83514d3e426a412d4e6187ac9848bace87a4f82015c5b59ad642f29dcb5f9e64736f6c63430008000033