ERC-20
Overview
Max Total Supply
100,000,000 DRIP
Holders
64
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
17,800.000000000000000008 DRIPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DRIP
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** *Submitted for verification at basescan.org on 2024-04-01 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _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); } } 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } 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 {} } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract DRIP is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private swappingchv; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellDevFee; uint256 public tokensForMarketing; uint256 public tokensForDev; address public marketingWallet; address public developmentWallet; uint256 public maxTransaction; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; mapping(address => bool) private _isExcludedFromFeeschv; mapping(address => bool) public _isExcludedmaxTransaction; mapping(address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated( address indexed newWallet, address indexed oldWallet ); event developmentWalletUpdated( address indexed newWallet, address indexed oldWallet ); constructor() ERC20("DataDrip","DRIP") { uint256 _buyMarketingFee = 9; uint256 _buyDevFee = 2; uint256 _sellMarketingFee = 32; uint256 _sellDevFee = 30; if (block.chainid == 1 || block.chainid == 5) uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); else if (block.chainid == 11155111) uniswapV2Router = IUniswapV2Router02(0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008); else if (block.chainid == 8453) uniswapV2Router = IUniswapV2Router02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24); else if (block.chainid == 56) uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Router), true); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 100_000_000 * (10 ** decimals()); swapTokensAtAmount = (totalSupply * 5) / 40000; // 0.05% swap wallet maxTransaction = 2_000_000 * 1e18; // 2% from total supply maxTransactionTxn maxWallet = 2_000_000 * 1e18; // 2% from total supply maxWalletSize buyMarketingFee = _buyMarketingFee; buyDevFee = _buyDevFee; buyTotalFees = buyMarketingFee + buyDevFee; sellMarketingFee = _sellMarketingFee; sellDevFee = _sellDevFee; sellTotalFees = sellMarketingFee + sellDevFee; marketingWallet = owner(); developmentWallet = owner(); // exclude from paying fees or having max transaction amount excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); _mint(owner(), totalSupply); } receive() external payable {} function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swappingchv) { if (!tradingActive) { require(_isExcludedFromFeeschv[from] || _isExcludedFromFeeschv[to], "Trading is not active."); } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedmaxTransaction[to]) { require(amount <= maxTransaction, "Buy transfer amount exceeds the maxTransaction."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedmaxTransaction[from]) { require(amount <= maxTransaction, "Sell transfer amount exceeds the maxTransaction."); } else if (!_isExcludedmaxTransaction[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalancechv = balanceOf(address(this)); bool canSwap = contractTokenBalancechv >= swapTokensAtAmount; if (canSwap && swapEnabled && !swappingchv && automatedMarketMakerPairs[to] && !_isExcludedFromFeeschv[from] && !_isExcludedFromFeeschv[to]) { swappingchv = true; swapBack(); swappingchv = false; } bool takeFee = !swappingchv; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFeeschv[from] || _isExcludedFromFeeschv[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); tokensForDev += (fees * sellDevFee) / sellTotalFees; tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForDev += (fees * buyDevFee) / buyTotalFees; tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } 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(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function manualSwapTax() public onlyOwner { uint256 contractTokenBalancechv = balanceOf(address(this)); bool canSwap = contractTokenBalancechv >= swapTokensAtAmount; if (canSwap && swapEnabled && !swappingchv ) { swappingchv = true; swapBack(); swappingchv = false; } } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarketing + tokensForDev; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); tokensForMarketing = 0; tokensForDev = 0; (success, ) = address(developmentWallet).call{value: ethForDev}(""); (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); } function removeEth(uint256 amount) external onlyOwner { (bool success, ) = address(developmentWallet).call{value: address(this).balance}(""); } function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } // change the minimum amount of tokens to sell from fees function updateMinSwap(uint256 newAmount) external onlyOwner returns (bool) { require( newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply." ); swapTokensAtAmount = newAmount; return true; } function updateMaxTx(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransaction lower than 0.1%" ); maxTransaction = newNum * (10**18); } function updateMaxWallet(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%" ); maxWallet = newNum * (10**18); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedmaxTransaction[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateEnableSwap(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateBuyFees( uint256 _marketingFee, uint256 _devFee ) external onlyOwner { buyMarketingFee = _marketingFee; buyDevFee = _devFee; buyTotalFees = buyMarketingFee + buyDevFee; require(buyTotalFees <= 99, "Must keep fees at 99% or less"); } function updateSellFees( uint256 _marketingFee, uint256 _devFee ) external onlyOwner { sellMarketingFee = _marketingFee; sellDevFee = _devFee; sellTotalFees = sellMarketingFee + sellDevFee; require(sellTotalFees <= 99, "Must keep fees at 99% or less"); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFeeschv[account] = excluded; emit ExcludeFromFees(account, excluded); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateMarketingAddress(address newMarketingWallet) external onlyOwner { emit marketingWalletUpdated(newMarketingWallet, marketingWallet); marketingWallet = newMarketingWallet; } function updatedevAddress(address newWallet) external onlyOwner { emit developmentWalletUpdated(newWallet, developmentWallet); developmentWallet = newWallet; } function isExcludedFromFeeschv(address account) public view returns (bool) { return _isExcludedFromFeeschv[account]; } }
{ "evmVersion": "paris", "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"developmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFeeschv","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"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":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateEnableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMinSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatedevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526001601560006101000a81548160ff0219169083151502179055506000601560016101000a81548160ff0219169083151502179055506000601560026101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600881526020017f44617461447269700000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f44524950000000000000000000000000000000000000000000000000000000008152508160039081620000e0919062000f3c565b508060049081620000f2919062000f3c565b50505062000115620001096200077a60201b60201c565b6200078260201b60201c565b6000600990506000600290506000602090506000601e905060014614806200013d5750600546145b156200019e57737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002cb565b62aa36a74603620002045773c532a74256d3db42d0bf7a0400fefdbad7694008600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002ca565b61210546036200026957734752ba5dbc23f44d87826276bf6fd6b1c372ad24600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002c9565b60384603620002c8577310ed43c718714eb63d5aa57b78b54704e256024e600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000339573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035f91906200108d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040f91906200108d565b6040518363ffffffff1660e01b81526004016200042e929190620010d0565b6020604051808303816000875af11580156200044e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047491906200108d565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004e9600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200084860201b60201c565b6200051e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200084860201b60201c565b62000553600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200093260201b60201c565b600062000565620009d360201b60201c565b600a6200057391906200128d565b6305f5e100620005849190620012de565b9050619c40600582620005989190620012de565b620005a4919062001358565b6013819055506a01a784379d99db420000006012819055506a01a784379d99db420000006014819055508460098190555083600a81905550600a54600954620005ee919062001390565b60088190555082600c8190555081600d81905550600d54600c5462000614919062001390565b600b819055506200062a620009dc60201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200067a620009dc60201b60201c565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620006dc620006ce620009dc60201b60201c565b60016200084860201b60201c565b620006ef3060016200084860201b60201c565b6200070461dead60016200084860201b60201c565b6200072662000718620009dc60201b60201c565b600162000a0660201b60201c565b6200073930600162000a0660201b60201c565b6200074e61dead600162000a0660201b60201c565b6200076f62000762620009dc60201b60201c565b8262000b4060201b60201c565b505050505062001528565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620008586200077a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200087e620009dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620008d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ce906200142c565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60006012905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000a166200077a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000a3c620009dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a8c906200142c565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000b3491906200146b565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ba990620014d8565b60405180910390fd5b62000bc66000838362000cb860201b60201c565b806002600082825462000bda919062001390565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000c31919062001390565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c9891906200150b565b60405180910390a362000cb46000838362000cbd60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d4457607f821691505b60208210810362000d5a5762000d5962000cfc565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000dc47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d85565b62000dd0868362000d85565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e1d62000e1762000e118462000de8565b62000df2565b62000de8565b9050919050565b6000819050919050565b62000e398362000dfc565b62000e5162000e488262000e24565b84845462000d92565b825550505050565b600090565b62000e6862000e59565b62000e7581848462000e2e565b505050565b5b8181101562000e9d5762000e9160008262000e5e565b60018101905062000e7b565b5050565b601f82111562000eec5762000eb68162000d60565b62000ec18462000d75565b8101602085101562000ed1578190505b62000ee962000ee08562000d75565b83018262000e7a565b50505b505050565b600082821c905092915050565b600062000f116000198460080262000ef1565b1980831691505092915050565b600062000f2c838362000efe565b9150826002028217905092915050565b62000f478262000cc2565b67ffffffffffffffff81111562000f635762000f6262000ccd565b5b62000f6f825462000d2b565b62000f7c82828562000ea1565b600060209050601f83116001811462000fb4576000841562000f9f578287015190505b62000fab858262000f1e565b8655506200101b565b601f19841662000fc48662000d60565b60005b8281101562000fee5784890151825560018201915060208501945060208101905062000fc7565b868310156200100e57848901516200100a601f89168262000efe565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010558262001028565b9050919050565b620010678162001048565b81146200107357600080fd5b50565b60008151905062001087816200105c565b92915050565b600060208284031215620010a657620010a562001023565b5b6000620010b68482850162001076565b91505092915050565b620010ca8162001048565b82525050565b6000604082019050620010e76000830185620010bf565b620010f66020830184620010bf565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200118b57808604811115620011635762001162620010fd565b5b6001851615620011735780820291505b808102905062001183856200112c565b945062001143565b94509492505050565b600082620011a6576001905062001279565b81620011b6576000905062001279565b8160018114620011cf5760028114620011da5762001210565b600191505062001279565b60ff841115620011ef57620011ee620010fd565b5b8360020a915084821115620012095762001208620010fd565b5b5062001279565b5060208310610133831016604e8410600b84101617156200124a5782820a905083811115620012445762001243620010fd565b5b62001279565b62001259848484600162001139565b92509050818404811115620012735762001272620010fd565b5b81810290505b9392505050565b600060ff82169050919050565b60006200129a8262000de8565b9150620012a78362001280565b9250620012d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001194565b905092915050565b6000620012eb8262000de8565b9150620012f88362000de8565b9250828202620013088162000de8565b91508282048414831517620013225762001321620010fd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620013658262000de8565b9150620013728362000de8565b92508262001385576200138462001329565b5b828204905092915050565b60006200139d8262000de8565b9150620013aa8362000de8565b9250828201905080821115620013c557620013c4620010fd565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062001414602083620013cb565b91506200142182620013dc565b602082019050919050565b60006020820190508181036000830152620014478162001405565b9050919050565b60008115159050919050565b62001465816200144e565b82525050565b60006020820190506200148260008301846200145a565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620014c0601f83620013cb565b9150620014cd8262001488565b602082019050919050565b60006020820190508181036000830152620014f381620014b1565b9050919050565b620015058162000de8565b82525050565b6000602082019050620015226000830184620014fa565b92915050565b614a1c80620015386000396000f3fe6080604052600436106102cd5760003560e01c80637bce5a0411610175578063b62496f5116100dc578063d791219911610095578063e1bc33941161006f578063e1bc339414610af5578063e2f4560514610b32578063f2fde38b14610b5d578063f8b45b0514610b86576102d4565b8063d791219914610a64578063d85ba06314610a8d578063dd62ed3e14610ab8576102d4565b8063b62496f514610954578063bbc0c74214610991578063c0246668146109bc578063c04a5414146109e5578063c2d0ffca14610a10578063c3f70b5214610a39576102d4565b80639c3b4fdc1161012e5780639c3b4fdc146108425780639fccce321461086d578063a0d82dc514610898578063a457c2d7146108c3578063a73f9b5814610900578063a9059cbb14610917576102d4565b80637bce5a04146107565780638a8c523c146107815780638da5cb5b1461079857806392136913146107c357806395d89b41146107ee5780639a7a23d614610819576102d4565b806344af18e81161023457806370a08231116101ed578063751039fc116101c7578063751039fc1461069a5780637571336a146106c557806375f0a874146106ee57806375fed3c714610719576102d4565b806370a082311461061d57806370df73551461065a578063715018a614610683576102d4565b806344af18e81461051f57806349bd5a5e146105485780634a62bb651461057357806366ca9b831461059e5780636a486a8e146105c75780636ddd1713146105f2576102d4565b80631f3fed8f116102865780631f3fed8f146103e95780632369bf831461041457806323b872dd1461043d578063291984351461047a578063313ce567146104b757806339509351146104e2576102d4565b806302dbd8f8146102d957806306fdde0314610302578063095ea7b31461032d5780631694505e1461036a57806318160ddd146103955780631c499ab0146103c0576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b5061030060048036038101906102fb9190613785565b610bb1565b005b34801561030e57600080fd5b50610317610c9b565b6040516103249190613855565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f91906138d5565b610d2d565b6040516103619190613930565b60405180910390f35b34801561037657600080fd5b5061037f610d4b565b60405161038c91906139aa565b60405180910390f35b3480156103a157600080fd5b506103aa610d71565b6040516103b791906139d4565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e291906139ef565b610d7b565b005b3480156103f557600080fd5b506103fe610e8a565b60405161040b91906139d4565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190613a1c565b610e90565b005b34801561044957600080fd5b50610464600480360381019061045f9190613a49565b610fcc565b6040516104719190613930565b60405180910390f35b34801561048657600080fd5b506104a1600480360381019061049c9190613a1c565b6110c4565b6040516104ae9190613930565b60405180910390f35b3480156104c357600080fd5b506104cc61111a565b6040516104d99190613ab8565b60405180910390f35b3480156104ee57600080fd5b50610509600480360381019061050491906138d5565b611123565b6040516105169190613930565b60405180910390f35b34801561052b57600080fd5b50610546600480360381019061054191906139ef565b6111cf565b005b34801561055457600080fd5b5061055d6112dd565b60405161056a9190613ae2565b60405180910390f35b34801561057f57600080fd5b50610588611303565b6040516105959190613930565b60405180910390f35b3480156105aa57600080fd5b506105c560048036038101906105c09190613785565b611316565b005b3480156105d357600080fd5b506105dc611400565b6040516105e991906139d4565b60405180910390f35b3480156105fe57600080fd5b50610607611406565b6040516106149190613930565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190613a1c565b611419565b60405161065191906139d4565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190613b29565b611461565b005b34801561068f57600080fd5b506106986114fa565b005b3480156106a657600080fd5b506106af611582565b6040516106bc9190613930565b60405180910390f35b3480156106d157600080fd5b506106ec60048036038101906106e79190613b56565b611622565b005b3480156106fa57600080fd5b506107036116f9565b6040516107109190613ae2565b60405180910390f35b34801561072557600080fd5b50610740600480360381019061073b91906139ef565b61171f565b60405161074d9190613930565b60405180910390f35b34801561076257600080fd5b5061076b611874565b60405161077891906139d4565b60405180910390f35b34801561078d57600080fd5b5061079661187a565b005b3480156107a457600080fd5b506107ad61192e565b6040516107ba9190613ae2565b60405180910390f35b3480156107cf57600080fd5b506107d8611958565b6040516107e591906139d4565b60405180910390f35b3480156107fa57600080fd5b5061080361195e565b6040516108109190613855565b60405180910390f35b34801561082557600080fd5b50610840600480360381019061083b9190613b56565b6119f0565b005b34801561084e57600080fd5b50610857611b0a565b60405161086491906139d4565b60405180910390f35b34801561087957600080fd5b50610882611b10565b60405161088f91906139d4565b60405180910390f35b3480156108a457600080fd5b506108ad611b16565b6040516108ba91906139d4565b60405180910390f35b3480156108cf57600080fd5b506108ea60048036038101906108e591906138d5565b611b1c565b6040516108f79190613930565b60405180910390f35b34801561090c57600080fd5b50610915611c07565b005b34801561092357600080fd5b5061093e600480360381019061093991906138d5565b611d14565b60405161094b9190613930565b60405180910390f35b34801561096057600080fd5b5061097b60048036038101906109769190613a1c565b611d32565b6040516109889190613930565b60405180910390f35b34801561099d57600080fd5b506109a6611d52565b6040516109b39190613930565b60405180910390f35b3480156109c857600080fd5b506109e360048036038101906109de9190613b56565b611d65565b005b3480156109f157600080fd5b506109fa611e8a565b604051610a079190613ae2565b60405180910390f35b348015610a1c57600080fd5b50610a376004803603810190610a3291906139ef565b611eb0565b005b348015610a4557600080fd5b50610a4e611fbf565b604051610a5b91906139d4565b60405180910390f35b348015610a7057600080fd5b50610a8b6004803603810190610a869190613a1c565b611fc5565b005b348015610a9957600080fd5b50610aa2612101565b604051610aaf91906139d4565b60405180910390f35b348015610ac457600080fd5b50610adf6004803603810190610ada9190613b96565b612107565b604051610aec91906139d4565b60405180910390f35b348015610b0157600080fd5b50610b1c6004803603810190610b179190613a1c565b61218e565b604051610b299190613930565b60405180910390f35b348015610b3e57600080fd5b50610b476121ae565b604051610b5491906139d4565b60405180910390f35b348015610b6957600080fd5b50610b846004803603810190610b7f9190613a1c565b6121b4565b005b348015610b9257600080fd5b50610b9b6122ab565b604051610ba891906139d4565b60405180910390f35b610bb96122b1565b73ffffffffffffffffffffffffffffffffffffffff16610bd761192e565b73ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490613c22565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610c4b9190613c71565b600b819055506063600b541115610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90613cf1565b60405180910390fd5b5050565b606060038054610caa90613d40565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd690613d40565b8015610d235780601f10610cf857610100808354040283529160200191610d23565b820191906000526020600020905b815481529060010190602001808311610d0657829003601f168201915b5050505050905090565b6000610d41610d3a6122b1565b84846122b9565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610d836122b1565b73ffffffffffffffffffffffffffffffffffffffff16610da161192e565b73ffffffffffffffffffffffffffffffffffffffff1614610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee90613c22565b60405180910390fd5b670de0b6b3a76400006103e86005610e0d610d71565b610e179190613d71565b610e219190613de2565b610e2b9190613de2565b811015610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6490613e85565b60405180910390fd5b670de0b6b3a764000081610e819190613d71565b60148190555050565b600e5481565b610e986122b1565b73ffffffffffffffffffffffffffffffffffffffff16610eb661192e565b73ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390613c22565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610fd9848484612482565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110246122b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156110a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109b90613f17565b60405180910390fd5b6110b8856110b06122b1565b8584036122b9565b60019150509392505050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006012905090565b60006111c56111306122b1565b84846001600061113e6122b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111c09190613c71565b6122b9565b6001905092915050565b6111d76122b1565b73ffffffffffffffffffffffffffffffffffffffff166111f561192e565b73ffffffffffffffffffffffffffffffffffffffff161461124b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124290613c22565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161129390613f68565b60006040518083038185875af1925050503d80600081146112d0576040519150601f19603f3d011682016040523d82523d6000602084013e6112d5565b606091505b505090505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900460ff1681565b61131e6122b1565b73ffffffffffffffffffffffffffffffffffffffff1661133c61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138990613c22565b60405180910390fd5b8160098190555080600a81905550600a546009546113b09190613c71565b600881905550606360085411156113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f390613cf1565b60405180910390fd5b5050565b600b5481565b601560029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114696122b1565b73ffffffffffffffffffffffffffffffffffffffff1661148761192e565b73ffffffffffffffffffffffffffffffffffffffff16146114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490613c22565b60405180910390fd5b80601560026101000a81548160ff02191690831515021790555050565b6115026122b1565b73ffffffffffffffffffffffffffffffffffffffff1661152061192e565b73ffffffffffffffffffffffffffffffffffffffff1614611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d90613c22565b60405180910390fd5b6115806000612eea565b565b600061158c6122b1565b73ffffffffffffffffffffffffffffffffffffffff166115aa61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790613c22565b60405180910390fd5b6000601560006101000a81548160ff0219169083151502179055506001905090565b61162a6122b1565b73ffffffffffffffffffffffffffffffffffffffff1661164861192e565b73ffffffffffffffffffffffffffffffffffffffff161461169e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169590613c22565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117296122b1565b73ffffffffffffffffffffffffffffffffffffffff1661174761192e565b73ffffffffffffffffffffffffffffffffffffffff161461179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490613c22565b60405180910390fd5b620186a060016117ab610d71565b6117b59190613d71565b6117bf9190613de2565b821015611801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f890613fef565b60405180910390fd5b6103e8600561180e610d71565b6118189190613d71565b6118229190613de2565b821115611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b90614081565b60405180910390fd5b8160138190555060019050919050565b60095481565b6118826122b1565b73ffffffffffffffffffffffffffffffffffffffff166118a061192e565b73ffffffffffffffffffffffffffffffffffffffff16146118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ed90613c22565b60405180910390fd5b6001601560016101000a81548160ff0219169083151502179055506001601560026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606004805461196d90613d40565b80601f016020809104026020016040519081016040528092919081815260200182805461199990613d40565b80156119e65780601f106119bb576101008083540402835291602001916119e6565b820191906000526020600020905b8154815290600101906020018083116119c957829003601f168201915b5050505050905090565b6119f86122b1565b73ffffffffffffffffffffffffffffffffffffffff16611a1661192e565b73ffffffffffffffffffffffffffffffffffffffff1614611a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6390613c22565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af390614113565b60405180910390fd5b611b068282612fb0565b5050565b600a5481565b600f5481565b600d5481565b60008060016000611b2b6122b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdf906141a5565b60405180910390fd5b611bfc611bf36122b1565b858584036122b9565b600191505092915050565b611c0f6122b1565b73ffffffffffffffffffffffffffffffffffffffff16611c2d61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a90613c22565b60405180910390fd5b6000611c8e30611419565b905060006013548210159050808015611cb35750601560029054906101000a900460ff165b8015611ccc5750600760149054906101000a900460ff16155b15611d10576001600760146101000a81548160ff021916908315150217905550611cf4613051565b6000600760146101000a81548160ff0219169083151502179055505b5050565b6000611d28611d216122b1565b8484612482565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b601560019054906101000a900460ff1681565b611d6d6122b1565b73ffffffffffffffffffffffffffffffffffffffff16611d8b61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd890613c22565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611e7e9190613930565b60405180910390a25050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611eb86122b1565b73ffffffffffffffffffffffffffffffffffffffff16611ed661192e565b73ffffffffffffffffffffffffffffffffffffffff1614611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390613c22565b60405180910390fd5b670de0b6b3a76400006103e86001611f42610d71565b611f4c9190613d71565b611f569190613de2565b611f609190613de2565b811015611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9990614237565b60405180910390fd5b670de0b6b3a764000081611fb69190613d71565b60128190555050565b60125481565b611fcd6122b1565b73ffffffffffffffffffffffffffffffffffffffff16611feb61192e565b73ffffffffffffffffffffffffffffffffffffffff1614612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890613c22565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df870396560405160405180910390a380601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b60135481565b6121bc6122b1565b73ffffffffffffffffffffffffffffffffffffffff166121da61192e565b73ffffffffffffffffffffffffffffffffffffffff1614612230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222790613c22565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361229f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612296906142c9565b60405180910390fd5b6122a881612eea565b50565b60145481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231f9061435b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238e906143ed565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161247591906139d4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e89061447f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255790614511565b60405180910390fd5b60008103612579576125748383600061323c565b612ee5565b601560009054906101000a900460ff1615612a745761259661192e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561260457506125d461192e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561263d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612677575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126905750600760149054906101000a900460ff16155b15612a7357601560019054906101000a900460ff1661278a57601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061274a5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127809061457d565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561282d5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128d457601254811115612877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286e9061460f565b60405180910390fd5b60145461288383611419565b8261288e9190613c71565b11156128cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c69061467b565b60405180910390fd5b612a72565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129775750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129c6576012548111156129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b89061470d565b60405180910390fd5b612a71565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a7057601454612a2383611419565b82612a2e9190613c71565b1115612a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a669061467b565b60405180910390fd5b5b5b5b5b5b6000612a7f30611419565b905060006013548210159050808015612aa45750601560029054906101000a900460ff165b8015612abd5750600760149054906101000a900460ff16155b8015612b125750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612b685750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612bbe5750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c02576001600760146101000a81548160ff021916908315150217905550612be6613051565b6000600760146101000a81548160ff0219169083151502179055505b6000600760149054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612cb85750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612cc257600090505b60008115612ed557601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d2557506000600b54115b15612dbf57612d526064612d44600b54886134bb90919063ffffffff16565b6134d190919063ffffffff16565b9050600b54600d5482612d659190613d71565b612d6f9190613de2565b600f6000828254612d809190613c71565b92505081905550600b54600c5482612d989190613d71565b612da29190613de2565b600e6000828254612db39190613c71565b92505081905550612eb1565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e1a57506000600854115b15612eb057612e476064612e39600854886134bb90919063ffffffff16565b6134d190919063ffffffff16565b9050600854600a5482612e5a9190613d71565b612e649190613de2565b600f6000828254612e759190613c71565b9250508190555060085460095482612e8d9190613d71565b612e979190613de2565b600e6000828254612ea89190613c71565b925050819055505b5b6000811115612ec657612ec587308361323c565b5b8085612ed2919061472d565b94505b612ee087878761323c565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600061305c30611419565b90506000600f54600e546130709190613c71565b90506000808314806130825750600082145b1561308f5750505061323a565b601460135461309e9190613d71565b8311156130b75760146013546130b49190613d71565b92505b60004790506130c5846134e7565b60006130da824761372a90919063ffffffff16565b90506000613105856130f7600f54856134bb90919063ffffffff16565b6134d190919063ffffffff16565b90506000600e819055506000600f81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161315d90613f68565b60006040518083038185875af1925050503d806000811461319a576040519150601f19603f3d011682016040523d82523d6000602084013e61319f565b606091505b505080945050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516131eb90613f68565b60006040518083038185875af1925050503d8060008114613228576040519150601f19603f3d011682016040523d82523d6000602084013e61322d565b606091505b5050809450505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a29061447f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361331a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331190614511565b60405180910390fd5b613325838383613740565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156133ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133a2906147d3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461343e9190613c71565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134a291906139d4565b60405180910390a36134b5848484613745565b50505050565b600081836134c99190613d71565b905092915050565b600081836134df9190613de2565b905092915050565b6000600267ffffffffffffffff811115613504576135036147f3565b5b6040519080825280602002602001820160405280156135325781602001602082028036833780820191505090505b509050308160008151811061354a57613549614822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136159190614866565b8160018151811061362957613628614822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061369030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122b9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136f495949392919061498c565b600060405180830381600087803b15801561370e57600080fd5b505af1158015613722573d6000803e3d6000fd5b505050505050565b60008183613738919061472d565b905092915050565b505050565b505050565b600080fd5b6000819050919050565b6137628161374f565b811461376d57600080fd5b50565b60008135905061377f81613759565b92915050565b6000806040838503121561379c5761379b61374a565b5b60006137aa85828601613770565b92505060206137bb85828601613770565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137ff5780820151818401526020810190506137e4565b60008484015250505050565b6000601f19601f8301169050919050565b6000613827826137c5565b61383181856137d0565b93506138418185602086016137e1565b61384a8161380b565b840191505092915050565b6000602082019050818103600083015261386f818461381c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138a282613877565b9050919050565b6138b281613897565b81146138bd57600080fd5b50565b6000813590506138cf816138a9565b92915050565b600080604083850312156138ec576138eb61374a565b5b60006138fa858286016138c0565b925050602061390b85828601613770565b9150509250929050565b60008115159050919050565b61392a81613915565b82525050565b60006020820190506139456000830184613921565b92915050565b6000819050919050565b600061397061396b61396684613877565b61394b565b613877565b9050919050565b600061398282613955565b9050919050565b600061399482613977565b9050919050565b6139a481613989565b82525050565b60006020820190506139bf600083018461399b565b92915050565b6139ce8161374f565b82525050565b60006020820190506139e960008301846139c5565b92915050565b600060208284031215613a0557613a0461374a565b5b6000613a1384828501613770565b91505092915050565b600060208284031215613a3257613a3161374a565b5b6000613a40848285016138c0565b91505092915050565b600080600060608486031215613a6257613a6161374a565b5b6000613a70868287016138c0565b9350506020613a81868287016138c0565b9250506040613a9286828701613770565b9150509250925092565b600060ff82169050919050565b613ab281613a9c565b82525050565b6000602082019050613acd6000830184613aa9565b92915050565b613adc81613897565b82525050565b6000602082019050613af76000830184613ad3565b92915050565b613b0681613915565b8114613b1157600080fd5b50565b600081359050613b2381613afd565b92915050565b600060208284031215613b3f57613b3e61374a565b5b6000613b4d84828501613b14565b91505092915050565b60008060408385031215613b6d57613b6c61374a565b5b6000613b7b858286016138c0565b9250506020613b8c85828601613b14565b9150509250929050565b60008060408385031215613bad57613bac61374a565b5b6000613bbb858286016138c0565b9250506020613bcc858286016138c0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c0c6020836137d0565b9150613c1782613bd6565b602082019050919050565b60006020820190508181036000830152613c3b81613bff565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c7c8261374f565b9150613c878361374f565b9250828201905080821115613c9f57613c9e613c42565b5b92915050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000613cdb601d836137d0565b9150613ce682613ca5565b602082019050919050565b60006020820190508181036000830152613d0a81613cce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d5857607f821691505b602082108103613d6b57613d6a613d11565b5b50919050565b6000613d7c8261374f565b9150613d878361374f565b9250828202613d958161374f565b91508282048414831517613dac57613dab613c42565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ded8261374f565b9150613df88361374f565b925082613e0857613e07613db3565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613e6f6024836137d0565b9150613e7a82613e13565b604082019050919050565b60006020820190508181036000830152613e9e81613e62565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613f016028836137d0565b9150613f0c82613ea5565b604082019050919050565b60006020820190508181036000830152613f3081613ef4565b9050919050565b600081905092915050565b50565b6000613f52600083613f37565b9150613f5d82613f42565b600082019050919050565b6000613f7382613f45565b9150819050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613fd96035836137d0565b9150613fe482613f7d565b604082019050919050565b6000602082019050818103600083015261400881613fcc565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061406b6034836137d0565b91506140768261400f565b604082019050919050565b6000602082019050818103600083015261409a8161405e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006140fd6039836137d0565b9150614108826140a1565b604082019050919050565b6000602082019050818103600083015261412c816140f0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061418f6025836137d0565b915061419a82614133565b604082019050919050565b600060208201905081810360008301526141be81614182565b9050919050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b60006142216029836137d0565b915061422c826141c5565b604082019050919050565b6000602082019050818103600083015261425081614214565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142b36026836137d0565b91506142be82614257565b604082019050919050565b600060208201905081810360008301526142e2816142a6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006143456024836137d0565b9150614350826142e9565b604082019050919050565b6000602082019050818103600083015261437481614338565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006143d76022836137d0565b91506143e28261437b565b604082019050919050565b60006020820190508181036000830152614406816143ca565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006144696025836137d0565b91506144748261440d565b604082019050919050565b600060208201905081810360008301526144988161445c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144fb6023836137d0565b91506145068261449f565b604082019050919050565b6000602082019050818103600083015261452a816144ee565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006145676016836137d0565b915061457282614531565b602082019050919050565b600060208201905081810360008301526145968161455a565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e2e0000000000000000000000000000000000602082015250565b60006145f9602f836137d0565b91506146048261459d565b604082019050919050565b60006020820190508181036000830152614628816145ec565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006146656013836137d0565b91506146708261462f565b602082019050919050565b6000602082019050818103600083015261469481614658565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e2e00000000000000000000000000000000602082015250565b60006146f76030836137d0565b91506147028261469b565b604082019050919050565b60006020820190508181036000830152614726816146ea565b9050919050565b60006147388261374f565b91506147438361374f565b925082820390508181111561475b5761475a613c42565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006147bd6026836137d0565b91506147c882614761565b604082019050919050565b600060208201905081810360008301526147ec816147b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614860816138a9565b92915050565b60006020828403121561487c5761487b61374a565b5b600061488a84828501614851565b91505092915050565b6000819050919050565b60006148b86148b36148ae84614893565b61394b565b61374f565b9050919050565b6148c88161489d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61490381613897565b82525050565b600061491583836148fa565b60208301905092915050565b6000602082019050919050565b6000614939826148ce565b61494381856148d9565b935061494e836148ea565b8060005b8381101561497f5781516149668882614909565b975061497183614921565b925050600181019050614952565b5085935050505092915050565b600060a0820190506149a160008301886139c5565b6149ae60208301876148bf565b81810360408301526149c0818661492e565b90506149cf6060830185613ad3565b6149dc60808301846139c5565b969550505050505056fea2646970667358221220990b9e737dad07b94baa641650037b5b6cd86ea104b0d625e4ef3deec21a488664736f6c63430008180033
Deployed Bytecode
0x6080604052600436106102cd5760003560e01c80637bce5a0411610175578063b62496f5116100dc578063d791219911610095578063e1bc33941161006f578063e1bc339414610af5578063e2f4560514610b32578063f2fde38b14610b5d578063f8b45b0514610b86576102d4565b8063d791219914610a64578063d85ba06314610a8d578063dd62ed3e14610ab8576102d4565b8063b62496f514610954578063bbc0c74214610991578063c0246668146109bc578063c04a5414146109e5578063c2d0ffca14610a10578063c3f70b5214610a39576102d4565b80639c3b4fdc1161012e5780639c3b4fdc146108425780639fccce321461086d578063a0d82dc514610898578063a457c2d7146108c3578063a73f9b5814610900578063a9059cbb14610917576102d4565b80637bce5a04146107565780638a8c523c146107815780638da5cb5b1461079857806392136913146107c357806395d89b41146107ee5780639a7a23d614610819576102d4565b806344af18e81161023457806370a08231116101ed578063751039fc116101c7578063751039fc1461069a5780637571336a146106c557806375f0a874146106ee57806375fed3c714610719576102d4565b806370a082311461061d57806370df73551461065a578063715018a614610683576102d4565b806344af18e81461051f57806349bd5a5e146105485780634a62bb651461057357806366ca9b831461059e5780636a486a8e146105c75780636ddd1713146105f2576102d4565b80631f3fed8f116102865780631f3fed8f146103e95780632369bf831461041457806323b872dd1461043d578063291984351461047a578063313ce567146104b757806339509351146104e2576102d4565b806302dbd8f8146102d957806306fdde0314610302578063095ea7b31461032d5780631694505e1461036a57806318160ddd146103955780631c499ab0146103c0576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b5061030060048036038101906102fb9190613785565b610bb1565b005b34801561030e57600080fd5b50610317610c9b565b6040516103249190613855565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f91906138d5565b610d2d565b6040516103619190613930565b60405180910390f35b34801561037657600080fd5b5061037f610d4b565b60405161038c91906139aa565b60405180910390f35b3480156103a157600080fd5b506103aa610d71565b6040516103b791906139d4565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e291906139ef565b610d7b565b005b3480156103f557600080fd5b506103fe610e8a565b60405161040b91906139d4565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190613a1c565b610e90565b005b34801561044957600080fd5b50610464600480360381019061045f9190613a49565b610fcc565b6040516104719190613930565b60405180910390f35b34801561048657600080fd5b506104a1600480360381019061049c9190613a1c565b6110c4565b6040516104ae9190613930565b60405180910390f35b3480156104c357600080fd5b506104cc61111a565b6040516104d99190613ab8565b60405180910390f35b3480156104ee57600080fd5b50610509600480360381019061050491906138d5565b611123565b6040516105169190613930565b60405180910390f35b34801561052b57600080fd5b50610546600480360381019061054191906139ef565b6111cf565b005b34801561055457600080fd5b5061055d6112dd565b60405161056a9190613ae2565b60405180910390f35b34801561057f57600080fd5b50610588611303565b6040516105959190613930565b60405180910390f35b3480156105aa57600080fd5b506105c560048036038101906105c09190613785565b611316565b005b3480156105d357600080fd5b506105dc611400565b6040516105e991906139d4565b60405180910390f35b3480156105fe57600080fd5b50610607611406565b6040516106149190613930565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190613a1c565b611419565b60405161065191906139d4565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190613b29565b611461565b005b34801561068f57600080fd5b506106986114fa565b005b3480156106a657600080fd5b506106af611582565b6040516106bc9190613930565b60405180910390f35b3480156106d157600080fd5b506106ec60048036038101906106e79190613b56565b611622565b005b3480156106fa57600080fd5b506107036116f9565b6040516107109190613ae2565b60405180910390f35b34801561072557600080fd5b50610740600480360381019061073b91906139ef565b61171f565b60405161074d9190613930565b60405180910390f35b34801561076257600080fd5b5061076b611874565b60405161077891906139d4565b60405180910390f35b34801561078d57600080fd5b5061079661187a565b005b3480156107a457600080fd5b506107ad61192e565b6040516107ba9190613ae2565b60405180910390f35b3480156107cf57600080fd5b506107d8611958565b6040516107e591906139d4565b60405180910390f35b3480156107fa57600080fd5b5061080361195e565b6040516108109190613855565b60405180910390f35b34801561082557600080fd5b50610840600480360381019061083b9190613b56565b6119f0565b005b34801561084e57600080fd5b50610857611b0a565b60405161086491906139d4565b60405180910390f35b34801561087957600080fd5b50610882611b10565b60405161088f91906139d4565b60405180910390f35b3480156108a457600080fd5b506108ad611b16565b6040516108ba91906139d4565b60405180910390f35b3480156108cf57600080fd5b506108ea60048036038101906108e591906138d5565b611b1c565b6040516108f79190613930565b60405180910390f35b34801561090c57600080fd5b50610915611c07565b005b34801561092357600080fd5b5061093e600480360381019061093991906138d5565b611d14565b60405161094b9190613930565b60405180910390f35b34801561096057600080fd5b5061097b60048036038101906109769190613a1c565b611d32565b6040516109889190613930565b60405180910390f35b34801561099d57600080fd5b506109a6611d52565b6040516109b39190613930565b60405180910390f35b3480156109c857600080fd5b506109e360048036038101906109de9190613b56565b611d65565b005b3480156109f157600080fd5b506109fa611e8a565b604051610a079190613ae2565b60405180910390f35b348015610a1c57600080fd5b50610a376004803603810190610a3291906139ef565b611eb0565b005b348015610a4557600080fd5b50610a4e611fbf565b604051610a5b91906139d4565b60405180910390f35b348015610a7057600080fd5b50610a8b6004803603810190610a869190613a1c565b611fc5565b005b348015610a9957600080fd5b50610aa2612101565b604051610aaf91906139d4565b60405180910390f35b348015610ac457600080fd5b50610adf6004803603810190610ada9190613b96565b612107565b604051610aec91906139d4565b60405180910390f35b348015610b0157600080fd5b50610b1c6004803603810190610b179190613a1c565b61218e565b604051610b299190613930565b60405180910390f35b348015610b3e57600080fd5b50610b476121ae565b604051610b5491906139d4565b60405180910390f35b348015610b6957600080fd5b50610b846004803603810190610b7f9190613a1c565b6121b4565b005b348015610b9257600080fd5b50610b9b6122ab565b604051610ba891906139d4565b60405180910390f35b610bb96122b1565b73ffffffffffffffffffffffffffffffffffffffff16610bd761192e565b73ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490613c22565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610c4b9190613c71565b600b819055506063600b541115610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90613cf1565b60405180910390fd5b5050565b606060038054610caa90613d40565b80601f0160208091040260200160405190810160405280929190818152602001828054610cd690613d40565b8015610d235780601f10610cf857610100808354040283529160200191610d23565b820191906000526020600020905b815481529060010190602001808311610d0657829003601f168201915b5050505050905090565b6000610d41610d3a6122b1565b84846122b9565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610d836122b1565b73ffffffffffffffffffffffffffffffffffffffff16610da161192e565b73ffffffffffffffffffffffffffffffffffffffff1614610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee90613c22565b60405180910390fd5b670de0b6b3a76400006103e86005610e0d610d71565b610e179190613d71565b610e219190613de2565b610e2b9190613de2565b811015610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6490613e85565b60405180910390fd5b670de0b6b3a764000081610e819190613d71565b60148190555050565b600e5481565b610e986122b1565b73ffffffffffffffffffffffffffffffffffffffff16610eb661192e565b73ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390613c22565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610fd9848484612482565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110246122b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156110a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109b90613f17565b60405180910390fd5b6110b8856110b06122b1565b8584036122b9565b60019150509392505050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006012905090565b60006111c56111306122b1565b84846001600061113e6122b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111c09190613c71565b6122b9565b6001905092915050565b6111d76122b1565b73ffffffffffffffffffffffffffffffffffffffff166111f561192e565b73ffffffffffffffffffffffffffffffffffffffff161461124b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124290613c22565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161129390613f68565b60006040518083038185875af1925050503d80600081146112d0576040519150601f19603f3d011682016040523d82523d6000602084013e6112d5565b606091505b505090505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900460ff1681565b61131e6122b1565b73ffffffffffffffffffffffffffffffffffffffff1661133c61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138990613c22565b60405180910390fd5b8160098190555080600a81905550600a546009546113b09190613c71565b600881905550606360085411156113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f390613cf1565b60405180910390fd5b5050565b600b5481565b601560029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114696122b1565b73ffffffffffffffffffffffffffffffffffffffff1661148761192e565b73ffffffffffffffffffffffffffffffffffffffff16146114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490613c22565b60405180910390fd5b80601560026101000a81548160ff02191690831515021790555050565b6115026122b1565b73ffffffffffffffffffffffffffffffffffffffff1661152061192e565b73ffffffffffffffffffffffffffffffffffffffff1614611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d90613c22565b60405180910390fd5b6115806000612eea565b565b600061158c6122b1565b73ffffffffffffffffffffffffffffffffffffffff166115aa61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790613c22565b60405180910390fd5b6000601560006101000a81548160ff0219169083151502179055506001905090565b61162a6122b1565b73ffffffffffffffffffffffffffffffffffffffff1661164861192e565b73ffffffffffffffffffffffffffffffffffffffff161461169e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169590613c22565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117296122b1565b73ffffffffffffffffffffffffffffffffffffffff1661174761192e565b73ffffffffffffffffffffffffffffffffffffffff161461179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490613c22565b60405180910390fd5b620186a060016117ab610d71565b6117b59190613d71565b6117bf9190613de2565b821015611801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f890613fef565b60405180910390fd5b6103e8600561180e610d71565b6118189190613d71565b6118229190613de2565b821115611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b90614081565b60405180910390fd5b8160138190555060019050919050565b60095481565b6118826122b1565b73ffffffffffffffffffffffffffffffffffffffff166118a061192e565b73ffffffffffffffffffffffffffffffffffffffff16146118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ed90613c22565b60405180910390fd5b6001601560016101000a81548160ff0219169083151502179055506001601560026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606004805461196d90613d40565b80601f016020809104026020016040519081016040528092919081815260200182805461199990613d40565b80156119e65780601f106119bb576101008083540402835291602001916119e6565b820191906000526020600020905b8154815290600101906020018083116119c957829003601f168201915b5050505050905090565b6119f86122b1565b73ffffffffffffffffffffffffffffffffffffffff16611a1661192e565b73ffffffffffffffffffffffffffffffffffffffff1614611a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6390613c22565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af390614113565b60405180910390fd5b611b068282612fb0565b5050565b600a5481565b600f5481565b600d5481565b60008060016000611b2b6122b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdf906141a5565b60405180910390fd5b611bfc611bf36122b1565b858584036122b9565b600191505092915050565b611c0f6122b1565b73ffffffffffffffffffffffffffffffffffffffff16611c2d61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a90613c22565b60405180910390fd5b6000611c8e30611419565b905060006013548210159050808015611cb35750601560029054906101000a900460ff165b8015611ccc5750600760149054906101000a900460ff16155b15611d10576001600760146101000a81548160ff021916908315150217905550611cf4613051565b6000600760146101000a81548160ff0219169083151502179055505b5050565b6000611d28611d216122b1565b8484612482565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b601560019054906101000a900460ff1681565b611d6d6122b1565b73ffffffffffffffffffffffffffffffffffffffff16611d8b61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd890613c22565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611e7e9190613930565b60405180910390a25050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611eb86122b1565b73ffffffffffffffffffffffffffffffffffffffff16611ed661192e565b73ffffffffffffffffffffffffffffffffffffffff1614611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390613c22565b60405180910390fd5b670de0b6b3a76400006103e86001611f42610d71565b611f4c9190613d71565b611f569190613de2565b611f609190613de2565b811015611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9990614237565b60405180910390fd5b670de0b6b3a764000081611fb69190613d71565b60128190555050565b60125481565b611fcd6122b1565b73ffffffffffffffffffffffffffffffffffffffff16611feb61192e565b73ffffffffffffffffffffffffffffffffffffffff1614612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890613c22565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df870396560405160405180910390a380601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b60135481565b6121bc6122b1565b73ffffffffffffffffffffffffffffffffffffffff166121da61192e565b73ffffffffffffffffffffffffffffffffffffffff1614612230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222790613c22565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361229f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612296906142c9565b60405180910390fd5b6122a881612eea565b50565b60145481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231f9061435b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238e906143ed565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161247591906139d4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e89061447f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255790614511565b60405180910390fd5b60008103612579576125748383600061323c565b612ee5565b601560009054906101000a900460ff1615612a745761259661192e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561260457506125d461192e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561263d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612677575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126905750600760149054906101000a900460ff16155b15612a7357601560019054906101000a900460ff1661278a57601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061274a5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127809061457d565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561282d5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128d457601254811115612877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286e9061460f565b60405180910390fd5b60145461288383611419565b8261288e9190613c71565b11156128cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c69061467b565b60405180910390fd5b612a72565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129775750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129c6576012548111156129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b89061470d565b60405180910390fd5b612a71565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a7057601454612a2383611419565b82612a2e9190613c71565b1115612a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a669061467b565b60405180910390fd5b5b5b5b5b5b6000612a7f30611419565b905060006013548210159050808015612aa45750601560029054906101000a900460ff165b8015612abd5750600760149054906101000a900460ff16155b8015612b125750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015612b685750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612bbe5750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c02576001600760146101000a81548160ff021916908315150217905550612be6613051565b6000600760146101000a81548160ff0219169083151502179055505b6000600760149054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612cb85750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612cc257600090505b60008115612ed557601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d2557506000600b54115b15612dbf57612d526064612d44600b54886134bb90919063ffffffff16565b6134d190919063ffffffff16565b9050600b54600d5482612d659190613d71565b612d6f9190613de2565b600f6000828254612d809190613c71565b92505081905550600b54600c5482612d989190613d71565b612da29190613de2565b600e6000828254612db39190613c71565b92505081905550612eb1565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e1a57506000600854115b15612eb057612e476064612e39600854886134bb90919063ffffffff16565b6134d190919063ffffffff16565b9050600854600a5482612e5a9190613d71565b612e649190613de2565b600f6000828254612e759190613c71565b9250508190555060085460095482612e8d9190613d71565b612e979190613de2565b600e6000828254612ea89190613c71565b925050819055505b5b6000811115612ec657612ec587308361323c565b5b8085612ed2919061472d565b94505b612ee087878761323c565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600061305c30611419565b90506000600f54600e546130709190613c71565b90506000808314806130825750600082145b1561308f5750505061323a565b601460135461309e9190613d71565b8311156130b75760146013546130b49190613d71565b92505b60004790506130c5846134e7565b60006130da824761372a90919063ffffffff16565b90506000613105856130f7600f54856134bb90919063ffffffff16565b6134d190919063ffffffff16565b90506000600e819055506000600f81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161315d90613f68565b60006040518083038185875af1925050503d806000811461319a576040519150601f19603f3d011682016040523d82523d6000602084013e61319f565b606091505b505080945050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516131eb90613f68565b60006040518083038185875af1925050503d8060008114613228576040519150601f19603f3d011682016040523d82523d6000602084013e61322d565b606091505b5050809450505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a29061447f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361331a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331190614511565b60405180910390fd5b613325838383613740565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156133ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133a2906147d3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461343e9190613c71565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134a291906139d4565b60405180910390a36134b5848484613745565b50505050565b600081836134c99190613d71565b905092915050565b600081836134df9190613de2565b905092915050565b6000600267ffffffffffffffff811115613504576135036147f3565b5b6040519080825280602002602001820160405280156135325781602001602082028036833780820191505090505b509050308160008151811061354a57613549614822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136159190614866565b8160018151811061362957613628614822565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061369030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846122b9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136f495949392919061498c565b600060405180830381600087803b15801561370e57600080fd5b505af1158015613722573d6000803e3d6000fd5b505050505050565b60008183613738919061472d565b905092915050565b505050565b505050565b600080fd5b6000819050919050565b6137628161374f565b811461376d57600080fd5b50565b60008135905061377f81613759565b92915050565b6000806040838503121561379c5761379b61374a565b5b60006137aa85828601613770565b92505060206137bb85828601613770565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137ff5780820151818401526020810190506137e4565b60008484015250505050565b6000601f19601f8301169050919050565b6000613827826137c5565b61383181856137d0565b93506138418185602086016137e1565b61384a8161380b565b840191505092915050565b6000602082019050818103600083015261386f818461381c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138a282613877565b9050919050565b6138b281613897565b81146138bd57600080fd5b50565b6000813590506138cf816138a9565b92915050565b600080604083850312156138ec576138eb61374a565b5b60006138fa858286016138c0565b925050602061390b85828601613770565b9150509250929050565b60008115159050919050565b61392a81613915565b82525050565b60006020820190506139456000830184613921565b92915050565b6000819050919050565b600061397061396b61396684613877565b61394b565b613877565b9050919050565b600061398282613955565b9050919050565b600061399482613977565b9050919050565b6139a481613989565b82525050565b60006020820190506139bf600083018461399b565b92915050565b6139ce8161374f565b82525050565b60006020820190506139e960008301846139c5565b92915050565b600060208284031215613a0557613a0461374a565b5b6000613a1384828501613770565b91505092915050565b600060208284031215613a3257613a3161374a565b5b6000613a40848285016138c0565b91505092915050565b600080600060608486031215613a6257613a6161374a565b5b6000613a70868287016138c0565b9350506020613a81868287016138c0565b9250506040613a9286828701613770565b9150509250925092565b600060ff82169050919050565b613ab281613a9c565b82525050565b6000602082019050613acd6000830184613aa9565b92915050565b613adc81613897565b82525050565b6000602082019050613af76000830184613ad3565b92915050565b613b0681613915565b8114613b1157600080fd5b50565b600081359050613b2381613afd565b92915050565b600060208284031215613b3f57613b3e61374a565b5b6000613b4d84828501613b14565b91505092915050565b60008060408385031215613b6d57613b6c61374a565b5b6000613b7b858286016138c0565b9250506020613b8c85828601613b14565b9150509250929050565b60008060408385031215613bad57613bac61374a565b5b6000613bbb858286016138c0565b9250506020613bcc858286016138c0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c0c6020836137d0565b9150613c1782613bd6565b602082019050919050565b60006020820190508181036000830152613c3b81613bff565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c7c8261374f565b9150613c878361374f565b9250828201905080821115613c9f57613c9e613c42565b5b92915050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000613cdb601d836137d0565b9150613ce682613ca5565b602082019050919050565b60006020820190508181036000830152613d0a81613cce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d5857607f821691505b602082108103613d6b57613d6a613d11565b5b50919050565b6000613d7c8261374f565b9150613d878361374f565b9250828202613d958161374f565b91508282048414831517613dac57613dab613c42565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ded8261374f565b9150613df88361374f565b925082613e0857613e07613db3565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613e6f6024836137d0565b9150613e7a82613e13565b604082019050919050565b60006020820190508181036000830152613e9e81613e62565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613f016028836137d0565b9150613f0c82613ea5565b604082019050919050565b60006020820190508181036000830152613f3081613ef4565b9050919050565b600081905092915050565b50565b6000613f52600083613f37565b9150613f5d82613f42565b600082019050919050565b6000613f7382613f45565b9150819050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613fd96035836137d0565b9150613fe482613f7d565b604082019050919050565b6000602082019050818103600083015261400881613fcc565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061406b6034836137d0565b91506140768261400f565b604082019050919050565b6000602082019050818103600083015261409a8161405e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006140fd6039836137d0565b9150614108826140a1565b604082019050919050565b6000602082019050818103600083015261412c816140f0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061418f6025836137d0565b915061419a82614133565b604082019050919050565b600060208201905081810360008301526141be81614182565b9050919050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e206c6f7765722060008201527f7468616e20302e31250000000000000000000000000000000000000000000000602082015250565b60006142216029836137d0565b915061422c826141c5565b604082019050919050565b6000602082019050818103600083015261425081614214565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142b36026836137d0565b91506142be82614257565b604082019050919050565b600060208201905081810360008301526142e2816142a6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006143456024836137d0565b9150614350826142e9565b604082019050919050565b6000602082019050818103600083015261437481614338565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006143d76022836137d0565b91506143e28261437b565b604082019050919050565b60006020820190508181036000830152614406816143ca565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006144696025836137d0565b91506144748261440d565b604082019050919050565b600060208201905081810360008301526144988161445c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144fb6023836137d0565b91506145068261449f565b604082019050919050565b6000602082019050818103600083015261452a816144ee565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006145676016836137d0565b915061457282614531565b602082019050919050565b600060208201905081810360008301526145968161455a565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e2e0000000000000000000000000000000000602082015250565b60006145f9602f836137d0565b91506146048261459d565b604082019050919050565b60006020820190508181036000830152614628816145ec565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006146656013836137d0565b91506146708261462f565b602082019050919050565b6000602082019050818103600083015261469481614658565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e2e00000000000000000000000000000000602082015250565b60006146f76030836137d0565b91506147028261469b565b604082019050919050565b60006020820190508181036000830152614726816146ea565b9050919050565b60006147388261374f565b91506147438361374f565b925082820390508181111561475b5761475a613c42565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006147bd6026836137d0565b91506147c882614761565b604082019050919050565b600060208201905081810360008301526147ec816147b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614860816138a9565b92915050565b60006020828403121561487c5761487b61374a565b5b600061488a84828501614851565b91505092915050565b6000819050919050565b60006148b86148b36148ae84614893565b61394b565b61374f565b9050919050565b6148c88161489d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61490381613897565b82525050565b600061491583836148fa565b60208301905092915050565b6000602082019050919050565b6000614939826148ce565b61494381856148d9565b935061494e836148ea565b8060005b8381101561497f5781516149668882614909565b975061497183614921565b925050600181019050614952565b5085935050505092915050565b600060a0820190506149a160008301886139c5565b6149ae60208301876148bf565b81810360408301526149c0818661492e565b90506149cf6060830185613ad3565b6149dc60808301846139c5565b969550505050505056fea2646970667358221220990b9e737dad07b94baa641650037b5b6cd86ea104b0d625e4ef3deec21a488664736f6c63430008180033
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.