Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been verified via Sourcify.
View contract in Sourcify repository
- Contract name:
- Acubees
- Optimization enabled
- false
- Compiler version
- v0.8.8+commit.dddeac2f
- EVM Version
- london
- Verified at
- 2026-04-27T00:17:31.833062Z
acubees.sol
/* We are Acubees. we are AI creatures that live on the ethereum blockchain.
we believe code is law so we keep it clean and short, easy to review.
feel free to join the movement for decentralization.
twitter: https://twitter.com/acubees
ENS name: aucbees.eth
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Acubees {
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;
address public owner;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event Approval(address indexed owner, address indexed spender, uint256 value);
event Transfer(address indexed from, address indexed to, uint256 value);
constructor() {
name = "Acubees";
symbol = "Acubee";
decimals = 3;
totalSupply = 1032 * 10 ** uint256(decimals);
owner = msg.sender;
balanceOf[msg.sender] = totalSupply;
}
modifier onlyOwner() {
require(msg.sender == owner, "Acubees: caller is not the owner");
_;
}
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(owner, address(0));
owner = address(0);
}
function transfer(address to, uint256 value) public returns (bool) {
require(to != address(0), "Acubees: transfer to the zero address");
require(value <= balanceOf[msg.sender], "Acubees: insufficient balance");
balanceOf[msg.sender] -= value;
balanceOf[to] += value;
emit Transfer(msg.sender, to, value);
return true;
}
function transferFrom(address from, address to, uint256 value) public returns (bool) {
require(to != address(0), "Acubees: transfer to the zero address");
require(value <= balanceOf[from], "Acubees: insufficient balance");
require(value <= allowance[from][msg.sender], "Acubees: insufficient allowance");
balanceOf[from] -= value;
balanceOf[to] += value;
allowance[from][msg.sender] -= value;
emit Transfer(from, to, value);
return true;
}
function approve(address spender, uint256 value) public returns (bool) {
allowance[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
allowance[msg.sender][spender] += addedValue;
emit Approval(msg.sender, spender, allowance[msg.sender][spender]);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
uint256 currentAllowance = allowance[msg.sender][spender];
require(currentAllowance >= subtractedValue, "Acubees: allowance cannot be negative");
allowance[msg.sender][spender] = currentAllowance - subtractedValue;
emit Approval(msg.sender, spender, allowance[msg.sender][spender]);
return true;
}
}
Compiler Settings
{"remappings":[],"optimizer":{"runs":200,"enabled":false},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"london","compilationTarget":{"acubees.sol":"Acubees"}}
Contract ABI
[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"subtractedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"addedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"}]}]
Contract Creation Code
0x60806040523480156200001157600080fd5b506040518060400160405280600781526020017f4163756265657300000000000000000000000000000000000000000000000000815250600090805190602001906200005f9291906200018d565b506040518060400160405280600681526020017f416375626565000000000000000000000000000000000000000000000000000081525060019080519060200190620000ad9291906200018d565b506003600260006101000a81548160ff021916908360ff160217905550600260009054906101000a900460ff1660ff16600a620000eb9190620003ca565b610408620000fa91906200041b565b60038190555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620004e1565b8280546200019b90620004ab565b90600052602060002090601f016020900481019282620001bf57600085556200020b565b82601f10620001da57805160ff19168380011785556200020b565b828001600101855582156200020b579182015b828111156200020a578251825591602001919060010190620001ed565b5b5090506200021a91906200021e565b5090565b5b80821115620002395760008160009055506001016200021f565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620002cb57808604811115620002a357620002a26200023d565b5b6001851615620002b35780820291505b8081029050620002c3856200026c565b945062000283565b94509492505050565b600082620002e65760019050620003b9565b81620002f65760009050620003b9565b81600181146200030f57600281146200031a5762000350565b6001915050620003b9565b60ff8411156200032f576200032e6200023d565b5b8360020a9150848211156200034957620003486200023d565b5b50620003b9565b5060208310610133831016604e8410600b84101617156200038a5782820a9050838111156200038457620003836200023d565b5b620003b9565b62000399848484600162000279565b92509050818404811115620003b357620003b26200023d565b5b81810290505b9392505050565b6000819050919050565b6000620003d782620003c0565b9150620003e483620003c0565b9250620004137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620002d4565b905092915050565b60006200042882620003c0565b91506200043583620003c0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200047157620004706200023d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004c457607f821691505b60208210811415620004db57620004da6200047c565b5b50919050565b61169880620004f16000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610216578063a457c2d714610234578063a9059cbb14610264578063dd62ed3e14610294576100cf565b806370a08231146101be578063715018a6146101ee5780638da5cb5b146101f8576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102c4565b6040516100e99190611064565b60405180910390f35b61010c6004803603810190610107919061111f565b610352565b604051610119919061117a565b60405180910390f35b61012a610444565b60405161013791906111a4565b60405180910390f35b61015a600480360381019061015591906111bf565b61044a565b604051610167919061117a565b60405180910390f35b6101786107ab565b604051610185919061122e565b60405180910390f35b6101a860048036038101906101a3919061111f565b6107be565b6040516101b5919061117a565b60405180910390f35b6101d860048036038101906101d39190611249565b61093e565b6040516101e591906111a4565b60405180910390f35b6101f6610956565b005b610200610aa7565b60405161020d9190611285565b60405180910390f35b61021e610acd565b60405161022b9190611064565b60405180910390f35b61024e6004803603810190610249919061111f565b610b5b565b60405161025b919061117a565b60405180910390f35b61027e6004803603810190610279919061111f565b610d98565b60405161028b919061117a565b60405180910390f35b6102ae60048036038101906102a991906112a0565b610fa6565b6040516102bb91906111a4565b60405180910390f35b600080546102d19061130f565b80601f01602080910402602001604051908101604052809291908181526020018280546102fd9061130f565b801561034a5780601f1061031f5761010080835404028352916020019161034a565b820191906000526020600020905b81548152906001019060200180831161032d57829003601f168201915b505050505081565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161043291906111a4565b60405180910390a36001905092915050565b60035481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b2906113b3565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561053d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105349061141f565b60405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156105fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f39061148b565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461064b91906114da565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106a1919061150e565b9250508190555081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461073491906114da565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161079891906111a4565b60405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461084c919061150e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405161092c91906111a4565b60405180910390a36001905092915050565b60056020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd906115b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610ada9061130f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b069061130f565b8015610b535780601f10610b2857610100808354040283529160200191610b53565b820191906000526020600020905b815481529060010190602001808311610b3657829003601f168201915b505050505081565b600080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790611642565b60405180910390fd5b8281610c2c91906114da565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610d8591906111a4565b60405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e00906113b3565b60405180910390fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e829061141f565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610eda91906114da565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f30919061150e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f9491906111a4565b60405180910390a36001905092915050565b6006602052816000526040600020602052806000526040600020600091509150505481565b600081519050919050565b600082825260208201905092915050565b60005b83811015611005578082015181840152602081019050610fea565b83811115611014576000848401525b50505050565b6000601f19601f8301169050919050565b600061103682610fcb565b6110408185610fd6565b9350611050818560208601610fe7565b6110598161101a565b840191505092915050565b6000602082019050818103600083015261107e818461102b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006110b68261108b565b9050919050565b6110c6816110ab565b81146110d157600080fd5b50565b6000813590506110e3816110bd565b92915050565b6000819050919050565b6110fc816110e9565b811461110757600080fd5b50565b600081359050611119816110f3565b92915050565b6000806040838503121561113657611135611086565b5b6000611144858286016110d4565b92505060206111558582860161110a565b9150509250929050565b60008115159050919050565b6111748161115f565b82525050565b600060208201905061118f600083018461116b565b92915050565b61119e816110e9565b82525050565b60006020820190506111b96000830184611195565b92915050565b6000806000606084860312156111d8576111d7611086565b5b60006111e6868287016110d4565b93505060206111f7868287016110d4565b92505060406112088682870161110a565b9150509250925092565b600060ff82169050919050565b61122881611212565b82525050565b6000602082019050611243600083018461121f565b92915050565b60006020828403121561125f5761125e611086565b5b600061126d848285016110d4565b91505092915050565b61127f816110ab565b82525050565b600060208201905061129a6000830184611276565b92915050565b600080604083850312156112b7576112b6611086565b5b60006112c5858286016110d4565b92505060206112d6858286016110d4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061132757607f821691505b6020821081141561133b5761133a6112e0565b5b50919050565b7f416375626565733a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061139d602583610fd6565b91506113a882611341565b604082019050919050565b600060208201905081810360008301526113cc81611390565b9050919050565b7f416375626565733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000611409601d83610fd6565b9150611414826113d3565b602082019050919050565b60006020820190508181036000830152611438816113fc565b9050919050565b7f416375626565733a20696e73756666696369656e7420616c6c6f77616e636500600082015250565b6000611475601f83610fd6565b91506114808261143f565b602082019050919050565b600060208201905081810360008301526114a481611468565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114e5826110e9565b91506114f0836110e9565b925082821015611503576115026114ab565b5b828203905092915050565b6000611519826110e9565b9150611524836110e9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611559576115586114ab565b5b828201905092915050565b7f416375626565733a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061159a602083610fd6565b91506115a582611564565b602082019050919050565b600060208201905081810360008301526115c98161158d565b9050919050565b7f416375626565733a20616c6c6f77616e63652063616e6e6f74206265206e656760008201527f6174697665000000000000000000000000000000000000000000000000000000602082015250565b600061162c602583610fd6565b9150611637826115d0565b604082019050919050565b6000602082019050818103600083015261165b8161161f565b905091905056fea26469706673582212204c268667f87cdf2c19d52297bc6c981991aec96e702cb582874cac22a676c5fa64736f6c63430008080033
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610216578063a457c2d714610234578063a9059cbb14610264578063dd62ed3e14610294576100cf565b806370a08231146101be578063715018a6146101ee5780638da5cb5b146101f8576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102c4565b6040516100e99190611064565b60405180910390f35b61010c6004803603810190610107919061111f565b610352565b604051610119919061117a565b60405180910390f35b61012a610444565b60405161013791906111a4565b60405180910390f35b61015a600480360381019061015591906111bf565b61044a565b604051610167919061117a565b60405180910390f35b6101786107ab565b604051610185919061122e565b60405180910390f35b6101a860048036038101906101a3919061111f565b6107be565b6040516101b5919061117a565b60405180910390f35b6101d860048036038101906101d39190611249565b61093e565b6040516101e591906111a4565b60405180910390f35b6101f6610956565b005b610200610aa7565b60405161020d9190611285565b60405180910390f35b61021e610acd565b60405161022b9190611064565b60405180910390f35b61024e6004803603810190610249919061111f565b610b5b565b60405161025b919061117a565b60405180910390f35b61027e6004803603810190610279919061111f565b610d98565b60405161028b919061117a565b60405180910390f35b6102ae60048036038101906102a991906112a0565b610fa6565b6040516102bb91906111a4565b60405180910390f35b600080546102d19061130f565b80601f01602080910402602001604051908101604052809291908181526020018280546102fd9061130f565b801561034a5780601f1061031f5761010080835404028352916020019161034a565b820191906000526020600020905b81548152906001019060200180831161032d57829003601f168201915b505050505081565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161043291906111a4565b60405180910390a36001905092915050565b60035481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b2906113b3565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561053d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105349061141f565b60405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156105fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f39061148b565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461064b91906114da565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106a1919061150e565b9250508190555081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461073491906114da565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161079891906111a4565b60405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461084c919061150e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405161092c91906111a4565b60405180910390a36001905092915050565b60056020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd906115b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610ada9061130f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b069061130f565b8015610b535780601f10610b2857610100808354040283529160200191610b53565b820191906000526020600020905b815481529060010190602001808311610b3657829003601f168201915b505050505081565b600080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1790611642565b60405180910390fd5b8281610c2c91906114da565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610d8591906111a4565b60405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e00906113b3565b60405180910390fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e829061141f565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610eda91906114da565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f30919061150e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f9491906111a4565b60405180910390a36001905092915050565b6006602052816000526040600020602052806000526040600020600091509150505481565b600081519050919050565b600082825260208201905092915050565b60005b83811015611005578082015181840152602081019050610fea565b83811115611014576000848401525b50505050565b6000601f19601f8301169050919050565b600061103682610fcb565b6110408185610fd6565b9350611050818560208601610fe7565b6110598161101a565b840191505092915050565b6000602082019050818103600083015261107e818461102b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006110b68261108b565b9050919050565b6110c6816110ab565b81146110d157600080fd5b50565b6000813590506110e3816110bd565b92915050565b6000819050919050565b6110fc816110e9565b811461110757600080fd5b50565b600081359050611119816110f3565b92915050565b6000806040838503121561113657611135611086565b5b6000611144858286016110d4565b92505060206111558582860161110a565b9150509250929050565b60008115159050919050565b6111748161115f565b82525050565b600060208201905061118f600083018461116b565b92915050565b61119e816110e9565b82525050565b60006020820190506111b96000830184611195565b92915050565b6000806000606084860312156111d8576111d7611086565b5b60006111e6868287016110d4565b93505060206111f7868287016110d4565b92505060406112088682870161110a565b9150509250925092565b600060ff82169050919050565b61122881611212565b82525050565b6000602082019050611243600083018461121f565b92915050565b60006020828403121561125f5761125e611086565b5b600061126d848285016110d4565b91505092915050565b61127f816110ab565b82525050565b600060208201905061129a6000830184611276565b92915050565b600080604083850312156112b7576112b6611086565b5b60006112c5858286016110d4565b92505060206112d6858286016110d4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061132757607f821691505b6020821081141561133b5761133a6112e0565b5b50919050565b7f416375626565733a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061139d602583610fd6565b91506113a882611341565b604082019050919050565b600060208201905081810360008301526113cc81611390565b9050919050565b7f416375626565733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000611409601d83610fd6565b9150611414826113d3565b602082019050919050565b60006020820190508181036000830152611438816113fc565b9050919050565b7f416375626565733a20696e73756666696369656e7420616c6c6f77616e636500600082015250565b6000611475601f83610fd6565b91506114808261143f565b602082019050919050565b600060208201905081810360008301526114a481611468565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114e5826110e9565b91506114f0836110e9565b925082821015611503576115026114ab565b5b828203905092915050565b6000611519826110e9565b9150611524836110e9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611559576115586114ab565b5b828201905092915050565b7f416375626565733a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061159a602083610fd6565b91506115a582611564565b602082019050919050565b600060208201905081810360008301526115c98161158d565b9050919050565b7f416375626565733a20616c6c6f77616e63652063616e6e6f74206265206e656760008201527f6174697665000000000000000000000000000000000000000000000000000000602082015250565b600061162c602583610fd6565b9150611637826115d0565b604082019050919050565b6000602082019050818103600083015261165b8161161f565b905091905056fea26469706673582212204c268667f87cdf2c19d52297bc6c981991aec96e702cb582874cac22a676c5fa64736f6c63430008080033