60806040523480156200001157600080fd5b5060405162001a8a38038062001a8a833981810160405260208110156200003757600080fd5b5051604080518082018252600b81526a23a920a4a7102a37b5b2b760a91b60208281019182528351808501909452600584526423a920a4a760d91b90840152815184936a1997b293cd61717fd40000939290916012916200009c916003919062000498565b508151620000b290600490602085019062000498565b506005805460ff191660ff9290921691909117905550620000e79050620000d8620001e4565b6001600160e01b03620001e916565b600081116200013d576040805162461bcd60e51b815260206004820152601560248201527f45524332304361707065643a2063617020697320300000000000000000000000604482015290519081900360640190fd5b6007556001600160a01b0381166200019c576040805162461bcd60e51b815260206004820152601e60248201527f6e65772073746f726167652073686f756c646e277420626520656d7074790000604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055620001c66200023b565b620001dd620000d86001600160e01b036200026316565b506200053a565b335b90565b62000204816006620002dc60201b6200126c1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b62000261620002526001600160e01b03620001e416565b6001600160e01b036200036916565b565b60085460408051635aa6e67560e01b815290516000926001600160a01b031691635aa6e675916004808301926020929190829003018186803b158015620002a957600080fd5b505afa158015620002be573d6000803e3d6000fd5b505050506040513d6020811015620002d557600080fd5b5051905090565b620002f182826001600160e01b03620003bb16565b1562000344576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b620003848160066200042460201b620012051790919060201c565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b038216620004045760405162461bcd60e51b815260040180806020018281038252602281526020018062001a686022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6200043982826001600160e01b03620003bb16565b620004765760405162461bcd60e51b815260040180806020018281038252602181526020018062001a476021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004db57805160ff19168380011785556200050b565b828001600101855582156200050b579182015b828111156200050b578251825591602001919060010190620004ee565b50620005199291506200051d565b5090565b620001e691905b8082111562000519576000815560010162000524565b6114fd806200054a6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806379cc6790116100b8578063986502751161007c57806398650275146103c3578063a457c2d7146103cb578063a9059cbb146103f7578063aa271e1a14610423578063d40dc87014610449578063dd62ed3e1461045157610142565b806379cc67901461033b5780639137c1a71461036757806395d89b411461038d578063975057e714610395578063983b2d561461039d57610142565b8063355274ea1161010a578063355274ea14610272578063395093511461027a57806340c10f19146102a657806342966c68146102d25780635aa6e675146102f157806370a082311461031557610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e578063313ce56714610254575b600080fd5b61014f61047f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b038135169060200135610515565b604080519115158252519081900360200190f35b61020c610532565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b03813581169160208101359091169060400135610538565b61025c6105c5565b6040805160ff9092168252519081900360200190f35b61020c6105ce565b6101f06004803603604081101561029057600080fd5b506001600160a01b0381351690602001356105d4565b6101f0600480360360408110156102bc57600080fd5b506001600160a01b038135169060200135610628565b6102ef600480360360208110156102e857600080fd5b503561067f565b005b6102f9610693565b604080516001600160a01b039092168252519081900360200190f35b61020c6004803603602081101561032b57600080fd5b50356001600160a01b0316610709565b6102ef6004803603604081101561035157600080fd5b506001600160a01b038135169060200135610724565b6102ef6004803603602081101561037d57600080fd5b50356001600160a01b0316610732565b61014f610868565b6102f96108c9565b6102ef600480360360208110156103b357600080fd5b50356001600160a01b03166108d8565b6102ef61099a565b6101f0600480360360408110156103e157600080fd5b506001600160a01b0381351690602001356109ac565b6101f06004803603604081101561040d57600080fd5b506001600160a01b038135169060200135610a1a565b6101f06004803603602081101561043957600080fd5b50356001600160a01b0316610a2e565b61020c610a47565b61020c6004803603604081101561046757600080fd5b506001600160a01b0381358116916020013516610a56565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561050b5780601f106104e05761010080835404028352916020019161050b565b820191906000526020600020905b8154815290600101906020018083116104ee57829003601f168201915b5050505050905090565b6000610529610522610a81565b8484610a85565b50600192915050565b60025490565b6000610545848484610b71565b6105bb84610551610a81565b6105b6856040518060600160405280602881526020016113cc602891396001600160a01b038a1660009081526001602052604081209061058f610a81565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610ccd16565b610a85565b5060019392505050565b60055460ff1690565b60075490565b60006105296105e1610a81565b846105b685600160006105f2610a81565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610d6416565b600061063a610635610a81565b610a2e565b6106755760405162461bcd60e51b815260040180806020018281038252603081526020018061137b6030913960400191505060405180910390fd5b6105298383610dc5565b61069061068a610a81565b82610e3d565b50565b60085460408051635aa6e67560e01b815290516000926001600160a01b031691635aa6e675916004808301926020929190829003018186803b1580156106d857600080fd5b505afa1580156106ec573d6000803e3d6000fd5b505050506040513d602081101561070257600080fd5b5051905090565b6001600160a01b031660009081526020819052604090205490565b61072e8282610f39565b5050565b600854604080516337b87c3960e21b815233600482015290516001600160a01b039092169163dee1f0e491602480820192602092909190829003018186803b15801561077d57600080fd5b505afa158015610791573d6000803e3d6000fd5b505050506040513d60208110156107a757600080fd5b50516107eb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b6001600160a01b038116610846576040805162461bcd60e51b815260206004820152601e60248201527f6e65772073746f726167652073686f756c646e277420626520656d7074790000604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561050b5780601f106104e05761010080835404028352916020019161050b565b6008546001600160a01b031681565b600854604080516337b87c3960e21b815233600482015290516001600160a01b039092169163dee1f0e491602480820192602092909190829003018186803b15801561092357600080fd5b505afa158015610937573d6000803e3d6000fd5b505050506040513d602081101561094d57600080fd5b5051610991576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b61069081610f8d565b6109aa6109a5610a81565b610fdc565b565b60006105296109b9610a81565b846105b6856040518060600160405280602581526020016114a460259139600160006109e3610a81565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610ccd16565b6000610529610a27610a81565b8484610b71565b6000610a4160068363ffffffff61102416565b92915050565b6a1997b293cd61717fd4000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610aca5760405162461bcd60e51b81526004018080602001828103825260248152602001806114806024913960400191505060405180910390fd5b6001600160a01b038216610b0f5760405162461bcd60e51b81526004018080602001828103825260228152602001806113336022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610bb65760405162461bcd60e51b815260040180806020018281038252602581526020018061145b6025913960400191505060405180910390fd5b6001600160a01b038216610bfb5760405162461bcd60e51b81526004018080602001828103825260238152602001806112ee6023913960400191505060405180910390fd5b610c3e81604051806060016040528060268152602001611355602691396001600160a01b038616600090815260208190526040902054919063ffffffff610ccd16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610c73908263ffffffff610d6416565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610d5c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d21578181015183820152602001610d09565b50505050905090810190601f168015610d4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610dbe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600754610de082610dd4610532565b9063ffffffff610d6416565b1115610e33576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b61072e828261108b565b6001600160a01b038216610e825760405162461bcd60e51b815260040180806020018281038252602181526020018061143a6021913960400191505060405180910390fd5b610ec581604051806060016040528060228152602001611311602291396001600160a01b038516600090815260208190526040902054919063ffffffff610ccd16565b6001600160a01b038316600090815260208190526040902055600254610ef1908263ffffffff61117b16565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b610f438282610e3d565b61072e82610f4f610a81565b6105b684604051806060016040528060248152602001611416602491396001600160a01b03881660009081526001602052604081209061058f610a81565b610f98610635610a81565b610fd35760405162461bcd60e51b815260040180806020018281038252603081526020018061137b6030913960400191505060405180910390fd5b610690816111bd565b610fed60068263ffffffff61120516565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b03821661106b5760405162461bcd60e51b81526004018080602001828103825260228152602001806113f46022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0382166110e6576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6002546110f9908263ffffffff610d6416565b6002556001600160a01b038216600090815260208190526040902054611125908263ffffffff610d6416565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000610dbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ccd565b6111ce60068263ffffffff61126c16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61120f8282611024565b61124a5760405162461bcd60e51b81526004018080602001828103825260218152602001806113ab6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6112768282611024565b156112c8576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820eedda6fef69011ec31299d0e08fd37feb2ecabf1688d572f97ffcc2971fe7d4b64736f6c63430005100032526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373000000000000000000000000c95cbe4ca30055c787cb784be99d6a8494d0d197