0x6080604052600436106104095760003560e01c8063790ca41311610213578063b83f82bf11610123578063dd62ed3e116100ab578063f27fd2541161007a578063f27fd25414610c9b578063f2fde38b14610cbb578063f3f647fc14610cdb578063f79d86ec14610d0b578063ffb54a9914610d2b57600080fd5b8063dd62ed3e14610c0a578063e2f4560514610c50578063e7841ec014610c66578063e98030c714610c7b57600080fd5b8063c492f046116100f2578063c492f04614610b7f578063c9567bf914610b9f578063d2b8c70514610bb4578063d9e3c22b14610bca578063dafd1ac714610bea57600080fd5b8063b83f82bf14610ae7578063bf167a8314610b07578063c024666814610b3f578063c2892ae314610b5f57600080fd5b80639c1b8af5116101a6578063a50ab07a11610175578063a50ab07a14610a37578063a8b9d24014610a57578063a9059cbb14610a77578063ad56c13c14610a97578063b62496f514610ab757600080fd5b80639c1b8af5146109cc5780639d55d16f146109e2578063a26579ad14610a02578063a457c2d714610a1757600080fd5b80638da5cb5b116101e25780638da5cb5b14610959578063916ffc071461097757806395d89b41146109975780639a7a23d6146109ac57600080fd5b8063790ca413146108a95780637bae416f146108bf578063871c128d1461091957806388bdd9be1461093957600080fd5b8063395093511161031957806364b0f653116102a1578063700bb19111610270578063700bb191146107fe57806370a082311461081e578063715018a614610854578063733ac59214610869578063786c8d111461088957600080fd5b806364b0f6531461079357806365b8dbc0146107a85780636843cd84146107c85780636f8702ca146107e857600080fd5b80634d831b1f116102e85780634d831b1f146106e25780634e71d92d146106f85780634fbee1931461070d5780635b6612ad1461074657806363c6ad761461077357600080fd5b806339509351146106535780633b2d081c146106735780633bbac5791461068957806349bd5a5e146106c257600080fd5b806323b872dd1161039c5780632ba86bf21161036b5780632ba86bf2146105c15780632c1f5216146105e257806330bb4cff14610602578063313ce5671461061757806337f7c6f91461063357600080fd5b806323b872dd1461053957806324a887601461055957806327c8f835146105785780632a8407b4146105ac57600080fd5b80631a1c0169116103d85780631a1c0169146104c75780631a2a1525146104e15780631df4ccfc146105035780631e293c101461051957600080fd5b806306fdde0314610415578063095ea7b3146104405780631694505e1461047057806318160ddd146104a857600080fd5b3661041057005b600080fd5b34801561042157600080fd5b5061042a610d45565b6040516104379190614188565b60405180910390f35b34801561044c57600080fd5b5061046061045b366004613f52565b610dd7565b6040519015158152602001610437565b34801561047c57600080fd5b50600654610490906001600160a01b031681565b6040516001600160a01b039091168152602001610437565b3480156104b457600080fd5b506002545b604051908152602001610437565b3480156104d357600080fd5b50600f546104609060ff1681565b3480156104ed57600080fd5b506105016104fc366004613ffe565b610dee565b005b34801561050f57600080fd5b506104b960135481565b34801561052557600080fd5b50610501610534366004614036565b610ed5565b34801561054557600080fd5b50610460610554366004613e7c565b610f04565b34801561056557600080fd5b50600f5461046090610100900460ff1681565b34801561058457600080fd5b506104907f000000000000000000000000000000000000000000000000000000000000dead81565b3480156105b857600080fd5b506104b9610f6d565b3480156105cd57600080fd5b5060075461046090600160b01b900460ff1681565b3480156105ee57600080fd5b50600854610490906001600160a01b031681565b34801561060e57600080fd5b506104b9610fef565b34801561062357600080fd5b5060405160128152602001610437565b34801561063f57600080fd5b5061050161064e366004613ebc565b611034565b34801561065f57600080fd5b5061046061066e366004613f52565b61111e565b34801561067f57600080fd5b506104b960105481565b34801561069557600080fd5b506104606106a4366004613e0c565b6001600160a01b03166000908152600d602052604090205460ff1690565b3480156106ce57600080fd5b50600754610490906001600160a01b031681565b3480156106ee57600080fd5b506104b960125481565b34801561070457600080fd5b50610501611154565b34801561071957600080fd5b50610460610728366004613e0c565b6001600160a01b031660009081526018602052604090205460ff1690565b34801561075257600080fd5b506104b9610761366004613e0c565b601b6020526000908152604090205481565b34801561077f57600080fd5b5061050161078e366004613e0c565b6111db565b34801561079f57600080fd5b506104b961152e565b3480156107b457600080fd5b506105016107c3366004613e0c565b611573565b3480156107d457600080fd5b506104b96107e3366004613e0c565b6116bc565b3480156107f457600080fd5b506104b9600b5481565b34801561080a57600080fd5b50610501610819366004614036565b61173b565b34801561082a57600080fd5b506104b9610839366004613e0c565b6001600160a01b031660009081526020819052604090205490565b34801561086057600080fd5b5061050161181c565b34801561087557600080fd5b50610501610884366004613ffe565b611890565b34801561089557600080fd5b506105016108a4366004613e0c565b6118d6565b3480156108b557600080fd5b506104b960165481565b3480156108cb57600080fd5b506108d4611a3c565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610437565b34801561092557600080fd5b50610501610934366004614036565b611ae7565b34801561094557600080fd5b50610501610954366004613e0c565b611bb2565b34801561096557600080fd5b506005546001600160a01b0316610490565b34801561098357600080fd5b50600f546104609062010000900460ff1681565b3480156109a357600080fd5b5061042a611fa5565b3480156109b857600080fd5b506105016109c7366004613ebc565b611fb4565b3480156109d857600080fd5b506104b960145481565b3480156109ee57600080fd5b506105016109fd366004614036565b612081565b348015610a0e57600080fd5b506104b96120dc565b348015610a2357600080fd5b50610460610a32366004613f52565b612121565b348015610a4357600080fd5b50610501610a52366004613ffe565b612170565b348015610a6357600080fd5b506104b9610a72366004613e0c565b6121ad565b348015610a8357600080fd5b50610460610a92366004613f52565b6121e0565b348015610aa357600080fd5b506108d4610ab2366004613e0c565b6121ed565b348015610ac357600080fd5b50610460610ad2366004613e0c565b60196020526000908152604090205460ff1681565b348015610af357600080fd5b50610501610b02366004614036565b612297565b348015610b1357600080fd5b506104b9610b22366004614066565b601a60209081526000928352604080842090915290825290205481565b348015610b4b57600080fd5b50610501610b5a366004613ebc565b61233c565b348015610b6b57600080fd5b50610501610b7a366004613ffe565b61244e565b348015610b8b57600080fd5b50610501610b9a366004613f7d565b612492565b348015610bab57600080fd5b5061050161257c565b348015610bc057600080fd5b506104b960115481565b348015610bd657600080fd5b50610501610be5366004613e0c565b6125b9565b348015610bf657600080fd5b50600954610490906001600160a01b031681565b348015610c1657600080fd5b506104b9610c25366004613e44565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610c5c57600080fd5b506104b9600c5481565b348015610c7257600080fd5b506104b9612605565b348015610c8757600080fd5b50610501610c96366004614036565b61264a565b348015610ca757600080fd5b506108d4610cb6366004614036565b6126a5565b348015610cc757600080fd5b50610501610cd6366004613e0c565b6126e7565b348015610ce757600080fd5b50610460610cf6366004613e0c565b601c6020526000908152604090205460ff1681565b348015610d1757600080fd5b50610501610d26366004613e0c565b6127d2565b348015610d3757600080fd5b506015546104609060ff1681565b606060038054610d5490614383565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8090614383565b8015610dcd5780601f10610da257610100808354040283529160200191610dcd565b820191906000526020600020905b815481529060010190602001808311610db057829003601f168201915b5050505050905090565b6000610de4338484612a1a565b5060015b92915050565b6005546001600160a01b03163314610e215760405162461bcd60e51b8152600401610e189061421e565b60405180910390fd5b60075460ff600160b01b9091041615158115151415610eb75760405162461bcd60e51b815260206004820152604660248201527f56657273653a204d6178207472616e73616374696f6e206c696d697420656e6160448201527f626c656420697320616c7265616479207468652076616c7565206f662027656e60648201526561626c65642760d01b608482015260a401610e18565b60078054911515600160b01b0260ff60b01b19909216919091179055565b6005546001600160a01b03163314610eff5760405162461bcd60e51b8152600401610e189061421e565b600a55565b6000610f11848484612b3f565b610f638433610f5e85604051806060016040528060288152602001614439602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906135a1565b612a1a565b5060019392505050565b6008546040805163079cda8160e51b815290516000926001600160a01b03169163f39b5020916004808301926020929190829003018186803b158015610fb257600080fd5b505afa158015610fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea919061404e565b905090565b600854604080516342d359d760e11b815290516000926001600160a01b0316916385a6b3ae916004808301926020929190829003018186803b158015610fb257600080fd5b6005546001600160a01b0316331461105e5760405162461bcd60e51b8152600401610e189061421e565b6001600160a01b0382166000908152601c602052604090205460ff16151581151514156110f35760405162461bcd60e51b815260206004820152603f60248201527f56657273653a204461696c79206c696d6974206578636c7573696f6e2069732060448201527f616c7265616479207468652076616c7565206f6620276578636c7564656427006064820152608401610e18565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610de4918590610f5e90866129b4565b60085460405163bc4c4b3760e01b8152336004820152600060248201526001600160a01b039091169063bc4c4b3790604401602060405180830381600087803b1580156111a057600080fd5b505af11580156111b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d8919061401a565b50565b6005546001600160a01b031633146112055760405162461bcd60e51b8152600401610e189061421e565b6008546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a082319060240160206040518083038186803b15801561124b57600080fd5b505afa15801561125f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611283919061404e565b90506017548111156113125760405162461bcd60e51b815260206004820152604c60248201527f56657273653a204163636f756e742062616c616e6365206d757374206265206c60448201527f657373207468656e206d696e696d756d20746f6b656e2062616c616e6365206660648201526b6f72206469766964656e647360a01b608482015260a401610e18565b6001600160a01b0382166000908152601b6020526040902054626ebe0061133942836135db565b116113ac5760405162461bcd60e51b815260206004820152603c60248201527f56657273653a204163636f756e74206d7573742068617665206265656e20696e60448201527f61637469766520666f72206174206c65617374203132207765656b73000000006064820152608401610e18565b60085460405163bc4c4b3760e01b81526001600160a01b038581166004830152600060248301529091169063bc4c4b3790604401602060405180830381600087803b1580156113fa57600080fd5b505af115801561140e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611432919061401a565b5060085460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114611484576040519150601f19603f3d011682016040523d82523d6000602084013e611489565b606091505b505090508015611527576040518281527fb0cc2628d6d644cf6be9d8110e142297ac910d6d8026d795a99f272fd9ad60b19060200160405180910390a16008546040516338c110ef60e21b81526001600160a01b038781166004830152600060248301529091169063e30443bc90604401600060405180830381600087803b15801561151457600080fd5b505af1925050508015611525575060015b505b5050505050565b600854604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde916004808301926020929190829003018186803b158015610fb257600080fd5b6005546001600160a01b0316331461159d5760405162461bcd60e51b8152600401610e189061421e565b6006546001600160a01b038281169116141561160e5760405162461bcd60e51b815260206004820152602a60248201527f56657273653a2054686520726f7574657220616c7265616479206861732074686044820152696174206164647265737360b01b6064820152608401610e18565b6006546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600680546001600160a01b0319166001600160a01b0383811691821790925560085460405163031e79db60e41b81526004810192909252909116906331e79db0906024015b600060405180830381600087803b1580156116a857600080fd5b505af1158015611527573d6000803e3d6000fd5b6008546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a08231906024015b60206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de8919061404e565b6008546040516001624d3b8760e01b0319815260048101839052600091829182916001600160a01b03169063ffb2c47990602401606060405180830381600087803b15801561178957600080fd5b505af115801561179d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c1919061408a565b604080518481526020810184905290810182905260608101889052929550909350915032906000907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a350505050565b6005546001600160a01b031633146118465760405162461bcd60e51b8152600401610e189061421e565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146118ba5760405162461bcd60e51b8152600401610e189061421e565b600f8054911515620100000262ff000019909216919091179055565b6005546001600160a01b031633146119005760405162461bcd60e51b8152600401610e189061421e565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b038216141561196d5760405162461bcd60e51b815260206004820152601b60248201527f57652063616e6e6f7420626c61636b6c69737420556e697377617000000000006044820152606401610e18565b6001600160a01b0381166000908152600d602052604090205460ff16156119d65760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c697374656400006044820152606401610e18565b6001600160a01b03166000818152600d60205260408120805460ff19166001908117909155600e805491820181559091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319169091179055565b600080600080600080600080600860009054906101000a90046001600160a01b03166001600160a01b0316637bae416f6040518163ffffffff1660e01b81526004016101006040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acf9190613ee9565b969f959e50939c50919a509850965094509092509050565b6005546001600160a01b03163314611b115760405162461bcd60e51b8152600401610e189061421e565b601454811415611b7f5760405162461bcd60e51b815260206004820152603360248201527f56657273653a2043616e6e6f742075706461746520676173466f7250726f63656044820152727373696e6720746f2073616d652076616c756560681b6064820152608401610e18565b60145460405182907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db790600090a3601455565b6005546001600160a01b03163314611bdc5760405162461bcd60e51b8152600401610e189061421e565b6008546001600160a01b0382811691161415611c575760405162461bcd60e51b815260206004820152603460248201527f56657273653a20546865206469766964656e6420747261636b657220616c7265604482015273616479206861732074686174206164647265737360601b6064820152608401610e18565b6000819050306001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9f57600080fd5b505afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190613e28565b6001600160a01b031614611d655760405162461bcd60e51b815260206004820152604960248201527f56657273653a20546865206e6577206469766964656e6420747261636b65722060448201527f6d757374206265206f776e65642062792074686520566572736520746f6b656e6064820152680818dbdb9d1c9858dd60ba1b608482015260a401610e18565b6008546040516001600160a01b03918216918416907f90c7d74461c613da5efa97d90740869367d74ab3aa5837aa4ae9a975f954b7a890600090a3600880546001600160a01b0319166001600160a01b03831690811790915560405163031e79db60e41b8152600481018290526331e79db090602401600060405180830381600087803b158015611df557600080fd5b505af1158015611e09573d6000803e3d6000fd5b505060085460405163031e79db60e41b81523060048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b158015611e5257600080fd5b505af1158015611e66573d6000803e3d6000fd5b50506008546001600160a01b031691506331e79db09050611e8f6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015611ed057600080fd5b505af1158015611ee4573d6000803e3d6000fd5b505060085460065460405163031e79db60e41b81526001600160a01b039182166004820152911692506331e79db09150602401600060405180830381600087803b158015611f3157600080fd5b505af1158015611f45573d6000803e3d6000fd5b505060085460405163031e79db60e41b815261dead60048201526001600160a01b0390911692506331e79db091506024015b600060405180830381600087803b158015611f9157600080fd5b505af1158015611525573d6000803e3d6000fd5b606060048054610d5490614383565b6005546001600160a01b03163314611fde5760405162461bcd60e51b8152600401610e189061421e565b6007546001600160a01b03838116911614156120735760405162461bcd60e51b815260206004820152604860248201527f56657273653a2054686520556e695377617020706169722063616e6e6f74206260448201527f652072656d6f7665642066726f6d206175746f6d617465644d61726b65744d616064820152676b6572506169727360c01b608482015260a401610e18565b61207d828261361d565b5050565b6005546001600160a01b031633146120ab5760405162461bcd60e51b8152600401610e189061421e565b600854604051639d55d16f60e01b8152600481018390526001600160a01b0390911690639d55d16f9060240161168e565b60085460408051631bc9e27b60e21b815290516000926001600160a01b031691636f2789ec916004808301926020929190829003018186803b158015610fb257600080fd5b6000610de43384610f5e85604051806060016040528060258152602001614461602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906135a1565b6005546001600160a01b0316331461219a5760405162461bcd60e51b8152600401610e189061421e565b600f805460ff1916911515919091179055565b6008546040516302a2e74960e61b81526001600160a01b038381166004830152600092169063a8b9d240906024016116eb565b6000610de4338484612b3f565b60085460405163fbcbc0f160e01b81526001600160a01b038381166004830152600092839283928392839283928392839291169063fbcbc0f1906024015b6101006040518083038186803b15801561224457600080fd5b505afa158015612258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227c9190613ee9565b97509750975097509750975097509750919395975091939597565b6005546001600160a01b031633146122c15760405162461bcd60e51b8152600401610e189061421e565b68b02ecf74c31388000081116123375760405162461bcd60e51b815260206004820152603560248201527f56657273653a206d61784461696c7953656c6c416d6f756e742073686f756c6460448201527402062652067726561746572207468616e203332353605c1b6064820152608401610e18565b600b55565b6005546001600160a01b031633146123665760405162461bcd60e51b8152600401610e189061421e565b6001600160a01b03821660009081526018602052604090205460ff16151581151514156123ef5760405162461bcd60e51b815260206004820152603160248201527f56657273653a204163636f756e7420697320616c7265616479207468652076616044820152706c7565206f6620276578636c756465642760781b6064820152608401610e18565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146124785760405162461bcd60e51b8152600401610e189061421e565b600f80549115156101000261ff0019909216919091179055565b6005546001600160a01b031633146124bc5760405162461bcd60e51b8152600401610e189061421e565b60005b8281101561253b5781601860008686858181106124ec57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906125019190613e0c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580612533816143be565b9150506124bf565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b3583838360405161256f939291906140fa565b60405180910390a1505050565b6005546001600160a01b031633146125a65760405162461bcd60e51b8152600401610e189061421e565b6015805460ff1916600117905542601655565b6005546001600160a01b031633146125e35760405162461bcd60e51b8152600401610e189061421e565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6008546040805163039e107b60e61b815290516000926001600160a01b03169163e7841ec0916004808301926020929190829003018186803b158015610fb257600080fd5b6005546001600160a01b031633146126745760405162461bcd60e51b8152600401610e189061421e565b60085460405163e98030c760e01b8152600481018390526001600160a01b039091169063e98030c79060240161168e565b600854604051635183d6fd60e01b81526004810183905260009182918291829182918291829182916001600160a01b0390911690635183d6fd9060240161222b565b6005546001600160a01b031633146127115760405162461bcd60e51b8152600401610e189061421e565b6001600160a01b0381166127765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e18565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146127fc5760405162461bcd60e51b8152600401610e189061421e565b6001600160a01b0381166000908152600d602052604090205460ff166128645760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c69737465640000000000006044820152606401610e18565b60005b600e5481101561207d57816001600160a01b0316600e828154811061289c57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156129a257600e80546128c79060019061436c565b815481106128e557634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600e80546001600160a01b03909216918390811061291f57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600d90915260409020805460ff19169055600e80548061297c57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806129ac816143be565b915050612867565b6000806129c18385614315565b905083811015612a135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e18565b9392505050565b6001600160a01b038316612a7c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e18565b6001600160a01b038216612add5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e18565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316612b655760405162461bcd60e51b8152600401610e1890614294565b6001600160a01b038216612b8b5760405162461bcd60e51b8152600401610e18906141db565b60008111612bed5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610e18565b6005546001600160a01b03848116911614801590612c1957506005546001600160a01b03838116911614155b15612d0e57600754600160b01b900460ff1615612c9c57600a54811115612c9c5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152703930b739b0b1ba34b7b720b6b7bab73a1760791b6064820152608401610e18565b6001600160a01b0383166000908152600d602052604090205460ff1615612cd55760405162461bcd60e51b8152600401610e1890614253565b6001600160a01b0382166000908152600d602052604090205460ff1615612d0e5760405162461bcd60e51b8152600401610e1890614253565b6007546001600160a01b038481169116148015612d3957506006546001600160a01b03838116911614155b8015612d5e57506001600160a01b03821660009081526018602052604090205460ff16155b15612e255760155460ff16612db55760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610e18565b601654421415612e25576001600160a01b0382166000818152600d60205260408120805460ff19166001908117909155600e805491820181559091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b03191690911790555b30600090815260208190526040902054600c546007549082101590600160a01b900460ff16158015612e615750600754600160a81b900460ff16155b8015612e7a57506007546001600160a01b038681169116145b8015612e9457506006546001600160a01b03858116911614155b8015612eb957506001600160a01b03841660009081526018602052604090205460ff16155b15612f3f57600f5460ff1615612ed3576003601055612ed9565b60006010555b600f54610100900460ff1615612ef3576004601155612ef9565b60006011555b600f5462010000900460ff1615612f14576003601255612f1a565b60006012555b601254601154601054612f2d9190614315565b612f379190614315565b601355613175565b600754600160a01b900460ff16158015612f635750600754600160a81b900460ff16155b8015612f7c57506007546001600160a01b038581169116145b8015612f9657506006546001600160a01b03868116911614155b8015612fbb57506001600160a01b03841660009081526018602052604090205460ff16155b1561317557600b5461300084601a6000612fd361377b565b8152602080820192909252604090810160009081206001600160a01b038c168252909252902054906129b4565b111561308757600f5460ff161561301b576006601055613021565b60006010555b600f54610100900460ff161561303b576008601155613041565b60006011555b600f5462010000900460ff161561305c576006601255613062565b60006012555b6012546011546010546130759190614315565b61307f9190614315565b601355613104565b600f5460ff161561309c5760036010556130a2565b60006010555b600f54610100900460ff16156130bc5760046011556130c2565b60006011555b600f5462010000900460ff16156130dd5760036012556130e3565b60006012555b6012546011546010546130f69190614315565b6131009190614315565b6013555b61314183601a600061311461377b565b8152602080820192909252604090810160009081206001600160a01b038b168252909252902054906129b4565b601a600061314d61377b565b8152602080820192909252604090810160009081206001600160a01b038a1682529092529020555b80801561318c5750600754600160a01b900460ff16155b80156131a25750600754600160a81b900460ff16155b80156131c757506001600160a01b03851660009081526019602052604090205460ff16155b80156131ec57506001600160a01b03851660009081526018602052604090205460ff16155b801561321157506001600160a01b03841660009081526018602052604090205460ff16155b801561321f57506000601354115b1561324d576007805460ff60a01b1916600160a01b17905561323f61378a565b6007805460ff60a01b191690555b600754600090600160a01b900460ff161580156132745750600754600160a81b900460ff16155b6001600160a01b03871660009081526018602052604090205490915060ff16806132b657506001600160a01b03851660009081526018602052604090205460ff165b806132fe57506001600160a01b03861660009081526019602052604090205460ff161580156132fe57506001600160a01b03851660009081526019602052604090205460ff16155b15613307575060005b80801561331657506000601354115b1561335857600061333d60646133376013548861391590919063ffffffff16565b90613994565b905061334985826135db565b94506133568730836139d6565b505b6133638686866139d6565b6008546001600160a01b031663e30443bc87613394816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156133da57600080fd5b505af19250505080156133eb575060015b506008546001600160a01b031663e30443bc8661341d816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561346357600080fd5b505af1925050508015613474575060015b506001600160a01b038681166000908152601b602052604080822042908190559288168252902055600754600160a01b900460ff161580156134bd5750600f54610100900460ff165b15611525576014546008546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c47990602401606060405180830381600087803b15801561350e57600080fd5b505af192505050801561353e575060408051601f3d908101601f1916820190925261353b9181019061408a565b60015b61354757613598565b60408051848152602081018490529081018290526060810185905232906001907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a35050505b50505050505050565b600081848411156135c55760405162461bcd60e51b8152600401610e189190614188565b5060006135d2848661436c565b95945050505050565b6000612a1383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506135a1565b6001600160a01b03821660009081526019602052604090205460ff16151581151514156136b25760405162461bcd60e51b815260206004820152603f60248201527f56657273653a204175746f6d61746564206d61726b6574206d616b657220706160448201527f697220697320616c72656164792073657420746f20746861742076616c7565006064820152608401610e18565b6001600160a01b0382166000908152601960205260409020805460ff1916821580159190911790915561373f5760085460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b15801561372657600080fd5b505af115801561373a573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000610fea4262015180613994565b306000908152602081905260409020546137a381613adf565b600047905060006137c56013546133376012548561391590919063ffffffff16565b905060006137e46013546133376010548661391590919063ffffffff16565b600f5490915062010000900460ff1680156137ff5750600082115b15613840576009546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561383e573d6000803e3d6000fd5b505b600f5460ff1680156138525750600081115b156138605761386081613c2e565b600f544790610100900460ff1680156138795750600081115b15611527576008546040516000916001600160a01b03169083908381818185875af1925050503d80600081146138cb576040519150601f19603f3d011682016040523d82523d6000602084013e6138d0565b606091505b505090508015611525576040518281527fb0cc2628d6d644cf6be9d8110e142297ac910d6d8026d795a99f272fd9ad60b19060200160405180910390a1505050505050565b60008261392457506000610de8565b6000613930838561434d565b90508261393d858361432d565b14612a135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e18565b6000612a1383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613dde565b6001600160a01b0383166139fc5760405162461bcd60e51b8152600401610e1890614294565b6001600160a01b038216613a225760405162461bcd60e51b8152600401610e18906141db565b613a5f81604051806060016040528060268152602001614413602691396001600160a01b03861660009081526020819052604090205491906135a1565b6001600160a01b038085166000908152602081905260408082209390935590841681522054613a8e90826129b4565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101612b32565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613b2257634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015613b7657600080fd5b505afa158015613b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bae9190613e28565b81600181518110613bcf57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600654613bf59130911684612a1a565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f779085906000908690309042906004016142d9565b6040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ccb9190613e28565b81600081518110613cec57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505073da1e53e088023fe4d1dc5a418581748f52cbd1b881600181518110613d4257634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526006541663b6f9de95836000847f000000000000000000000000000000000000000000000000000000000000dead613d924261012c6129b4565b6040518663ffffffff1660e01b8152600401613db19493929190614153565b6000604051808303818588803b158015613dca57600080fd5b505af1158015613598573d6000803e3d6000fd5b60008183613dff5760405162461bcd60e51b8152600401610e189190614188565b5060006135d2848661432d565b600060208284031215613e1d578081fd5b8135612a13816143ef565b600060208284031215613e39578081fd5b8151612a13816143ef565b60008060408385031215613e56578081fd5b8235613e61816143ef565b91506020830135613e71816143ef565b809150509250929050565b600080600060608486031215613e90578081fd5b8335613e9b816143ef565b92506020840135613eab816143ef565b929592945050506040919091013590565b60008060408385031215613ece578182fd5b8235613ed9816143ef565b91506020830135613e7181614404565b600080600080600080600080610100898b031215613f05578384fd5b8851613f10816143ef565b809850506020890151965060408901519550606089015194506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b60008060408385031215613f64578182fd5b8235613f6f816143ef565b946020939093013593505050565b600080600060408486031215613f91578283fd5b833567ffffffffffffffff80821115613fa8578485fd5b818601915086601f830112613fbb578485fd5b813581811115613fc9578586fd5b8760208260051b8501011115613fdd578586fd5b60209283019550935050840135613ff381614404565b809150509250925092565b60006020828403121561400f578081fd5b8135612a1381614404565b60006020828403121561402b578081fd5b8151612a1381614404565b600060208284031215614047578081fd5b5035919050565b60006020828403121561405f578081fd5b5051919050565b60008060408385031215614078578182fd5b823591506020830135613e71816143ef565b60008060006060848603121561409e578081fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156140ef5781516001600160a01b0316875295820195908201906001016140ca565b509495945050505050565b6040808252810183905260008460608301825b8681101561413d578235614120816143ef565b6001600160a01b031682526020928301929091019060010161410d565b5080925050508215156020830152949350505050565b84815260806020820152600061416c60808301866140b7565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b818110156141b457858101830151858201604001528201614198565b818111156141c55783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f426f7473206e6f7420616c6c6f77656420686572652120506c617920666169726040820152601760f91b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b85815284602082015260a0604082015260006142f860a08301866140b7565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115614328576143286143d9565b500190565b60008261434857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615614367576143676143d9565b500290565b60008282101561437e5761437e6143d9565b500390565b600181811c9082168061439757607f821691505b602082108114156143b857634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156143d2576143d26143d9565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146111d857600080fd5b80151581146111d857600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122043c92184c88a7d816d0ad4030ff6ff2678e4ad15ea0c9e2357f247e6986f5ac964736f6c63430008040033
0x60a06040526007805460ff60b01b1916600160b01b1790556ddead000000000000000000000000608052600980546001600160a01b031916734cd913cd83d38f355fb375a2873fdf127e9b77db17905568b02ecf74c313880000600a818155600b91909155683635c9adc5dea00000600c55600f80546201010162ffffff19909116179055600360108190556004601155601255601355620249f06014556015805460ff19169055681b1ae4d6e2ef500000601755348015620000c157600080fd5b5060405180604001604052806005815260200164566572736560d81b81525060405180604001604052806005815260200164564552534560d81b81525081600390805190602001906200011692919062000a8f565b5080516200012c90600490602084019062000a8f565b5050506000620001416200067860201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040516200019d9062000b1e565b604051809103906000f080158015620001ba573d6000803e3d6000fd5b50600860006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023657600080fd5b505afa1580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000271919062000b43565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ba57600080fd5b505afa158015620002cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f5919062000b43565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200033e57600080fd5b505af115801562000353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000379919062000b43565b600680546001600160a01b038086166001600160a01b03199283161790925560078054928416929091169190911790559050620003b88160016200067c565b60085460405163031e79db60e41b81526001600160a01b0390911660048201819052906331e79db090602401600060405180830381600087803b158015620003ff57600080fd5b505af115801562000414573d6000803e3d6000fd5b505060085460405163031e79db60e41b81523060048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b1580156200045e57600080fd5b505af115801562000473573d6000803e3d6000fd5b50506008546001600160a01b031691506331e79db090506200049d6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620004df57600080fd5b505af1158015620004f4573d6000803e3d6000fd5b505060085460405163031e79db60e41b81526001600160a01b03868116600483015290911692506331e79db09150602401600060405180830381600087803b1580156200054057600080fd5b505af115801562000555573d6000803e3d6000fd5b505060085460405163031e79db60e41b815261dead60048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b158015620005a157600080fd5b505af1158015620005b6573d6000803e3d6000fd5b50505050620005cd306001620007e360201b60201c565b620005ec620005e46005546001600160a01b031690565b6001620007e3565b306000908152601c602081905260408220805460ff19166001908117909155916200061f6005546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620006706200065e6005546001600160a01b031690565b6a0422ca8b0a00a42500000062000929565b505062000bce565b3390565b6001600160a01b03821660009081526019602052604090205460ff1615158115151415620007175760405162461bcd60e51b815260206004820152603f60248201527f56657273653a204175746f6d61746564206d61726b6574206d616b657220706160448201527f697220697320616c72656164792073657420746f20746861742076616c75650060648201526084015b60405180910390fd5b6001600160a01b0382166000908152601960205260409020805460ff19168215801591909117909155620007a75760085460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b1580156200078d57600080fd5b505af1158015620007a2573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b031633146200083f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200070e565b6001600160a01b03821660009081526018602052604090205460ff1615158115151415620008ca5760405162461bcd60e51b815260206004820152603160248201527f56657273653a204163636f756e7420697320616c7265616479207468652076616044820152706c7565206f6620276578636c756465642760781b60648201526084016200070e565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620009815760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200070e565b6200099d8160025462000a2560201b620029b41790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620009d0918390620029b462000a25821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60008062000a34838562000b6c565b90508381101562000a885760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200070e565b9392505050565b82805462000a9d9062000b91565b90600052602060002090601f01602090048101928262000ac1576000855562000b0c565b82601f1062000adc57805160ff191683800117855562000b0c565b8280016001018555821562000b0c579182015b8281111562000b0c57825182559160200191906001019062000aef565b5062000b1a92915062000b2c565b5090565b6124f080620050af83390190565b5b8082111562000b1a576000815560010162000b2d565b60006020828403121562000b55578081fd5b81516001600160a01b038116811462000a88578182fd5b6000821982111562000b8c57634e487b7160e01b81526011600452602481fd5b500190565b600181811c9082168062000ba657607f821691505b6020821081141562000bc857634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c6144bb62000bf46000396000818161058a0152613d6701526144bb6000f3fe6080604052600436106104095760003560e01c8063790ca41311610213578063b83f82bf11610123578063dd62ed3e116100ab578063f27fd2541161007a578063f27fd25414610c9b578063f2fde38b14610cbb578063f3f647fc14610cdb578063f79d86ec14610d0b578063ffb54a9914610d2b57600080fd5b8063dd62ed3e14610c0a578063e2f4560514610c50578063e7841ec014610c66578063e98030c714610c7b57600080fd5b8063c492f046116100f2578063c492f04614610b7f578063c9567bf914610b9f578063d2b8c70514610bb4578063d9e3c22b14610bca578063dafd1ac714610bea57600080fd5b8063b83f82bf14610ae7578063bf167a8314610b07578063c024666814610b3f578063c2892ae314610b5f57600080fd5b80639c1b8af5116101a6578063a50ab07a11610175578063a50ab07a14610a37578063a8b9d24014610a57578063a9059cbb14610a77578063ad56c13c14610a97578063b62496f514610ab757600080fd5b80639c1b8af5146109cc5780639d55d16f146109e2578063a26579ad14610a02578063a457c2d714610a1757600080fd5b80638da5cb5b116101e25780638da5cb5b14610959578063916ffc071461097757806395d89b41146109975780639a7a23d6146109ac57600080fd5b8063790ca413146108a95780637bae416f146108bf578063871c128d1461091957806388bdd9be1461093957600080fd5b8063395093511161031957806364b0f653116102a1578063700bb19111610270578063700bb191146107fe57806370a082311461081e578063715018a614610854578063733ac59214610869578063786c8d111461088957600080fd5b806364b0f6531461079357806365b8dbc0146107a85780636843cd84146107c85780636f8702ca146107e857600080fd5b80634d831b1f116102e85780634d831b1f146106e25780634e71d92d146106f85780634fbee1931461070d5780635b6612ad1461074657806363c6ad761461077357600080fd5b806339509351146106535780633b2d081c146106735780633bbac5791461068957806349bd5a5e146106c257600080fd5b806323b872dd1161039c5780632ba86bf21161036b5780632ba86bf2146105c15780632c1f5216146105e257806330bb4cff14610602578063313ce5671461061757806337f7c6f91461063357600080fd5b806323b872dd1461053957806324a887601461055957806327c8f835146105785780632a8407b4146105ac57600080fd5b80631a1c0169116103d85780631a1c0169146104c75780631a2a1525146104e15780631df4ccfc146105035780631e293c101461051957600080fd5b806306fdde0314610415578063095ea7b3146104405780631694505e1461047057806318160ddd146104a857600080fd5b3661041057005b600080fd5b34801561042157600080fd5b5061042a610d45565b6040516104379190614188565b60405180910390f35b34801561044c57600080fd5b5061046061045b366004613f52565b610dd7565b6040519015158152602001610437565b34801561047c57600080fd5b50600654610490906001600160a01b031681565b6040516001600160a01b039091168152602001610437565b3480156104b457600080fd5b506002545b604051908152602001610437565b3480156104d357600080fd5b50600f546104609060ff1681565b3480156104ed57600080fd5b506105016104fc366004613ffe565b610dee565b005b34801561050f57600080fd5b506104b960135481565b34801561052557600080fd5b50610501610534366004614036565b610ed5565b34801561054557600080fd5b50610460610554366004613e7c565b610f04565b34801561056557600080fd5b50600f5461046090610100900460ff1681565b34801561058457600080fd5b506104907f000000000000000000000000000000000000000000000000000000000000000081565b3480156105b857600080fd5b506104b9610f6d565b3480156105cd57600080fd5b5060075461046090600160b01b900460ff1681565b3480156105ee57600080fd5b50600854610490906001600160a01b031681565b34801561060e57600080fd5b506104b9610fef565b34801561062357600080fd5b5060405160128152602001610437565b34801561063f57600080fd5b5061050161064e366004613ebc565b611034565b34801561065f57600080fd5b5061046061066e366004613f52565b61111e565b34801561067f57600080fd5b506104b960105481565b34801561069557600080fd5b506104606106a4366004613e0c565b6001600160a01b03166000908152600d602052604090205460ff1690565b3480156106ce57600080fd5b50600754610490906001600160a01b031681565b3480156106ee57600080fd5b506104b960125481565b34801561070457600080fd5b50610501611154565b34801561071957600080fd5b50610460610728366004613e0c565b6001600160a01b031660009081526018602052604090205460ff1690565b34801561075257600080fd5b506104b9610761366004613e0c565b601b6020526000908152604090205481565b34801561077f57600080fd5b5061050161078e366004613e0c565b6111db565b34801561079f57600080fd5b506104b961152e565b3480156107b457600080fd5b506105016107c3366004613e0c565b611573565b3480156107d457600080fd5b506104b96107e3366004613e0c565b6116bc565b3480156107f457600080fd5b506104b9600b5481565b34801561080a57600080fd5b50610501610819366004614036565b61173b565b34801561082a57600080fd5b506104b9610839366004613e0c565b6001600160a01b031660009081526020819052604090205490565b34801561086057600080fd5b5061050161181c565b34801561087557600080fd5b50610501610884366004613ffe565b611890565b34801561089557600080fd5b506105016108a4366004613e0c565b6118d6565b3480156108b557600080fd5b506104b960165481565b3480156108cb57600080fd5b506108d4611a3c565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610437565b34801561092557600080fd5b50610501610934366004614036565b611ae7565b34801561094557600080fd5b50610501610954366004613e0c565b611bb2565b34801561096557600080fd5b506005546001600160a01b0316610490565b34801561098357600080fd5b50600f546104609062010000900460ff1681565b3480156109a357600080fd5b5061042a611fa5565b3480156109b857600080fd5b506105016109c7366004613ebc565b611fb4565b3480156109d857600080fd5b506104b960145481565b3480156109ee57600080fd5b506105016109fd366004614036565b612081565b348015610a0e57600080fd5b506104b96120dc565b348015610a2357600080fd5b50610460610a32366004613f52565b612121565b348015610a4357600080fd5b50610501610a52366004613ffe565b612170565b348015610a6357600080fd5b506104b9610a72366004613e0c565b6121ad565b348015610a8357600080fd5b50610460610a92366004613f52565b6121e0565b348015610aa357600080fd5b506108d4610ab2366004613e0c565b6121ed565b348015610ac357600080fd5b50610460610ad2366004613e0c565b60196020526000908152604090205460ff1681565b348015610af357600080fd5b50610501610b02366004614036565b612297565b348015610b1357600080fd5b506104b9610b22366004614066565b601a60209081526000928352604080842090915290825290205481565b348015610b4b57600080fd5b50610501610b5a366004613ebc565b61233c565b348015610b6b57600080fd5b50610501610b7a366004613ffe565b61244e565b348015610b8b57600080fd5b50610501610b9a366004613f7d565b612492565b348015610bab57600080fd5b5061050161257c565b348015610bc057600080fd5b506104b960115481565b348015610bd657600080fd5b50610501610be5366004613e0c565b6125b9565b348015610bf657600080fd5b50600954610490906001600160a01b031681565b348015610c1657600080fd5b506104b9610c25366004613e44565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610c5c57600080fd5b506104b9600c5481565b348015610c7257600080fd5b506104b9612605565b348015610c8757600080fd5b50610501610c96366004614036565b61264a565b348015610ca757600080fd5b506108d4610cb6366004614036565b6126a5565b348015610cc757600080fd5b50610501610cd6366004613e0c565b6126e7565b348015610ce757600080fd5b50610460610cf6366004613e0c565b601c6020526000908152604090205460ff1681565b348015610d1757600080fd5b50610501610d26366004613e0c565b6127d2565b348015610d3757600080fd5b506015546104609060ff1681565b606060038054610d5490614383565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8090614383565b8015610dcd5780601f10610da257610100808354040283529160200191610dcd565b820191906000526020600020905b815481529060010190602001808311610db057829003601f168201915b5050505050905090565b6000610de4338484612a1a565b5060015b92915050565b6005546001600160a01b03163314610e215760405162461bcd60e51b8152600401610e189061421e565b60405180910390fd5b60075460ff600160b01b9091041615158115151415610eb75760405162461bcd60e51b815260206004820152604660248201527f56657273653a204d6178207472616e73616374696f6e206c696d697420656e6160448201527f626c656420697320616c7265616479207468652076616c7565206f662027656e60648201526561626c65642760d01b608482015260a401610e18565b60078054911515600160b01b0260ff60b01b19909216919091179055565b6005546001600160a01b03163314610eff5760405162461bcd60e51b8152600401610e189061421e565b600a55565b6000610f11848484612b3f565b610f638433610f5e85604051806060016040528060288152602001614439602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906135a1565b612a1a565b5060019392505050565b6008546040805163079cda8160e51b815290516000926001600160a01b03169163f39b5020916004808301926020929190829003018186803b158015610fb257600080fd5b505afa158015610fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea919061404e565b905090565b600854604080516342d359d760e11b815290516000926001600160a01b0316916385a6b3ae916004808301926020929190829003018186803b158015610fb257600080fd5b6005546001600160a01b0316331461105e5760405162461bcd60e51b8152600401610e189061421e565b6001600160a01b0382166000908152601c602052604090205460ff16151581151514156110f35760405162461bcd60e51b815260206004820152603f60248201527f56657273653a204461696c79206c696d6974206578636c7573696f6e2069732060448201527f616c7265616479207468652076616c7565206f6620276578636c7564656427006064820152608401610e18565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610de4918590610f5e90866129b4565b60085460405163bc4c4b3760e01b8152336004820152600060248201526001600160a01b039091169063bc4c4b3790604401602060405180830381600087803b1580156111a057600080fd5b505af11580156111b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d8919061401a565b50565b6005546001600160a01b031633146112055760405162461bcd60e51b8152600401610e189061421e565b6008546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a082319060240160206040518083038186803b15801561124b57600080fd5b505afa15801561125f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611283919061404e565b90506017548111156113125760405162461bcd60e51b815260206004820152604c60248201527f56657273653a204163636f756e742062616c616e6365206d757374206265206c60448201527f657373207468656e206d696e696d756d20746f6b656e2062616c616e6365206660648201526b6f72206469766964656e647360a01b608482015260a401610e18565b6001600160a01b0382166000908152601b6020526040902054626ebe0061133942836135db565b116113ac5760405162461bcd60e51b815260206004820152603c60248201527f56657273653a204163636f756e74206d7573742068617665206265656e20696e60448201527f61637469766520666f72206174206c65617374203132207765656b73000000006064820152608401610e18565b60085460405163bc4c4b3760e01b81526001600160a01b038581166004830152600060248301529091169063bc4c4b3790604401602060405180830381600087803b1580156113fa57600080fd5b505af115801561140e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611432919061401a565b5060085460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114611484576040519150601f19603f3d011682016040523d82523d6000602084013e611489565b606091505b505090508015611527576040518281527fb0cc2628d6d644cf6be9d8110e142297ac910d6d8026d795a99f272fd9ad60b19060200160405180910390a16008546040516338c110ef60e21b81526001600160a01b038781166004830152600060248301529091169063e30443bc90604401600060405180830381600087803b15801561151457600080fd5b505af1925050508015611525575060015b505b5050505050565b600854604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde916004808301926020929190829003018186803b158015610fb257600080fd5b6005546001600160a01b0316331461159d5760405162461bcd60e51b8152600401610e189061421e565b6006546001600160a01b038281169116141561160e5760405162461bcd60e51b815260206004820152602a60248201527f56657273653a2054686520726f7574657220616c7265616479206861732074686044820152696174206164647265737360b01b6064820152608401610e18565b6006546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600680546001600160a01b0319166001600160a01b0383811691821790925560085460405163031e79db60e41b81526004810192909252909116906331e79db0906024015b600060405180830381600087803b1580156116a857600080fd5b505af1158015611527573d6000803e3d6000fd5b6008546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a08231906024015b60206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de8919061404e565b6008546040516001624d3b8760e01b0319815260048101839052600091829182916001600160a01b03169063ffb2c47990602401606060405180830381600087803b15801561178957600080fd5b505af115801561179d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c1919061408a565b604080518481526020810184905290810182905260608101889052929550909350915032906000907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a350505050565b6005546001600160a01b031633146118465760405162461bcd60e51b8152600401610e189061421e565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146118ba5760405162461bcd60e51b8152600401610e189061421e565b600f8054911515620100000262ff000019909216919091179055565b6005546001600160a01b031633146119005760405162461bcd60e51b8152600401610e189061421e565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b038216141561196d5760405162461bcd60e51b815260206004820152601b60248201527f57652063616e6e6f7420626c61636b6c69737420556e697377617000000000006044820152606401610e18565b6001600160a01b0381166000908152600d602052604090205460ff16156119d65760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c697374656400006044820152606401610e18565b6001600160a01b03166000818152600d60205260408120805460ff19166001908117909155600e805491820181559091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319169091179055565b600080600080600080600080600860009054906101000a90046001600160a01b03166001600160a01b0316637bae416f6040518163ffffffff1660e01b81526004016101006040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acf9190613ee9565b969f959e50939c50919a509850965094509092509050565b6005546001600160a01b03163314611b115760405162461bcd60e51b8152600401610e189061421e565b601454811415611b7f5760405162461bcd60e51b815260206004820152603360248201527f56657273653a2043616e6e6f742075706461746520676173466f7250726f63656044820152727373696e6720746f2073616d652076616c756560681b6064820152608401610e18565b60145460405182907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db790600090a3601455565b6005546001600160a01b03163314611bdc5760405162461bcd60e51b8152600401610e189061421e565b6008546001600160a01b0382811691161415611c575760405162461bcd60e51b815260206004820152603460248201527f56657273653a20546865206469766964656e6420747261636b657220616c7265604482015273616479206861732074686174206164647265737360601b6064820152608401610e18565b6000819050306001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9f57600080fd5b505afa158015611cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd79190613e28565b6001600160a01b031614611d655760405162461bcd60e51b815260206004820152604960248201527f56657273653a20546865206e6577206469766964656e6420747261636b65722060448201527f6d757374206265206f776e65642062792074686520566572736520746f6b656e6064820152680818dbdb9d1c9858dd60ba1b608482015260a401610e18565b6008546040516001600160a01b03918216918416907f90c7d74461c613da5efa97d90740869367d74ab3aa5837aa4ae9a975f954b7a890600090a3600880546001600160a01b0319166001600160a01b03831690811790915560405163031e79db60e41b8152600481018290526331e79db090602401600060405180830381600087803b158015611df557600080fd5b505af1158015611e09573d6000803e3d6000fd5b505060085460405163031e79db60e41b81523060048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b158015611e5257600080fd5b505af1158015611e66573d6000803e3d6000fd5b50506008546001600160a01b031691506331e79db09050611e8f6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015611ed057600080fd5b505af1158015611ee4573d6000803e3d6000fd5b505060085460065460405163031e79db60e41b81526001600160a01b039182166004820152911692506331e79db09150602401600060405180830381600087803b158015611f3157600080fd5b505af1158015611f45573d6000803e3d6000fd5b505060085460405163031e79db60e41b815261dead60048201526001600160a01b0390911692506331e79db091506024015b600060405180830381600087803b158015611f9157600080fd5b505af1158015611525573d6000803e3d6000fd5b606060048054610d5490614383565b6005546001600160a01b03163314611fde5760405162461bcd60e51b8152600401610e189061421e565b6007546001600160a01b03838116911614156120735760405162461bcd60e51b815260206004820152604860248201527f56657273653a2054686520556e695377617020706169722063616e6e6f74206260448201527f652072656d6f7665642066726f6d206175746f6d617465644d61726b65744d616064820152676b6572506169727360c01b608482015260a401610e18565b61207d828261361d565b5050565b6005546001600160a01b031633146120ab5760405162461bcd60e51b8152600401610e189061421e565b600854604051639d55d16f60e01b8152600481018390526001600160a01b0390911690639d55d16f9060240161168e565b60085460408051631bc9e27b60e21b815290516000926001600160a01b031691636f2789ec916004808301926020929190829003018186803b158015610fb257600080fd5b6000610de43384610f5e85604051806060016040528060258152602001614461602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906135a1565b6005546001600160a01b0316331461219a5760405162461bcd60e51b8152600401610e189061421e565b600f805460ff1916911515919091179055565b6008546040516302a2e74960e61b81526001600160a01b038381166004830152600092169063a8b9d240906024016116eb565b6000610de4338484612b3f565b60085460405163fbcbc0f160e01b81526001600160a01b038381166004830152600092839283928392839283928392839291169063fbcbc0f1906024015b6101006040518083038186803b15801561224457600080fd5b505afa158015612258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227c9190613ee9565b97509750975097509750975097509750919395975091939597565b6005546001600160a01b031633146122c15760405162461bcd60e51b8152600401610e189061421e565b68b02ecf74c31388000081116123375760405162461bcd60e51b815260206004820152603560248201527f56657273653a206d61784461696c7953656c6c416d6f756e742073686f756c6460448201527402062652067726561746572207468616e203332353605c1b6064820152608401610e18565b600b55565b6005546001600160a01b031633146123665760405162461bcd60e51b8152600401610e189061421e565b6001600160a01b03821660009081526018602052604090205460ff16151581151514156123ef5760405162461bcd60e51b815260206004820152603160248201527f56657273653a204163636f756e7420697320616c7265616479207468652076616044820152706c7565206f6620276578636c756465642760781b6064820152608401610e18565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146124785760405162461bcd60e51b8152600401610e189061421e565b600f80549115156101000261ff0019909216919091179055565b6005546001600160a01b031633146124bc5760405162461bcd60e51b8152600401610e189061421e565b60005b8281101561253b5781601860008686858181106124ec57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906125019190613e0c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580612533816143be565b9150506124bf565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b3583838360405161256f939291906140fa565b60405180910390a1505050565b6005546001600160a01b031633146125a65760405162461bcd60e51b8152600401610e189061421e565b6015805460ff1916600117905542601655565b6005546001600160a01b031633146125e35760405162461bcd60e51b8152600401610e189061421e565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6008546040805163039e107b60e61b815290516000926001600160a01b03169163e7841ec0916004808301926020929190829003018186803b158015610fb257600080fd5b6005546001600160a01b031633146126745760405162461bcd60e51b8152600401610e189061421e565b60085460405163e98030c760e01b8152600481018390526001600160a01b039091169063e98030c79060240161168e565b600854604051635183d6fd60e01b81526004810183905260009182918291829182918291829182916001600160a01b0390911690635183d6fd9060240161222b565b6005546001600160a01b031633146127115760405162461bcd60e51b8152600401610e189061421e565b6001600160a01b0381166127765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e18565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146127fc5760405162461bcd60e51b8152600401610e189061421e565b6001600160a01b0381166000908152600d602052604090205460ff166128645760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c69737465640000000000006044820152606401610e18565b60005b600e5481101561207d57816001600160a01b0316600e828154811061289c57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156129a257600e80546128c79060019061436c565b815481106128e557634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600e80546001600160a01b03909216918390811061291f57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600d90915260409020805460ff19169055600e80548061297c57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806129ac816143be565b915050612867565b6000806129c18385614315565b905083811015612a135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e18565b9392505050565b6001600160a01b038316612a7c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e18565b6001600160a01b038216612add5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e18565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316612b655760405162461bcd60e51b8152600401610e1890614294565b6001600160a01b038216612b8b5760405162461bcd60e51b8152600401610e18906141db565b60008111612bed5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610e18565b6005546001600160a01b03848116911614801590612c1957506005546001600160a01b03838116911614155b15612d0e57600754600160b01b900460ff1615612c9c57600a54811115612c9c5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152703930b739b0b1ba34b7b720b6b7bab73a1760791b6064820152608401610e18565b6001600160a01b0383166000908152600d602052604090205460ff1615612cd55760405162461bcd60e51b8152600401610e1890614253565b6001600160a01b0382166000908152600d602052604090205460ff1615612d0e5760405162461bcd60e51b8152600401610e1890614253565b6007546001600160a01b038481169116148015612d3957506006546001600160a01b03838116911614155b8015612d5e57506001600160a01b03821660009081526018602052604090205460ff16155b15612e255760155460ff16612db55760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610e18565b601654421415612e25576001600160a01b0382166000818152600d60205260408120805460ff19166001908117909155600e805491820181559091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b03191690911790555b30600090815260208190526040902054600c546007549082101590600160a01b900460ff16158015612e615750600754600160a81b900460ff16155b8015612e7a57506007546001600160a01b038681169116145b8015612e9457506006546001600160a01b03858116911614155b8015612eb957506001600160a01b03841660009081526018602052604090205460ff16155b15612f3f57600f5460ff1615612ed3576003601055612ed9565b60006010555b600f54610100900460ff1615612ef3576004601155612ef9565b60006011555b600f5462010000900460ff1615612f14576003601255612f1a565b60006012555b601254601154601054612f2d9190614315565b612f379190614315565b601355613175565b600754600160a01b900460ff16158015612f635750600754600160a81b900460ff16155b8015612f7c57506007546001600160a01b038581169116145b8015612f9657506006546001600160a01b03868116911614155b8015612fbb57506001600160a01b03841660009081526018602052604090205460ff16155b1561317557600b5461300084601a6000612fd361377b565b8152602080820192909252604090810160009081206001600160a01b038c168252909252902054906129b4565b111561308757600f5460ff161561301b576006601055613021565b60006010555b600f54610100900460ff161561303b576008601155613041565b60006011555b600f5462010000900460ff161561305c576006601255613062565b60006012555b6012546011546010546130759190614315565b61307f9190614315565b601355613104565b600f5460ff161561309c5760036010556130a2565b60006010555b600f54610100900460ff16156130bc5760046011556130c2565b60006011555b600f5462010000900460ff16156130dd5760036012556130e3565b60006012555b6012546011546010546130f69190614315565b6131009190614315565b6013555b61314183601a600061311461377b565b8152602080820192909252604090810160009081206001600160a01b038b168252909252902054906129b4565b601a600061314d61377b565b8152602080820192909252604090810160009081206001600160a01b038a1682529092529020555b80801561318c5750600754600160a01b900460ff16155b80156131a25750600754600160a81b900460ff16155b80156131c757506001600160a01b03851660009081526019602052604090205460ff16155b80156131ec57506001600160a01b03851660009081526018602052604090205460ff16155b801561321157506001600160a01b03841660009081526018602052604090205460ff16155b801561321f57506000601354115b1561324d576007805460ff60a01b1916600160a01b17905561323f61378a565b6007805460ff60a01b191690555b600754600090600160a01b900460ff161580156132745750600754600160a81b900460ff16155b6001600160a01b03871660009081526018602052604090205490915060ff16806132b657506001600160a01b03851660009081526018602052604090205460ff165b806132fe57506001600160a01b03861660009081526019602052604090205460ff161580156132fe57506001600160a01b03851660009081526019602052604090205460ff16155b15613307575060005b80801561331657506000601354115b1561335857600061333d60646133376013548861391590919063ffffffff16565b90613994565b905061334985826135db565b94506133568730836139d6565b505b6133638686866139d6565b6008546001600160a01b031663e30443bc87613394816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156133da57600080fd5b505af19250505080156133eb575060015b506008546001600160a01b031663e30443bc8661341d816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561346357600080fd5b505af1925050508015613474575060015b506001600160a01b038681166000908152601b602052604080822042908190559288168252902055600754600160a01b900460ff161580156134bd5750600f54610100900460ff165b15611525576014546008546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c47990602401606060405180830381600087803b15801561350e57600080fd5b505af192505050801561353e575060408051601f3d908101601f1916820190925261353b9181019061408a565b60015b61354757613598565b60408051848152602081018490529081018290526060810185905232906001907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a35050505b50505050505050565b600081848411156135c55760405162461bcd60e51b8152600401610e189190614188565b5060006135d2848661436c565b95945050505050565b6000612a1383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506135a1565b6001600160a01b03821660009081526019602052604090205460ff16151581151514156136b25760405162461bcd60e51b815260206004820152603f60248201527f56657273653a204175746f6d61746564206d61726b6574206d616b657220706160448201527f697220697320616c72656164792073657420746f20746861742076616c7565006064820152608401610e18565b6001600160a01b0382166000908152601960205260409020805460ff1916821580159190911790915561373f5760085460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b15801561372657600080fd5b505af115801561373a573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000610fea4262015180613994565b306000908152602081905260409020546137a381613adf565b600047905060006137c56013546133376012548561391590919063ffffffff16565b905060006137e46013546133376010548661391590919063ffffffff16565b600f5490915062010000900460ff1680156137ff5750600082115b15613840576009546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561383e573d6000803e3d6000fd5b505b600f5460ff1680156138525750600081115b156138605761386081613c2e565b600f544790610100900460ff1680156138795750600081115b15611527576008546040516000916001600160a01b03169083908381818185875af1925050503d80600081146138cb576040519150601f19603f3d011682016040523d82523d6000602084013e6138d0565b606091505b505090508015611525576040518281527fb0cc2628d6d644cf6be9d8110e142297ac910d6d8026d795a99f272fd9ad60b19060200160405180910390a1505050505050565b60008261392457506000610de8565b6000613930838561434d565b90508261393d858361432d565b14612a135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e18565b6000612a1383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613dde565b6001600160a01b0383166139fc5760405162461bcd60e51b8152600401610e1890614294565b6001600160a01b038216613a225760405162461bcd60e51b8152600401610e18906141db565b613a5f81604051806060016040528060268152602001614413602691396001600160a01b03861660009081526020819052604090205491906135a1565b6001600160a01b038085166000908152602081905260408082209390935590841681522054613a8e90826129b4565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101612b32565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613b2257634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015613b7657600080fd5b505afa158015613b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bae9190613e28565b81600181518110613bcf57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600654613bf59130911684612a1a565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f779085906000908690309042906004016142d9565b6040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ccb9190613e28565b81600081518110613cec57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505073da1e53e088023fe4d1dc5a418581748f52cbd1b881600181518110613d4257634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526006541663b6f9de95836000847f0000000000000000000000000000000000000000000000000000000000000000613d924261012c6129b4565b6040518663ffffffff1660e01b8152600401613db19493929190614153565b6000604051808303818588803b158015613dca57600080fd5b505af1158015613598573d6000803e3d6000fd5b60008183613dff5760405162461bcd60e51b8152600401610e189190614188565b5060006135d2848661432d565b600060208284031215613e1d578081fd5b8135612a13816143ef565b600060208284031215613e39578081fd5b8151612a13816143ef565b60008060408385031215613e56578081fd5b8235613e61816143ef565b91506020830135613e71816143ef565b809150509250929050565b600080600060608486031215613e90578081fd5b8335613e9b816143ef565b92506020840135613eab816143ef565b929592945050506040919091013590565b60008060408385031215613ece578182fd5b8235613ed9816143ef565b91506020830135613e7181614404565b600080600080600080600080610100898b031215613f05578384fd5b8851613f10816143ef565b809850506020890151965060408901519550606089015194506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b60008060408385031215613f64578182fd5b8235613f6f816143ef565b946020939093013593505050565b600080600060408486031215613f91578283fd5b833567ffffffffffffffff80821115613fa8578485fd5b818601915086601f830112613fbb578485fd5b813581811115613fc9578586fd5b8760208260051b8501011115613fdd578586fd5b60209283019550935050840135613ff381614404565b809150509250925092565b60006020828403121561400f578081fd5b8135612a1381614404565b60006020828403121561402b578081fd5b8151612a1381614404565b600060208284031215614047578081fd5b5035919050565b60006020828403121561405f578081fd5b5051919050565b60008060408385031215614078578182fd5b823591506020830135613e71816143ef565b60008060006060848603121561409e578081fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156140ef5781516001600160a01b0316875295820195908201906001016140ca565b509495945050505050565b6040808252810183905260008460608301825b8681101561413d578235614120816143ef565b6001600160a01b031682526020928301929091019060010161410d565b5080925050508215156020830152949350505050565b84815260806020820152600061416c60808301866140b7565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b818110156141b457858101830151858201604001528201614198565b818111156141c55783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f426f7473206e6f7420616c6c6f77656420686572652120506c617920666169726040820152601760f91b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b85815284602082015260a0604082015260006142f860a08301866140b7565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115614328576143286143d9565b500190565b60008261434857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615614367576143676143d9565b500290565b60008282101561437e5761437e6143d9565b500390565b600181811c9082168061439757607f821691505b602082108114156143b857634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156143d2576143d26143d9565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146111d857600080fd5b80151581146111d857600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122043c92184c88a7d816d0ad4030ff6ff2678e4ad15ea0c9e2357f247e6986f5ac964736f6c6343000804003360806040523480156200001157600080fd5b5060408051808201825260168082527f56657273655f4469766964656e645f547261636b657200000000000000000000602080840182815285518087019096529285528401528151919291839183916200006e91600391620000e0565b50805162000084906004906020840190620000e0565b5050610bb86008555050600a80546001600160a01b0319163390811790915560405190915081906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610e10601255620001c3565b828054620000ee9062000186565b90600052602060002090601f0160209004810192826200011257600085556200015d565b82601f106200012d57805160ff19168380011785556200015d565b828001600101855582156200015d579182015b828111156200015d57825182559160200191906001019062000140565b506200016b9291506200016f565b5090565b5b808211156200016b576000815560010162000170565b600181811c908216806200019b57607f821691505b60208210811415620001bd57634e487b7160e01b600052602260045260246000fd5b50919050565b61231d80620001d36000396000f3fe6080604052600436106102295760003560e01c806385a6b3ae11610123578063bc4c4b37116100ab578063e98030c71161006f578063e98030c7146106b4578063f2fde38b146106d4578063f39b5020146106f4578063fbcbc0f11461070a578063ffb2c4791461072a57600080fd5b8063bc4c4b37146105fc578063c38f9cad1461061c578063dd62ed3e14610639578063e30443bc1461067f578063e7841ec01461069f57600080fd5b80639d55d16f116100f25780639d55d16f14610546578063a457c2d714610566578063a8b9d24014610586578063a9059cbb146105a6578063aafd847a146105c657600080fd5b806385a6b3ae146104d35780638da5cb5b146104e957806391b89fba1461051157806395d89b411461053157600080fd5b8063313ce567116101b15780636a474002116101755780636a474002146104485780636f2789ec1461045d57806370a0823114610473578063715018a6146104a95780637bae416f146104be57600080fd5b8063313ce5671461035757806331e79db01461037357806339509351146103935780634e7b827f146103b35780635183d6fd146103e357600080fd5b806318160ddd116101f857806318160ddd146102bf578063226cfa3d146102d457806323b872dd1461030157806327ce0147146103215780633009a6091461034157600080fd5b806303c833021461023d57806306fdde0314610245578063095ea7b31461027057806309bbedde146102a057600080fd5b3661023857610236610765565b005b600080fd5b610236610765565b34801561025157600080fd5b5061025a6107f8565b604051610267919061207e565b60405180910390f35b34801561027c57600080fd5b5061029061028b366004611fb6565b61088a565b6040519015158152602001610267565b3480156102ac57600080fd5b50600b545b604051908152602001610267565b3480156102cb57600080fd5b506002546102b1565b3480156102e057600080fd5b506102b16102ef366004611f42565b60116020526000908152604090205481565b34801561030d57600080fd5b5061029061031c36600461200e565b6108a1565b34801561032d57600080fd5b506102b161033c366004611f42565b61090a565b34801561034d57600080fd5b506102b1600f5481565b34801561036357600080fd5b5060405160128152602001610267565b34801561037f57600080fd5b5061023661038e366004611f42565b610966565b34801561039f57600080fd5b506102906103ae366004611fb6565b610a96565b3480156103bf57600080fd5b506102906103ce366004611f42565b60106020526000908152604090205460ff1681565b3480156103ef57600080fd5b506104036103fe366004612066565b610acc565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610267565b34801561045457600080fd5b50610236610c3e565b34801561046957600080fd5b506102b160125481565b34801561047f57600080fd5b506102b161048e366004611f42565b6001600160a01b031660009081526020819052604090205490565b3480156104b557600080fd5b50610236610ce2565b3480156104ca57600080fd5b50610403610d56565b3480156104df57600080fd5b506102b160095481565b3480156104f557600080fd5b50600a546040516001600160a01b039091168152602001610267565b34801561051d57600080fd5b506102b161052c366004611f42565b610ecd565b34801561053d57600080fd5b5061025a610ed8565b34801561055257600080fd5b50610236610561366004612066565b610ee7565b34801561057257600080fd5b50610290610581366004611fb6565b610fc7565b34801561059257600080fd5b506102b16105a1366004611f42565b611016565b3480156105b257600080fd5b506102906105c1366004611fb6565b611042565b3480156105d257600080fd5b506102b16105e1366004611f42565b6001600160a01b031660009081526007602052604090205490565b34801561060857600080fd5b50610290610617366004611f7a565b61104f565b34801561062857600080fd5b506102b1681b1ae4d6e2ef50000081565b34801561064557600080fd5b506102b1610654366004611fe1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561068b57600080fd5b5061023661069a366004611fb6565b6110fd565b3480156106ab57600080fd5b50600f546102b1565b3480156106c057600080fd5b506102366106cf366004612066565b611272565b3480156106e057600080fd5b506102366106ef366004611f42565b6113e2565b34801561070057600080fd5b506102b160085481565b34801561071657600080fd5b50610403610725366004611f42565b6114cd565b34801561073657600080fd5b5061074a610745366004612066565b611645565b60408051938452602084019290925290820152606001610267565b600061077060025490565b1161077a57600080fd5b34156107f6576107ad61078c60025490565b61079a34600160801b61176e565b6107a4919061215f565b600554906117f4565b60055560405134815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a26009546107f290346117f4565b6009555b565b606060038054610807906121f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610833906121f4565b80156108805780601f1061085557610100808354040283529160200191610880565b820191906000526020600020905b81548152906001019060200180831161086357829003601f168201915b5050505050905090565b6000610897338484611853565b5060015b92915050565b60006108ae848484611977565b61090084336108fb8560405180606001604052806028815260200161229b602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906119d4565b611853565b5060019392505050565b6001600160a01b03811660009081526006602090815260408083205491839052822054600554600160801b9261095c92610957926109519161094c919061176e565b611a0e565b90611a1e565b611a5c565b61089b919061215f565b600a546001600160a01b031633146109995760405162461bcd60e51b8152600401610990906120d1565b60405180910390fd5b6001600160a01b03811660009081526010602052604090205460ff16156109bf57600080fd5b6001600160a01b0381166000908152601060205260408120805460ff191660011790556109ed908290611a6f565b60405163131836e760e21b8152600b60048201526001600160a01b0382166024820152739015e05f05f737435308ceb9bb74f1195841879190634c60db9c9060440160006040518083038186803b158015610a4757600080fd5b505af4158015610a5b573d6000803e3d6000fd5b50506040516001600160a01b03841692507fbc358c1a6bbec2cf1d21c2fb5a564b55d7828e32fb5da64adf3c5479264650109150600090a250565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108979185906108fb90866117f4565b600080600080600080600080600b739015e05f05f737435308ceb9bb74f1195841879163deb3d89690916040518263ffffffff1660e01b8152600401610b1491815260200190565b60206040518083038186803b158015610b2c57600080fd5b505af4158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b64919061204e565b8910610b89575060009650600019955085945086935083925082915081905080610c33565b6040516368d54f3f60e11b8152600b6004820152602481018a9052600090739015e05f05f737435308ceb9bb74f119584187919063d1aa9e7e9060440160206040518083038186803b158015610bde57600080fd5b505af4158015610bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c169190611f5e565b9050610c21816114cd565b98509850985098509850985098509850505b919395975091939597565b60405162461bcd60e51b815260206004820152606760248201527f56657273655f4469766964656e645f547261636b65723a20776974686472617760448201527f4469766964656e642064697361626c65642e20557365207468652027636c616960648201527f6d272066756e6374696f6e206f6e20746865206d61696e20566572736520636f608482015266373a3930b1ba1760c91b60a482015260c401610990565b600a546001600160a01b03163314610d0c5760405162461bcd60e51b8152600401610990906120d1565b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b600080600080600080600080600b739015e05f05f737435308ceb9bb74f1195841879163deb3d89690916040518263ffffffff1660e01b8152600401610d9e91815260200190565b60206040518083038186803b158015610db657600080fd5b505af4158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dee919061204e565b600f5410610e15575060009650600019955085945086935083925082915081905080610ec3565b600f546040516368d54f3f60e11b8152600b60048201526024810191909152600090739015e05f05f737435308ceb9bb74f119584187919063d1aa9e7e9060440160206040518083038186803b158015610e6e57600080fd5b505af4158015610e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea69190611f5e565b9050610eb1816114cd565b98509850985098509850985098509850505b9091929394959697565b600061089b82611016565b606060048054610807906121f4565b600a546001600160a01b03163314610f115760405162461bcd60e51b8152600401610990906120d1565b600854811415610f945760405162461bcd60e51b815260206004820152604260248201527f56657273655f4469766964656e645f547261636b65723a2043616e6e6f74207560448201527f706461746520676173466f725472616e7366657220746f2073616d652076616c606482015261756560f01b608482015260a401610990565b60085460405182907f5e2963a3d7c88b344b101641f89a2f7da9734fc777ed11ad0097b2775a9e9d1790600090a3600855565b600061089733846108fb856040518060600160405280602581526020016122c3602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906119d4565b6001600160a01b03811660009081526007602052604081205461089b9061103c8461090a565b90611ace565b6000610897338484611977565b600a546000906001600160a01b0316331461107c5760405162461bcd60e51b8152600401610990906120d1565b600061108784611b10565b905080156110f3576001600160a01b038416600081815260116020526040908190204290555184151591907fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf092906110e19085815260200190565b60405180910390a3600191505061089b565b5060009392505050565b600a546001600160a01b031633146111275760405162461bcd60e51b8152600401610990906120d1565b6001600160a01b03821660009081526010602052604090205460ff161561114c575050565b681b1ae4d6e2ef50000081106111e4576111668282611a6f565b604051632f0ad01760e21b8152600b60048201526001600160a01b038316602482015260448101829052739015e05f05f737435308ceb9bb74f119584187919063bc2b405c9060640160006040518083038186803b1580156111c757600080fd5b505af41580156111db573d6000803e3d6000fd5b50505050611262565b6111ef826000611a6f565b60405163131836e760e21b8152600b60048201526001600160a01b0383166024820152739015e05f05f737435308ceb9bb74f1195841879190634c60db9c9060440160006040518083038186803b15801561124957600080fd5b505af415801561125d573d6000803e3d6000fd5b505050505b61126d82600161104f565b505050565b600a546001600160a01b0316331461129c5760405162461bcd60e51b8152600401610990906120d1565b610e1081101580156112b15750620151808111155b6113375760405162461bcd60e51b815260206004820152604b60248201527f56657273655f4469766964656e645f547261636b65723a20636c61696d57616960448201527f74206d757374206265207570646174656420746f206265747765656e2031206160648201526a6e6420323420686f75727360a81b608482015260a401610990565b6012548114156113af5760405162461bcd60e51b815260206004820152603d60248201527f56657273655f4469766964656e645f547261636b65723a2043616e6e6f74207560448201527f706461746520636c61696d5761697420746f2073616d652076616c75650000006064820152608401610990565b60125460405182907f474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f90600090a3601255565b600a546001600160a01b0316331461140c5760405162461bcd60e51b8152600401610990906120d1565b6001600160a01b0381166114715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610990565b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516317e142d160e01b8152600b60048201526001600160a01b03821660248201528190600090819081908190819081908190739015e05f05f737435308ceb9bb74f11958418791906317e142d19060440160206040518083038186803b15801561153857600080fd5b505af415801561154c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611570919061204e565b96506000199550600087126115d257600f5487111561159e57600f54611597908890611c53565b95506115d2565b600f54600b54600091106115b35760006115c2565b600f54600b546115c291611ace565b90506115ce8882611a1e565b9650505b6115db88611016565b94506115e68861090a565b6001600160a01b03891660009081526011602052604090205490945092508261161057600061161e565b60125461161e9084906117f4565b915042821161162e576000611638565b6116388242611ace565b9050919395975091939597565b600b546000908190819080611665575050600f5460009250829150611767565b600f546000805a90506000805b898410801561168057508582105b15611756578461168f8161222f565b600b54909650861090506116a257600094505b6000600b60000186815481106116c857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031680835260119091526040909120549091506116f990611c90565b1561171c5761170981600161104f565b1561171c57816117188161222f565b9250505b826117268161222f565b93505060005a90508085111561174d5761174a6117438683611ace565b87906117f4565b95505b93506116729050565b600f85905590975095509193505050505b9193909250565b60008261177d5750600061089b565b6000611789838561217f565b905082611796858361215f565b146117ed5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610990565b9392505050565b6000806118018385612147565b9050838110156117ed5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610990565b6001600160a01b0383166118b55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610990565b6001600160a01b0382166119165760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610990565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405162461bcd60e51b815260206004820152602c60248201527f56657273655f4469766964656e645f547261636b65723a204e6f207472616e7360448201526b19995c9cc8185b1b1bddd95960a21b6064820152608401610990565b600081848411156119f85760405162461bcd60e51b8152600401610990919061207e565b506000611a0584866121dd565b95945050505050565b6000818181121561089b57600080fd5b600080611a2b8385612106565b905060008312158015611a3e5750838112155b80611a535750600083128015611a5357508381125b6117ed57600080fd5b600080821215611a6b57600080fd5b5090565b6001600160a01b03821660009081526020819052604090205480821115611aae576000611a9c8383611ace565b9050611aa88482611cb7565b50505050565b8082101561126d576000611ac28284611ace565b9050611aa88482611d1b565b60006117ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119d4565b600080611b1c83611016565b90508015611c4a576001600160a01b038316600090815260076020526040902054611b4790826117f4565b6001600160a01b038416600081815260076020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d90611b969084815260200190565b60405180910390a26008546040516000916001600160a01b03861691849084818181858888f193505050503d8060008114611bed576040519150601f19603f3d011682016040523d82523d6000602084013e611bf2565b606091505b5050905080611c43576001600160a01b038416600090815260076020526040902054611c1e9083611ace565b6001600160a01b03909416600090815260076020526040812094909455509192915050565b5092915050565b50600092915050565b600080611c60838561219e565b905060008312158015611c735750838113155b80611a535750600083128015611a5357508381136117ed57600080fd5b600042821115611ca257506000919050565b601254611caf4284611ace565b101592915050565b611cc18282611d5f565b611cfb611cdc61094c8360055461176e90919063ffffffff16565b6001600160a01b03841660009081526006602052604090205490611c53565b6001600160a01b0390921660009081526006602052604090209190915550565b611d258282611e3e565b611cfb611d4061094c8360055461176e90919063ffffffff16565b6001600160a01b03841660009081526006602052604090205490611a1e565b6001600160a01b038216611db55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610990565b600254611dc290826117f4565b6002556001600160a01b038216600090815260208190526040902054611de890826117f4565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038216611e9e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610990565b611edb81604051806060016040528060228152602001612279602291396001600160a01b03851660009081526020819052604090205491906119d4565b6001600160a01b038316600090815260208190526040902055600254611f019082611ace565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611e32565b600060208284031215611f53578081fd5b81356117ed81612260565b600060208284031215611f6f578081fd5b81516117ed81612260565b60008060408385031215611f8c578081fd5b8235611f9781612260565b915060208301358015158114611fab578182fd5b809150509250929050565b60008060408385031215611fc8578182fd5b8235611fd381612260565b946020939093013593505050565b60008060408385031215611ff3578182fd5b8235611ffe81612260565b91506020830135611fab81612260565b600080600060608486031215612022578081fd5b833561202d81612260565b9250602084013561203d81612260565b929592945050506040919091013590565b60006020828403121561205f578081fd5b5051919050565b600060208284031215612077578081fd5b5035919050565b6000602080835283518082850152825b818110156120aa5785810183015185820160400152820161208e565b818111156120bb5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600080821280156001600160ff1b03849003851316156121285761212861224a565b600160ff1b83900384128116156121415761214161224a565b50500190565b6000821982111561215a5761215a61224a565b500190565b60008261217a57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156121995761219961224a565b500290565b60008083128015600160ff1b8501841216156121bc576121bc61224a565b6001600160ff1b03840183138116156121d7576121d761224a565b50500390565b6000828210156121ef576121ef61224a565b500390565b600181811c9082168061220857607f821691505b6020821081141561222957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156122435761224361224a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461227557600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122014aa6d575ad8ab2ff6296b0ab27fde798279443fafae5f9f87e4b42dad28675064736f6c63430008040033