Contract 0x7a983559e130723b70e45bd637773dbdfd3f71db 3

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x816f7a0b35aeff001a1117971b02782c0de33318b8a45246c9eab3cb47e8716aApprove130098632021-11-28 0:09:554 mins ago0x19936e12f3e38584167285721ad391bcd007cdf3 IN  Diamond Boyz: DBZ Token0 BNB0.00022263
0x122b093cfffa305bc1945074311b77ae8068c4168be3f92a67ea0b7820671591Transfer130092242021-11-27 23:36:4137 mins ago0x3c35979949cee3ddd42ea0872f8e7eaba172180c IN  Diamond Boyz: DBZ Token0 BNB0.00048115
0xc66eca0789b6bdcdbf4106a0c67fcd311245ca162636332352968c41ddf056a2Approve130063042021-11-27 21:05:063 hrs 8 mins ago0xf113633987d990ffde6a131de87985f7242cb991 IN  Diamond Boyz: DBZ Token0 BNB0.00022263
0x6a6e1e64c9f08fa7891c4f1b74a3849a65f260427c0c008e06582cef6ebbdec5Transfer130060942021-11-27 20:54:063 hrs 19 mins ago0xaedc7bc0c7334010319b8227613a02fab541e3e7 IN  Diamond Boyz: DBZ Token0 BNB0.00048121
0xe0b587094d91a4efa0ad21b6053bee1cfda06a6dd9b7567df2e8c0b632d8bc0fApprove130047232021-11-27 19:41:484 hrs 32 mins ago0x7916410de718cd793c38cf63aa6e497c4a688c62 IN  Diamond Boyz: DBZ Token0 BNB0.000072855
0xcb1f6ae66524235f34ce01d5988025ea722b3399b6f492a33c836fdc91fdfd94Transfer130044512021-11-27 19:27:394 hrs 46 mins ago0x8c128dba2cb66399341aa877315be1054be75da8 IN  Diamond Boyz: DBZ Token0 BNB0.00040609
0x2817660355609f1f1dd0d42b712888b121db816c547ed48b919ca049d470e17dTransfer130041862021-11-27 19:13:575 hrs ago0xd6ab56b6e01e674f6b39e5f7be7686b99fa45766 IN  Diamond Boyz: DBZ Token0 BNB0.00040621
0x4ec63b143da1ba4ae9910b857a5f3be96c2decd6c31105973563c1e00039736eApprove130041562021-11-27 19:12:265 hrs 1 min ago0xa85599f8733886a984e5ab327fc8bbd4de9ca1a8 IN  Diamond Boyz: DBZ Token0 BNB0.00012471
0x29b4f9f416a51c8637a2ce4560eb9cbadcba69aa27dab769111d505c56b538acApprove130041532021-11-27 19:12:175 hrs 1 min ago0xa85599f8733886a984e5ab327fc8bbd4de9ca1a8 IN  Diamond Boyz: DBZ Token0 BNB0.000072855
0x21a1738c9239b42bc1125e454d446f5389ae8a201f12014ca0046d44c7bbbbf9Approve130027882021-11-27 17:58:116 hrs 15 mins ago0xccb89ad8cc43e041baaf9f85a983a3f1043c6b15 IN  Diamond Boyz: DBZ Token0 BNB0.00022263
0xb3a5b226f51f2941978754f5987626bb3e549809ff08c3d5e9a59d5b72c1ea37Approve130027702021-11-27 17:57:176 hrs 16 mins ago0x4bf468f5e527bd8140d4fb719b7b4e0a2cb70da3 IN  Diamond Boyz: DBZ Token0 BNB0.00022263
0x90c8024fc800df41849be7fa113f21bd11c955ffd5eb04d20582be5ab64eae9cTransfer130026892021-11-27 17:53:126 hrs 20 mins ago0x9946bb4df9cd3b634fd6509d6d3a167cec76fe0a IN  Diamond Boyz: DBZ Token0 BNB0.00048115
0x34cc17e9bc68594628ad339bd1e54b303f510c82f6c6bfee6d81e45346dccf77Approve130025032021-11-27 17:43:236 hrs 30 mins ago0xe69fca542eff8b4246602cb4753a541e35f0049c IN  Diamond Boyz: DBZ Token0 BNB0.000267156
0x6164ed632d90c9e6682e53305d39273556297dbe87e1cb91d73be0a3512b3237Transfer130024682021-11-27 17:41:166 hrs 32 mins ago0x8c128dba2cb66399341aa877315be1054be75da8 IN  Diamond Boyz: DBZ Token0 BNB0.00040609
0x5859d22c22f5aceb0547a220a98c7a2df1829e4da9133d6699c9fe2b2672312aApprove130021732021-11-27 17:24:576 hrs 49 mins ago0x11eb213cf45722dba63c657431418a2d1bc5c731 IN  Diamond Boyz: DBZ Token0 BNB0.000072855
0x733c550740a03bc0811cc4993914384dd331d7c78d20248b4650688ec3ab4fcdApprove130019332021-11-27 17:11:307 hrs 2 mins ago0x0d3ca56e1e0be39bdccd693eacbb722a44c34da3 IN  Diamond Boyz: DBZ Token0 BNB0.00022263
0x31bdae2090a160986ec3ada4f1c9a0f6e264f765c48b9d17f151cd44f1fc37b5Approve130017892021-11-27 17:03:487 hrs 10 mins ago0xa2ecea5d02e922e45529737969b95715f39f0fa0 IN  Diamond Boyz: DBZ Token0 BNB0.00022263
0x7d6ddcb5a118a731092dbf80601e5ba7311aeeb681f54daf39b14b50ad798924Transfer130015412021-11-27 16:48:317 hrs 25 mins ago0x0aece2380a396b321143158b6b8640531aee0145 IN  Diamond Boyz: DBZ Token0 BNB0.000446831
0xd401c1920af348bb9182eb12e772b707a3b9d26e8f51c101a291b2084b91e565Approve130014532021-11-27 16:43:397 hrs 30 mins ago0x6cfe80b797a4ab5fbef24cc5897d00cd83a76238 IN  Diamond Boyz: DBZ Token0 BNB0.00022263
0xeccfecb672e9ed35e978a1a03d8a6dfcd85ef2a830fce9e54a7cde69ebda5d90Transfer130014372021-11-27 16:42:507 hrs 31 mins ago0x4ac0b573b172002d6f9592a6156320ad1a9bf7a6 IN  Diamond Boyz: DBZ Token0 BNB0.000529331
0xcbbbce71cddee691c1fa4bad4db8bb9441da9c170923c2b4195fd938d4502968Transfer130009782021-11-27 16:17:287 hrs 56 mins ago0x9626e3574eb0f52e2d55725950fc02fdc95440f1 IN  Diamond Boyz: DBZ Token0 BNB0.00040603
0x2731897ea39221954d5cb998e403b8cb5888076b79bb4d7ca786c19a989faa16Approve130005382021-11-27 15:53:558 hrs 20 mins ago0xb96cfab6e7b86f3e4f6113996ea4ab3dc6c9de58 IN  Diamond Boyz: DBZ Token0 BNB0.000072855
0x05951df6b52b0e41b2ccea49f91c1066740df659bdf4cc70f288fa074e4baf79Approve130004222021-11-27 15:48:068 hrs 25 mins ago0xf936f83adda54e4ca22e72e0ec6b59bd9803bfa4 IN  Diamond Boyz: DBZ Token0 BNB0.00022263
0x94ed45e70ce009f6eed07ebafefcc507c917f0267522a49a364d21fab763f4caTransfer130001872021-11-27 15:36:108 hrs 37 mins ago0x8c128dba2cb66399341aa877315be1054be75da8 IN  Diamond Boyz: DBZ Token0 BNB0.00040609
0xa40014fb44835ce1376f065a2c7655e5fc3a0446dff0e39aaeac3c1bef6cbdf4Transfer129999232021-11-27 15:22:378 hrs 51 mins ago0x8c128dba2cb66399341aa877315be1054be75da8 IN  Diamond Boyz: DBZ Token0 BNB0.00040609
[ Download CSV Export 

OVERVIEW

DBZ Coin aims to become the leader in payment and verification for authentic jewelry purchases as well as set a standard for a faster remittance systems worldwide.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd7a814bcadb5ba7c7049112bcce1ab849a587f19f933d8a19ed70b855aac3436129260002021-11-24 19:58:483 days 4 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token0.072140693365552022 BNB
0xd7a814bcadb5ba7c7049112bcce1ab849a587f19f933d8a19ed70b855aac3436129260002021-11-24 19:58:483 days 4 hrs ago Diamond Boyz: DBZ Token PancakeSwap: Router v220.789183156373275464 BNB
0xd7a814bcadb5ba7c7049112bcce1ab849a587f19f933d8a19ed70b855aac3436129260002021-11-24 19:58:483 days 4 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token20.789183156373275464 BNB
0x84faf0e9ef3bcca5cd5eb2d54c0c03946775a803c170e062781edb89f8bc2309128578382021-11-22 8:50:075 days 15 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token0.093709592504240535 BNB
0x84faf0e9ef3bcca5cd5eb2d54c0c03946775a803c170e062781edb89f8bc2309128578382021-11-22 8:50:075 days 15 hrs ago Diamond Boyz: DBZ Token PancakeSwap: Router v223.82314933493322235 BNB
0x84faf0e9ef3bcca5cd5eb2d54c0c03946775a803c170e062781edb89f8bc2309128578382021-11-22 8:50:075 days 15 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token23.82314933493322235 BNB
0xa17e8c0028fc717c766ff6bee37eafae7bc8ca1f5415c4d0187a3ebbe6e1cb29127744032021-11-19 8:55:158 days 15 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token0.140553643696001977 BNB
0xa17e8c0028fc717c766ff6bee37eafae7bc8ca1f5415c4d0187a3ebbe6e1cb29127744032021-11-19 8:55:158 days 15 hrs ago Diamond Boyz: DBZ Token PancakeSwap: Router v229.694826019479408583 BNB
0xa17e8c0028fc717c766ff6bee37eafae7bc8ca1f5415c4d0187a3ebbe6e1cb29127744032021-11-19 8:55:158 days 15 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token29.694826019479408583 BNB
0x9436dc5b3228708ef1098047b7d9b99572d2caad9ac4aec85f2fdf8af074894a126724492021-11-15 15:25:5212 days 8 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token0.167506453615147826 BNB
0x9436dc5b3228708ef1098047b7d9b99572d2caad9ac4aec85f2fdf8af074894a126724492021-11-15 15:25:5212 days 8 hrs ago Diamond Boyz: DBZ Token PancakeSwap: Router v232.595728663983379261 BNB
0x9436dc5b3228708ef1098047b7d9b99572d2caad9ac4aec85f2fdf8af074894a126724492021-11-15 15:25:5212 days 8 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token32.595728663983379261 BNB
0xf39e291db2a15099151f706cd20f0e7ae930c5024dc092bcefc243a39f6ff408126724412021-11-15 15:25:2812 days 8 hrs ago Diamond Boyz: DBZ Token PancakeSwap: Router v232.595728663983379261 BNB
0xf39e291db2a15099151f706cd20f0e7ae930c5024dc092bcefc243a39f6ff408126724412021-11-15 15:25:2812 days 8 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token32.595728663983379261 BNB
0x000763fae83058cb9c0382f5287ec8165b9cce1921454a1f569e06e6f0a743e1126723832021-11-15 15:22:2112 days 8 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token0.167530707811798281 BNB
0x000763fae83058cb9c0382f5287ec8165b9cce1921454a1f569e06e6f0a743e1126723832021-11-15 15:22:2112 days 8 hrs ago Diamond Boyz: DBZ Token PancakeSwap: Router v232.59844210270452002 BNB
0x000763fae83058cb9c0382f5287ec8165b9cce1921454a1f569e06e6f0a743e1126723832021-11-15 15:22:2112 days 8 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token32.59844210270452002 BNB
0x7a5249abb078696dc1188b46fa6117ac3e6bc06ef8ed0374f6be9109725efa71126723602021-11-15 15:20:5612 days 8 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token0.167529523037265003 BNB
0x7a5249abb078696dc1188b46fa6117ac3e6bc06ef8ed0374f6be9109725efa71126723602021-11-15 15:20:5612 days 8 hrs ago Diamond Boyz: DBZ Token PancakeSwap: Router v232.598309559367591413 BNB
0x7a5249abb078696dc1188b46fa6117ac3e6bc06ef8ed0374f6be9109725efa71126723602021-11-15 15:20:5612 days 8 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token32.598309559367591413 BNB
0xae31f0ea57c5f04862d91f3f9ee2a92790bc8af9b7984b112cea33c650fa5c1e125602322021-11-11 14:16:5216 days 9 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token0.279929560780471784 BNB
0xae31f0ea57c5f04862d91f3f9ee2a92790bc8af9b7984b112cea33c650fa5c1e125602322021-11-11 14:16:5216 days 9 hrs ago Diamond Boyz: DBZ Token PancakeSwap: Router v243.643937729746839348 BNB
0xae31f0ea57c5f04862d91f3f9ee2a92790bc8af9b7984b112cea33c650fa5c1e125602322021-11-11 14:16:5216 days 9 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token43.643937729746839348 BNB
0x8db9fd561b38b61999b0d36faeec1d2345e7c5fc25b24ab011d879dced5d004a125602202021-11-11 14:16:0416 days 9 hrs ago PancakeSwap: Router v2 Diamond Boyz: DBZ Token0.279929560780471784 BNB
0x8db9fd561b38b61999b0d36faeec1d2345e7c5fc25b24ab011d879dced5d004a125602202021-11-11 14:16:0416 days 9 hrs ago Diamond Boyz: DBZ Token PancakeSwap: Router v243.643937729746839348 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DiamondBoyzCoin

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-06-22
*/

pragma solidity ^0.8.0;
// SPDX-License-Identifier: Unlicensed

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    

}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }


    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor (){
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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;
}

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);
}

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

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

