ETH Price: $3,945.72 (+1.97%)

Token

ERC-20: KFCCrazythursdayVme50 (KFC4)
 

Overview

Max Total Supply

4,000,000,000,000 KFC4

Holders

94

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 KFC4

Value
$0.00
0xf1ac83a48a0ecb41aff4cba5fb4e485321fb3402
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
KFC4

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-24
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.12;

pragma abicoder v2;


interface IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

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

abstract contract Ownable {
    address private _owner;

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

    constructor() {
        _transferOwnership(msg.sender);
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "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);
    }
}

contract ERC20 is IERC20 {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


contract KFC4 is ERC20, Ownable {

    uint256 public feeRate;
    bool public transferable;
    mapping(address => bool) public blacklist;
    mapping(address => bool) public dutyFree;
    mapping(address => bool) public pairs;
    mapping(address => bool) public specials;

    event DutyFreeSet(address indexed owner, address indexed account, bool indexed value);
    event PairSet(address indexed owner, address indexed account, bool indexed value);
    event FeeRateSet(address indexed owner, uint256 indexed oldRate, uint256 indexed newRate);
    event BlacklistSet(address indexed owner, address[] accounts);
    event BlacklistRemoved(address indexed owner, address[] accounts);

    constructor() ERC20("KFCCrazythursdayVme50", "KFC4") {
        specials[owner()] = true;

        dutyFree[owner()] = true;
        dutyFree[address(this)] = true;
        dutyFree[address(0xdead)] = true;
        dutyFree[address(0)] = true;

        feeRate = 0.02 ether;

        super._mint(msg.sender, 4000000000000 * 1e18);
    }

    receive() external payable {}

    function _transfer(address from, address to, uint256 amount) internal override {
        require(!blacklist[from], "the sender is on the blacklist");
        require(!blacklist[to], "the receiver is on the blacklist");

        if (!transferable) {
            require(specials[from], "Only special addresses can transfer");
        }

        if (amount > 0 && feeRate > 0) {
            if ((pairs[to] || pairs[from]) && !dutyFree[from] && !dutyFree[to]) {
                uint256 fees = amount * feeRate / 1 ether;
                super._transfer(from, address(this), fees);
                amount -= fees;
            }
        }

        super._transfer(from, to, amount);
    }

    function setTransferable() external onlyOwner {
        transferable = !transferable;
    }

    function setSpecial(address account, bool value) public onlyOwner {
        specials[account] = value;
        dutyFree[account] = value;
    }

    function setFeeRate(uint256 newRate) external onlyOwner {
        emit FeeRateSet(msg.sender, feeRate, newRate);
        feeRate = newRate;
    }

    function setDutyFree(address account) public onlyOwner {
        dutyFree[account] = !dutyFree[account];
        emit DutyFreeSet(msg.sender, account, dutyFree[account]);
    }

    function setPair(address account) external onlyOwner {
        pairs[account] = !pairs[account];
        emit PairSet(msg.sender, account, pairs[account]);
    }

    function setBlacklist(address[] calldata accounts) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            blacklist[accounts[i]] = true;
        }
        emit BlacklistSet(msg.sender, accounts);
    }

    function removeBlacklist(address[] calldata accounts) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            blacklist[accounts[i]] = false;
        }
        emit BlacklistRemoved(msg.sender, accounts);
    }

    function withdrawToken(address token, address to) external onlyOwner {
        require(token != address(0), "token address cannot be zero address");
        uint256 balance = IERC20(token).balanceOf(address(this));
        IERC20(token).transfer(to, balance);
    }

    function withdrawEth(address to) external onlyOwner {
        (bool success, ) = to.call{value: address(this).balance}(new bytes(0));
        require(success, "eth transfer failed");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"BlacklistRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"BlacklistSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"DutyFreeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"uint256","name":"oldRate","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"FeeRateSet","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":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"PairSet","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":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dutyFree","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setDutyFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setSpecial","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTransferable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"specials","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280601581526020017f4b46434372617a797468757273646179566d65353000000000000000000000008152506040518060400160405280600481526020017f4b4643340000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000546565b508060049080519060200190620000af92919062000546565b505050620000c333620002d360201b60201c565b6001600b6000620000d96200039960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620001406200039960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555066470de4df820000600681905550620002cd336c327cb2734119d3b7a900000000620003c360201b62001a521760201c565b620007a2565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000436576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200042d9062000657565b60405180910390fd5b6200044a600083836200053c60201b60201c565b80600260008282546200045e9190620006b2565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004b59190620006b2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200051c919062000720565b60405180910390a362000538600083836200054160201b60201c565b5050565b505050565b505050565b82805462000554906200076c565b90600052602060002090601f016020900481019282620005785760008555620005c4565b82601f106200059357805160ff1916838001178555620005c4565b82800160010185558215620005c4579182015b82811115620005c3578251825591602001919060010190620005a6565b5b509050620005d39190620005d7565b5090565b5b80821115620005f2576000816000905550600101620005d8565b5090565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200063f601f83620005f6565b91506200064c8262000607565b602082019050919050565b60006020820190508181036000830152620006728162000630565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006bf8262000679565b9150620006cc8362000679565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000704576200070362000683565b5b828201905092915050565b6200071a8162000679565b82525050565b60006020820190506200073760008301846200070f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200078557607f821691505b602082108114156200079c576200079b6200073d565b5b50919050565b61351b80620007b26000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063a0b0904e11610095578063dd62ed3e11610064578063dd62ed3e1461065d578063f2fde38b1461069a578063f9f92be4146106c3578063fe33b30214610700576101cd565b8063a0b0904e1461057d578063a457c2d7146105ba578063a9059cbb146105f7578063bf77249114610634576101cd565b80638da5cb5b116100d15780638da5cb5b146104d157806392ff0d31146104fc57806395d89b4114610527578063978bbdb914610552576101cd565b8063715018a6146104685780637911ef9d1461047f5780638187f516146104a8576101cd565b8063313ce567116101645780633aeac4e11161013e5780633aeac4e11461039c57806342d6f0d5146103c557806345596e2e1461040257806370a082311461042b576101cd565b8063313ce5671461031d57806337d8b99514610348578063395093511461035f576101cd565b806315c4e385116101a057806315c4e3851461026357806318160ddd1461028c57806323b872dd146102b757806325e16063146102f4576101cd565b806305ff9463146101d257806306fdde03146101fb578063095ea7b314610226576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f491906124e3565b61073d565b005b34801561020757600080fd5b50610210610864565b60405161021d91906125bc565b60405180910390f35b34801561023257600080fd5b5061024d60048036038101906102489190612614565b6108f6565b60405161025a9190612663565b60405180910390f35b34801561026f57600080fd5b5061028a6004803603810190610285919061267e565b61090d565b005b34801561029857600080fd5b506102a1610ad2565b6040516102ae91906126ba565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d991906126d5565b610adc565b6040516102eb9190612663565b60405180910390f35b34801561030057600080fd5b5061031b6004803603810190610316919061267e565b610bc6565b005b34801561032957600080fd5b50610332610d3a565b60405161033f9190612744565b60405180910390f35b34801561035457600080fd5b5061035d610d43565b005b34801561036b57600080fd5b5061038660048036038101906103819190612614565b610de4565b6040516103939190612663565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be919061275f565b610e82565b005b3480156103d157600080fd5b506103ec60048036038101906103e7919061267e565b611069565b6040516103f99190612663565b60405180910390f35b34801561040e57600080fd5b506104296004803603810190610424919061279f565b611089565b005b34801561043757600080fd5b50610452600480360381019061044d919061267e565b61114f565b60405161045f91906126ba565b60405180910390f35b34801561047457600080fd5b5061047d611197565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612831565b611218565b005b3480156104b457600080fd5b506104cf60048036038101906104ca919061267e565b611382565b005b3480156104dd57600080fd5b506104e6611547565b6040516104f3919061288d565b60405180910390f35b34801561050857600080fd5b50610511611571565b60405161051e9190612663565b60405180910390f35b34801561053357600080fd5b5061053c611584565b60405161054991906125bc565b60405180910390f35b34801561055e57600080fd5b50610567611616565b60405161057491906126ba565b60405180910390f35b34801561058957600080fd5b506105a4600480360381019061059f919061267e565b61161c565b6040516105b19190612663565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190612614565b61163c565b6040516105ee9190612663565b60405180910390f35b34801561060357600080fd5b5061061e60048036038101906106199190612614565b611719565b60405161062b9190612663565b60405180910390f35b34801561064057600080fd5b5061065b60048036038101906106569190612831565b611730565b005b34801561066957600080fd5b50610684600480360381019061067f919061275f565b61189a565b60405161069191906126ba565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc919061267e565b611921565b005b3480156106cf57600080fd5b506106ea60048036038101906106e5919061267e565b611a12565b6040516106f79190612663565b60405180910390f35b34801561070c57600080fd5b506107276004803603810190610722919061267e565b611a32565b6040516107349190612663565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1661075c611547565b73ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a9906128f4565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606003805461087390612943565b80601f016020809104026020016040519081016040528092919081815260200182805461089f90612943565b80156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b5050505050905090565b6000610903338484611bb2565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1661092c611547565b73ffffffffffffffffffffffffffffffffffffffff1614610982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610979906128f4565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615158173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f30757f9f6b8114acbbc655397099fb9a7aa705ec41498de7a514c1eda8a775bd60405160405180910390a450565b6000600254905090565b6000610ae9848484611d7d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba4906129e7565b60405180910390fd5b610bba8533858403611bb2565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16610be5611547565b73ffffffffffffffffffffffffffffffffffffffff1614610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906128f4565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1647600067ffffffffffffffff811115610c7057610c6f612a07565b5b6040519080825280601f01601f191660200182016040528015610ca25781602001600182028036833780820191505090505b50604051610cb09190612a7d565b60006040518083038185875af1925050503d8060008114610ced576040519150601f19603f3d011682016040523d82523d6000602084013e610cf2565b606091505b5050905080610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2d90612ae0565b60405180910390fd5b5050565b60006012905090565b3373ffffffffffffffffffffffffffffffffffffffff16610d62611547565b73ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf906128f4565b60405180910390fd5b600760009054906101000a900460ff1615600760006101000a81548160ff021916908315150217905550565b6000610e78338484600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e739190612b2f565b611bb2565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610ea1611547565b73ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee906128f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90612bf7565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fa2919061288d565b602060405180830381865afa158015610fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe39190612c2c565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611020929190612c59565b6020604051808303816000875af115801561103f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110639190612c97565b50505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff166110a8611547565b73ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f5906128f4565b60405180910390fd5b806006543373ffffffffffffffffffffffffffffffffffffffff167f7ad4ef4cd81b13de60e52aa49a4efc6a1bc6e8bb1849d7e7bce2d790b024f07360405160405180910390a48060068190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166111b6611547565b73ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611203906128f4565b60405180910390fd5b61121660006120f2565b565b3373ffffffffffffffffffffffffffffffffffffffff16611237611547565b73ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611284906128f4565b60405180910390fd5b60005b8282905081101561132d576000600860008585858181106112b4576112b3612cc4565b5b90506020020160208101906112c9919061267e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061132590612cf3565b915050611290565b503373ffffffffffffffffffffffffffffffffffffffff167fb8293b9a53e0474fbb4b753c009c8d9b815388072373c74b5924972a7ce4bced8383604051611376929190612dff565b60405180910390a25050565b3373ffffffffffffffffffffffffffffffffffffffff166113a1611547565b73ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee906128f4565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615158173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff6e49f39f20e6b5412fae608935cb8e4ad4ab19931bd5c1b0346374a1fb9d02a60405160405180910390a450565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900460ff1681565b60606004805461159390612943565b80601f01602080910402602001604051908101604052809291908181526020018280546115bf90612943565b801561160c5780601f106115e15761010080835404028352916020019161160c565b820191906000526020600020905b8154815290600101906020018083116115ef57829003601f168201915b5050505050905090565b60065481565b60096020528060005260406000206000915054906101000a900460ff1681565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f890612e95565b60405180910390fd5b61170e3385858403611bb2565b600191505092915050565b6000611726338484611d7d565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1661174f611547565b73ffffffffffffffffffffffffffffffffffffffff16146117a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179c906128f4565b60405180910390fd5b60005b82829050811015611845576001600860008585858181106117cc576117cb612cc4565b5b90506020020160208101906117e1919061267e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061183d90612cf3565b9150506117a8565b503373ffffffffffffffffffffffffffffffffffffffff167fcc3ffdca5bbed310403c641da58a3bb72535264f23c402a8dcabfdbfbc7e8434838360405161188e929190612dff565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16611940611547565b73ffffffffffffffffffffffffffffffffffffffff1614611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d906128f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90612f27565b60405180910390fd5b611a0f816120f2565b50565b60086020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab990612f93565b60405180910390fd5b611ace600083836121b8565b8060026000828254611ae09190612b2f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b359190612b2f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b9a91906126ba565b60405180910390a3611bae600083836121bd565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1990613025565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c89906130b7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d7091906126ba565b60405180910390a3505050565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0190613123565b60405180910390fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e9061318f565b60405180910390fd5b600760009054906101000a900460ff16611f3857600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2e90613221565b60405180910390fd5b5b600081118015611f4a57506000600654115b156120e257600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ff05750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156120465750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561209c5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120e1576000670de0b6b3a7640000600654836120ba9190613241565b6120c491906132ca565b90506120d18430836121c2565b80826120dd91906132fb565b9150505b5b6120ed8383836121c2565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612232576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612229906133a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229990613433565b60405180910390fd5b6122ad8383836121b8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a906134c5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123c69190612b2f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161242a91906126ba565b60405180910390a361243d8484846121bd565b50505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124788261244d565b9050919050565b6124888161246d565b811461249357600080fd5b50565b6000813590506124a58161247f565b92915050565b60008115159050919050565b6124c0816124ab565b81146124cb57600080fd5b50565b6000813590506124dd816124b7565b92915050565b600080604083850312156124fa576124f9612443565b5b600061250885828601612496565b9250506020612519858286016124ce565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561255d578082015181840152602081019050612542565b8381111561256c576000848401525b50505050565b6000601f19601f8301169050919050565b600061258e82612523565b612598818561252e565b93506125a881856020860161253f565b6125b181612572565b840191505092915050565b600060208201905081810360008301526125d68184612583565b905092915050565b6000819050919050565b6125f1816125de565b81146125fc57600080fd5b50565b60008135905061260e816125e8565b92915050565b6000806040838503121561262b5761262a612443565b5b600061263985828601612496565b925050602061264a858286016125ff565b9150509250929050565b61265d816124ab565b82525050565b60006020820190506126786000830184612654565b92915050565b60006020828403121561269457612693612443565b5b60006126a284828501612496565b91505092915050565b6126b4816125de565b82525050565b60006020820190506126cf60008301846126ab565b92915050565b6000806000606084860312156126ee576126ed612443565b5b60006126fc86828701612496565b935050602061270d86828701612496565b925050604061271e868287016125ff565b9150509250925092565b600060ff82169050919050565b61273e81612728565b82525050565b60006020820190506127596000830184612735565b92915050565b6000806040838503121561277657612775612443565b5b600061278485828601612496565b925050602061279585828601612496565b9150509250929050565b6000602082840312156127b5576127b4612443565b5b60006127c3848285016125ff565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127f1576127f06127cc565b5b8235905067ffffffffffffffff81111561280e5761280d6127d1565b5b60208301915083602082028301111561282a576128296127d6565b5b9250929050565b6000806020838503121561284857612847612443565b5b600083013567ffffffffffffffff81111561286657612865612448565b5b612872858286016127db565b92509250509250929050565b6128878161246d565b82525050565b60006020820190506128a2600083018461287e565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128de60208361252e565b91506128e9826128a8565b602082019050919050565b6000602082019050818103600083015261290d816128d1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061295b57607f821691505b6020821081141561296f5761296e612914565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006129d160288361252e565b91506129dc82612975565b604082019050919050565b60006020820190508181036000830152612a00816129c4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600081905092915050565b6000612a5782612a36565b612a618185612a41565b9350612a7181856020860161253f565b80840191505092915050565b6000612a898284612a4c565b915081905092915050565b7f657468207472616e73666572206661696c656400000000000000000000000000600082015250565b6000612aca60138361252e565b9150612ad582612a94565b602082019050919050565b60006020820190508181036000830152612af981612abd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3a826125de565b9150612b45836125de565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b7a57612b79612b00565b5b828201905092915050565b7f746f6b656e20616464726573732063616e6e6f74206265207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612be160248361252e565b9150612bec82612b85565b604082019050919050565b60006020820190508181036000830152612c1081612bd4565b9050919050565b600081519050612c26816125e8565b92915050565b600060208284031215612c4257612c41612443565b5b6000612c5084828501612c17565b91505092915050565b6000604082019050612c6e600083018561287e565b612c7b60208301846126ab565b9392505050565b600081519050612c91816124b7565b92915050565b600060208284031215612cad57612cac612443565b5b6000612cbb84828501612c82565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612cfe826125de565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d3157612d30612b00565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b612d608161246d565b82525050565b6000612d728383612d57565b60208301905092915050565b6000612d8d6020840184612496565b905092915050565b6000602082019050919050565b6000612dae8385612d3c565b9350612db982612d4d565b8060005b85811015612df257612dcf8284612d7e565b612dd98882612d66565b9750612de483612d95565b925050600181019050612dbd565b5085925050509392505050565b60006020820190508181036000830152612e1a818486612da2565b90509392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612e7f60258361252e565b9150612e8a82612e23565b604082019050919050565b60006020820190508181036000830152612eae81612e72565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f1160268361252e565b9150612f1c82612eb5565b604082019050919050565b60006020820190508181036000830152612f4081612f04565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612f7d601f8361252e565b9150612f8882612f47565b602082019050919050565b60006020820190508181036000830152612fac81612f70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061300f60248361252e565b915061301a82612fb3565b604082019050919050565b6000602082019050818103600083015261303e81613002565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130a160228361252e565b91506130ac82613045565b604082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f7468652073656e646572206973206f6e2074686520626c61636b6c6973740000600082015250565b600061310d601e8361252e565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b7f746865207265636569766572206973206f6e2074686520626c61636b6c697374600082015250565b600061317960208361252e565b915061318482613143565b602082019050919050565b600060208201905081810360008301526131a88161316c565b9050919050565b7f4f6e6c79207370656369616c206164647265737365732063616e207472616e7360008201527f6665720000000000000000000000000000000000000000000000000000000000602082015250565b600061320b60238361252e565b9150613216826131af565b604082019050919050565b6000602082019050818103600083015261323a816131fe565b9050919050565b600061324c826125de565b9150613257836125de565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132905761328f612b00565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132d5826125de565b91506132e0836125de565b9250826132f0576132ef61329b565b5b828204905092915050565b6000613306826125de565b9150613311836125de565b92508282101561332457613323612b00565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061338b60258361252e565b91506133968261332f565b604082019050919050565b600060208201905081810360008301526133ba8161337e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061341d60238361252e565b9150613428826133c1565b604082019050919050565b6000602082019050818103600083015261344c81613410565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006134af60268361252e565b91506134ba82613453565b604082019050919050565b600060208201905081810360008301526134de816134a2565b905091905056fea2646970667358221220bba4229f2fe9ee5ac8dd04412b13997b66e7c5c379bd872a0a6a03a855e253a364736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063a0b0904e11610095578063dd62ed3e11610064578063dd62ed3e1461065d578063f2fde38b1461069a578063f9f92be4146106c3578063fe33b30214610700576101cd565b8063a0b0904e1461057d578063a457c2d7146105ba578063a9059cbb146105f7578063bf77249114610634576101cd565b80638da5cb5b116100d15780638da5cb5b146104d157806392ff0d31146104fc57806395d89b4114610527578063978bbdb914610552576101cd565b8063715018a6146104685780637911ef9d1461047f5780638187f516146104a8576101cd565b8063313ce567116101645780633aeac4e11161013e5780633aeac4e11461039c57806342d6f0d5146103c557806345596e2e1461040257806370a082311461042b576101cd565b8063313ce5671461031d57806337d8b99514610348578063395093511461035f576101cd565b806315c4e385116101a057806315c4e3851461026357806318160ddd1461028c57806323b872dd146102b757806325e16063146102f4576101cd565b806305ff9463146101d257806306fdde03146101fb578063095ea7b314610226576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f491906124e3565b61073d565b005b34801561020757600080fd5b50610210610864565b60405161021d91906125bc565b60405180910390f35b34801561023257600080fd5b5061024d60048036038101906102489190612614565b6108f6565b60405161025a9190612663565b60405180910390f35b34801561026f57600080fd5b5061028a6004803603810190610285919061267e565b61090d565b005b34801561029857600080fd5b506102a1610ad2565b6040516102ae91906126ba565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d991906126d5565b610adc565b6040516102eb9190612663565b60405180910390f35b34801561030057600080fd5b5061031b6004803603810190610316919061267e565b610bc6565b005b34801561032957600080fd5b50610332610d3a565b60405161033f9190612744565b60405180910390f35b34801561035457600080fd5b5061035d610d43565b005b34801561036b57600080fd5b5061038660048036038101906103819190612614565b610de4565b6040516103939190612663565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be919061275f565b610e82565b005b3480156103d157600080fd5b506103ec60048036038101906103e7919061267e565b611069565b6040516103f99190612663565b60405180910390f35b34801561040e57600080fd5b506104296004803603810190610424919061279f565b611089565b005b34801561043757600080fd5b50610452600480360381019061044d919061267e565b61114f565b60405161045f91906126ba565b60405180910390f35b34801561047457600080fd5b5061047d611197565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612831565b611218565b005b3480156104b457600080fd5b506104cf60048036038101906104ca919061267e565b611382565b005b3480156104dd57600080fd5b506104e6611547565b6040516104f3919061288d565b60405180910390f35b34801561050857600080fd5b50610511611571565b60405161051e9190612663565b60405180910390f35b34801561053357600080fd5b5061053c611584565b60405161054991906125bc565b60405180910390f35b34801561055e57600080fd5b50610567611616565b60405161057491906126ba565b60405180910390f35b34801561058957600080fd5b506105a4600480360381019061059f919061267e565b61161c565b6040516105b19190612663565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190612614565b61163c565b6040516105ee9190612663565b60405180910390f35b34801561060357600080fd5b5061061e60048036038101906106199190612614565b611719565b60405161062b9190612663565b60405180910390f35b34801561064057600080fd5b5061065b60048036038101906106569190612831565b611730565b005b34801561066957600080fd5b50610684600480360381019061067f919061275f565b61189a565b60405161069191906126ba565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc919061267e565b611921565b005b3480156106cf57600080fd5b506106ea60048036038101906106e5919061267e565b611a12565b6040516106f79190612663565b60405180910390f35b34801561070c57600080fd5b506107276004803603810190610722919061267e565b611a32565b6040516107349190612663565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1661075c611547565b73ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a9906128f4565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606003805461087390612943565b80601f016020809104026020016040519081016040528092919081815260200182805461089f90612943565b80156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b5050505050905090565b6000610903338484611bb2565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1661092c611547565b73ffffffffffffffffffffffffffffffffffffffff1614610982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610979906128f4565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615158173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f30757f9f6b8114acbbc655397099fb9a7aa705ec41498de7a514c1eda8a775bd60405160405180910390a450565b6000600254905090565b6000610ae9848484611d7d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba4906129e7565b60405180910390fd5b610bba8533858403611bb2565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16610be5611547565b73ffffffffffffffffffffffffffffffffffffffff1614610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906128f4565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1647600067ffffffffffffffff811115610c7057610c6f612a07565b5b6040519080825280601f01601f191660200182016040528015610ca25781602001600182028036833780820191505090505b50604051610cb09190612a7d565b60006040518083038185875af1925050503d8060008114610ced576040519150601f19603f3d011682016040523d82523d6000602084013e610cf2565b606091505b5050905080610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2d90612ae0565b60405180910390fd5b5050565b60006012905090565b3373ffffffffffffffffffffffffffffffffffffffff16610d62611547565b73ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf906128f4565b60405180910390fd5b600760009054906101000a900460ff1615600760006101000a81548160ff021916908315150217905550565b6000610e78338484600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e739190612b2f565b611bb2565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610ea1611547565b73ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee906128f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90612bf7565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fa2919061288d565b602060405180830381865afa158015610fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe39190612c2c565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611020929190612c59565b6020604051808303816000875af115801561103f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110639190612c97565b50505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff166110a8611547565b73ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f5906128f4565b60405180910390fd5b806006543373ffffffffffffffffffffffffffffffffffffffff167f7ad4ef4cd81b13de60e52aa49a4efc6a1bc6e8bb1849d7e7bce2d790b024f07360405160405180910390a48060068190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166111b6611547565b73ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611203906128f4565b60405180910390fd5b61121660006120f2565b565b3373ffffffffffffffffffffffffffffffffffffffff16611237611547565b73ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611284906128f4565b60405180910390fd5b60005b8282905081101561132d576000600860008585858181106112b4576112b3612cc4565b5b90506020020160208101906112c9919061267e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061132590612cf3565b915050611290565b503373ffffffffffffffffffffffffffffffffffffffff167fb8293b9a53e0474fbb4b753c009c8d9b815388072373c74b5924972a7ce4bced8383604051611376929190612dff565b60405180910390a25050565b3373ffffffffffffffffffffffffffffffffffffffff166113a1611547565b73ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee906128f4565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615158173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff6e49f39f20e6b5412fae608935cb8e4ad4ab19931bd5c1b0346374a1fb9d02a60405160405180910390a450565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900460ff1681565b60606004805461159390612943565b80601f01602080910402602001604051908101604052809291908181526020018280546115bf90612943565b801561160c5780601f106115e15761010080835404028352916020019161160c565b820191906000526020600020905b8154815290600101906020018083116115ef57829003601f168201915b5050505050905090565b60065481565b60096020528060005260406000206000915054906101000a900460ff1681565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f890612e95565b60405180910390fd5b61170e3385858403611bb2565b600191505092915050565b6000611726338484611d7d565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1661174f611547565b73ffffffffffffffffffffffffffffffffffffffff16146117a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179c906128f4565b60405180910390fd5b60005b82829050811015611845576001600860008585858181106117cc576117cb612cc4565b5b90506020020160208101906117e1919061267e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061183d90612cf3565b9150506117a8565b503373ffffffffffffffffffffffffffffffffffffffff167fcc3ffdca5bbed310403c641da58a3bb72535264f23c402a8dcabfdbfbc7e8434838360405161188e929190612dff565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16611940611547565b73ffffffffffffffffffffffffffffffffffffffff1614611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d906128f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90612f27565b60405180910390fd5b611a0f816120f2565b50565b60086020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab990612f93565b60405180910390fd5b611ace600083836121b8565b8060026000828254611ae09190612b2f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b359190612b2f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b9a91906126ba565b60405180910390a3611bae600083836121bd565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1990613025565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c89906130b7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d7091906126ba565b60405180910390a3505050565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0190613123565b60405180910390fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e9061318f565b60405180910390fd5b600760009054906101000a900460ff16611f3857600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2e90613221565b60405180910390fd5b5b600081118015611f4a57506000600654115b156120e257600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ff05750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156120465750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561209c5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120e1576000670de0b6b3a7640000600654836120ba9190613241565b6120c491906132ca565b90506120d18430836121c2565b80826120dd91906132fb565b9150505b5b6120ed8383836121c2565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612232576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612229906133a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229990613433565b60405180910390fd5b6122ad8383836121b8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a906134c5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123c69190612b2f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161242a91906126ba565b60405180910390a361243d8484846121bd565b50505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124788261244d565b9050919050565b6124888161246d565b811461249357600080fd5b50565b6000813590506124a58161247f565b92915050565b60008115159050919050565b6124c0816124ab565b81146124cb57600080fd5b50565b6000813590506124dd816124b7565b92915050565b600080604083850312156124fa576124f9612443565b5b600061250885828601612496565b9250506020612519858286016124ce565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561255d578082015181840152602081019050612542565b8381111561256c576000848401525b50505050565b6000601f19601f8301169050919050565b600061258e82612523565b612598818561252e565b93506125a881856020860161253f565b6125b181612572565b840191505092915050565b600060208201905081810360008301526125d68184612583565b905092915050565b6000819050919050565b6125f1816125de565b81146125fc57600080fd5b50565b60008135905061260e816125e8565b92915050565b6000806040838503121561262b5761262a612443565b5b600061263985828601612496565b925050602061264a858286016125ff565b9150509250929050565b61265d816124ab565b82525050565b60006020820190506126786000830184612654565b92915050565b60006020828403121561269457612693612443565b5b60006126a284828501612496565b91505092915050565b6126b4816125de565b82525050565b60006020820190506126cf60008301846126ab565b92915050565b6000806000606084860312156126ee576126ed612443565b5b60006126fc86828701612496565b935050602061270d86828701612496565b925050604061271e868287016125ff565b9150509250925092565b600060ff82169050919050565b61273e81612728565b82525050565b60006020820190506127596000830184612735565b92915050565b6000806040838503121561277657612775612443565b5b600061278485828601612496565b925050602061279585828601612496565b9150509250929050565b6000602082840312156127b5576127b4612443565b5b60006127c3848285016125ff565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127f1576127f06127cc565b5b8235905067ffffffffffffffff81111561280e5761280d6127d1565b5b60208301915083602082028301111561282a576128296127d6565b5b9250929050565b6000806020838503121561284857612847612443565b5b600083013567ffffffffffffffff81111561286657612865612448565b5b612872858286016127db565b92509250509250929050565b6128878161246d565b82525050565b60006020820190506128a2600083018461287e565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128de60208361252e565b91506128e9826128a8565b602082019050919050565b6000602082019050818103600083015261290d816128d1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061295b57607f821691505b6020821081141561296f5761296e612914565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006129d160288361252e565b91506129dc82612975565b604082019050919050565b60006020820190508181036000830152612a00816129c4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600081905092915050565b6000612a5782612a36565b612a618185612a41565b9350612a7181856020860161253f565b80840191505092915050565b6000612a898284612a4c565b915081905092915050565b7f657468207472616e73666572206661696c656400000000000000000000000000600082015250565b6000612aca60138361252e565b9150612ad582612a94565b602082019050919050565b60006020820190508181036000830152612af981612abd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3a826125de565b9150612b45836125de565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b7a57612b79612b00565b5b828201905092915050565b7f746f6b656e20616464726573732063616e6e6f74206265207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612be160248361252e565b9150612bec82612b85565b604082019050919050565b60006020820190508181036000830152612c1081612bd4565b9050919050565b600081519050612c26816125e8565b92915050565b600060208284031215612c4257612c41612443565b5b6000612c5084828501612c17565b91505092915050565b6000604082019050612c6e600083018561287e565b612c7b60208301846126ab565b9392505050565b600081519050612c91816124b7565b92915050565b600060208284031215612cad57612cac612443565b5b6000612cbb84828501612c82565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612cfe826125de565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d3157612d30612b00565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b612d608161246d565b82525050565b6000612d728383612d57565b60208301905092915050565b6000612d8d6020840184612496565b905092915050565b6000602082019050919050565b6000612dae8385612d3c565b9350612db982612d4d565b8060005b85811015612df257612dcf8284612d7e565b612dd98882612d66565b9750612de483612d95565b925050600181019050612dbd565b5085925050509392505050565b60006020820190508181036000830152612e1a818486612da2565b90509392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612e7f60258361252e565b9150612e8a82612e23565b604082019050919050565b60006020820190508181036000830152612eae81612e72565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f1160268361252e565b9150612f1c82612eb5565b604082019050919050565b60006020820190508181036000830152612f4081612f04565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612f7d601f8361252e565b9150612f8882612f47565b602082019050919050565b60006020820190508181036000830152612fac81612f70565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061300f60248361252e565b915061301a82612fb3565b604082019050919050565b6000602082019050818103600083015261303e81613002565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130a160228361252e565b91506130ac82613045565b604082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f7468652073656e646572206973206f6e2074686520626c61636b6c6973740000600082015250565b600061310d601e8361252e565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b7f746865207265636569766572206973206f6e2074686520626c61636b6c697374600082015250565b600061317960208361252e565b915061318482613143565b602082019050919050565b600060208201905081810360008301526131a88161316c565b9050919050565b7f4f6e6c79207370656369616c206164647265737365732063616e207472616e7360008201527f6665720000000000000000000000000000000000000000000000000000000000602082015250565b600061320b60238361252e565b9150613216826131af565b604082019050919050565b6000602082019050818103600083015261323a816131fe565b9050919050565b600061324c826125de565b9150613257836125de565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132905761328f612b00565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132d5826125de565b91506132e0836125de565b9250826132f0576132ef61329b565b5b828204905092915050565b6000613306826125de565b9150613311836125de565b92508282101561332457613323612b00565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061338b60258361252e565b91506133968261332f565b604082019050919050565b600060208201905081810360008301526133ba8161337e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061341d60238361252e565b9150613428826133c1565b604082019050919050565b6000602082019050818103600083015261344c81613410565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006134af60268361252e565b91506134ba82613453565b604082019050919050565b600060208201905081810360008301526134de816134a2565b905091905056fea2646970667358221220bba4229f2fe9ee5ac8dd04412b13997b66e7c5c379bd872a0a6a03a855e253a364736f6c634300080c0033

Deployed Bytecode Sourcemap

6930:3547:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8837:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2310:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3222:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9147:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2631:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3397:488;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10283:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2530:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8736;;;;;;;;;;;;;:::i;:::-;;3893:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10006:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7170:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8991:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2747:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1411:103;;;;;;;;;;;;;:::i;:::-;;9752:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9334:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1190:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7000:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2418:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6971:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7079:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4112:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2882:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9506:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3063:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1522:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7031:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7126:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8837:146;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;8934:5:::1;8914:8;:17;8923:7;8914:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;8970:5;8950:8;:17;8959:7;8950:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;8837:146:::0;;:::o;2310:100::-;2364:13;2397:5;2390:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:100;:::o;3222:167::-;3305:4;3322:37;3331:10;3343:7;3352:6;3322:8;:37::i;:::-;3377:4;3370:11;;3222:167;;;;:::o;9147:179::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9234:8:::1;:17;9243:7;9234:17;;;;;;;;;;;;;;;;;;;;;;;;;9233:18;9213:8;:17;9222:7;9213:17;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;9300:8;:17;9309:7;9300:17;;;;;;;;;;;;;;;;;;;;;;;;;9267:51;;9291:7;9267:51;;9279:10;9267:51;;;;;;;;;;;;9147:179:::0;:::o;2631:108::-;2692:7;2719:12;;2712:19;;2631:108;:::o;3397:488::-;3537:4;3554:36;3564:6;3572:9;3583:6;3554:9;:36::i;:::-;3603:24;3630:11;:19;3642:6;3630:19;;;;;;;;;;;;;;;:31;3650:10;3630:31;;;;;;;;;;;;;;;;3603:58;;3700:6;3680:16;:26;;3672:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3787:55;3796:6;3804:10;3835:6;3816:16;:25;3787:8;:55::i;:::-;3873:4;3866:11;;;3397:488;;;;;:::o;10283:191::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10347:12:::1;10365:2;:7;;10380:21;10413:1;10403:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10365:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10346:70;;;10435:7;10427:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10335:139;10283:191:::0;:::o;2530:93::-;2588:5;2613:2;2606:9;;2530:93;:::o;8736:::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;8809:12:::1;;;;;;;;;;;8808:13;8793:12;;:28;;;;;;;;;;;;;;;;;;8736:93::o:0;3893:211::-;3981:4;3998:76;4007:10;4019:7;4063:10;4028:11;:23;4040:10;4028:23;;;;;;;;;;;;;;;:32;4052:7;4028:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;3998:8;:76::i;:::-;4092:4;4085:11;;3893:211;;;;:::o;10006:269::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10111:1:::1;10094:19;;:5;:19;;;;10086:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10165:15;10190:5;10183:23;;;10215:4;10183:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10165:56;;10239:5;10232:22;;;10255:2;10259:7;10232:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10075:200;10006:269:::0;;:::o;7170:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;8991:148::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9095:7:::1;9086;;9074:10;9063:40;;;;;;;;;;;;9124:7;9114;:17;;;;8991:148:::0;:::o;2747:127::-;2821:7;2848:9;:18;2858:7;2848:18;;;;;;;;;;;;;;;;2841:25;;2747:127;;;:::o;1411:103::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1476:30:::1;1503:1;1476:18;:30::i;:::-;1411:103::o:0;9752:246::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9839:9:::1;9834:103;9858:8;;:15;;9854:1;:19;9834:103;;;9920:5;9895:9;:22;9905:8;;9914:1;9905:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9895:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;9875:3;;;;;:::i;:::-;;;;9834:103;;;;9969:10;9952:38;;;9981:8;;9952:38;;;;;;;:::i;:::-;;;;;;;;9752:246:::0;;:::o;9334:164::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9416:5:::1;:14;9422:7;9416:14;;;;;;;;;;;;;;;;;;;;;;;;;9415:15;9398:5;:14;9404:7;9398:14;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;9475:5;:14;9481:7;9475:14;;;;;;;;;;;;;;;;;;;;;;;;;9446:44;;9466:7;9446:44;;9454:10;9446:44;;;;;;;;;;;;9334:164:::0;:::o;1190:87::-;1236:7;1263:6;;;;;;;;;;;1256:13;;1190:87;:::o;7000:24::-;;;;;;;;;;;;;:::o;2418:104::-;2474:13;2507:7;2500:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2418:104;:::o;6971:22::-;;;;:::o;7079:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;4112:409::-;4205:4;4222:24;4249:11;:23;4261:10;4249:23;;;;;;;;;;;;;;;:32;4273:7;4249:32;;;;;;;;;;;;;;;;4222:59;;4320:15;4300:16;:35;;4292:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4413:65;4422:10;4434:7;4462:15;4443:16;:34;4413:8;:65::i;:::-;4509:4;4502:11;;;4112:409;;;;:::o;2882:173::-;2968:4;2985:40;2995:10;3007:9;3018:6;2985:9;:40::i;:::-;3043:4;3036:11;;2882:173;;;;:::o;9506:238::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9590:9:::1;9585:102;9609:8;;:15;;9605:1;:19;9585:102;;;9671:4;9646:9;:22;9656:8;;9665:1;9656:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9646:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;9626:3;;;;;:::i;:::-;;;;9585:102;;;;9715:10;9702:34;;;9727:8;;9702:34;;;;;;;:::i;:::-;;;;;;;;9506:238:::0;;:::o;3063:151::-;3152:7;3179:11;:18;3191:5;3179:18;;;;;;;;;;;;;;;:27;3198:7;3179:27;;;;;;;;;;;;;;;;3172:34;;3063:151;;;;:::o;1522:201::-;1336:10;1325:21;;:7;:5;:7::i;:::-;:21;;;1317:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1631:1:::1;1611:22;;:8;:22;;;;1603:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1687:28;1706:8;1687:18;:28::i;:::-;1522:201:::0;:::o;7031:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;7126:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;5270:399::-;5373:1;5354:21;;:7;:21;;;;5346:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5424:49;5453:1;5457:7;5466:6;5424:20;:49::i;:::-;5502:6;5486:12;;:22;;;;;;;:::i;:::-;;;;;;;;5541:6;5519:9;:18;5529:7;5519:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;5584:7;5563:37;;5580:1;5563:37;;;5593:6;5563:37;;;;;;:::i;:::-;;;;;;;;5613:48;5641:1;5645:7;5654:6;5613:19;:48::i;:::-;5270:399;;:::o;6276:380::-;6429:1;6412:19;;:5;:19;;;;6404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6510:1;6491:21;;:7;:21;;;;6483:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6594:6;6564:11;:18;6576:5;6564:18;;;;;;;;;;;;;;;:27;6583:7;6564:27;;;;;;;;;;;;;;;:36;;;;6632:7;6616:32;;6625:5;6616:32;;;6641:6;6616:32;;;;;;:::i;:::-;;;;;;;;6276:380;;;:::o;8028:700::-;8127:9;:15;8137:4;8127:15;;;;;;;;;;;;;;;;;;;;;;;;;8126:16;8118:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8197:9;:13;8207:2;8197:13;;;;;;;;;;;;;;;;;;;;;;;;;8196:14;8188:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8265:12;;;;;;;;;;;8260:108;;8302:8;:14;8311:4;8302:14;;;;;;;;;;;;;;;;;;;;;;;;;8294:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8260:108;8393:1;8384:6;:10;:25;;;;;8408:1;8398:7;;:11;8384:25;8380:295;;;8431:5;:9;8437:2;8431:9;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;8444:5;:11;8450:4;8444:11;;;;;;;;;;;;;;;;;;;;;;;;;8431:24;8430:45;;;;;8461:8;:14;8470:4;8461:14;;;;;;;;;;;;;;;;;;;;;;;;;8460:15;8430:45;:62;;;;;8480:8;:12;8489:2;8480:12;;;;;;;;;;;;;;;;;;;;;;;;;8479:13;8430:62;8426:238;;;8513:12;8547:7;8537;;8528:6;:16;;;;:::i;:::-;:26;;;;:::i;:::-;8513:41;;8573:42;8589:4;8603;8610;8573:15;:42::i;:::-;8644:4;8634:14;;;;;:::i;:::-;;;8494:170;8426:238;8380:295;8687:33;8703:4;8709:2;8713:6;8687:15;:33::i;:::-;8028:700;;;:::o;1731:191::-;1805:16;1824:6;;;;;;;;;;;1805:25;;1850:8;1841:6;;:17;;;;;;;;;;;;;;;;;;1905:8;1874:40;;1895:8;1874:40;;;;;;;;;;;;1794:128;1731:191;:::o;6664:125::-;;;;:::o;6797:124::-;;;;:::o;4529:733::-;4687:1;4669:20;;:6;:20;;;;4661:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4771:1;4750:23;;:9;:23;;;;4742:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4826:47;4847:6;4855:9;4866:6;4826:20;:47::i;:::-;4886:21;4910:9;:17;4920:6;4910:17;;;;;;;;;;;;;;;;4886:41;;4963:6;4946:13;:23;;4938:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5084:6;5068:13;:22;5048:9;:17;5058:6;5048:17;;;;;;;;;;;;;;;:42;;;;5136:6;5112:9;:20;5122:9;5112:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5177:9;5160:35;;5169:6;5160:35;;;5188:6;5160:35;;;;;;:::i;:::-;;;;;;;;5208:46;5228:6;5236:9;5247:6;5208:19;:46::i;:::-;4650:612;4529:733;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:307::-;2020:1;2030:113;2044:6;2041:1;2038:13;2030:113;;;2129:1;2124:3;2120:11;2114:18;2110:1;2105:3;2101:11;2094:39;2066:2;2063:1;2059:10;2054:15;;2030:113;;;2161:6;2158:1;2155:13;2152:101;;;2241:1;2232:6;2227:3;2223:16;2216:27;2152:101;2001:258;1952:307;;;:::o;2265:102::-;2306:6;2357:2;2353:7;2348:2;2341:5;2337:14;2333:28;2323:38;;2265:102;;;:::o;2373:364::-;2461:3;2489:39;2522:5;2489:39;:::i;:::-;2544:71;2608:6;2603:3;2544:71;:::i;:::-;2537:78;;2624:52;2669:6;2664:3;2657:4;2650:5;2646:16;2624:52;:::i;:::-;2701:29;2723:6;2701:29;:::i;:::-;2696:3;2692:39;2685:46;;2465:272;2373:364;;;;:::o;2743:313::-;2856:4;2894:2;2883:9;2879:18;2871:26;;2943:9;2937:4;2933:20;2929:1;2918:9;2914:17;2907:47;2971:78;3044:4;3035:6;2971:78;:::i;:::-;2963:86;;2743:313;;;;:::o;3062:77::-;3099:7;3128:5;3117:16;;3062:77;;;:::o;3145:122::-;3218:24;3236:5;3218:24;:::i;:::-;3211:5;3208:35;3198:63;;3257:1;3254;3247:12;3198:63;3145:122;:::o;3273:139::-;3319:5;3357:6;3344:20;3335:29;;3373:33;3400:5;3373:33;:::i;:::-;3273:139;;;;:::o;3418:474::-;3486:6;3494;3543:2;3531:9;3522:7;3518:23;3514:32;3511:119;;;3549:79;;:::i;:::-;3511:119;3669:1;3694:53;3739:7;3730:6;3719:9;3715:22;3694:53;:::i;:::-;3684:63;;3640:117;3796:2;3822:53;3867:7;3858:6;3847:9;3843:22;3822:53;:::i;:::-;3812:63;;3767:118;3418:474;;;;;:::o;3898:109::-;3979:21;3994:5;3979:21;:::i;:::-;3974:3;3967:34;3898:109;;:::o;4013:210::-;4100:4;4138:2;4127:9;4123:18;4115:26;;4151:65;4213:1;4202:9;4198:17;4189:6;4151:65;:::i;:::-;4013:210;;;;:::o;4229:329::-;4288:6;4337:2;4325:9;4316:7;4312:23;4308:32;4305:119;;;4343:79;;:::i;:::-;4305:119;4463:1;4488:53;4533:7;4524:6;4513:9;4509:22;4488:53;:::i;:::-;4478:63;;4434:117;4229:329;;;;:::o;4564:118::-;4651:24;4669:5;4651:24;:::i;:::-;4646:3;4639:37;4564:118;;:::o;4688:222::-;4781:4;4819:2;4808:9;4804:18;4796:26;;4832:71;4900:1;4889:9;4885:17;4876:6;4832:71;:::i;:::-;4688:222;;;;:::o;4916:619::-;4993:6;5001;5009;5058:2;5046:9;5037:7;5033:23;5029:32;5026:119;;;5064:79;;:::i;:::-;5026:119;5184:1;5209:53;5254:7;5245:6;5234:9;5230:22;5209:53;:::i;:::-;5199:63;;5155:117;5311:2;5337:53;5382:7;5373:6;5362:9;5358:22;5337:53;:::i;:::-;5327:63;;5282:118;5439:2;5465:53;5510:7;5501:6;5490:9;5486:22;5465:53;:::i;:::-;5455:63;;5410:118;4916:619;;;;;:::o;5541:86::-;5576:7;5616:4;5609:5;5605:16;5594:27;;5541:86;;;:::o;5633:112::-;5716:22;5732:5;5716:22;:::i;:::-;5711:3;5704:35;5633:112;;:::o;5751:214::-;5840:4;5878:2;5867:9;5863:18;5855:26;;5891:67;5955:1;5944:9;5940:17;5931:6;5891:67;:::i;:::-;5751:214;;;;:::o;5971:474::-;6039:6;6047;6096:2;6084:9;6075:7;6071:23;6067:32;6064:119;;;6102:79;;:::i;:::-;6064:119;6222:1;6247:53;6292:7;6283:6;6272:9;6268:22;6247:53;:::i;:::-;6237:63;;6193:117;6349:2;6375:53;6420:7;6411:6;6400:9;6396:22;6375:53;:::i;:::-;6365:63;;6320:118;5971:474;;;;;:::o;6451:329::-;6510:6;6559:2;6547:9;6538:7;6534:23;6530:32;6527:119;;;6565:79;;:::i;:::-;6527:119;6685:1;6710:53;6755:7;6746:6;6735:9;6731:22;6710:53;:::i;:::-;6700:63;;6656:117;6451:329;;;;:::o;6786:117::-;6895:1;6892;6885:12;6909:117;7018:1;7015;7008:12;7032:117;7141:1;7138;7131:12;7172:568;7245:8;7255:6;7305:3;7298:4;7290:6;7286:17;7282:27;7272:122;;7313:79;;:::i;:::-;7272:122;7426:6;7413:20;7403:30;;7456:18;7448:6;7445:30;7442:117;;;7478:79;;:::i;:::-;7442:117;7592:4;7584:6;7580:17;7568:29;;7646:3;7638:4;7630:6;7626:17;7616:8;7612:32;7609:41;7606:128;;;7653:79;;:::i;:::-;7606:128;7172:568;;;;;:::o;7746:559::-;7832:6;7840;7889:2;7877:9;7868:7;7864:23;7860:32;7857:119;;;7895:79;;:::i;:::-;7857:119;8043:1;8032:9;8028:17;8015:31;8073:18;8065:6;8062:30;8059:117;;;8095:79;;:::i;:::-;8059:117;8208:80;8280:7;8271:6;8260:9;8256:22;8208:80;:::i;:::-;8190:98;;;;7986:312;7746:559;;;;;:::o;8311:118::-;8398:24;8416:5;8398:24;:::i;:::-;8393:3;8386:37;8311:118;;:::o;8435:222::-;8528:4;8566:2;8555:9;8551:18;8543:26;;8579:71;8647:1;8636:9;8632:17;8623:6;8579:71;:::i;:::-;8435:222;;;;:::o;8663:182::-;8803:34;8799:1;8791:6;8787:14;8780:58;8663:182;:::o;8851:366::-;8993:3;9014:67;9078:2;9073:3;9014:67;:::i;:::-;9007:74;;9090:93;9179:3;9090:93;:::i;:::-;9208:2;9203:3;9199:12;9192:19;;8851:366;;;:::o;9223:419::-;9389:4;9427:2;9416:9;9412:18;9404:26;;9476:9;9470:4;9466:20;9462:1;9451:9;9447:17;9440:47;9504:131;9630:4;9504:131;:::i;:::-;9496:139;;9223:419;;;:::o;9648:180::-;9696:77;9693:1;9686:88;9793:4;9790:1;9783:15;9817:4;9814:1;9807:15;9834:320;9878:6;9915:1;9909:4;9905:12;9895:22;;9962:1;9956:4;9952:12;9983:18;9973:81;;10039:4;10031:6;10027:17;10017:27;;9973:81;10101:2;10093:6;10090:14;10070:18;10067:38;10064:84;;;10120:18;;:::i;:::-;10064:84;9885:269;9834:320;;;:::o;10160:227::-;10300:34;10296:1;10288:6;10284:14;10277:58;10369:10;10364:2;10356:6;10352:15;10345:35;10160:227;:::o;10393:366::-;10535:3;10556:67;10620:2;10615:3;10556:67;:::i;:::-;10549:74;;10632:93;10721:3;10632:93;:::i;:::-;10750:2;10745:3;10741:12;10734:19;;10393:366;;;:::o;10765:419::-;10931:4;10969:2;10958:9;10954:18;10946:26;;11018:9;11012:4;11008:20;11004:1;10993:9;10989:17;10982:47;11046:131;11172:4;11046:131;:::i;:::-;11038:139;;10765:419;;;:::o;11190:180::-;11238:77;11235:1;11228:88;11335:4;11332:1;11325:15;11359:4;11356:1;11349:15;11376:98;11427:6;11461:5;11455:12;11445:22;;11376:98;;;:::o;11480:147::-;11581:11;11618:3;11603:18;;11480:147;;;;:::o;11633:373::-;11737:3;11765:38;11797:5;11765:38;:::i;:::-;11819:88;11900:6;11895:3;11819:88;:::i;:::-;11812:95;;11916:52;11961:6;11956:3;11949:4;11942:5;11938:16;11916:52;:::i;:::-;11993:6;11988:3;11984:16;11977:23;;11741:265;11633:373;;;;:::o;12012:271::-;12142:3;12164:93;12253:3;12244:6;12164:93;:::i;:::-;12157:100;;12274:3;12267:10;;12012:271;;;;:::o;12289:169::-;12429:21;12425:1;12417:6;12413:14;12406:45;12289:169;:::o;12464:366::-;12606:3;12627:67;12691:2;12686:3;12627:67;:::i;:::-;12620:74;;12703:93;12792:3;12703:93;:::i;:::-;12821:2;12816:3;12812:12;12805:19;;12464:366;;;:::o;12836:419::-;13002:4;13040:2;13029:9;13025:18;13017:26;;13089:9;13083:4;13079:20;13075:1;13064:9;13060:17;13053:47;13117:131;13243:4;13117:131;:::i;:::-;13109:139;;12836:419;;;:::o;13261:180::-;13309:77;13306:1;13299:88;13406:4;13403:1;13396:15;13430:4;13427:1;13420:15;13447:305;13487:3;13506:20;13524:1;13506:20;:::i;:::-;13501:25;;13540:20;13558:1;13540:20;:::i;:::-;13535:25;;13694:1;13626:66;13622:74;13619:1;13616:81;13613:107;;;13700:18;;:::i;:::-;13613:107;13744:1;13741;13737:9;13730:16;;13447:305;;;;:::o;13758:223::-;13898:34;13894:1;13886:6;13882:14;13875:58;13967:6;13962:2;13954:6;13950:15;13943:31;13758:223;:::o;13987:366::-;14129:3;14150:67;14214:2;14209:3;14150:67;:::i;:::-;14143:74;;14226:93;14315:3;14226:93;:::i;:::-;14344:2;14339:3;14335:12;14328:19;;13987:366;;;:::o;14359:419::-;14525:4;14563:2;14552:9;14548:18;14540:26;;14612:9;14606:4;14602:20;14598:1;14587:9;14583:17;14576:47;14640:131;14766:4;14640:131;:::i;:::-;14632:139;;14359:419;;;:::o;14784:143::-;14841:5;14872:6;14866:13;14857:22;;14888:33;14915:5;14888:33;:::i;:::-;14784:143;;;;:::o;14933:351::-;15003:6;15052:2;15040:9;15031:7;15027:23;15023:32;15020:119;;;15058:79;;:::i;:::-;15020:119;15178:1;15203:64;15259:7;15250:6;15239:9;15235:22;15203:64;:::i;:::-;15193:74;;15149:128;14933:351;;;;:::o;15290:332::-;15411:4;15449:2;15438:9;15434:18;15426:26;;15462:71;15530:1;15519:9;15515:17;15506:6;15462:71;:::i;:::-;15543:72;15611:2;15600:9;15596:18;15587:6;15543:72;:::i;:::-;15290:332;;;;;:::o;15628:137::-;15682:5;15713:6;15707:13;15698:22;;15729:30;15753:5;15729:30;:::i;:::-;15628:137;;;;:::o;15771:345::-;15838:6;15887:2;15875:9;15866:7;15862:23;15858:32;15855:119;;;15893:79;;:::i;:::-;15855:119;16013:1;16038:61;16091:7;16082:6;16071:9;16067:22;16038:61;:::i;:::-;16028:71;;15984:125;15771:345;;;;:::o;16122:180::-;16170:77;16167:1;16160:88;16267:4;16264:1;16257:15;16291:4;16288:1;16281:15;16308:233;16347:3;16370:24;16388:5;16370:24;:::i;:::-;16361:33;;16416:66;16409:5;16406:77;16403:103;;;16486:18;;:::i;:::-;16403:103;16533:1;16526:5;16522:13;16515:20;;16308:233;;;:::o;16547:184::-;16646:11;16680:6;16675:3;16668:19;16720:4;16715:3;16711:14;16696:29;;16547:184;;;;:::o;16737:102::-;16806:4;16829:3;16821:11;;16737:102;;;:::o;16845:108::-;16922:24;16940:5;16922:24;:::i;:::-;16917:3;16910:37;16845:108;;:::o;16959:179::-;17028:10;17049:46;17091:3;17083:6;17049:46;:::i;:::-;17127:4;17122:3;17118:14;17104:28;;16959:179;;;;:::o;17144:122::-;17196:5;17221:39;17256:2;17251:3;17247:12;17242:3;17221:39;:::i;:::-;17212:48;;17144:122;;;;:::o;17272:115::-;17344:4;17376;17371:3;17367:14;17359:22;;17272:115;;;:::o;17423:699::-;17552:3;17575:86;17654:6;17649:3;17575:86;:::i;:::-;17568:93;;17685:58;17737:5;17685:58;:::i;:::-;17766:7;17797:1;17782:315;17807:6;17804:1;17801:13;17782:315;;;17877:42;17912:6;17903:7;17877:42;:::i;:::-;17939:63;17998:3;17983:13;17939:63;:::i;:::-;17932:70;;18025:62;18080:6;18025:62;:::i;:::-;18015:72;;17842:255;17829:1;17826;17822:9;17817:14;;17782:315;;;17786:14;18113:3;18106:10;;17557:565;;17423:699;;;;;:::o;18128:393::-;18281:4;18319:2;18308:9;18304:18;18296:26;;18368:9;18362:4;18358:20;18354:1;18343:9;18339:17;18332:47;18396:118;18509:4;18500:6;18492;18396:118;:::i;:::-;18388:126;;18128:393;;;;;:::o;18527:224::-;18667:34;18663:1;18655:6;18651:14;18644:58;18736:7;18731:2;18723:6;18719:15;18712:32;18527:224;:::o;18757:366::-;18899:3;18920:67;18984:2;18979:3;18920:67;:::i;:::-;18913:74;;18996:93;19085:3;18996:93;:::i;:::-;19114:2;19109:3;19105:12;19098:19;;18757:366;;;:::o;19129:419::-;19295:4;19333:2;19322:9;19318:18;19310:26;;19382:9;19376:4;19372:20;19368:1;19357:9;19353:17;19346:47;19410:131;19536:4;19410:131;:::i;:::-;19402:139;;19129:419;;;:::o;19554:225::-;19694:34;19690:1;19682:6;19678:14;19671:58;19763:8;19758:2;19750:6;19746:15;19739:33;19554:225;:::o;19785:366::-;19927:3;19948:67;20012:2;20007:3;19948:67;:::i;:::-;19941:74;;20024:93;20113:3;20024:93;:::i;:::-;20142:2;20137:3;20133:12;20126:19;;19785:366;;;:::o;20157:419::-;20323:4;20361:2;20350:9;20346:18;20338:26;;20410:9;20404:4;20400:20;20396:1;20385:9;20381:17;20374:47;20438:131;20564:4;20438:131;:::i;:::-;20430:139;;20157:419;;;:::o;20582:181::-;20722:33;20718:1;20710:6;20706:14;20699:57;20582:181;:::o;20769:366::-;20911:3;20932:67;20996:2;20991:3;20932:67;:::i;:::-;20925:74;;21008:93;21097:3;21008:93;:::i;:::-;21126:2;21121:3;21117:12;21110:19;;20769:366;;;:::o;21141:419::-;21307:4;21345:2;21334:9;21330:18;21322:26;;21394:9;21388:4;21384:20;21380:1;21369:9;21365:17;21358:47;21422:131;21548:4;21422:131;:::i;:::-;21414:139;;21141:419;;;:::o;21566:223::-;21706:34;21702:1;21694:6;21690:14;21683:58;21775:6;21770:2;21762:6;21758:15;21751:31;21566:223;:::o;21795:366::-;21937:3;21958:67;22022:2;22017:3;21958:67;:::i;:::-;21951:74;;22034:93;22123:3;22034:93;:::i;:::-;22152:2;22147:3;22143:12;22136:19;;21795:366;;;:::o;22167:419::-;22333:4;22371:2;22360:9;22356:18;22348:26;;22420:9;22414:4;22410:20;22406:1;22395:9;22391:17;22384:47;22448:131;22574:4;22448:131;:::i;:::-;22440:139;;22167:419;;;:::o;22592:221::-;22732:34;22728:1;22720:6;22716:14;22709:58;22801:4;22796:2;22788:6;22784:15;22777:29;22592:221;:::o;22819:366::-;22961:3;22982:67;23046:2;23041:3;22982:67;:::i;:::-;22975:74;;23058:93;23147:3;23058:93;:::i;:::-;23176:2;23171:3;23167:12;23160:19;;22819:366;;;:::o;23191:419::-;23357:4;23395:2;23384:9;23380:18;23372:26;;23444:9;23438:4;23434:20;23430:1;23419:9;23415:17;23408:47;23472:131;23598:4;23472:131;:::i;:::-;23464:139;;23191:419;;;:::o;23616:180::-;23756:32;23752:1;23744:6;23740:14;23733:56;23616:180;:::o;23802:366::-;23944:3;23965:67;24029:2;24024:3;23965:67;:::i;:::-;23958:74;;24041:93;24130:3;24041:93;:::i;:::-;24159:2;24154:3;24150:12;24143:19;;23802:366;;;:::o;24174:419::-;24340:4;24378:2;24367:9;24363:18;24355:26;;24427:9;24421:4;24417:20;24413:1;24402:9;24398:17;24391:47;24455:131;24581:4;24455:131;:::i;:::-;24447:139;;24174:419;;;:::o;24599:182::-;24739:34;24735:1;24727:6;24723:14;24716:58;24599:182;:::o;24787:366::-;24929:3;24950:67;25014:2;25009:3;24950:67;:::i;:::-;24943:74;;25026:93;25115:3;25026:93;:::i;:::-;25144:2;25139:3;25135:12;25128:19;;24787:366;;;:::o;25159:419::-;25325:4;25363:2;25352:9;25348:18;25340:26;;25412:9;25406:4;25402:20;25398:1;25387:9;25383:17;25376:47;25440:131;25566:4;25440:131;:::i;:::-;25432:139;;25159:419;;;:::o;25584:222::-;25724:34;25720:1;25712:6;25708:14;25701:58;25793:5;25788:2;25780:6;25776:15;25769:30;25584:222;:::o;25812:366::-;25954:3;25975:67;26039:2;26034:3;25975:67;:::i;:::-;25968:74;;26051:93;26140:3;26051:93;:::i;:::-;26169:2;26164:3;26160:12;26153:19;;25812:366;;;:::o;26184:419::-;26350:4;26388:2;26377:9;26373:18;26365:26;;26437:9;26431:4;26427:20;26423:1;26412:9;26408:17;26401:47;26465:131;26591:4;26465:131;:::i;:::-;26457:139;;26184:419;;;:::o;26609:348::-;26649:7;26672:20;26690:1;26672:20;:::i;:::-;26667:25;;26706:20;26724:1;26706:20;:::i;:::-;26701:25;;26894:1;26826:66;26822:74;26819:1;26816:81;26811:1;26804:9;26797:17;26793:105;26790:131;;;26901:18;;:::i;:::-;26790:131;26949:1;26946;26942:9;26931:20;;26609:348;;;;:::o;26963:180::-;27011:77;27008:1;27001:88;27108:4;27105:1;27098:15;27132:4;27129:1;27122:15;27149:185;27189:1;27206:20;27224:1;27206:20;:::i;:::-;27201:25;;27240:20;27258:1;27240:20;:::i;:::-;27235:25;;27279:1;27269:35;;27284:18;;:::i;:::-;27269:35;27326:1;27323;27319:9;27314:14;;27149:185;;;;:::o;27340:191::-;27380:4;27400:20;27418:1;27400:20;:::i;:::-;27395:25;;27434:20;27452:1;27434:20;:::i;:::-;27429:25;;27473:1;27470;27467:8;27464:34;;;27478:18;;:::i;:::-;27464:34;27523:1;27520;27516:9;27508:17;;27340:191;;;;:::o;27537:224::-;27677:34;27673:1;27665:6;27661:14;27654:58;27746:7;27741:2;27733:6;27729:15;27722:32;27537:224;:::o;27767:366::-;27909:3;27930:67;27994:2;27989:3;27930:67;:::i;:::-;27923:74;;28006:93;28095:3;28006:93;:::i;:::-;28124:2;28119:3;28115:12;28108:19;;27767:366;;;:::o;28139:419::-;28305:4;28343:2;28332:9;28328:18;28320:26;;28392:9;28386:4;28382:20;28378:1;28367:9;28363:17;28356:47;28420:131;28546:4;28420:131;:::i;:::-;28412:139;;28139:419;;;:::o;28564:222::-;28704:34;28700:1;28692:6;28688:14;28681:58;28773:5;28768:2;28760:6;28756:15;28749:30;28564:222;:::o;28792:366::-;28934:3;28955:67;29019:2;29014:3;28955:67;:::i;:::-;28948:74;;29031:93;29120:3;29031:93;:::i;:::-;29149:2;29144:3;29140:12;29133:19;;28792:366;;;:::o;29164:419::-;29330:4;29368:2;29357:9;29353:18;29345:26;;29417:9;29411:4;29407:20;29403:1;29392:9;29388:17;29381:47;29445:131;29571:4;29445:131;:::i;:::-;29437:139;;29164:419;;;:::o;29589:225::-;29729:34;29725:1;29717:6;29713:14;29706:58;29798:8;29793:2;29785:6;29781:15;29774:33;29589:225;:::o;29820:366::-;29962:3;29983:67;30047:2;30042:3;29983:67;:::i;:::-;29976:74;;30059:93;30148:3;30059:93;:::i;:::-;30177:2;30172:3;30168:12;30161:19;;29820:366;;;:::o;30192:419::-;30358:4;30396:2;30385:9;30381:18;30373:26;;30445:9;30439:4;30435:20;30431:1;30420:9;30416:17;30409:47;30473:131;30599:4;30473:131;:::i;:::-;30465:139;;30192:419;;;:::o

Swarm Source

ipfs://bba4229f2fe9ee5ac8dd04412b13997b66e7c5c379bd872a0a6a03a855e253a3
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.