ETH Price: $3,620.91 (+5.82%)

Token

Official BuffDoge ($Buff)
 

Overview

Max Total Supply

1,000,000,000 $Buff

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
constitutoor.eth
Balance
3,800,715.36942241210464554 $Buff

Value
$0.00
0x4d1adf22e6862b48a0bd18a943fda3c121d6866e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OfficialBuffDoge

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
byzantium EvmVersion
File 1 of 7 : OfficialBuffDoge.sol
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.4;
pragma experimental ABIEncoderV2;

import "./utils/IUniswapV2Factory.sol";
import "./utils/IUniswapV2Pair.sol";
import "./utils/IUniswapV2Router02.sol";
import "./utils/IERC20.sol";
import "./utils/TimeLock.sol";

/**
 * @notice ERC20 token with cost basis tracking and restricted loss-taking
 */
contract OfficialBuffDoge is IERC20, TimeLock {

    address private constant UNISWAP_ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping(address => uint256) private _basisOf;
    mapping(address => uint256) public cooldownOf;
    mapping (address => bool) private _isAllowedTransfer;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _blackList;

    address[] private _excluded;

    string  private _NAME;
    string  private _SYMBOL;
    uint256 private _DECIMALS;
   
    uint256 private constant _MAX = ~uint256(0);
    uint256 private constant _GRANULARITY = 100;
    uint256 private constant _maxTeamMintAmount = 1e8 ether;
   
    uint256 private _tTotal;
    uint256 private _rTotal;
    
    uint256 private _tFeeTotal;
    uint256 private _tBurnTotal;
    uint256 private _tMarketingFeeTotal;

    uint256 public    _TAX_FEE; // 3%
    uint256 public   _BURN_FEE; // 3%
    uint256 public _MARKET_FEE; // 3%

    // Track original fees to bypass fees for charity account
    uint256 private mintedSupply;


    address private _shoppingCart;
    address private _rewardWallet;
    address private _pair;
    address private _owner;

    bool private _paused;
    bool private _isEnableSwapTokenforEth;

    struct Minting {
        address recipient;
        uint amount;
    }

    struct StandardFees {
        uint taxFee;
        uint rewardFee;
        uint marketFee;
        uint taxPenaltyFee;
        uint rewardPenaltyFee;
        uint marketPenaltyFee;
    }
    StandardFees private _standardFees;

    mapping(address => address) private _referralOwner;
    mapping(address => uint256) private _referralOwnerTotalFee;

    constructor (string memory _name, string memory _symbol, uint256 _decimals, uint256 _supply, address _oldBuff, address[] memory blackList, address[] memory exchangeList) {
        _owner = msg.sender;
        _NAME = _name;
        _SYMBOL = _symbol;
        _DECIMALS = _decimals;
        _tTotal =_supply * (10 ** uint256(_DECIMALS));
        _rTotal = (_MAX - (_MAX % _tTotal));

        // setup uniswap pair and store address
        _pair = IUniswapV2Factory(IUniswapV2Router02(UNISWAP_ROUTER).factory())
            .createPair(IUniswapV2Router02(UNISWAP_ROUTER).WETH(), address(this));
        _rOwned[address(this)] = _rTotal;
        _excludeAccount(msg.sender);
        _excludeAccount(address(this));
        _excludeAccount(_pair);
        _excludeAccount(UNISWAP_ROUTER);

        // prepare to add liquidity
        _approve(address(this), _owner, _rTotal);

        _paused = true;
        _isEnableSwapTokenforEth = false;

        if (blackList.length > 0) {
            for(uint k = 0; k < blackList.length; k++) {
                _blackList[blackList[k]] = true;
            }
        }

        for(uint k = 0; k < exchangeList.length; k++) {
            uint balances = IERC20(_oldBuff).balanceOf(exchangeList[k]);
            if(balances > 0) {
                _transfer(address(this), exchangeList[k], balances);
            }
        }

        _transfer(address(this), msg.sender, 40 * 1e7 ether);
    }

    modifier isNotPaused() {
        require(_paused == false, "ERR: paused already");
        _;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function name() external view returns (string memory) {
        return _NAME;
    }

    function symbol() external view returns (string memory) {
        return _SYMBOL;
    }

    function decimals() external view returns (uint256) {
        return _DECIMALS;
    }

    function totalSupply() external view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) external view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] - subtractedValue);
        return true;
    }

    function isExcluded(address account) external view returns (bool) {
        return _isExcluded[account];
    }
    
    function totalFees() external view returns (uint256) {
        return _tFeeTotal;
    }
    
    function totalBurn() external view returns (uint256) {
        return _tBurnTotal;
    }
    
    function totalMarketingFees() external view returns (uint256) {
        return _tMarketingFeeTotal;
    }

    function checkReferralReward(address referralOwner) external view returns (uint256) {
        return _referralOwnerTotalFee[referralOwner];
    }
    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) external view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        return rAmount / _getRate();
    }

    function excludeAccount(address account) external onlyOwner {
        _excludeAccount(account);
    }

    function _excludeAccount(address account) private {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
        _isAllowedTransfer[account] = true;
        excludeFromLock(account);
    }

    function includeAccount(address account) external onlyOwner {
        require(_isExcluded[account], "Account is already included");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "TOKEN20: approve from the zero address");
        require(spender != address(0), "TOKEN20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function basisOf(address account) public view returns (uint256) {
        uint256 basis = _basisOf[account];
        if (basis == 0 && balanceOf(account) > 0) {
            basis = 0;
        }
        return basis;
    }

    function setBusinessWallet(address businessAddress) external onlyOwner isNotPaused returns (bool) {
        require(businessAddress != address(0), "ERR: zero address");
        _shoppingCart = businessAddress;
        uint256 cartAmount = 5e7 ether;
        _removeFee();
        _transferFromExcluded(address(this), businessAddress, cartAmount);
        _restoreAllFee();
        _excludeAccount(businessAddress);
        return true;
    }

    function setRewardAddress(address rewardAddress) external onlyOwner isNotPaused returns (bool) {
        require(rewardAddress != address(0), "ERR: zero address");
        _rewardWallet = rewardAddress;
        uint256 burnAmount = 35 * 1e7 ether;
        _removeFee();
        _transferFromExcluded(address(this), rewardAddress, burnAmount);
        _restoreAllFee();
        _excludeAccount(rewardAddress);
        return true;
    }

    function setReferralOwner(address referralUser, address referralOwner) external returns (bool) {
        require(_referralOwner[referralUser] == address(0), "ERR: address registered already");
        require(referralUser != address(0), "ERR: zero address");
        require(referralOwner != address(0), "ERR: zero address");
        _referralOwner[referralUser] = referralOwner;
        return true;
    }

    function setStandardFee(StandardFees memory _standardFee) external onlyOwner isNotPaused returns (bool) {
        require (_standardFee.taxFee < 100 && _standardFee.rewardFee < 100 && _standardFee.marketFee < 100, "ERR: Fee is so high");
        require (
            _standardFee.taxPenaltyFee < 100 && _standardFee.rewardPenaltyFee < 100 &&
            _standardFee.marketPenaltyFee < 100, "ERR: Fee is so high");
        _standardFees = _standardFee;
        return true;
    }

    function addBlackList(address blackAddress) external onlyOwner returns (bool) {
        require(blackAddress != _owner);
        require(!_blackList[blackAddress]);
        _blackList[blackAddress] = true;
        return true;
    }

    function removeBlackList(address removeAddress) external onlyOwner returns (bool) {
        require(_blackList[removeAddress]);
        require(removeAddress != _owner);
        _blackList[removeAddress] = false;
        return true;
    }
   
    function mintDev(Minting[] calldata mintings) external onlyOwner returns (bool) {
        require(mintings.length > 0, "ERR: zero address array");
        _removeFee();       
        for(uint i = 0; i < mintings.length; i++) {
            Minting memory m = mintings[i];
            require(mintedSupply + m.amount <= _maxTeamMintAmount, "ERR: exceed max team mint amount");
            _transferFromExcluded(address(this), m.recipient, m.amount);
            mintedSupply += m.amount;
            lockAddress(m.recipient, uint64(180 days));
        }        
        _restoreAllFee();
        return true;
    }    

    function pausedEnable() external onlyOwner returns (bool) {
        require(!_paused, "ERR: already pause enabled");
        _paused = true;
        return true;
    }

    function pausedNotEnable() external onlyOwner returns (bool) {
        require(_paused, "ERR: already pause disabled");
        _paused = false;
        return true;
    }

    function swapTokenForEthEnable() external onlyOwner isNotPaused returns (bool) {
        require(!_isEnableSwapTokenforEth, "ERR: already enabled");
        _isEnableSwapTokenforEth = true;
        return true;
    }

    function swapTokenForEthDisable() external onlyOwner isNotPaused returns (bool) {
        require(_isEnableSwapTokenforEth, "ERR: already disabled");
        _isEnableSwapTokenforEth = false;
        return true;
    }

    function checkReferralOwner(address referralUser) external view returns (address) {
        require(referralUser != address(0), "ERR: zero address");
        return _referralOwner[referralUser];
    }

    function checkedTimeLock(address user) external view returns (bool) {
        return !isUnLocked(user);
    }

    function checkAllowedTransfer(address user) external view returns (bool) {
        return _isAllowedTransfer[user];
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        require(!_blackList[from] && !_blackList[to]);
        // ignore minting and burning
        if (from == address(0) || to == address(0)) return;
        // ignore add/remove liquidity
        if (from == address(this) || to == address(this)) return;
        if (from == _owner || to == _owner) return;
        if (from == UNISWAP_ROUTER || to == UNISWAP_ROUTER) return;

        require(
            msg.sender == UNISWAP_ROUTER ||
            msg.sender == _pair || msg.sender == _owner ||
            _isAllowedTransfer[from] || _isAllowedTransfer[to],
            "ERR: sender must be uniswap or shoppingCart"
        );
        address[] memory path = new address[](2);
        if (from == _pair && !_isExcluded[to]) {
            require(isUnLocked(to), "ERR: address is locked(buy)");

            require(
                cooldownOf[to] < block.timestamp /* revert message not returned by Uniswap */
            );
            cooldownOf[to] = block.timestamp + (30 minutes);

            path[0] = IUniswapV2Router02(UNISWAP_ROUTER).WETH();
            path[1] = address(this);
            uint256[] memory amounts =
                IUniswapV2Router02(UNISWAP_ROUTER).getAmountsIn(amount, path);

            uint256 balance = balanceOf(to);
            uint256 fromBasis = (1 ether) * amounts[0] / amount;
            _basisOf[to] =
                (fromBasis * amount + basisOf(to) * balance) / (amount + balance);

        } else if (to == _pair && !_isExcluded[from]) {
            require(isUnLocked(from), "ERR: address is locked(sales)");            
            require(
                cooldownOf[from] < block.timestamp /* revert message not returned by Uniswap */
            );
            cooldownOf[from] = block.timestamp + (30 minutes);            
        }
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _beforeTokenTransfer(sender, recipient, amount);
        _transferWithFee(sender, recipient, amount);
        emit Transfer(sender, recipient, amount);
    }

    function _transferWithFee(
        address sender, address recipient, uint256 amount
    ) private returns (bool) {
        uint liquidityBalance = balanceOf(_pair);

        if(sender == _pair && !_isAllowedTransfer[recipient]) {
            require(amount <= liquidityBalance / 100, "ERR: Exceed the 1% of current liquidity balance");
            _restoreAllFee();
        }
        else if(recipient == _pair && !_isAllowedTransfer[sender]) {
            require(_isEnableSwapTokenforEth, "ERR: disabled swap");
            require(amount <= liquidityBalance / 100, "ERR: Exceed the 1% of current liquidity balance");
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = IUniswapV2Router02(UNISWAP_ROUTER).WETH();
            uint[] memory amounts = IUniswapV2Router02(UNISWAP_ROUTER).getAmountsOut(
                amount,
                path
            );
            if (basisOf(sender) <= (1 ether) * amounts[1] / amount) {
                _restoreAllFee();
            }
            else {
                _setPenaltyFee();
            }
        }
        else {
            _removeFee();
        }

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            if(recipient == _pair) {
                _transferToExcludedForSale(sender, recipient, amount);
            }
            else {
                _transferToExcluded(sender, recipient, amount);
            }
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
        _restoreAllFee();
        return true;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket) = _getValues(tAmount);
        uint256 rBurn =  tBurn * currentRate;
        uint256 rMarket = tMarket * currentRate;     
        _standardTransferContent(sender, recipient, rAmount, rTransferAmount);
        if (tMarket > 0) {
            _sendToBusinees(tMarket, sender, recipient);
        }
        if (tBurn > 0) {
            _sendToBurn(tBurn, sender);
        }
        _reflectFee(rFee, rBurn, rMarket, tFee, tBurn, tMarket);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    function _standardTransferContent(address sender, address recipient, uint256 rAmount, uint256 rTransferAmount) private {
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
    }
    
    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket) = _getValues(tAmount);
        uint256 rBurn =  tBurn * currentRate;
        uint256 rMarket = tMarket * currentRate;
        _excludedFromTransferContent(sender, recipient, tTransferAmount, rAmount, rTransferAmount);        
        if (tMarket > 0) {
            _sendToBusinees(tMarket, sender, recipient);
        }
        if (tBurn > 0) {
            _sendToBurn(tBurn, sender);
        }
        _reflectFee(rFee, rBurn, rMarket, tFee, tBurn, tMarket);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    function _excludedFromTransferContent(address sender, address recipient, uint256 tTransferAmount, uint256 rAmount, uint256 rTransferAmount) private {
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;    
    }
    
    function _transferToExcludedForSale(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket) = _getValuesForSale(tAmount);
        uint256 rBurn =  tBurn * currentRate;
        uint256 rMarket = tMarket * currentRate;
        _excludedFromTransferContentForSale(sender, recipient, tAmount, rAmount, rTransferAmount);        
        if (tMarket > 0) {
            _sendToBusinees(tMarket, sender, recipient);
        }
        if (tBurn > 0) {
            _sendToBurn(tBurn, sender);
        }
        _reflectFee(rFee, rBurn, rMarket, tFee, tBurn, tMarket);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    function _excludedFromTransferContentForSale(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 rTransferAmount) private {
        _rOwned[sender] = _rOwned[sender] - rTransferAmount;
        _tOwned[recipient] = _tOwned[recipient] + tAmount;
        _rOwned[recipient] = _rOwned[recipient] + rAmount;    
    }    

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket) = _getValues(tAmount);
        uint256 rBurn =  tBurn * currentRate;
        uint256 rMarket = tMarket * currentRate;
        _excludedToTransferContent(sender, recipient, tAmount, rAmount, rTransferAmount);
        if (tMarket > 0) {
            _sendToBusinees(tMarket, sender, recipient);
        }
        if (tBurn > 0) {
            _sendToBurn(tBurn, sender);
        }
        _reflectFee(rFee, rBurn, rMarket, tFee, tBurn, tMarket);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    function _excludedToTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 rTransferAmount) private {
        _tOwned[sender] = _tOwned[sender] - tAmount;
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;  
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tMarket) = _getValues(tAmount);
        uint256 rBurn =  tBurn * currentRate;
        uint256 rMarket = tMarket * currentRate;    
        _bothTransferContent(sender, recipient, tAmount, rAmount, tTransferAmount, rTransferAmount);  
        if (tMarket > 0) {
            _sendToBusinees(tMarket, sender, recipient);
        }
        if (tBurn > 0) {
            _sendToBurn(tBurn, sender);
        }
        _reflectFee(rFee, rBurn, rMarket, tFee, tBurn, tMarket);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    function _bothTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 tTransferAmount, uint256 rTransferAmount) private {
        _tOwned[sender] = _tOwned[sender] - tAmount;
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;  
    }

    function _reflectFee(uint256 rFee, uint256 rBurn, uint256 rMarket, uint256 tFee, uint256 tBurn, uint256 tMarket) private {
        _rTotal = _rTotal - rFee - rBurn - rMarket;
        _tFeeTotal = _tFeeTotal + tFee;
        _tBurnTotal = _tBurnTotal + tBurn;
        _tMarketingFeeTotal = _tMarketingFeeTotal + tMarket;
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tFee, uint256 tBurn, uint256 tMarket) = _getTBasics(tAmount, _TAX_FEE, _BURN_FEE, _MARKET_FEE);
        uint256 tTransferAmount = getTTransferAmount(tAmount, tFee, tBurn, tMarket);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rFee) = _getRBasics(tAmount, tFee, currentRate);
        uint256 rTransferAmount = _getRTransferAmount(rAmount, rFee, tBurn, tMarket, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn, tMarket);
    }

    function _getValuesForSale(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tFee, uint256 tBurn, uint256 tMarket) = _getTBasics(tAmount, _TAX_FEE, _BURN_FEE, _MARKET_FEE);
        uint256 tTransferAmountForSale = getTTransferAmountForSale(tAmount, tFee, tBurn, tMarket);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rFee) = _getRBasics(tAmount, tFee, currentRate);
        uint256 rTransferAmountForSale = _getRTransferAmountForSale(rAmount, rFee, tBurn, tMarket, currentRate);
        return (rAmount, rTransferAmountForSale, rFee, tTransferAmountForSale, tFee, tBurn, tMarket);
    }
    
    function _getTBasics(uint256 tAmount, uint256 taxFee, uint256 burnFee, uint256 marketFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = (tAmount * taxFee) / _GRANULARITY / 100;
        uint256 tBurn = (tAmount * burnFee) / _GRANULARITY / 100;
        uint256 tMarket = (tAmount * marketFee) / _GRANULARITY / 100;
        return (tFee, tBurn, tMarket);
    }
    
    function getTTransferAmount(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 tMarket) private pure returns (uint256) {
        return tAmount - tFee - tBurn - tMarket;
    }
    function getTTransferAmountForSale(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 tMarket) private pure returns (uint256) {
        return tAmount + tFee + tBurn + tMarket;
    }
    
    function _getRBasics(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256) {
        uint256 rAmount = tAmount * currentRate;
        uint256 rFee = tFee * currentRate;
        return (rAmount, rFee);
    }
    
    function _getRTransferAmount(uint256 rAmount, uint256 rFee, uint256 tBurn, uint256 tMarket, uint256 currentRate) private pure returns (uint256) {
        uint256 rBurn = tBurn * currentRate;
        uint256 rMarket = tMarket * currentRate;
        uint256 rTransferAmount = rAmount - rFee - rBurn - rMarket;
        return rTransferAmount;
    }

    function _getRTransferAmountForSale(uint256 rAmount, uint256 rFee, uint256 tBurn, uint256 tMarket, uint256 currentRate) private pure returns (uint256) {
        uint256 rBurn = tBurn * currentRate;
        uint256 rMarket = tMarket * currentRate;
        uint256 rTransferAmountForSale = rAmount + rFee + rBurn + rMarket;
        return rTransferAmountForSale;
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply / tSupply;
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _sendToBusinees(uint256 tMarket, address sender, address recipient) private {
        uint256 currentRate = _getRate();
        uint256 rMarket = tMarket * currentRate;
        if(sender == _pair && _referralOwner[recipient] != address(0)) {
            _sendToReferralOwner(tMarket, rMarket, _referralOwner[recipient]);
            emit Transfer(sender,  _referralOwner[recipient], tMarket);
        }
        else {
            _rOwned[_shoppingCart] = _rOwned[_shoppingCart] + rMarket;
            _tOwned[_shoppingCart] = _tOwned[_shoppingCart] + tMarket;
            emit Transfer(sender, _shoppingCart, tMarket);
        }
    }

    function _sendToBurn(uint256 tBurn, address sender) private {
        uint256 currentRate = _getRate();
        uint256 rBurn = tBurn * currentRate;
        _rOwned[_rewardWallet] = _rOwned[_rewardWallet] + rBurn;
        _tOwned[_rewardWallet] = _tOwned[_rewardWallet] + rBurn;
        emit Transfer(sender, _rewardWallet, tBurn);
    }

    function _sendToReferralOwner(uint256 tMarket, uint256 rMarket, address owner) private {
        if(_isExcluded[owner]) {
            _rOwned[owner] = _rOwned[owner] + rMarket;
            _tOwned[owner] = _tOwned[owner] + tMarket;
        }
        else {
            _rOwned[owner] = _rOwned[owner] + rMarket;
        }
        _referralOwnerTotalFee[owner] += tMarket;
    }

    function _removeFee() private {
        if(_TAX_FEE == 0 && _BURN_FEE == 0 && _MARKET_FEE == 0) return;
        _TAX_FEE = 0;
        _BURN_FEE = 0;
        _MARKET_FEE = 0;
    }

    function _restoreAllFee() private {
        _TAX_FEE = _standardFees.taxFee * 100;
        _BURN_FEE = _standardFees.rewardFee * 100;
        _MARKET_FEE = _standardFees.marketFee * 100;
    }

    function _setPenaltyFee() private {
        _TAX_FEE = _standardFees.taxPenaltyFee * 100;
        _BURN_FEE = _standardFees.rewardPenaltyFee * 100;
        _MARKET_FEE = _standardFees.marketPenaltyFee * 100;
    }
}

