0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063b6c5232411610097578063dd62ed3e11610071578063dd62ed3e14610360578063f2cc0c1814610399578063f2fde38b146103ac578063f84354f1146103bf57600080fd5b8063b6c5232414610319578063cba0e99614610321578063dd4670641461034d57600080fd5b806395d89b41116100d357806395d89b41146102e3578063a457c2d7146102eb578063a69df4b5146102fe578063a9059cbb1461030657600080fd5b806370a08231146102ad578063715018a6146102c05780638da5cb5b146102c857600080fd5b80632d838119116101665780633bd5d173116101405780633bd5d1731461026c5780633c9f861d1461027f5780634549b039146102875780635880b8731461029a57600080fd5b80632d83811914610231578063313ce56714610244578063395093511461025957600080fd5b806306fdde03146101ae578063095ea7b3146101cc57806313114a9d146101ef57806318160ddd146102015780631bbae6e01461020957806323b872dd1461021e575b600080fd5b6101b66103d2565b6040516101c39190611ae8565b60405180910390f35b6101df6101da366004611b59565b610464565b60405190151581526020016101c3565b600a545b6040519081526020016101c3565b6008546101f3565b61021c610217366004611b83565b61047b565b005b6101df61022c366004611b9c565b6104b3565b6101f361023f366004611b83565b61051c565b600e5460405160ff90911681526020016101c3565b6101df610267366004611b59565b6105a0565b61021c61027a366004611b83565b6105d6565b600b546101f3565b6101f3610295366004611bd8565b6106c0565b61021c6102a8366004611b83565b61074d565b6101f36102bb366004611c0d565b6107da565b61021c610839565b6000546040516001600160a01b0390911681526020016101c3565b6101b661089b565b6101df6102f9366004611b59565b6108aa565b61021c6108f9565b6101df610314366004611b59565b6109ff565b6002546101f3565b6101df61032f366004611c0d565b6001600160a01b031660009081526006602052604090205460ff1690565b61021c61035b366004611b83565b610a0c565b6101f361036e366004611c28565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61021c6103a7366004611c0d565b610a91565b61021c6103ba366004611c0d565b610c5b565b61021c6103cd366004611c0d565b610d33565b6060600c80546103e190611c5b565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611c5b565b801561045a5780601f1061042f5761010080835404028352916020019161045a565b820191906000526020600020905b81548152906001019060200180831161043d57829003601f168201915b5050505050905090565b6000610471338484610ee9565b5060015b92915050565b6000546001600160a01b031633146104ae5760405162461bcd60e51b81526004016104a590611c95565b60405180910390fd5b601155565b60006104c084848461100d565b610512843361050d85604051806060016040528060288152602001611d96602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061131d565b610ee9565b5060019392505050565b60006009548211156105835760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104a5565b600061058d611357565b9050610599838261137a565b9392505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161047191859061050d90866113bc565b3360008181526006602052604090205460ff161561064b5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016104a5565b60006106568361141b565b505050506001600160a01b03841660009081526003602052604090205491925061068291905082611478565b6001600160a01b0383166000908152600360205260409020556009546106a89082611478565b600955600a546106b890846113bc565b600a55505050565b60006008548311156107145760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016104a5565b816107335760006107248461141b565b50939550610475945050505050565b600061073e8461141b565b50929550610475945050505050565b6000546001600160a01b031633146107775760405162461bcd60e51b81526004016104a590611c95565b600181101580156107895750600a8111155b6107d55760405162461bcd60e51b815260206004820152601a60248201527f7461784665652073686f756c6420626520696e2031202d20313000000000000060448201526064016104a5565b600f55565b6001600160a01b03811660009081526006602052604081205460ff161561081757506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546104759061051c565b6000546001600160a01b031633146108635760405162461bcd60e51b81526004016104a590611c95565b600080546040516001600160a01b0390911690600080516020611dbe833981519152908390a3600080546001600160a01b0319169055565b6060600d80546103e190611c5b565b6000610471338461050d85604051806060016040528060258152602001611dde602591393360009081526005602090815260408083206001600160a01b038d168452909152902054919061131d565b6001546001600160a01b0316331461095f5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016104a5565b60025442116109b05760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016104a5565b600154600080546040516001600160a01b039384169390911691600080516020611dbe83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600061047133848461100d565b6000546001600160a01b03163314610a365760405162461bcd60e51b81526004016104a590611c95565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610a658142611ce0565b600255600080546040516001600160a01b0390911690600080516020611dbe833981519152908390a350565b6000546001600160a01b03163314610abb5760405162461bcd60e51b81526004016104a590611c95565b6001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d03610b325760405162461bcd60e51b815260206004820152602260248201527f57652063616e206e6f74206578636c75646520556e697377617020726f757465604482015261391760f11b60648201526084016104a5565b6001600160a01b03811660009081526006602052604090205460ff1615610b9b5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104a5565b6001600160a01b03811660009081526003602052604090205415610bf5576001600160a01b038116600090815260036020526040902054610bdb9061051c565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b03163314610c855760405162461bcd60e51b81526004016104a590611c95565b6001600160a01b038116610cea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a5565b600080546040516001600160a01b0380851693921691600080516020611dbe83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b81526004016104a590611c95565b6001600160a01b03811660009081526006602052604090205460ff16610dc55760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104a5565b60005b600754811015610ee557816001600160a01b031660078281548110610def57610def611cf8565b6000918252602090912001546001600160a01b031603610ed35760078054610e1990600190611d0e565b81548110610e2957610e29611cf8565b600091825260209091200154600780546001600160a01b039092169183908110610e5557610e55611cf8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600690925220805460ff191690556007805480610ead57610ead611d25565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610edd81611d3b565b915050610dc8565b5050565b6001600160a01b038316610f4b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a5565b6001600160a01b038216610fac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a5565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a5565b6001600160a01b0382166110d35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a5565b600081116111355760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a5565b6000546001600160a01b0384811691161480159061116157506000546001600160a01b03838116911614155b156111c9576011548111156111c95760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016104a5565b6001600160a01b03831660009081526006602052604090205460ff16801561120a57506001600160a01b03821660009081526006602052604090205460ff16155b1561121f5761121a8383836114ba565b505050565b6001600160a01b03831660009081526006602052604090205460ff1615801561126057506001600160a01b03821660009081526006602052604090205460ff165b156112705761121a8383836115fc565b6001600160a01b03831660009081526006602052604090205460ff161580156112b257506001600160a01b03821660009081526006602052604090205460ff16155b156112c25761121a8383836116c6565b6001600160a01b03831660009081526006602052604090205460ff16801561130257506001600160a01b03821660009081526006602052604090205460ff165b156113125761121a83838361172b565b61121a8383836116c6565b600081848411156113415760405162461bcd60e51b81526004016104a59190611ae8565b50600061134e8486611d0e565b95945050505050565b60008060006113646117bf565b9092509050611373828261137a565b9250505090565b600061059983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611941565b6000806113c98385611ce0565b9050838110156105995760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a5565b60008060008060008060008060006114388a600f5460105461196f565b9250925092506000611448611357565b9050600080600061145b8e8787876119c4565b919e509c509a509598509396509194505050505091939550919395565b600061059983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131d565b60006114c4611357565b90506000806000806000806114d88861141b565b95509550955095509550955060006114f98883611a1490919063ffffffff16565b6001600160a01b038c1660009081526004602052604090205490915061151f908a611478565b6001600160a01b038c1660009081526004602090815260408083209390935560039052205461154e9088611478565b6001600160a01b03808d1660009081526003602052604080822093909355908c168152205461157d90876113bc565b6001600160a01b038b166000908152600360205260409020556115a285828585611a96565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516115e791815260200190565b60405180910390a35050505050505050505050565b6000611606611357565b905060008060008060008061161a8861141b565b955095509550955095509550600061163b8883611a1490919063ffffffff16565b6001600160a01b038c166000908152600360205260409020549091506116619088611478565b6001600160a01b03808d16600090815260036020908152604080832094909455918d1681526004909152205461169790856113bc565b6001600160a01b038b1660009081526004602090815260408083209390935560039052205461157d90876113bc565b60006116d0611357565b90506000806000806000806116e48861141b565b95509550955095509550955060006117058883611a1490919063ffffffff16565b6001600160a01b038c1660009081526003602052604090205490915061154e9088611478565b6000611735611357565b90506000806000806000806117498861141b565b955095509550955095509550600061176a8883611a1490919063ffffffff16565b6001600160a01b038c16600090815260046020526040902054909150611790908a611478565b6001600160a01b038c166000908152600460209081526040808320939093556003905220546116619088611478565b6009546008546000918291825b600754811015611911578260036000600784815481106117ee576117ee611cf8565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611859575081600460006007848154811061183257611832611cf8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561186f57600954600854945094505050509091565b6118b5600360006007848154811061188957611889611cf8565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611478565b92506118fd60046000600784815481106118d1576118d1611cf8565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611478565b91508061190981611d3b565b9150506117cc565b506008546009546119219161137a565b821015611938576009546008549350935050509091565b90939092509050565b600081836119625760405162461bcd60e51b81526004016104a59190611ae8565b50600061134e8486611d54565b600080808061198960646119838989611a14565b9061137a565b9050600061199c60646119838a89611a14565b905060006119b4826119ae8b86611478565b90611478565b9992985090965090945050505050565b60008080806119d38886611a14565b905060006119e18887611a14565b905060006119ef8888611a14565b90506000611a01826119ae8686611478565b939b939a50919850919650505050505050565b600082600003611a2657506000610475565b6000611a328385611d76565b905082611a3f8583611d54565b146105995760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a5565b611aaf836119ae8660095461147890919063ffffffff16565b600955600a54611abf90836113bc565b600a55600b54611acf90826113bc565b600b55600854611adf9082611478565b60085550505050565b600060208083528351808285015260005b81811015611b1557858101830151858201604001528201611af9565b81811115611b27576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611b5457600080fd5b919050565b60008060408385031215611b6c57600080fd5b611b7583611b3d565b946020939093013593505050565b600060208284031215611b9557600080fd5b5035919050565b600080600060608486031215611bb157600080fd5b611bba84611b3d565b9250611bc860208501611b3d565b9150604084013590509250925092565b60008060408385031215611beb57600080fd5b8235915060208301358015158114611c0257600080fd5b809150509250929050565b600060208284031215611c1f57600080fd5b61059982611b3d565b60008060408385031215611c3b57600080fd5b611c4483611b3d565b9150611c5260208401611b3d565b90509250929050565b600181811c90821680611c6f57607f821691505b602082108103611c8f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611cf357611cf3611cca565b500190565b634e487b7160e01b600052603260045260246000fd5b600082821015611d2057611d20611cca565b500390565b634e487b7160e01b600052603160045260246000fd5b600060018201611d4d57611d4d611cca565b5060010190565b600082611d7157634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d9057611d90611cca565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202e9fb99d20bc6ddcac6969b337e4478bc98883c463445dd8fd5d818f4ea5dc2164736f6c634300080d0033
0x608060405269152d02c7e14af68000006008819055620000229060001962000206565b620000309060001962000229565b60095560408051808201909152600a8082526910d213d392d64810d05560b21b60209092019182526200006691600c9162000160565b5060408051808201909152600580825264434341545360d81b60209092019182526200009591600d9162000160565b50600e805460ff191660091790556001600f55600260105569152d02c7e14af6800000601155348015620000c857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600954336000818152600360209081526040808320949094556008549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200028b565b8280546200016e906200024f565b90600052602060002090601f016020900481019282620001925760008555620001dd565b82601f10620001ad57805160ff1916838001178555620001dd565b82800160010185558215620001dd579182015b82811115620001dd578251825591602001919060010190620001c0565b50620001eb929150620001ef565b5090565b5b80821115620001eb5760008155600101620001f0565b6000826200022457634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156200024a57634e487b7160e01b600052601160045260246000fd5b500390565b600181811c908216806200026457607f821691505b6020821081036200028557634e487b7160e01b600052602260045260246000fd5b50919050565b611e38806200029b6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063b6c5232411610097578063dd62ed3e11610071578063dd62ed3e14610360578063f2cc0c1814610399578063f2fde38b146103ac578063f84354f1146103bf57600080fd5b8063b6c5232414610319578063cba0e99614610321578063dd4670641461034d57600080fd5b806395d89b41116100d357806395d89b41146102e3578063a457c2d7146102eb578063a69df4b5146102fe578063a9059cbb1461030657600080fd5b806370a08231146102ad578063715018a6146102c05780638da5cb5b146102c857600080fd5b80632d838119116101665780633bd5d173116101405780633bd5d1731461026c5780633c9f861d1461027f5780634549b039146102875780635880b8731461029a57600080fd5b80632d83811914610231578063313ce56714610244578063395093511461025957600080fd5b806306fdde03146101ae578063095ea7b3146101cc57806313114a9d146101ef57806318160ddd146102015780631bbae6e01461020957806323b872dd1461021e575b600080fd5b6101b66103d2565b6040516101c39190611ae8565b60405180910390f35b6101df6101da366004611b59565b610464565b60405190151581526020016101c3565b600a545b6040519081526020016101c3565b6008546101f3565b61021c610217366004611b83565b61047b565b005b6101df61022c366004611b9c565b6104b3565b6101f361023f366004611b83565b61051c565b600e5460405160ff90911681526020016101c3565b6101df610267366004611b59565b6105a0565b61021c61027a366004611b83565b6105d6565b600b546101f3565b6101f3610295366004611bd8565b6106c0565b61021c6102a8366004611b83565b61074d565b6101f36102bb366004611c0d565b6107da565b61021c610839565b6000546040516001600160a01b0390911681526020016101c3565b6101b661089b565b6101df6102f9366004611b59565b6108aa565b61021c6108f9565b6101df610314366004611b59565b6109ff565b6002546101f3565b6101df61032f366004611c0d565b6001600160a01b031660009081526006602052604090205460ff1690565b61021c61035b366004611b83565b610a0c565b6101f361036e366004611c28565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61021c6103a7366004611c0d565b610a91565b61021c6103ba366004611c0d565b610c5b565b61021c6103cd366004611c0d565b610d33565b6060600c80546103e190611c5b565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611c5b565b801561045a5780601f1061042f5761010080835404028352916020019161045a565b820191906000526020600020905b81548152906001019060200180831161043d57829003601f168201915b5050505050905090565b6000610471338484610ee9565b5060015b92915050565b6000546001600160a01b031633146104ae5760405162461bcd60e51b81526004016104a590611c95565b60405180910390fd5b601155565b60006104c084848461100d565b610512843361050d85604051806060016040528060288152602001611d96602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061131d565b610ee9565b5060019392505050565b60006009548211156105835760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104a5565b600061058d611357565b9050610599838261137a565b9392505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161047191859061050d90866113bc565b3360008181526006602052604090205460ff161561064b5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016104a5565b60006106568361141b565b505050506001600160a01b03841660009081526003602052604090205491925061068291905082611478565b6001600160a01b0383166000908152600360205260409020556009546106a89082611478565b600955600a546106b890846113bc565b600a55505050565b60006008548311156107145760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016104a5565b816107335760006107248461141b565b50939550610475945050505050565b600061073e8461141b565b50929550610475945050505050565b6000546001600160a01b031633146107775760405162461bcd60e51b81526004016104a590611c95565b600181101580156107895750600a8111155b6107d55760405162461bcd60e51b815260206004820152601a60248201527f7461784665652073686f756c6420626520696e2031202d20313000000000000060448201526064016104a5565b600f55565b6001600160a01b03811660009081526006602052604081205460ff161561081757506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546104759061051c565b6000546001600160a01b031633146108635760405162461bcd60e51b81526004016104a590611c95565b600080546040516001600160a01b0390911690600080516020611dbe833981519152908390a3600080546001600160a01b0319169055565b6060600d80546103e190611c5b565b6000610471338461050d85604051806060016040528060258152602001611dde602591393360009081526005602090815260408083206001600160a01b038d168452909152902054919061131d565b6001546001600160a01b0316331461095f5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016104a5565b60025442116109b05760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016104a5565b600154600080546040516001600160a01b039384169390911691600080516020611dbe83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b600061047133848461100d565b6000546001600160a01b03163314610a365760405162461bcd60e51b81526004016104a590611c95565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610a658142611ce0565b600255600080546040516001600160a01b0390911690600080516020611dbe833981519152908390a350565b6000546001600160a01b03163314610abb5760405162461bcd60e51b81526004016104a590611c95565b6001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d03610b325760405162461bcd60e51b815260206004820152602260248201527f57652063616e206e6f74206578636c75646520556e697377617020726f757465604482015261391760f11b60648201526084016104a5565b6001600160a01b03811660009081526006602052604090205460ff1615610b9b5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104a5565b6001600160a01b03811660009081526003602052604090205415610bf5576001600160a01b038116600090815260036020526040902054610bdb9061051c565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b03163314610c855760405162461bcd60e51b81526004016104a590611c95565b6001600160a01b038116610cea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a5565b600080546040516001600160a01b0380851693921691600080516020611dbe83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b81526004016104a590611c95565b6001600160a01b03811660009081526006602052604090205460ff16610dc55760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104a5565b60005b600754811015610ee557816001600160a01b031660078281548110610def57610def611cf8565b6000918252602090912001546001600160a01b031603610ed35760078054610e1990600190611d0e565b81548110610e2957610e29611cf8565b600091825260209091200154600780546001600160a01b039092169183908110610e5557610e55611cf8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600690925220805460ff191690556007805480610ead57610ead611d25565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610edd81611d3b565b915050610dc8565b5050565b6001600160a01b038316610f4b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a5565b6001600160a01b038216610fac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a5565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a5565b6001600160a01b0382166110d35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a5565b600081116111355760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a5565b6000546001600160a01b0384811691161480159061116157506000546001600160a01b03838116911614155b156111c9576011548111156111c95760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016104a5565b6001600160a01b03831660009081526006602052604090205460ff16801561120a57506001600160a01b03821660009081526006602052604090205460ff16155b1561121f5761121a8383836114ba565b505050565b6001600160a01b03831660009081526006602052604090205460ff1615801561126057506001600160a01b03821660009081526006602052604090205460ff165b156112705761121a8383836115fc565b6001600160a01b03831660009081526006602052604090205460ff161580156112b257506001600160a01b03821660009081526006602052604090205460ff16155b156112c25761121a8383836116c6565b6001600160a01b03831660009081526006602052604090205460ff16801561130257506001600160a01b03821660009081526006602052604090205460ff165b156113125761121a83838361172b565b61121a8383836116c6565b600081848411156113415760405162461bcd60e51b81526004016104a59190611ae8565b50600061134e8486611d0e565b95945050505050565b60008060006113646117bf565b9092509050611373828261137a565b9250505090565b600061059983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611941565b6000806113c98385611ce0565b9050838110156105995760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a5565b60008060008060008060008060006114388a600f5460105461196f565b9250925092506000611448611357565b9050600080600061145b8e8787876119c4565b919e509c509a509598509396509194505050505091939550919395565b600061059983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131d565b60006114c4611357565b90506000806000806000806114d88861141b565b95509550955095509550955060006114f98883611a1490919063ffffffff16565b6001600160a01b038c1660009081526004602052604090205490915061151f908a611478565b6001600160a01b038c1660009081526004602090815260408083209390935560039052205461154e9088611478565b6001600160a01b03808d1660009081526003602052604080822093909355908c168152205461157d90876113bc565b6001600160a01b038b166000908152600360205260409020556115a285828585611a96565b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516115e791815260200190565b60405180910390a35050505050505050505050565b6000611606611357565b905060008060008060008061161a8861141b565b955095509550955095509550600061163b8883611a1490919063ffffffff16565b6001600160a01b038c166000908152600360205260409020549091506116619088611478565b6001600160a01b03808d16600090815260036020908152604080832094909455918d1681526004909152205461169790856113bc565b6001600160a01b038b1660009081526004602090815260408083209390935560039052205461157d90876113bc565b60006116d0611357565b90506000806000806000806116e48861141b565b95509550955095509550955060006117058883611a1490919063ffffffff16565b6001600160a01b038c1660009081526003602052604090205490915061154e9088611478565b6000611735611357565b90506000806000806000806117498861141b565b955095509550955095509550600061176a8883611a1490919063ffffffff16565b6001600160a01b038c16600090815260046020526040902054909150611790908a611478565b6001600160a01b038c166000908152600460209081526040808320939093556003905220546116619088611478565b6009546008546000918291825b600754811015611911578260036000600784815481106117ee576117ee611cf8565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611859575081600460006007848154811061183257611832611cf8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561186f57600954600854945094505050509091565b6118b5600360006007848154811061188957611889611cf8565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611478565b92506118fd60046000600784815481106118d1576118d1611cf8565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611478565b91508061190981611d3b565b9150506117cc565b506008546009546119219161137a565b821015611938576009546008549350935050509091565b90939092509050565b600081836119625760405162461bcd60e51b81526004016104a59190611ae8565b50600061134e8486611d54565b600080808061198960646119838989611a14565b9061137a565b9050600061199c60646119838a89611a14565b905060006119b4826119ae8b86611478565b90611478565b9992985090965090945050505050565b60008080806119d38886611a14565b905060006119e18887611a14565b905060006119ef8888611a14565b90506000611a01826119ae8686611478565b939b939a50919850919650505050505050565b600082600003611a2657506000610475565b6000611a328385611d76565b905082611a3f8583611d54565b146105995760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a5565b611aaf836119ae8660095461147890919063ffffffff16565b600955600a54611abf90836113bc565b600a55600b54611acf90826113bc565b600b55600854611adf9082611478565b60085550505050565b600060208083528351808285015260005b81811015611b1557858101830151858201604001528201611af9565b81811115611b27576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611b5457600080fd5b919050565b60008060408385031215611b6c57600080fd5b611b7583611b3d565b946020939093013593505050565b600060208284031215611b9557600080fd5b5035919050565b600080600060608486031215611bb157600080fd5b611bba84611b3d565b9250611bc860208501611b3d565b9150604084013590509250925092565b60008060408385031215611beb57600080fd5b8235915060208301358015158114611c0257600080fd5b809150509250929050565b600060208284031215611c1f57600080fd5b61059982611b3d565b60008060408385031215611c3b57600080fd5b611c4483611b3d565b9150611c5260208401611b3d565b90509250929050565b600181811c90821680611c6f57607f821691505b602082108103611c8f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611cf357611cf3611cca565b500190565b634e487b7160e01b600052603260045260246000fd5b600082821015611d2057611d20611cca565b500390565b634e487b7160e01b600052603160045260246000fd5b600060018201611d4d57611d4d611cca565b5060010190565b600082611d7157634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d9057611d90611cca565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202e9fb99d20bc6ddcac6969b337e4478bc98883c463445dd8fd5d818f4ea5dc2164736f6c634300080d0033