0x608060405260cb6009553480156200001657600080fd5b506040518060400160405280601781526020017f4d696453717561726520496e766573746f722050617373000000000000000000815250604051806040016040528060048152602001634d44535160e01b815250620000846200007e620000ae60201b60201c565b620000b2565b6003620000928382620001a7565b506004620000a18282620001a7565b5050600180555062000273565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200012d57607f821691505b6020821081036200014e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001a257600081815260208120601f850160051c810160208610156200017d5750805b601f850160051c820191505b818110156200019e5782815560010162000189565b5050505b505050565b81516001600160401b03811115620001c357620001c362000102565b620001db81620001d4845462000118565b8462000154565b602080601f831160018114620002135760008415620001fa5750858301515b600019600386901b1c1916600185901b1785556200019e565b600085815260208120601f198616915b82811015620002445788860151825594840194600190910190840162000223565b5085821015620002635787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6115a580620002836000396000f3fe6080604052600436106100fa5760003560e01c806301ffc9a7146100ff57806306fdde0314610134578063081812fc14610156578063095ea7b31461018e57806318160ddd146101a357806323b872dd146101c65780632d1a12f6146101d957806332cb6b0c146101f957806342842e0e1461020f57806355f804b3146102225780636352211e1461024257806370a0823114610262578063715018a6146102825780638da5cb5b1461029757806395d89b41146102ac578063a22cb465146102c1578063b88d4fde146102e1578063b921e163146102f4578063c87b56dd14610314578063e985e9c514610334578063f2fde38b14610354575b600080fd5b34801561010b57600080fd5b5061011f61011a366004610fe8565b610374565b60405190151581526020015b60405180910390f35b34801561014057600080fd5b506101496103c6565b60405161012b9190611055565b34801561016257600080fd5b50610176610171366004611068565b610458565b6040516001600160a01b03909116815260200161012b565b6101a161019c36600461109d565b61049c565b005b3480156101af57600080fd5b506101b861053c565b60405190815260200161012b565b6101a16101d43660046110c7565b61054a565b3480156101e557600080fd5b506101a16101f4366004611103565b6106d1565b34801561020557600080fd5b506101b860095481565b6101a161021d3660046110c7565b610746565b34801561022e57600080fd5b506101a161023d3660046111ba565b610766565b34801561024e57600080fd5b5061017661025d366004611068565b61077a565b34801561026e57600080fd5b506101b861027d366004611202565b610785565b34801561028e57600080fd5b506101a16107d3565b3480156102a357600080fd5b506101766107e7565b3480156102b857600080fd5b506101496107f6565b3480156102cd57600080fd5b506101a16102dc36600461121d565b610805565b6101a16102ef366004611259565b610871565b34801561030057600080fd5b506101a161030f366004611068565b6108bb565b34801561032057600080fd5b5061014961032f366004611068565b610946565b34801561034057600080fd5b5061011f61034f3660046112d4565b6109f9565b34801561036057600080fd5b506101a161036f366004611202565b610a27565b60006301ffc9a760e01b6001600160e01b0319831614806103a557506380ac58cd60e01b6001600160e01b03198316145b806103c05750635b5e139f60e01b6001600160e01b03198316145b92915050565b6060600380546103d5906112fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610401906112fe565b801561044e5780601f106104235761010080835404028352916020019161044e565b820191906000526020600020905b81548152906001019060200180831161043157829003601f168201915b5050505050905090565b600061046382610aa0565b610480576040516333d1c03960e21b815260040160405180910390fd5b506000908152600760205260409020546001600160a01b031690565b60006104a78261077a565b9050336001600160a01b038216146104e0576104c381336109f9565b6104e0576040516367d9dca160e11b815260040160405180910390fd5b60008281526007602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b600254600154036000190190565b600061055582610ad5565b9050836001600160a01b0316816001600160a01b0316146105885760405162a1148160e81b815260040160405180910390fd5b60008281526007602052604090208054338082146001600160a01b038816909114176105d5576105b886336109f9565b6105d557604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0385166105fc57604051633a954ecd60e21b815260040160405180910390fd5b801561060757600082555b6001600160a01b0386811660009081526006602052604080822080546000190190559187168152208054600101905561064485600160e11b610b4b565b600085815260056020526040812091909155600160e11b84169003610699576001840160008181526005602052604081205490036106975760015481146106975760008181526005602052604090208490555b505b83856001600160a01b0316876001600160a01b031660008051602061155083398151915260405160405180910390a45b505050505050565b6106d9610b60565b600954826106e561053c565b6106ef9190611338565b11156107385760405162461bcd60e51b815260206004820152601360248201527213585e081cdd5c1c1b1e48195e18d959591959606a1b60448201526064015b60405180910390fd5b6107428183610bbf565b5050565b61076183838360405180602001604052806000815250610871565b505050565b61076e610b60565b600a610742828261139f565b60006103c082610ad5565b60006001600160a01b0382166107ae576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600660205260409020546001600160401b031690565b6107db610b60565b6107e56000610bd9565b565b6000546001600160a01b031690565b6060600480546103d5906112fe565b3360008181526008602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61087c84848461054a565b6001600160a01b0383163b156108b55761089884848484610c29565b6108b5576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6108c3610b60565b6108cb61053c565b8111610941576040805162461bcd60e51b81526020600482015260248101919091527f4e6577206d617820737570706c792073686f756c64206265206772656174657260448201527f207468616e207468652063757272656e74206e756d626572206f66204e465473606482015260840161072f565b600955565b606061095182610aa0565b61099d5760405162461bcd60e51b815260206004820152601f60248201527f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e00604482015260640161072f565b600a80546109aa906112fe565b90506000036109c857604051806020016040528060008152506103c0565b600a6109d383610d15565b6040516020016109e492919061145e565b60405160208183030381529060405292915050565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b610a2f610b60565b6001600160a01b038116610a945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161072f565b610a9d81610bd9565b50565b600081600111158015610ab4575060015482105b80156103c0575050600090815260056020526040902054600160e01b161590565b60008180600111610b3257600154811015610b325760008181526005602052604081205490600160e01b82169003610b30575b80600003610b29575060001901600081815260056020526040902054610b08565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b4260a01b176001600160a01b03919091161790565b33610b696107e7565b6001600160a01b0316146107e55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161072f565b610742828260405180602001604052806000815250610da7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290610c5e9033908990889088906004016114f5565b6020604051808303816000875af1925050508015610c99575060408051601f3d908101601f19168201909252610c9691810190611532565b60015b610cf7573d808015610cc7576040519150601f19603f3d011682016040523d82523d6000602084013e610ccc565b606091505b508051600003610cef576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60606000610d2283610e14565b60010190506000816001600160401b03811115610d4157610d4161112f565b6040519080825280601f01601f191660200182016040528015610d6b576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610d7557509392505050565b610db18383610eea565b6001600160a01b0383163b15610761576001548281035b610ddb6000868380600101945086610c29565b610df8576040516368d2bf6b60e11b815260040160405180910390fd5b818110610dc8578160015414610e0d57600080fd5b5050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610e535772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310610e7d576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310610e9b57662386f26fc10000830492506010015b6305f5e1008310610eb3576305f5e100830492506008015b6127108310610ec757612710830492506004015b60648310610ed9576064830492506002015b600a83106103c05760010192915050565b6001546000829003610f0f5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b038316600090815260066020526040902080546001600160401b018402019055610f46836001841460e11b610b4b565b6000828152600560205260408120919091556001600160a01b0384169083830190839083906000805160206115508339815191528180a4600183015b818114610fa85780836000600080516020611550833981519152600080a4600101610f82565b5081600003610fc957604051622e076360e81b815260040160405180910390fd5b60015550505050565b6001600160e01b031981168114610a9d57600080fd5b600060208284031215610ffa57600080fd5b8135610b2981610fd2565b60005b83811015611020578181015183820152602001611008565b50506000910152565b60008151808452611041816020860160208601611005565b601f01601f19169290920160200192915050565b602081526000610b296020830184611029565b60006020828403121561107a57600080fd5b5035919050565b80356001600160a01b038116811461109857600080fd5b919050565b600080604083850312156110b057600080fd5b6110b983611081565b946020939093013593505050565b6000806000606084860312156110dc57600080fd5b6110e584611081565b92506110f360208501611081565b9150604084013590509250925092565b6000806040838503121561111657600080fd5b8235915061112660208401611081565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561115f5761115f61112f565b604051601f8501601f19908116603f011681019082821181831017156111875761118761112f565b816040528093508581528686860111156111a057600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156111cc57600080fd5b81356001600160401b038111156111e257600080fd5b8201601f810184136111f357600080fd5b610d0d84823560208401611145565b60006020828403121561121457600080fd5b610b2982611081565b6000806040838503121561123057600080fd5b61123983611081565b91506020830135801515811461124e57600080fd5b809150509250929050565b6000806000806080858703121561126f57600080fd5b61127885611081565b935061128660208601611081565b92506040850135915060608501356001600160401b038111156112a857600080fd5b8501601f810187136112b957600080fd5b6112c887823560208401611145565b91505092959194509250565b600080604083850312156112e757600080fd5b6112f083611081565b915061112660208401611081565b600181811c9082168061131257607f821691505b60208210810361133257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156103c057634e487b7160e01b600052601160045260246000fd5b601f82111561076157600081815260208120601f850160051c810160208610156113805750805b601f850160051c820191505b818110156106c95782815560010161138c565b81516001600160401b038111156113b8576113b861112f565b6113cc816113c684546112fe565b84611359565b602080601f83116001811461140157600084156113e95750858301515b600019600386901b1c1916600185901b1785556106c9565b600085815260208120601f198616915b8281101561143057888601518255948401946001909101908401611411565b508582101561144e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080845461146c816112fe565b600182811680156114845760018114611499576114c8565b60ff19841687528215158302870194506114c8565b8860005260208060002060005b858110156114bf5781548a8201529084019082016114a6565b50505082870194505b5050505083516114dc818360208801611005565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061152890830184611029565b9695505050505050565b60006020828403121561154457600080fd5b8151610b2981610fd256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220238393d4e1d7dff888cedfc0afabdd3276910c4f664fa8c9ab44e0420d65956564736f6c63430008120033