File 2 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 3 of 7 : IUniswapV2Factory.sol
// SPDX-License-Identifier: AGPL-3.0-or-later

pragma solidity ^0.8.4;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

File 4 of 7 : IUniswapV2Pair.sol
// SPDX-License-Identifier: AGPL-3.0-or-later

pragma solidity ^0.8.4;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

File 5 of 7 : IUniswapV2Router01.sol
// SPDX-License-Identifier: AGPL-3.0-or-later

pragma solidity ^0.8.4;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

File 6 of 7 : IUniswapV2Router02.sol
// SPDX-License-Identifier: AGPL-3.0-or-later

pragma solidity ^0.8.4;

import './IUniswapV2Router01.sol';

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

File 7 of 7 : TimeLock.sol
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.4;

abstract contract TimeLock {
    struct LockedAddress {
        uint64 lockedPeriod;
        uint64 endTime;
    }

    
    mapping(address => LockedAddress) private _lockedList;
    mapping (address => bool) private _isExlcludeFromLock;
    constructor () { }
    function lockAddress(address _lockAddress, uint64 lockTime) internal virtual {
        require(_lockAddress != address(0), "ERR: zero lock address");
        require(lockTime > 0, "ERR: zero lock period");
        if (!_isExlcludeFromLock[_lockAddress]) {
            _lockedList[_lockAddress].lockedPeriod = lockTime;
            _lockedList[_lockAddress].endTime = uint64(block.timestamp) + lockTime;
        }
    }

    function isUnLocked(address _lockAddress) internal view virtual returns (bool) {
        require(_lockAddress != address(0), "ERR: zero lock address");
        if (_isExlcludeFromLock[_lockAddress]) return true;
        return _lockedList[_lockAddress].endTime < uint64(block.timestamp);
    }

    function excludeFromLock(address _lockAddress) internal virtual {
        require(_lockAddress != address(0), "ERR: zero lock address");
        if (_isExlcludeFromLock[_lockAddress]) return;
        _isExlcludeFromLock[_lockAddress] = true;
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "byzantium",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_decimals","type":"uint256"},{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"address","name":"_oldBuff","type":"address"},{"internalType":"address[]","name":"blackList","type":"address[]"},{"internalType":"address[]","name":"exchangeList","type":"address[]"}],"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_BURN_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MARKET_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_TAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"blackAddress","type":"address"}],"name":"addBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"basisOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"checkAllowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referralUser","type":"address"}],"name":"checkReferralOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referralOwner","type":"address"}],"name":"checkReferralReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"checkedTimeLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cooldownOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","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":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct OfficialBuffDoge.Minting[]","name":"mintings","type":"tuple[]"}],"name":"mintDev","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pausedEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pausedNotEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"removeAddress","type":"address"}],"name":"removeBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"businessAddress","type":"address"}],"name":"setBusinessWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referralUser","type":"address"},{"internalType":"address","name":"referralOwner","type":"address"}],"name":"setReferralOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardAddress","type":"address"}],"name":"setRewardAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"taxFee","type":"uint256"},{"internalType":"uint256","name":"rewardFee","type":"uint256"},{"internalType":"uint256","name":"marketFee","type":"uint256"},{"internalType":"uint256","name":"taxPenaltyFee","type":"uint256"},{"internalType":"uint256","name":"rewardPenaltyFee","type":"uint256"},{"internalType":"uint256","name":"marketPenaltyFee","type":"uint256"}],"internalType":"struct OfficialBuffDoge.StandardFees","name":"_standardFee","type":"tuple"}],"name":"setStandardFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokenForEthDisable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokenForEthEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMarketingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620070ca380380620070ca833981016040819052620000349162002f70565b601a8054600160a060020a0319163317905586516200005b90600b9060208a019062002ce3565b5085516200007190600c90602089019062002ce3565b50600d8590556200008485600a62003184565b62000090908562003241565b600e819055620000a390600019620032f1565b620000b19060001962003263565b600f819055506000805160206200708a833981519152600160a060020a031663c45a01556040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156200011c57600080fd5b505afa15801562000131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000157919062002eb4565b600160a060020a031663c9c653966000805160206200708a833981519152600160a060020a031663ad5c46486040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015620001ca57600080fd5b505afa158015620001df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000205919062002eb4565b6040517c010000000000000000000000000000000000000000000000000000000063ffffffff8416028152600160a060020a039091166004820152306024820152604401602060405180830381600087803b1580156200026457600080fd5b505af115801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f919062002eb4565b60198054600160a060020a031916600160a060020a0392909216919091179055600f5430600090815260026020526040902055620002e633640100000000620005d3810204565b620002fa30640100000000620005d3810204565b6019546200031a90600160a060020a0316640100000000620005d3810204565b6200033d6000805160206200708a833981519152640100000000620005d3810204565b601a54600f5462000365913091600160a060020a039091169064010000000062000751810204565b601a805460a060020a61ffff021916740100000000000000000000000000000000000000001790558151156200042b5760005b82518110156200042957600160096000858481518110620003e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055806200042081620032d3565b91505062000398565b505b60005b8151811015620005a357600084600160a060020a03166370a0823184848151811062000483577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401620004d39190600160a060020a0391909116815260200190565b60206040518083038186803b158015620004ec57600080fd5b505afa15801562000501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052791906200304a565b905080156200058d576200058d308484815181106200056f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015183620008e2640100000000026401000000009004565b50806200059a81620032d3565b9150506200042e565b50620005c630336b014adf4b7320334b90000000640100000000620008e2810204565b5050505050505062003395565b600160a060020a03811660009081526008602052604090205460ff16156200065c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064015b60405180910390fd5b600160a060020a03811660009081526002602052604090205415620006c257600160a060020a038116600090815260026020526040902054620006a89064010000000062000b06810204565b600160a060020a0382166000908152600360205260409020555b600160a060020a03811660008181526008602090815260408083208054600160ff199182168117909255600a80548084019091557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8018054600160a060020a031916909617909555600790925290912080549092161790556200074e8164010000000062000bc1810204565b50565b600160a060020a038316620007e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840162000653565b600160a060020a03821662000880576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f544f4b454e32303a20617070726f766520746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840162000653565b600160a060020a0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600160a060020a0383166200097a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840162000653565b600160a060020a03821662000a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840162000653565b6000811162000aa4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840162000653565b62000aba83838364010000000062000c7f810204565b62000ad0838383640100000000620013d1810204565b5081600160a060020a031683600160a060020a0316600080516020620070aa83398151915283604051620008d591815260200190565b6000600f5482111562000b9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e7300000000000000000000000000000000000000000000606482015260840162000653565b62000baf64010000000062001aee810204565b62000bbb908362003122565b92915050565b600160a060020a03811662000c33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552523a207a65726f206c6f636b206164647265737300000000000000000000604482015260640162000653565b600160a060020a03811660009081526001602052604090205460ff161562000c585750565b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600160a060020a03831660009081526009602052604090205460ff1615801562000cc25750600160a060020a03821660009081526009602052604090205460ff16155b62000ccc57600080fd5b600160a060020a038316158062000cea5750600160a060020a038216155b1562000cf557505050565b600160a060020a03831630148062000d155750600160a060020a03821630145b1562000d2057505050565b601a54600160a060020a038481169116148062000d4a5750601a54600160a060020a038381169116145b1562000d5557505050565b600160a060020a0383166000805160206200708a833981519152148062000d935750600160a060020a0382166000805160206200708a833981519152145b1562000d9e57505050565b336000805160206200708a833981519152148062000dc65750601954600160a060020a031633145b8062000ddc5750601a54600160a060020a031633145b8062000e005750600160a060020a03831660009081526007602052604090205460ff165b8062000e245750600160a060020a03821660009081526007602052604090205460ff165b62000eb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f4552523a2073656e646572206d75737420626520756e6973776170206f72207360448201527f686f7070696e6743617274000000000000000000000000000000000000000000606482015260840162000653565b60408051600280825260608201835260009260208301908036833701905050601954909150600160a060020a03858116911614801562000f0b5750600160a060020a03831660009081526008602052604090205460ff16155b15620012c55762000f258364010000000062001b1d810204565b62000f8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a2061646472657373206973206c6f636b656428627579290000000000604482015260640162000653565b600160a060020a038316600090815260066020526040902054421162000fb257600080fd5b62000fc04261070862003107565b600160a060020a0384166000908152600660209081526040918290209290925580517fad5c464800000000000000000000000000000000000000000000000000000000815290516000805160206200708a8339815191529263ad5c46489260048082019391829003018186803b1580156200103a57600080fd5b505afa1580156200104f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001075919062002eb4565b81600081518110620010b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010190600160a060020a03169081600160a060020a03168152505030816001815181106200110c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600160a060020a03909216602092830291909101909101526040517f1f00ca740000000000000000000000000000000000000000000000000000000081526000906000805160206200708a83398151915290631f00ca749062001176908690869060040162003063565b60006040518083038186803b1580156200118f57600080fd5b505afa158015620011a4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620011ce919081019062002ed8565b90506000620011e68564010000000062001bf1810204565b90506000848360008151811062001226577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151670de0b6b3a764000062001243919062003241565b6200124f919062003122565b90506200125d828662003107565b82620012728864010000000062001c5c810204565b6200127e919062003241565b6200128a878462003241565b62001296919062003107565b620012a2919062003122565b600160a060020a03871660009081526005602052604090205550620013cb915050565b601954600160a060020a038481169116148015620012fc5750600160a060020a03841660009081526008602052604090205460ff16155b15620013cb57620013168464010000000062001b1d810204565b6200137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4552523a2061646472657373206973206c6f636b65642873616c657329000000604482015260640162000653565b600160a060020a0384166000908152600660205260409020544211620013a357600080fd5b620013b14261070862003107565b600160a060020a0385166000908152600660205260409020555b50505050565b6019546000908190620013f690600160a060020a031664010000000062001bf1810204565b601954909150600160a060020a038681169116148015620014305750600160a060020a03841660009081526007602052604090205460ff16155b15620014dc576200144360648262003122565b831115620014c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201526000805160206200706a83398151915260448201527f717569646974792062616c616e63650000000000000000000000000000000000606482015260840162000653565b620014d664010000000062001ca6810204565b6200190f565b601954600160a060020a038581169116148015620015135750600160a060020a03851660009081526007602052604090205460ff16155b15620018fc57601a547501000000000000000000000000000000000000000000900460ff16620015a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552523a2064697361626c656420737761700000000000000000000000000000604482015260640162000653565b620015ad60648262003122565b8311156200162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201526000805160206200706a83398151915260448201527f717569646974792062616c616e63650000000000000000000000000000000000606482015260840162000653565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106200168a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010190600160a060020a03169081600160a060020a0316815250506000805160206200708a833981519152600160a060020a031663ad5c46486040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156200170f57600080fd5b505afa15801562001724573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200174a919062002eb4565b8160018151811062001785577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600160a060020a03909216602092830291909101909101526040517fd06ca61f0000000000000000000000000000000000000000000000000000000081526000906000805160206200708a8339815191529063d06ca61f90620017ef908890869060040162003063565b60006040518083038186803b1580156200180857600080fd5b505afa1580156200181d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001847919081019062002ed8565b9050848160018151811062001885577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151670de0b6b3a7640000620018a2919062003241565b620018ae919062003122565b620018c28864010000000062001c5c810204565b11620018e157620018db64010000000062001ca6810204565b620018f4565b620018f464010000000062001ce1810204565b50506200190f565b6200190f64010000000062001d17810204565b600160a060020a03851660009081526008602052604090205460ff168015620019515750600160a060020a03841660009081526008602052604090205460ff16155b1562001973576200196d85858564010000000062001d4e810204565b62001ad0565b600160a060020a03851660009081526008602052604090205460ff16158015620019b55750600160a060020a03841660009081526008602052604090205460ff165b15620019fe57601954600160a060020a0385811691161415620019e8576200196d85858564010000000062001e67810204565b6200196d85858564010000000062001ee2810204565b600160a060020a03851660009081526008602052604090205460ff1615801562001a415750600160a060020a03841660009081526008602052604090205460ff16155b1562001a5d576200196d85858564010000000062001f5d810204565b600160a060020a03851660009081526008602052604090205460ff16801562001a9e5750600160a060020a03841660009081526008602052604090205460ff165b1562001aba576200196d85858564010000000062001fd7810204565b62001ad085858564010000000062001f5d810204565b62001ae364010000000062001ca6810204565b506001949350505050565b6000808062001b0564010000000062002053810204565b909250905062001b16818362003122565b9250505090565b6000600160a060020a03821662001b91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552523a207a65726f206c6f636b206164647265737300000000000000000000604482015260640162000653565b600160a060020a03821660009081526001602052604090205460ff161562001bbb57506001919050565b50600160a060020a03166000908152602081905260409020546001604060020a0342811668010000000000000000909204161090565b600160a060020a03811660009081526008602052604081205460ff161562001c2f5750600160a060020a031660009081526003602052604090205490565b600160a060020a03821660009081526002602052604090205462000bbb9064010000000062000b06810204565b600160a060020a0381166000908152600560205260408120548015801562001c975750600062001c958464010000000062001bf1810204565b115b1562000bbb5750600092915050565b601b5462001cb690606462003241565b601355601c5462001cc990606462003241565b601455601d5462001cdc90606462003241565b601555565b601e5462001cf190606462003241565b601355601f5462001d0490606462003241565b60145560205462001cdc90606462003241565b60135415801562001d285750601454155b801562001d355750601554155b1562001d3d57565b600060138190556014819055601555565b600062001d6364010000000062001aee810204565b9050600080808080808062001d818964010000000062002283810204565b96509650965096509650965096506000888362001d9f919062003241565b9050600062001daf8a8462003241565b905062001dc98d8d8d8c8c64010000000062002350810204565b821562001de65762001de6838e8e640100000000620023fd810204565b831562001e025762001e02848e6401000000006200259c810204565b62001e1b8783838888886401000000006200267f810204565b8b600160a060020a03168d600160a060020a0316600080516020620070aa8339815191528860405162001e5091815260200190565b60405180910390a350505050505050505050505050565b600062001e7c64010000000062001aee810204565b9050600080808080808062001e9a89640100000000620026ed810204565b96509650965096509650965096506000888362001eb8919062003241565b9050600062001ec88a8462003241565b905062001dc98d8d8d8c8c6401000000006200279a810204565b600062001ef764010000000062001aee810204565b9050600080808080808062001f158964010000000062002283810204565b96509650965096509650965096506000888362001f33919062003241565b9050600062001f438a8462003241565b905062001dc98d8d888c8c6401000000006200282b810204565b600062001f7264010000000062001aee810204565b9050600080808080808062001f908964010000000062002283810204565b96509650965096509650965096506000888362001fae919062003241565b9050600062001fbe8a8462003241565b905062001dc98d8d8b8b640100000000620028bc810204565b600062001fec64010000000062001aee810204565b905060008080808080806200200a8964010000000062002283810204565b96509650965096509650965096506000888362002028919062003241565b90506000620020388a8462003241565b905062001dc98d8d8d8c8a8d64010000000062002936810204565b600f54600e546000918291825b600a548110156200224f578260026000600a8481548110620020ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602080832090910154600160a060020a0316835282019290925260400190205411806200213f57508160036000600a848154811062002118577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602080832090910154600160a060020a03168352820192909252604001902054115b156200215657600f54600e54945094505050509091565b60026000600a838154811062002195577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602080832090910154600160a060020a03168352820192909252604001902054620021c6908462003263565b925060036000600a838154811062002207577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602080832090910154600160a060020a0316835282019290925260400190205462002238908362003263565b9150806200224681620032d3565b91505062002060565b50600e54600f5462002262919062003122565b8210156200227a57600f54600e549350935050509091565b90939092509050565b600080600080600080600080600080620022b58b60135460145460155462002a1d640100000000026401000000009004565b9250925092506000620022da8c85858562002ab0640100000000026401000000009004565b90506000620022f164010000000062001aee810204565b90506000806200230c8f888564010000000062002ae1810204565b91509150600062002330838389898862002b0f640100000000026401000000009004565b929e50919c509a5091985093965091945092505050919395979092949650565b600160a060020a0385166000908152600360205260409020546200237690849062003263565b600160a060020a038616600090815260036020908152604080832093909355600290522054620023a890839062003263565b600160a060020a038087166000908152600260205260408082209390935590861681522054620023da90829062003107565b600160a060020a0390941660009081526002602052604090209390935550505050565b60006200241264010000000062001aee810204565b9050600062002422828662003241565b601954909150600160a060020a0385811691161480156200245c5750600160a060020a038381166000908152602160205260409020541615155b15620024df57600160a060020a038084166000908152602160205260409020546200249591879184911664010000000062002b65810204565b600160a060020a0383811660009081526021602090815260409182902054915188815291831692871691600080516020620070aa833981519152910160405180910390a362002595565b601754600160a060020a03166000908152600260205260409020546200250790829062003107565b60178054600160a060020a0390811660009081526002602090815260408083209590955592549091168152600390915220546200254690869062003107565b60178054600160a060020a0390811660009081526003602090815260409182902094909455915491518881529181169290871691600080516020620070aa833981519152910160405180910390a35b5050505050565b6000620025b164010000000062001aee810204565b90506000620025c1828562003241565b601854600160a060020a0316600090815260026020526040902054909150620025ec90829062003107565b60188054600160a060020a0390811660009081526002602090815260408083209590955592549091168152600390915220546200262b90829062003107565b60188054600160a060020a0390811660009081526003602090815260409182902094909455915491518781529181169290861691600080516020620070aa833981519152910160405180910390a350505050565b838587600f5462002691919062003263565b6200269d919062003263565b620026a9919062003263565b600f55601054620026bc90849062003107565b601055601154620026cf90839062003107565b601155601254620026e290829062003107565b601255505050505050565b6000806000806000806000806000806200271f8b60135460145460155462002a1d640100000000026401000000009004565b9250925092506000620027448c85858562002c72640100000000026401000000009004565b905060006200275b64010000000062001aee810204565b9050600080620027768f888564010000000062002ae1810204565b91509150600062002330838389898862002c9a640100000000026401000000009004565b600160a060020a038516600090815260026020526040902054620027c090829062003263565b600160a060020a03808716600090815260026020908152604080832094909455918716815260039091522054620027f990849062003107565b600160a060020a038516600090815260036020908152604080832093909355600290522054620023da90839062003107565b600160a060020a0385166000908152600260205260409020546200285190839062003263565b600160a060020a038087166000908152600260209081526040808320949094559187168152600390915220546200288a90849062003107565b600160a060020a038516600090815260036020908152604080832093909355600290522054620023da90829062003107565b600160a060020a038416600090815260026020526040902054620028e290839062003263565b600160a060020a0380861660009081526002602052604080822093909355908516815220546200291490829062003107565b600160a060020a03909316600090815260026020526040902092909255505050565b600160a060020a0386166000908152600360205260409020546200295c90859062003263565b600160a060020a0387166000908152600360209081526040808320939093556002905220546200298e90849062003263565b600160a060020a03808816600090815260026020908152604080832094909455918816815260039091522054620029c790839062003107565b600160a060020a038616600090815260036020908152604080832093909355600290522054620029f990829062003107565b600160a060020a039095166000908152600260205260409020949094555050505050565b600080808060648062002a31898b62003241565b62002a3d919062003122565b62002a49919062003122565b9050600060648062002a5c898c62003241565b62002a68919062003122565b62002a74919062003122565b9050600060648062002a87898d62003241565b62002a93919062003122565b62002a9f919062003122565b929a91995091975095505050505050565b6000818362002ac0868862003263565b62002acc919062003263565b62002ad8919062003263565b95945050505050565b6000808062002af1848762003241565b9050600062002b01858762003241565b919791965090945050505050565b60008062002b1e838662003241565b9050600062002b2e848662003241565b90506000818362002b408a8c62003263565b62002b4c919062003263565b62002b58919062003263565b9998505050505050505050565b600160a060020a03811660009081526008602052604090205460ff161562002bfe57600160a060020a03811660009081526002602052604090205462002bad90839062003107565b600160a060020a03821660009081526002602090815260408083209390935560039052205462002bdf90849062003107565b600160a060020a03821660009081526003602052604090205562002c3e565b600160a060020a03811660009081526002602052604090205462002c2490839062003107565b600160a060020a0382166000908152600260205260409020555b600160a060020a0381166000908152602260205260408120805485929062002c6890849062003107565b9091555050505050565b6000818362002c82868862003107565b62002c8e919062003107565b62002ad8919062003107565b60008062002ca9838662003241565b9050600062002cb9848662003241565b90506000818362002ccb8a8c62003107565b62002cd7919062003107565b62002b58919062003107565b82805462002cf1906200327d565b90600052602060002090601f01602090048101928262002d15576000855562002d60565b82601f1062002d3057805160ff191683800117855562002d60565b8280016001018555821562002d60579182015b8281111562002d6057825182559160200191906001019062002d43565b5062002d6e92915062002d72565b5090565b5b8082111562002d6e576000815560010162002d73565b8051600160a060020a038116811462002da157600080fd5b919050565b600082601f83011262002db7578081fd5b8151602062002dd062002dca83620030e1565b620030ae565b828152818101908583018385028701840188101562002ded578586fd5b855b8581101562002e165762002e038262002d89565b8452928401929084019060010162002def565b5090979650505050505050565b600082601f83011262002e34578081fd5b81516001604060020a0381111562002e505762002e5062003366565b602062002e66601f8301601f19168201620030ae565b828152858284870101111562002e7a578384fd5b835b8381101562002e9957858101830151828201840152820162002e7c565b8381111562002eaa57848385840101525b5095945050505050565b60006020828403121562002ec6578081fd5b62002ed18262002d89565b9392505050565b6000602080838503121562002eeb578182fd5b82516001604060020a0381111562002f01578283fd5b8301601f8101851362002f12578283fd5b805162002f2362002dca82620030e1565b818152838101908385018584028501860189101562002f40578687fd5b8694505b8385101562002f6457805183526001949094019391850191850162002f44565b50979650505050505050565b600080600080600080600060e0888a03121562002f8b578283fd5b87516001604060020a038082111562002fa2578485fd5b62002fb08b838c0162002e23565b985060208a015191508082111562002fc6578485fd5b62002fd48b838c0162002e23565b975060408a0151965060608a0151955062002ff260808b0162002d89565b945060a08a015191508082111562003008578384fd5b620030168b838c0162002da6565b935060c08a01519150808211156200302c578283fd5b506200303b8a828b0162002da6565b91505092959891949750929550565b6000602082840312156200305c578081fd5b5051919050565b60006040820184835260206040818501528185518084526060860191508287019350845b8181101562002e16578451600160a060020a03168352938301939183019160010162003087565b604051601f8201601f191681016001604060020a0381118282101715620030d957620030d962003366565b604052919050565b60006001604060020a03821115620030fd57620030fd62003366565b5060209081020190565b600082198211156200311d576200311d62003308565b500190565b60008262003134576200313462003337565b500490565b600181815b808511156200317c5781600019048211156200315e576200315e62003308565b808516156200316c57918102915b600290940493908002906200313e565b509250929050565b600062002ed183836000826200319d5750600162000bbb565b81620031ac5750600062000bbb565b8160018114620031c55760028114620031d057620031f1565b600191505062000bbb565b60ff841115620031e457620031e462003308565b8360020a91505062000bbb565b5060208310610133831016604e8410600b841016171562003216575081810a62000bbb565b62003222838362003139565b806000190482111562003239576200323962003308565b029392505050565b60008160001904831182151516156200325e576200325e62003308565b500290565b60008282101562003278576200327862003308565b500390565b6002810460018216806200329257607f821691505b60208210811415620032cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000600019821415620032ea57620032ea62003308565b5060010190565b60008262003303576200330362003337565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613cc580620033a56000396000f3fe608060405234801561001057600080fd5b506004361061025a576000357c01000000000000000000000000000000000000000000000000000000009004806390cda41511610158578063d6f84b45116100d5578063e862035811610099578063e8620358146104fb578063f2cc0c181461050e578063f357038814610523578063f84354f11461054c578063fb3a236f1461055f57600080fd5b8063d6f84b4514610468578063d84bf7a81461047b578063dd62ed3e14610483578063e26af579146104bc578063e4997dc5146104e857600080fd5b8063b33a7a171161011c578063b33a7a17146103e0578063b586242814610400578063c9d390d314610409578063cba0e99614610434578063d44ad87b1461046057600080fd5b806390cda415146103a157806395d89b41146103aa578063a457c2d7146103b2578063a9059cbb146103c5578063a9789268146103d857600080fd5b806339509351116101e65780634e7a6a02116101aa5780634e7a6a021461034c5780635afe70d71461035f5780635e00e6791461037257806370a082311461038557806377ef79931461039857600080fd5b8063395093511461030e5780633c9f861d146103215780633f5987a9146103295780634549b039146103315780634851f2b51461034457600080fd5b806318160ddd1161022d57806318160ddd146102c557806323b872dd146102cd5780632d838119146102e0578063313ce567146102f35780633280aba6146102fb57600080fd5b806306fdde031461025f578063095ea7b31461027d5780630ecb93c0146102a057806313114a9d146102b3575b600080fd5b610267610572565b6040516102749190613921565b60405180910390f35b61029061028b3660046136cf565b610604565b6040519015158152602001610274565b6102906102ae366004613618565b61061b565b6010545b604051908152602001610274565b600e546102b7565b6102906102db36600461368f565b6106be565b6102b76102ee3660046138e1565b610710565b600d546102b7565b6102906103093660046136fa565b61079f565b61029061031c3660046136cf565b610937565b6011546102b7565b61029061096e565b6102b761033f3660046138f9565b610a5e565b610290610af0565b6102b761035a366004613618565b610ba0565b61029061036d366004613618565b610bdd565b610290610380366004613618565b610cbb565b6102b7610393366004613618565b610d7e565b6102b760145481565b6102b760155481565b610267610ddd565b6102906103c03660046136cf565b610dec565b6102906103d33660046136cf565b610e23565b610290610e30565b6102b76103ee366004613618565b60066020526000908152604090205481565b6102b760135481565b61041c610417366004613618565b610f39565b604051600160a060020a039091168152602001610274565b610290610442366004613618565b600160a060020a031660009081526008602052604090205460ff1690565b610290610f83565b610290610476366004613657565b61103a565b6012546102b7565b6102b7610491366004613657565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205490565b6102906104ca366004613618565b600160a060020a031660009081526007602052604090205460ff1690565b6102906104f6366004613618565b611138565b610290610509366004613868565b6111cd565b61052161051c366004613618565b611349565b005b6102b7610531366004613618565b600160a060020a031660009081526022602052604090205490565b61052161055a366004613618565b611382565b61029061056d366004613618565b61159d565b6060600b805461058190613bcf565b80601f01602080910402602001604051908101604052809291908181526020018280546105ad90613bcf565b80156105fa5780601f106105cf576101008083540402835291602001916105fa565b820191906000526020600020905b8154815290600101906020018083116105dd57829003601f168201915b5050505050905090565b60006106113384846115af565b5060015b92915050565b601a54600090600160a060020a031633146106545760405160e560020a62461bcd02815260040161064b90613a08565b60405180910390fd5b601a54600160a060020a038381169116141561066f57600080fd5b600160a060020a03821660009081526009602052604090205460ff161561069557600080fd5b50600160a060020a03166000908152600960205260409020805460ff1916600190811790915590565b60006106cb84848461170e565b600160a060020a038416600090815260046020908152604080832033808552925290912054610706918691610701908690613bb8565b6115af565b5060019392505050565b6000600f5482111561078d5760405160e560020a62461bcd02815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e7300000000000000000000000000000000000000000000606482015260840161064b565b6107956118cf565b6106159083613b76565b601a54600090600160a060020a031633146107cf5760405160e560020a62461bcd02815260040161064b90613a08565b8161081f5760405160e560020a62461bcd02815260206004820152601760248201527f4552523a207a65726f2061646472657373206172726179000000000000000000604482015260640161064b565b6108276118f2565b60005b8281101561092e5760008484838181106108575760e060020a634e487b7102600052603260045260246000fd5b90506040020180360381019061086d9190613811565b90506a52b7d2dcc80cd2e4000000816020015160165461088d9190613b32565b11156108de5760405160e560020a62461bcd02815260206004820181905260248201527f4552523a20657863656564206d6178207465616d206d696e7420616d6f756e74604482015260640161064b565b6108f13082600001518360200151611926565b8060200151601660008282546109079190613b32565b9091555050805161091b9062ed4e006119f8565b508061092681613c0d565b91505061082a565b50610611611b2c565b336000818152600460209081526040808320600160a060020a03871684529091528120549091610611918590610701908690613b32565b601a54600090600160a060020a0316331461099e5760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff16156109cb5760405160e560020a62461bcd02815260040161064b90613a3d565b601a547501000000000000000000000000000000000000000000900460ff16610a395760405160e560020a62461bcd02815260206004820152601560248201527f4552523a20616c72656164792064697361626c65640000000000000000000000604482015260640161064b565b50601a805475ff00000000000000000000000000000000000000000019169055600190565b6000600e54831115610ab55760405160e560020a62461bcd02815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161064b565b81610ad5576000610ac584611b61565b5094965061061595505050505050565b6000610ae084611b61565b5093965061061595505050505050565b601a54600090600160a060020a03163314610b205760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff16610b7c5760405160e560020a62461bcd02815260206004820152601b60248201527f4552523a20616c72656164792070617573652064697361626c65640000000000604482015260640161064b565b50601a805474ff000000000000000000000000000000000000000019169055600190565b600160a060020a03811660009081526005602052604081205480158015610bcf57506000610bcd84610d7e565b115b156106155750600092915050565b601a54600090600160a060020a03163314610c0d5760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff1615610c3a5760405160e560020a62461bcd02815260040161064b90613a3d565b600160a060020a038216610c635760405160e560020a62461bcd02815260040161064b90613a74565b6017805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790556a295be96e64066972000000610c9f6118f2565b610caa308483611926565b610cb2611b2c565b61061183611be5565b601a54600090600160a060020a03163314610ceb5760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff1615610d185760405160e560020a62461bcd02815260040161064b90613a3d565b600160a060020a038216610d415760405160e560020a62461bcd02815260040161064b90613a74565b6018805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790556b0121836204bc2ce21e000000610c9f6118f2565b600160a060020a03811660009081526008602052604081205460ff1615610dbb5750600160a060020a031660009081526003602052604090205490565b600160a060020a03821660009081526002602052604090205461061590610710565b6060600c805461058190613bcf565b336000818152600460209081526040808320600160a060020a03871684529091528120549091610611918590610701908690613bb8565b600061061133848461170e565b601a54600090600160a060020a03163314610e605760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff1615610e8d5760405160e560020a62461bcd02815260040161064b90613a3d565b601a547501000000000000000000000000000000000000000000900460ff1615610efc5760405160e560020a62461bcd02815260206004820152601460248201527f4552523a20616c726561647920656e61626c6564000000000000000000000000604482015260640161064b565b50601a805475ff00000000000000000000000000000000000000000019167501000000000000000000000000000000000000000000179055600190565b6000600160a060020a038216610f645760405160e560020a62461bcd02815260040161064b90613a74565b50600160a060020a039081166000908152602160205260409020541690565b601a54600090600160a060020a03163314610fb35760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff16156110105760405160e560020a62461bcd02815260206004820152601a60248201527f4552523a20616c726561647920706175736520656e61626c6564000000000000604482015260640161064b565b50601a805474ff0000000000000000000000000000000000000000191660a060020a179055600190565b600160a060020a03828116600090815260216020526040812054909116156110a75760405160e560020a62461bcd02815260206004820152601f60248201527f4552523a2061646472657373207265676973746572656420616c726561647900604482015260640161064b565b600160a060020a0383166110d05760405160e560020a62461bcd02815260040161064b90613a74565b600160a060020a0382166110f95760405160e560020a62461bcd02815260040161064b90613a74565b50600160a060020a039182166000908152602160205260409020805473ffffffffffffffffffffffffffffffffffffffff191691909216179055600190565b601a54600090600160a060020a031633146111685760405160e560020a62461bcd02815260040161064b90613a08565b600160a060020a03821660009081526009602052604090205460ff1661118d57600080fd5b601a54600160a060020a03838116911614156111a857600080fd5b50600160a060020a03166000908152600960205260409020805460ff19169055600190565b601a54600090600160a060020a031633146111fd5760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff161561122a5760405160e560020a62461bcd02815260040161064b90613a3d565b8151606411801561123f575060648260200151105b801561124f575060648260400151105b61129e5760405160e560020a62461bcd02815260206004820152601360248201527f4552523a2046656520697320736f206869676800000000000000000000000000604482015260640161064b565b606482606001511080156112b6575060648260800151105b80156112c6575060648260a00151105b6113155760405160e560020a62461bcd02815260206004820152601360248201527f4552523a2046656520697320736f206869676800000000000000000000000000604482015260640161064b565b508051601b55602080820151601c556040820151601d556060820151601e556080820151601f5560a0909101519055600190565b601a54600160a060020a031633146113765760405160e560020a62461bcd02815260040161064b90613a08565b61137f81611be5565b50565b601a54600160a060020a031633146113af5760405160e560020a62461bcd02815260040161064b90613a08565b600160a060020a03811660009081526008602052604090205460ff1661141a5760405160e560020a62461bcd02815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c756465640000000000604482015260640161064b565b60005b600a548110156115995781600160a060020a0316600a82815481106114555760e060020a634e487b7102600052603260045260246000fd5b600091825260209091200154600160a060020a0316141561158757600a805461148090600190613bb8565b815481106114a15760e060020a634e487b7102600052603260045260246000fd5b600091825260209091200154600a8054600160a060020a0390921691839081106114de5760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039485161790559184168152600382526040808220829055600890925220805460ff19169055600a8054806115545760e060020a634e487b7102600052603160045260246000fd5b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff191690550190555050565b8061159181613c0d565b91505061141d565b5050565b60006115a882611d39565b1592915050565b600160a060020a03831661162e5760405160e560020a62461bcd02815260206004820152602660248201527f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064b565b600160a060020a0382166116ac5760405160e560020a62461bcd028152602060048201526024808201527f544f4b454e32303a20617070726f766520746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161064b565b600160a060020a0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600160a060020a03831661178d5760405160e560020a62461bcd02815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161064b565b600160a060020a03821661180c5760405160e560020a62461bcd02815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161064b565b600081116118855760405160e560020a62461bcd02815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161064b565b611890838383611dc4565b61189b838383612442565b5081600160a060020a031683600160a060020a0316600080516020613c708339815191528360405161170191815260200190565b60008060006118dc61299c565b90925090506118eb8183613b76565b9250505090565b6013541580156119025750601454155b801561190e5750601554155b1561191557565b600060138190556014819055601555565b60006119306118cf565b9050600080600080600080600061194689611b61565b9650965096509650965096509650600088836119629190613b99565b905060006119708a84613b99565b905061197f8d8d8d8c8c612b63565b821561199057611990838e8e612c0a565b83156119a0576119a0848e612d88565b6119ae878383888888612e59565b8b600160a060020a03168d600160a060020a0316600080516020613c70833981519152886040516119e191815260200190565b60405180910390a350505050505050505050505050565b600160a060020a038216611a215760405160e560020a62461bcd02815260040161064b906139d1565b60008167ffffffffffffffff1611611a7e5760405160e560020a62461bcd02815260206004820152601560248201527f4552523a207a65726f206c6f636b20706572696f640000000000000000000000604482015260640161064b565b600160a060020a03821660009081526001602052604090205460ff1661159957600160a060020a0382166000908152602081905260409020805467ffffffffffffffff191667ffffffffffffffff8316179055611adb8142613b4a565b600160a060020a0383166000908152602081905260409020805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff0000000000000000199092169190911790555050565b601b54611b3a906064613b99565b601355601c54611b4b906064613b99565b601455601d54611b5c906064613b99565b601555565b600080600080600080600080600080611b828b601354601454601554612ebb565b9250925092506000611b968c858585612f3c565b90506000611ba26118cf565b9050600080611bb28f8885612f67565b915091506000611bc58383898988612f91565b929e50919c509a5091985093965091945092505050919395979092949650565b600160a060020a03811660009081526008602052604090205460ff1615611c515760405160e560020a62461bcd02815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161064b565b600160a060020a03811660009081526002602052604090205415611cab57600160a060020a038116600090815260026020526040902054611c9190610710565b600160a060020a0382166000908152600360205260409020555b600160a060020a03811660008181526008602090815260408083208054600160ff199182168117909255600a80548084019091557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801805473ffffffffffffffffffffffffffffffffffffffff19169096179095556007909252909120805490921617905561137f81612fdd565b6000600160a060020a038216611d645760405160e560020a62461bcd02815260040161064b906139d1565b600160a060020a03821660009081526001602052604090205460ff1615611d8d57506001919050565b50600160a060020a031660009081526020819052604090205467ffffffffffffffff42811668010000000000000000909204161090565b600160a060020a03831660009081526009602052604090205460ff16158015611e065750600160a060020a03821660009081526009602052604090205460ff16155b611e0f57600080fd5b600160a060020a0383161580611e2c5750600160a060020a038216155b15611e3657505050565b600160a060020a038316301480611e555750600160a060020a03821630145b15611e5f57505050565b601a54600160a060020a0384811691161480611e885750601a54600160a060020a038381169116145b15611e9257505050565b600160a060020a038316737a250d5630b4cf539739df2c5dacb4c659f2488d1480611ed95750600160a060020a038216737a250d5630b4cf539739df2c5dacb4c659f2488d145b15611ee357505050565b33737a250d5630b4cf539739df2c5dacb4c659f2488d1480611f0f5750601954600160a060020a031633145b80611f245750601a54600160a060020a031633145b80611f475750600160a060020a03831660009081526007602052604090205460ff165b80611f6a5750600160a060020a03821660009081526007602052604090205460ff165b611fdf5760405160e560020a62461bcd02815260206004820152602b60248201527f4552523a2073656e646572206d75737420626520756e6973776170206f72207360448201527f686f7070696e6743617274000000000000000000000000000000000000000000606482015260840161064b565b60408051600280825260608201835260009260208301908036833701905050601954909150600160a060020a0385811691161480156120375750600160a060020a03831660009081526008602052604090205460ff16155b1561235f5761204583611d39565b6120945760405160e560020a62461bcd02815260206004820152601b60248201527f4552523a2061646472657373206973206c6f636b656428627579290000000000604482015260640161064b565b600160a060020a03831660009081526006602052604090205442116120b857600080fd5b6120c442610708613b32565b600160a060020a0384166000908152600660209081526040918290209290925580517fad5c46480000000000000000000000000000000000000000000000000000000081529051737a250d5630b4cf539739df2c5dacb4c659f2488d9263ad5c46489260048082019391829003018186803b15801561214257600080fd5b505afa158015612156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217a919061363b565b8160008151811061219e5760e060020a634e487b7102600052603260045260246000fd5b6020026020010190600160a060020a03169081600160a060020a03168152505030816001815181106121e35760e060020a634e487b7102600052603260045260246000fd5b600160a060020a03909216602092830291909101909101526040517f1f00ca74000000000000000000000000000000000000000000000000000000008152600090737a250d5630b4cf539739df2c5dacb4c659f2488d90631f00ca74906122509086908690600401613aab565b60006040518083038186803b15801561226857600080fd5b505afa15801561227c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a4919081019061376a565b905060006122b185610d7e565b9050600084836000815181106122da5760e060020a634e487b7102600052603260045260246000fd5b6020026020010151670de0b6b3a76400006122f59190613b99565b6122ff9190613b76565b905061230b8286613b32565b8261231588610ba0565b61231f9190613b99565b6123298784613b99565b6123339190613b32565b61233d9190613b76565b600160a060020a0387166000908152600560205260409020555061243c915050565b601954600160a060020a0384811691161480156123955750600160a060020a03841660009081526008602052604090205460ff16155b1561243c576123a384611d39565b6123f25760405160e560020a62461bcd02815260206004820152601d60248201527f4552523a2061646472657373206973206c6f636b65642873616c657329000000604482015260640161064b565b600160a060020a038416600090815260066020526040902054421161241657600080fd5b61242242610708613b32565b600160a060020a0385166000908152600660205260409020555b50505050565b601954600090819061245c90600160a060020a0316610d7e565b601954909150600160a060020a0386811691161480156124955750600160a060020a03841660009081526007602052604090205460ff16155b156124d4576124a5606482613b76565b8311156124c75760405160e560020a62461bcd02815260040161064b90613974565b6124cf611b2c565b612814565b601954600160a060020a03858116911614801561250a5750600160a060020a03851660009081526007602052604090205460ff16155b1561280c57601a547501000000000000000000000000000000000000000000900460ff1661257d5760405160e560020a62461bcd02815260206004820152601260248201527f4552523a2064697361626c656420737761700000000000000000000000000000604482015260640161064b565b612588606482613b76565b8311156125aa5760405160e560020a62461bcd02815260040161064b90613974565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106125f05760e060020a634e487b7102600052603260045260246000fd5b6020026020010190600160a060020a03169081600160a060020a031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d600160a060020a031663ad5c46486040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561267957600080fd5b505afa15801561268d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b1919061363b565b816001815181106126d55760e060020a634e487b7102600052603260045260246000fd5b600160a060020a03909216602092830291909101909101526040517fd06ca61f000000000000000000000000000000000000000000000000000000008152600090737a250d5630b4cf539739df2c5dacb4c659f2488d9063d06ca61f906127429088908690600401613aab565b60006040518083038186803b15801561275a57600080fd5b505afa15801561276e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612796919081019061376a565b905084816001815181106127bd5760e060020a634e487b7102600052603260045260246000fd5b6020026020010151670de0b6b3a76400006127d89190613b99565b6127e29190613b76565b6127eb88610ba0565b116127fd576127f8611b2c565b612805565b612805613051565b5050612814565b6128146118f2565b600160a060020a03851660009081526008602052604090205460ff1680156128555750600160a060020a03841660009081526008602052604090205460ff16155b1561286a57612865858585611926565b612989565b600160a060020a03851660009081526008602052604090205460ff161580156128ab5750600160a060020a03841660009081526008602052604090205460ff165b156128dc57601954600160a060020a03858116911614156128d157612865858585613081565b6128658585856130da565b600160a060020a03851660009081526008602052604090205460ff1615801561291e5750600160a060020a03841660009081526008602052604090205460ff16155b1561292e57612865858585613133565b600160a060020a03851660009081526008602052604090205460ff16801561296e5750600160a060020a03841660009081526008602052604090205460ff165b1561297e5761286585858561318b565b612989858585613133565b612991611b2c565b506001949350505050565b600f54600e546000918291825b600a54811015612b32578260026000600a84815481106129dc5760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832090910154600160a060020a031683528201929092526040019020541180612a5857508160036000600a8481548110612a315760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832090910154600160a060020a03168352820192909252604001902054115b15612a6e57600f54600e54945094505050509091565b60026000600a8381548110612a965760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832090910154600160a060020a03168352820192909252604001902054612ac59084613bb8565b925060036000600a8381548110612aef5760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832090910154600160a060020a03168352820192909252604001902054612b1e9083613bb8565b915080612b2a81613c0d565b9150506129a9565b50600e54600f54612b439190613b76565b821015612b5a57600f54600e549350935050509091565b90939092509050565b600160a060020a038516600090815260036020526040902054612b87908490613bb8565b600160a060020a038616600090815260036020908152604080832093909355600290522054612bb7908390613bb8565b600160a060020a038087166000908152600260205260408082209390935590861681522054612be7908290613b32565b600160a060020a0390941660009081526002602052604090209390935550505050565b6000612c146118cf565b90506000612c228286613b99565b601954909150600160a060020a038581169116148015612c5b5750600160a060020a038381166000908152602160205260409020541615155b15612cd057600160a060020a03808416600090815260216020526040902054612c889187918491166131e5565b600160a060020a0383811660009081526021602090815260409182902054915188815291831692871691600080516020613c70833981519152910160405180910390a3612d81565b601754600160a060020a0316600090815260026020526040902054612cf6908290613b32565b60178054600160a060020a039081166000908152600260209081526040808320959095559254909116815260039091522054612d33908690613b32565b60178054600160a060020a0390811660009081526003602090815260409182902094909455915491518881529181169290871691600080516020613c70833981519152910160405180910390a35b5050505050565b6000612d926118cf565b90506000612da08285613b99565b601854600160a060020a0316600090815260026020526040902054909150612dc9908290613b32565b60188054600160a060020a039081166000908152600260209081526040808320959095559254909116815260039091522054612e06908290613b32565b60188054600160a060020a0390811660009081526003602090815260409182902094909455915491518781529181169290861691600080516020613c70833981519152910160405180910390a350505050565b838587600f54612e699190613bb8565b612e739190613bb8565b612e7d9190613bb8565b600f55601054612e8e908490613b32565b601055601154612e9f908390613b32565b601155601254612eb0908290613b32565b601255505050505050565b6000808080606480612ecd898b613b99565b612ed79190613b76565b612ee19190613b76565b90506000606480612ef2898c613b99565b612efc9190613b76565b612f069190613b76565b90506000606480612f17898d613b99565b612f219190613b76565b612f2b9190613b76565b929a91995091975095505050505050565b60008183612f4a8688613bb8565b612f549190613bb8565b612f5e9190613bb8565b95945050505050565b60008080612f758487613b99565b90506000612f838587613b99565b919791965090945050505050565b600080612f9e8386613b99565b90506000612fac8486613b99565b905060008183612fbc8a8c613bb8565b612fc69190613bb8565b612fd09190613bb8565b9998505050505050505050565b600160a060020a0381166130065760405160e560020a62461bcd02815260040161064b906139d1565b600160a060020a03811660009081526001602052604090205460ff161561302a5750565b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b601e5461305f906064613b99565b601355601f54613070906064613b99565b601455602054611b5c906064613b99565b600061308b6118cf565b905060008060008060008060006130a1896132e8565b9650965096509650965096509650600088836130bd9190613b99565b905060006130cb8a84613b99565b905061197f8d8d8d8c8c61334c565b60006130e46118cf565b905060008060008060008060006130fa89611b61565b9650965096509650965096509650600088836131169190613b99565b905060006131248a84613b99565b905061197f8d8d888c8c6133d7565b600061313d6118cf565b9050600080600080600080600061315389611b61565b96509650965096509650965096506000888361316f9190613b99565b9050600061317d8a84613b99565b905061197f8d8d8b8b613462565b60006131956118cf565b905060008060008060008060006131ab89611b61565b9650965096509650965096509650600088836131c79190613b99565b905060006131d58a84613b99565b905061197f8d8d8d8c8a8d6134d8565b600160a060020a03811660009081526008602052604090205460ff161561327857600160a060020a03811660009081526002602052604090205461322a908390613b32565b600160a060020a03821660009081526002602090815260408083209390935560039052205461325a908490613b32565b600160a060020a0382166000908152600360205260409020556132b6565b600160a060020a03811660009081526002602052604090205461329c908390613b32565b600160a060020a0382166000908152600260205260409020555b600160a060020a038116600090815260226020526040812080548592906132de908490613b32565b9091555050505050565b6000806000806000806000806000806133098b601354601454601554612ebb565b925092509250600061331d8c8585856135b7565b905060006133296118cf565b90506000806133398f8885612f67565b915091506000611bc583838989886135d9565b600160a060020a038516600090815260026020526040902054613370908290613bb8565b600160a060020a038087166000908152600260209081526040808320949094559187168152600390915220546133a7908490613b32565b600160a060020a038516600090815260036020908152604080832093909355600290522054612be7908390613b32565b600160a060020a0385166000908152600260205260409020546133fb908390613bb8565b600160a060020a03808716600090815260026020908152604080832094909455918716815260039091522054613432908490613b32565b600160a060020a038516600090815260036020908152604080832093909355600290522054612be7908290613b32565b600160a060020a038416600090815260026020526040902054613486908390613bb8565b600160a060020a0380861660009081526002602052604080822093909355908516815220546134b6908290613b32565b600160a060020a03909316600090815260026020526040902092909255505050565b600160a060020a0386166000908152600360205260409020546134fc908590613bb8565b600160a060020a03871660009081526003602090815260408083209390935560029052205461352c908490613bb8565b600160a060020a03808816600090815260026020908152604080832094909455918816815260039091522054613563908390613b32565b600160a060020a038616600090815260036020908152604080832093909355600290522054613593908290613b32565b600160a060020a039095166000908152600260205260409020949094555050505050565b600081836135c58688613b32565b6135cf9190613b32565b612f5e9190613b32565b6000806135e68386613b99565b905060006135f48486613b99565b9050600081836136048a8c613b32565b61360e9190613b32565b612fd09190613b32565b600060208284031215613629578081fd5b813561363481613c5a565b9392505050565b60006020828403121561364c578081fd5b815161363481613c5a565b60008060408385031215613669578081fd5b823561367481613c5a565b9150602083013561368481613c5a565b809150509250929050565b6000806000606084860312156136a3578081fd5b83356136ae81613c5a565b925060208401356136be81613c5a565b929592945050506040919091013590565b600080604083850312156136e1578182fd5b82356136ec81613c5a565b946020939093013593505050565b6000806020838503121561370c578182fd5b823567ffffffffffffffff80821115613723578384fd5b818501915085601f830112613736578384fd5b813581811115613744578485fd5b866020604083028501011115613758578485fd5b60209290920196919550909350505050565b6000602080838503121561377c578182fd5b825167ffffffffffffffff80821115613793578384fd5b818501915085601f8301126137a6578384fd5b8151818111156137b8576137b8613c41565b83810291506137c8848301613b01565b8181528481019084860184860187018a10156137e2578788fd5b8795505b838610156138045780518352600195909501949186019186016137e6565b5098975050505050505050565b600060408284031215613822578081fd5b6040516040810181811067ffffffffffffffff8211171561384557613845613c41565b604052823561385381613c5a565b81526020928301359281019290925250919050565b600060c08284031215613879578081fd5b60405160c0810181811067ffffffffffffffff8211171561389c5761389c613c41565b8060405250823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201528091505092915050565b6000602082840312156138f2578081fd5b5035919050565b6000806040838503121561390b578182fd5b8235915060208301358015158114613684578182fd5b6000602080835283518082850152825b8181101561394d57858101830151858201604001528201613931565b8181111561395e5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602f908201527f4552523a2045786365656420746865203125206f662063757272656e74206c6960408201527f717569646974792062616c616e63650000000000000000000000000000000000606082015260800190565b60208082526016908201527f4552523a207a65726f206c6f636b206164647265737300000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526013908201527f4552523a2070617573656420616c726561647900000000000000000000000000604082015260600190565b60208082526011908201527f4552523a207a65726f2061646472657373000000000000000000000000000000604082015260600190565b60006040820184835260206040818501528185518084526060860191508287019350845b81811015613af4578451600160a060020a031683529383019391830191600101613acf565b5090979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b2a57613b2a613c41565b604052919050565b60008219821115613b4557613b45613c28565b500190565b600067ffffffffffffffff808316818516808303821115613b6d57613b6d613c28565b01949350505050565b600082613b945760e060020a634e487b710281526012600452602481fd5b500490565b6000816000190483118215151615613bb357613bb3613c28565b500290565b600082821015613bca57613bca613c28565b500390565b600281046001821680613be357607f821691505b60208210811415613c075760e060020a634e487b7102600052602260045260246000fd5b50919050565b6000600019821415613c2157613c21613c28565b5060010190565b60e060020a634e487b7102600052601160045260246000fd5b60e060020a634e487b7102600052604160045260246000fd5b600160a060020a038116811461137f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209ccec4df349283db2e4d921d220584371e2d22c4fa7b9a21e3789d67acb8323064736f6c634300080400334552523a2045786365656420746865203125206f662063757272656e74206c690000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488dddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000e610185758b5863e79dd9023ac28a31fb02f12e90000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000114f6666696369616c2042756666446f6765000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000524427566660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f3207c360a7cbeb6e359e79c3f690f1730897a19000000000000000000000000aae55e8342ecbbecf836483ad54b90a32475065d0000000000000000000000008a8eff48fbd6886ff67170bd893264f338c2c5dd000000000000000000000000c505f97fea928d0820cee103eb4f9ed6e617f7a7000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000f492da4b415cc760cf72a06e3c5fc0a2d038c1ba000000000000000000000000c187d3ff10c4a6b5e4a70be2201527eaf6dcee7a000000000000000000000000788744c2293930bb69415d9027071f868922e152000000000000000000000000d2828245b23a22e156f159721a8c53404eb7d870000000000000000000000000413b32bd3b9ae57e75b18c010f6f30f524a642f0000000000000000000000000ba355abbd461b1ae1c0aad8d9bc00481d3403dad0000000000000000000000004d1adf22e6862b48a0bd18a943fda3c121d6866e0000000000000000000000002272e0ac624bd42f66450f5ac5017901a4c02f9c0000000000000000000000004dad7d926dd541ed8abcd6e9f3e17fe7510e5c9400000000000000000000000065b59c63f996ac360daaf356ec4e05b348a1f5e6000000000000000000000000c3f8e951dcb4c0499b459fd23b123bc00ab8142700000000000000000000000008874f2b779da0221eea7a6579f3a872bf42a2890000000000000000000000006b935de9605eba047d1895c26df1ef008649a05f

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025a576000357c01000000000000000000000000000000000000000000000000000000009004806390cda41511610158578063d6f84b45116100d5578063e862035811610099578063e8620358146104fb578063f2cc0c181461050e578063f357038814610523578063f84354f11461054c578063fb3a236f1461055f57600080fd5b8063d6f84b4514610468578063d84bf7a81461047b578063dd62ed3e14610483578063e26af579146104bc578063e4997dc5146104e857600080fd5b8063b33a7a171161011c578063b33a7a17146103e0578063b586242814610400578063c9d390d314610409578063cba0e99614610434578063d44ad87b1461046057600080fd5b806390cda415146103a157806395d89b41146103aa578063a457c2d7146103b2578063a9059cbb146103c5578063a9789268146103d857600080fd5b806339509351116101e65780634e7a6a02116101aa5780634e7a6a021461034c5780635afe70d71461035f5780635e00e6791461037257806370a082311461038557806377ef79931461039857600080fd5b8063395093511461030e5780633c9f861d146103215780633f5987a9146103295780634549b039146103315780634851f2b51461034457600080fd5b806318160ddd1161022d57806318160ddd146102c557806323b872dd146102cd5780632d838119146102e0578063313ce567146102f35780633280aba6146102fb57600080fd5b806306fdde031461025f578063095ea7b31461027d5780630ecb93c0146102a057806313114a9d146102b3575b600080fd5b610267610572565b6040516102749190613921565b60405180910390f35b61029061028b3660046136cf565b610604565b6040519015158152602001610274565b6102906102ae366004613618565b61061b565b6010545b604051908152602001610274565b600e546102b7565b6102906102db36600461368f565b6106be565b6102b76102ee3660046138e1565b610710565b600d546102b7565b6102906103093660046136fa565b61079f565b61029061031c3660046136cf565b610937565b6011546102b7565b61029061096e565b6102b761033f3660046138f9565b610a5e565b610290610af0565b6102b761035a366004613618565b610ba0565b61029061036d366004613618565b610bdd565b610290610380366004613618565b610cbb565b6102b7610393366004613618565b610d7e565b6102b760145481565b6102b760155481565b610267610ddd565b6102906103c03660046136cf565b610dec565b6102906103d33660046136cf565b610e23565b610290610e30565b6102b76103ee366004613618565b60066020526000908152604090205481565b6102b760135481565b61041c610417366004613618565b610f39565b604051600160a060020a039091168152602001610274565b610290610442366004613618565b600160a060020a031660009081526008602052604090205460ff1690565b610290610f83565b610290610476366004613657565b61103a565b6012546102b7565b6102b7610491366004613657565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205490565b6102906104ca366004613618565b600160a060020a031660009081526007602052604090205460ff1690565b6102906104f6366004613618565b611138565b610290610509366004613868565b6111cd565b61052161051c366004613618565b611349565b005b6102b7610531366004613618565b600160a060020a031660009081526022602052604090205490565b61052161055a366004613618565b611382565b61029061056d366004613618565b61159d565b6060600b805461058190613bcf565b80601f01602080910402602001604051908101604052809291908181526020018280546105ad90613bcf565b80156105fa5780601f106105cf576101008083540402835291602001916105fa565b820191906000526020600020905b8154815290600101906020018083116105dd57829003601f168201915b5050505050905090565b60006106113384846115af565b5060015b92915050565b601a54600090600160a060020a031633146106545760405160e560020a62461bcd02815260040161064b90613a08565b60405180910390fd5b601a54600160a060020a038381169116141561066f57600080fd5b600160a060020a03821660009081526009602052604090205460ff161561069557600080fd5b50600160a060020a03166000908152600960205260409020805460ff1916600190811790915590565b60006106cb84848461170e565b600160a060020a038416600090815260046020908152604080832033808552925290912054610706918691610701908690613bb8565b6115af565b5060019392505050565b6000600f5482111561078d5760405160e560020a62461bcd02815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e7300000000000000000000000000000000000000000000606482015260840161064b565b6107956118cf565b6106159083613b76565b601a54600090600160a060020a031633146107cf5760405160e560020a62461bcd02815260040161064b90613a08565b8161081f5760405160e560020a62461bcd02815260206004820152601760248201527f4552523a207a65726f2061646472657373206172726179000000000000000000604482015260640161064b565b6108276118f2565b60005b8281101561092e5760008484838181106108575760e060020a634e487b7102600052603260045260246000fd5b90506040020180360381019061086d9190613811565b90506a52b7d2dcc80cd2e4000000816020015160165461088d9190613b32565b11156108de5760405160e560020a62461bcd02815260206004820181905260248201527f4552523a20657863656564206d6178207465616d206d696e7420616d6f756e74604482015260640161064b565b6108f13082600001518360200151611926565b8060200151601660008282546109079190613b32565b9091555050805161091b9062ed4e006119f8565b508061092681613c0d565b91505061082a565b50610611611b2c565b336000818152600460209081526040808320600160a060020a03871684529091528120549091610611918590610701908690613b32565b601a54600090600160a060020a0316331461099e5760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff16156109cb5760405160e560020a62461bcd02815260040161064b90613a3d565b601a547501000000000000000000000000000000000000000000900460ff16610a395760405160e560020a62461bcd02815260206004820152601560248201527f4552523a20616c72656164792064697361626c65640000000000000000000000604482015260640161064b565b50601a805475ff00000000000000000000000000000000000000000019169055600190565b6000600e54831115610ab55760405160e560020a62461bcd02815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161064b565b81610ad5576000610ac584611b61565b5094965061061595505050505050565b6000610ae084611b61565b5093965061061595505050505050565b601a54600090600160a060020a03163314610b205760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff16610b7c5760405160e560020a62461bcd02815260206004820152601b60248201527f4552523a20616c72656164792070617573652064697361626c65640000000000604482015260640161064b565b50601a805474ff000000000000000000000000000000000000000019169055600190565b600160a060020a03811660009081526005602052604081205480158015610bcf57506000610bcd84610d7e565b115b156106155750600092915050565b601a54600090600160a060020a03163314610c0d5760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff1615610c3a5760405160e560020a62461bcd02815260040161064b90613a3d565b600160a060020a038216610c635760405160e560020a62461bcd02815260040161064b90613a74565b6017805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790556a295be96e64066972000000610c9f6118f2565b610caa308483611926565b610cb2611b2c565b61061183611be5565b601a54600090600160a060020a03163314610ceb5760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff1615610d185760405160e560020a62461bcd02815260040161064b90613a3d565b600160a060020a038216610d415760405160e560020a62461bcd02815260040161064b90613a74565b6018805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790556b0121836204bc2ce21e000000610c9f6118f2565b600160a060020a03811660009081526008602052604081205460ff1615610dbb5750600160a060020a031660009081526003602052604090205490565b600160a060020a03821660009081526002602052604090205461061590610710565b6060600c805461058190613bcf565b336000818152600460209081526040808320600160a060020a03871684529091528120549091610611918590610701908690613bb8565b600061061133848461170e565b601a54600090600160a060020a03163314610e605760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff1615610e8d5760405160e560020a62461bcd02815260040161064b90613a3d565b601a547501000000000000000000000000000000000000000000900460ff1615610efc5760405160e560020a62461bcd02815260206004820152601460248201527f4552523a20616c726561647920656e61626c6564000000000000000000000000604482015260640161064b565b50601a805475ff00000000000000000000000000000000000000000019167501000000000000000000000000000000000000000000179055600190565b6000600160a060020a038216610f645760405160e560020a62461bcd02815260040161064b90613a74565b50600160a060020a039081166000908152602160205260409020541690565b601a54600090600160a060020a03163314610fb35760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff16156110105760405160e560020a62461bcd02815260206004820152601a60248201527f4552523a20616c726561647920706175736520656e61626c6564000000000000604482015260640161064b565b50601a805474ff0000000000000000000000000000000000000000191660a060020a179055600190565b600160a060020a03828116600090815260216020526040812054909116156110a75760405160e560020a62461bcd02815260206004820152601f60248201527f4552523a2061646472657373207265676973746572656420616c726561647900604482015260640161064b565b600160a060020a0383166110d05760405160e560020a62461bcd02815260040161064b90613a74565b600160a060020a0382166110f95760405160e560020a62461bcd02815260040161064b90613a74565b50600160a060020a039182166000908152602160205260409020805473ffffffffffffffffffffffffffffffffffffffff191691909216179055600190565b601a54600090600160a060020a031633146111685760405160e560020a62461bcd02815260040161064b90613a08565b600160a060020a03821660009081526009602052604090205460ff1661118d57600080fd5b601a54600160a060020a03838116911614156111a857600080fd5b50600160a060020a03166000908152600960205260409020805460ff19169055600190565b601a54600090600160a060020a031633146111fd5760405160e560020a62461bcd02815260040161064b90613a08565b601a5460a060020a900460ff161561122a5760405160e560020a62461bcd02815260040161064b90613a3d565b8151606411801561123f575060648260200151105b801561124f575060648260400151105b61129e5760405160e560020a62461bcd02815260206004820152601360248201527f4552523a2046656520697320736f206869676800000000000000000000000000604482015260640161064b565b606482606001511080156112b6575060648260800151105b80156112c6575060648260a00151105b6113155760405160e560020a62461bcd02815260206004820152601360248201527f4552523a2046656520697320736f206869676800000000000000000000000000604482015260640161064b565b508051601b55602080820151601c556040820151601d556060820151601e556080820151601f5560a0909101519055600190565b601a54600160a060020a031633146113765760405160e560020a62461bcd02815260040161064b90613a08565b61137f81611be5565b50565b601a54600160a060020a031633146113af5760405160e560020a62461bcd02815260040161064b90613a08565b600160a060020a03811660009081526008602052604090205460ff1661141a5760405160e560020a62461bcd02815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c756465640000000000604482015260640161064b565b60005b600a548110156115995781600160a060020a0316600a82815481106114555760e060020a634e487b7102600052603260045260246000fd5b600091825260209091200154600160a060020a0316141561158757600a805461148090600190613bb8565b815481106114a15760e060020a634e487b7102600052603260045260246000fd5b600091825260209091200154600a8054600160a060020a0390921691839081106114de5760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039485161790559184168152600382526040808220829055600890925220805460ff19169055600a8054806115545760e060020a634e487b7102600052603160045260246000fd5b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff191690550190555050565b8061159181613c0d565b91505061141d565b5050565b60006115a882611d39565b1592915050565b600160a060020a03831661162e5760405160e560020a62461bcd02815260206004820152602660248201527f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064b565b600160a060020a0382166116ac5760405160e560020a62461bcd028152602060048201526024808201527f544f4b454e32303a20617070726f766520746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161064b565b600160a060020a0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600160a060020a03831661178d5760405160e560020a62461bcd02815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161064b565b600160a060020a03821661180c5760405160e560020a62461bcd02815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161064b565b600081116118855760405160e560020a62461bcd02815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f0000000000000000000000000000000000000000000000606482015260840161064b565b611890838383611dc4565b61189b838383612442565b5081600160a060020a031683600160a060020a0316600080516020613c708339815191528360405161170191815260200190565b60008060006118dc61299c565b90925090506118eb8183613b76565b9250505090565b6013541580156119025750601454155b801561190e5750601554155b1561191557565b600060138190556014819055601555565b60006119306118cf565b9050600080600080600080600061194689611b61565b9650965096509650965096509650600088836119629190613b99565b905060006119708a84613b99565b905061197f8d8d8d8c8c612b63565b821561199057611990838e8e612c0a565b83156119a0576119a0848e612d88565b6119ae878383888888612e59565b8b600160a060020a03168d600160a060020a0316600080516020613c70833981519152886040516119e191815260200190565b60405180910390a350505050505050505050505050565b600160a060020a038216611a215760405160e560020a62461bcd02815260040161064b906139d1565b60008167ffffffffffffffff1611611a7e5760405160e560020a62461bcd02815260206004820152601560248201527f4552523a207a65726f206c6f636b20706572696f640000000000000000000000604482015260640161064b565b600160a060020a03821660009081526001602052604090205460ff1661159957600160a060020a0382166000908152602081905260409020805467ffffffffffffffff191667ffffffffffffffff8316179055611adb8142613b4a565b600160a060020a0383166000908152602081905260409020805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff0000000000000000199092169190911790555050565b601b54611b3a906064613b99565b601355601c54611b4b906064613b99565b601455601d54611b5c906064613b99565b601555565b600080600080600080600080600080611b828b601354601454601554612ebb565b9250925092506000611b968c858585612f3c565b90506000611ba26118cf565b9050600080611bb28f8885612f67565b915091506000611bc58383898988612f91565b929e50919c509a5091985093965091945092505050919395979092949650565b600160a060020a03811660009081526008602052604090205460ff1615611c515760405160e560020a62461bcd02815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161064b565b600160a060020a03811660009081526002602052604090205415611cab57600160a060020a038116600090815260026020526040902054611c9190610710565b600160a060020a0382166000908152600360205260409020555b600160a060020a03811660008181526008602090815260408083208054600160ff199182168117909255600a80548084019091557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801805473ffffffffffffffffffffffffffffffffffffffff19169096179095556007909252909120805490921617905561137f81612fdd565b6000600160a060020a038216611d645760405160e560020a62461bcd02815260040161064b906139d1565b600160a060020a03821660009081526001602052604090205460ff1615611d8d57506001919050565b50600160a060020a031660009081526020819052604090205467ffffffffffffffff42811668010000000000000000909204161090565b600160a060020a03831660009081526009602052604090205460ff16158015611e065750600160a060020a03821660009081526009602052604090205460ff16155b611e0f57600080fd5b600160a060020a0383161580611e2c5750600160a060020a038216155b15611e3657505050565b600160a060020a038316301480611e555750600160a060020a03821630145b15611e5f57505050565b601a54600160a060020a0384811691161480611e885750601a54600160a060020a038381169116145b15611e9257505050565b600160a060020a038316737a250d5630b4cf539739df2c5dacb4c659f2488d1480611ed95750600160a060020a038216737a250d5630b4cf539739df2c5dacb4c659f2488d145b15611ee357505050565b33737a250d5630b4cf539739df2c5dacb4c659f2488d1480611f0f5750601954600160a060020a031633145b80611f245750601a54600160a060020a031633145b80611f475750600160a060020a03831660009081526007602052604090205460ff165b80611f6a5750600160a060020a03821660009081526007602052604090205460ff165b611fdf5760405160e560020a62461bcd02815260206004820152602b60248201527f4552523a2073656e646572206d75737420626520756e6973776170206f72207360448201527f686f7070696e6743617274000000000000000000000000000000000000000000606482015260840161064b565b60408051600280825260608201835260009260208301908036833701905050601954909150600160a060020a0385811691161480156120375750600160a060020a03831660009081526008602052604090205460ff16155b1561235f5761204583611d39565b6120945760405160e560020a62461bcd02815260206004820152601b60248201527f4552523a2061646472657373206973206c6f636b656428627579290000000000604482015260640161064b565b600160a060020a03831660009081526006602052604090205442116120b857600080fd5b6120c442610708613b32565b600160a060020a0384166000908152600660209081526040918290209290925580517fad5c46480000000000000000000000000000000000000000000000000000000081529051737a250d5630b4cf539739df2c5dacb4c659f2488d9263ad5c46489260048082019391829003018186803b15801561214257600080fd5b505afa158015612156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217a919061363b565b8160008151811061219e5760e060020a634e487b7102600052603260045260246000fd5b6020026020010190600160a060020a03169081600160a060020a03168152505030816001815181106121e35760e060020a634e487b7102600052603260045260246000fd5b600160a060020a03909216602092830291909101909101526040517f1f00ca74000000000000000000000000000000000000000000000000000000008152600090737a250d5630b4cf539739df2c5dacb4c659f2488d90631f00ca74906122509086908690600401613aab565b60006040518083038186803b15801561226857600080fd5b505afa15801561227c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a4919081019061376a565b905060006122b185610d7e565b9050600084836000815181106122da5760e060020a634e487b7102600052603260045260246000fd5b6020026020010151670de0b6b3a76400006122f59190613b99565b6122ff9190613b76565b905061230b8286613b32565b8261231588610ba0565b61231f9190613b99565b6123298784613b99565b6123339190613b32565b61233d9190613b76565b600160a060020a0387166000908152600560205260409020555061243c915050565b601954600160a060020a0384811691161480156123955750600160a060020a03841660009081526008602052604090205460ff16155b1561243c576123a384611d39565b6123f25760405160e560020a62461bcd02815260206004820152601d60248201527f4552523a2061646472657373206973206c6f636b65642873616c657329000000604482015260640161064b565b600160a060020a038416600090815260066020526040902054421161241657600080fd5b61242242610708613b32565b600160a060020a0385166000908152600660205260409020555b50505050565b601954600090819061245c90600160a060020a0316610d7e565b601954909150600160a060020a0386811691161480156124955750600160a060020a03841660009081526007602052604090205460ff16155b156124d4576124a5606482613b76565b8311156124c75760405160e560020a62461bcd02815260040161064b90613974565b6124cf611b2c565b612814565b601954600160a060020a03858116911614801561250a5750600160a060020a03851660009081526007602052604090205460ff16155b1561280c57601a547501000000000000000000000000000000000000000000900460ff1661257d5760405160e560020a62461bcd02815260206004820152601260248201527f4552523a2064697361626c656420737761700000000000000000000000000000604482015260640161064b565b612588606482613b76565b8311156125aa5760405160e560020a62461bcd02815260040161064b90613974565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106125f05760e060020a634e487b7102600052603260045260246000fd5b6020026020010190600160a060020a03169081600160a060020a031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d600160a060020a031663ad5c46486040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561267957600080fd5b505afa15801561268d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b1919061363b565b816001815181106126d55760e060020a634e487b7102600052603260045260246000fd5b600160a060020a03909216602092830291909101909101526040517fd06ca61f000000000000000000000000000000000000000000000000000000008152600090737a250d5630b4cf539739df2c5dacb4c659f2488d9063d06ca61f906127429088908690600401613aab565b60006040518083038186803b15801561275a57600080fd5b505afa15801561276e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612796919081019061376a565b905084816001815181106127bd5760e060020a634e487b7102600052603260045260246000fd5b6020026020010151670de0b6b3a76400006127d89190613b99565b6127e29190613b76565b6127eb88610ba0565b116127fd576127f8611b2c565b612805565b612805613051565b5050612814565b6128146118f2565b600160a060020a03851660009081526008602052604090205460ff1680156128555750600160a060020a03841660009081526008602052604090205460ff16155b1561286a57612865858585611926565b612989565b600160a060020a03851660009081526008602052604090205460ff161580156128ab5750600160a060020a03841660009081526008602052604090205460ff165b156128dc57601954600160a060020a03858116911614156128d157612865858585613081565b6128658585856130da565b600160a060020a03851660009081526008602052604090205460ff1615801561291e5750600160a060020a03841660009081526008602052604090205460ff16155b1561292e57612865858585613133565b600160a060020a03851660009081526008602052604090205460ff16801561296e5750600160a060020a03841660009081526008602052604090205460ff165b1561297e5761286585858561318b565b612989858585613133565b612991611b2c565b506001949350505050565b600f54600e546000918291825b600a54811015612b32578260026000600a84815481106129dc5760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832090910154600160a060020a031683528201929092526040019020541180612a5857508160036000600a8481548110612a315760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832090910154600160a060020a03168352820192909252604001902054115b15612a6e57600f54600e54945094505050509091565b60026000600a8381548110612a965760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832090910154600160a060020a03168352820192909252604001902054612ac59084613bb8565b925060036000600a8381548110612aef5760e060020a634e487b7102600052603260045260246000fd5b6000918252602080832090910154600160a060020a03168352820192909252604001902054612b1e9083613bb8565b915080612b2a81613c0d565b9150506129a9565b50600e54600f54612b439190613b76565b821015612b5a57600f54600e549350935050509091565b90939092509050565b600160a060020a038516600090815260036020526040902054612b87908490613bb8565b600160a060020a038616600090815260036020908152604080832093909355600290522054612bb7908390613bb8565b600160a060020a038087166000908152600260205260408082209390935590861681522054612be7908290613b32565b600160a060020a0390941660009081526002602052604090209390935550505050565b6000612c146118cf565b90506000612c228286613b99565b601954909150600160a060020a038581169116148015612c5b5750600160a060020a038381166000908152602160205260409020541615155b15612cd057600160a060020a03808416600090815260216020526040902054612c889187918491166131e5565b600160a060020a0383811660009081526021602090815260409182902054915188815291831692871691600080516020613c70833981519152910160405180910390a3612d81565b601754600160a060020a0316600090815260026020526040902054612cf6908290613b32565b60178054600160a060020a039081166000908152600260209081526040808320959095559254909116815260039091522054612d33908690613b32565b60178054600160a060020a0390811660009081526003602090815260409182902094909455915491518881529181169290871691600080516020613c70833981519152910160405180910390a35b5050505050565b6000612d926118cf565b90506000612da08285613b99565b601854600160a060020a0316600090815260026020526040902054909150612dc9908290613b32565b60188054600160a060020a039081166000908152600260209081526040808320959095559254909116815260039091522054612e06908290613b32565b60188054600160a060020a0390811660009081526003602090815260409182902094909455915491518781529181169290861691600080516020613c70833981519152910160405180910390a350505050565b838587600f54612e699190613bb8565b612e739190613bb8565b612e7d9190613bb8565b600f55601054612e8e908490613b32565b601055601154612e9f908390613b32565b601155601254612eb0908290613b32565b601255505050505050565b6000808080606480612ecd898b613b99565b612ed79190613b76565b612ee19190613b76565b90506000606480612ef2898c613b99565b612efc9190613b76565b612f069190613b76565b90506000606480612f17898d613b99565b612f219190613b76565b612f2b9190613b76565b929a91995091975095505050505050565b60008183612f4a8688613bb8565b612f549190613bb8565b612f5e9190613bb8565b95945050505050565b60008080612f758487613b99565b90506000612f838587613b99565b919791965090945050505050565b600080612f9e8386613b99565b90506000612fac8486613b99565b905060008183612fbc8a8c613bb8565b612fc69190613bb8565b612fd09190613bb8565b9998505050505050505050565b600160a060020a0381166130065760405160e560020a62461bcd02815260040161064b906139d1565b600160a060020a03811660009081526001602052604090205460ff161561302a5750565b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b601e5461305f906064613b99565b601355601f54613070906064613b99565b601455602054611b5c906064613b99565b600061308b6118cf565b905060008060008060008060006130a1896132e8565b9650965096509650965096509650600088836130bd9190613b99565b905060006130cb8a84613b99565b905061197f8d8d8d8c8c61334c565b60006130e46118cf565b905060008060008060008060006130fa89611b61565b9650965096509650965096509650600088836131169190613b99565b905060006131248a84613b99565b905061197f8d8d888c8c6133d7565b600061313d6118cf565b9050600080600080600080600061315389611b61565b96509650965096509650965096506000888361316f9190613b99565b9050600061317d8a84613b99565b905061197f8d8d8b8b613462565b60006131956118cf565b905060008060008060008060006131ab89611b61565b9650965096509650965096509650600088836131c79190613b99565b905060006131d58a84613b99565b905061197f8d8d8d8c8a8d6134d8565b600160a060020a03811660009081526008602052604090205460ff161561327857600160a060020a03811660009081526002602052604090205461322a908390613b32565b600160a060020a03821660009081526002602090815260408083209390935560039052205461325a908490613b32565b600160a060020a0382166000908152600360205260409020556132b6565b600160a060020a03811660009081526002602052604090205461329c908390613b32565b600160a060020a0382166000908152600260205260409020555b600160a060020a038116600090815260226020526040812080548592906132de908490613b32565b9091555050505050565b6000806000806000806000806000806133098b601354601454601554612ebb565b925092509250600061331d8c8585856135b7565b905060006133296118cf565b90506000806133398f8885612f67565b915091506000611bc583838989886135d9565b600160a060020a038516600090815260026020526040902054613370908290613bb8565b600160a060020a038087166000908152600260209081526040808320949094559187168152600390915220546133a7908490613b32565b600160a060020a038516600090815260036020908152604080832093909355600290522054612be7908390613b32565b600160a060020a0385166000908152600260205260409020546133fb908390613bb8565b600160a060020a03808716600090815260026020908152604080832094909455918716815260039091522054613432908490613b32565b600160a060020a038516600090815260036020908152604080832093909355600290522054612be7908290613b32565b600160a060020a038416600090815260026020526040902054613486908390613bb8565b600160a060020a0380861660009081526002602052604080822093909355908516815220546134b6908290613b32565b600160a060020a03909316600090815260026020526040902092909255505050565b600160a060020a0386166000908152600360205260409020546134fc908590613bb8565b600160a060020a03871660009081526003602090815260408083209390935560029052205461352c908490613bb8565b600160a060020a03808816600090815260026020908152604080832094909455918816815260039091522054613563908390613b32565b600160a060020a038616600090815260036020908152604080832093909355600290522054613593908290613b32565b600160a060020a039095166000908152600260205260409020949094555050505050565b600081836135c58688613b32565b6135cf9190613b32565b612f5e9190613b32565b6000806135e68386613b99565b905060006135f48486613b99565b9050600081836136048a8c613b32565b61360e9190613b32565b612fd09190613b32565b600060208284031215613629578081fd5b813561363481613c5a565b9392505050565b60006020828403121561364c578081fd5b815161363481613c5a565b60008060408385031215613669578081fd5b823561367481613c5a565b9150602083013561368481613c5a565b809150509250929050565b6000806000606084860312156136a3578081fd5b83356136ae81613c5a565b925060208401356136be81613c5a565b929592945050506040919091013590565b600080604083850312156136e1578182fd5b82356136ec81613c5a565b946020939093013593505050565b6000806020838503121561370c578182fd5b823567ffffffffffffffff80821115613723578384fd5b818501915085601f830112613736578384fd5b813581811115613744578485fd5b866020604083028501011115613758578485fd5b60209290920196919550909350505050565b6000602080838503121561377c578182fd5b825167ffffffffffffffff80821115613793578384fd5b818501915085601f8301126137a6578384fd5b8151818111156137b8576137b8613c41565b83810291506137c8848301613b01565b8181528481019084860184860187018a10156137e2578788fd5b8795505b838610156138045780518352600195909501949186019186016137e6565b5098975050505050505050565b600060408284031215613822578081fd5b6040516040810181811067ffffffffffffffff8211171561384557613845613c41565b604052823561385381613c5a565b81526020928301359281019290925250919050565b600060c08284031215613879578081fd5b60405160c0810181811067ffffffffffffffff8211171561389c5761389c613c41565b8060405250823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201528091505092915050565b6000602082840312156138f2578081fd5b5035919050565b6000806040838503121561390b578182fd5b8235915060208301358015158114613684578182fd5b6000602080835283518082850152825b8181101561394d57858101830151858201604001528201613931565b8181111561395e5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602f908201527f4552523a2045786365656420746865203125206f662063757272656e74206c6960408201527f717569646974792062616c616e63650000000000000000000000000000000000606082015260800190565b60208082526016908201527f4552523a207a65726f206c6f636b206164647265737300000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526013908201527f4552523a2070617573656420616c726561647900000000000000000000000000604082015260600190565b60208082526011908201527f4552523a207a65726f2061646472657373000000000000000000000000000000604082015260600190565b60006040820184835260206040818501528185518084526060860191508287019350845b81811015613af4578451600160a060020a031683529383019391830191600101613acf565b5090979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b2a57613b2a613c41565b604052919050565b60008219821115613b4557613b45613c28565b500190565b600067ffffffffffffffff808316818516808303821115613b6d57613b6d613c28565b01949350505050565b600082613b945760e060020a634e487b710281526012600452602481fd5b500490565b6000816000190483118215151615613bb357613bb3613c28565b500290565b600082821015613bca57613bca613c28565b500390565b600281046001821680613be357607f821691505b60208210811415613c075760e060020a634e487b7102600052602260045260246000fd5b50919050565b6000600019821415613c2157613c21613c28565b5060010190565b60e060020a634e487b7102600052601160045260246000fd5b60e060020a634e487b7102600052604160045260246000fd5b600160a060020a038116811461137f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209ccec4df349283db2e4d921d220584371e2d22c4fa7b9a21e3789d67acb8323064736f6c63430008040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000e610185758b5863e79dd9023ac28a31fb02f12e90000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000114f6666696369616c2042756666446f6765000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000524427566660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f3207c360a7cbeb6e359e79c3f690f1730897a19000000000000000000000000aae55e8342ecbbecf836483ad54b90a32475065d0000000000000000000000008a8eff48fbd6886ff67170bd893264f338c2c5dd000000000000000000000000c505f97fea928d0820cee103eb4f9ed6e617f7a7000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000f492da4b415cc760cf72a06e3c5fc0a2d038c1ba000000000000000000000000c187d3ff10c4a6b5e4a70be2201527eaf6dcee7a000000000000000000000000788744c2293930bb69415d9027071f868922e152000000000000000000000000d2828245b23a22e156f159721a8c53404eb7d870000000000000000000000000413b32bd3b9ae57e75b18c010f6f30f524a642f0000000000000000000000000ba355abbd461b1ae1c0aad8d9bc00481d3403dad0000000000000000000000004d1adf22e6862b48a0bd18a943fda3c121d6866e0000000000000000000000002272e0ac624bd42f66450f5ac5017901a4c02f9c0000000000000000000000004dad7d926dd541ed8abcd6e9f3e17fe7510e5c9400000000000000000000000065b59c63f996ac360daaf356ec4e05b348a1f5e6000000000000000000000000c3f8e951dcb4c0499b459fd23b123bc00ab8142700000000000000000000000008874f2b779da0221eea7a6579f3a872bf42a2890000000000000000000000006b935de9605eba047d1895c26df1ef008649a05f

