6080604052600580546001600160a01b031916736ce8ac745c5607f9511421816218a0509a1741791790553480156200003757600080fd5b506040516200124f3803806200124f8339810160408190526200005a916200017b565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000a96009600a620002aa565b620000b99063041cdb40620002c2565b336000908152600160208190526040822092909255600390620000e46000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556006819055620001193390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001536009600a620002aa565b620001639063041cdb40620002c2565b60405190815260200160405180910390a350620002e4565b6000602082840312156200018e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001ec578160001904821115620001d057620001d062000195565b80851615620001de57918102915b93841c9390800290620001b0565b509250929050565b6000826200020557506001620002a4565b816200021457506000620002a4565b81600181146200022d5760028114620002385762000258565b6001915050620002a4565b60ff8411156200024c576200024c62000195565b50506001821b620002a4565b5060208310610133831016604e8410600b84101617156200027d575081810a620002a4565b620002898383620001ab565b8060001904821115620002a057620002a062000195565b0290505b92915050565b6000620002bb60ff841683620001f4565b9392505050565b6000816000190483118215151615620002df57620002df62000195565b500290565b610f5b80620002f46000396000f3fe6080604052600436106100c55760003560e01c806370a082311161007f57806395d89b411161005957806395d89b411461023c578063a9059cbb1461026a578063d5ba16481461028a578063dd62ed3e146102aa57600080fd5b806370a08231146101bd578063715018a6146101f35780638da5cb5b1461020a57600080fd5b80624038e3146100d157806306fdde0314610107578063095ea7b31461013e57806318160ddd1461015e57806323b872dd14610181578063313ce567146101a157600080fd5b366100cc57005b600080fd5b3480156100dd57600080fd5b506007546100f290600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561011357600080fd5b506040805180820190915260058152644d6f6e6b6560d81b60208201525b6040516100fe9190610c56565b34801561014a57600080fd5b506100f2610159366004610cc0565b6102f0565b34801561016a57600080fd5b50610173610307565b6040519081526020016100fe565b34801561018d57600080fd5b506100f261019c366004610cea565b610328565b3480156101ad57600080fd5b50604051600981526020016100fe565b3480156101c957600080fd5b506101736101d8366004610d26565b6001600160a01b031660009081526001602052604090205490565b3480156101ff57600080fd5b50610208610391565b005b34801561021657600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016100fe565b34801561024857600080fd5b506040805180820190915260058152644d4f4e4b4560d81b6020820152610131565b34801561027657600080fd5b506100f2610285366004610cc0565b61043a565b34801561029657600080fd5b50600754610224906001600160a01b031681565b3480156102b657600080fd5b506101736102c5366004610d41565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006102fd338484610447565b5060015b92915050565b60006103156009600a610e6e565b6103239063041cdb40610e7d565b905090565b600061033584848461056b565b610387843361038285604051806060016040528060288152602001610efe602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610a6c565b610447565b5060019392505050565b6000546001600160a01b031633146103f05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006102fd33848461056b565b6001600160a01b0383166104a95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e7565b6001600160a01b03821661050a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166105cf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e7565b6001600160a01b0382166106315760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e7565b600081116106935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e7565b600080546001600160a01b038581169116148015906106c057506000546001600160a01b03848116911614155b156108d0576001600160a01b03841660009081526003602052604090205460ff1615801561070757506001600160a01b03831660009081526003602052604090205460ff16155b156108c857600754600160a01b900460ff1615801561073357506005546001600160a01b038481169116145b1561075a57600780546001600160a81b0319166001600160a01b03861617600160a01b1790555b600754600160a01b900460ff161561085b5760075460009081906001600160a01b039081169087160361078b575060015b3060009081526004602052604090205460ff161515816107cb57806107b15760006107ce565b6107c660016107c08782610aa6565b90610b2f565b6107ce565b60005b6001600160a01b0388166000908152600160205260409020549093506107f49086610b71565b6001600160a01b03881660009081526001602052604090205561083961081a8685610b71565b6001600160a01b03881660009081526001602052604090205490610bb3565b6001600160a01b038716600090815260016020526040902055506108c3915050565b600754600160a01b900460ff166108c35760405162461bcd60e51b815260206004820152602660248201527f45524332303a2050616972206e6f74206372656174656420666f722074686973604482015265103a37b5b2b760d11b60648201526084016103e7565b6108d4565b5060016108d4565b5060015b8015610a19576000806108ef6000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561092857506001600160a01b03851660009081526003602052604090205460ff165b801561094157506007546001600160a01b038781169116145b156109895730600090815260046020526040902054600192506109679060ff1683610e9c565b306000908152600460205260409020805460ff191660ff929092169190911790555b61099282610c12565b6001600160a01b0387166000908152600160205260409020549091506109b89085610b71565b6001600160a01b0387166000908152600160205260409020556109fd6109de8583610bb3565b6001600160a01b03871660009081526001602052604090205490610bb3565b6001600160a01b03861660009081526001602052604090205550505b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5e91815260200190565b60405180910390a350505050565b60008184841115610a905760405162461bcd60e51b81526004016103e79190610c56565b506000610a9d8486610eb5565b95945050505050565b600082600003610ab857506000610301565b6000610ac48385610e7d565b905082610ad18583610ec8565b14610b285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e7565b9392505050565b6000610b2883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c28565b6000610b2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a6c565b600080610bc08385610eea565b905083811015610b285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e7565b600081610c20576000610301565b505060065490565b60008183610c495760405162461bcd60e51b81526004016103e79190610c56565b506000610a9d8486610ec8565b600060208083528351808285015260005b81811015610c8357858101830151858201604001528201610c67565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610cbb57600080fd5b919050565b60008060408385031215610cd357600080fd5b610cdc83610ca4565b946020939093013593505050565b600080600060608486031215610cff57600080fd5b610d0884610ca4565b9250610d1660208501610ca4565b9150604084013590509250925092565b600060208284031215610d3857600080fd5b610b2882610ca4565b60008060408385031215610d5457600080fd5b610d5d83610ca4565b9150610d6b60208401610ca4565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610dc5578160001904821115610dab57610dab610d74565b80851615610db857918102915b93841c9390800290610d8f565b509250929050565b600082610ddc57506001610301565b81610de957506000610301565b8160018114610dff5760028114610e0957610e25565b6001915050610301565b60ff841115610e1a57610e1a610d74565b50506001821b610301565b5060208310610133831016604e8410600b8410161715610e48575081810a610301565b610e528383610d8a565b8060001904821115610e6657610e66610d74565b029392505050565b6000610b2860ff841683610dcd565b6000816000190483118215151615610e9757610e97610d74565b500290565b60ff818116838216019081111561030157610301610d74565b8181038181111561030157610301610d74565b600082610ee557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561030157610301610d7456fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220311540535f50d450a3000be044337d5f821493fd0b11f257e9fde1b0e012d72164736f6c634300081000330000000000000000000000000000000000000000000000005fc1b97136320000