0x608060405234801561001057600080fd5b50604051620014df380380620014df833981016040819052610031916100de565b61003a33610072565b600180546001600160a01b039485166001600160a01b031991821617909155600380549390941692169190911790915560025561011a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100d957600080fd5b919050565b6000806000606084860312156100f357600080fd5b6100fc846100c2565b925061010a602085016100c2565b9150604084015190509250925092565b6113b5806200012a6000396000f3fe6080604052600436106101145760003560e01c806362432b58116100a05780638da5cb5b116100645780638da5cb5b146102fe5780639ba5c1e71461031c578063bb3e14271461033c578063f2fde38b14610385578063fe5c873a146103a557600080fd5b806362432b58146102815780636e83116714610294578063715018a6146102b45780637362377b146102c95780637745710c146102de57600080fd5b80632bfe75b0116100e75780632bfe75b0146101c95780633011e16a146101e95780633ce5e9c21461020957806343eaf7591461024157806349df728c1461026157600080fd5b806308a2a67014610119578063150b7a021461013b5780632126ce851461018557806321797329146101b3575b600080fd5b34801561012557600080fd5b506101396101343660046110b0565b6103c5565b005b34801561014757600080fd5b506101676101563660046110cb565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b34801561019157600080fd5b506101a56101a03660046110b0565b61041a565b60405190815260200161017c565b3480156101bf57600080fd5b506101a560025481565b3480156101d557600080fd5b506101396101e4366004611166565b6104f2565b3480156101f557600080fd5b5061013961020436600461117f565b610521565b34801561021557600080fd5b50600454610229906001600160a01b031681565b6040516001600160a01b03909116815260200161017c565b34801561024d57600080fd5b50600354610229906001600160a01b031681565b34801561026d57600080fd5b5061013961027c3660046110b0565b610585565b61013961028f3660046111b2565b610694565b3480156102a057600080fd5b50600154610229906001600160a01b031681565b3480156102c057600080fd5b50610139610916565b3480156102d557600080fd5b5061013961094c565b3480156102ea57600080fd5b506101a56102f93660046111b2565b6109a4565b34801561030a57600080fd5b506000546001600160a01b0316610229565b34801561032857600080fd5b506101a5610337366004611166565b6109e7565b34801561034857600080fd5b506103706103573660046110b0565b6005602052600090815260409020805460019091015482565b6040805192835260208301919091520161017c565b34801561039157600080fd5b506101396103a03660046110b0565b6109f2565b3480156103b157600080fd5b506101396103c0366004611166565b610a8d565b6000546001600160a01b031633146103f85760405162461bcd60e51b81526004016103ef906111de565b60405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6004546000906001600160a01b03166104705760405162461bcd60e51b81526020600482015260186024820152775768697465206c697374206973204e4f542061637469766560401b60448201526064016103ef565b600480546003546040516394c1f07d60e01b81526001600160a01b038681169482019490945290831660248201529116906394c1f07d906044015b602060405180830381865afa1580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611213565b92915050565b6000546001600160a01b0316331461051c5760405162461bcd60e51b81526004016103ef906111de565b600255565b6000546001600160a01b0316331461054b5760405162461bcd60e51b81526004016103ef906111de565b60408051808201825292835260208084019283526001600160a01b0390941660009081526005909452909220905181559051600190910155565b6000546001600160a01b031633146105af5760405162461bcd60e51b81526004016103ef906111de565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156105fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106219190611213565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561066c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610690919061122c565b5050565b6002544210156106e65760405162461bcd60e51b815260206004820152601a60248201527f506c65617365207761697420666f72207374617274206461746500000000000060448201526064016103ef565b6001600160a01b03811660009081526005602052604090205461074b5760405162461bcd60e51b815260206004820152601860248201527f43616e742070617920776974682074686973204552433230000000000000000060448201526064016103ef565b600061075783836109a4565b90506001600160a01b038216156107c05734156107a65760405162461bcd60e51b815260206004820152600d60248201526c2737903732b2b21032ba3432b960991b60448201526064016103ef565b6107bb6001600160a01b038316333084610cd6565b61085c565b803410156108105760405162461bcd60e51b815260206004820152601f60248201527f526563656976656420616d6f756e74206c657373207468656e2070726963650060448201526064016103ef565b600061081c8234611264565b111561085c5733806108fc6108318434611264565b6040518115909202916000818181858888f19350505050158015610859573d6000803e3d6000fd5b50505b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd906108909030903390889060040161127b565b600060405180830381600087803b1580156108aa57600080fd5b505af11580156108be573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905242818301526060810187905290517e92107528e425098e5563cf2088d5e81401f7665a9becd4f7eba3e33000772e9350908190036080019150a1505050565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016103ef906111de565b61094a6000610d34565b565b6000546001600160a01b031633146109765760405162461bcd60e51b81526004016103ef906111de565b604051339081904780156108fc02916000818181858888f19350505050158015610690573d6000803e3d6000fd5b6001600160a01b0381166000908152600560205260408120600181015490546109cc85610d84565b6109d6919061129f565b6109e091906112be565b9392505050565b60006104ec82610d84565b6000546001600160a01b03163314610a1c5760405162461bcd60e51b81526004016103ef906111de565b6001600160a01b038116610a815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ef565b610a8a81610d34565b50565b6004546001600160a01b0316610ae05760405162461bcd60e51b81526020600482015260186024820152775768697465206c697374206973204e4f542061637469766560401b60448201526064016103ef565b6000610aeb82610d84565b600480546003546040516394c1f07d60e01b815233938101939093526001600160a01b039081166024840152929350839216906394c1f07d90604401602060405180830381865afa158015610b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190611213565b1015610bab5760405162461bcd60e51b81526020600482015260126024820152712a37b7903637bb9030b63637b1b0ba34b7b760711b60448201526064016103ef565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610bdf9030903390879060040161127b565b600060405180830381600087803b158015610bf957600080fd5b505af1158015610c0d573d6000803e3d6000fd5b505060048054600354604051633b8b8f4d60e01b81526001600160a01b039283169550633b8b8f4d9450610c499333939092169187910161127b565b6020604051808303816000875af1158015610c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8c919061122c565b50604080516000808252602082015242818301526060810184905290517e92107528e425098e5563cf2088d5e81401f7665a9becd4f7eba3e33000772e9181900360800190a15050565b610d2e846323b872dd60e01b858585604051602401610cf79392919061127b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610e4a565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6003546000906001600160a01b0316610e0a5760015460405163d10424c760e01b8152600481018490526001600160a01b039091169063d10424c7906024016040805180830381865afa158015610ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0391906112e0565b5092915050565b600154600354604051632a564b8160e11b8152600481018590526001600160a01b0391821660248201529116906354ac9702906044016104ab565b919050565b6000610e9f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610f219092919063ffffffff16565b805190915015610f1c5780806020019051810190610ebd919061122c565b610f1c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103ef565b505050565b6060610f308484600085610f38565b949350505050565b606082471015610f995760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016103ef565b843b610fe75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ef565b600080866001600160a01b031685876040516110039190611330565b60006040518083038185875af1925050503d8060008114611040576040519150601f19603f3d011682016040523d82523d6000602084013e611045565b606091505b5091509150611055828286611060565b979650505050505050565b6060831561106f5750816109e0565b82511561107f5782518084602001fd5b8160405162461bcd60e51b81526004016103ef919061134c565b80356001600160a01b0381168114610e4557600080fd5b6000602082840312156110c257600080fd5b6109e082611099565b6000806000806000608086880312156110e357600080fd5b6110ec86611099565b94506110fa60208701611099565b935060408601359250606086013567ffffffffffffffff8082111561111e57600080fd5b818801915088601f83011261113257600080fd5b81358181111561114157600080fd5b89602082850101111561115357600080fd5b9699959850939650602001949392505050565b60006020828403121561117857600080fd5b5035919050565b60008060006060848603121561119457600080fd5b61119d84611099565b95602085013595506040909401359392505050565b600080604083850312156111c557600080fd5b823591506111d560208401611099565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561122557600080fd5b5051919050565b60006020828403121561123e57600080fd5b815180151581146109e057600080fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156112765761127661124e565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008160001904831182151516156112b9576112b961124e565b500290565b6000826112db57634e487b7160e01b600052601260045260246000fd5b500490565b600080604083850312156112f357600080fd5b505080516020909101519092909150565b60005b8381101561131f578181015183820152602001611307565b83811115610d2e5750506000910152565b60008251611342818460208701611304565b9190910192915050565b602081526000825180602084015261136b816040850160208701611304565b601f01601f1916919091016040019291505056fea2646970667358221220875d3aa942e1fe32eda357fd43edafa9d3093b72fcc6da17bde86c5c64cf9fee64736f6c634300080b0033000000000000000000000000765886a9f388ca58092bba5b6191b1e57e0950bf0000000000000000000000007728cd70b3dd86210e2bd321437f448231b817330000000000000000000000000000000000000000000000000000000000000000