60806040526b033b2e3c9fd0803ce800000060035573e7ea086bfe52df8ba311bf4fc49113b18aa9420360075534801562000038575f80fd5b5060405162000df738038062000df78339810160408190526200005b9162000230565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506004620000a9838262000322565b506005620000b8828262000322565b50600354335f90815260026020526040902055620000d5620000dd565b50506200044b565b6007545f80620000ee8382620003fe565b620000fa919062000428565b600680546001600160a01b0319166001600160a01b03831617905590506200011f3390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200016691815260200190565b60405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000196575f80fd5b81516001600160401b0380821115620001b357620001b362000172565b604051601f8301601f19908116603f01168101908282118183101715620001de57620001de62000172565b81604052838152602092508683858801011115620001fa575f80fd5b5f91505b838210156200021d5785820183015181830184015290820190620001fe565b5f93810190920192909252949350505050565b5f806040838503121562000242575f80fd5b82516001600160401b038082111562000259575f80fd5b620002678683870162000186565b935060208501519150808211156200027d575f80fd5b506200028c8582860162000186565b9150509250929050565b600181811c90821680620002ab57607f821691505b602082108103620002ca57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200031d575f81815260208120601f850160051c81016020861015620002f85750805b601f850160051c820191505b81811015620003195782815560010162000304565b5050505b505050565b81516001600160401b038111156200033e576200033e62000172565b62000356816200034f845462000296565b84620002d0565b602080601f8311600181146200038c575f8415620003745750858301515b5f19600386901b1c1916600185901b17855562000319565b5f85815260208120601f198616915b82811015620003bc578886015182559484019460019091019084016200039b565b5085821015620003da57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160a01b03818116838216019080821115620004215762000421620003ea565b5092915050565b6001600160a01b03828116828216039080821115620004215762000421620003ea565b61099e80620004595f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c806370a082311161006e57806370a082311461011f578063715018a6146101475780638da5cb5b1461015157806395d89b411461016b578063a9059cbb14610173578063dd62ed3e14610186575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100eb57806323b872dd146100fd578063313ce56714610110575b5f80fd5b6100b26101be565b6040516100bf91906107ce565b60405180910390f35b6100db6100d6366004610834565b61024e565b60405190151581526020016100bf565b6003545b6040519081526020016100bf565b6100db61010b36600461085c565b610267565b604051601281526020016100bf565b6100ef61012d366004610895565b6001600160a01b03165f9081526002602052604090205490565b61014f610331565b005b5f546040516001600160a01b0390911681526020016100bf565b6100b26103d2565b6100db610181366004610834565b6103e1565b6100ef6101943660046108ae565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600480546101cd906108df565b80601f01602080910402602001604051908101604052809291908181526020018280546101f9906108df565b80156102445780601f1061021b57610100808354040283529160200191610244565b820191905f5260205f20905b81548152906001019060200180831161022757829003601f168201915b5050505050905090565b5f3361025b818585610414565b60019150505b92915050565b6001600160a01b0383165f9081526001602090815260408083203380855292528220545f1981146102f457838110156102e75760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064015b60405180910390fd5b6102f48683868403610414565b61030086600186610537565b506001600160a01b0388165f9081526002602052604090205550610325868686610586565b50600195945050505050565b5f546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102de565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600580546101cd906108df565b5f336103ef81600185610537565b506001600160a01b0383165f908152600260205260409020555061025b818585610586565b6001600160a01b0383166104765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102de565b6001600160a01b0382166104d75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102de565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f808084151560010361055d57600161055087866106f4565b600192509250925061057d565b5050506001600160a01b0383165f90815260026020526040902054600190815b93509350939050565b6001600160a01b038316158015906105a657506001600160a01b03821615155b6105f25760405162461bcd60e51b815260206004820181905260248201527f45524332303a207472616e7366657220746865207a65726f206164647265737360448201526064016102de565b6001600160a01b0383165f908152600260205260409020548181101561065a5760405162461bcd60e51b815260206004820152601a60248201527f45524332303a20616d6f756e74206f7665722062616c616e636500000000000060448201526064016102de565b610664828261092b565b6001600160a01b038086165f90815260026020526040808220939093559085168152205461069390839061093e565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106e69086815260200190565b60405180910390a350505050565b6006546001600160a01b038381165f908152600260205260408120549092610720921690819086610727565b9392505050565b5f60018311156107435761073c848484610756565b905061074e565b61073c858484610756565b949350505050565b604051636fc7849760e01b8152326004820152602481018390526001600160a01b0382811660448301525f9190851690636fc7849790606401602060405180830381865afa1580156107aa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074e9190610951565b5f6020808352835180828501525f5b818110156107f9578581018301518582016040015282016107dd565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461082f575f80fd5b919050565b5f8060408385031215610845575f80fd5b61084e83610819565b946020939093013593505050565b5f805f6060848603121561086e575f80fd5b61087784610819565b925061088560208501610819565b9150604084013590509250925092565b5f602082840312156108a5575f80fd5b61072082610819565b5f80604083850312156108bf575f80fd5b6108c883610819565b91506108d660208401610819565b90509250929050565b600181811c908216806108f357607f821691505b60208210810361091157634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561026157610261610917565b8082018082111561026157610261610917565b5f60208284031215610961575f80fd5b505191905056fea2646970667358221220804c1fdab9576eab92f304e9f18440573a9c4fac3d5b4c42844ac88899eb5b8264736f6c63430008140033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000005535445564500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055354455645000000000000000000000000000000000000000000000000000000