[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "rawAmount", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "rawAmount", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b506040518060400160405280600681526020017f4c656761637900000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f4c454741435900000000000000000000000000000000000000000000000000008152506200009e62000092620000e860201b60201c565b620000f060201b60201c565b8160049081620000af9190620006ee565b508060059081620000c19190620006ee565b505050620000e2336b033b2e3c9fd0803ce8000000620001b460201b60201c565b6200090c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002295760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200022091906200081a565b60405180910390fd5b6200023d600083836200024160201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620002975780600360008282546200028a919062000866565b925050819055506200036f565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000327578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200031e93929190620008b2565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003ba578060036000828254039250508190555062000408565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004679190620008ef565b60405180910390a3505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004f657607f821691505b6020821081036200050c576200050b620004ae565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000537565b62000582868362000537565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005cf620005c9620005c3846200059a565b620005a4565b6200059a565b9050919050565b6000819050919050565b620005eb83620005ae565b62000603620005fa82620005d6565b84845462000544565b825550505050565b600090565b6200061a6200060b565b62000627818484620005e0565b505050565b5b818110156200064f576200064360008262000610565b6001810190506200062d565b5050565b601f8211156200069e57620006688162000512565b620006738462000527565b8101602085101562000683578190505b6200069b620006928562000527565b8301826200062c565b50505b505050565b600082821c905092915050565b6000620006c360001984600802620006a3565b1980831691505092915050565b6000620006de8383620006b0565b9150826002028217905092915050565b620006f98262000474565b67ffffffffffffffff8111156200071557620007146200047f565b5b620007218254620004dd565b6200072e82828562000653565b600060209050601f83116001811462000766576000841562000751578287015190505b6200075d8582620006d0565b865550620007cd565b601f198416620007768662000512565b60005b82811015620007a05784890151825560018201915060208501945060208101905062000779565b86831015620007c05784890151620007bc601f891682620006b0565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080282620007d5565b9050919050565b6200081481620007f5565b82525050565b600060208201905062000831600083018462000809565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000873826200059a565b915062000880836200059a565b92508282019050808211156200089b576200089a62000837565b5b92915050565b620008ac816200059a565b82525050565b6000606082019050620008c9600083018662000809565b620008d86020830185620008a1565b620008e76040830184620008a1565b949350505050565b6000602082019050620009066000830184620008a1565b92915050565b61145f806200091c6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063715018a61161008c578063a457c2d711610066578063a457c2d71461024f578063a9059cbb1461027f578063dd62ed3e146102af578063f2fde38b146102df576100ea565b8063715018a6146102095780638da5cb5b1461021357806395d89b4114610231576100ea565b806323b872dd116100c857806323b872dd1461015b578063313ce5671461018b57806339509351146101a957806370a08231146101d9576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461013d575b600080fd5b6100f76102fb565b6040516101049190610f81565b60405180910390f35b6101276004803603810190610122919061103c565b61038d565b6040516101349190611097565b60405180910390f35b6101456103b0565b60405161015291906110c1565b60405180910390f35b610175600480360381019061017091906110dc565b6103ba565b6040516101829190611097565b60405180910390f35b6101936103e9565b6040516101a0919061114b565b60405180910390f35b6101c360048036038101906101be919061103c565b6103f2565b6040516101d09190611097565b60405180910390f35b6101f360048036038101906101ee9190611166565b6104d4565b60405161020091906110c1565b60405180910390f35b61021161051d565b005b61021b61054e565b60405161022891906111a2565b60405180910390f35b610239610577565b6040516102469190610f81565b60405180910390f35b6102696004803603810190610264919061103c565b610609565b6040516102769190611097565b60405180910390f35b6102996004803603810190610294919061103c565b6106a7565b6040516102a69190611097565b60405180910390f35b6102c960048036038101906102c491906111bd565b6106ca565b6040516102d691906110c1565b60405180910390f35b6102f960048036038101906102f49190611166565b610751565b005b60606004805461030a9061122c565b80601f01602080910402602001604051908101604052809291908181526020018280546103369061122c565b80156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b5050505050905090565b6000806103986107d4565b90506103a58185856107dc565b600191505092915050565b6000600354905090565b6000806103c56107d4565b90506103d28582856107ee565b6103dd858585610882565b60019150509392505050565b60006012905090565b6000806104143373ffffffffffffffffffffffffffffffffffffffff16610976565b905060008111156104b6576104b1338585600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ac919061128c565b6107dc565b6104c9565b6104c8846104c26107d4565b856107dc565b5b600191505092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61052561098e565b61052f6000610a0c565b6000610539610ad0565b90508060a052600160c05280604060a0205550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546105869061122c565b80601f01602080910402602001604051908101604052809291908181526020018280546105b29061122c565b80156105ff5780601f106105d4576101008083540402835291602001916105ff565b820191906000526020600020905b8154815290600101906020018083116105e257829003601f168201915b5050505050905090565b600061069d338484600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461069891906112c0565b6107dc565b6001905092915050565b6000806106b26107d4565b90506106bf818585610882565b600191505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61075961098e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bf90611366565b60405180910390fd5b6107d181610a0c565b50565b600033905090565b6107e98383836001610af2565b505050565b60006107fa84846106ca565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461087c578181101561086c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161086393929190611386565b60405180910390fd5b61087b84848484036000610af2565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108f45760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108eb91906111a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109665760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161095d91906111a2565b60405180910390fd5b610971838383610cc9565b505050565b600080610981610ad0565b9050828103915050919050565b6109966107d4565b73ffffffffffffffffffffffffffffffffffffffff166109b461054e565b73ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0190611409565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600b7507e9fe1cd9ac6185fc4a36206dd161e1f7f17d709800901c905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b645760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b5b91906111a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bd65760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610bcd91906111a2565b60405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610cc3578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cba91906110c1565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d1b578060036000828254610d0f919061128c565b92505081905550610df0565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610da8578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d9f93929190611386565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e395780600360008282540392505081905550610e87565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ee491906110c1565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f2b578082015181840152602081019050610f10565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f5382610ef1565b610f5d8185610efc565b9350610f6d818560208601610f0d565b610f7681610f37565b840191505092915050565b60006020820190508181036000830152610f9b8184610f48565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fd382610fa8565b9050919050565b610fe381610fc8565b8114610fee57600080fd5b50565b60008135905061100081610fda565b92915050565b6000819050919050565b61101981611006565b811461102457600080fd5b50565b60008135905061103681611010565b92915050565b6000806040838503121561105357611052610fa3565b5b600061106185828601610ff1565b925050602061107285828601611027565b9150509250929050565b60008115159050919050565b6110918161107c565b82525050565b60006020820190506110ac6000830184611088565b92915050565b6110bb81611006565b82525050565b60006020820190506110d660008301846110b2565b92915050565b6000806000606084860312156110f5576110f4610fa3565b5b600061110386828701610ff1565b935050602061111486828701610ff1565b925050604061112586828701611027565b9150509250925092565b600060ff82169050919050565b6111458161112f565b82525050565b6000602082019050611160600083018461113c565b92915050565b60006020828403121561117c5761117b610fa3565b5b600061118a84828501610ff1565b91505092915050565b61119c81610fc8565b82525050565b60006020820190506111b76000830184611193565b92915050565b600080604083850312156111d4576111d3610fa3565b5b60006111e285828601610ff1565b92505060206111f385828601610ff1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061124457607f821691505b602082108103611257576112566111fd565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061129782611006565b91506112a283611006565b92508282019050808211156112ba576112b961125d565b5b92915050565b60006112cb82611006565b91506112d683611006565b92508282039050818111156112ee576112ed61125d565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611350602683610efc565b915061135b826112f4565b604082019050919050565b6000602082019050818103600083015261137f81611343565b9050919050565b600060608201905061139b6000830186611193565b6113a860208301856110b2565b6113b560408301846110b2565b949350505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006113f3602083610efc565b91506113fe826113bd565b602082019050919050565b60006020820190508181036000830152611422816113e6565b905091905056fea26469706673582212200ed11dc5efab630cd0be58f8d60ca154363c9e617360461bcdbf3f8d57d5918064736f6c63430008180033