ETH Price: $3,111.90 (+0.46%)
Gas: 4 Gwei

Contract

0xf76C15cbf1fA9D60a7Af39e660D6d7c62ef8021E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve198447402024-05-11 5:35:477 days ago1715405747IN
0xf76C15cb...62ef8021E
0 ETH0.000187343.99464882
Approve198224402024-05-08 2:43:4710 days ago1715136227IN
0xf76C15cb...62ef8021E
0 ETH0.000225194.80410295
Approve197989462024-05-04 19:51:5913 days ago1714852319IN
0xf76C15cb...62ef8021E
0 ETH0.000263755.58511114
Approve197491812024-04-27 20:54:3520 days ago1714251275IN
0xf76C15cb...62ef8021E
0 ETH0.000154085.71174512
Approve197440582024-04-27 3:41:2321 days ago1714189283IN
0xf76C15cb...62ef8021E
0 ETH0.000156235.7916239
Approve197440552024-04-27 3:40:4721 days ago1714189247IN
0xf76C15cb...62ef8021E
0 ETH0.000149075.52619354
Approve197432392024-04-27 0:56:5921 days ago1714179419IN
0xf76C15cb...62ef8021E
0 ETH0.000141445.24348602
Approve197432292024-04-27 0:54:5921 days ago1714179299IN
0xf76C15cb...62ef8021E
0 ETH0.000257675.49695961
Approve197411642024-04-26 17:58:5921 days ago1714154339IN
0xf76C15cb...62ef8021E
0 ETH0.000297566.30921609
Approve197411582024-04-26 17:57:4721 days ago1714154267IN
0xf76C15cb...62ef8021E
0 ETH0.000328096.94758102
Approve196881682024-04-19 8:02:3529 days ago1713513755IN
0xf76C15cb...62ef8021E
0 ETH0.0006181713.10681997
Approve196802612024-04-18 5:29:3530 days ago1713418175IN
0xf76C15cb...62ef8021E
0 ETH0.00045379.61970446
Approve196030922024-04-07 10:02:2341 days ago1712484143IN
0xf76C15cb...62ef8021E
0 ETH0.0006376413.5197277
Approve195451692024-03-30 7:02:5949 days ago1711782179IN
0xf76C15cb...62ef8021E
0 ETH0.0009628320.41467173
Approve195313582024-03-28 8:15:5951 days ago1711613759IN
0xf76C15cb...62ef8021E
0 ETH0.0011018323.49926192
Approve195052312024-03-24 15:16:4755 days ago1711293407IN
0xf76C15cb...62ef8021E
0 ETH0.0009461420.06068102
Approve195047112024-03-24 13:30:4755 days ago1711287047IN
0xf76C15cb...62ef8021E
0 ETH0.0010422522.23429034
Approve194948732024-03-23 4:18:4756 days ago1711167527IN
0xf76C15cb...62ef8021E
0 ETH0.0007513415.91027755
Approve194605222024-03-18 8:33:5961 days ago1710750839IN
0xf76C15cb...62ef8021E
0 ETH0.0011442324.23
Approve194582532024-03-18 0:55:1161 days ago1710723311IN
0xf76C15cb...62ef8021E
0 ETH0.0012578826.6705509
Approve194149312024-03-11 22:48:3567 days ago1710197315IN
0xf76C15cb...62ef8021E
0 ETH0.0028143259.67100686
Approve194115662024-03-11 11:30:1168 days ago1710156611IN
0xf76C15cb...62ef8021E
0 ETH0.0031507166.80344059
Approve194043452024-03-10 11:18:2369 days ago1710069503IN
0xf76C15cb...62ef8021E
0 ETH0.0023931750.67707676
Approve194042632024-03-10 11:01:4769 days ago1710068507IN
0xf76C15cb...62ef8021E
0 ETH0.002703257.24216518
Approve193950192024-03-09 4:00:3570 days ago1709956835IN
0xf76C15cb...62ef8021E
0 ETH0.0021526345.64157389
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
198224502024-05-08 2:45:4710 days ago1715136347
0xf76C15cb...62ef8021E
0.02023855 ETH
198224502024-05-08 2:45:4710 days ago1715136347
0xf76C15cb...62ef8021E
0.08095421 ETH
198224502024-05-08 2:45:4710 days ago1715136347
0xf76C15cb...62ef8021E
0.10119276 ETH
197991872024-05-04 20:40:3513 days ago1714855235
0xf76C15cb...62ef8021E
0.02437092 ETH
197991872024-05-04 20:40:3513 days ago1714855235
0xf76C15cb...62ef8021E
0.09748368 ETH
197991872024-05-04 20:40:3513 days ago1714855235
0xf76C15cb...62ef8021E
0.1218546 ETH
195052322024-03-24 15:16:5955 days ago1711293419
0xf76C15cb...62ef8021E
0.02792008 ETH
195052322024-03-24 15:16:5955 days ago1711293419
0xf76C15cb...62ef8021E
0.11168034 ETH
195052322024-03-24 15:16:5955 days ago1711293419
0xf76C15cb...62ef8021E
0.13960043 ETH
194870892024-03-22 2:07:3557 days ago1711073255
0xf76C15cb...62ef8021E
0.02586912 ETH
194870892024-03-22 2:07:3557 days ago1711073255
0xf76C15cb...62ef8021E
0.10347648 ETH
194870892024-03-22 2:07:3557 days ago1711073255
0xf76C15cb...62ef8021E
0.1293456 ETH
194016042024-03-10 2:05:5969 days ago1710036359
0xf76C15cb...62ef8021E
0.02515754 ETH
194016042024-03-10 2:05:5969 days ago1710036359
0xf76C15cb...62ef8021E
0.10063017 ETH
194016042024-03-10 2:05:5969 days ago1710036359
0xf76C15cb...62ef8021E
0.12578771 ETH
193832362024-03-07 12:16:2372 days ago1709813783
0xf76C15cb...62ef8021E
0.02886816 ETH
193832362024-03-07 12:16:2372 days ago1709813783
0xf76C15cb...62ef8021E
0.11547264 ETH
193832362024-03-07 12:16:2372 days ago1709813783
0xf76C15cb...62ef8021E
0.1443408 ETH
193761472024-03-06 12:31:3573 days ago1709728295
0xf76C15cb...62ef8021E
0.03058225 ETH
193761472024-03-06 12:31:3573 days ago1709728295
0xf76C15cb...62ef8021E
0.12232903 ETH
193761472024-03-06 12:31:3573 days ago1709728295
0xf76C15cb...62ef8021E
0.15291129 ETH
193756142024-03-06 10:44:3573 days ago1709721875
0xf76C15cb...62ef8021E
0.03062592 ETH
193756142024-03-06 10:44:3573 days ago1709721875
0xf76C15cb...62ef8021E
0.12250371 ETH
193756142024-03-06 10:44:3573 days ago1709721875
0xf76C15cb...62ef8021E
0.15312964 ETH
193741232024-03-06 5:44:4773 days ago1709703887
0xf76C15cb...62ef8021E
0.02886472 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-29
*/