-----Decoded View---------------
Arg [0] : _name (string): Official BuffDoge
Arg [1] : _symbol (string): $Buff
Arg [2] : _decimals (uint256): 18
Arg [3] : _supply (uint256): 1000000000
Arg [4] : _oldBuff (address): 0xE610185758B5863E79dd9023ac28a31FB02F12E9
Arg [5] : blackList (address[]): 0xf3207c360a7cBeB6e359E79c3f690f1730897a19,0xAAE55e8342ecbBEcF836483aD54B90a32475065D,0x8A8eFf48fBD6886FF67170BD893264f338c2c5DD,0xC505F97fEA928d0820cee103EB4F9eD6e617f7a7
Arg [6] : exchangeList (address[]): 0xf492da4b415cC760cf72A06E3c5Fc0A2d038c1BA,0xc187D3FF10c4a6b5E4A70bE2201527EAf6dceE7a,0x788744c2293930bb69415D9027071f868922e152,0xd2828245b23A22E156f159721A8C53404EB7D870,0x413b32bd3b9ae57e75B18c010F6F30f524a642f0,0xBa355ABbD461B1aE1C0aad8d9BC00481D3403DAd,0x4D1aDF22E6862B48a0BD18a943fda3C121d6866e,0x2272E0AC624bd42F66450f5Ac5017901A4C02F9c,0x4DAd7D926dd541eD8AbCd6E9F3E17fE7510E5C94,0x65B59C63f996AC360DAaF356Ec4e05b348a1f5E6,0xc3f8e951dCb4C0499B459Fd23b123bc00ab81427,0x08874f2B779DA0221eEA7A6579f3a872bf42a289,0x6B935DE9605eBa047d1895c26Df1ef008649a05f

