6080604052600480546001600160a01b031990811673420000000000000000000000000000000000000617909155600580548216734752ba5dbc23f44d87826276bf6fd6b1c372ad24179055600680549091163017905534801562000062575f80fd5b506040518060400160405280601881526020017f42617365204c696e6b20416e6420436861696e204b657973000000000000000081525060405180604001604052806005815260200164424c41434b60d81b815250336b033b2e3c9fd0803ce800000083835f620000d8620001c960201b60201c565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060096200013383826200033e565b50600a6200014282826200033e565b505075ea8e70a1e9ca50dbd054b9d10b9e2750b6c057d0bdb56050555075ea8e9367c8760ca183208ede286cd3a18abe4d1fe52f60515573e3c621bc5c7a5374370f23f2f4f13c7e1acf589a605255600554600880546001600160a01b0319166001600160a01b03909216919091179055620001bf8282620001cd565b5050505062000430565b3390565b6001600160a01b038216620002285760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600b5f8282546200023b91906200040a565b9091555050305f9081526002602052604081208054839290620002609084906200040a565b909155505060405181815230905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620002c957607f821691505b602082108103620002e857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200033957805f5260205f20601f840160051c81016020851015620003155750805b601f840160051c820191505b8181101562000336575f815560010162000321565b50505b505050565b81516001600160401b038111156200035a576200035a620002a0565b62000372816200036b8454620002b4565b84620002ee565b602080601f831160018114620003a8575f8415620003905750858301515b5f19600386901b1c1916600185901b17855562000402565b5f85815260208120601f198616915b82811015620003d857888601518255948401946001909101908401620003b7565b5085821015620003f657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200042a57634e487b7160e01b5f52601160045260245ffd5b92915050565b610f32806200043e5f395ff3fe6080604052600436106100fa575f3560e01c806370a0823111610092578063a705eee211610062578063a705eee21461028b578063a8aa1b31146102aa578063a9059cbb146102c9578063c9567bf9146102e8578063dd62ed3e146102f0575f80fd5b806370a0823114610210578063715018a6146102445780638da5cb5b1461025a57806395d89b4114610277575f80fd5b80631f0ba6c9116100cd5780631f0ba6c9146101a857806323b872dd146101c1578063313ce567146101e057806348cd4cb1146101fb575f80fd5b806301a37fc2146100fe57806306fdde031461013a578063095ea7b31461015b57806318160ddd1461018a575b5f80fd5b348015610109575f80fd5b50600e5461011d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610145575f80fd5b5061014e610334565b6040516101319190610cf1565b348015610166575f80fd5b5061017a610175366004610d54565b6103c4565b6040519015158152602001610131565b348015610195575f80fd5b50600b545b604051908152602001610131565b3480156101b3575f80fd5b50600c5461017a9060ff1681565b3480156101cc575f80fd5b5061017a6101db366004610d7e565b6103da565b3480156101eb575f80fd5b5060405160128152602001610131565b348015610206575f80fd5b5061019a600d5481565b34801561021b575f80fd5b5061019a61022a366004610dbc565b6001600160a01b03165f9081526002602052604090205490565b34801561024f575f80fd5b50610258610490565b005b348015610265575f80fd5b506001546001600160a01b031661011d565b348015610282575f80fd5b5061014e610533565b348015610296575f80fd5b50600f5461011d906001600160a01b031681565b3480156102b5575f80fd5b5060075461011d906001600160a01b031681565b3480156102d4575f80fd5b5061017a6102e3366004610d54565b610542565b61025861054e565b3480156102fb575f80fd5b5061019a61030a366004610dd7565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b60606009805461034390610e0e565b80601f016020809104026020016040519081016040528092919081815260200182805461036f90610e0e565b80156103ba5780601f10610391576101008083540402835291602001916103ba565b820191905f5260205f20905b81548152906001019060200180831161039d57829003601f168201915b5050505050905090565b5f6103d0338484610811565b5060015b92915050565b5f6103e6848484610934565b6001600160a01b0384165f9081526003602090815260408083203384529091529020548281101561046f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610483853361047e8685610e5a565b610811565b60019150505b9392505050565b6001546001600160a01b031633146104ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b6001546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6060600a805461034390610e0e565b5f6103d0338484610934565b6001546001600160a01b03163314801561056b5750600c5460ff16155b6105b75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b60125f6105c6826103e8610e5a565b6103e8600b546105d69190610e6d565b6105e09190610e8c565b90505f826103e8600b546105f49190610e6d565b6105fe9190610e8c565b905060085f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610650573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106749190610ea3565b600480546040516364e329cb60e11b81526001600160a01b0391821692810192909252306024830152919091169063c9c65396906044016020604051808303815f875af11580156106c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106eb9190610ea3565b600780546001600160a01b0319166001600160a01b03928316179055600554610718913091165f19610811565b6008546001600160a01b031663f305d71934308580836107406001546001600160a01b031690565b61074c4261012c610ebe565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af11580156107b7573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107dc9190610ed1565b5050506107fb306107f56001546001600160a01b031690565b83610934565b5050600c805460ff191660011790555043600d55565b6001600160a01b0383166108735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610466565b6001600160a01b0382166108d45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610466565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e80546001600160a01b038086166001600160a01b031992831617909255600f805492851692909116919091179055600c5460ff161515600114806109845750600e546001600160a01b031630145b8061099f5750600154600e546001600160a01b039081169116145b6109f55760405162461bcd60e51b815260206004820152602160248201527f45524332303a2074726164696e67206973206e6f742079657420656e61626c656044820152601960fa1b6064820152608401610466565b600e546001600160a01b0316610a5b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610466565b6001600160a01b038216610abd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610466565b610ac8838383610ace565b50505050565b5f60405163249909d160e21b8152826004820152602481016040526020816024835f6052545af18015610b0057815192505b50610b0d90508282610e5a565b6001600160a01b0385165f90815260026020526040902055600c5460ff161515600103610c6f57610b3f606483610e6d565b610b4a906063610e8c565b6001600160a01b0384165f9081526002602052604081208054909190610b71908490610ebe565b90915550610b829050606483610e6d565b610b8d906001610e8c565b6006546001600160a01b03165f9081526002602052604081208054909190610bb6908490610ebe565b90915550506001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610bf5606486610e6d565b610c00906063610e8c565b60405190815260200160405180910390a36006546001600160a01b039081169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610c4e606486610e6d565b610c59906001610e8c565b60405190815260200160405180910390a3610489565b6001600160a01b0383165f9081526002602052604081208054849290610c96908490610ebe565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ce291815260200190565b60405180910390a39392505050565b5f602080835283518060208501525f5b81811015610d1d57858101830151858201604001528201610d01565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d51575f80fd5b50565b5f8060408385031215610d65575f80fd5b8235610d7081610d3d565b946020939093013593505050565b5f805f60608486031215610d90575f80fd5b8335610d9b81610d3d565b92506020840135610dab81610d3d565b929592945050506040919091013590565b5f60208284031215610dcc575f80fd5b813561048981610d3d565b5f8060408385031215610de8575f80fd5b8235610df381610d3d565b91506020830135610e0381610d3d565b809150509250929050565b600181811c90821680610e2257607f821691505b602082108103610e4057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103d4576103d4610e46565b5f82610e8757634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176103d4576103d4610e46565b5f60208284031215610eb3575f80fd5b815161048981610d3d565b808201808211156103d4576103d4610e46565b5f805f60608486031215610ee3575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c1257c490f63139af465680a83588848711c883115d606a7b1c14f4c42b7b54e64736f6c63430008180033