// SPDX-License-Identifier: MIT
    
    /**
        Wagyu Protocol
    
        Website: wagyuprotocol.io/
        Twitter: twitter.com/ProtocolWagyu
        Telegram: t.me/wagyuprotocol
        Bot: t.me/thewagyubot
    **/
    
    pragma solidity ^0.8.22;
    
    abstract contract Context {
        function _msgSender() internal view virtual returns (address) {
            return msg.sender;
        }
    
        function _msgData() internal view virtual returns (bytes calldata) {
            return msg.data;
        }
    }
    
    interface IERC20 {
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address to, 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 from,
            address to,
            uint256 amount
        ) external returns (bool);
    
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }
    
    interface IERC20Metadata is IERC20 {
        function name() external view returns (string memory);
        function symbol() external view returns (string memory);
        function decimals() external view returns (uint8);
    }
    
    contract ERC20 is Context, IERC20, IERC20Metadata {
        mapping(address => uint256) private _balances;
        mapping(address => mapping(address => uint256)) private _allowances;
    
        uint256 private _totalSupply;
    
        string private _name;
        string private _symbol;
    
        constructor(string memory name_, string memory symbol_) {
            _name = name_;
            _symbol = symbol_;
        }
    
        function name() public view virtual override returns (string memory) {
            return _name;
        }
    
        function symbol() public view virtual override returns (string memory) {
            return _symbol;
        }
    
        function decimals() public view virtual override returns (uint8) {
            return 18;
        }
    
        function totalSupply() public view virtual override returns (uint256) {
            return _totalSupply;
        }
    
        function balanceOf(address account) public view virtual override returns (uint256) {
            return _balances[account];
        }
    
        function transfer(address to, uint256 amount) public virtual override returns (bool) {
            address owner = _msgSender();
            _transfer(owner, to, amount);
            return true;
        }
    
        function allowance(address owner, address spender) public view virtual override returns (uint256) {
            return _allowances[owner][spender];
        }
    
        function approve(address spender, uint256 amount) public virtual override returns (bool) {
            address owner = _msgSender();
            _approve(owner, spender, amount);
            return true;
        }
    
        function transferFrom(
            address from,
            address to,
            uint256 amount
        ) public virtual override returns (bool) {
            address spender = _msgSender();
            _spendAllowance(from, spender, amount);
            _transfer(from, to, amount);
            return true;
        }
    
        function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
            address owner = _msgSender();
            _approve(owner, spender, _allowances[owner][spender] + addedValue);
            return true;
        }
    
        function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
            address owner = _msgSender();
            uint256 currentAllowance = _allowances[owner][spender];
            require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
            unchecked {
                _approve(owner, spender, currentAllowance - subtractedValue);
            }
    
            return true;
        }
    
        function _transfer(
            address from,
            address to,
            uint256 amount
        ) internal virtual {
            require(from != address(0), "ERC20: transfer from the zero address");
            require(to != address(0), "ERC20: transfer to the zero address");
    
            _beforeTokenTransfer(from, to, amount);
    
            uint256 fromBalance = _balances[from];
            require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
            unchecked {
                _balances[from] = fromBalance - amount;
            }
            _balances[to] += amount;
    
            emit Transfer(from, to, amount);
    
            _afterTokenTransfer(from, to, amount);
        }
    
        function _mint(address account, uint256 amount) internal virtual {
            require(account != address(0), "ERC20: mint to the zero address");
    
            _beforeTokenTransfer(address(0), account, amount);
    
            _totalSupply += amount;
            _balances[account] += amount;
            emit Transfer(address(0), account, amount);
    
            _afterTokenTransfer(address(0), account, amount);
        }
    
        function _burn(address account, uint256 amount) internal virtual {
            require(account != address(0), "ERC20: burn from the zero address");
    
            _beforeTokenTransfer(account, address(0), amount);
    
            uint256 accountBalance = _balances[account];
            require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
            unchecked {
                _balances[account] = accountBalance - amount;
            }
            _totalSupply -= amount;
    
            emit Transfer(account, address(0), amount);
    
            _afterTokenTransfer(account, address(0), amount);
        }
    
        function _approve(
            address owner,
            address spender,
            uint256 amount
        ) internal virtual {
            require(owner != address(0), "ERC20: approve from the zero address");
            require(spender != address(0), "ERC20: approve to the zero address");
    
            _allowances[owner][spender] = amount;
            emit Approval(owner, spender, amount);
        }
    
        function _spendAllowance(
            address owner,
            address spender,
            uint256 amount
        ) internal virtual {
            uint256 currentAllowance = allowance(owner, spender);
            if (currentAllowance != type(uint256).max) {
                require(currentAllowance >= amount, "ERC20: insufficient allowance");
                unchecked {
                    _approve(owner, spender, currentAllowance - amount);
                }
            }
        }
    
        function _beforeTokenTransfer(
            address from,
            address to,
            uint256 amount
        ) internal virtual {}
    
        function _afterTokenTransfer(
            address from,
            address to,
            uint256 amount
        ) internal virtual {}
    }
    
    abstract contract Ownable is Context {
        address private _owner;
    
        event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
        constructor() {
            _transferOwnership(_msgSender());
        }
    
        function owner() public view virtual returns (address) {
            return _owner;
        }
    
        modifier onlyOwner() {
            require(owner() == _msgSender(), "Ownable: caller is not the owner");
            _;
        }
    
        function renounceOwnership() public virtual onlyOwner {
            _transferOwnership(address(0));
        }
    
        function transferOwnership(address newOwner) public virtual onlyOwner {
            require(newOwner != address(0), "Ownable: new owner is the zero address");
            _transferOwnership(newOwner);
        }
    
        function _transferOwnership(address newOwner) internal virtual {
            address oldOwner = _owner;
            _owner = newOwner;
            emit OwnershipTransferred(oldOwner, newOwner);
        }
    }
    
    library SafeMath {
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            return a + b;
        }
    
        function sub(uint256 a, uint256 b) internal pure returns (uint256) {
            return a - b;
        }
    
        function mul(uint256 a, uint256 b) internal pure returns (uint256) {
            return a * b;
        }
    
        function div(uint256 a, uint256 b) internal pure returns (uint256) {
            return a / b;
        }
    
        function sub(
            uint256 a,
            uint256 b,
            string memory errorMessage
        ) internal pure returns (uint256) {
            unchecked {
                require(b <= a, errorMessage);
                return a - b;
            }
        }
    
        function div(
            uint256 a,
            uint256 b,
            string memory errorMessage
        ) internal pure returns (uint256) {
            unchecked {
                require(b > 0, errorMessage);
                return a / b;
            }
        }
    }
    
    interface IUniswapV2Factory {
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
    }
    
    interface IUniswapV2Router02 {
        function factory() external pure returns (address);
        function WETH() external pure returns (address);
            function addLiquidityETH(
            address token,
            uint amountTokenDesired,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
        function swapExactTokensForETHSupportingFeeOnTransferTokens(
            uint amountIn,
            uint amountOutMin,
            address[] calldata path,
            address to,
            uint deadline
        ) external;
    }
    
    contract Token is ERC20, Ownable {
        using SafeMath for uint256;
    
        IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    
        address public uniV2Pair;
        address public immutable teamAddr;
        address public immutable revshareAddr;
    
        uint256 public maxHoldings;
        uint256 public feeThreshold;
    
        uint256 public buyFee;
        uint256 public sellFee;
    
        bool private _inSwap;
        mapping (address => bool) private _isExcludedFromLimits;
    
        event RevFee(uint256 indexed value);
    
        constructor() ERC20("Wagyu", "WAGYU") payable {
            uint256 totalSupply = 10000000 * 1e18;
            uint256 lpSupply = totalSupply.mul(20).div(100);
    
            maxHoldings = totalSupply.mul(25).div(10000);
            feeThreshold = totalSupply.mul(5).div(1000);
    
            teamAddr = 0x2d8991553C4F89F3D4830EcAD6234B352ef35223;
            revshareAddr = 0x0024B0ACaE52C8FB8C080DeF6D71FEbFB3602bdD;
    
            buyFee = 30;
            sellFee = 30;
    
            _isExcludedFromLimits[teamAddr] = true;
            _isExcludedFromLimits[revshareAddr] = true;
            _isExcludedFromLimits[msg.sender] = true;
            _isExcludedFromLimits[tx.origin] = true;
            _isExcludedFromLimits[address(this)] = true;
            _isExcludedFromLimits[address(0xdead)] = true;
    
            _mint(tx.origin, totalSupply.sub(lpSupply));
            _mint(msg.sender, lpSupply);
        }
    
        function _transfer(
            address from,
            address to,
            uint256 amount
        ) internal override {
            require(from != address(0), "Transfer from the zero address not allowed.");
            require(to != address(0), "Transfer to the zero address not allowed.");
            require(amount > 0, 'Transfer amount must be greater than zero.');
    
            bool excluded = _isExcludedFromLimits[from] || _isExcludedFromLimits[to];
            require(uniV2Pair != address(0) || excluded, "Liquidity pair not yet created.");
    
            bool isSell = to == uniV2Pair;
            bool isBuy = from == uniV2Pair;
    
            if (!isSell && maxHoldings > 0 && !excluded)
                require(balanceOf(to) + amount <= maxHoldings, "Balance exceeds max holdings amount, consider using a second wallet.");
    
            if (
                balanceOf(address(this)) >= feeThreshold &&
                !_inSwap &&
                isSell &&
                !excluded
            ) {
                _inSwap = true;
                swapFees();
                _inSwap = false;
            }
    
            uint256 fee = isBuy ? buyFee : sellFee;
    
            if (fee > 0) {
                if (!excluded && !_inSwap && (isBuy || isSell)) {
                    uint256 fees = amount.mul(fee).div(100);
    
                    if (fees > 0)
                        super._transfer(from, address(this), fees);
    
                    amount = amount.sub(fees);
                }
            }
    
            super._transfer(from, to, amount);
        }
    
        function swapFees() public {
            uint256 contractBalance = balanceOf(address(this));
            if (contractBalance == 0) return;
            if (contractBalance > feeThreshold) contractBalance = feeThreshold;
    
            uint256 initETHBal = address(this).balance;
    
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = _router.WETH();
    
            _approve(address(this), address(_router), contractBalance);
    
            _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                contractBalance,
                0,
                path,
                address(this),
                block.timestamp
            );
    
            uint256 ethFee = address(this).balance.sub(initETHBal);
            uint256 revFee = ethFee.mul(20).div(100);
    
            ethFee = ethFee.sub(revFee);
            payable(teamAddr).transfer(ethFee);
            payable(revshareAddr).transfer(revFee);
    
            emit RevFee(revFee);
        }
    
        function feedWagyu() external onlyOwner {
            require(uniV2Pair == address(0), "The pair has already been created.");
            uniV2Pair = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
        }
    
        function updateFeeThreshold(uint256 newThreshold) external onlyOwner {
            require(newThreshold >= totalSupply().mul(1).div(100000), "Swap threshold cannot be lower than 0.001% total supply.");
            require(newThreshold <= totalSupply().mul(2).div(100), "Swap threshold cannot be higher than 2% total supply.");
            feeThreshold = newThreshold;
        }
    
        function updateFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
            require(newBuyFee <= 5 && newSellFee <= 5, 'Attempting to set fee higher than initial fee.'); // smaller than or equal to initial fee
            buyFee = newBuyFee;
            sellFee = newSellFee;
        }
    
        function removeHoldingLimit() external onlyOwner {
            maxHoldings = 0;
        }
    
        function removeStuckETH() external onlyOwner {
            payable(teamAddr).transfer(address(this).balance);
        }
    
        function removeStuckERC20(IERC20 token) external onlyOwner {
            token.transfer(teamAddr, token.balanceOf(address(this)));
        }
    
        receive() external payable {}
    }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"uint256","name":"value","type":"uint256"}],"name":"RevFee","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":[{"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feedWagyu","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"removeStuckERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revshareAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateFeeThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600581526020017f57616779750000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5741475955000000000000000000000000000000000000000000000000000000815250816003908162000081919062000927565b50806004908162000093919062000927565b505050620000b6620000aa6200043a60201b60201c565b6200044160201b60201c565b5f6a084595161401484a00000090505f620000f16064620000e26014856200050460201b90919060201c565b6200051b60201b90919060201c565b90506200011f612710620001106019856200050460201b90919060201c565b6200051b60201b90919060201c565b600781905550620001516103e8620001426005856200050460201b90919060201c565b6200051b60201b90919060201c565b600881905550732d8991553c4f89f3d4830ecad6234b352ef3522373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250507224b0acae52c8fb8c080def6d71febfb3602bdd73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050601e600981905550601e600a819055506001600c5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000420326200041483856200053260201b90919060201c565b6200054960201b60201c565b6200043233826200054960201b60201c565b505062000c04565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f818362000513919062000a38565b905092915050565b5f81836200052a919062000aaf565b905092915050565b5f818362000541919062000ae6565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b19062000b7e565b60405180910390fd5b620005cd5f8383620006b960201b60201c565b8060025f828254620005e0919062000b9e565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000634919062000b9e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200069a919062000be9565b60405180910390a3620006b55f8383620006be60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200073f57607f821691505b602082108103620007555762000754620006fa565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200077c565b620007c586836200077c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200080f620008096200080384620007dd565b620007e6565b620007dd565b9050919050565b5f819050919050565b6200082a83620007ef565b62000842620008398262000816565b84845462000788565b825550505050565b5f90565b620008586200084a565b620008658184846200081f565b505050565b5b818110156200088c57620008805f826200084e565b6001810190506200086b565b5050565b601f821115620008db57620008a5816200075b565b620008b0846200076d565b81016020851015620008c0578190505b620008d8620008cf856200076d565b8301826200086a565b50505b505050565b5f82821c905092915050565b5f620008fd5f1984600802620008e0565b1980831691505092915050565b5f620009178383620008ec565b9150826002028217905092915050565b6200093282620006c3565b67ffffffffffffffff8111156200094e576200094d620006cd565b5b6200095a825462000727565b6200096782828562000890565b5f60209050601f8311600181146200099d575f841562000988578287015190505b6200099485826200090a565b86555062000a03565b601f198416620009ad866200075b565b5f5b82811015620009d657848901518255600182019150602085019450602081019050620009af565b86831015620009f65784890151620009f2601f891682620008ec565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000a4482620007dd565b915062000a5183620007dd565b925082820262000a6181620007dd565b9150828204841483151762000a7b5762000a7a62000a0b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000abb82620007dd565b915062000ac883620007dd565b92508262000adb5762000ada62000a82565b5b828204905092915050565b5f62000af282620007dd565b915062000aff83620007dd565b925082820390508181111562000b1a5762000b1962000a0b565b5b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000b66601f8362000b20565b915062000b738262000b30565b602082019050919050565b5f6020820190508181035f83015262000b978162000b58565b9050919050565b5f62000baa82620007dd565b915062000bb783620007dd565b925082820190508082111562000bd25762000bd162000a0b565b5b92915050565b62000be381620007dd565b82525050565b5f60208201905062000bfe5f83018462000bd8565b92915050565b60805160a05161348a62000c425f395f8181610a8101526111a901525f818161079f015281816108f50152818161114501526112da015261348a5ff3fe6080604052600436106101ba575f3560e01c8063715018a6116100eb578063b9ccf21d11610089578063dd62ed3e11610063578063dd62ed3e146105cb578063e54f4faa14610607578063e81d5a3d14610631578063f2fde38b14610647576101c1565b8063b9ccf21d14610563578063c83c383714610579578063cb4e162b146105a1576101c1565b80639049a3ce116100c55780639049a3ce146104ab57806395d89b41146104c1578063a457c2d7146104eb578063a9059cbb14610527576101c1565b8063715018a6146104415780638bcea939146104575780638da5cb5b14610481576101c1565b80633950935111610158578063578878b411610132578063578878b41461038b5780635b4bdfd5146103b35780636db79437146103dd57806370a0823114610405576101c1565b806339509351146102fb57806347062402146103375780634a5ff74914610361576101c1565b806318160ddd1161019457806318160ddd1461024157806323b872dd1461026b5780632b14ca56146102a7578063313ce567146102d1576101c1565b806306fdde03146101c5578063095ea7b3146101ef5780630f299cf11461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d961066f565b6040516101e6919061231c565b60405180910390f35b3480156101fa575f80fd5b50610215600480360381019061021091906123cd565b6106ff565b6040516102229190612425565b60405180910390f35b348015610236575f80fd5b5061023f610721565b005b34801561024c575f80fd5b50610255610803565b604051610262919061244d565b60405180910390f35b348015610276575f80fd5b50610291600480360381019061028c9190612466565b61080c565b60405161029e9190612425565b60405180910390f35b3480156102b2575f80fd5b506102bb61083a565b6040516102c8919061244d565b60405180910390f35b3480156102dc575f80fd5b506102e5610840565b6040516102f291906124d1565b60405180910390f35b348015610306575f80fd5b50610321600480360381019061031c91906123cd565b610848565b60405161032e9190612425565b60405180910390f35b348015610342575f80fd5b5061034b6108ed565b604051610358919061244d565b60405180910390f35b34801561036c575f80fd5b506103756108f3565b60405161038291906124f9565b60405180910390f35b348015610396575f80fd5b506103b160048036038101906103ac9190612512565b610917565b005b3480156103be575f80fd5b506103c7610a7f565b6040516103d491906124f9565b60405180910390f35b3480156103e8575f80fd5b5061040360048036038101906103fe919061253d565b610aa3565b005b348015610410575f80fd5b5061042b6004803603810190610426919061257b565b610b82565b604051610438919061244d565b60405180910390f35b34801561044c575f80fd5b50610455610bc7565b005b348015610462575f80fd5b5061046b610c4e565b60405161047891906124f9565b60405180910390f35b34801561048c575f80fd5b50610495610c73565b6040516104a291906124f9565b60405180910390f35b3480156104b6575f80fd5b506104bf610c9b565b005b3480156104cc575f80fd5b506104d5610d20565b6040516104e2919061231c565b60405180910390f35b3480156104f6575f80fd5b50610511600480360381019061050c91906123cd565b610db0565b60405161051e9190612425565b60405180910390f35b348015610532575f80fd5b5061054d600480360381019061054891906123cd565b610e94565b60405161055a9190612425565b60405180910390f35b34801561056e575f80fd5b50610577610eb6565b005b348015610584575f80fd5b5061059f600480360381019061059a91906125e1565b611240565b005b3480156105ac575f80fd5b506105b56113d2565b6040516105c2919061244d565b60405180910390f35b3480156105d6575f80fd5b506105f160048036038101906105ec919061260c565b6113d8565b6040516105fe919061244d565b60405180910390f35b348015610612575f80fd5b5061061b61145a565b604051610628919061244d565b60405180910390f35b34801561063c575f80fd5b50610645611460565b005b348015610652575f80fd5b5061066d6004803603810190610668919061257b565b611726565b005b60606003805461067e90612677565b80601f01602080910402602001604051908101604052809291908181526020018280546106aa90612677565b80156106f55780601f106106cc576101008083540402835291602001916106f5565b820191905f5260205f20905b8154815290600101906020018083116106d857829003601f168201915b5050505050905090565b5f8061070961181c565b9050610716818585611823565b600191505092915050565b61072961181c565b73ffffffffffffffffffffffffffffffffffffffff16610747610c73565b73ffffffffffffffffffffffffffffffffffffffff161461079d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610794906126f1565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610800573d5f803e3d5ffd5b50565b5f600254905090565b5f8061081661181c565b90506108238582856119e6565b61082e858585611a71565b60019150509392505050565b600a5481565b5f6012905090565b5f8061085261181c565b90506108e281858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108dd919061273c565b611823565b600191505092915050565b60095481565b7f000000000000000000000000000000000000000000000000000000000000000081565b61091f61181c565b73ffffffffffffffffffffffffffffffffffffffff1661093d610c73565b73ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a906126f1565b60405180910390fd5b6109c3620186a06109b560016109a7610803565b611f1190919063ffffffff16565b611f2690919063ffffffff16565b811015610a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fc906127df565b60405180910390fd5b610a336064610a256002610a17610803565b611f1190919063ffffffff16565b611f2690919063ffffffff16565b811115610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c9061286d565b60405180910390fd5b8060088190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610aab61181c565b73ffffffffffffffffffffffffffffffffffffffff16610ac9610c73565b73ffffffffffffffffffffffffffffffffffffffff1614610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b16906126f1565b60405180910390fd5b60058211158015610b31575060058111155b610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b67906128fb565b60405180910390fd5b8160098190555080600a819055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bcf61181c565b73ffffffffffffffffffffffffffffffffffffffff16610bed610c73565b73ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906126f1565b60405180910390fd5b610c4c5f611f3b565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ca361181c565b73ffffffffffffffffffffffffffffffffffffffff16610cc1610c73565b73ffffffffffffffffffffffffffffffffffffffff1614610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e906126f1565b60405180910390fd5b5f600781905550565b606060048054610d2f90612677565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5b90612677565b8015610da65780601f10610d7d57610100808354040283529160200191610da6565b820191905f5260205f20905b815481529060010190602001808311610d8957829003601f168201915b5050505050905090565b5f80610dba61181c565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7290612989565b60405180910390fd5b610e888286868403611823565b60019250505092915050565b5f80610e9e61181c565b9050610eab818585611a71565b600191505092915050565b5f610ec030610b82565b90505f8103610ecf575061123e565b600854811115610edf5760085490505b5f4790505f600267ffffffffffffffff811115610eff57610efe6129a7565b5b604051908082528060200260200182016040528015610f2d5781602001602082028036833780820191505090505b50905030815f81518110610f4457610f436129d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fdb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fff9190612a15565b81600181518110611013576110126129d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061106c30737a250d5630b4cf539739df2c5dacb4c659f2488d85611823565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016110c1959493929190612b39565b5f604051808303815f87803b1580156110d8575f80fd5b505af11580156110ea573d5f803e3d5ffd5b505050505f6111028347611ffe90919063ffffffff16565b90505f61112c606461111e601485611f1190919063ffffffff16565b611f2690919063ffffffff16565b90506111418183611ffe90919063ffffffff16565b91507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156111a6573d5f803e3d5ffd5b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561120a573d5f803e3d5ffd5b50807fad23435710dbea015aa5b8e5e1255933708a52c9e0ff6050c86b64cdc33a029860405160405180910390a250505050505b565b61124861181c565b73ffffffffffffffffffffffffffffffffffffffff16611266610c73565b73ffffffffffffffffffffffffffffffffffffffff16146112bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b3906126f1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f00000000000000000000000000000000000000000000000000000000000000008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161133291906124f9565b602060405180830381865afa15801561134d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113719190612ba5565b6040518363ffffffff1660e01b815260040161138e929190612bd0565b6020604051808303815f875af11580156113aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ce9190612c21565b5050565b60085481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b61146861181c565b73ffffffffffffffffffffffffffffffffffffffff16611486610c73565b73ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906126f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290612cbc565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ec9190612a15565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611665573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116899190612a15565b6040518363ffffffff1660e01b81526004016116a6929190612cda565b602060405180830381865afa1580156116c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e59190612a15565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61172e61181c565b73ffffffffffffffffffffffffffffffffffffffff1661174c610c73565b73ffffffffffffffffffffffffffffffffffffffff16146117a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611799906126f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612d71565b60405180910390fd5b61181981611f3b565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188890612dff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f690612e8d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119d9919061244d565b60405180910390a3505050565b5f6119f184846113d8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a6b5781811015611a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5490612ef5565b60405180910390fd5b611a6a8484848403611823565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad690612f83565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4490613011565b60405180910390fd5b5f8111611b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b869061309f565b60405180910390fd5b5f600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611c2b5750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580611c865750805b611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90613107565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905081158015611d7a57505f600754115b8015611d84575082155b15611de25760075484611d9687610b82565b611da0919061273c565b1115611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd8906131bb565b60405180910390fd5b5b600854611dee30610b82565b10158015611e085750600b5f9054906101000a900460ff16155b8015611e115750815b8015611e1b575082155b15611e5c576001600b5f6101000a81548160ff021916908315150217905550611e42610eb6565b5f600b5f6101000a81548160ff0219169083151502179055505b5f81611e6a57600a54611e6e565b6009545b90505f811115611efd5783158015611e925750600b5f9054906101000a900460ff16155b8015611ea357508180611ea25750825b5b15611efc575f611ecf6064611ec18489611f1190919063ffffffff16565b611f2690919063ffffffff16565b90505f811115611ee557611ee4883083612013565b5b611ef88187611ffe90919063ffffffff16565b9550505b5b611f08878787612013565b50505050505050565b5f8183611f1e91906131d9565b905092915050565b5f8183611f339190613247565b905092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f818361200b9190613277565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120789061331a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e6906133a8565b60405180910390fd5b6120fa838383612288565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561217d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217490613436565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461220b919061273c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161226f919061244d565b60405180910390a361228284848461228d565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122c95780820151818401526020810190506122ae565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122ee82612292565b6122f8818561229c565b93506123088185602086016122ac565b612311816122d4565b840191505092915050565b5f6020820190508181035f83015261233481846122e4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236982612340565b9050919050565b6123798161235f565b8114612383575f80fd5b50565b5f8135905061239481612370565b92915050565b5f819050919050565b6123ac8161239a565b81146123b6575f80fd5b50565b5f813590506123c7816123a3565b92915050565b5f80604083850312156123e3576123e261233c565b5b5f6123f085828601612386565b9250506020612401858286016123b9565b9150509250929050565b5f8115159050919050565b61241f8161240b565b82525050565b5f6020820190506124385f830184612416565b92915050565b6124478161239a565b82525050565b5f6020820190506124605f83018461243e565b92915050565b5f805f6060848603121561247d5761247c61233c565b5b5f61248a86828701612386565b935050602061249b86828701612386565b92505060406124ac868287016123b9565b9150509250925092565b5f60ff82169050919050565b6124cb816124b6565b82525050565b5f6020820190506124e45f8301846124c2565b92915050565b6124f38161235f565b82525050565b5f60208201905061250c5f8301846124ea565b92915050565b5f602082840312156125275761252661233c565b5b5f612534848285016123b9565b91505092915050565b5f80604083850312156125535761255261233c565b5b5f612560858286016123b9565b9250506020612571858286016123b9565b9150509250929050565b5f602082840312156125905761258f61233c565b5b5f61259d84828501612386565b91505092915050565b5f6125b08261235f565b9050919050565b6125c0816125a6565b81146125ca575f80fd5b50565b5f813590506125db816125b7565b92915050565b5f602082840312156125f6576125f561233c565b5b5f612603848285016125cd565b91505092915050565b5f80604083850312156126225761262161233c565b5b5f61262f85828601612386565b925050602061264085828601612386565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061268e57607f821691505b6020821081036126a1576126a061264a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126db60208361229c565b91506126e6826126a7565b602082019050919050565b5f6020820190508181035f830152612708816126cf565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127468261239a565b91506127518361239a565b92508282019050808211156127695761276861270f565b5b92915050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f6127c960388361229c565b91506127d48261276f565b604082019050919050565b5f6020820190508181035f8301526127f6816127bd565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61285760358361229c565b9150612862826127fd565b604082019050919050565b5f6020820190508181035f8301526128848161284b565b9050919050565b7f417474656d7074696e6720746f207365742066656520686967686572207468615f8201527f6e20696e697469616c206665652e000000000000000000000000000000000000602082015250565b5f6128e5602e8361229c565b91506128f08261288b565b604082019050919050565b5f6020820190508181035f830152612912816128d9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61297360258361229c565b915061297e82612919565b604082019050919050565b5f6020820190508181035f8301526129a081612967565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a0f81612370565b92915050565b5f60208284031215612a2a57612a2961233c565b5b5f612a3784828501612a01565b91505092915050565b5f819050919050565b5f819050919050565b5f612a6c612a67612a6284612a40565b612a49565b61239a565b9050919050565b612a7c81612a52565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ab48161235f565b82525050565b5f612ac58383612aab565b60208301905092915050565b5f602082019050919050565b5f612ae782612a82565b612af18185612a8c565b9350612afc83612a9c565b805f5b83811015612b2c578151612b138882612aba565b9750612b1e83612ad1565b925050600181019050612aff565b5085935050505092915050565b5f60a082019050612b4c5f83018861243e565b612b596020830187612a73565b8181036040830152612b6b8186612add565b9050612b7a60608301856124ea565b612b87608083018461243e565b9695505050505050565b5f81519050612b9f816123a3565b92915050565b5f60208284031215612bba57612bb961233c565b5b5f612bc784828501612b91565b91505092915050565b5f604082019050612be35f8301856124ea565b612bf0602083018461243e565b9392505050565b612c008161240b565b8114612c0a575f80fd5b50565b5f81519050612c1b81612bf7565b92915050565b5f60208284031215612c3657612c3561233c565b5b5f612c4384828501612c0d565b91505092915050565b7f54686520706169722068617320616c7265616479206265656e206372656174655f8201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ca660228361229c565b9150612cb182612c4c565b604082019050919050565b5f6020820190508181035f830152612cd381612c9a565b9050919050565b5f604082019050612ced5f8301856124ea565b612cfa60208301846124ea565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612d5b60268361229c565b9150612d6682612d01565b604082019050919050565b5f6020820190508181035f830152612d8881612d4f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612de960248361229c565b9150612df482612d8f565b604082019050919050565b5f6020820190508181035f830152612e1681612ddd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7760228361229c565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612edf601d8361229c565b9150612eea82612eab565b602082019050919050565b5f6020820190508181035f830152612f0c81612ed3565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612f6d602b8361229c565b9150612f7882612f13565b604082019050919050565b5f6020820190508181035f830152612f9a81612f61565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612ffb60298361229c565b915061300682612fa1565b604082019050919050565b5f6020820190508181035f83015261302881612fef565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f613089602a8361229c565b91506130948261302f565b604082019050919050565b5f6020820190508181035f8301526130b68161307d565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f6130f1601f8361229c565b91506130fc826130bd565b602082019050919050565b5f6020820190508181035f83015261311e816130e5565b9050919050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f5f8201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b5f6131a560448361229c565b91506131b082613125565b606082019050919050565b5f6020820190508181035f8301526131d281613199565b9050919050565b5f6131e38261239a565b91506131ee8361239a565b92508282026131fc8161239a565b915082820484148315176132135761321261270f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132518261239a565b915061325c8361239a565b92508261326c5761326b61321a565b5b828204905092915050565b5f6132818261239a565b915061328c8361239a565b92508282039050818111156132a4576132a361270f565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61330460258361229c565b915061330f826132aa565b604082019050919050565b5f6020820190508181035f830152613331816132f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61339260238361229c565b915061339d82613338565b604082019050919050565b5f6020820190508181035f8301526133bf81613386565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61342060268361229c565b915061342b826133c6565b604082019050919050565b5f6020820190508181035f83015261344d81613414565b905091905056fea2646970667358221220664128d2e232c13516e9aacd1e4452763fd9f029f91a81efe05d861fbaa780bf64736f6c63430008160033

Deployed Bytecode

0x6080604052600436106101ba575f3560e01c8063715018a6116100eb578063b9ccf21d11610089578063dd62ed3e11610063578063dd62ed3e146105cb578063e54f4faa14610607578063e81d5a3d14610631578063f2fde38b14610647576101c1565b8063b9ccf21d14610563578063c83c383714610579578063cb4e162b146105a1576101c1565b80639049a3ce116100c55780639049a3ce146104ab57806395d89b41146104c1578063a457c2d7146104eb578063a9059cbb14610527576101c1565b8063715018a6146104415780638bcea939146104575780638da5cb5b14610481576101c1565b80633950935111610158578063578878b411610132578063578878b41461038b5780635b4bdfd5146103b35780636db79437146103dd57806370a0823114610405576101c1565b806339509351146102fb57806347062402146103375780634a5ff74914610361576101c1565b806318160ddd1161019457806318160ddd1461024157806323b872dd1461026b5780632b14ca56146102a7578063313ce567146102d1576101c1565b806306fdde03146101c5578063095ea7b3146101ef5780630f299cf11461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d961066f565b6040516101e6919061231c565b60405180910390f35b3480156101fa575f80fd5b50610215600480360381019061021091906123cd565b6106ff565b6040516102229190612425565b60405180910390f35b348015610236575f80fd5b5061023f610721565b005b34801561024c575f80fd5b50610255610803565b604051610262919061244d565b60405180910390f35b348015610276575f80fd5b50610291600480360381019061028c9190612466565b61080c565b60405161029e9190612425565b60405180910390f35b3480156102b2575f80fd5b506102bb61083a565b6040516102c8919061244d565b60405180910390f35b3480156102dc575f80fd5b506102e5610840565b6040516102f291906124d1565b60405180910390f35b348015610306575f80fd5b50610321600480360381019061031c91906123cd565b610848565b60405161032e9190612425565b60405180910390f35b348015610342575f80fd5b5061034b6108ed565b604051610358919061244d565b60405180910390f35b34801561036c575f80fd5b506103756108f3565b60405161038291906124f9565b60405180910390f35b348015610396575f80fd5b506103b160048036038101906103ac9190612512565b610917565b005b3480156103be575f80fd5b506103c7610a7f565b6040516103d491906124f9565b60405180910390f35b3480156103e8575f80fd5b5061040360048036038101906103fe919061253d565b610aa3565b005b348015610410575f80fd5b5061042b6004803603810190610426919061257b565b610b82565b604051610438919061244d565b60405180910390f35b34801561044c575f80fd5b50610455610bc7565b005b348015610462575f80fd5b5061046b610c4e565b60405161047891906124f9565b60405180910390f35b34801561048c575f80fd5b50610495610c73565b6040516104a291906124f9565b60405180910390f35b3480156104b6575f80fd5b506104bf610c9b565b005b3480156104cc575f80fd5b506104d5610d20565b6040516104e2919061231c565b60405180910390f35b3480156104f6575f80fd5b50610511600480360381019061050c91906123cd565b610db0565b60405161051e9190612425565b60405180910390f35b348015610532575f80fd5b5061054d600480360381019061054891906123cd565b610e94565b60405161055a9190612425565b60405180910390f35b34801561056e575f80fd5b50610577610eb6565b005b348015610584575f80fd5b5061059f600480360381019061059a91906125e1565b611240565b005b3480156105ac575f80fd5b506105b56113d2565b6040516105c2919061244d565b60405180910390f35b3480156105d6575f80fd5b506105f160048036038101906105ec919061260c565b6113d8565b6040516105fe919061244d565b60405180910390f35b348015610612575f80fd5b5061061b61145a565b604051610628919061244d565b60405180910390f35b34801561063c575f80fd5b50610645611460565b005b348015610652575f80fd5b5061066d6004803603810190610668919061257b565b611726565b005b60606003805461067e90612677565b80601f01602080910402602001604051908101604052809291908181526020018280546106aa90612677565b80156106f55780601f106106cc576101008083540402835291602001916106f5565b820191905f5260205f20905b8154815290600101906020018083116106d857829003601f168201915b5050505050905090565b5f8061070961181c565b9050610716818585611823565b600191505092915050565b61072961181c565b73ffffffffffffffffffffffffffffffffffffffff16610747610c73565b73ffffffffffffffffffffffffffffffffffffffff161461079d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610794906126f1565b60405180910390fd5b7f0000000000000000000000002d8991553c4f89f3d4830ecad6234b352ef3522373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610800573d5f803e3d5ffd5b50565b5f600254905090565b5f8061081661181c565b90506108238582856119e6565b61082e858585611a71565b60019150509392505050565b600a5481565b5f6012905090565b5f8061085261181c565b90506108e281858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108dd919061273c565b611823565b600191505092915050565b60095481565b7f0000000000000000000000002d8991553c4f89f3d4830ecad6234b352ef3522381565b61091f61181c565b73ffffffffffffffffffffffffffffffffffffffff1661093d610c73565b73ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a906126f1565b60405180910390fd5b6109c3620186a06109b560016109a7610803565b611f1190919063ffffffff16565b611f2690919063ffffffff16565b811015610a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fc906127df565b60405180910390fd5b610a336064610a256002610a17610803565b611f1190919063ffffffff16565b611f2690919063ffffffff16565b811115610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c9061286d565b60405180910390fd5b8060088190555050565b7f0000000000000000000000000024b0acae52c8fb8c080def6d71febfb3602bdd81565b610aab61181c565b73ffffffffffffffffffffffffffffffffffffffff16610ac9610c73565b73ffffffffffffffffffffffffffffffffffffffff1614610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b16906126f1565b60405180910390fd5b60058211158015610b31575060058111155b610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b67906128fb565b60405180910390fd5b8160098190555080600a819055505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bcf61181c565b73ffffffffffffffffffffffffffffffffffffffff16610bed610c73565b73ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906126f1565b60405180910390fd5b610c4c5f611f3b565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ca361181c565b73ffffffffffffffffffffffffffffffffffffffff16610cc1610c73565b73ffffffffffffffffffffffffffffffffffffffff1614610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e906126f1565b60405180910390fd5b5f600781905550565b606060048054610d2f90612677565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5b90612677565b8015610da65780601f10610d7d57610100808354040283529160200191610da6565b820191905f5260205f20905b815481529060010190602001808311610d8957829003601f168201915b5050505050905090565b5f80610dba61181c565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7290612989565b60405180910390fd5b610e888286868403611823565b60019250505092915050565b5f80610e9e61181c565b9050610eab818585611a71565b600191505092915050565b5f610ec030610b82565b90505f8103610ecf575061123e565b600854811115610edf5760085490505b5f4790505f600267ffffffffffffffff811115610eff57610efe6129a7565b5b604051908082528060200260200182016040528015610f2d5781602001602082028036833780820191505090505b50905030815f81518110610f4457610f436129d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fdb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fff9190612a15565b81600181518110611013576110126129d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061106c30737a250d5630b4cf539739df2c5dacb4c659f2488d85611823565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016110c1959493929190612b39565b5f604051808303815f87803b1580156110d8575f80fd5b505af11580156110ea573d5f803e3d5ffd5b505050505f6111028347611ffe90919063ffffffff16565b90505f61112c606461111e601485611f1190919063ffffffff16565b611f2690919063ffffffff16565b90506111418183611ffe90919063ffffffff16565b91507f0000000000000000000000002d8991553c4f89f3d4830ecad6234b352ef3522373ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156111a6573d5f803e3d5ffd5b507f0000000000000000000000000024b0acae52c8fb8c080def6d71febfb3602bdd73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561120a573d5f803e3d5ffd5b50807fad23435710dbea015aa5b8e5e1255933708a52c9e0ff6050c86b64cdc33a029860405160405180910390a250505050505b565b61124861181c565b73ffffffffffffffffffffffffffffffffffffffff16611266610c73565b73ffffffffffffffffffffffffffffffffffffffff16146112bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b3906126f1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000002d8991553c4f89f3d4830ecad6234b352ef352238373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161133291906124f9565b602060405180830381865afa15801561134d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113719190612ba5565b6040518363ffffffff1660e01b815260040161138e929190612bd0565b6020604051808303815f875af11580156113aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ce9190612c21565b5050565b60085481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b61146861181c565b73ffffffffffffffffffffffffffffffffffffffff16611486610c73565b73ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906126f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290612cbc565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ec9190612a15565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611665573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116899190612a15565b6040518363ffffffff1660e01b81526004016116a6929190612cda565b602060405180830381865afa1580156116c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e59190612a15565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61172e61181c565b73ffffffffffffffffffffffffffffffffffffffff1661174c610c73565b73ffffffffffffffffffffffffffffffffffffffff16146117a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611799906126f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612d71565b60405180910390fd5b61181981611f3b565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188890612dff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f690612e8d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119d9919061244d565b60405180910390a3505050565b5f6119f184846113d8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a6b5781811015611a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5490612ef5565b60405180910390fd5b611a6a8484848403611823565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad690612f83565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4490613011565b60405180910390fd5b5f8111611b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b869061309f565b60405180910390fd5b5f600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611c2b5750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580611c865750805b611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc90613107565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905081158015611d7a57505f600754115b8015611d84575082155b15611de25760075484611d9687610b82565b611da0919061273c565b1115611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd8906131bb565b60405180910390fd5b5b600854611dee30610b82565b10158015611e085750600b5f9054906101000a900460ff16155b8015611e115750815b8015611e1b575082155b15611e5c576001600b5f6101000a81548160ff021916908315150217905550611e42610eb6565b5f600b5f6101000a81548160ff0219169083151502179055505b5f81611e6a57600a54611e6e565b6009545b90505f811115611efd5783158015611e925750600b5f9054906101000a900460ff16155b8015611ea357508180611ea25750825b5b15611efc575f611ecf6064611ec18489611f1190919063ffffffff16565b611f2690919063ffffffff16565b90505f811115611ee557611ee4883083612013565b5b611ef88187611ffe90919063ffffffff16565b9550505b5b611f08878787612013565b50505050505050565b5f8183611f1e91906131d9565b905092915050565b5f8183611f339190613247565b905092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f818361200b9190613277565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120789061331a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e6906133a8565b60405180910390fd5b6120fa838383612288565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561217d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217490613436565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461220b919061273c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161226f919061244d565b60405180910390a361228284848461228d565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122c95780820151818401526020810190506122ae565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122ee82612292565b6122f8818561229c565b93506123088185602086016122ac565b612311816122d4565b840191505092915050565b5f6020820190508181035f83015261233481846122e4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236982612340565b9050919050565b6123798161235f565b8114612383575f80fd5b50565b5f8135905061239481612370565b92915050565b5f819050919050565b6123ac8161239a565b81146123b6575f80fd5b50565b5f813590506123c7816123a3565b92915050565b5f80604083850312156123e3576123e261233c565b5b5f6123f085828601612386565b9250506020612401858286016123b9565b9150509250929050565b5f8115159050919050565b61241f8161240b565b82525050565b5f6020820190506124385f830184612416565b92915050565b6124478161239a565b82525050565b5f6020820190506124605f83018461243e565b92915050565b5f805f6060848603121561247d5761247c61233c565b5b5f61248a86828701612386565b935050602061249b86828701612386565b92505060406124ac868287016123b9565b9150509250925092565b5f60ff82169050919050565b6124cb816124b6565b82525050565b5f6020820190506124e45f8301846124c2565b92915050565b6124f38161235f565b82525050565b5f60208201905061250c5f8301846124ea565b92915050565b5f602082840312156125275761252661233c565b5b5f612534848285016123b9565b91505092915050565b5f80604083850312156125535761255261233c565b5b5f612560858286016123b9565b9250506020612571858286016123b9565b9150509250929050565b5f602082840312156125905761258f61233c565b5b5f61259d84828501612386565b91505092915050565b5f6125b08261235f565b9050919050565b6125c0816125a6565b81146125ca575f80fd5b50565b5f813590506125db816125b7565b92915050565b5f602082840312156125f6576125f561233c565b5b5f612603848285016125cd565b91505092915050565b5f80604083850312156126225761262161233c565b5b5f61262f85828601612386565b925050602061264085828601612386565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061268e57607f821691505b6020821081036126a1576126a061264a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126db60208361229c565b91506126e6826126a7565b602082019050919050565b5f6020820190508181035f830152612708816126cf565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127468261239a565b91506127518361239a565b92508282019050808211156127695761276861270f565b5b92915050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f6127c960388361229c565b91506127d48261276f565b604082019050919050565b5f6020820190508181035f8301526127f6816127bd565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61285760358361229c565b9150612862826127fd565b604082019050919050565b5f6020820190508181035f8301526128848161284b565b9050919050565b7f417474656d7074696e6720746f207365742066656520686967686572207468615f8201527f6e20696e697469616c206665652e000000000000000000000000000000000000602082015250565b5f6128e5602e8361229c565b91506128f08261288b565b604082019050919050565b5f6020820190508181035f830152612912816128d9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61297360258361229c565b915061297e82612919565b604082019050919050565b5f6020820190508181035f8301526129a081612967565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a0f81612370565b92915050565b5f60208284031215612a2a57612a2961233c565b5b5f612a3784828501612a01565b91505092915050565b5f819050919050565b5f819050919050565b5f612a6c612a67612a6284612a40565b612a49565b61239a565b9050919050565b612a7c81612a52565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ab48161235f565b82525050565b5f612ac58383612aab565b60208301905092915050565b5f602082019050919050565b5f612ae782612a82565b612af18185612a8c565b9350612afc83612a9c565b805f5b83811015612b2c578151612b138882612aba565b9750612b1e83612ad1565b925050600181019050612aff565b5085935050505092915050565b5f60a082019050612b4c5f83018861243e565b612b596020830187612a73565b8181036040830152612b6b8186612add565b9050612b7a60608301856124ea565b612b87608083018461243e565b9695505050505050565b5f81519050612b9f816123a3565b92915050565b5f60208284031215612bba57612bb961233c565b5b5f612bc784828501612b91565b91505092915050565b5f604082019050612be35f8301856124ea565b612bf0602083018461243e565b9392505050565b612c008161240b565b8114612c0a575f80fd5b50565b5f81519050612c1b81612bf7565b92915050565b5f60208284031215612c3657612c3561233c565b5b5f612c4384828501612c0d565b91505092915050565b7f54686520706169722068617320616c7265616479206265656e206372656174655f8201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ca660228361229c565b9150612cb182612c4c565b604082019050919050565b5f6020820190508181035f830152612cd381612c9a565b9050919050565b5f604082019050612ced5f8301856124ea565b612cfa60208301846124ea565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612d5b60268361229c565b9150612d6682612d01565b604082019050919050565b5f6020820190508181035f830152612d8881612d4f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612de960248361229c565b9150612df482612d8f565b604082019050919050565b5f6020820190508181035f830152612e1681612ddd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7760228361229c565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612edf601d8361229c565b9150612eea82612eab565b602082019050919050565b5f6020820190508181035f830152612f0c81612ed3565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612f6d602b8361229c565b9150612f7882612f13565b604082019050919050565b5f6020820190508181035f830152612f9a81612f61565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612ffb60298361229c565b915061300682612fa1565b604082019050919050565b5f6020820190508181035f83015261302881612fef565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f613089602a8361229c565b91506130948261302f565b604082019050919050565b5f6020820190508181035f8301526130b68161307d565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f6130f1601f8361229c565b91506130fc826130bd565b602082019050919050565b5f6020820190508181035f83015261311e816130e5565b9050919050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f5f8201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b5f6131a560448361229c565b91506131b082613125565b606082019050919050565b5f6020820190508181035f8301526131d281613199565b9050919050565b5f6131e38261239a565b91506131ee8361239a565b92508282026131fc8161239a565b915082820484148315176132135761321261270f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132518261239a565b915061325c8361239a565b92508261326c5761326b61321a565b5b828204905092915050565b5f6132818261239a565b915061328c8361239a565b92508282039050818111156132a4576132a361270f565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61330460258361229c565b915061330f826132aa565b604082019050919050565b5f6020820190508181035f830152613331816132f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61339260238361229c565b915061339d82613338565b604082019050919050565b5f6020820190508181035f8301526133bf81613386565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61342060268361229c565b915061342b826133c6565b604082019050919050565b5f6020820190508181035f83015261344d81613414565b905091905056fea2646970667358221220664128d2e232c13516e9aacd1e4452763fd9f029f91a81efe05d861fbaa780bf64736f6c63430008160033

Deployed Bytecode Sourcemap

10764:5777:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2035:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3087:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16210:121;;;;;;;;;;;;;:::i;:::-;;2404:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3320:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11222:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2287:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3667:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11190:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11011:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15385:381;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11055:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15782:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2536:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8122:111;;;;;;;;;;;;;:::i;:::-;;10976:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7863:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16103:91;;;;;;;;;;;;;:::i;:::-;;2159:112;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3939:474;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2687:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14045:1069;;;;;;;;;;;;;:::i;:::-;;16347:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11146:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2912:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11109:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15130:239;;;;;;;;;;;;;:::i;:::-;;8249:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2035:108;2089:13;2126:5;2119:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2035:108;:::o;3087:217::-;3170:4;3191:13;3207:12;:10;:12::i;:::-;3191:28;;3234:32;3243:5;3250:7;3259:6;3234:8;:32::i;:::-;3288:4;3281:11;;;3087:217;;;;:::o;16210:121::-;8029:12;:10;:12::i;:::-;8018:23;;:7;:5;:7::i;:::-;:23;;;8010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16278:8:::1;16270:26;;:49;16297:21;16270:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16210:121::o:0;2404:116::-;2465:7;2496:12;;2489:19;;2404:116;:::o;3320:331::-;3467:4;3488:15;3506:12;:10;:12::i;:::-;3488:30;;3533:38;3549:4;3555:7;3564:6;3533:15;:38::i;:::-;3586:27;3596:4;3602:2;3606:6;3586:9;:27::i;:::-;3635:4;3628:11;;;3320:331;;;;;:::o;11222:22::-;;;;:::o;2287:101::-;2345:5;2374:2;2367:9;;2287:101;:::o;3667:256::-;3755:4;3776:13;3792:12;:10;:12::i;:::-;3776:28;;3819:66;3828:5;3835:7;3874:10;3844:11;:18;3856:5;3844:18;;;;;;;;;;;;;;;:27;3863:7;3844:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;3819:8;:66::i;:::-;3907:4;3900:11;;;3667:256;;;;:::o;11190:21::-;;;;:::o;11011:33::-;;;:::o;15385:381::-;8029:12;:10;:12::i;:::-;8018:23;;:7;:5;:7::i;:::-;:23;;;8010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15493:32:::1;15518:6;15493:20;15511:1;15493:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:32;;;;:::i;:::-;15477:12;:48;;15469:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;15625:29;15650:3;15625:20;15643:1;15625:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15609:12;:45;;15601:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;15742:12;15727;:27;;;;15385:381:::0;:::o;11055:37::-;;;:::o;15782:305::-;8029:12;:10;:12::i;:::-;8018:23;;:7;:5;:7::i;:::-;:23;;;8010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15896:1:::1;15883:9;:14;;:33;;;;;15915:1;15901:10;:15;;15883:33;15875:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;16031:9;16022:6;:18;;;;16065:10;16055:7;:20;;;;15782:305:::0;;:::o;2536:135::-;2610:7;2641:9;:18;2651:7;2641:18;;;;;;;;;;;;;;;;2634:25;;2536:135;;;:::o;8122:111::-;8029:12;:10;:12::i;:::-;8018:23;;:7;:5;:7::i;:::-;:23;;;8010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8191:30:::1;8218:1;8191:18;:30::i;:::-;8122:111::o:0;10976:24::-;;;;;;;;;;;;;:::o;7863:95::-;7909:7;7940:6;;;;;;;;;;;7933:13;;7863:95;:::o;16103:91::-;8029:12;:10;:12::i;:::-;8018:23;;:7;:5;:7::i;:::-;:23;;;8010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16181:1:::1;16167:11;:15;;;;16103:91::o:0;2159:112::-;2215:13;2252:7;2245:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2159:112;:::o;3939:474::-;4032:4;4053:13;4069:12;:10;:12::i;:::-;4053:28;;4096:24;4123:11;:18;4135:5;4123:18;;;;;;;;;;;;;;;:27;4142:7;4123:27;;;;;;;;;;;;;;;;4096:54;;4193:15;4173:16;:35;;4165:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4294:60;4303:5;4310:7;4338:15;4319:16;:34;4294:8;:60::i;:::-;4397:4;4390:11;;;;3939:474;;;;:::o;2687:209::-;2766:4;2787:13;2803:12;:10;:12::i;:::-;2787:28;;2830;2840:5;2847:2;2851:6;2830:9;:28::i;:::-;2880:4;2873:11;;;2687:209;;;;:::o;14045:1069::-;14087:23;14113:24;14131:4;14113:9;:24::i;:::-;14087:50;;14175:1;14156:15;:20;14152:33;;14178:7;;;14152:33;14221:12;;14203:15;:30;14199:66;;;14253:12;;14235:30;;14199:66;14286:18;14307:21;14286:42;;14349:21;14387:1;14373:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14349:40;;14422:4;14404;14409:1;14404:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10916:42;14452:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14442:4;14447:1;14442:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;14487:58;14504:4;10916:42;14529:15;14487:8;:58::i;:::-;10916:42;14566:58;;;14643:15;14677:1;14697:4;14728;14752:15;14566:216;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14803:14;14820:37;14846:10;14820:21;:25;;:37;;;;:::i;:::-;14803:54;;14872:14;14889:23;14908:3;14889:14;14900:2;14889:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;14872:40;;14942:18;14953:6;14942;:10;;:18;;;;:::i;:::-;14933:27;;14983:8;14975:26;;:34;15002:6;14975:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15032:12;15024:30;;:38;15055:6;15024:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15095:6;15088:14;;;;;;;;;;14072:1042;;;;;14045:1069;:::o;16347:142::-;8029:12;:10;:12::i;:::-;8018:23;;:7;:5;:7::i;:::-;:23;;;8010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16421:5:::1;:14;;;16436:8;16446:5;:15;;;16470:4;16446:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16421:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16347:142:::0;:::o;11146:27::-;;;;:::o;2912:159::-;3001:7;3032:11;:18;3044:5;3032:18;;;;;;;;;;;;;;;:27;3051:7;3032:27;;;;;;;;;;;;;;;;3025:34;;2912:159;;;;:::o;11109:26::-;;;;:::o;15130:239::-;8029:12;:10;:12::i;:::-;8018:23;;:7;:5;:7::i;:::-;:23;;;8010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15214:1:::1;15193:23;;:9;;;;;;;;;;;:23;;;15185:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10916:42;15300:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15282:44;;;15335:4;10916:42;15342:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15282:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15270:9;;:87;;;;;;;;;;;;;;;;;;15130:239::o:0;8249:213::-;8029:12;:10;:12::i;:::-;8018:23;;:7;:5;:7::i;:::-;:23;;;8010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8362:1:::1;8342:22;;:8;:22;;::::0;8334:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8422:28;8441:8;8422:18;:28::i;:::-;8249:213:::0;:::o;319:106::-;372:7;403:10;396:17;;319:106;:::o;6318:420::-;6491:1;6474:19;;:5;:19;;;6466:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6576:1;6557:21;;:7;:21;;;6549:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6668:6;6638:11;:18;6650:5;6638:18;;;;;;;;;;;;;;;:27;6657:7;6638:27;;;;;;;;;;;;;;;:36;;;;6710:7;6694:32;;6703:5;6694:32;;;6719:6;6694:32;;;;;;:::i;:::-;;;;;;;;6318:420;;;:::o;6754:501::-;6909:24;6936:25;6946:5;6953:7;6936:9;:25::i;:::-;6909:52;;7000:17;6980:16;:37;6976:268;;7066:6;7046:16;:26;;7038:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7158:51;7167:5;7174:7;7202:6;7183:16;:25;7158:8;:51::i;:::-;6976:268;6894:361;6754:501;;;:::o;12381:1648::-;12549:1;12533:18;;:4;:18;;;12525:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12636:1;12622:16;;:2;:16;;;12614:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12716:1;12707:6;:10;12699:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12785:13;12801:21;:27;12823:4;12801:27;;;;;;;;;;;;;;;;;;;;;;;;;:56;;;;12832:21;:25;12854:2;12832:25;;;;;;;;;;;;;;;;;;;;;;;;;12801:56;12785:72;;12901:1;12880:23;;:9;;;;;;;;;;;:23;;;;:35;;;;12907:8;12880:35;12872:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12972:11;12992:9;;;;;;;;;;;12986:15;;:2;:15;;;12972:29;;13016:10;13037:9;;;;;;;;;;;13029:17;;:4;:17;;;13016:30;;13072:6;13071:7;:26;;;;;13096:1;13082:11;;:15;13071:26;:39;;;;;13102:8;13101:9;13071:39;13067:180;;;13163:11;;13153:6;13137:13;13147:2;13137:9;:13::i;:::-;:22;;;;:::i;:::-;:37;;13129:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;13067:180;13318:12;;13290:24;13308:4;13290:9;:24::i;:::-;:40;;:69;;;;;13352:7;;;;;;;;;;;13351:8;13290:69;:96;;;;;13380:6;13290:96;:126;;;;;13408:8;13407:9;13290:126;13268:276;;;13461:4;13451:7;;:14;;;;;;;;;;;;;;;;;;13484:10;:8;:10::i;:::-;13523:5;13513:7;;:15;;;;;;;;;;;;;;;;;;13268:276;13564:11;13578:5;:24;;13595:7;;13578:24;;;13586:6;;13578:24;13564:38;;13633:1;13627:3;:7;13623:341;;;13660:8;13659:9;:21;;;;;13673:7;;;;;;;;;;;13672:8;13659:21;:42;;;;;13685:5;:15;;;;13694:6;13685:15;13659:42;13655:294;;;13726:12;13741:24;13761:3;13741:15;13752:3;13741:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;13726:39;;13805:1;13798:4;:8;13794:81;;;13833:42;13849:4;13863;13870;13833:15;:42::i;:::-;13794:81;13913:16;13924:4;13913:6;:10;;:16;;;;:::i;:::-;13904:25;;13703:246;13655:294;13623:341;13984:33;14000:4;14006:2;14010:6;13984:15;:33::i;:::-;12510:1519;;;;12381:1648;;;:::o;8976:106::-;9034:7;9069:1;9065;:5;;;;:::i;:::-;9058:12;;8976:106;;;;:::o;9098:::-;9156:7;9191:1;9187;:5;;;;:::i;:::-;9180:12;;9098:106;;;;:::o;8478:207::-;8556:16;8575:6;;;;;;;;;;;8556:25;;8605:8;8596:6;;:17;;;;;;;;;;;;;;;;;;8664:8;8633:40;;8654:8;8633:40;;;;;;;;;;;;8541:144;8478:207;:::o;8854:106::-;8912:7;8947:1;8943;:5;;;;:::i;:::-;8936:12;;8854:106;;;;:::o;4429:751::-;4596:1;4580:18;;:4;:18;;;4572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4677:1;4663:16;;:2;:16;;;4655:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4740:38;4761:4;4767:2;4771:6;4740:20;:38::i;:::-;4799:19;4821:9;:15;4831:4;4821:15;;;;;;;;;;;;;;;;4799:37;;4874:6;4859:11;:21;;4851:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4999:6;4985:11;:20;4967:9;:15;4977:4;4967:15;;;;;;;;;;;;;;;:38;;;;5052:6;5035:9;:13;5045:2;5035:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;5099:2;5084:26;;5093:4;5084:26;;;5103:6;5084:26;;;;;;:::i;:::-;;;;;;;;5131:37;5151:4;5157:2;5161:6;5131:19;:37::i;:::-;4557:623;4429:751;;;:::o;7271:141::-;;;;:::o;7428:140::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:109::-;6405:7;6434:24;6452:5;6434:24;:::i;:::-;6423:35;;6355:109;;;:::o;6470:148::-;6556:37;6587:5;6556:37;:::i;:::-;6549:5;6546:48;6536:76;;6608:1;6605;6598:12;6536:76;6470:148;:::o;6624:165::-;6683:5;6721:6;6708:20;6699:29;;6737:46;6777:5;6737:46;:::i;:::-;6624:165;;;;:::o;6795:355::-;6867:6;6916:2;6904:9;6895:7;6891:23;6887:32;6884:119;;;6922:79;;:::i;:::-;6884:119;7042:1;7067:66;7125:7;7116:6;7105:9;7101:22;7067:66;:::i;:::-;7057:76;;7013:130;6795:355;;;;:::o;7156:474::-;7224:6;7232;7281:2;7269:9;7260:7;7256:23;7252:32;7249:119;;;7287:79;;:::i;:::-;7249:119;7407:1;7432:53;7477:7;7468:6;7457:9;7453:22;7432:53;:::i;:::-;7422:63;;7378:117;7534:2;7560:53;7605:7;7596:6;7585:9;7581:22;7560:53;:::i;:::-;7550:63;;7505:118;7156:474;;;;;:::o;7636:180::-;7684:77;7681:1;7674:88;7781:4;7778:1;7771:15;7805:4;7802:1;7795:15;7822:320;7866:6;7903:1;7897:4;7893:12;7883:22;;7950:1;7944:4;7940:12;7971:18;7961:81;;8027:4;8019:6;8015:17;8005:27;;7961:81;8089:2;8081:6;8078:14;8058:18;8055:38;8052:84;;8108:18;;:::i;:::-;8052:84;7873:269;7822:320;;;:::o;8148:182::-;8288:34;8284:1;8276:6;8272:14;8265:58;8148:182;:::o;8336:366::-;8478:3;8499:67;8563:2;8558:3;8499:67;:::i;:::-;8492:74;;8575:93;8664:3;8575:93;:::i;:::-;8693:2;8688:3;8684:12;8677:19;;8336:366;;;:::o;8708:419::-;8874:4;8912:2;8901:9;8897:18;8889:26;;8961:9;8955:4;8951:20;8947:1;8936:9;8932:17;8925:47;8989:131;9115:4;8989:131;:::i;:::-;8981:139;;8708:419;;;:::o;9133:180::-;9181:77;9178:1;9171:88;9278:4;9275:1;9268:15;9302:4;9299:1;9292:15;9319:191;9359:3;9378:20;9396:1;9378:20;:::i;:::-;9373:25;;9412:20;9430:1;9412:20;:::i;:::-;9407:25;;9455:1;9452;9448:9;9441:16;;9476:3;9473:1;9470:10;9467:36;;;9483:18;;:::i;:::-;9467:36;9319:191;;;;:::o;9516:243::-;9656:34;9652:1;9644:6;9640:14;9633:58;9725:26;9720:2;9712:6;9708:15;9701:51;9516:243;:::o;9765:366::-;9907:3;9928:67;9992:2;9987:3;9928:67;:::i;:::-;9921:74;;10004:93;10093:3;10004:93;:::i;:::-;10122:2;10117:3;10113:12;10106:19;;9765:366;;;:::o;10137:419::-;10303:4;10341:2;10330:9;10326:18;10318:26;;10390:9;10384:4;10380:20;10376:1;10365:9;10361:17;10354:47;10418:131;10544:4;10418:131;:::i;:::-;10410:139;;10137:419;;;:::o;10562:240::-;10702:34;10698:1;10690:6;10686:14;10679:58;10771:23;10766:2;10758:6;10754:15;10747:48;10562:240;:::o;10808:366::-;10950:3;10971:67;11035:2;11030:3;10971:67;:::i;:::-;10964:74;;11047:93;11136:3;11047:93;:::i;:::-;11165:2;11160:3;11156:12;11149:19;;10808:366;;;:::o;11180:419::-;11346:4;11384:2;11373:9;11369:18;11361:26;;11433:9;11427:4;11423:20;11419:1;11408:9;11404:17;11397:47;11461:131;11587:4;11461:131;:::i;:::-;11453:139;;11180:419;;;:::o;11605:233::-;11745:34;11741:1;11733:6;11729:14;11722:58;11814:16;11809:2;11801:6;11797:15;11790:41;11605:233;:::o;11844:366::-;11986:3;12007:67;12071:2;12066:3;12007:67;:::i;:::-;12000:74;;12083:93;12172:3;12083:93;:::i;:::-;12201:2;12196:3;12192:12;12185:19;;11844:366;;;:::o;12216:419::-;12382:4;12420:2;12409:9;12405:18;12397:26;;12469:9;12463:4;12459:20;12455:1;12444:9;12440:17;12433:47;12497:131;12623:4;12497:131;:::i;:::-;12489:139;;12216:419;;;:::o;12641:224::-;12781:34;12777:1;12769:6;12765:14;12758:58;12850:7;12845:2;12837:6;12833:15;12826:32;12641:224;:::o;12871:366::-;13013:3;13034:67;13098:2;13093:3;13034:67;:::i;:::-;13027:74;;13110:93;13199:3;13110:93;:::i;:::-;13228:2;13223:3;13219:12;13212:19;;12871:366;;;:::o;13243:419::-;13409:4;13447:2;13436:9;13432:18;13424:26;;13496:9;13490:4;13486:20;13482:1;13471:9;13467:17;13460:47;13524:131;13650:4;13524:131;:::i;:::-;13516:139;;13243:419;;;:::o;13668:180::-;13716:77;13713:1;13706:88;13813:4;13810:1;13803:15;13837:4;13834:1;13827:15;13854:180;13902:77;13899:1;13892:88;13999:4;13996:1;13989:15;14023:4;14020:1;14013:15;14040:143;14097:5;14128:6;14122:13;14113:22;;14144:33;14171:5;14144:33;:::i;:::-;14040:143;;;;:::o;14189:351::-;14259:6;14308:2;14296:9;14287:7;14283:23;14279:32;14276:119;;;14314:79;;:::i;:::-;14276:119;14434:1;14459:64;14515:7;14506:6;14495:9;14491:22;14459:64;:::i;:::-;14449:74;;14405:128;14189:351;;;;:::o;14546:85::-;14591:7;14620:5;14609:16;;14546:85;;;:::o;14637:60::-;14665:3;14686:5;14679:12;;14637:60;;;:::o;14703:158::-;14761:9;14794:61;14812:42;14821:32;14847:5;14821:32;:::i;:::-;14812:42;:::i;:::-;14794:61;:::i;:::-;14781:74;;14703:158;;;:::o;14867:147::-;14962:45;15001:5;14962:45;:::i;:::-;14957:3;14950:58;14867:147;;:::o;15020:114::-;15087:6;15121:5;15115:12;15105:22;;15020:114;;;:::o;15140:184::-;15239:11;15273:6;15268:3;15261:19;15313:4;15308:3;15304:14;15289:29;;15140:184;;;;:::o;15330:132::-;15397:4;15420:3;15412:11;;15450:4;15445:3;15441:14;15433:22;;15330:132;;;:::o;15468:108::-;15545:24;15563:5;15545:24;:::i;:::-;15540:3;15533:37;15468:108;;:::o;15582:179::-;15651:10;15672:46;15714:3;15706:6;15672:46;:::i;:::-;15750:4;15745:3;15741:14;15727:28;;15582:179;;;;:::o;15767:113::-;15837:4;15869;15864:3;15860:14;15852:22;;15767:113;;;:::o;15916:732::-;16035:3;16064:54;16112:5;16064:54;:::i;:::-;16134:86;16213:6;16208:3;16134:86;:::i;:::-;16127:93;;16244:56;16294:5;16244:56;:::i;:::-;16323:7;16354:1;16339:284;16364:6;16361:1;16358:13;16339:284;;;16440:6;16434:13;16467:63;16526:3;16511:13;16467:63;:::i;:::-;16460:70;;16553:60;16606:6;16553:60;:::i;:::-;16543:70;;16399:224;16386:1;16383;16379:9;16374:14;;16339:284;;;16343:14;16639:3;16632:10;;16040:608;;;15916:732;;;;:::o;16654:831::-;16917:4;16955:3;16944:9;16940:19;16932:27;;16969:71;17037:1;17026:9;17022:17;17013:6;16969:71;:::i;:::-;17050:80;17126:2;17115:9;17111:18;17102:6;17050:80;:::i;:::-;17177:9;17171:4;17167:20;17162:2;17151:9;17147:18;17140:48;17205:108;17308:4;17299:6;17205:108;:::i;:::-;17197:116;;17323:72;17391:2;17380:9;17376:18;17367:6;17323:72;:::i;:::-;17405:73;17473:3;17462:9;17458:19;17449:6;17405:73;:::i;:::-;16654:831;;;;;;;;:::o;17491:143::-;17548:5;17579:6;17573:13;17564:22;;17595:33;17622:5;17595:33;:::i;:::-;17491:143;;;;:::o;17640:351::-;17710:6;17759:2;17747:9;17738:7;17734:23;17730:32;17727:119;;;17765:79;;:::i;:::-;17727:119;17885:1;17910:64;17966:7;17957:6;17946:9;17942:22;17910:64;:::i;:::-;17900:74;;17856:128;17640:351;;;;:::o;17997:332::-;18118:4;18156:2;18145:9;18141:18;18133:26;;18169:71;18237:1;18226:9;18222:17;18213:6;18169:71;:::i;:::-;18250:72;18318:2;18307:9;18303:18;18294:6;18250:72;:::i;:::-;17997:332;;;;;:::o;18335:116::-;18405:21;18420:5;18405:21;:::i;:::-;18398:5;18395:32;18385:60;;18441:1;18438;18431:12;18385:60;18335:116;:::o;18457:137::-;18511:5;18542:6;18536:13;18527:22;;18558:30;18582:5;18558:30;:::i;:::-;18457:137;;;;:::o;18600:345::-;18667:6;18716:2;18704:9;18695:7;18691:23;18687:32;18684:119;;;18722:79;;:::i;:::-;18684:119;18842:1;18867:61;18920:7;18911:6;18900:9;18896:22;18867:61;:::i;:::-;18857:71;;18813:125;18600:345;;;;:::o;18951:221::-;19091:34;19087:1;19079:6;19075:14;19068:58;19160:4;19155:2;19147:6;19143:15;19136:29;18951:221;:::o;19178:366::-;19320:3;19341:67;19405:2;19400:3;19341:67;:::i;:::-;19334:74;;19417:93;19506:3;19417:93;:::i;:::-;19535:2;19530:3;19526:12;19519:19;;19178:366;;;:::o;19550:419::-;19716:4;19754:2;19743:9;19739:18;19731:26;;19803:9;19797:4;19793:20;19789:1;19778:9;19774:17;19767:47;19831:131;19957:4;19831:131;:::i;:::-;19823:139;;19550:419;;;:::o;19975:332::-;20096:4;20134:2;20123:9;20119:18;20111:26;;20147:71;20215:1;20204:9;20200:17;20191:6;20147:71;:::i;:::-;20228:72;20296:2;20285:9;20281:18;20272:6;20228:72;:::i;:::-;19975:332;;;;;:::o;20313:225::-;20453:34;20449:1;20441:6;20437:14;20430:58;20522:8;20517:2;20509:6;20505:15;20498:33;20313:225;:::o;20544:366::-;20686:3;20707:67;20771:2;20766:3;20707:67;:::i;:::-;20700:74;;20783:93;20872:3;20783:93;:::i;:::-;20901:2;20896:3;20892:12;20885:19;;20544:366;;;:::o;20916:419::-;21082:4;21120:2;21109:9;21105:18;21097:26;;21169:9;21163:4;21159:20;21155:1;21144:9;21140:17;21133:47;21197:131;21323:4;21197:131;:::i;:::-;21189:139;;20916:419;;;:::o;21341:223::-;21481:34;21477:1;21469:6;21465:14;21458:58;21550:6;21545:2;21537:6;21533:15;21526:31;21341:223;:::o;21570:366::-;21712:3;21733:67;21797:2;21792:3;21733:67;:::i;:::-;21726:74;;21809:93;21898:3;21809:93;:::i;:::-;21927:2;21922:3;21918:12;21911:19;;21570:366;;;:::o;21942:419::-;22108:4;22146:2;22135:9;22131:18;22123:26;;22195:9;22189:4;22185:20;22181:1;22170:9;22166:17;22159:47;22223:131;22349:4;22223:131;:::i;:::-;22215:139;;21942:419;;;:::o;22367:221::-;22507:34;22503:1;22495:6;22491:14;22484:58;22576:4;22571:2;22563:6;22559:15;22552:29;22367:221;:::o;22594:366::-;22736:3;22757:67;22821:2;22816:3;22757:67;:::i;:::-;22750:74;;22833:93;22922:3;22833:93;:::i;:::-;22951:2;22946:3;22942:12;22935:19;;22594:366;;;:::o;22966:419::-;23132:4;23170:2;23159:9;23155:18;23147:26;;23219:9;23213:4;23209:20;23205:1;23194:9;23190:17;23183:47;23247:131;23373:4;23247:131;:::i;:::-;23239:139;;22966:419;;;:::o;23391:179::-;23531:31;23527:1;23519:6;23515:14;23508:55;23391:179;:::o;23576:366::-;23718:3;23739:67;23803:2;23798:3;23739:67;:::i;:::-;23732:74;;23815:93;23904:3;23815:93;:::i;:::-;23933:2;23928:3;23924:12;23917:19;;23576:366;;;:::o;23948:419::-;24114:4;24152:2;24141:9;24137:18;24129:26;;24201:9;24195:4;24191:20;24187:1;24176:9;24172:17;24165:47;24229:131;24355:4;24229:131;:::i;:::-;24221:139;;23948:419;;;:::o;24373:230::-;24513:34;24509:1;24501:6;24497:14;24490:58;24582:13;24577:2;24569:6;24565:15;24558:38;24373:230;:::o;24609:366::-;24751:3;24772:67;24836:2;24831:3;24772:67;:::i;:::-;24765:74;;24848:93;24937:3;24848:93;:::i;:::-;24966:2;24961:3;24957:12;24950:19;;24609:366;;;:::o;24981:419::-;25147:4;25185:2;25174:9;25170:18;25162:26;;25234:9;25228:4;25224:20;25220:1;25209:9;25205:17;25198:47;25262:131;25388:4;25262:131;:::i;:::-;25254:139;;24981:419;;;:::o;25406:228::-;25546:34;25542:1;25534:6;25530:14;25523:58;25615:11;25610:2;25602:6;25598:15;25591:36;25406:228;:::o;25640:366::-;25782:3;25803:67;25867:2;25862:3;25803:67;:::i;:::-;25796:74;;25879:93;25968:3;25879:93;:::i;:::-;25997:2;25992:3;25988:12;25981:19;;25640:366;;;:::o;26012:419::-;26178:4;26216:2;26205:9;26201:18;26193:26;;26265:9;26259:4;26255:20;26251:1;26240:9;26236:17;26229:47;26293:131;26419:4;26293:131;:::i;:::-;26285:139;;26012:419;;;:::o;26437:229::-;26577:34;26573:1;26565:6;26561:14;26554:58;26646:12;26641:2;26633:6;26629:15;26622:37;26437:229;:::o;26672:366::-;26814:3;26835:67;26899:2;26894:3;26835:67;:::i;:::-;26828:74;;26911:93;27000:3;26911:93;:::i;:::-;27029:2;27024:3;27020:12;27013:19;;26672:366;;;:::o;27044:419::-;27210:4;27248:2;27237:9;27233:18;27225:26;;27297:9;27291:4;27287:20;27283:1;27272:9;27268:17;27261:47;27325:131;27451:4;27325:131;:::i;:::-;27317:139;;27044:419;;;:::o;27469:181::-;27609:33;27605:1;27597:6;27593:14;27586:57;27469:181;:::o;27656:366::-;27798:3;27819:67;27883:2;27878:3;27819:67;:::i;:::-;27812:74;;27895:93;27984:3;27895:93;:::i;:::-;28013:2;28008:3;28004:12;27997:19;;27656:366;;;:::o;28028:419::-;28194:4;28232:2;28221:9;28217:18;28209:26;;28281:9;28275:4;28271:20;28267:1;28256:9;28252:17;28245:47;28309:131;28435:4;28309:131;:::i;:::-;28301:139;;28028:419;;;:::o;28453:292::-;28593:34;28589:1;28581:6;28577:14;28570:58;28662:34;28657:2;28649:6;28645:15;28638:59;28731:6;28726:2;28718:6;28714:15;28707:31;28453:292;:::o;28751:366::-;28893:3;28914:67;28978:2;28973:3;28914:67;:::i;:::-;28907:74;;28990:93;29079:3;28990:93;:::i;:::-;29108:2;29103:3;29099:12;29092:19;;28751:366;;;:::o;29123:419::-;29289:4;29327:2;29316:9;29312:18;29304:26;;29376:9;29370:4;29366:20;29362:1;29351:9;29347:17;29340:47;29404:131;29530:4;29404:131;:::i;:::-;29396:139;;29123:419;;;:::o;29548:410::-;29588:7;29611:20;29629:1;29611:20;:::i;:::-;29606:25;;29645:20;29663:1;29645:20;:::i;:::-;29640:25;;29700:1;29697;29693:9;29722:30;29740:11;29722:30;:::i;:::-;29711:41;;29901:1;29892:7;29888:15;29885:1;29882:22;29862:1;29855:9;29835:83;29812:139;;29931:18;;:::i;:::-;29812:139;29596:362;29548:410;;;;:::o;29964:180::-;30012:77;30009:1;30002:88;30109:4;30106:1;30099:15;30133:4;30130:1;30123:15;30150:185;30190:1;30207:20;30225:1;30207:20;:::i;:::-;30202:25;;30241:20;30259:1;30241:20;:::i;:::-;30236:25;;30280:1;30270:35;;30285:18;;:::i;:::-;30270:35;30327:1;30324;30320:9;30315:14;;30150:185;;;;:::o;30341:194::-;30381:4;30401:20;30419:1;30401:20;:::i;:::-;30396:25;;30435:20;30453:1;30435:20;:::i;:::-;30430:25;;30479:1;30476;30472:9;30464:17;;30503:1;30497:4;30494:11;30491:37;;;30508:18;;:::i;:::-;30491:37;30341:194;;;;:::o;30541:224::-;30681:34;30677:1;30669:6;30665:14;30658:58;30750:7;30745:2;30737:6;30733:15;30726:32;30541:224;:::o;30771:366::-;30913:3;30934:67;30998:2;30993:3;30934:67;:::i;:::-;30927:74;;31010:93;31099:3;31010:93;:::i;:::-;31128:2;31123:3;31119:12;31112:19;;30771:366;;;:::o;31143:419::-;31309:4;31347:2;31336:9;31332:18;31324:26;;31396:9;31390:4;31386:20;31382:1;31371:9;31367:17;31360:47;31424:131;31550:4;31424:131;:::i;:::-;31416:139;;31143:419;;;:::o;31568:222::-;31708:34;31704:1;31696:6;31692:14;31685:58;31777:5;31772:2;31764:6;31760:15;31753:30;31568:222;:::o;31796:366::-;31938:3;31959:67;32023:2;32018:3;31959:67;:::i;:::-;31952:74;;32035:93;32124:3;32035:93;:::i;:::-;32153:2;32148:3;32144:12;32137:19;;31796:366;;;:::o;32168:419::-;32334:4;32372:2;32361:9;32357:18;32349:26;;32421:9;32415:4;32411:20;32407:1;32396:9;32392:17;32385:47;32449:131;32575:4;32449:131;:::i;:::-;32441:139;;32168:419;;;:::o;32593:225::-;32733:34;32729:1;32721:6;32717:14;32710:58;32802:8;32797:2;32789:6;32785:15;32778:33;32593:225;:::o;32824:366::-;32966:3;32987:67;33051:2;33046:3;32987:67;:::i;:::-;32980:74;;33063:93;33152:3;33063:93;:::i;:::-;33181:2;33176:3;33172:12;33165:19;;32824:366;;;:::o;33196:419::-;33362:4;33400:2;33389:9;33385:18;33377:26;;33449:9;33443:4;33439:20;33435:1;33424:9;33420:17;33413:47;33477:131;33603:4;33477:131;:::i;:::-;33469:139;;33196:419;;;:::o

Swarm Source

ipfs://664128d2e232c13516e9aacd1e4452763fd9f029f91a81efe05d861fbaa780bf

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.