-----Encoded View---------------
30 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [4] : 000000000000000000000000e610185758b5863e79dd9023ac28a31fb02f12e9
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000200
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000011
Arg [8] : 4f6666696369616c2042756666446f6765000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [10] : 2442756666000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [12] : 000000000000000000000000f3207c360a7cbeb6e359e79c3f690f1730897a19
Arg [13] : 000000000000000000000000aae55e8342ecbbecf836483ad54b90a32475065d
Arg [14] : 0000000000000000000000008a8eff48fbd6886ff67170bd893264f338c2c5dd
Arg [15] : 000000000000000000000000c505f97fea928d0820cee103eb4f9ed6e617f7a7
Arg [16] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [17] : 000000000000000000000000f492da4b415cc760cf72a06e3c5fc0a2d038c1ba
Arg [18] : 000000000000000000000000c187d3ff10c4a6b5e4a70be2201527eaf6dcee7a
Arg [19] : 000000000000000000000000788744c2293930bb69415d9027071f868922e152
Arg [20] : 000000000000000000000000d2828245b23a22e156f159721a8c53404eb7d870
Arg [21] : 000000000000000000000000413b32bd3b9ae57e75b18c010f6f30f524a642f0
Arg [22] : 000000000000000000000000ba355abbd461b1ae1c0aad8d9bc00481d3403dad
Arg [23] : 0000000000000000000000004d1adf22e6862b48a0bd18a943fda3c121d6866e
Arg [24] : 0000000000000000000000002272e0ac624bd42f66450f5ac5017901a4c02f9c
Arg [25] : 0000000000000000000000004dad7d926dd541ed8abcd6e9f3e17fe7510e5c94
Arg [26] : 00000000000000000000000065b59c63f996ac360daaf356ec4e05b348a1f5e6
Arg [27] : 000000000000000000000000c3f8e951dcb4c0499b459fd23b123bc00ab81427
Arg [28] : 00000000000000000000000008874f2b779da0221eea7a6579f3a872bf42a289
Arg [29] : 0000000000000000000000006b935de9605eba047d1895c26df1ef008649a05f


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.