ERC-20
Overview
Max Total Supply
420,690,000,000,000 XPEPEX
Holders
44
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000297656250000001 XPEPEXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
XPEPEX
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (utils/Context.sol) pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } pragma solidity ^0.8.0; abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } pragma solidity ^0.8.0; interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } pragma solidity ^0.8.0; contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } pragma solidity ^0.8.0; import "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol"; import "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol"; contract XPEPEX is Ownable, ERC20 { uint256 public _taxRate = 100; uint256 public totalSupplyInit = 420690000000000000000000000000000; uint256 public _minSwapThreshold = (totalSupplyInit * 1 / 100); uint256 public maxTxAmount = (totalSupplyInit * 1 / 100); IUniswapV2Router02 private _uniswapV2Router; address private _uniswapV2Pair; address private _devWallet; mapping(address => bool) private _excludedFromFees; constructor( ) ERC20("XPEPEX", "XPEPEX") { _devWallet = owner(); _mint(msg.sender, totalSupplyInit); transferOwnership(msg.sender); _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); // Create a Uniswap pair for this token _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // Set the devWallet _excludedFromFees[owner()] = true; _excludedFromFees[address(this)] = true; // Set the address of Uniswap V2 router } function burn(uint256 value) external { _burn(msg.sender, value); } function _transfer( address sender, address recipient, uint256 amount ) internal override { uint256 taxAmount = 0; if (!_excludedFromFees[sender] && !_excludedFromFees[recipient]){ require(amount <= maxTxAmount, "OM"); } // Calculate the tax if sender and recipient are not excluded from fees if ((!_excludedFromFees[sender] && !_excludedFromFees[recipient])) { taxAmount = amount * _taxRate / 10000; amount -= taxAmount; } // Call parent function to perform the actual transfer super._transfer(sender, recipient, amount); // Transfer tax to the owner's balance if applicable if (taxAmount > 0) { super._transfer(sender, address(this), taxAmount); } // Swap tokens for ETH if sender is not Uniswap pair (avoid loops) and enough tokens are accumulated if (sender != _uniswapV2Pair && balanceOf(address(this)) >= _minSwapThreshold) { swapTokensForEth(balanceOf(address(this))); } } function setDevWallet(address _newW) public onlyOwner{ _devWallet = _newW; } function excludeFromFees(address account) public onlyOwner { _excludedFromFees[account] = true; } function setTaxRate(uint256 _newTaxRate) public onlyOwner { require(_newTaxRate <= 2000); _taxRate = _newTaxRate; } function includeInFees(address account) public onlyOwner { _excludedFromFees[account] = false; } function setmaxTxAmount(uint256 _maxTxAmount) public onlyOwner { require(_maxTxAmount > totalSupplyInit * 1 / 10000); maxTxAmount = _maxTxAmount; } function setNewMinSwap(uint256 _minswapThresh) public onlyOwner { _minSwapThreshold = _minswapThresh; } function swapTokensForEth(uint256 tokenAmount) private { // Generate the Uniswap pair path of token -> WETH address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); // Approve token transfer to cover all possible scenarios _approve(address(this), address(_uniswapV2Router), tokenAmount); // Perform the swap and send ETH to the dev wallet _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // Accept any amount of ETH path, _devWallet, block.timestamp ); } }
pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
pragma solidity >=0.6.2; import './IUniswapV2Router01.sol'; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[],"name":"_minSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"amount","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":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"_newW","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minswapThresh","type":"uint256"}],"name":"setNewMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTaxRate","type":"uint256"}],"name":"setTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"setmaxTxAmount","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":[],"name":"totalSupplyInit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","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"}]
Contract Creation Code
608060405260646006556d14bddab3e51a57cff87a50000000600755606460016007546200002e91906200085d565b6200003a9190620008d7565b600855606460016007546200005091906200085d565b6200005c9190620008d7565b6009553480156200006c57600080fd5b506040518060400160405280600681526020017f58504550455800000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5850455045580000000000000000000000000000000000000000000000000000815250620000f9620000ed6200049760201b60201c565b6200049f60201b60201c565b81600490816200010a919062000b7f565b5080600590816200011c919062000b7f565b5050506200012f6200056360201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000183336007546200058c60201b60201c565b62000194336200070560201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000257573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027d919062000cd0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000307573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032d919062000cd0565b6040518363ffffffff1660e01b81526004016200034c92919062000d13565b6020604051808303816000875af11580156200036c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000392919062000cd0565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d6000620003e86200056360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000f36565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005f59062000da1565b60405180910390fd5b62000612600083836200081a60201b60201c565b806003600082825462000626919062000dc3565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200067e919062000dc3565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006e5919062000e0f565b60405180910390a362000701600083836200081f60201b60201c565b5050565b620007156200049760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200073b6200056360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000794576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078b9062000e7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000806576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007fd9062000f14565b60405180910390fd5b62000817816200049f60201b60201c565b50565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200086a8262000824565b9150620008778362000824565b9250828202620008878162000824565b91508282048414831517620008a157620008a06200082e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008e48262000824565b9150620008f18362000824565b925082620009045762000903620008a8565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200099157607f821691505b602082108103620009a757620009a662000949565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009d2565b62000a1d8683620009d2565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000a6062000a5a62000a548462000824565b62000a35565b62000824565b9050919050565b6000819050919050565b62000a7c8362000a3f565b62000a9462000a8b8262000a67565b848454620009df565b825550505050565b600090565b62000aab62000a9c565b62000ab881848462000a71565b505050565b5b8181101562000ae05762000ad460008262000aa1565b60018101905062000abe565b5050565b601f82111562000b2f5762000af981620009ad565b62000b0484620009c2565b8101602085101562000b14578190505b62000b2c62000b2385620009c2565b83018262000abd565b50505b505050565b600082821c905092915050565b600062000b546000198460080262000b34565b1980831691505092915050565b600062000b6f838362000b41565b9150826002028217905092915050565b62000b8a826200090f565b67ffffffffffffffff81111562000ba65762000ba56200091a565b5b62000bb2825462000978565b62000bbf82828562000ae4565b600060209050601f83116001811462000bf7576000841562000be2578287015190505b62000bee858262000b61565b86555062000c5e565b601f19841662000c0786620009ad565b60005b8281101562000c315784890151825560018201915060208501945060208101905062000c0a565b8683101562000c51578489015162000c4d601f89168262000b41565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c988262000c6b565b9050919050565b62000caa8162000c8b565b811462000cb657600080fd5b50565b60008151905062000cca8162000c9f565b92915050565b60006020828403121562000ce95762000ce862000c66565b5b600062000cf98482850162000cb9565b91505092915050565b62000d0d8162000c8b565b82525050565b600060408201905062000d2a600083018562000d02565b62000d39602083018462000d02565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d89601f8362000d40565b915062000d968262000d51565b602082019050919050565b6000602082019050818103600083015262000dbc8162000d7a565b9050919050565b600062000dd08262000824565b915062000ddd8362000824565b925082820190508082111562000df85762000df76200082e565b5b92915050565b62000e098162000824565b82525050565b600060208201905062000e26600083018462000dfe565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000e6460208362000d40565b915062000e718262000e2c565b602082019050919050565b6000602082019050818103600083015262000e978162000e55565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600062000efc60268362000d40565b915062000f098262000e9e565b604082019050919050565b6000602082019050818103600083015262000f2f8162000eed565b9050919050565b6128ef8062000f466000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e1461043c578063e1d95b981461046c578063e57f14e114610488578063f2fde38b146104a457610173565b8063a9059cbb146103d2578063c6d69a3014610402578063c84333a11461041e57610173565b8063715018a6146103205780638c0b5e221461032a5780638da5cb5b1461034857806395d89b411461036657806398f235fe14610384578063a457c2d7146103a257610173565b8063313ce56711610130578063313ce5671461024c578063395093511461026a5780634084e0b31461029a57806342966c68146102b857806365e47de2146102d457806370a08231146102f057610173565b806306fdde0314610178578063095ea7b31461019657806316a2f82a146101c657806318160ddd146101e25780631f53ac021461020057806323b872dd1461021c575b600080fd5b6101806104c0565b60405161018d9190611bee565b60405180910390f35b6101b060048036038101906101ab9190611ca9565b610552565b6040516101bd9190611d04565b60405180910390f35b6101e060048036038101906101db9190611d1f565b610570565b005b6101ea610647565b6040516101f79190611d5b565b60405180910390f35b61021a60048036038101906102159190611d1f565b610651565b005b61023660048036038101906102319190611d76565b610711565b6040516102439190611d04565b60405180910390f35b610254610809565b6040516102619190611de5565b60405180910390f35b610284600480360381019061027f9190611ca9565b610812565b6040516102919190611d04565b60405180910390f35b6102a26108be565b6040516102af9190611d5b565b60405180910390f35b6102d260048036038101906102cd9190611e00565b6108c4565b005b6102ee60048036038101906102e99190611e00565b6108d1565b005b61030a60048036038101906103059190611d1f565b61097e565b6040516103179190611d5b565b60405180910390f35b6103286109c7565b005b610332610a4f565b60405161033f9190611d5b565b60405180910390f35b610350610a55565b60405161035d9190611e3c565b60405180910390f35b61036e610a7e565b60405161037b9190611bee565b60405180910390f35b61038c610b10565b6040516103999190611d5b565b60405180910390f35b6103bc60048036038101906103b79190611ca9565b610b16565b6040516103c99190611d04565b60405180910390f35b6103ec60048036038101906103e79190611ca9565b610c01565b6040516103f99190611d04565b60405180910390f35b61041c60048036038101906104179190611e00565b610c1f565b005b610426610cb4565b6040516104339190611d5b565b60405180910390f35b61045660048036038101906104519190611e57565b610cba565b6040516104639190611d5b565b60405180910390f35b61048660048036038101906104819190611e00565b610d41565b005b6104a2600480360381019061049d9190611d1f565b610dc7565b005b6104be60048036038101906104b99190611d1f565b610e9e565b005b6060600480546104cf90611ec6565b80601f01602080910402602001604051908101604052809291908181526020018280546104fb90611ec6565b80156105485780601f1061051d57610100808354040283529160200191610548565b820191906000526020600020905b81548152906001019060200180831161052b57829003601f168201915b5050505050905090565b600061056661055f610f95565b8484610f9d565b6001905092915050565b610578610f95565b73ffffffffffffffffffffffffffffffffffffffff16610596610a55565b73ffffffffffffffffffffffffffffffffffffffff16146105ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e390611f43565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600354905090565b610659610f95565b73ffffffffffffffffffffffffffffffffffffffff16610677610a55565b73ffffffffffffffffffffffffffffffffffffffff16146106cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c490611f43565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061071e848484611166565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610769610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611fd5565b60405180910390fd5b6107fd856107f5610f95565b858403610f9d565b60019150509392505050565b60006012905090565b60006108b461081f610f95565b84846002600061082d610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108af9190612024565b610f9d565b6001905092915050565b60065481565b6108ce33826113d1565b50565b6108d9610f95565b73ffffffffffffffffffffffffffffffffffffffff166108f7610a55565b73ffffffffffffffffffffffffffffffffffffffff161461094d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094490611f43565b60405180910390fd5b612710600160075461095f9190612058565b61096991906120c9565b811161097457600080fd5b8060098190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109cf610f95565b73ffffffffffffffffffffffffffffffffffffffff166109ed610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90611f43565b60405180910390fd5b610a4d60006115a9565b565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610a8d90611ec6565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab990611ec6565b8015610b065780601f10610adb57610100808354040283529160200191610b06565b820191906000526020600020905b815481529060010190602001808311610ae957829003601f168201915b5050505050905090565b60085481565b60008060026000610b25610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd99061216c565b60405180910390fd5b610bf6610bed610f95565b85858403610f9d565b600191505092915050565b6000610c15610c0e610f95565b8484611166565b6001905092915050565b610c27610f95565b73ffffffffffffffffffffffffffffffffffffffff16610c45610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290611f43565b60405180910390fd5b6107d0811115610caa57600080fd5b8060068190555050565b60075481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d49610f95565b73ffffffffffffffffffffffffffffffffffffffff16610d67610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490611f43565b60405180910390fd5b8060088190555050565b610dcf610f95565b73ffffffffffffffffffffffffffffffffffffffff16610ded610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a90611f43565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ea6610f95565b73ffffffffffffffffffffffffffffffffffffffff16610ec4610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1190611f43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f80906121fe565b60405180910390fd5b610f92816115a9565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612290565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612322565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111599190611d5b565b60405180910390a3505050565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561120c5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561125757600954821115611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d9061238e565b60405180910390fd5b5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112fb5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561132c57612710600654836113119190612058565b61131b91906120c9565b9050808261132991906123ae565b91505b61133784848461166d565b600081111561134c5761134b84308361166d565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113b457506008546113b13061097e565b10155b156113cb576113ca6113c53061097e565b6118ef565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790612454565b60405180910390fd5b61144c82600083611b54565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906124e6565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461152b91906123ae565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115909190611d5b565b60405180910390a36115a483600084611b59565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612578565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061260a565b60405180910390fd5b611756838383611b54565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d49061269c565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118729190612024565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118d69190611d5b565b60405180910390a36118e9848484611b59565b50505050565b6000600267ffffffffffffffff81111561190c5761190b6126bc565b5b60405190808252806020026020018201604052801561193a5781602001602082028036833780820191505090505b5090503081600081518110611952576119516126eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1d919061272f565b81600181518110611a3157611a306126eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a9830600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f9d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b1e95949392919061285f565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b505050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b98578082015181840152602081019050611b7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bc082611b5e565b611bca8185611b69565b9350611bda818560208601611b7a565b611be381611ba4565b840191505092915050565b60006020820190508181036000830152611c088184611bb5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4082611c15565b9050919050565b611c5081611c35565b8114611c5b57600080fd5b50565b600081359050611c6d81611c47565b92915050565b6000819050919050565b611c8681611c73565b8114611c9157600080fd5b50565b600081359050611ca381611c7d565b92915050565b60008060408385031215611cc057611cbf611c10565b5b6000611cce85828601611c5e565b9250506020611cdf85828601611c94565b9150509250929050565b60008115159050919050565b611cfe81611ce9565b82525050565b6000602082019050611d196000830184611cf5565b92915050565b600060208284031215611d3557611d34611c10565b5b6000611d4384828501611c5e565b91505092915050565b611d5581611c73565b82525050565b6000602082019050611d706000830184611d4c565b92915050565b600080600060608486031215611d8f57611d8e611c10565b5b6000611d9d86828701611c5e565b9350506020611dae86828701611c5e565b9250506040611dbf86828701611c94565b9150509250925092565b600060ff82169050919050565b611ddf81611dc9565b82525050565b6000602082019050611dfa6000830184611dd6565b92915050565b600060208284031215611e1657611e15611c10565b5b6000611e2484828501611c94565b91505092915050565b611e3681611c35565b82525050565b6000602082019050611e516000830184611e2d565b92915050565b60008060408385031215611e6e57611e6d611c10565b5b6000611e7c85828601611c5e565b9250506020611e8d85828601611c5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ede57607f821691505b602082108103611ef157611ef0611e97565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611f2d602083611b69565b9150611f3882611ef7565b602082019050919050565b60006020820190508181036000830152611f5c81611f20565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611fbf602883611b69565b9150611fca82611f63565b604082019050919050565b60006020820190508181036000830152611fee81611fb2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202f82611c73565b915061203a83611c73565b925082820190508082111561205257612051611ff5565b5b92915050565b600061206382611c73565b915061206e83611c73565b925082820261207c81611c73565b9150828204841483151761209357612092611ff5565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006120d482611c73565b91506120df83611c73565b9250826120ef576120ee61209a565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612156602583611b69565b9150612161826120fa565b604082019050919050565b6000602082019050818103600083015261218581612149565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006121e8602683611b69565b91506121f38261218c565b604082019050919050565b60006020820190508181036000830152612217816121db565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061227a602483611b69565b91506122858261221e565b604082019050919050565b600060208201905081810360008301526122a98161226d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061230c602283611b69565b9150612317826122b0565b604082019050919050565b6000602082019050818103600083015261233b816122ff565b9050919050565b7f4f4d000000000000000000000000000000000000000000000000000000000000600082015250565b6000612378600283611b69565b915061238382612342565b602082019050919050565b600060208201905081810360008301526123a78161236b565b9050919050565b60006123b982611c73565b91506123c483611c73565b92508282039050818111156123dc576123db611ff5565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061243e602183611b69565b9150612449826123e2565b604082019050919050565b6000602082019050818103600083015261246d81612431565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006124d0602283611b69565b91506124db82612474565b604082019050919050565b600060208201905081810360008301526124ff816124c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612562602583611b69565b915061256d82612506565b604082019050919050565b6000602082019050818103600083015261259181612555565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125f4602383611b69565b91506125ff82612598565b604082019050919050565b60006020820190508181036000830152612623816125e7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612686602683611b69565b91506126918261262a565b604082019050919050565b600060208201905081810360008301526126b581612679565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061272981611c47565b92915050565b60006020828403121561274557612744611c10565b5b60006127538482850161271a565b91505092915050565b6000819050919050565b6000819050919050565b600061278b6127866127818461275c565b612766565b611c73565b9050919050565b61279b81612770565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6127d681611c35565b82525050565b60006127e883836127cd565b60208301905092915050565b6000602082019050919050565b600061280c826127a1565b61281681856127ac565b9350612821836127bd565b8060005b8381101561285257815161283988826127dc565b9750612844836127f4565b925050600181019050612825565b5085935050505092915050565b600060a0820190506128746000830188611d4c565b6128816020830187612792565b81810360408301526128938186612801565b90506128a26060830185611e2d565b6128af6080830184611d4c565b969550505050505056fea264697066735822122037e40a64a7661e557a3a6b1bf0ece3f4cb348ff40b0e518143b653e60774ab1864736f6c63430008120033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e1461043c578063e1d95b981461046c578063e57f14e114610488578063f2fde38b146104a457610173565b8063a9059cbb146103d2578063c6d69a3014610402578063c84333a11461041e57610173565b8063715018a6146103205780638c0b5e221461032a5780638da5cb5b1461034857806395d89b411461036657806398f235fe14610384578063a457c2d7146103a257610173565b8063313ce56711610130578063313ce5671461024c578063395093511461026a5780634084e0b31461029a57806342966c68146102b857806365e47de2146102d457806370a08231146102f057610173565b806306fdde0314610178578063095ea7b31461019657806316a2f82a146101c657806318160ddd146101e25780631f53ac021461020057806323b872dd1461021c575b600080fd5b6101806104c0565b60405161018d9190611bee565b60405180910390f35b6101b060048036038101906101ab9190611ca9565b610552565b6040516101bd9190611d04565b60405180910390f35b6101e060048036038101906101db9190611d1f565b610570565b005b6101ea610647565b6040516101f79190611d5b565b60405180910390f35b61021a60048036038101906102159190611d1f565b610651565b005b61023660048036038101906102319190611d76565b610711565b6040516102439190611d04565b60405180910390f35b610254610809565b6040516102619190611de5565b60405180910390f35b610284600480360381019061027f9190611ca9565b610812565b6040516102919190611d04565b60405180910390f35b6102a26108be565b6040516102af9190611d5b565b60405180910390f35b6102d260048036038101906102cd9190611e00565b6108c4565b005b6102ee60048036038101906102e99190611e00565b6108d1565b005b61030a60048036038101906103059190611d1f565b61097e565b6040516103179190611d5b565b60405180910390f35b6103286109c7565b005b610332610a4f565b60405161033f9190611d5b565b60405180910390f35b610350610a55565b60405161035d9190611e3c565b60405180910390f35b61036e610a7e565b60405161037b9190611bee565b60405180910390f35b61038c610b10565b6040516103999190611d5b565b60405180910390f35b6103bc60048036038101906103b79190611ca9565b610b16565b6040516103c99190611d04565b60405180910390f35b6103ec60048036038101906103e79190611ca9565b610c01565b6040516103f99190611d04565b60405180910390f35b61041c60048036038101906104179190611e00565b610c1f565b005b610426610cb4565b6040516104339190611d5b565b60405180910390f35b61045660048036038101906104519190611e57565b610cba565b6040516104639190611d5b565b60405180910390f35b61048660048036038101906104819190611e00565b610d41565b005b6104a2600480360381019061049d9190611d1f565b610dc7565b005b6104be60048036038101906104b99190611d1f565b610e9e565b005b6060600480546104cf90611ec6565b80601f01602080910402602001604051908101604052809291908181526020018280546104fb90611ec6565b80156105485780601f1061051d57610100808354040283529160200191610548565b820191906000526020600020905b81548152906001019060200180831161052b57829003601f168201915b5050505050905090565b600061056661055f610f95565b8484610f9d565b6001905092915050565b610578610f95565b73ffffffffffffffffffffffffffffffffffffffff16610596610a55565b73ffffffffffffffffffffffffffffffffffffffff16146105ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e390611f43565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600354905090565b610659610f95565b73ffffffffffffffffffffffffffffffffffffffff16610677610a55565b73ffffffffffffffffffffffffffffffffffffffff16146106cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c490611f43565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061071e848484611166565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610769610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611fd5565b60405180910390fd5b6107fd856107f5610f95565b858403610f9d565b60019150509392505050565b60006012905090565b60006108b461081f610f95565b84846002600061082d610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108af9190612024565b610f9d565b6001905092915050565b60065481565b6108ce33826113d1565b50565b6108d9610f95565b73ffffffffffffffffffffffffffffffffffffffff166108f7610a55565b73ffffffffffffffffffffffffffffffffffffffff161461094d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094490611f43565b60405180910390fd5b612710600160075461095f9190612058565b61096991906120c9565b811161097457600080fd5b8060098190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109cf610f95565b73ffffffffffffffffffffffffffffffffffffffff166109ed610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90611f43565b60405180910390fd5b610a4d60006115a9565b565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610a8d90611ec6565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab990611ec6565b8015610b065780601f10610adb57610100808354040283529160200191610b06565b820191906000526020600020905b815481529060010190602001808311610ae957829003601f168201915b5050505050905090565b60085481565b60008060026000610b25610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd99061216c565b60405180910390fd5b610bf6610bed610f95565b85858403610f9d565b600191505092915050565b6000610c15610c0e610f95565b8484611166565b6001905092915050565b610c27610f95565b73ffffffffffffffffffffffffffffffffffffffff16610c45610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290611f43565b60405180910390fd5b6107d0811115610caa57600080fd5b8060068190555050565b60075481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d49610f95565b73ffffffffffffffffffffffffffffffffffffffff16610d67610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490611f43565b60405180910390fd5b8060088190555050565b610dcf610f95565b73ffffffffffffffffffffffffffffffffffffffff16610ded610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a90611f43565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ea6610f95565b73ffffffffffffffffffffffffffffffffffffffff16610ec4610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1190611f43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f80906121fe565b60405180910390fd5b610f92816115a9565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612290565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612322565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111599190611d5b565b60405180910390a3505050565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561120c5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561125757600954821115611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d9061238e565b60405180910390fd5b5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112fb5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561132c57612710600654836113119190612058565b61131b91906120c9565b9050808261132991906123ae565b91505b61133784848461166d565b600081111561134c5761134b84308361166d565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113b457506008546113b13061097e565b10155b156113cb576113ca6113c53061097e565b6118ef565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790612454565b60405180910390fd5b61144c82600083611b54565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906124e6565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461152b91906123ae565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115909190611d5b565b60405180910390a36115a483600084611b59565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612578565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061260a565b60405180910390fd5b611756838383611b54565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d49061269c565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118729190612024565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118d69190611d5b565b60405180910390a36118e9848484611b59565b50505050565b6000600267ffffffffffffffff81111561190c5761190b6126bc565b5b60405190808252806020026020018201604052801561193a5781602001602082028036833780820191505090505b5090503081600081518110611952576119516126eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1d919061272f565b81600181518110611a3157611a306126eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a9830600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f9d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b1e95949392919061285f565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b505050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b98578082015181840152602081019050611b7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bc082611b5e565b611bca8185611b69565b9350611bda818560208601611b7a565b611be381611ba4565b840191505092915050565b60006020820190508181036000830152611c088184611bb5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4082611c15565b9050919050565b611c5081611c35565b8114611c5b57600080fd5b50565b600081359050611c6d81611c47565b92915050565b6000819050919050565b611c8681611c73565b8114611c9157600080fd5b50565b600081359050611ca381611c7d565b92915050565b60008060408385031215611cc057611cbf611c10565b5b6000611cce85828601611c5e565b9250506020611cdf85828601611c94565b9150509250929050565b60008115159050919050565b611cfe81611ce9565b82525050565b6000602082019050611d196000830184611cf5565b92915050565b600060208284031215611d3557611d34611c10565b5b6000611d4384828501611c5e565b91505092915050565b611d5581611c73565b82525050565b6000602082019050611d706000830184611d4c565b92915050565b600080600060608486031215611d8f57611d8e611c10565b5b6000611d9d86828701611c5e565b9350506020611dae86828701611c5e565b9250506040611dbf86828701611c94565b9150509250925092565b600060ff82169050919050565b611ddf81611dc9565b82525050565b6000602082019050611dfa6000830184611dd6565b92915050565b600060208284031215611e1657611e15611c10565b5b6000611e2484828501611c94565b91505092915050565b611e3681611c35565b82525050565b6000602082019050611e516000830184611e2d565b92915050565b60008060408385031215611e6e57611e6d611c10565b5b6000611e7c85828601611c5e565b9250506020611e8d85828601611c5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ede57607f821691505b602082108103611ef157611ef0611e97565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611f2d602083611b69565b9150611f3882611ef7565b602082019050919050565b60006020820190508181036000830152611f5c81611f20565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611fbf602883611b69565b9150611fca82611f63565b604082019050919050565b60006020820190508181036000830152611fee81611fb2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202f82611c73565b915061203a83611c73565b925082820190508082111561205257612051611ff5565b5b92915050565b600061206382611c73565b915061206e83611c73565b925082820261207c81611c73565b9150828204841483151761209357612092611ff5565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006120d482611c73565b91506120df83611c73565b9250826120ef576120ee61209a565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612156602583611b69565b9150612161826120fa565b604082019050919050565b6000602082019050818103600083015261218581612149565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006121e8602683611b69565b91506121f38261218c565b604082019050919050565b60006020820190508181036000830152612217816121db565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061227a602483611b69565b91506122858261221e565b604082019050919050565b600060208201905081810360008301526122a98161226d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061230c602283611b69565b9150612317826122b0565b604082019050919050565b6000602082019050818103600083015261233b816122ff565b9050919050565b7f4f4d000000000000000000000000000000000000000000000000000000000000600082015250565b6000612378600283611b69565b915061238382612342565b602082019050919050565b600060208201905081810360008301526123a78161236b565b9050919050565b60006123b982611c73565b91506123c483611c73565b92508282039050818111156123dc576123db611ff5565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061243e602183611b69565b9150612449826123e2565b604082019050919050565b6000602082019050818103600083015261246d81612431565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006124d0602283611b69565b91506124db82612474565b604082019050919050565b600060208201905081810360008301526124ff816124c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612562602583611b69565b915061256d82612506565b604082019050919050565b6000602082019050818103600083015261259181612555565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125f4602383611b69565b91506125ff82612598565b604082019050919050565b60006020820190508181036000830152612623816125e7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612686602683611b69565b91506126918261262a565b604082019050919050565b600060208201905081810360008301526126b581612679565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061272981611c47565b92915050565b60006020828403121561274557612744611c10565b5b60006127538482850161271a565b91505092915050565b6000819050919050565b6000819050919050565b600061278b6127866127818461275c565b612766565b611c73565b9050919050565b61279b81612770565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6127d681611c35565b82525050565b60006127e883836127cd565b60208301905092915050565b6000602082019050919050565b600061280c826127a1565b61281681856127ac565b9350612821836127bd565b8060005b8381101561285257815161283988826127dc565b9750612844836127f4565b925050600181019050612825565b5085935050505092915050565b600060a0820190506128746000830188611d4c565b6128816020830187612792565b81810360408301526128938186612801565b90506128a26060830185611e2d565b6128af6080830184611d4c565b969550505050505056fea264697066735822122037e40a64a7661e557a3a6b1bf0ece3f4cb348ff40b0e518143b653e60774ab1864736f6c63430008120033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.