60806040526b0d92289838d21a99680000006008553480156200002157600080fd5b506040516200175f3803806200175f833981810160405260208110156200004757600080fd5b505160408051808201825260098152682ba4a2102a37b5b2b760b91b6020828101918252835180850190945260038085526215d25160ea1b9185019190915282518594926012926200009c929091906200043f565b508151620000b29060049060208501906200043f565b506005805460ff191660ff9290921691909117905550620000e79050620000d86200018b565b6001600160e01b036200019016565b6001600160a01b03811662000143576040805162461bcd60e51b815260206004820152601e60248201527f6e65772073746f726167652073686f756c646e277420626520656d7074790000604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b03929092169190911790556200016d620001e2565b62000184620000d86001600160e01b036200020a16565b50620004e1565b335b90565b620001ab8160066200028360201b62000f9a1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b62000208620001f96001600160e01b036200018b16565b6001600160e01b036200031016565b565b60075460408051635aa6e67560e01b815290516000926001600160a01b031691635aa6e675916004808301926020929190829003018186803b1580156200025057600080fd5b505afa15801562000265573d6000803e3d6000fd5b505050506040513d60208110156200027c57600080fd5b5051905090565b6200029882826001600160e01b036200036216565b15620002eb576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6200032b816006620003cb60201b6200101b1790919060201c565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b038216620003ab5760405162461bcd60e51b81526004018080602001828103825260228152602001806200173d6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b620003e082826001600160e01b036200036216565b6200041d5760405162461bcd60e51b81526004018080602001828103825260218152602001806200171c6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200048257805160ff1916838001178555620004b2565b82800160010185558215620004b2579182015b82811115620004b257825182559160200191906001019062000495565b50620004c0929150620004c4565b5090565b6200018d91905b80821115620004c05760008155600101620004cb565b61122b80620004f16000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad5780639865027511610071578063986502751461038a578063a457c2d714610392578063a9059cbb146103be578063aa271e1a146103ea578063dd62ed3e146104105761012c565b806370a08231146103065780639137c1a71461032c57806395d89b4114610354578063975057e71461035c578063983b2d56146103645761012c565b8063313ce567116100f4578063313ce56714610246578063395093511461026457806340c10f191461029057806356c88f5f146102bc5780635aa6e675146102e25761012c565b806306fdde0314610131578063095ea7b3146101ae57806318160ddd146101ee57806323b872dd146102085780632ddcb21f1461023e575b600080fd5b61013961043e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b0381351690602001356104d4565b604080519115158252519081900360200190f35b6101f66104f1565b60408051918252519081900360200190f35b6101da6004803603606081101561021e57600080fd5b506001600160a01b038135811691602081013590911690604001356104f7565b6101f6610584565b61024e61058a565b6040805160ff9092168252519081900360200190f35b6101da6004803603604081101561027a57600080fd5b506001600160a01b038135169060200135610593565b6101da600480360360408110156102a657600080fd5b506001600160a01b0381351690602001356105e7565b6101da600480360360208110156102d257600080fd5b50356001600160a01b031661063e565b6102ea61070e565b604080516001600160a01b039092168252519081900360200190f35b6101f66004803603602081101561031c57600080fd5b50356001600160a01b0316610784565b6103526004803603602081101561034257600080fd5b50356001600160a01b031661079f565b005b6101396108d5565b6102ea610936565b6103526004803603602081101561037a57600080fd5b50356001600160a01b0316610945565b610352610997565b6101da600480360360408110156103a857600080fd5b506001600160a01b0381351690602001356109a9565b6101da600480360360408110156103d457600080fd5b506001600160a01b038135169060200135610a17565b6101da6004803603602081101561040057600080fd5b50356001600160a01b0316610a2b565b6101f66004803603604081101561042657600080fd5b506001600160a01b0381358116916020013516610a44565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104ca5780601f1061049f576101008083540402835291602001916104ca565b820191906000526020600020905b8154815290600101906020018083116104ad57829003601f168201915b5050505050905090565b60006104e86104e1610a6f565b8484610a73565b50600192915050565b60025490565b6000610504848484610b5f565b61057a84610510610a6f565b6105758560405180606001604052806028815260200161113f602891396001600160a01b038a1660009081526001602052604081209061054e610a6f565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610cbb16565b610a73565b5060019392505050565b60085481565b60055460ff1690565b60006104e86105a0610a6f565b8461057585600160006105b1610a6f565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610d5216565b60006105f96105f4610a6f565b610a2b565b6106345760405162461bcd60e51b81526004018080602001828103825260308152602001806110ee6030913960400191505060405180910390fd5b6104e88383610db3565b600061064b6105f4610a6f565b6106865760405162461bcd60e51b81526004018080602001828103825260308152602001806110ee6030913960400191505060405180910390fd5b60085460006106936104f1565b6008549091506106a9828463ffffffff610d5216565b11156106fc576040805162461bcd60e51b815260206004820152601c60248201527f574944546f6b656e3a204f766572666c6f77206d6178737570706c7900000000604482015290519081900360640190fd5b61070684836105e7565b505050919050565b60075460408051635aa6e67560e01b815290516000926001600160a01b031691635aa6e675916004808301926020929190829003018186803b15801561075357600080fd5b505afa158015610767573d6000803e3d6000fd5b505050506040513d602081101561077d57600080fd5b5051905090565b6001600160a01b031660009081526020819052604090205490565b600754604080516337b87c3960e21b815233600482015290516001600160a01b039092169163dee1f0e491602480820192602092909190829003018186803b1580156107ea57600080fd5b505afa1580156107fe573d6000803e3d6000fd5b505050506040513d602081101561081457600080fd5b5051610858576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b604482015290519081900360640190fd5b6001600160a01b0381166108b3576040805162461bcd60e51b815260206004820152601e60248201527f6e65772073746f726167652073686f756c646e277420626520656d7074790000604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104ca5780601f1061049f576101008083540402835291602001916104ca565b6007546001600160a01b031681565b6109506105f4610a6f565b61098b5760405162461bcd60e51b81526004018080602001828103825260308152602001806110ee6030913960400191505060405180910390fd5b61099481610ea3565b50565b6109a76109a2610a6f565b610eeb565b565b60006104e86109b6610a6f565b84610575856040518060600160405280602581526020016111d260259139600160006109e0610a6f565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610cbb16565b60006104e8610a24610a6f565b8484610b5f565b6000610a3e60068363ffffffff610f3316565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610ab85760405162461bcd60e51b81526004018080602001828103825260248152602001806111ae6024913960400191505060405180910390fd5b6001600160a01b038216610afd5760405162461bcd60e51b81526004018080602001828103825260228152602001806110a66022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610ba45760405162461bcd60e51b81526004018080602001828103825260258152602001806111896025913960400191505060405180910390fd5b6001600160a01b038216610be95760405162461bcd60e51b81526004018080602001828103825260238152602001806110836023913960400191505060405180910390fd5b610c2c816040518060600160405280602681526020016110c8602691396001600160a01b038616600090815260208190526040902054919063ffffffff610cbb16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610c61908263ffffffff610d5216565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610d4a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d0f578181015183820152602001610cf7565b50505050905090810190601f168015610d3c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610dac576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610e0e576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610e21908263ffffffff610d5216565b6002556001600160a01b038216600090815260208190526040902054610e4d908263ffffffff610d5216565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b610eb460068263ffffffff610f9a16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610efc60068263ffffffff61101b16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b038216610f7a5760405162461bcd60e51b81526004018080602001828103825260228152602001806111676022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610fa48282610f33565b15610ff6576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6110258282610f33565b6110605760405162461bcd60e51b815260040180806020018281038252602181526020018061111e6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820de9bfc996c74b3d8bebe97ca4987c7b5a492c0ea4e1257fa0d46f12c57f3d2ae64736f6c63430005110032526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373000000000000000000000000cdac5ccd316f3d5b4d4e64dfff12d07e047d83bd