0x6080604052600436106100a05760003560e01c8063a996d6ce11610064578063a996d6ce14610158578063bd5dec9814610178578063c45a015514610198578063c4d66de8146101bd578063de6d6d96146101dd578063f3fef3a3146101fd57600080fd5b806327810b6e146100ac5780633f4ba83a146100e957806351cff8d9146101005780635c975abb146101205780638456cb591461014357600080fd5b366100a757005b600080fd5b3480156100b857600080fd5b506001546100cc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f557600080fd5b506100fe61021d565b005b34801561010c57600080fd5b506100fe61011b3660046108af565b61025a565b34801561012c57600080fd5b5060005460ff1660405190151581526020016100e0565b34801561014f57600080fd5b506100fe61029b565b34801561016457600080fd5b506100fe6101733660046108af565b6102cd565b34801561018457600080fd5b506100fe6101933660046109ae565b610349565b3480156101a457600080fd5b506000546100cc9061010090046001600160a01b031681565b3480156101c957600080fd5b506100fe6101d83660046108af565b6103c2565b3480156101e957600080fd5b506100fe6101f83660046109eb565b61045b565b34801561020957600080fd5b506100fe610218366004610aa6565b610571565b6001546001600160a01b031633146102505760405162461bcd60e51b815260040161024790610ad0565b60405180910390fd5b6102586105ad565b565b6001546001600160a01b031633146102845760405162461bcd60e51b815260040161024790610ad0565b61028c6105ff565b61029881600019610645565b50565b6001546001600160a01b031633146102c55760405162461bcd60e51b815260040161024790610ad0565b61025861080d565b6001546001600160a01b031633146102f75760405162461bcd60e51b815260040161024790610ad0565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0258795f167353770fc90e124d23e59bea1e1a7005a96e27c9bcadedf7775f7190600090a35050565b6001546001600160a01b031633146103735760405162461bcd60e51b815260040161024790610ad0565b61037b6105ff565b60005b81518110156103be576103ac82828151811061039c5761039c610b1e565b6020026020010151600019610645565b806103b681610b34565b91505061037e565b5050565b60005461010090046001600160a01b031633146104395760405162461bcd60e51b815260206004820152602f60248201527f4275726e5661756c743a204f6e6c7920666163746f72792063616e2063616c6c60448201526e103a3434b990333ab731ba34b7b71760891b6064820152608401610247565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146104855760405162461bcd60e51b815260040161024790610ad0565b61048d6105ff565b80518251146105125760405162461bcd60e51b815260206004820152604560248201527f4275726e5661756c743a3a77697468647261773a20546f6b656e7320616e642060448201527f616d6f756e747320617272617973206d757374206861766520657175616c206c6064820152640cadccee8d60db1b608482015260a401610247565b60005b825181101561056c5761055a83828151811061053357610533610b1e565b602002602001015183838151811061054d5761054d610b1e565b6020026020010151610645565b8061056481610b34565b915050610515565b505050565b6001546001600160a01b0316331461059b5760405162461bcd60e51b815260040161024790610ad0565b6105a36105ff565b6103be8282610645565b6105b561084a565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60005460ff16156102585760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610247565b6001600160a01b038216156000816106d3576040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561069657600080fd5b505afa1580156106aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ce9190610b5d565b6106d5565b475b90508083116106e457826106e6565b805b9250811561072e576001546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015610728573d6000803e3d6000fd5b506107b6565b60015460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529085169063a9059cbb90604401602060405180830381600087803b15801561077c57600080fd5b505af1158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b49190610b76565b505b600154604080513081526001600160a01b039283166020820152908101859052908516907fc4298a5beffbb92832adef4bde23a2148eea5117fee88fd06e963ddcb4a523f49060600160405180910390a250505050565b6108156105ff565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586105e23390565b60005460ff166102585760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610247565b80356001600160a01b03811681146108aa57600080fd5b919050565b6000602082840312156108c157600080fd5b6108ca82610893565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610910576109106108d1565b604052919050565b600067ffffffffffffffff821115610932576109326108d1565b5060051b60200190565b600082601f83011261094d57600080fd5b8135602061096261095d83610918565b6108e7565b82815260059290921b8401810191818101908684111561098157600080fd5b8286015b848110156109a35761099681610893565b8352918301918301610985565b509695505050505050565b6000602082840312156109c057600080fd5b813567ffffffffffffffff8111156109d757600080fd5b6109e38482850161093c565b949350505050565b600080604083850312156109fe57600080fd5b823567ffffffffffffffff80821115610a1657600080fd5b610a228683870161093c565b9350602091508185013581811115610a3957600080fd5b85019050601f81018613610a4c57600080fd5b8035610a5a61095d82610918565b81815260059190911b82018301908381019088831115610a7957600080fd5b928401925b82841015610a9757833582529284019290840190610a7e565b80955050505050509250929050565b60008060408385031215610ab957600080fd5b610ac283610893565b946020939093013593505050565b6020808252602e908201527f4275726e5661756c743a204f6e6c79206275726e65722063616e2063616c6c2060408201526d3a3434b990333ab731ba34b7b71760911b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610b5657634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610b6f57600080fd5b5051919050565b600060208284031215610b8857600080fd5b815180151581146108ca57600080fdfea2646970667358221220dba39c5699ad0d7a81f1a501b3f6762adc2a781d95b412c0ab492596346d4d7c64736f6c63430008090033