contract DiamondBoyzCoin is Context, IERC20, Ownable {
    using SafeMath for uint256;

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

    mapping (address => bool) private _isExcludedFromFee;

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;

    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 1000000000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = "Diamond Boyz Coin";
    string private _symbol = "DBZ";
    uint8 private _decimals = 18;

    uint256 public _taxFee = 3;
    uint256 private _previousTaxFee = _taxFee;

    uint256 public _liquidityFee = 5;
    uint256 private _previousLiquidityFee = _liquidityFee;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    uint256 private numTokensSellToAddToLiquidity = 1000000 * 10**18;

    uint256 public _maxTxAmount = 10000000 * 10**18;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    event Purchase(address indexed to, uint256 amount);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor () {
        _rOwned[_msgSender()] = _rTotal;

        //For MAINNET: 0x10ED43C718714eb63d5aA57B78B54704E256024E
        //For TESTNET: 0xD99D1c33F9fC3444f8101754aBC46c52416550D1
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public 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");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function excludeFromReward(address account) public onlyOwner {
        require(_excluded.length <= 10, "Max excluded address number reached.");
        require(!_isExcluded[account], "Account is already excluded");
        if (_excluded.length <= 1) {
            if (_rOwned[account] > 0) {
                _tOwned[account] = tokenFromReflection(_rOwned[account]);
            }
            _isExcluded[account] = true;
            _excluded.push(account);
        }
    }

    function includeInReward(address account) external onlyOwner {
        require(_isExcluded[account], "Account is already excluded");
        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 excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setTaxFeePercent(uint256 taxFee) external onlyOwner {
        require(taxFee <= 10, "Percentage too high. Please use a lower fee.");
        _taxFee = taxFee;
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner {
        require(liquidityFee <= 10, "Percentage too high. Please use a lower fee.");
        _liquidityFee = liquidityFee;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner {
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(
            10**2
        );
    }

    receive() external payable {
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 tLiquidity = calculateLiquidityFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity);
        return (tTransferAmount, tFee, tLiquidity);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(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.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate =  _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
    }

    function calculateTaxFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_taxFee).div(
            10**2
        );
    }

    function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_liquidityFee).div(
            10**2
        );
    }


    function removeAllFee() private {
        if(_taxFee == 0 && _liquidityFee == 0) return;

        _previousTaxFee = _taxFee;
        _previousLiquidityFee = _liquidityFee;

        _taxFee = 0;
        _liquidityFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _liquidityFee = _previousLiquidityFee;
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        //require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee;
        
        if (from == uniswapV2Pair || to == uniswapV2Pair) {
            if (from != owner() && to != owner()) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
                takeFee = true;
            }
        }

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            contractTokenBalance = numTokensSellToAddToLiquidity;
            swapAndLiquify(contractTokenBalance);
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        uint256 initialBalance = address(this).balance;

        swapTokensForEth(half);

        uint256 newBalance = address(this).balance.sub(initialBalance);

        addLiquidity(otherHalf, newBalance);

        emit SwapAndLiquify(half, newBalance, otherHalf);
    }
    

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(this),
            block.timestamp
        );
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
        if(!takeFee)
            removeAllFee();

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }

        if(!takeFee)
            restoreAllFee();
    }
    
    function setRouterAddress(address newRouter) public onlyOwner {
        IUniswapV2Router02 _newPancakeRouter = IUniswapV2Router02(newRouter);
        uniswapV2Pair = IUniswapV2Factory(_newPancakeRouter.factory()).createPair(address(this), _newPancakeRouter.WETH());
        uniswapV2Router = _newPancakeRouter;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _reflectFee(rFee, tFee);
        _takeLiquidity(tLiquidity);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
        _reflectFee(rFee, tFee);
        _takeLiquidity(tLiquidity);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _reflectFee(rFee, tFee);
        _takeLiquidity(tLiquidity);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _reflectFee(rFee, tFee);
        _takeLiquidity(tLiquidity);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function setConfigurationState(bool presale) external onlyOwner {
        if (presale) {
            _maxTxAmount = _tTotal;
            _taxFee = 0;
            _previousTaxFee = _taxFee;
            _liquidityFee = 0;
            _previousLiquidityFee = _liquidityFee;
            inSwapAndLiquify = false;
            emit SwapAndLiquifyEnabledUpdated(false);
        } else {
            _maxTxAmount = 10000000 * 10**18;
            _taxFee = 3;
            _previousTaxFee = _taxFee;
            _liquidityFee = 5;
            _previousLiquidityFee = _liquidityFee;
            inSwapAndLiquify = true;
            emit SwapAndLiquifyEnabledUpdated(true);
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Purchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"presale","type":"bool"}],"name":"setConfigurationState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"totalFees","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce800000060078190556200002490600019620004fc565b62000032906000196200049b565b600855604080518082019091526011808252702234b0b6b7b732102137bcbd1021b7b4b760791b60209092019182526200006f91600a91620003c5565b506040805180820190915260038082526222212d60e91b60209092019182526200009c91600b91620003c5565b50600c805460ff191660121790556003600d819055600e556005600f81905560105569d3c21bcecceda10000006013556a084595161401484a0000006014556015805461ff001916610100179055348015620000f757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506008543360009081526001602090815260409182902092909255805163c45a015560e01b815290517310ed43c718714eb63d5aa57b78b54704e256024e92839263c45a01559260048083019392829003018186803b1580156200019b57600080fd5b505afa158015620001b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d691906200046b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021f57600080fd5b505afa15801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a91906200046b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002a357600080fd5b505af1158015620002b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002de91906200046b565b601280546001600160a01b03199081166001600160a01b039384161790915560118054909116918316919091179055600160046000620003266000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260049092529020805490911660011790556200036e3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620003b691815260200190565b60405180910390a3506200051d565b828054620003d390620004bf565b90600052602060002090601f016020900481019282620003f7576000855562000442565b82601f106200041257805160ff191683800117855562000442565b8280016001018555821562000442579182015b828111156200044257825182559160200191906001019062000425565b506200045092915062000454565b5090565b5b8082111562000450576000815560010162000455565b6000602082840312156200047d578081fd5b81516001600160a01b038116811462000494578182fd5b9392505050565b600082821015620004ba57634e487b7160e01b81526011600452602481fd5b500390565b600181811c90821680620004d457607f821691505b60208210811415620004f657634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200051857634e487b7160e01b81526012600452602481fd5b500690565b612770806200052d6000396000f3fe6080604052600436106102085760003560e01c806352390c021161011857806395d89b41116100a0578063d543dbeb1161006f578063d543dbeb146105fa578063dd1d76981461061a578063dd62ed3e1461063a578063ea2f0b3714610680578063f2fde38b146106a057600080fd5b806395d89b4114610585578063a457c2d71461059a578063a9059cbb146105ba578063c49b9a80146105da57600080fd5b8063715018a6116100e7578063715018a6146104e35780637d1db4a5146104f857806388f820201461050e5780638da5cb5b146105475780638ee88c531461056557600080fd5b806352390c02146104545780635342acb4146104745780636bc87c3a146104ad57806370a08231146104c357600080fd5b8063313ce5671161019b57806341cb87fc1161016a57806341cb87fc146103b5578063437823ec146103d55780634549b039146103f557806349bd5a5e146104155780634a74bb021461043557600080fd5b8063313ce5671461033d5780633685d4191461035f578063395093511461037f5780633b124fe71461039f57600080fd5b80631694505e116101d75780631694505e146102b057806318160ddd146102e857806323b872dd146102fd5780632d8381191461031d57600080fd5b8063061c82d01461021457806306fdde0314610236578063095ea7b31461026157806313114a9d1461029157600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061023461022f36600461244a565b6106c0565b005b34801561024257600080fd5b5061024b610719565b60405161025891906124ba565b60405180910390f35b34801561026d57600080fd5b5061028161027c366004612405565b6107ab565b6040519015158152602001610258565b34801561029d57600080fd5b506009545b604051908152602001610258565b3480156102bc57600080fd5b506011546102d0906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102f457600080fd5b506007546102a2565b34801561030957600080fd5b506102816103183660046123c5565b6107c2565b34801561032957600080fd5b506102a261033836600461244a565b61082b565b34801561034957600080fd5b50600c5460405160ff9091168152602001610258565b34801561036b57600080fd5b5061023461037a366004612355565b6108af565b34801561038b57600080fd5b5061028161039a366004612405565b610a9e565b3480156103ab57600080fd5b506102a2600d5481565b3480156103c157600080fd5b506102346103d0366004612355565b610ad4565b3480156103e157600080fd5b506102346103f0366004612355565b610ca6565b34801561040157600080fd5b506102a2610410366004612462565b610cf4565b34801561042157600080fd5b506012546102d0906001600160a01b031681565b34801561044157600080fd5b5060155461028190610100900460ff1681565b34801561046057600080fd5b5061023461046f366004612355565b610d81565b34801561048057600080fd5b5061028161048f366004612355565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156104b957600080fd5b506102a2600f5481565b3480156104cf57600080fd5b506102a26104de366004612355565b610f40565b3480156104ef57600080fd5b50610234610f9f565b34801561050457600080fd5b506102a260145481565b34801561051a57600080fd5b50610281610529366004612355565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561055357600080fd5b506000546001600160a01b03166102d0565b34801561057157600080fd5b5061023461058036600461244a565b611013565b34801561059157600080fd5b5061024b611063565b3480156105a657600080fd5b506102816105b5366004612405565b611072565b3480156105c657600080fd5b506102816105d5366004612405565b6110c1565b3480156105e657600080fd5b506102346105f5366004612430565b6110ce565b34801561060657600080fd5b5061023461061536600461244a565b61114c565b34801561062657600080fd5b50610234610635366004612430565b61119c565b34801561064657600080fd5b506102a261065536600461238d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561068c57600080fd5b5061023461069b366004612355565b611285565b3480156106ac57600080fd5b506102346106bb366004612355565b6112d0565b6000546001600160a01b031633146106f35760405162461bcd60e51b81526004016106ea9061250d565b60405180910390fd5b600a8111156107145760405162461bcd60e51b81526004016106ea90612542565b600d55565b6060600a80546107289061266c565b80601f01602080910402602001604051908101604052809291908181526020018280546107549061266c565b80156107a15780601f10610776576101008083540402835291602001916107a1565b820191906000526020600020905b81548152906001019060200180831161078457829003601f168201915b5050505050905090565b60006107b83384846113ba565b5060015b92915050565b60006107cf8484846114de565b610821843361081c856040518060600160405280602881526020016126ee602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061172e565b6113ba565b5060019392505050565b60006008548211156108925760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106ea565b600061089c611768565b90506108a8838261178b565b9392505050565b6000546001600160a01b031633146108d95760405162461bcd60e51b81526004016106ea9061250d565b6001600160a01b03811660009081526005602052604090205460ff166109415760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106ea565b60005b600654811015610a9a57816001600160a01b03166006828154811061097957634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610a8857600680546109a490600190612655565b815481106109c257634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600680546001600160a01b0390921691839081106109fc57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610a6257634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610a92816126a7565b915050610944565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916107b891859061081c90866117cd565b6000546001600160a01b03163314610afe5760405162461bcd60e51b81526004016106ea9061250d565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3c57600080fd5b505afa158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b749190612371565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbc57600080fd5b505afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf49190612371565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610c3c57600080fd5b505af1158015610c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c749190612371565b601280546001600160a01b039283166001600160a01b0319918216179091556011805493909216921691909117905550565b6000546001600160a01b03163314610cd05760405162461bcd60e51b81526004016106ea9061250d565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600754831115610d485760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016106ea565b81610d67576000610d588461182c565b509395506107bc945050505050565b6000610d728461182c565b509295506107bc945050505050565b6000546001600160a01b03163314610dab5760405162461bcd60e51b81526004016106ea9061250d565b600654600a1015610e0a5760405162461bcd60e51b8152602060048201526024808201527f4d6178206578636c756465642061646472657373206e756d62657220726561636044820152633432b21760e11b60648201526084016106ea565b6001600160a01b03811660009081526005602052604090205460ff1615610e735760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106ea565b600654600110610f3d576001600160a01b03811660009081526001602052604090205415610ed7576001600160a01b038116600090815260016020526040902054610ebd9061082b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b0381166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191690911790555b50565b6001600160a01b03811660009081526005602052604081205460ff1615610f7d57506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546107bc9061082b565b6000546001600160a01b03163314610fc95760405162461bcd60e51b81526004016106ea9061250d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461103d5760405162461bcd60e51b81526004016106ea9061250d565b600a81111561105e5760405162461bcd60e51b81526004016106ea90612542565b600f55565b6060600b80546107289061266c565b60006107b8338461081c85604051806060016040528060258152602001612716602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061172e565b60006107b83384846114de565b6000546001600160a01b031633146110f85760405162461bcd60e51b81526004016106ea9061250d565b601580548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061114190831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111765760405162461bcd60e51b81526004016106ea9061250d565b61119660646111908360075461187a90919063ffffffff16565b9061178b565b60145550565b6000546001600160a01b031633146111c65760405162461bcd60e51b81526004016106ea9061250d565b8015611222576007546014556000600d819055600e819055600f81905560108190556015805460ff191690556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990602001611141565b6a084595161401484a0000006014556003600d819055600e556005600f8190556010556015805460ff191660019081179091556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990602001611141565b6000546001600160a01b031633146112af5760405162461bcd60e51b81526004016106ea9061250d565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146112fa5760405162461bcd60e51b81526004016106ea9061250d565b6001600160a01b03811661135f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ea565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661141c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ea565b6001600160a01b03821661147d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ea565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ea565b6001600160a01b0382166115a45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ea565b6012546000906001600160a01b03858116911614806115d057506012546001600160a01b038481169116145b1561166d576000546001600160a01b0385811691161480159061160157506000546001600160a01b03848116911614155b1561166d576014548211156116695760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016106ea565b5060015b6001600160a01b03841660009081526004602052604090205460ff16806116ac57506001600160a01b03831660009081526004602052604090205460ff165b156116b5575060005b60006116c030610f40565b601354909150811080159081906116da575060155460ff16155b80156116f457506012546001600160a01b03878116911614155b80156117075750601554610100900460ff165b1561171a57601354915061171a826118f9565b61172686868686611997565b505050505050565b600081848411156117525760405162461bcd60e51b81526004016106ea91906124ba565b50600061175f8486612655565b95945050505050565b6000806000611775611ac2565b9092509050611784828261178b565b9250505090565b60006108a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c7c565b6000806117da83856125fe565b9050838110156108a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106ea565b60008060008060008060008060006118438a611caa565b92509250925060008060006118608d8661185b611768565b611cec565b919f909e50909c50959a5093985091965092945050505050565b600082611889575060006107bc565b60006118958385612636565b9050826118a28583612616565b146108a85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106ea565b6015805460ff19166001179055600061191382600261178b565b905060006119218383611d28565b90504761192d83611d6a565b60006119394783611d28565b90506119458382611ee7565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506015805460ff19169055505050565b806119a4576119a4611fa7565b6001600160a01b03841660009081526005602052604090205460ff1680156119e557506001600160a01b03831660009081526005602052604090205460ff16155b156119fa576119f5848484611fd5565b611aa6565b6001600160a01b03841660009081526005602052604090205460ff16158015611a3b57506001600160a01b03831660009081526005602052604090205460ff165b15611a4b576119f58484846120fb565b6001600160a01b03841660009081526005602052604090205460ff168015611a8b57506001600160a01b03831660009081526005602052604090205460ff165b15611a9b576119f58484846121a4565b611aa6848484612217565b80611abc57611abc600e54600d55601054600f55565b50505050565b6008546007546000918291825b600654811015611c4c57826001600060068481548110611aff57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611b785750816002600060068481548110611b5157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611b8e57600854600754945094505050509091565b611be26001600060068481548110611bb657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611d28565b9250611c386002600060068481548110611c0c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611d28565b915080611c44816126a7565b915050611acf565b50600754600854611c5c9161178b565b821015611c73576008546007549350935050509091565b90939092509050565b60008183611c9d5760405162461bcd60e51b81526004016106ea91906124ba565b50600061175f8486612616565b600080600080611cb98561225b565b90506000611cc686612277565b90506000611cde82611cd88986611d28565b90611d28565b979296509094509092505050565b6000808080611cfb878661187a565b90506000611d09878761187a565b90506000611d178383611d28565b929992985090965090945050505050565b60006108a883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061172e565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611dad57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611e0157600080fd5b505afa158015611e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e399190612371565b81600181518110611e5a57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601154611e8091309116846113ba565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790611eb990859060009086903090429060040161258e565b600060405180830381600087803b158015611ed357600080fd5b505af1158015611726573d6000803e3d6000fd5b601154611eff9030906001600160a01b0316846113ba565b60115460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b158015611f6757600080fd5b505af1158015611f7b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fa0919061248d565b5050505050565b600d54158015611fb75750600f54155b15611fbe57565b600d8054600e55600f805460105560009182905555565b600080600080600080611fe78761182c565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506120199088611d28565b6001600160a01b038a166000908152600260209081526040808320939093556001905220546120489087611d28565b6001600160a01b03808b1660009081526001602052604080822093909355908a168152205461207790866117cd565b6001600160a01b03891660009081526001602052604090205561209a8483612293565b6120a3816122b7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120e891815260200190565b60405180910390a3505050505050505050565b60008060008060008061210d8761182c565b6001600160a01b038f16600090815260016020526040902054959b5093995091975095509350915061213f9087611d28565b6001600160a01b03808b16600090815260016020908152604080832094909455918b1681526002909152205461217590846117cd565b6001600160a01b03891660009081526002602090815260408083209390935560019052205461207790866117cd565b6000806000806000806121b68761182c565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506121e89088611d28565b6001600160a01b038a1660009081526002602090815260408083209390935560019052205461213f9087611d28565b6000806000806000806122298761182c565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506120489087611d28565b60006107bc6064611190600d548561187a90919063ffffffff16565b60006107bc6064611190600f548561187a90919063ffffffff16565b6008546122a09083611d28565b6008556009546122b090826117cd565b6009555050565b60006122c1611768565b905060006122cf838361187a565b306000908152600160205260409020549091506122ec90826117cd565b3060009081526001602090815260408083209390935560059052205460ff161561233b573060009081526002602052604090205461232a90846117cd565b306000908152600260205260409020555b505050565b8035801515811461235057600080fd5b919050565b600060208284031215612366578081fd5b81356108a8816126d8565b600060208284031215612382578081fd5b81516108a8816126d8565b6000806040838503121561239f578081fd5b82356123aa816126d8565b915060208301356123ba816126d8565b809150509250929050565b6000806000606084860312156123d9578081fd5b83356123e4816126d8565b925060208401356123f4816126d8565b929592945050506040919091013590565b60008060408385031215612417578182fd5b8235612422816126d8565b946020939093013593505050565b600060208284031215612441578081fd5b6108a882612340565b60006020828403121561245b578081fd5b5035919050565b60008060408385031215612474578182fd5b8235915061248460208401612340565b90509250929050565b6000806000606084860312156124a1578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156124e6578581018301518582016040015282016124ca565b818111156124f75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602c908201527f50657263656e7461676520746f6f20686967682e20506c65617365207573652060408201526b30903637bbb2b9103332b29760a11b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156125dd5784516001600160a01b0316835293830193918301916001016125b8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612611576126116126c2565b500190565b60008261263157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612650576126506126c2565b500290565b600082821015612667576126676126c2565b500390565b600181811c9082168061268057607f821691505b602082108114156126a157634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156126bb576126bb6126c2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610f3d57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220737a9ba5aa7a9fbe68202cf749c30f1be7853db178ac4162383d53121d56aa1864736f6c63430008040033

Deployed ByteCode Sourcemap

9032:17289:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15321:176;;;;;;;;;;-1:-1:-1;15321:176:0;;;;;:::i;:::-;;:::i;:::-;;11275:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12187:161;;;;;;;;;;-1:-1:-1;12187:161:0;;;;;:::i;:::-;;:::i;:::-;;;4179:14:1;;4172:22;4154:41;;4142:2;4127:18;12187:161:0;4109:92:1;13308:87:0;;;;;;;;;;-1:-1:-1;13377:10:0;;13308:87;;;10692:25:1;;;10680:2;10665:18;13308:87:0;10647:76:1;9955:41:0;;;;;;;;;;-1:-1:-1;9955:41:0;;;;-1:-1:-1;;;;;9955:41:0;;;;;;-1:-1:-1;;;;;3049:32:1;;;3031:51;;3019:2;3004:18;9955:41:0;2986:102:1;11552:95:0;;;;;;;;;;-1:-1:-1;11632:7:0;;11552:95;;12356:313;;;;;;;;;;-1:-1:-1;12356:313:0;;;;;:::i;:::-;;:::i;13847:253::-;;;;;;;;;;-1:-1:-1;13847:253:0;;;;;:::i;:::-;;:::i;11461:83::-;;;;;;;;;;-1:-1:-1;11527:9:0;;11461:83;;11527:9;;;;12182:36:1;;12170:2;12155:18;11461:83:0;12137:87:1;14599:477:0;;;;;;;;;;-1:-1:-1;14599:477:0;;;;;:::i;:::-;;:::i;12677:218::-;;;;;;;;;;-1:-1:-1;12677:218:0;;;;;:::i;:::-;;:::i;9771:26::-;;;;;;;;;;;;;;;;22965:320;;;;;;;;;;-1:-1:-1;22965:320:0;;;;;:::i;:::-;;:::i;15084:111::-;;;;;;;;;;-1:-1:-1;15084:111:0;;;;;:::i;:::-;;:::i;13403:436::-;;;;;;;;;;-1:-1:-1;13403:436:0;;;;;:::i;:::-;;:::i;10003:28::-;;;;;;;;;;-1:-1:-1;10003:28:0;;;;-1:-1:-1;;;;;10003:28:0;;;10195:40;;;;;;;;;;-1:-1:-1;10195:40:0;;;;;;;;;;;14108:483;;;;;;;;;;-1:-1:-1;14108:483:0;;;;;:::i;:::-;;:::i;19169:123::-;;;;;;;;;;-1:-1:-1;19169:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;19257:27:0;19233:4;19257:27;;;:18;:27;;;;;;;;;19169:123;9854:32;;;;;;;;;;;;;;;;11655:198;;;;;;;;;;-1:-1:-1;11655:198:0;;;;;:::i;:::-;;:::i;3112:148::-;;;;;;;;;;;;;:::i;10111:47::-;;;;;;;;;;;;;;;;13180:120;;;;;;;;;;-1:-1:-1;13180:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;13272:20:0;13248:4;13272:20;;;:11;:20;;;;;;;;;13180:120;2889:87;;;;;;;;;;-1:-1:-1;2935:7:0;2962:6;-1:-1:-1;;;;;2962:6:0;2889:87;;15505:206;;;;;;;;;;-1:-1:-1;15505:206:0;;;;;:::i;:::-;;:::i;11366:87::-;;;;;;;;;;;;;:::i;12903:269::-;;;;;;;;;;-1:-1:-1;12903:269:0;;;;;:::i;:::-;;:::i;11861:167::-;;;;;;;;;;-1:-1:-1;11861:167:0;;;;;:::i;:::-;;:::i;15719:171::-;;;;;;;;;;-1:-1:-1;15719:171:0;;;;;:::i;:::-;;:::i;15898:160::-;;;;;;;;;;-1:-1:-1;15898:160:0;;;;;:::i;:::-;;:::i;25621:695::-;;;;;;;;;;-1:-1:-1;25621:695:0;;;;;:::i;:::-;;:::i;12036:143::-;;;;;;;;;;-1:-1:-1;12036:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;12144:18:0;;;12117:7;12144:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12036:143;15203:110;;;;;;;;;;-1:-1:-1;15203:110:0;;;;;:::i;:::-;;:::i;3268:244::-;;;;;;;;;;-1:-1:-1;3268:244:0;;;;;:::i;:::-;;:::i;15321:176::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;;;;;;;;;15411:2:::1;15401:6;:12;;15393:69;;;;-1:-1:-1::0;;;15393:69:0::1;;;;;;;:::i;:::-;15473:7;:16:::0;15321:176::o;11275:83::-;11312:13;11345:5;11338:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11275:83;:::o;12187:161::-;12262:4;12279:39;180:10;12302:7;12311:6;12279:8;:39::i;:::-;-1:-1:-1;12336:4:0;12187:161;;;;;:::o;12356:313::-;12454:4;12471:36;12481:6;12489:9;12500:6;12471:9;:36::i;:::-;12518:121;12527:6;180:10;12549:89;12587:6;12549:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12549:19:0;;;;;;:11;:19;;;;;;;;180:10;12549:33;;;;;;;;;;:37;:89::i;:::-;12518:8;:121::i;:::-;-1:-1:-1;12657:4:0;12356:313;;;;;:::o;13847:253::-;13913:7;13952;;13941;:18;;13933:73;;;;-1:-1:-1;;;13933:73:0;;5654:2:1;13933:73:0;;;5636:21:1;5693:2;5673:18;;;5666:30;5732:34;5712:18;;;5705:62;-1:-1:-1;;;5783:18:1;;;5776:40;5833:19;;13933:73:0;5626:232:1;13933:73:0;14017:19;14040:10;:8;:10::i;:::-;14017:33;-1:-1:-1;14068:24:0;:7;14017:33;14068:11;:24::i;:::-;14061:31;13847:253;-1:-1:-1;;;13847:253:0:o;14599:477::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14679:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;14671:60;;;::::0;-1:-1:-1;;;14671:60:0;;7636:2:1;14671:60:0::1;::::0;::::1;7618:21:1::0;7675:2;7655:18;;;7648:30;7714:29;7694:18;;;7687:57;7761:18;;14671:60:0::1;7608:177:1::0;14671:60:0::1;14747:9;14742:327;14766:9;:16:::0;14762:20;::::1;14742:327;;;14824:7;-1:-1:-1::0;;;;;14808:23:0::1;:9;14818:1;14808:12;;;;;;-1:-1:-1::0;;;14808:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;14808:12:0::1;:23;14804:254;;;14867:9;14877:16:::0;;:20:::1;::::0;14896:1:::1;::::0;14877:20:::1;:::i;:::-;14867:31;;;;;;-1:-1:-1::0;;;14867:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;14852:9:::1;:12:::0;;-1:-1:-1;;;;;14867:31:0;;::::1;::::0;14862:1;;14852:12;::::1;;;-1:-1:-1::0;;;14852:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;14852:46:0::1;-1:-1:-1::0;;;;;14852:46:0;;::::1;;::::0;;14917:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;14956:11:::1;:20:::0;;;;:28;;-1:-1:-1;;14956:28:0::1;::::0;;15003:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;15003:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15003:15:0;;;;;-1:-1:-1;;;;;;15003:15:0::1;::::0;;;;;14742:327:::1;14599:477:::0;:::o;14804:254::-:1;14784:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14742:327;;;;14599:477:::0;:::o;12677:218::-;180:10;12765:4;12814:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12814:34:0;;;;;;;;;;12765:4;;12782:83;;12805:7;;12814:50;;12853:10;12814:38;:50::i;22965:320::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;23038:36:::1;23096:9;23038:68;;23151:17;-1:-1:-1::0;;;;;23151:25:0::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23133:57:0::1;;23199:4;23206:17;-1:-1:-1::0;;;;;23206:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23133:98;::::0;-1:-1:-1;;;;;;23133:98:0::1;::::0;;;;;;-1:-1:-1;;;;;3323:15:1;;;23133:98:0::1;::::0;::::1;3305:34:1::0;3375:15;;3355:18;;;3348:43;3240:18;;23133:98:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23117:13;:114:::0;;-1:-1:-1;;;;;23117:114:0;;::::1;-1:-1:-1::0;;;;;;23117:114:0;;::::1;;::::0;;;23242:15:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;22965:320:0:o;15084:111::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15153:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;15153:34:0::1;15183:4;15153:34;::::0;;15084:111::o;13403:436::-;13493:7;13532;;13521;:18;;13513:62;;;;-1:-1:-1;;;13513:62:0;;7992:2:1;13513:62:0;;;7974:21:1;8031:2;8011:18;;;8004:30;8070:33;8050:18;;;8043:61;8121:18;;13513:62:0;7964:181:1;13513:62:0;13591:17;13586:246;;13626:15;13650:19;13661:7;13650:10;:19::i;:::-;-1:-1:-1;13625:44:0;;-1:-1:-1;13684:14:0;;-1:-1:-1;;;;;13684:14:0;13586:246;13733:23;13764:19;13775:7;13764:10;:19::i;:::-;-1:-1:-1;13731:52:0;;-1:-1:-1;13798:22:0;;-1:-1:-1;;;;;13798:22:0;14108:483;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;14188:9:::1;:16:::0;14208:2:::1;-1:-1:-1::0;14188:22:0::1;14180:71;;;::::0;-1:-1:-1;;;14180:71:0;;6065:2:1;14180:71:0::1;::::0;::::1;6047:21:1::0;6104:2;6084:18;;;6077:30;6143:34;6123:18;;;6116:62;-1:-1:-1;;;6194:18:1;;;6187:34;6238:19;;14180:71:0::1;6037:226:1::0;14180:71:0::1;-1:-1:-1::0;;;;;14271:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;14270:21;14262:61;;;::::0;-1:-1:-1;;;14262:61:0;;7636:2:1;14262:61:0::1;::::0;::::1;7618:21:1::0;7675:2;7655:18;;;7648:30;7714:29;7694:18;;;7687:57;7761:18;;14262:61:0::1;7608:177:1::0;14262:61:0::1;14338:9;:16:::0;14358:1:::1;-1:-1:-1::0;14334:250:0::1;;-1:-1:-1::0;;;;;14380:16:0;::::1;14399:1;14380:16:::0;;;:7:::1;:16;::::0;;;;;:20;14376:117:::1;;-1:-1:-1::0;;;;;14460:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;14440:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;14421:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;14376:117:::1;-1:-1:-1::0;;;;;14507:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;14507:27:0::1;14530:4;14507:27:::0;;::::1;::::0;;;14549:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;14549:23:0::1;::::0;;::::1;::::0;;14334:250:::1;14108:483:::0;:::o;11655:198::-;-1:-1:-1;;;;;11745:20:0;;11721:7;11745:20;;;:11;:20;;;;;;;;11741:49;;;-1:-1:-1;;;;;;11774:16:0;;;;;:7;:16;;;;;;;11655:198::o;11741:49::-;-1:-1:-1;;;;;11828:16:0;;;;;;:7;:16;;;;;;11808:37;;:19;:37::i;3112:148::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;3219:1:::1;3203:6:::0;;3182:40:::1;::::0;-1:-1:-1;;;;;3203:6:0;;::::1;::::0;3182:40:::1;::::0;3219:1;;3182:40:::1;3250:1;3233:19:::0;;-1:-1:-1;;;;;;3233:19:0::1;::::0;;3112:148::o;15505:206::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;15613:2:::1;15597:12;:18;;15589:75;;;;-1:-1:-1::0;;;15589:75:0::1;;;;;;;:::i;:::-;15675:13;:28:::0;15505:206::o;11366:87::-;11405:13;11438:7;11431:14;;;;;:::i;12903:269::-;12996:4;13013:129;180:10;13036:7;13045:96;13084:15;13045:96;;;;;;;;;;;;;;;;;180:10;13045:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13045:34:0;;;;;;;;;;;;:38;:96::i;11861:167::-;11939:4;11956:42;180:10;11980:9;11991:6;11956:9;:42::i;15719:171::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;15796:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;15796:32:0;;::::1;;::::0;;15844:38:::1;::::0;::::1;::::0;::::1;::::0;15820:8;4179:14:1;4172:22;4154:41;;4142:2;4127:18;;4109:92;15844:38:0::1;;;;;;;;15719:171:::0;:::o;15898:160::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;15990:60:::1;16034:5;15990:25;16002:12;15990:7;;:11;;:25;;;;:::i;:::-;:29:::0;::::1;:60::i;:::-;15975:12;:75:::0;-1:-1:-1;15898:160:0:o;25621:695::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;25700:7:::1;25696:613;;;25739:7;::::0;25724:12:::1;:22:::0;-1:-1:-1;25761:7:0::1;:11:::0;;;25787:15:::1;:25:::0;;;25827:13:::1;:17:::0;;;25859:21:::1;:37:::0;;;25911:16:::1;:24:::0;;-1:-1:-1;;25911:24:0::1;::::0;;25955:35:::1;::::0;4154:41:1;;;25955:35:0::1;::::0;4142:2:1;4127:18;25955:35:0::1;4109:92:1::0;25696:613:0::1;26038:17;26023:12;:32:::0;26080:1:::1;26070:7;:11:::0;;;26096:15:::1;:25:::0;26152:1:::1;26136:13;:17:::0;;;26168:21:::1;:37:::0;26220:16:::1;:23:::0;;-1:-1:-1;;26220:23:0::1;26239:4;26220:23:::0;;::::1;::::0;;;26263:34:::1;::::0;4154:41:1;;;26263:34:0::1;::::0;4142:2:1;4127:18;26263:34:0::1;4109:92:1::0;15203:110:0;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15270:27:0::1;15300:5;15270:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;15270:35:0::1;::::0;;15203:110::o;3268:244::-;2935:7;2962:6;-1:-1:-1;;;;;2962:6:0;180:10;3024:23;3016:68;;;;-1:-1:-1;;;3016:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3357:22:0;::::1;3349:73;;;::::0;-1:-1:-1;;;3349:73:0;;6470:2:1;3349:73:0::1;::::0;::::1;6452:21:1::0;6509:2;6489:18;;;6482:30;6548:34;6528:18;;;6521:62;-1:-1:-1;;;6599:18:1;;;6592:36;6645:19;;3349:73:0::1;6442:228:1::0;3349:73:0::1;3459:6;::::0;;3438:38:::1;::::0;-1:-1:-1;;;;;3438:38:0;;::::1;::::0;3459:6;::::1;::::0;3438:38:::1;::::0;::::1;3487:6;:17:::0;;-1:-1:-1;;;;;;3487:17:0::1;-1:-1:-1::0;;;;;3487:17:0;;;::::1;::::0;;;::::1;::::0;;3268:244::o;19300:337::-;-1:-1:-1;;;;;19393:19:0;;19385:68;;;;-1:-1:-1;;;19385:68:0;;9930:2:1;19385:68:0;;;9912:21:1;9969:2;9949:18;;;9942:30;10008:34;9988:18;;;9981:62;-1:-1:-1;;;10059:18:1;;;10052:34;10103:19;;19385:68:0;9902:226:1;19385:68:0;-1:-1:-1;;;;;19472:21:0;;19464:68;;;;-1:-1:-1;;;19464:68:0;;6877:2:1;19464:68:0;;;6859:21:1;6916:2;6896:18;;;6889:30;6955:34;6935:18;;;6928:62;-1:-1:-1;;;7006:18:1;;;6999:32;7048:19;;19464:68:0;6849:224:1;19464:68:0;-1:-1:-1;;;;;19545:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19597:32;;10692:25:1;;;19597:32:0;;10665:18:1;19597:32:0;;;;;;;19300:337;;;:::o;19645:1265::-;-1:-1:-1;;;;;19767:18:0;;19759:68;;;;-1:-1:-1;;;19759:68:0;;9524:2:1;19759:68:0;;;9506:21:1;9563:2;9543:18;;;9536:30;9602:34;9582:18;;;9575:62;-1:-1:-1;;;9653:18:1;;;9646:35;9698:19;;19759:68:0;9496:227:1;19759:68:0;-1:-1:-1;;;;;19846:16:0;;19838:64;;;;-1:-1:-1;;;19838:64:0;;5250:2:1;19838:64:0;;;5232:21:1;5289:2;5269:18;;;5262:30;5328:34;5308:18;;;5301:62;-1:-1:-1;;;5379:18:1;;;5372:33;5422:19;;19838:64:0;5222:225:1;19838:64:0;20035:13;;19990:12;;-1:-1:-1;;;;;20027:21:0;;;20035:13;;20027:21;;:44;;-1:-1:-1;20058:13:0;;-1:-1:-1;;;;;20052:19:0;;;20058:13;;20052:19;20027:44;20023:257;;;2935:7;2962:6;-1:-1:-1;;;;;20092:15:0;;;2962:6;;20092:15;;;;:32;;-1:-1:-1;2935:7:0;2962:6;-1:-1:-1;;;;;20111:13:0;;;2962:6;;20111:13;;20092:32;20088:181;;;20163:12;;20153:6;:22;;20145:75;;;;-1:-1:-1;;;20145:75:0;;8352:2:1;20145:75:0;;;8334:21:1;8391:2;8371:18;;;8364:30;8430:34;8410:18;;;8403:62;-1:-1:-1;;;8481:18:1;;;8474:38;8529:19;;20145:75:0;8324:230:1;20145:75:0;-1:-1:-1;20249:4:0;20088:181;-1:-1:-1;;;;;20295:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;20323:22:0;;;;;;:18;:22;;;;;;;;20295:50;20292:97;;;-1:-1:-1;20372:5:0;20292:97;20401:28;20432:24;20450:4;20432:9;:24::i;:::-;20520:29;;20401:55;;-1:-1:-1;20496:53:0;;;;;;;20578;;-1:-1:-1;20615:16:0;;;;20614:17;20578:53;:91;;;;-1:-1:-1;20656:13:0;;-1:-1:-1;;;;;20648:21:0;;;20656:13;;20648:21;;20578:91;:129;;;;-1:-1:-1;20686:21:0;;;;;;;20578:129;20560:289;;;20757:29;;20734:52;;20801:36;20816:20;20801:14;:36::i;:::-;20861:41;20876:4;20882:2;20886:6;20894:7;20861:14;:41::i;:::-;19645:1265;;;;;;:::o;1373:192::-;1459:7;1495:12;1487:6;;;;1479:29;;;;-1:-1:-1;;;1479:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1519:9:0;1531:5;1535:1;1531;:5;:::i;:::-;1519:17;1373:192;-1:-1:-1;;;;;1373:192:0:o;17359:163::-;17400:7;17421:15;17438;17457:19;:17;:19::i;:::-;17420:56;;-1:-1:-1;17420:56:0;-1:-1:-1;17494:20:0;17420:56;;17494:11;:20::i;:::-;17487:27;;;;17359:163;:::o;1833:132::-;1891:7;1918:39;1922:1;1925;1918:39;;;;;;;;;;;;;;;;;:3;:39::i;1040:181::-;1098:7;;1130:5;1134:1;1130;:5;:::i;:::-;1118:17;;1159:1;1154;:6;;1146:46;;;;-1:-1:-1;;;1146:46:0;;7280:2:1;1146:46:0;;;7262:21:1;7319:2;7299:18;;;7292:30;7358:29;7338:18;;;7331:57;7405:18;;1146:46:0;7252:177:1;16264:407:0;16323:7;16332;16341;16350;16359;16368;16389:23;16414:12;16428:18;16450:20;16462:7;16450:11;:20::i;:::-;16388:82;;;;;;16482:15;16499:23;16524:12;16540:38;16552:7;16561:4;16567:10;:8;:10::i;:::-;16540:11;:38::i;:::-;16481:97;;;;-1:-1:-1;16481:97:0;;-1:-1:-1;16629:15:0;;-1:-1:-1;16646:4:0;;-1:-1:-1;16652:10:0;;-1:-1:-1;16264:407:0;;-1:-1:-1;;;;;16264:407:0:o;1573:250::-;1631:7;1655:6;1651:47;;-1:-1:-1;1685:1:0;1678:8;;1651:47;1710:9;1722:5;1726:1;1722;:5;:::i;:::-;1710:17;-1:-1:-1;1755:1:0;1746:5;1750:1;1710:17;1746:5;:::i;:::-;:10;1738:56;;;;-1:-1:-1;;;1738:56:0;;8761:2:1;1738:56:0;;;8743:21:1;8800:2;8780:18;;;8773:30;8839:34;8819:18;;;8812:62;-1:-1:-1;;;8890:18:1;;;8883:31;8931:19;;1738:56:0;8733:223:1;20918:474:0;10524:16;:23;;-1:-1:-1;;10524:23:0;10543:4;10524:23;;;:16;21018:27:::1;:20:::0;21043:1:::1;21018:24;:27::i;:::-;21003:42:::0;-1:-1:-1;21056:17:0::1;21076:30;:20:::0;21003:42;21076:24:::1;:30::i;:::-;21056:50:::0;-1:-1:-1;21144:21:0::1;21178:22;21195:4:::0;21178:16:::1;:22::i;:::-;21213:18;21234:41;:21;21260:14:::0;21234:25:::1;:41::i;:::-;21213:62;;21288:35;21301:9;21312:10;21288:12;:35::i;:::-;21341:43;::::0;;11918:25:1;;;11974:2;11959:18;;11952:34;;;12002:18;;;11995:34;;;21341:43:0::1;::::0;11906:2:1;11891:18;21341:43:0::1;;;;;;;-1:-1:-1::0;;10570:16:0;:24;;-1:-1:-1;;10570:24:0;;;-1:-1:-1;;;20918:474:0:o;22265:688::-;22376:7;22372:40;;22398:14;:12;:14::i;:::-;-1:-1:-1;;;;;22429:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;22453:22:0;;;;;;:11;:22;;;;;;;;22452:23;22429:46;22425:467;;;22492:48;22514:6;22522:9;22533:6;22492:21;:48::i;:::-;22425:467;;;-1:-1:-1;;;;;22563:19:0;;;;;;:11;:19;;;;;;;;22562:20;:46;;;;-1:-1:-1;;;;;;22586:22:0;;;;;;:11;:22;;;;;;;;22562:46;22558:334;;;22625:46;22645:6;22653:9;22664:6;22625:19;:46::i;22558:334::-;-1:-1:-1;;;;;22693:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;22716:22:0;;;;;;:11;:22;;;;;;;;22693:45;22689:203;;;22755:48;22777:6;22785:9;22796:6;22755:21;:48::i;22689:203::-;22836:44;22854:6;22862:9;22873:6;22836:17;:44::i;:::-;22908:7;22904:41;;22930:15;19090;;19080:7;:25;19132:21;;19116:13;:37;19036:125;22930:15;22265:688;;;;:::o;17530:555::-;17627:7;;17663;;17580;;;;;17681:289;17705:9;:16;17701:20;;17681:289;;;17771:7;17747;:21;17755:9;17765:1;17755:12;;;;;;-1:-1:-1;;;17755:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17755:12:0;17747:21;;;;;;;;;;;;;:31;;:66;;;17806:7;17782;:21;17790:9;17800:1;17790:12;;;;;;-1:-1:-1;;;17790:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17790:12:0;17782:21;;;;;;;;;;;;;:31;17747:66;17743:97;;;17823:7;;17832;;17815:25;;;;;;;17530:555;;:::o;17743:97::-;17865:34;17877:7;:21;17885:9;17895:1;17885:12;;;;;;-1:-1:-1;;;17885:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17885:12:0;17877:21;;;;;;;;;;;;;17865:7;;:11;:34::i;:::-;17855:44;;17924:34;17936:7;:21;17944:9;17954:1;17944:12;;;;;;-1:-1:-1;;;17944:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17944:12:0;17936:21;;;;;;;;;;;;;17924:7;;:11;:34::i;:::-;17914:44;-1:-1:-1;17723:3:0;;;;:::i;:::-;;;;17681:289;;;-1:-1:-1;18006:7:0;;17994;;:20;;:11;:20::i;:::-;17984:7;:30;17980:61;;;18024:7;;18033;;18016:25;;;;;;17530:555;;:::o;17980:61::-;18060:7;;18069;;-1:-1:-1;17530:555:0;-1:-1:-1;17530:555:0:o;1973:278::-;2059:7;2094:12;2087:5;2079:28;;;;-1:-1:-1;;;2079:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2118:9:0;2130:5;2134:1;2130;:5;:::i;16679:330::-;16739:7;16748;16757;16777:12;16792:24;16808:7;16792:15;:24::i;:::-;16777:39;;16827:18;16848:30;16870:7;16848:21;:30::i;:::-;16827:51;-1:-1:-1;16889:23:0;16915:33;16827:51;16915:17;:7;16927:4;16915:11;:17::i;:::-;:21;;:33::i;:::-;16889:59;16984:4;;-1:-1:-1;16990:10:0;;-1:-1:-1;16679:330:0;;-1:-1:-1;;;16679:330:0:o;17017:334::-;17112:7;;;;17168:24;:7;17180:11;17168;:24::i;:::-;17150:42;-1:-1:-1;17203:12:0;17218:21;:4;17227:11;17218:8;:21::i;:::-;17203:36;-1:-1:-1;17250:23:0;17276:17;:7;17203:36;17276:11;:17::i;:::-;17312:7;;;;-1:-1:-1;17338:4:0;;-1:-1:-1;17017:334:0;;-1:-1:-1;;;;;17017:334:0:o;1229:136::-;1287:7;1314:43;1318:1;1321;1314:43;;;;;;;;;;;;;;;;;:3;:43::i;21406:475::-;21496:16;;;21510:1;21496:16;;;;;;;;21472:21;;21496:16;;;;;;;;;;-1:-1:-1;21496:16:0;21472:40;;21541:4;21523;21528:1;21523:7;;;;;;-1:-1:-1;;;21523:7:0;;;;;;;;;-1:-1:-1;;;;;21523:23:0;;;:7;;;;;;;;;;:23;;;;21567:15;;:22;;;-1:-1:-1;;;21567:22:0;;;;:15;;;;;:20;;:22;;;;;21523:7;;21567:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21557:4;21562:1;21557:7;;;;;;-1:-1:-1;;;21557:7:0;;;;;;;;;-1:-1:-1;;;;;21557:32:0;;;:7;;;;;;;;;:32;21634:15;;21602:62;;21619:4;;21634:15;21652:11;21602:8;:62::i;:::-;21677:15;;:196;;-1:-1:-1;;;21677:196:0;;-1:-1:-1;;;;;21677:15:0;;;;:66;;:196;;21758:11;;21677:15;;21800:4;;21827;;21847:15;;21677:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21889:368;22002:15;;21970:62;;21987:4;;-1:-1:-1;;;;;22002:15:0;22020:11;21970:8;:62::i;:::-;22045:15;;:204;;-1:-1:-1;;;22045:204:0;;22117:4;22045:204;;;3743:34:1;;;3793:18;;;3786:34;;;22045:15:0;3836:18:1;;;3829:34;;;3879:18;;;3872:34;3922:19;;;3915:44;22223:15:0;3975:19:1;;;3968:35;-1:-1:-1;;;;;22045:15:0;;;;:31;;22084:9;;3677:19:1;;22045:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21889:368;;:::o;18794:234::-;18840:7;;:12;:34;;;;-1:-1:-1;18856:13:0;;:18;18840:34;18837:46;;;18794:234::o;18837:46::-;18913:7;;;18895:15;:25;18955:13;;;18931:21;:37;-1:-1:-1;18981:11:0;;;;19003:17;18794:234::o;24397:566::-;24500:15;24517:23;24542:12;24556:23;24581:12;24595:18;24617:19;24628:7;24617:10;:19::i;:::-;-1:-1:-1;;;;;24665:15:0;;;;;;:7;:15;;;;;;24499:137;;-1:-1:-1;24499:137:0;;-1:-1:-1;24499:137:0;;-1:-1:-1;24499:137:0;-1:-1:-1;24499:137:0;-1:-1:-1;24499:137:0;-1:-1:-1;24665:28:0;;24685:7;24665:19;:28::i;:::-;-1:-1:-1;;;;;24647:15:0;;;;;;:7;:15;;;;;;;;:46;;;;24722:7;:15;;;;:28;;24742:7;24722:19;:28::i;:::-;-1:-1:-1;;;;;24704:15:0;;;;;;;:7;:15;;;;;;:46;;;;24782:18;;;;;;;:39;;24805:15;24782:22;:39::i;:::-;-1:-1:-1;;;;;24761:18:0;;;;;;:7;:18;;;;;:60;24835:23;24847:4;24853;24835:11;:23::i;:::-;24869:26;24884:10;24869:14;:26::i;:::-;24928:9;-1:-1:-1;;;;;24911:44:0;24920:6;-1:-1:-1;;;;;24911:44:0;;24939:15;24911:44;;;;10692:25:1;;10680:2;10665:18;;10647:76;24911:44:0;;;;;;;;24397:566;;;;;;;;;:::o;23803:586::-;23904:15;23921:23;23946:12;23960:23;23985:12;23999:18;24021:19;24032:7;24021:10;:19::i;:::-;-1:-1:-1;;;;;24069:15:0;;;;;;:7;:15;;;;;;23903:137;;-1:-1:-1;23903:137:0;;-1:-1:-1;23903:137:0;;-1:-1:-1;23903:137:0;-1:-1:-1;23903:137:0;-1:-1:-1;23903:137:0;-1:-1:-1;24069:28:0;;23903:137;24069:19;:28::i;:::-;-1:-1:-1;;;;;24051:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;24129:18;;;;;:7;:18;;;;;:39;;24152:15;24129:22;:39::i;:::-;-1:-1:-1;;;;;24108:18:0;;;;;;:7;:18;;;;;;;;:60;;;;24200:7;:18;;;;:39;;24223:15;24200:22;:39::i;24971:642::-;25074:15;25091:23;25116:12;25130:23;25155:12;25169:18;25191:19;25202:7;25191:10;:19::i;:::-;-1:-1:-1;;;;;25239:15:0;;;;;;:7;:15;;;;;;25073:137;;-1:-1:-1;25073:137:0;;-1:-1:-1;25073:137:0;;-1:-1:-1;25073:137:0;-1:-1:-1;25073:137:0;-1:-1:-1;25073:137:0;-1:-1:-1;25239:28:0;;25259:7;25239:19;:28::i;:::-;-1:-1:-1;;;;;25221:15:0;;;;;;:7;:15;;;;;;;;:46;;;;25296:7;:15;;;;:28;;25316:7;25296:19;:28::i;23293:502::-;23392:15;23409:23;23434:12;23448:23;23473:12;23487:18;23509:19;23520:7;23509:10;:19::i;:::-;-1:-1:-1;;;;;23557:15:0;;;;;;:7;:15;;;;;;23391:137;;-1:-1:-1;23391:137:0;;-1:-1:-1;23391:137:0;;-1:-1:-1;23391:137:0;-1:-1:-1;23391:137:0;-1:-1:-1;23391:137:0;-1:-1:-1;23557:28:0;;23391:137;23557:19;:28::i;18456:154::-;18520:7;18547:55;18586:5;18547:20;18559:7;;18547;:11;;:20;;;;:::i;18618:166::-;18688:7;18715:61;18760:5;18715:26;18727:13;;18715:7;:11;;:26;;;;:::i;16109:147::-;16187:7;;:17;;16199:4;16187:11;:17::i;:::-;16177:7;:27;16228:10;;:20;;16243:4;16228:14;:20::i;:::-;16215:10;:33;-1:-1:-1;;16109:147:0:o;18093:355::-;18156:19;18179:10;:8;:10::i;:::-;18156:33;-1:-1:-1;18200:18:0;18221:27;:10;18156:33;18221:14;:27::i;:::-;18300:4;18284:22;;;;:7;:22;;;;;;18200:48;;-1:-1:-1;18284:38:0;;18200:48;18284:26;:38::i;:::-;18275:4;18259:22;;;;:7;:22;;;;;;;;:63;;;;18336:11;:26;;;;;;18333:107;;;18418:4;18402:22;;;;:7;:22;;;;;;:38;;18429:10;18402:26;:38::i;:::-;18393:4;18377:22;;;;:7;:22;;;;;:63;18333:107;18093:355;;;:::o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:257::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;312:6;304;297:22;259:2;356:9;343:23;375:31;400:5;375:31;:::i;441:261::-;511:6;564:2;552:9;543:7;539:23;535:32;532:2;;;585:6;577;570:22;532:2;622:9;616:16;641:31;666:5;641:31;:::i;707:398::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:2;;;857:6;849;842:22;804:2;901:9;888:23;920:31;945:5;920:31;:::i;:::-;970:5;-1:-1:-1;1027:2:1;1012:18;;999:32;1040:33;999:32;1040:33;:::i;:::-;1092:7;1082:17;;;794:311;;;;;:::o;1110:466::-;1187:6;1195;1203;1256:2;1244:9;1235:7;1231:23;1227:32;1224:2;;;1277:6;1269;1262:22;1224:2;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;-1:-1:-1;1447:2:1;1432:18;;1419:32;1460:33;1419:32;1460:33;:::i;:::-;1214:362;;1512:7;;-1:-1:-1;;;1566:2:1;1551:18;;;;1538:32;;1214:362::o;1581:325::-;1649:6;1657;1710:2;1698:9;1689:7;1685:23;1681:32;1678:2;;;1731:6;1723;1716:22;1678:2;1775:9;1762:23;1794:31;1819:5;1794:31;:::i;:::-;1844:5;1896:2;1881:18;;;;1868:32;;-1:-1:-1;;;1668:238:1:o;1911:190::-;1967:6;2020:2;2008:9;1999:7;1995:23;1991:32;1988:2;;;2041:6;2033;2026:22;1988:2;2069:26;2085:9;2069:26;:::i;2106:190::-;2165:6;2218:2;2206:9;2197:7;2193:23;2189:32;2186:2;;;2239:6;2231;2224:22;2186:2;-1:-1:-1;2267:23:1;;2176:120;-1:-1:-1;2176:120:1:o;2301:258::-;2366:6;2374;2427:2;2415:9;2406:7;2402:23;2398:32;2395:2;;;2448:6;2440;2433:22;2395:2;2489:9;2476:23;2466:33;;2518:35;2549:2;2538:9;2534:18;2518:35;:::i;:::-;2508:45;;2385:174;;;;;:::o;2564:316::-;2652:6;2660;2668;2721:2;2709:9;2700:7;2696:23;2692:32;2689:2;;;2742:6;2734;2727:22;2689:2;2776:9;2770:16;2760:26;;2826:2;2815:9;2811:18;2805:25;2795:35;;2870:2;2859:9;2855:18;2849:25;2839:35;;2679:201;;;;;:::o;4440:603::-;4552:4;4581:2;4610;4599:9;4592:21;4642:6;4636:13;4685:6;4680:2;4669:9;4665:18;4658:34;4710:4;4723:140;4737:6;4734:1;4731:13;4723:140;;;4832:14;;;4828:23;;4822:30;4798:17;;;4817:2;4794:26;4787:66;4752:10;;4723:140;;;4881:6;4878:1;4875:13;4872:2;;;4951:4;4946:2;4937:6;4926:9;4922:22;4918:31;4911:45;4872:2;-1:-1:-1;5027:2:1;5006:15;-1:-1:-1;;5002:29:1;4987:45;;;;5034:2;4983:54;;4561:482;-1:-1:-1;;;4561:482:1:o;8961:356::-;9163:2;9145:21;;;9182:18;;;9175:30;9241:34;9236:2;9221:18;;9214:62;9308:2;9293:18;;9135:182::o;10133:408::-;10335:2;10317:21;;;10374:2;10354:18;;;10347:30;10413:34;10408:2;10393:18;;10386:62;-1:-1:-1;;;10479:2:1;10464:18;;10457:42;10531:3;10516:19;;10307:234::o;10728:983::-;10990:4;11038:3;11027:9;11023:19;11069:6;11058:9;11051:25;11095:2;11133:6;11128:2;11117:9;11113:18;11106:34;11176:3;11171:2;11160:9;11156:18;11149:31;11200:6;11235;11229:13;11266:6;11258;11251:22;11304:3;11293:9;11289:19;11282:26;;11343:2;11335:6;11331:15;11317:29;;11364:4;11377:195;11391:6;11388:1;11385:13;11377:195;;;11456:13;;-1:-1:-1;;;;;11452:39:1;11440:52;;11547:15;;;;11512:12;;;;11488:1;11406:9;11377:195;;;-1:-1:-1;;;;;;;11628:32:1;;;;11623:2;11608:18;;11601:60;-1:-1:-1;;;11692:3:1;11677:19;11670:35;11589:3;10999:712;-1:-1:-1;;;10999:712:1:o;12229:128::-;12269:3;12300:1;12296:6;12293:1;12290:13;12287:2;;;12306:18;;:::i;:::-;-1:-1:-1;12342:9:1;;12277:80::o;12362:217::-;12402:1;12428;12418:2;;-1:-1:-1;;;12453:31:1;;12507:4;12504:1;12497:15;12535:4;12460:1;12525:15;12418:2;-1:-1:-1;12564:9:1;;12408:171::o;12584:168::-;12624:7;12690:1;12686;12682:6;12678:14;12675:1;12672:21;12667:1;12660:9;12653:17;12649:45;12646:2;;;12697:18;;:::i;:::-;-1:-1:-1;12737:9:1;;12636:116::o;12757:125::-;12797:4;12825:1;12822;12819:8;12816:2;;;12830:18;;:::i;:::-;-1:-1:-1;12867:9:1;;12806:76::o;12887:380::-;12966:1;12962:12;;;;13009;;;13030:2;;13084:4;13076:6;13072:17;13062:27;;13030:2;13137;13129:6;13126:14;13106:18;13103:38;13100:2;;;13183:10;13178:3;13174:20;13171:1;13164:31;13218:4;13215:1;13208:15;13246:4;13243:1;13236:15;13100:2;;12942:325;;;:::o;13272:135::-;13311:3;-1:-1:-1;;13332:17:1;;13329:2;;;13352:18;;:::i;:::-;-1:-1:-1;13399:1:1;13388:13;;13319:88::o;13412:127::-;13473:10;13468:3;13464:20;13461:1;13454:31;13504:4;13501:1;13494:15;13528:4;13525:1;13518:15;13544:131;-1:-1:-1;;;;;13619:31:1;;13609:42;;13599:2;;13665:1;13662;13655:12

Swarm Source

ipfs://737a9ba5aa7a9fbe68202cf749c30f1be7853db178ac4162383d53121d56aa18
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.