0x60806040526014600855602d6009553480156200001b57600080fd5b5060405162001258380380620012588339810160408190526200003e91620001f4565b604051806040016040528060088152602001674b6e75636b6c657360c01b815250604051806040016040528060088152602001674b6e75636b6c657360c01b8152506200009a62000094620000d360201b60201c565b620000d7565b6004620000a88382620002b2565b506005620000b78282620002b2565b505050620000cc33826200012760201b60201c565b50620003a6565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620001825760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600360008282546200019691906200037e565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b6000602082840312156200020757600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200023957607f821691505b6020821081036200025a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ef57600081815260208120601f850160051c81016020861015620002895750805b601f850160051c820191505b81811015620002aa5782815560010162000295565b505050505050565b81516001600160401b03811115620002ce57620002ce6200020e565b620002e681620002df845462000224565b8462000260565b602080601f8311600181146200031e5760008415620003055750858301515b600019600386901b1c1916600185901b178555620002aa565b600085815260208120601f198616915b828110156200034f578886015182559484019460019091019084016200032e565b50858210156200036e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620003a057634e487b7160e01b600052601160045260246000fd5b92915050565b610ea280620003b66000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806349bd5a5e116100b857806395d89b411161007c57806395d89b411461027c578063a457c2d714610284578063a9059cbb14610297578063dd62ed3e146102aa578063e25b5b8e146102bd578063f2fde38b146102d057600080fd5b806349bd5a5e1461021e57806370a0823114610231578063715018a61461025a57806389f9a1d3146102625780638da5cb5b1461026b57600080fd5b8063313ce567116100ff578063313ce567146101ab57806339509351146101ba57806342966c68146101cd57806346904840146101e2578063470624021461021557600080fd5b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461017d57806323b872dd1461018f5780632b14ca56146101a2575b600080fd5b6101446102e3565b6040516101519190610c46565b60405180910390f35b61016d610168366004610cb0565b610375565b6040519015158152602001610151565b6003545b604051908152602001610151565b61016d61019d366004610cda565b61038f565b61018160095481565b60405160128152602001610151565b61016d6101c8366004610cb0565b6103b3565b6101e06101db366004610d16565b6103d5565b005b6101fd734a10dcf169ff452f7d6b43958fbbf6099f68960e81565b6040516001600160a01b039091168152602001610151565b61018160085481565b6006546101fd906001600160a01b031681565b61018161023f366004610d2f565b6001600160a01b031660009081526001602052604090205490565b6101e06103e2565b61018160075481565b6000546001600160a01b03166101fd565b6101446103f6565b61016d610292366004610cb0565b610405565b61016d6102a5366004610cb0565b610485565b6101816102b8366004610d51565b610493565b6101e06102cb366004610d84565b6104be565b6101e06102de366004610d2f565b6104f5565b6060600480546102f290610dbd565b80601f016020809104026020016040519081016040528092919081815260200182805461031e90610dbd565b801561036b5780601f106103405761010080835404028352916020019161036b565b820191906000526020600020905b81548152906001019060200180831161034e57829003601f168201915b5050505050905090565b60003361038381858561056b565b60019150505b92915050565b60003361039d85828561068f565b6103a8858585610709565b506001949350505050565b6000336103838185856103c68383610493565b6103d09190610e0d565b61056b565b6103df33826108bd565b50565b6103ea6109f1565b6103f46000610a4b565b565b6060600580546102f290610dbd565b600033816104138286610493565b9050838110156104785760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103a8828686840361056b565b600033610383818585610709565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6104c66109f1565b600680546001600160a01b0319166001600160a01b039590951694909417909355600791909155600855600955565b6104fd6109f1565b6001600160a01b0381166105625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161046f565b6103df81610a4b565b6001600160a01b0383166105cd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161046f565b6001600160a01b03821661062e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161046f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061069b8484610493565b9050600019811461070357818110156106f65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161046f565b610703848484840361056b565b50505050565b6006546001600160a01b0316610787576000546001600160a01b038481169116148061074257506000546001600160a01b038381169116145b6107875760405162461bcd60e51b81526020600482015260166024820152751d1c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b604482015260640161046f565b6006546001600160a01b039081169084160361084c57600754816107c0846001600160a01b031660009081526001602052604090205490565b6107ca9190610e0d565b11156108015760405162461bcd60e51b8152602060048201526006602482015265119bdc989a5960d21b604482015260640161046f565b60006064600854836108139190610e20565b61081d9190610e37565b90506108298183610e59565b915061084a84734a10dcf169ff452f7d6b43958fbbf6099f68960e83610a9b565b505b6006546001600160a01b03908116908316036108ad5760006064600954836108749190610e20565b61087e9190610e37565b905061088a8183610e59565b91506108ab84734a10dcf169ff452f7d6b43958fbbf6099f68960e83610a9b565b505b6108b8838383610a9b565b505050565b6001600160a01b03821661091d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161046f565b6001600160a01b038216600090815260016020526040902054818110156109915760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161046f565b6001600160a01b03831660008181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000546001600160a01b031633146103f45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161046f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610aff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161046f565b6001600160a01b038216610b615760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161046f565b6001600160a01b03831660009081526001602052604090205481811015610bd95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161046f565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c399086815260200190565b60405180910390a3610703565b600060208083528351808285015260005b81811015610c7357858101830151858201604001528201610c57565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610cab57600080fd5b919050565b60008060408385031215610cc357600080fd5b610ccc83610c94565b946020939093013593505050565b600080600060608486031215610cef57600080fd5b610cf884610c94565b9250610d0660208501610c94565b9150604084013590509250925092565b600060208284031215610d2857600080fd5b5035919050565b600060208284031215610d4157600080fd5b610d4a82610c94565b9392505050565b60008060408385031215610d6457600080fd5b610d6d83610c94565b9150610d7b60208401610c94565b90509250929050565b60008060008060808587031215610d9a57600080fd5b610da385610c94565b966020860135965060408601359560600135945092505050565b600181811c90821680610dd157607f821691505b602082108103610df157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561038957610389610df7565b808202811582820484141761038957610389610df7565b600082610e5457634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561038957610389610df756fea2646970667358221220d5782d2a1680ab10e3e47d564bb982ba195a58dc3cb2d25e672a6051ddebb10664736f6c634300081200330000000003fea4079c03adc94fdcebea9c2d4eaf61297f372000000000000000