0x60806040526001805534801561001457600080fd5b5061001e33610023565b61007e565b600080546001600160a01b038381166201000081810262010000600160b01b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b610f6f8061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80639251c59811610076578063a224cee71161005b578063a224cee714610143578063e891e9d114610156578063f2fde38b1461016957600080fd5b80639251c5981461010757806398a5a0fc1461011a57600080fd5b8063715018a6146100a85780638284511b146100b257806388951352146100c55780638da5cb5b146100d8575b600080fd5b6100b061017c565b005b6100b06100c0366004610d46565b610190565b6100b06100d3366004610dcb565b610275565b6000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b6100b0610115366004610e0d565b6103d3565b6100eb610128366004610e0d565b6002602052600090815260409020546001600160a01b031681565b6100b0610151366004610dcb565b61041f565b6100b0610164366004610e0d565b61063e565b6100b0610177366004610e0d565b61074c565b6101846107dc565b61018e600061083d565b565b6101986107dc565b6001600160a01b0382811660009081526002602052604090205416156101f2576040517f0bc320f5000000000000000000000000000000000000000000000000000000008152600760048201526024015b60405180910390fd5b6040516370a0823160e01b81523060048201526102719082906001600160a01b038516906370a0823190602401602060405180830381865afa15801561023c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102609190610e31565b6001600160a01b03851691906108ae565b5050565b60005b818110156103ce57600083838381811061029457610294610e4a565b90506020020160208101906102a99190610e0d565b6001600160a01b0380821660009081526002602052604090205491925016806102d35750506103be565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561031a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033e9190610e31565b905080156103ba576040517f37df00c9000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b038316906337df00c990602401600060405180830381600087803b1580156103a157600080fd5b505af11580156103b5573d6000803e3d6000fd5b505050505b5050505b6103c781610e60565b9050610278565b505050565b6001600160a01b03808216600090815260026020526040902054168015610271576104096001600160a01b038316826000610957565b6102716001600160a01b03831682600019610957565b600054610100900460ff161580801561043f5750600054600160ff909116105b806104595750303b158015610459575060005460ff166001145b6104cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101e9565b6000805460ff1916600117905580156104ee576000805461ff0019166101001790555b6104f760018055565b6105003361083d565b60005b828110156105f357600084848381811061051f5761051f610e4a565b90506020020160208101906105349190610e0d565b90506000816001600160a01b031663038ad0f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059a9190610e87565b6001600160a01b038181166000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff191691851691909117905590506105e0816103d3565b5050806105ec90610e60565b9050610503565b5080156103ce576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6106466107dc565b6000816001600160a01b031663038ad0f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106aa9190610e87565b6001600160a01b038082166000908152600260205260409020549192501680156106e3576106e36001600160a01b038316826000610957565b6001600160a01b03828116600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169488169485179055517f273093ae8b7941efbc801fea814107ccc34fb335dbd5b7d0ec83b6b172d1487e9190a36103ce826103d3565b6107546107dc565b6001600160a01b0381166107d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101e9565b6107d98161083d565b50565b6000546001600160a01b036201000090910416331461018e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101e9565b600080546001600160a01b03838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6040516001600160a01b0383166024820152604481018290526103ce9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610aa5565b8015806109ea57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156109c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e89190610e31565b155b610a5c5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016101e9565b6040516001600160a01b0383166024820152604481018290526103ce9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016108f3565b6000610afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610b8a9092919063ffffffff16565b8051909150156103ce5780806020019051810190610b189190610ea4565b6103ce5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016101e9565b6060610b998484600085610ba1565b949350505050565b606082471015610c195760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101e9565b600080866001600160a01b03168587604051610c359190610eea565b60006040518083038185875af1925050503d8060008114610c72576040519150601f19603f3d011682016040523d82523d6000602084013e610c77565b606091505b5091509150610c8887838387610c93565b979650505050505050565b60608315610d02578251600003610cfb576001600160a01b0385163b610cfb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101e9565b5081610b99565b610b998383815115610d175781518083602001fd5b8060405162461bcd60e51b81526004016101e99190610f06565b6001600160a01b03811681146107d957600080fd5b60008060408385031215610d5957600080fd5b8235610d6481610d31565b91506020830135610d7481610d31565b809150509250929050565b60008083601f840112610d9157600080fd5b50813567ffffffffffffffff811115610da957600080fd5b6020830191508360208260051b8501011115610dc457600080fd5b9250929050565b60008060208385031215610dde57600080fd5b823567ffffffffffffffff811115610df557600080fd5b610e0185828601610d7f565b90969095509350505050565b600060208284031215610e1f57600080fd5b8135610e2a81610d31565b9392505050565b600060208284031215610e4357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610e8057634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610e9957600080fd5b8151610e2a81610d31565b600060208284031215610eb657600080fd5b81518015158114610e2a57600080fd5b60005b83811015610ee1578181015183820152602001610ec9565b50506000910152565b60008251610efc818460208701610ec6565b9190910192915050565b6020815260008251806020840152610f25816040850160208701610ec6565b601f01601f1916919091016040019291505056fea26469706673582212203b530cb7f7c1405c74f8d57865dd280f9689b7d2efb8f63ee1a57d17c9666a7264736f6c63430008110033