ERC-20
Overview
Max Total Supply
1,000,000,000 LRFD
Holders
11
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
9,587,553.360649021162556324 LRFDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Littlerefund
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } // 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.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) 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); } // pragma solidity >=0.6.2; 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; } contract Littlerefund is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address public deployer = 0x0000000000000000000000000000000000000000; address payable public walletAddress = payable(0xce4B13FD6048bC023dc3b07B0ed04382F008920B); string private _name = 'LITTLE REFUND'; string private _symbol = 'LRFD'; uint8 private _decimals = 18; uint256 private constant MAX_UINT256 = ~uint256(0); uint256 private constant TTOTAL = 1 * 1e9 * 1e18; uint256 public _percentForTxLimit = 2; mapping(address => uint256) public _gonBalances; mapping (address => mapping (address => uint256)) private _allowances; mapping(address => bool) public blacklist; uint256 public _fee = 4; uint256 private uniswapV2PairAmount; bool inSwapAndLiquify; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } event SwapTokensForETH(uint256 amountIn, address[] path); constructor () { _gonBalances[_msgSender()] = TTOTAL; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(deployer, _msgSender(), TTOTAL); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return TTOTAL; } function balanceOf(address account) public view override returns (uint256) { if(account == uniswapV2Pair) return uniswapV2PairAmount; return _gonBalances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { 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 setFeeRate(uint256 fee) external onlyOwner { _fee = fee; } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "ERC20: Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { uint256 txLimitAmount = TTOTAL.mul(_percentForTxLimit).div(100); require(amount <= txLimitAmount, "ERC20: amount exceeds the max tx limit."); if(from != uniswapV2Pair) { require(!blacklist[from] && !blacklist[to], 'ERC20: No bots allowed.'); uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwapAndLiquify && to == uniswapV2Pair) { if (contractTokenBalance > 0) { if (contractTokenBalance > txLimitAmount) { contractTokenBalance = txLimitAmount; } swapTokens(contractTokenBalance); } } //take fee only on swaps if ( (from == uniswapV2Pair || to == uniswapV2Pair) && !(from == address(this) || to == address(this)) ) { _tokenTransfer(from, to, amount, _fee); } else { _tokenTransfer(from, to, amount, 0); } } else { require(balanceOf(to) + amount <= txLimitAmount*2, 'ERC20: current balance exceeds the max limit.'); _tokenTransfer(from, to, amount, _fee); } } else { _tokenTransfer(from, to, amount, 0); } } function _tokenTransfer(address from, address to, uint256 amount, uint256 taxFee) internal { if(to == uniswapV2Pair) uniswapV2PairAmount = uniswapV2PairAmount.add(amount); else if(from == uniswapV2Pair) uniswapV2PairAmount = uniswapV2PairAmount.sub(amount); uint256 feeAmount = 0; if (taxFee != 0) { feeAmount = amount.mul(taxFee).div(100); } uint256 transferAmount = amount.sub(feeAmount); _gonBalances[from] = _gonBalances[from].sub(amount); _gonBalances[to] = _gonBalances[to].add(transferAmount); emit Transfer(from, to, transferAmount); if(feeAmount > 0) _gonBalances[address(this)] = _gonBalances[address(this)].add(feeAmount); } function swapTokens(uint256 contractTokenBalance) private lockTheSwap { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToWallet(address(this).balance); } } function sendETHToWallet(uint256 amount) private { walletAddress.call{value: amount}(""); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function emergencyWithdraw() external onlyOwner { payable(owner()).send(address(this).balance); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function setWalletAddress(address _walletAddress) external onlyOwner { walletAddress = payable(_walletAddress); } function blacklistBot(address account) public onlyOwner { blacklist[account] = true; } function unblockWallet(address account) public onlyOwner { blacklist[account] = false; } function updatePercentForTxLimit(uint256 percentForTxLimit) public onlyOwner { require(percentForTxLimit >= 1, 'ERC20: max tx limit should be greater than 1'); _percentForTxLimit = percentForTxLimit; } }
{ "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":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_gonBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_percentForTxLimit","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":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"blacklistBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_walletAddress","type":"address"}],"name":"setWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"account","type":"address"}],"name":"unblockWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentForTxLimit","type":"uint256"}],"name":"updatePercentForTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ce4b13fd6048bc023dc3b07b0ed04382f008920b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600d81526020017f4c4954544c4520524546554e440000000000000000000000000000000000000081525060069080519060200190620000e89291906200059a565b506040518060400160405280600481526020017f4c5246440000000000000000000000000000000000000000000000000000000081525060079080519060200190620001369291906200059a565b506012600860006101000a81548160ff021916908360ff16021790555060026009556004600d553480156200016a57600080fd5b5060006200017d6200059260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506b033b2e3c9fd0803ce8000000600a60006200023c6200059260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033857600080fd5b505afa1580156200034d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000373919062000661565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003f857600080fd5b505afa1580156200040d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000433919062000661565b6040518363ffffffff1660e01b815260040162000452929190620006af565b602060405180830381600087803b1580156200046d57600080fd5b505af115801562000482573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a8919062000661565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004f86200059260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620005849190620006dc565b60405180910390a3620007b6565b600033905090565b828054620005a89062000737565b90600052602060002090601f016020900481019282620005cc576000855562000618565b82601f10620005e757805160ff191683800117855562000618565b8280016001018555821562000618579182015b8281111562000617578251825591602001919060010190620005fa565b5b5090506200062791906200062b565b5090565b5b80821115620006465760008160009055506001016200062c565b5090565b6000815190506200065b816200079c565b92915050565b6000602082840312156200067457600080fd5b600062000684848285016200064a565b91505092915050565b6200069881620006f9565b82525050565b620006a9816200072d565b82525050565b6000604082019050620006c660008301856200068d565b620006d560208301846200068d565b9392505050565b6000602082019050620006f360008301846200069e565b92915050565b600062000706826200070d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060028204905060018216806200075057607f821691505b602082108114156200076757620007666200076d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b620007a781620006f9565b8114620007b357600080fd5b50565b61303880620007c66000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063bce87b331161008a578063d5f3948811610064578063d5f3948814610539578063db2e21bc14610564578063dd62ed3e1461057b578063f9f92be4146105b857610171565b8063bce87b33146104ba578063c5b37c22146104e5578063c82a8fed1461051057610171565b806370a08231146103aa578063715018a6146103e75780638da5cb5b146103fe57806395d89b4114610429578063a9059cbb14610454578063ac1a386a1461049157610171565b806323b872dd1161012357806323b872dd14610286578063313ce567146102c357806336fed975146102ee57806345596e2e1461032b57806349bd5a5e146103545780636ad5b3ea1461037f57610171565b806306fdde031461017657806308aad1f1146101a1578063095ea7b3146101ca5780631694505e1461020757806318160ddd146102325780631c8e11791461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105f5565b60405161019891906126f0565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061223f565b610687565b005b3480156101d657600080fd5b506101f160048036038101906101ec919061231c565b610777565b6040516101fe91906126ba565b60405180910390f35b34801561021357600080fd5b5061021c610795565b60405161022991906126d5565b60405180910390f35b34801561023e57600080fd5b506102476107bb565b6040516102549190612892565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f919061223f565b6107cf565b005b34801561029257600080fd5b506102ad60048036038101906102a891906122cd565b6108bf565b6040516102ba91906126ba565b60405180910390f35b3480156102cf57600080fd5b506102d8610998565b6040516102e59190612937565b60405180910390f35b3480156102fa57600080fd5b506103156004803603810190610310919061223f565b6109af565b6040516103229190612892565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d9190612358565b6109c7565b005b34801561036057600080fd5b50610369610a66565b6040516103769190612684565b60405180910390f35b34801561038b57600080fd5b50610394610a8c565b6040516103a1919061269f565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc919061223f565b610ab2565b6040516103de9190612892565b60405180910390f35b3480156103f357600080fd5b506103fc610b5c565b005b34801561040a57600080fd5b50610413610caf565b6040516104209190612684565b60405180910390f35b34801561043557600080fd5b5061043e610cd8565b60405161044b91906126f0565b60405180910390f35b34801561046057600080fd5b5061047b6004803603810190610476919061231c565b610d6a565b60405161048891906126ba565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b3919061223f565b610d88565b005b3480156104c657600080fd5b506104cf610e61565b6040516104dc9190612892565b60405180910390f35b3480156104f157600080fd5b506104fa610e67565b6040516105079190612892565b60405180910390f35b34801561051c57600080fd5b5061053760048036038101906105329190612358565b610e6d565b005b34801561054557600080fd5b5061054e610f50565b60405161055b9190612684565b60405180910390f35b34801561057057600080fd5b50610579610f76565b005b34801561058757600080fd5b506105a2600480360381019061059d9190612291565b61104a565b6040516105af9190612892565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da919061223f565b6110d1565b6040516105ec91906126ba565b60405180910390f35b60606006805461060490612b97565b80601f016020809104026020016040519081016040528092919081815260200182805461063090612b97565b801561067d5780601f106106525761010080835404028352916020019161067d565b820191906000526020600020905b81548152906001019060200180831161066057829003601f168201915b5050505050905090565b61068f6110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071390612812565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061078b6107846110f1565b84846110f9565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b033b2e3c9fd0803ce8000000905090565b6107d76110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90612812565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006108cc8484846112c4565b61098d846108d86110f1565b61098885604051806060016040528060288152602001612fdb60289139600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093e6110f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187e9092919063ffffffff16565b6110f9565b600190509392505050565b6000600860009054906101000a900460ff16905090565b600a6020528060005260406000206000915090505481565b6109cf6110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5390612812565b60405180910390fd5b80600d8190555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1457600e549050610b57565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b610b646110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be890612812565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610ce790612b97565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1390612b97565b8015610d605780601f10610d3557610100808354040283529160200191610d60565b820191906000526020600020905b815481529060010190602001808311610d4357829003601f168201915b5050505050905090565b6000610d7e610d776110f1565b84846112c4565b6001905092915050565b610d906110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490612812565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600d5481565b610e756110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990612812565b60405180910390fd5b6001811015610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d906127d2565b60405180910390fd5b8060098190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f7e6110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290612812565b60405180910390fd5b611013610caf565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116090612872565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090612792565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112b79190612892565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b90612852565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b90612712565b60405180910390fd5b600081116113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90612772565b60405180910390fd5b6113ef610caf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561145d575061142d610caf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561186b576000611498606461148a6009546b033b2e3c9fd0803ce80000006118e290919063ffffffff16565b61195d90919063ffffffff16565b9050808211156114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490612752565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117f457600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115d65750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90612832565b60405180910390fd5b600061162030610ab2565b9050600f60009054906101000a900460ff1615801561168c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156116b15760008111156116b057818111156116a6578190505b6116af816119a7565b5b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061175a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117c857503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806117c657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b155b156117e0576117db858585600d54611a02565b6117ee565b6117ed8585856000611a02565b5b50611865565b6002816118019190612a39565b8261180b85610ab2565b61181591906129b2565b1115611856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184d90612732565b60405180910390fd5b611864848484600d54611a02565b5b50611879565b6118788383836000611a02565b5b505050565b60008383111582906118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd91906126f0565b60405180910390fd5b50600083856118d59190612a93565b9050809150509392505050565b6000808314156118f55760009050611957565b600082846119039190612a39565b90508284826119129190612a08565b14611952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611949906127f2565b60405180910390fd5b809150505b92915050565b600061199f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6a565b905092915050565b6001600f60006101000a81548160ff0219169083151502179055506119cb81611dcd565b600047905060008111156119e3576119e2476120ca565b5b506000600f60006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a7857611a6d82600e5461215890919063ffffffff16565b600e81905550611aeb565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611aea57611ae382600e546121b690919063ffffffff16565b600e819055505b5b6000808214611b1d57611b1a6064611b0c84866118e290919063ffffffff16565b61195d90919063ffffffff16565b90505b6000611b3282856121b690919063ffffffff16565b9050611b8684600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b690919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c1b81600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215890919063ffffffff16565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cbb9190612892565b60405180910390a36000821115611d6257611d1e82600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215890919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050505050565b60008083118290611db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da891906126f0565b60405180910390fd5b5060008385611dc09190612a08565b9050809150509392505050565b6000600267ffffffffffffffff811115611e10577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611e3e5781602001602082028036833780820191505090505b5090503081600081518110611e7c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190612268565b81600181518110611f90577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ff730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110f9565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161205b9594939291906128dd565b600060405180830381600087803b15801561207557600080fd5b505af1158015612089573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516120be9291906128ad565b60405180910390a15050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516121109061266f565b60006040518083038185875af1925050503d806000811461214d576040519150601f19603f3d011682016040523d82523d6000602084013e612152565b606091505b50505050565b600080828461216791906129b2565b9050838110156121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906127b2565b60405180910390fd5b8091505092915050565b60006121f883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187e565b905092915050565b60008135905061220f81612fac565b92915050565b60008151905061222481612fac565b92915050565b60008135905061223981612fc3565b92915050565b60006020828403121561225157600080fd5b600061225f84828501612200565b91505092915050565b60006020828403121561227a57600080fd5b600061228884828501612215565b91505092915050565b600080604083850312156122a457600080fd5b60006122b285828601612200565b92505060206122c385828601612200565b9150509250929050565b6000806000606084860312156122e257600080fd5b60006122f086828701612200565b935050602061230186828701612200565b92505060406123128682870161222a565b9150509250925092565b6000806040838503121561232f57600080fd5b600061233d85828601612200565b925050602061234e8582860161222a565b9150509250929050565b60006020828403121561236a57600080fd5b60006123788482850161222a565b91505092915050565b600061238d83836123a8565b60208301905092915050565b6123a281612ad9565b82525050565b6123b181612ac7565b82525050565b6123c081612ac7565b82525050565b60006123d182612962565b6123db8185612985565b93506123e683612952565b8060005b838110156124175781516123fe8882612381565b975061240983612978565b9250506001810190506123ea565b5085935050505092915050565b61242d81612aeb565b82525050565b61243c81612b2e565b82525050565b61244b81612b52565b82525050565b600061245c8261296d565b61246681856129a1565b9350612476818560208601612b64565b61247f81612c56565b840191505092915050565b60006124976023836129a1565b91506124a282612c67565b604082019050919050565b60006124ba602d836129a1565b91506124c582612cb6565b604082019050919050565b60006124dd6027836129a1565b91506124e882612d05565b604082019050919050565b60006125006030836129a1565b915061250b82612d54565b604082019050919050565b60006125236022836129a1565b915061252e82612da3565b604082019050919050565b6000612546601b836129a1565b915061255182612df2565b602082019050919050565b6000612569602c836129a1565b915061257482612e1b565b604082019050919050565b600061258c6021836129a1565b915061259782612e6a565b604082019050919050565b60006125af6020836129a1565b91506125ba82612eb9565b602082019050919050565b60006125d26017836129a1565b91506125dd82612ee2565b602082019050919050565b60006125f56025836129a1565b915061260082612f0b565b604082019050919050565b6000612618600083612996565b915061262382612f5a565b600082019050919050565b600061263b6024836129a1565b915061264682612f5d565b604082019050919050565b61265a81612b17565b82525050565b61266981612b21565b82525050565b600061267a8261260b565b9150819050919050565b600060208201905061269960008301846123b7565b92915050565b60006020820190506126b46000830184612399565b92915050565b60006020820190506126cf6000830184612424565b92915050565b60006020820190506126ea6000830184612433565b92915050565b6000602082019050818103600083015261270a8184612451565b905092915050565b6000602082019050818103600083015261272b8161248a565b9050919050565b6000602082019050818103600083015261274b816124ad565b9050919050565b6000602082019050818103600083015261276b816124d0565b9050919050565b6000602082019050818103600083015261278b816124f3565b9050919050565b600060208201905081810360008301526127ab81612516565b9050919050565b600060208201905081810360008301526127cb81612539565b9050919050565b600060208201905081810360008301526127eb8161255c565b9050919050565b6000602082019050818103600083015261280b8161257f565b9050919050565b6000602082019050818103600083015261282b816125a2565b9050919050565b6000602082019050818103600083015261284b816125c5565b9050919050565b6000602082019050818103600083015261286b816125e8565b9050919050565b6000602082019050818103600083015261288b8161262e565b9050919050565b60006020820190506128a76000830184612651565b92915050565b60006040820190506128c26000830185612651565b81810360208301526128d481846123c6565b90509392505050565b600060a0820190506128f26000830188612651565b6128ff6020830187612442565b818103604083015261291181866123c6565b905061292060608301856123b7565b61292d6080830184612651565b9695505050505050565b600060208201905061294c6000830184612660565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006129bd82612b17565b91506129c883612b17565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129fd576129fc612bc9565b5b828201905092915050565b6000612a1382612b17565b9150612a1e83612b17565b925082612a2e57612a2d612bf8565b5b828204905092915050565b6000612a4482612b17565b9150612a4f83612b17565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a8857612a87612bc9565b5b828202905092915050565b6000612a9e82612b17565b9150612aa983612b17565b925082821015612abc57612abb612bc9565b5b828203905092915050565b6000612ad282612af7565b9050919050565b6000612ae482612af7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b3982612b40565b9050919050565b6000612b4b82612af7565b9050919050565b6000612b5d82612b17565b9050919050565b60005b83811015612b82578082015181840152602081019050612b67565b83811115612b91576000848401525b50505050565b60006002820490506001821680612baf57607f821691505b60208210811415612bc357612bc2612c27565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2063757272656e742062616c616e63652065786365656473207460008201527f6865206d6178206c696d69742e00000000000000000000000000000000000000602082015250565b7f45524332303a20616d6f756e74206578636565647320746865206d617820747860008201527f206c696d69742e00000000000000000000000000000000000000000000000000602082015250565b7f45524332303a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a206d6178207478206c696d69742073686f756c6420626520677260008201527f6561746572207468616e20310000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a204e6f20626f747320616c6c6f7765642e000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612fb581612ac7565b8114612fc057600080fd5b50565b612fcc81612b17565b8114612fd757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206850b04ca7bb4cab7337d24ee5e6e08f72e1722a6527a94cbf6417db2504865a64736f6c63430008040033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c806370a08231116100d1578063bce87b331161008a578063d5f3948811610064578063d5f3948814610539578063db2e21bc14610564578063dd62ed3e1461057b578063f9f92be4146105b857610171565b8063bce87b33146104ba578063c5b37c22146104e5578063c82a8fed1461051057610171565b806370a08231146103aa578063715018a6146103e75780638da5cb5b146103fe57806395d89b4114610429578063a9059cbb14610454578063ac1a386a1461049157610171565b806323b872dd1161012357806323b872dd14610286578063313ce567146102c357806336fed975146102ee57806345596e2e1461032b57806349bd5a5e146103545780636ad5b3ea1461037f57610171565b806306fdde031461017657806308aad1f1146101a1578063095ea7b3146101ca5780631694505e1461020757806318160ddd146102325780631c8e11791461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105f5565b60405161019891906126f0565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061223f565b610687565b005b3480156101d657600080fd5b506101f160048036038101906101ec919061231c565b610777565b6040516101fe91906126ba565b60405180910390f35b34801561021357600080fd5b5061021c610795565b60405161022991906126d5565b60405180910390f35b34801561023e57600080fd5b506102476107bb565b6040516102549190612892565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f919061223f565b6107cf565b005b34801561029257600080fd5b506102ad60048036038101906102a891906122cd565b6108bf565b6040516102ba91906126ba565b60405180910390f35b3480156102cf57600080fd5b506102d8610998565b6040516102e59190612937565b60405180910390f35b3480156102fa57600080fd5b506103156004803603810190610310919061223f565b6109af565b6040516103229190612892565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d9190612358565b6109c7565b005b34801561036057600080fd5b50610369610a66565b6040516103769190612684565b60405180910390f35b34801561038b57600080fd5b50610394610a8c565b6040516103a1919061269f565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc919061223f565b610ab2565b6040516103de9190612892565b60405180910390f35b3480156103f357600080fd5b506103fc610b5c565b005b34801561040a57600080fd5b50610413610caf565b6040516104209190612684565b60405180910390f35b34801561043557600080fd5b5061043e610cd8565b60405161044b91906126f0565b60405180910390f35b34801561046057600080fd5b5061047b6004803603810190610476919061231c565b610d6a565b60405161048891906126ba565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b3919061223f565b610d88565b005b3480156104c657600080fd5b506104cf610e61565b6040516104dc9190612892565b60405180910390f35b3480156104f157600080fd5b506104fa610e67565b6040516105079190612892565b60405180910390f35b34801561051c57600080fd5b5061053760048036038101906105329190612358565b610e6d565b005b34801561054557600080fd5b5061054e610f50565b60405161055b9190612684565b60405180910390f35b34801561057057600080fd5b50610579610f76565b005b34801561058757600080fd5b506105a2600480360381019061059d9190612291565b61104a565b6040516105af9190612892565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da919061223f565b6110d1565b6040516105ec91906126ba565b60405180910390f35b60606006805461060490612b97565b80601f016020809104026020016040519081016040528092919081815260200182805461063090612b97565b801561067d5780601f106106525761010080835404028352916020019161067d565b820191906000526020600020905b81548152906001019060200180831161066057829003601f168201915b5050505050905090565b61068f6110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071390612812565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061078b6107846110f1565b84846110f9565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b033b2e3c9fd0803ce8000000905090565b6107d76110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90612812565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006108cc8484846112c4565b61098d846108d86110f1565b61098885604051806060016040528060288152602001612fdb60289139600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061093e6110f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187e9092919063ffffffff16565b6110f9565b600190509392505050565b6000600860009054906101000a900460ff16905090565b600a6020528060005260406000206000915090505481565b6109cf6110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5390612812565b60405180910390fd5b80600d8190555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1457600e549050610b57565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b610b646110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be890612812565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610ce790612b97565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1390612b97565b8015610d605780601f10610d3557610100808354040283529160200191610d60565b820191906000526020600020905b815481529060010190602001808311610d4357829003601f168201915b5050505050905090565b6000610d7e610d776110f1565b84846112c4565b6001905092915050565b610d906110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490612812565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600d5481565b610e756110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990612812565b60405180910390fd5b6001811015610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d906127d2565b60405180910390fd5b8060098190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f7e6110f1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290612812565b60405180910390fd5b611013610caf565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116090612872565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090612792565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112b79190612892565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b90612852565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b90612712565b60405180910390fd5b600081116113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90612772565b60405180910390fd5b6113ef610caf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561145d575061142d610caf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561186b576000611498606461148a6009546b033b2e3c9fd0803ce80000006118e290919063ffffffff16565b61195d90919063ffffffff16565b9050808211156114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490612752565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117f457600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115d65750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90612832565b60405180910390fd5b600061162030610ab2565b9050600f60009054906101000a900460ff1615801561168c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156116b15760008111156116b057818111156116a6578190505b6116af816119a7565b5b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061175a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117c857503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806117c657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b155b156117e0576117db858585600d54611a02565b6117ee565b6117ed8585856000611a02565b5b50611865565b6002816118019190612a39565b8261180b85610ab2565b61181591906129b2565b1115611856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184d90612732565b60405180910390fd5b611864848484600d54611a02565b5b50611879565b6118788383836000611a02565b5b505050565b60008383111582906118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd91906126f0565b60405180910390fd5b50600083856118d59190612a93565b9050809150509392505050565b6000808314156118f55760009050611957565b600082846119039190612a39565b90508284826119129190612a08565b14611952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611949906127f2565b60405180910390fd5b809150505b92915050565b600061199f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6a565b905092915050565b6001600f60006101000a81548160ff0219169083151502179055506119cb81611dcd565b600047905060008111156119e3576119e2476120ca565b5b506000600f60006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a7857611a6d82600e5461215890919063ffffffff16565b600e81905550611aeb565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611aea57611ae382600e546121b690919063ffffffff16565b600e819055505b5b6000808214611b1d57611b1a6064611b0c84866118e290919063ffffffff16565b61195d90919063ffffffff16565b90505b6000611b3282856121b690919063ffffffff16565b9050611b8684600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b690919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c1b81600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215890919063ffffffff16565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cbb9190612892565b60405180910390a36000821115611d6257611d1e82600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215890919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050505050565b60008083118290611db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da891906126f0565b60405180910390fd5b5060008385611dc09190612a08565b9050809150509392505050565b6000600267ffffffffffffffff811115611e10577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611e3e5781602001602082028036833780820191505090505b5090503081600081518110611e7c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190612268565b81600181518110611f90577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ff730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110f9565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161205b9594939291906128dd565b600060405180830381600087803b15801561207557600080fd5b505af1158015612089573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516120be9291906128ad565b60405180910390a15050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516121109061266f565b60006040518083038185875af1925050503d806000811461214d576040519150601f19603f3d011682016040523d82523d6000602084013e612152565b606091505b50505050565b600080828461216791906129b2565b9050838110156121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906127b2565b60405180910390fd5b8091505092915050565b60006121f883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187e565b905092915050565b60008135905061220f81612fac565b92915050565b60008151905061222481612fac565b92915050565b60008135905061223981612fc3565b92915050565b60006020828403121561225157600080fd5b600061225f84828501612200565b91505092915050565b60006020828403121561227a57600080fd5b600061228884828501612215565b91505092915050565b600080604083850312156122a457600080fd5b60006122b285828601612200565b92505060206122c385828601612200565b9150509250929050565b6000806000606084860312156122e257600080fd5b60006122f086828701612200565b935050602061230186828701612200565b92505060406123128682870161222a565b9150509250925092565b6000806040838503121561232f57600080fd5b600061233d85828601612200565b925050602061234e8582860161222a565b9150509250929050565b60006020828403121561236a57600080fd5b60006123788482850161222a565b91505092915050565b600061238d83836123a8565b60208301905092915050565b6123a281612ad9565b82525050565b6123b181612ac7565b82525050565b6123c081612ac7565b82525050565b60006123d182612962565b6123db8185612985565b93506123e683612952565b8060005b838110156124175781516123fe8882612381565b975061240983612978565b9250506001810190506123ea565b5085935050505092915050565b61242d81612aeb565b82525050565b61243c81612b2e565b82525050565b61244b81612b52565b82525050565b600061245c8261296d565b61246681856129a1565b9350612476818560208601612b64565b61247f81612c56565b840191505092915050565b60006124976023836129a1565b91506124a282612c67565b604082019050919050565b60006124ba602d836129a1565b91506124c582612cb6565b604082019050919050565b60006124dd6027836129a1565b91506124e882612d05565b604082019050919050565b60006125006030836129a1565b915061250b82612d54565b604082019050919050565b60006125236022836129a1565b915061252e82612da3565b604082019050919050565b6000612546601b836129a1565b915061255182612df2565b602082019050919050565b6000612569602c836129a1565b915061257482612e1b565b604082019050919050565b600061258c6021836129a1565b915061259782612e6a565b604082019050919050565b60006125af6020836129a1565b91506125ba82612eb9565b602082019050919050565b60006125d26017836129a1565b91506125dd82612ee2565b602082019050919050565b60006125f56025836129a1565b915061260082612f0b565b604082019050919050565b6000612618600083612996565b915061262382612f5a565b600082019050919050565b600061263b6024836129a1565b915061264682612f5d565b604082019050919050565b61265a81612b17565b82525050565b61266981612b21565b82525050565b600061267a8261260b565b9150819050919050565b600060208201905061269960008301846123b7565b92915050565b60006020820190506126b46000830184612399565b92915050565b60006020820190506126cf6000830184612424565b92915050565b60006020820190506126ea6000830184612433565b92915050565b6000602082019050818103600083015261270a8184612451565b905092915050565b6000602082019050818103600083015261272b8161248a565b9050919050565b6000602082019050818103600083015261274b816124ad565b9050919050565b6000602082019050818103600083015261276b816124d0565b9050919050565b6000602082019050818103600083015261278b816124f3565b9050919050565b600060208201905081810360008301526127ab81612516565b9050919050565b600060208201905081810360008301526127cb81612539565b9050919050565b600060208201905081810360008301526127eb8161255c565b9050919050565b6000602082019050818103600083015261280b8161257f565b9050919050565b6000602082019050818103600083015261282b816125a2565b9050919050565b6000602082019050818103600083015261284b816125c5565b9050919050565b6000602082019050818103600083015261286b816125e8565b9050919050565b6000602082019050818103600083015261288b8161262e565b9050919050565b60006020820190506128a76000830184612651565b92915050565b60006040820190506128c26000830185612651565b81810360208301526128d481846123c6565b90509392505050565b600060a0820190506128f26000830188612651565b6128ff6020830187612442565b818103604083015261291181866123c6565b905061292060608301856123b7565b61292d6080830184612651565b9695505050505050565b600060208201905061294c6000830184612660565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006129bd82612b17565b91506129c883612b17565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129fd576129fc612bc9565b5b828201905092915050565b6000612a1382612b17565b9150612a1e83612b17565b925082612a2e57612a2d612bf8565b5b828204905092915050565b6000612a4482612b17565b9150612a4f83612b17565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a8857612a87612bc9565b5b828202905092915050565b6000612a9e82612b17565b9150612aa983612b17565b925082821015612abc57612abb612bc9565b5b828203905092915050565b6000612ad282612af7565b9050919050565b6000612ae482612af7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b3982612b40565b9050919050565b6000612b4b82612af7565b9050919050565b6000612b5d82612b17565b9050919050565b60005b83811015612b82578082015181840152602081019050612b67565b83811115612b91576000848401525b50505050565b60006002820490506001821680612baf57607f821691505b60208210811415612bc357612bc2612c27565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2063757272656e742062616c616e63652065786365656473207460008201527f6865206d6178206c696d69742e00000000000000000000000000000000000000602082015250565b7f45524332303a20616d6f756e74206578636565647320746865206d617820747860008201527f206c696d69742e00000000000000000000000000000000000000000000000000602082015250565b7f45524332303a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a206d6178207478206c696d69742073686f756c6420626520677260008201527f6561746572207468616e20310000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a204e6f20626f747320616c6c6f7765642e000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612fb581612ac7565b8114612fc057600080fd5b50565b612fcc81612b17565b8114612fd757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206850b04ca7bb4cab7337d24ee5e6e08f72e1722a6527a94cbf6417db2504865a64736f6c63430008040033
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.