ETH Price: $3,106.78 (+1.47%)
Gas: 4 Gwei

Token

USETH (USETH)
 

Overview

Max Total Supply

21,000,000 USETH

Holders

154 ( -1.299%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 USETH

Value
$0.00
0x5a22e13b763E1553af6Fb64C26e02E72364F751a
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

USETH is the only crypto project that seeks to ensure no American goes hungry again. USETH's loyalty and integrity to this great nation are not for sale. In honor of Executive Order 10914, we will be donating to Americans in need of food, with our mission ensuring that no American goes hungry.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
USETH

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-15
*/

//https://creativecommons.org/licenses/by-sa/4.0/ (@LogETH)

pragma solidity ^0.8.20;

contract USETH {

    constructor () {
        totalSupply = 21000000*1e18;
        name = "USETH";
        decimals = 18;
        symbol = "USETH";
        SellFeePercent = 30;
        BuyFeePercent = 30;
        maxWalletPercent = 100;
        transferFee = 0;

        targetGwei = 50;
        threshold = 1*1e16;
        slippage = 300;

        Dev.push(0x54Ad8A088AB02C808ba47A616B54B16620146380);
        Dev.push(0xa2D4fDe1DF0279FAFdeC58D9016035c81F66Fb45);
        Dev.push(0x3fA0F6c28C2289e13F5524A76BdfA08f6eB9be4E);
        Dev.push(0x72D424049f5cEa982dfDB10E382C1b00167b3f9D);
        Dev.push(0x5F60fD6407b2b8658D19edD437c50e4c29F886A0);

        wETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

        balanceOf[msg.sender] = totalSupply;
        deployer = msg.sender;
        deployerALT = msg.sender;

        router = Univ2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        order.push(address(this));
        order.push(wETH);

        proxy = DeployContract();

        immuneToMaxWallet[deployer] = true;
        immuneToMaxWallet[address(this)] = true;
        immuneFromFee[address(this)] = true;
    }

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping (address => uint256)) public allowance;

    string public name;
    uint8 public decimals;
    string public symbol;
    uint public totalSupply;

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    uint public SellFeePercent; uint public BuyFeePercent; uint public transferFee;

    Univ2 public router;
    Proxy public proxy;

    address[] Dev;

    address public LPtoken;
    address public wETH;
    address public deployer;
    address public deployerALT;
    mapping(address => bool) public immuneToMaxWallet;
    mapping(address => bool) public immuneFromFee;
    uint public maxWalletPercent;
    uint public feeQueue;
    uint public threshold;
    uint public targetGwei;
    uint256 public slippage;
    mapping(address => uint) lastTx;

    address[] order;

    bool public isInitialized = false;

    fallback() external payable {}
    receive() external payable {}

    modifier onlyDeployer{
        require(deployer == msg.sender, "Not deployer");
        _;
    }

    modifier onlyDeployALT{
        require(deployerALT == msg.sender, "Not deployer");
        _;
    }

    function setLPtoken(address LPtokenAddress) onlyDeployer public {
        require(LPtoken == address(0), "LP already set");

        LPtoken = LPtokenAddress;
        immuneToMaxWallet[LPtoken] = true;

        allowance[address(this)][address(router)] = type(uint256).max;
        ERC20(wETH).approve(address(router), type(uint256).max);
    }

    function flashInitalize(uint HowManyWholeTokens) onlyDeployer public payable { 
        require(!isInitialized, "Initialization can only be performed once"); 
        isInitialized = true;
        HowManyWholeTokens *= 1e18;

        allowance[address(this)][address(router)] = type(uint256).max;
        ERC20(wETH).approve(address(router), type(uint256).max);
        Wrapped(wETH).deposit{value: msg.value}();

        balanceOf[deployer] -= HowManyWholeTokens;
        balanceOf[address(this)] += HowManyWholeTokens;
    
        router.addLiquidity(address(this), wETH, HowManyWholeTokens, ERC20(wETH).balanceOf(address(this)), 0, 0, msg.sender, type(uint256).max);
    }

    function renounceContract() onlyDeployer public {
        deployer = address(0);
    }

    function configImmuneToMaxWallet(address Who, bool TrueorFalse) onlyDeployer public {immuneToMaxWallet[Who] = TrueorFalse;}
    function configImmuneToFee(address Who, bool TrueorFalse)       onlyDeployer public {immuneFromFee[Who] = TrueorFalse;}
    function editMaxWalletPercent(uint howMuch) onlyDeployer public {maxWalletPercent = howMuch;}
    function editSellFee(uint howMuch)          onlyDeployer public {require(howMuch <= 30, "Fee cannot be more than 30"); SellFeePercent = howMuch;}
    function editBuyFee(uint howMuch)           onlyDeployer public {require(howMuch <= 30, "Fee cannot be more than 30"); BuyFeePercent = howMuch;}
    function editTransferFee(uint howMuch)      onlyDeployer public {require(howMuch <= 5, "Fee cannot be more than 5"); transferFee = howMuch;}

    function setThreshold(uint HowMuch)         onlyDeployALT public {threshold = HowMuch;}

    function updateDevAddress(uint index, address newAddress) external onlyDeployALT {
        require(index < Dev.length, "Invalid index");
        Dev[index] = newAddress;
    }

    function setTargetGwei(uint256 newTargetGwei) external onlyDeployALT {
        targetGwei = newTargetGwei;
    }

    function transfer(address _to, uint256 _value) public returns (bool success) {
        require(balanceOf[msg.sender] >= _value, "You can't send more tokens than you have");

        uint feeamt;

        require(LPtoken != address(0) || msg.sender == deployer || msg.sender == address(this), "Cannot trade while initalizing");

        if(!(immuneFromFee[msg.sender] || immuneFromFee[_to])){
            bool gate;

            if(msg.sender == LPtoken){
                feeamt += ProcessBuyFee(_value);
                gate = true;
            }
            if(LPtoken == _to){
                feeamt += ProcessSellFee(_value);
                gate = true;
            }
            if(!gate){
                feeamt += ProcessTransferFee(_value);
            }
        }

        balanceOf[msg.sender] -= _value;
        _value -= feeamt;
        balanceOf[_to] += _value;

        lastTx[msg.sender] = block.timestamp;

        if(!immuneToMaxWallet[_to] && LPtoken != address(0)){

        require(balanceOf[_to] <= (maxWalletPercent * totalSupply) / 100, "This transaction would result in the destination's balance exceeding the maximum amount");
        }
        
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(balanceOf[_from] >= _value, "Insufficient token balance.");

        if(_from != msg.sender){
            require(allowance[_from][msg.sender] >= _value, "Insufficent approval");
            allowance[_from][msg.sender] -= _value;
        }

        require(LPtoken != address(0) || _from == deployer || _from == address(this), "Cannot trade while initalizing");

        uint feeamt;

        if(!(immuneFromFee[_from] || immuneFromFee[_to])){
            bool gate;

            if(LPtoken == _to){
                feeamt += ProcessSellFee(_value);
                gate = true;
            }
            if(LPtoken == _from){
                feeamt += ProcessBuyFee(_value);
                gate = true;
                
            }
            if(!gate){
                feeamt += ProcessTransferFee(_value);
            }
        }

        balanceOf[_from] -= _value;
        _value -= feeamt;
        balanceOf[_to] += _value;

        lastTx[_from] = block.timestamp;

        if(!immuneToMaxWallet[_to] && LPtoken != address(0)){
            require(balanceOf[_to] <= maxWalletPercent*(totalSupply/100), "This transfer would result in the destination's balance exceeding the maximum amount");
        }

        emit Transfer(_from, _to, _value);
        return true;
    }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;

        emit Approval(msg.sender, _spender, _value); 
        return true;
    }

    function sweep() public onlyDeployALT {
        (bool sent,) = msg.sender.call{value: (address(this)).balance}("");
        require(sent, "transfer failed");
    }

    function setSlippage(uint256 _slippage) external onlyDeployer {
        slippage = _slippage;
    }

    function getExpectedOutput(uint256 amountIn, address[] memory path) public view returns (uint256[] memory) {
        return router.getAmountsOut(amountIn, path);
    }

    function sendFee() public {
        require(feeQueue > 0, "No fees to distribute");
        require(tx.gasprice < targetGwei*1000000000, "gas price too high");

        uint256[] memory amountsOut = getExpectedOutput(feeQueue, order);
        uint256 expectedOutput = amountsOut[amountsOut.length - 1];
        require(expectedOutput > threshold, "Expected output too low");

        uint256 minOutput = (expectedOutput * (10000 - slippage)) / 10000;
        uint256 deadline = block.timestamp + 1 minutes;
        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(feeQueue, minOutput, order, address(proxy), deadline);

        proxy.sweepToken(ERC20(wETH));

        feeQueue = 0;

        Wrapped(wETH).withdraw(ERC20(wETH).balanceOf(address(this)));

        uint totalBalance = address(this).balance;
        uint amt9000 = (totalBalance * 9000) / 10000;
        uint amt250 = (totalBalance * 250) / 10000;

        (bool sent1,) = Dev[0].call{value: amt9000}("");
        (bool sent2,) = Dev[1].call{value: amt250}("");
        (bool sent3,) = Dev[2].call{value: amt250}("");
        (bool sent4,) = Dev[3].call{value: amt250}("");
        (bool sent5,) = Dev[4].call{value: amt250}("");

        require(sent1 && sent2 && sent3 && sent4 && sent5, "Transfer failed");
    }

    function ProcessBuyFee(uint _value) internal returns (uint fee){
        fee = (BuyFeePercent * _value)/100;
        feeQueue += fee;

        balanceOf[address(this)] += fee;
    }

    function ProcessSellFee(uint _value) internal returns (uint fee){
        fee = (SellFeePercent*_value)/100;
        feeQueue += fee;

        balanceOf[address(this)] += fee;
    }

    function ProcessTransferFee(uint _value) internal returns (uint fee){
        fee = (transferFee*_value)/100;
        feeQueue += fee;

        balanceOf[address(this)] += fee;
    }

    function DeployContract() internal returns (Proxy proxyAddress){
        return new Proxy();
    }

    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

}

interface ERC20{
    function transferFrom(address, address, uint256) external returns(bool);
    function transfer(address, uint256) external returns(bool);
    function balanceOf(address) external view returns(uint);
    function decimals() external view returns(uint8);
    function approve(address, uint) external returns(bool);
    function totalSupply() external view returns (uint256);
}

interface Univ2{
    function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function getAmountsOut(uint amountIn, address[] memory path) external view returns (uint[] memory amounts);
}

interface Wrapped{
    function deposit() external payable;
    function withdraw(uint) external;
}

contract Proxy{

    constructor(){
        inital = msg.sender;
    }

    address inital;

    function sweepToken(ERC20 WhatToken) public {
        require(msg.sender == inital, "You cannot call this function");
        WhatToken.transfer(msg.sender, WhatToken.balanceOf(address(this)));
    }
}

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":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"BuyFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LPtoken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"Who","type":"address"},{"internalType":"bool","name":"TrueorFalse","type":"bool"}],"name":"configImmuneToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Who","type":"address"},{"internalType":"bool","name":"TrueorFalse","type":"bool"}],"name":"configImmuneToMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployerALT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"howMuch","type":"uint256"}],"name":"editBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"howMuch","type":"uint256"}],"name":"editMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"howMuch","type":"uint256"}],"name":"editSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"howMuch","type":"uint256"}],"name":"editTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"HowManyWholeTokens","type":"uint256"}],"name":"flashInitalize","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getExpectedOutput","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"immuneFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"immuneToMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxy","outputs":[{"internalType":"contract Proxy","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract Univ2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sendFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"LPtokenAddress","type":"address"}],"name":"setLPtoken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_slippage","type":"uint256"}],"name":"setSlippage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTargetGwei","type":"uint256"}],"name":"setTargetGwei","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"HowMuch","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slippage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"targetGwei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526019805460ff19169055348015610019575f80fd5b506a115eec47f6cf7e35000000600590815560408051808201909152908152640aaa68aa8960db1b602082015260029061005390826103a1565b506003805460ff191660121790556040805180820190915260058152640aaa68aa8960db1b602082015260049061008a90826103a1565b50601e600681905560075560646012555f60088190556032601555662386f26fc1000060145561012c601655600b8054600181810183557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db991820180546001600160a01b03199081167354ad8a088ab02c808ba47a616b54b16620146380179091558354808301855583018054821673a2d4fde1df0279fafdec58d9016035c81f66fb4517905583548083018555830180548216733fa0f6c28c2289e13f5524a76bdfa08f6eb9be4e179055835480830185558301805482167372d424049f5cea982dfdb10e382c1b00167b3f9d17905583548083019094559290910180548316735f60fd6407b2b8658d19edd437c50e4c29f886a0179055600d8054831673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21781556005543380865260208690526040862091909155600e8054851682179055600f805485169091179055600980548416737a250d5630b4cf539739df2c5dacb4c659f2488d179055601880548084018255948190527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e948501805485163017905590548154928301909155920180549091166001600160a01b039290921691909117905561026c6102d0565b600a80546001600160a01b0319166001600160a01b03928316179055600e54165f908152601060209081526040808320805460ff1990811660019081179092553085528285208054821683179055601190935292208054909116909117905561045b565b5f6040516102dd906102fc565b604051809103905ff0801580156102f6573d5f803e3d5ffd5b50905090565b610245806129e383390190565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061033157607f821691505b60208210810361034f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561039c57805f5260205f20601f840160051c8101602085101561037a5750805b601f840160051c820191505b81811015610399575f8155600101610386565b50505b505050565b81516001600160401b038111156103ba576103ba610309565b6103ce816103c8845461031d565b84610355565b6020601f821160018114610400575f83156103e95750848201515b5f19600385901b1c1916600184901b178455610399565b5f84815260208120601f198516915b8281101561042f578785015182556020948501946001909201910161040f565b508482101561044c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b61257b806104685f395ff3fe60806040526004361061023c575f3560e01c80638d1d2de51161012c578063c14cba3e116100af578063ec55688911610076578063ec5568891461069c578063f0fa55a9146106bb578063f2428621146106da578063f887ea40146106f9578063fa2f7a8f14610718578063fd789e831461072c57005b8063c14cba3e146105dd578063c568cef4146105fc578063d5f3948814610628578063db9f66a014610647578063dd62ed3e1461066657005b80639663d58a116100f35780639663d58a146105615780639987a9d714610576578063a9059cbb14610595578063acb2ad6f146105b4578063ae39279f146105c957005b80638d1d2de5146104db5780638fe1cdf0146104fa5780639066cfb71461051957806395d89b411461052e578063960bfe041461054257005b8063392e53cd116101bf57806352010d551161018657806352010d551461041357806361f7681f1461043257806363b94f791461045157806370a0823114610488578063727f48fc146104b35780637b441eba146104c657005b8063392e53cd1461038d5780633d9a3d19146103a65780633e032a3b146103bb57806342cde4e8146103d057806346535bf5146103e557005b8063170267291161020357806317026729146102fb57806318160ddd1461031a57806323b872dd1461032f578063313ce5671461034e57806335faa4161461037957005b806306c912ad1461024557806306fdde031461026d578063090bac851461028e578063095ea7b3146102ad5780630da828a9146102dc57005b3661024357005b005b348015610250575f80fd5b5061025a60155481565b6040519081526020015b60405180910390f35b348015610278575f80fd5b5061028161075a565b6040516102649190611fe3565b348015610299575f80fd5b506102436102a8366004612018565b6107e6565b3480156102b8575f80fd5b506102cc6102c736600461204a565b61086f565b6040519015158152602001610264565b3480156102e7575f80fd5b506102436102f6366004612018565b6108db565b348015610306575f80fd5b5061024361031536600461207f565b61090a565b348015610325575f80fd5b5061025a60055481565b34801561033a575f80fd5b506102cc6103493660046120b4565b61095e565b348015610359575f80fd5b506003546103679060ff1681565b60405160ff9091168152602001610264565b348015610384575f80fd5b50610243610d8d565b348015610398575f80fd5b506019546102cc9060ff1681565b3480156103b1575f80fd5b5061025a60125481565b3480156103c6575f80fd5b5061025a60165481565b3480156103db575f80fd5b5061025a60145481565b3480156103f0575f80fd5b506102cc6103ff3660046120ee565b60116020525f908152604090205460ff1681565b34801561041e575f80fd5b5061024361042d366004612107565b610e42565b34801561043d575f80fd5b5061024361044c366004612018565b610ef0565b34801561045c575f80fd5b50600f54610470906001600160a01b031681565b6040516001600160a01b039091168152602001610264565b348015610493575f80fd5b5061025a6104a23660046120ee565b5f6020819052908152604090205481565b6102436104c1366004612018565b610f70565b3480156104d1575f80fd5b5061025a60065481565b3480156104e6575f80fd5b506102436104f53660046120ee565b61128c565b348015610505575f80fd5b50610243610514366004612018565b6113c8565b348015610524575f80fd5b5061025a60135481565b348015610539575f80fd5b506102816113f7565b34801561054d575f80fd5b5061024361055c366004612018565b611404565b34801561056c575f80fd5b5061025a60075481565b348015610581575f80fd5b5061024361059036600461207f565b611433565b3480156105a0575f80fd5b506102cc6105af36600461204a565b611487565b3480156105bf575f80fd5b5061025a60085481565b3480156105d4575f80fd5b506102436117e8565b3480156105e8575f80fd5b50600c54610470906001600160a01b031681565b348015610607575f80fd5b5061061b610616366004612199565b611dff565b6040516102649190612242565b348015610633575f80fd5b50600e54610470906001600160a01b031681565b348015610652575f80fd5b50610243610661366004612018565b611e7a565b348015610671575f80fd5b5061025a610680366004612284565b600160209081525f928352604080842090915290825290205481565b3480156106a7575f80fd5b50600a54610470906001600160a01b031681565b3480156106c6575f80fd5b506102436106d5366004612018565b611efa565b3480156106e5575f80fd5b50600d54610470906001600160a01b031681565b348015610704575f80fd5b50600954610470906001600160a01b031681565b348015610723575f80fd5b50610243611f29565b348015610737575f80fd5b506102cc6107463660046120ee565b60106020525f908152604090205460ff1681565b60028054610767906122ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610793906122ac565b80156107de5780601f106107b5576101008083540402835291602001916107de565b820191905f5260205f20905b8154815290600101906020018083116107c157829003601f168201915b505050505081565b600e546001600160a01b031633146108195760405162461bcd60e51b8152600401610810906122e4565b60405180910390fd5b600581111561086a5760405162461bcd60e51b815260206004820152601960248201527f4665652063616e6e6f74206265206d6f7265207468616e2035000000000000006044820152606401610810565b600855565b335f8181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108c99086815260200190565b60405180910390a35060015b92915050565b600f546001600160a01b031633146109055760405162461bcd60e51b8152600401610810906122e4565b601555565b600e546001600160a01b031633146109345760405162461bcd60e51b8152600401610810906122e4565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6001600160a01b0383165f908152602081905260408120548211156109c55760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e63652e00000000006044820152606401610810565b6001600160a01b0384163314610a76576001600160a01b0384165f908152600160209081526040808320338452909152902054821115610a3e5760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58d95b9d08185c1c1c9bdd985b60621b6044820152606401610810565b6001600160a01b0384165f90815260016020908152604080832033845290915281208054849290610a7090849061231e565b90915550505b600c546001600160a01b0316151580610a9c5750600e546001600160a01b038581169116145b80610aaf57506001600160a01b03841630145b610afb5760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74207472616465207768696c6520696e6974616c697a696e6700006044820152606401610810565b6001600160a01b0384165f9081526011602052604081205460ff1680610b3857506001600160a01b0384165f9081526011602052604090205460ff165b610bb957600c545f906001600160a01b03808716911603610b6d57610b5c84611f65565b610b669083612331565b9150600190505b600c546001600160a01b03808816911603610b9c57610b8b84611fc1565b610b959083612331565b9150600190505b80610bb757610baa84611fd2565b610bb49083612331565b91505b505b6001600160a01b0385165f9081526020819052604081208054859290610be090849061231e565b90915550610bf09050818461231e565b9250825f80866001600160a01b03166001600160a01b031681526020019081526020015f205f828254610c239190612331565b90915550506001600160a01b038086165f908152601760209081526040808320429055928716825260109052205460ff16158015610c6b5750600c546001600160a01b031615155b15610d35576064600554610c7f9190612344565b601254610c8c9190612363565b6001600160a01b0385165f908152602081905260409020541115610d355760405162461bcd60e51b815260206004820152605460248201527f54686973207472616e7366657220776f756c6420726573756c7420696e20746860448201527f652064657374696e6174696f6e27732062616c616e636520657863656564696e60648201527319c81d1a19481b585e1a5b5d5b48185b5bdd5b9d60621b608482015260a401610810565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610d7a91815260200190565b60405180910390a3506001949350505050565b600f546001600160a01b03163314610db75760405162461bcd60e51b8152600401610810906122e4565b6040515f9033903031908381818185875af1925050503d805f8114610df7576040519150601f19603f3d011682016040523d82523d5f602084013e610dfc565b606091505b5050905080610e3f5760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610810565b50565b600f546001600160a01b03163314610e6c5760405162461bcd60e51b8152600401610810906122e4565b600b548210610ead5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610810565b80600b8381548110610ec157610ec161237a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505050565b600e546001600160a01b03163314610f1a5760405162461bcd60e51b8152600401610810906122e4565b601e811115610f6b5760405162461bcd60e51b815260206004820152601a60248201527f4665652063616e6e6f74206265206d6f7265207468616e2033300000000000006044820152606401610810565b600655565b600e546001600160a01b03163314610f9a5760405162461bcd60e51b8152600401610810906122e4565b60195460ff1615610fff5760405162461bcd60e51b815260206004820152602960248201527f496e697469616c697a6174696f6e2063616e206f6e6c7920626520706572666f604482015268726d6564206f6e636560b81b6064820152608401610810565b6019805460ff1916600117905561101e670de0b6b3a764000082612363565b305f908152600160209081526040808320600980546001600160a01b03908116865291909352928190205f1990819055600d549254915163095ea7b360e01b815291841660048301526024820152929350169063095ea7b3906044016020604051808303815f875af1158015611096573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ba919061238e565b50600d5f9054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015611108575f80fd5b505af115801561111a573d5f803e3d5ffd5b5050600e546001600160a01b03165f908152602081905260408120805486955090935090915061114b90849061231e565b9091555050305f908152602081905260408120805483929061116e908490612331565b9091555050600954600d546040516370a0823160e01b815230600482018190526001600160a01b039384169363e8e33700939192911690859082906370a0823190602401602060405180830381865afa1580156111cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f191906123a9565b6040516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152604483015260648201525f6084820181905260a48201523360c48201525f1960e4820152610104016060604051808303815f875af1158015611262573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128691906123c0565b50505050565b600e546001600160a01b031633146112b65760405162461bcd60e51b8152600401610810906122e4565b600c546001600160a01b0316156113005760405162461bcd60e51b815260206004820152600e60248201526d131408185b1c9958591e481cd95d60921b6044820152606401610810565b600c80546001600160a01b0319166001600160a01b038381169182179092555f908152601060209081526040808320805460ff19166001908117909155308452825280832060098054861685529252918290205f1990819055600d549154925163095ea7b360e01b8152928416600484015260248301529091169063095ea7b3906044016020604051808303815f875af11580156113a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c4919061238e565b5050565b600e546001600160a01b031633146113f25760405162461bcd60e51b8152600401610810906122e4565b601255565b60048054610767906122ac565b600f546001600160a01b0316331461142e5760405162461bcd60e51b8152600401610810906122e4565b601455565b600e546001600160a01b0316331461145d5760405162461bcd60e51b8152600401610810906122e4565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b335f908152602081905260408120548211156114f65760405162461bcd60e51b815260206004820152602860248201527f596f752063616e27742073656e64206d6f726520746f6b656e73207468616e20604482015267796f75206861766560c01b6064820152608401610810565b600c545f906001600160a01b031615158061151b5750600e546001600160a01b031633145b8061152557503330145b6115715760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74207472616465207768696c6520696e6974616c697a696e6700006044820152606401610810565b335f9081526011602052604090205460ff16806115a557506001600160a01b0384165f9081526011602052604090205460ff165b61162357600c545f906001600160a01b031633036115d7576115c684611fc1565b6115d09083612331565b9150600190505b600c546001600160a01b03808716911603611606576115f584611f65565b6115ff9083612331565b9150600190505b806116215761161484611fd2565b61161e9083612331565b91505b505b335f908152602081905260408120805485929061164190849061231e565b909155506116519050818461231e565b9250825f80866001600160a01b03166001600160a01b031681526020019081526020015f205f8282546116849190612331565b9091555050335f9081526017602090815260408083204290556001600160a01b0387168352601090915290205460ff161580156116cb5750600c546001600160a01b031615155b1561179e5760646005546012546116e29190612363565b6116ec9190612344565b6001600160a01b0385165f90815260208190526040902054111561179e5760405162461bcd60e51b815260206004820152605760248201527f54686973207472616e73616374696f6e20776f756c6420726573756c7420696e60448201527f207468652064657374696e6174696f6e27732062616c616e636520657863656560648201527f64696e6720746865206d6178696d756d20616d6f756e74000000000000000000608482015260a401610810565b6040518381526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060019392505050565b5f601354116118315760405162461bcd60e51b81526020600482015260156024820152744e6f206665657320746f206469737472696275746560581b6044820152606401610810565b60155461184290633b9aca00612363565b3a106118855760405162461bcd60e51b81526020600482015260126024820152710cec2e640e0e4d2c6ca40e8dede40d0d2ced60731b6044820152606401610810565b5f6118ea60135460188054806020026020016040519081016040528092919081815260200182805480156118e057602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116118c2575b5050505050611dff565b90505f81600183516118fc919061231e565b8151811061190c5761190c61237a565b6020026020010151905060145481116119675760405162461bcd60e51b815260206004820152601760248201527f4578706563746564206f757470757420746f6f206c6f770000000000000000006044820152606401610810565b5f61271060165461271061197b919061231e565b6119859084612363565b61198f9190612344565b90505f61199d42603c612331565b600954601354600a54604051635c11d79560e01b81529394506001600160a01b0392831693635c11d795936119e0939288926018929091169088906004016123eb565b5f604051808303815f87803b1580156119f7575f80fd5b505af1158015611a09573d5f803e3d5ffd5b5050600a54600d5460405162df0cab60e51b81526001600160a01b03918216600482015291169250631be1956091506024015f604051808303815f87803b158015611a52575f80fd5b505af1158015611a64573d5f803e3d5ffd5b50505f6013555050600d546040516370a0823160e01b81523060048201526001600160a01b0390911690632e1a7d4d9082906370a0823190602401602060405180830381865afa158015611aba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ade91906123a9565b6040518263ffffffff1660e01b8152600401611afc91815260200190565b5f604051808303815f87803b158015611b13575f80fd5b505af1158015611b25573d5f803e3d5ffd5b504792505f91506127109050611b3d83612328612363565b611b479190612344565b90505f612710611b588460fa612363565b611b629190612344565b90505f600b5f81548110611b7857611b7861237a565b5f9182526020822001546040516001600160a01b039091169185919081818185875af1925050503d805f8114611bc9576040519150601f19603f3d011682016040523d82523d5f602084013e611bce565b606091505b505090505f600b600181548110611be757611be761237a565b5f9182526020822001546040516001600160a01b039091169185919081818185875af1925050503d805f8114611c38576040519150601f19603f3d011682016040523d82523d5f602084013e611c3d565b606091505b505090505f600b600281548110611c5657611c5661237a565b5f9182526020822001546040516001600160a01b039091169186919081818185875af1925050503d805f8114611ca7576040519150601f19603f3d011682016040523d82523d5f602084013e611cac565b606091505b505090505f600b600381548110611cc557611cc561237a565b5f9182526020822001546040516001600160a01b039091169187919081818185875af1925050503d805f8114611d16576040519150601f19603f3d011682016040523d82523d5f602084013e611d1b565b606091505b505090505f600b600481548110611d3457611d3461237a565b5f9182526020822001546040516001600160a01b039091169188919081818185875af1925050503d805f8114611d85576040519150601f19603f3d011682016040523d82523d5f602084013e611d8a565b606091505b50509050848015611d985750835b8015611da15750825b8015611daa5750815b8015611db35750805b611df15760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610810565b505050505050505050505050565b60095460405163d06ca61f60e01b81526060916001600160a01b03169063d06ca61f90611e32908690869060040161245e565b5f60405180830381865afa158015611e4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e7391908101906124b4565b9392505050565b600e546001600160a01b03163314611ea45760405162461bcd60e51b8152600401610810906122e4565b601e811115611ef55760405162461bcd60e51b815260206004820152601a60248201527f4665652063616e6e6f74206265206d6f7265207468616e2033300000000000006044820152606401610810565b600755565b600e546001600160a01b03163314611f245760405162461bcd60e51b8152600401610810906122e4565b601655565b600e546001600160a01b03163314611f535760405162461bcd60e51b8152600401610810906122e4565b600e80546001600160a01b0319169055565b5f606482600654611f769190612363565b611f809190612344565b90508060135f828254611f939190612331565b9091555050305f9081526020819052604081208054839290611fb6908490612331565b909155509092915050565b5f606482600754611f769190612363565b5f606482600854611f769190612363565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215612028575f80fd5b5035919050565b80356001600160a01b0381168114612045575f80fd5b919050565b5f806040838503121561205b575f80fd5b6120648361202f565b946020939093013593505050565b8015158114610e3f575f80fd5b5f8060408385031215612090575f80fd5b6120998361202f565b915060208301356120a981612072565b809150509250929050565b5f805f606084860312156120c6575f80fd5b6120cf8461202f565b92506120dd6020850161202f565b929592945050506040919091013590565b5f602082840312156120fe575f80fd5b611e738261202f565b5f8060408385031215612118575f80fd5b823591506121286020840161202f565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561216e5761216e612131565b604052919050565b5f67ffffffffffffffff82111561218f5761218f612131565b5060051b60200190565b5f80604083850312156121aa575f80fd5b82359150602083013567ffffffffffffffff8111156121c7575f80fd5b8301601f810185136121d7575f80fd5b80356121ea6121e582612176565b612145565b8082825260208201915060208360051b85010192508783111561220b575f80fd5b6020840193505b82841015612234576122238461202f565b825260209384019390910190612212565b809450505050509250929050565b602080825282518282018190525f918401906040840190835b8181101561227957835183526020938401939092019160010161225b565b509095945050505050565b5f8060408385031215612295575f80fd5b61229e8361202f565b91506121286020840161202f565b600181811c908216806122c057607f821691505b6020821081036122de57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600c908201526b2737ba103232b83637bcb2b960a11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108d5576108d561230a565b808201808211156108d5576108d561230a565b5f8261235e57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108d5576108d561230a565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561239e575f80fd5b8151611e7381612072565b5f602082840312156123b9575f80fd5b5051919050565b5f805f606084860312156123d2575f80fd5b5050815160208301516040909301519094929350919050565b5f60a0820187835286602084015260a0604084015280865480835260c085019150875f5260205f2092505f5b8181101561243e5783546001600160a01b0316835260019384019360209093019201612417565b50506001600160a01b039590951660608401525050608001529392505050565b5f60408201848352604060208401528084518083526060850191506020860192505f5b818110156124a85783516001600160a01b0316835260209384019390920191600101612481565b50909695505050505050565b5f602082840312156124c4575f80fd5b815167ffffffffffffffff8111156124da575f80fd5b8201601f810184136124ea575f80fd5b80516124f86121e582612176565b8082825260208201915060208360051b850101925086831115612519575f80fd5b6020840193505b8284101561253b578351825260209384019390910190612520565b969550505050505056fea2646970667358221220486d3dc0656367a01956bdfa5a350fcd615b55d5e7db44c243d567465c3023a664736f6c634300081a00336080604052348015600e575f80fd5b505f80546001600160a01b031916331790556102188061002d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80631be195601461002d575b5f80fd5b61004061003b36600461017f565b610042565b005b5f546001600160a01b0316331461009f5760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e6e6f742063616c6c20746869732066756e6374696f6e000000604482015260640160405180910390fd5b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156100eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061010f91906101ac565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610157573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017b91906101c3565b5050565b5f6020828403121561018f575f80fd5b81356001600160a01b03811681146101a5575f80fd5b9392505050565b5f602082840312156101bc575f80fd5b5051919050565b5f602082840312156101d3575f80fd5b815180151581146101a5575f80fdfea26469706673582212206249db0cd6a6d4e247d3fa623fe6c65a61bbfde7601525c2e48a0362db8376e964736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061023c575f3560e01c80638d1d2de51161012c578063c14cba3e116100af578063ec55688911610076578063ec5568891461069c578063f0fa55a9146106bb578063f2428621146106da578063f887ea40146106f9578063fa2f7a8f14610718578063fd789e831461072c57005b8063c14cba3e146105dd578063c568cef4146105fc578063d5f3948814610628578063db9f66a014610647578063dd62ed3e1461066657005b80639663d58a116100f35780639663d58a146105615780639987a9d714610576578063a9059cbb14610595578063acb2ad6f146105b4578063ae39279f146105c957005b80638d1d2de5146104db5780638fe1cdf0146104fa5780639066cfb71461051957806395d89b411461052e578063960bfe041461054257005b8063392e53cd116101bf57806352010d551161018657806352010d551461041357806361f7681f1461043257806363b94f791461045157806370a0823114610488578063727f48fc146104b35780637b441eba146104c657005b8063392e53cd1461038d5780633d9a3d19146103a65780633e032a3b146103bb57806342cde4e8146103d057806346535bf5146103e557005b8063170267291161020357806317026729146102fb57806318160ddd1461031a57806323b872dd1461032f578063313ce5671461034e57806335faa4161461037957005b806306c912ad1461024557806306fdde031461026d578063090bac851461028e578063095ea7b3146102ad5780630da828a9146102dc57005b3661024357005b005b348015610250575f80fd5b5061025a60155481565b6040519081526020015b60405180910390f35b348015610278575f80fd5b5061028161075a565b6040516102649190611fe3565b348015610299575f80fd5b506102436102a8366004612018565b6107e6565b3480156102b8575f80fd5b506102cc6102c736600461204a565b61086f565b6040519015158152602001610264565b3480156102e7575f80fd5b506102436102f6366004612018565b6108db565b348015610306575f80fd5b5061024361031536600461207f565b61090a565b348015610325575f80fd5b5061025a60055481565b34801561033a575f80fd5b506102cc6103493660046120b4565b61095e565b348015610359575f80fd5b506003546103679060ff1681565b60405160ff9091168152602001610264565b348015610384575f80fd5b50610243610d8d565b348015610398575f80fd5b506019546102cc9060ff1681565b3480156103b1575f80fd5b5061025a60125481565b3480156103c6575f80fd5b5061025a60165481565b3480156103db575f80fd5b5061025a60145481565b3480156103f0575f80fd5b506102cc6103ff3660046120ee565b60116020525f908152604090205460ff1681565b34801561041e575f80fd5b5061024361042d366004612107565b610e42565b34801561043d575f80fd5b5061024361044c366004612018565b610ef0565b34801561045c575f80fd5b50600f54610470906001600160a01b031681565b6040516001600160a01b039091168152602001610264565b348015610493575f80fd5b5061025a6104a23660046120ee565b5f6020819052908152604090205481565b6102436104c1366004612018565b610f70565b3480156104d1575f80fd5b5061025a60065481565b3480156104e6575f80fd5b506102436104f53660046120ee565b61128c565b348015610505575f80fd5b50610243610514366004612018565b6113c8565b348015610524575f80fd5b5061025a60135481565b348015610539575f80fd5b506102816113f7565b34801561054d575f80fd5b5061024361055c366004612018565b611404565b34801561056c575f80fd5b5061025a60075481565b348015610581575f80fd5b5061024361059036600461207f565b611433565b3480156105a0575f80fd5b506102cc6105af36600461204a565b611487565b3480156105bf575f80fd5b5061025a60085481565b3480156105d4575f80fd5b506102436117e8565b3480156105e8575f80fd5b50600c54610470906001600160a01b031681565b348015610607575f80fd5b5061061b610616366004612199565b611dff565b6040516102649190612242565b348015610633575f80fd5b50600e54610470906001600160a01b031681565b348015610652575f80fd5b50610243610661366004612018565b611e7a565b348015610671575f80fd5b5061025a610680366004612284565b600160209081525f928352604080842090915290825290205481565b3480156106a7575f80fd5b50600a54610470906001600160a01b031681565b3480156106c6575f80fd5b506102436106d5366004612018565b611efa565b3480156106e5575f80fd5b50600d54610470906001600160a01b031681565b348015610704575f80fd5b50600954610470906001600160a01b031681565b348015610723575f80fd5b50610243611f29565b348015610737575f80fd5b506102cc6107463660046120ee565b60106020525f908152604090205460ff1681565b60028054610767906122ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610793906122ac565b80156107de5780601f106107b5576101008083540402835291602001916107de565b820191905f5260205f20905b8154815290600101906020018083116107c157829003601f168201915b505050505081565b600e546001600160a01b031633146108195760405162461bcd60e51b8152600401610810906122e4565b60405180910390fd5b600581111561086a5760405162461bcd60e51b815260206004820152601960248201527f4665652063616e6e6f74206265206d6f7265207468616e2035000000000000006044820152606401610810565b600855565b335f8181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108c99086815260200190565b60405180910390a35060015b92915050565b600f546001600160a01b031633146109055760405162461bcd60e51b8152600401610810906122e4565b601555565b600e546001600160a01b031633146109345760405162461bcd60e51b8152600401610810906122e4565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6001600160a01b0383165f908152602081905260408120548211156109c55760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420746f6b656e2062616c616e63652e00000000006044820152606401610810565b6001600160a01b0384163314610a76576001600160a01b0384165f908152600160209081526040808320338452909152902054821115610a3e5760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58d95b9d08185c1c1c9bdd985b60621b6044820152606401610810565b6001600160a01b0384165f90815260016020908152604080832033845290915281208054849290610a7090849061231e565b90915550505b600c546001600160a01b0316151580610a9c5750600e546001600160a01b038581169116145b80610aaf57506001600160a01b03841630145b610afb5760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74207472616465207768696c6520696e6974616c697a696e6700006044820152606401610810565b6001600160a01b0384165f9081526011602052604081205460ff1680610b3857506001600160a01b0384165f9081526011602052604090205460ff165b610bb957600c545f906001600160a01b03808716911603610b6d57610b5c84611f65565b610b669083612331565b9150600190505b600c546001600160a01b03808816911603610b9c57610b8b84611fc1565b610b959083612331565b9150600190505b80610bb757610baa84611fd2565b610bb49083612331565b91505b505b6001600160a01b0385165f9081526020819052604081208054859290610be090849061231e565b90915550610bf09050818461231e565b9250825f80866001600160a01b03166001600160a01b031681526020019081526020015f205f828254610c239190612331565b90915550506001600160a01b038086165f908152601760209081526040808320429055928716825260109052205460ff16158015610c6b5750600c546001600160a01b031615155b15610d35576064600554610c7f9190612344565b601254610c8c9190612363565b6001600160a01b0385165f908152602081905260409020541115610d355760405162461bcd60e51b815260206004820152605460248201527f54686973207472616e7366657220776f756c6420726573756c7420696e20746860448201527f652064657374696e6174696f6e27732062616c616e636520657863656564696e60648201527319c81d1a19481b585e1a5b5d5b48185b5bdd5b9d60621b608482015260a401610810565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610d7a91815260200190565b60405180910390a3506001949350505050565b600f546001600160a01b03163314610db75760405162461bcd60e51b8152600401610810906122e4565b6040515f9033903031908381818185875af1925050503d805f8114610df7576040519150601f19603f3d011682016040523d82523d5f602084013e610dfc565b606091505b5050905080610e3f5760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606401610810565b50565b600f546001600160a01b03163314610e6c5760405162461bcd60e51b8152600401610810906122e4565b600b548210610ead5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610810565b80600b8381548110610ec157610ec161237a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505050565b600e546001600160a01b03163314610f1a5760405162461bcd60e51b8152600401610810906122e4565b601e811115610f6b5760405162461bcd60e51b815260206004820152601a60248201527f4665652063616e6e6f74206265206d6f7265207468616e2033300000000000006044820152606401610810565b600655565b600e546001600160a01b03163314610f9a5760405162461bcd60e51b8152600401610810906122e4565b60195460ff1615610fff5760405162461bcd60e51b815260206004820152602960248201527f496e697469616c697a6174696f6e2063616e206f6e6c7920626520706572666f604482015268726d6564206f6e636560b81b6064820152608401610810565b6019805460ff1916600117905561101e670de0b6b3a764000082612363565b305f908152600160209081526040808320600980546001600160a01b03908116865291909352928190205f1990819055600d549254915163095ea7b360e01b815291841660048301526024820152929350169063095ea7b3906044016020604051808303815f875af1158015611096573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ba919061238e565b50600d5f9054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015611108575f80fd5b505af115801561111a573d5f803e3d5ffd5b5050600e546001600160a01b03165f908152602081905260408120805486955090935090915061114b90849061231e565b9091555050305f908152602081905260408120805483929061116e908490612331565b9091555050600954600d546040516370a0823160e01b815230600482018190526001600160a01b039384169363e8e33700939192911690859082906370a0823190602401602060405180830381865afa1580156111cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f191906123a9565b6040516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152604483015260648201525f6084820181905260a48201523360c48201525f1960e4820152610104016060604051808303815f875af1158015611262573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128691906123c0565b50505050565b600e546001600160a01b031633146112b65760405162461bcd60e51b8152600401610810906122e4565b600c546001600160a01b0316156113005760405162461bcd60e51b815260206004820152600e60248201526d131408185b1c9958591e481cd95d60921b6044820152606401610810565b600c80546001600160a01b0319166001600160a01b038381169182179092555f908152601060209081526040808320805460ff19166001908117909155308452825280832060098054861685529252918290205f1990819055600d549154925163095ea7b360e01b8152928416600484015260248301529091169063095ea7b3906044016020604051808303815f875af11580156113a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c4919061238e565b5050565b600e546001600160a01b031633146113f25760405162461bcd60e51b8152600401610810906122e4565b601255565b60048054610767906122ac565b600f546001600160a01b0316331461142e5760405162461bcd60e51b8152600401610810906122e4565b601455565b600e546001600160a01b0316331461145d5760405162461bcd60e51b8152600401610810906122e4565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b335f908152602081905260408120548211156114f65760405162461bcd60e51b815260206004820152602860248201527f596f752063616e27742073656e64206d6f726520746f6b656e73207468616e20604482015267796f75206861766560c01b6064820152608401610810565b600c545f906001600160a01b031615158061151b5750600e546001600160a01b031633145b8061152557503330145b6115715760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74207472616465207768696c6520696e6974616c697a696e6700006044820152606401610810565b335f9081526011602052604090205460ff16806115a557506001600160a01b0384165f9081526011602052604090205460ff165b61162357600c545f906001600160a01b031633036115d7576115c684611fc1565b6115d09083612331565b9150600190505b600c546001600160a01b03808716911603611606576115f584611f65565b6115ff9083612331565b9150600190505b806116215761161484611fd2565b61161e9083612331565b91505b505b335f908152602081905260408120805485929061164190849061231e565b909155506116519050818461231e565b9250825f80866001600160a01b03166001600160a01b031681526020019081526020015f205f8282546116849190612331565b9091555050335f9081526017602090815260408083204290556001600160a01b0387168352601090915290205460ff161580156116cb5750600c546001600160a01b031615155b1561179e5760646005546012546116e29190612363565b6116ec9190612344565b6001600160a01b0385165f90815260208190526040902054111561179e5760405162461bcd60e51b815260206004820152605760248201527f54686973207472616e73616374696f6e20776f756c6420726573756c7420696e60448201527f207468652064657374696e6174696f6e27732062616c616e636520657863656560648201527f64696e6720746865206d6178696d756d20616d6f756e74000000000000000000608482015260a401610810565b6040518381526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060019392505050565b5f601354116118315760405162461bcd60e51b81526020600482015260156024820152744e6f206665657320746f206469737472696275746560581b6044820152606401610810565b60155461184290633b9aca00612363565b3a106118855760405162461bcd60e51b81526020600482015260126024820152710cec2e640e0e4d2c6ca40e8dede40d0d2ced60731b6044820152606401610810565b5f6118ea60135460188054806020026020016040519081016040528092919081815260200182805480156118e057602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116118c2575b5050505050611dff565b90505f81600183516118fc919061231e565b8151811061190c5761190c61237a565b6020026020010151905060145481116119675760405162461bcd60e51b815260206004820152601760248201527f4578706563746564206f757470757420746f6f206c6f770000000000000000006044820152606401610810565b5f61271060165461271061197b919061231e565b6119859084612363565b61198f9190612344565b90505f61199d42603c612331565b600954601354600a54604051635c11d79560e01b81529394506001600160a01b0392831693635c11d795936119e0939288926018929091169088906004016123eb565b5f604051808303815f87803b1580156119f7575f80fd5b505af1158015611a09573d5f803e3d5ffd5b5050600a54600d5460405162df0cab60e51b81526001600160a01b03918216600482015291169250631be1956091506024015f604051808303815f87803b158015611a52575f80fd5b505af1158015611a64573d5f803e3d5ffd5b50505f6013555050600d546040516370a0823160e01b81523060048201526001600160a01b0390911690632e1a7d4d9082906370a0823190602401602060405180830381865afa158015611aba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ade91906123a9565b6040518263ffffffff1660e01b8152600401611afc91815260200190565b5f604051808303815f87803b158015611b13575f80fd5b505af1158015611b25573d5f803e3d5ffd5b504792505f91506127109050611b3d83612328612363565b611b479190612344565b90505f612710611b588460fa612363565b611b629190612344565b90505f600b5f81548110611b7857611b7861237a565b5f9182526020822001546040516001600160a01b039091169185919081818185875af1925050503d805f8114611bc9576040519150601f19603f3d011682016040523d82523d5f602084013e611bce565b606091505b505090505f600b600181548110611be757611be761237a565b5f9182526020822001546040516001600160a01b039091169185919081818185875af1925050503d805f8114611c38576040519150601f19603f3d011682016040523d82523d5f602084013e611c3d565b606091505b505090505f600b600281548110611c5657611c5661237a565b5f9182526020822001546040516001600160a01b039091169186919081818185875af1925050503d805f8114611ca7576040519150601f19603f3d011682016040523d82523d5f602084013e611cac565b606091505b505090505f600b600381548110611cc557611cc561237a565b5f9182526020822001546040516001600160a01b039091169187919081818185875af1925050503d805f8114611d16576040519150601f19603f3d011682016040523d82523d5f602084013e611d1b565b606091505b505090505f600b600481548110611d3457611d3461237a565b5f9182526020822001546040516001600160a01b039091169188919081818185875af1925050503d805f8114611d85576040519150601f19603f3d011682016040523d82523d5f602084013e611d8a565b606091505b50509050848015611d985750835b8015611da15750825b8015611daa5750815b8015611db35750805b611df15760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610810565b505050505050505050505050565b60095460405163d06ca61f60e01b81526060916001600160a01b03169063d06ca61f90611e32908690869060040161245e565b5f60405180830381865afa158015611e4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e7391908101906124b4565b9392505050565b600e546001600160a01b03163314611ea45760405162461bcd60e51b8152600401610810906122e4565b601e811115611ef55760405162461bcd60e51b815260206004820152601a60248201527f4665652063616e6e6f74206265206d6f7265207468616e2033300000000000006044820152606401610810565b600755565b600e546001600160a01b03163314611f245760405162461bcd60e51b8152600401610810906122e4565b601655565b600e546001600160a01b03163314611f535760405162461bcd60e51b8152600401610810906122e4565b600e80546001600160a01b0319169055565b5f606482600654611f769190612363565b611f809190612344565b90508060135f828254611f939190612331565b9091555050305f9081526020819052604081208054839290611fb6908490612331565b909155509092915050565b5f606482600754611f769190612363565b5f606482600854611f769190612363565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215612028575f80fd5b5035919050565b80356001600160a01b0381168114612045575f80fd5b919050565b5f806040838503121561205b575f80fd5b6120648361202f565b946020939093013593505050565b8015158114610e3f575f80fd5b5f8060408385031215612090575f80fd5b6120998361202f565b915060208301356120a981612072565b809150509250929050565b5f805f606084860312156120c6575f80fd5b6120cf8461202f565b92506120dd6020850161202f565b929592945050506040919091013590565b5f602082840312156120fe575f80fd5b611e738261202f565b5f8060408385031215612118575f80fd5b823591506121286020840161202f565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561216e5761216e612131565b604052919050565b5f67ffffffffffffffff82111561218f5761218f612131565b5060051b60200190565b5f80604083850312156121aa575f80fd5b82359150602083013567ffffffffffffffff8111156121c7575f80fd5b8301601f810185136121d7575f80fd5b80356121ea6121e582612176565b612145565b8082825260208201915060208360051b85010192508783111561220b575f80fd5b6020840193505b82841015612234576122238461202f565b825260209384019390910190612212565b809450505050509250929050565b602080825282518282018190525f918401906040840190835b8181101561227957835183526020938401939092019160010161225b565b509095945050505050565b5f8060408385031215612295575f80fd5b61229e8361202f565b91506121286020840161202f565b600181811c908216806122c057607f821691505b6020821081036122de57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600c908201526b2737ba103232b83637bcb2b960a11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108d5576108d561230a565b808201808211156108d5576108d561230a565b5f8261235e57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108d5576108d561230a565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561239e575f80fd5b8151611e7381612072565b5f602082840312156123b9575f80fd5b5051919050565b5f805f606084860312156123d2575f80fd5b5050815160208301516040909301519094929350919050565b5f60a0820187835286602084015260a0604084015280865480835260c085019150875f5260205f2092505f5b8181101561243e5783546001600160a01b0316835260019384019360209093019201612417565b50506001600160a01b039590951660608401525050608001529392505050565b5f60408201848352604060208401528084518083526060850191506020860192505f5b818110156124a85783516001600160a01b0316835260209384019390920191600101612481565b50909695505050505050565b5f602082840312156124c4575f80fd5b815167ffffffffffffffff8111156124da575f80fd5b8201601f810184136124ea575f80fd5b80516124f86121e582612176565b8082825260208201915060208360051b850101925086831115612519575f80fd5b6020840193505b8284101561253b578351825260209384019390910190612520565b969550505050505056fea2646970667358221220486d3dc0656367a01956bdfa5a350fcd615b55d5e7db44c243d567465c3023a664736f6c634300081a0033

Deployed Bytecode Sourcemap

91:10429:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2155:22;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;2155:22:0;;;;;;;;1395:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4418:140::-;;;;;;;;;;-1:-1:-1;4418:140:0;;;;;:::i;:::-;;:::i;7704:219::-;;;;;;;;;;-1:-1:-1;7704:219:0;;;;;:::i;:::-;;:::i;:::-;;;1498:14:1;;1491:22;1473:41;;1461:2;1446:18;7704:219:0;1333:187:1;4847:114:0;;;;;;;;;;-1:-1:-1;4847:114:0;;;;;:::i;:::-;;:::i;3764:123::-;;;;;;;;;;-1:-1:-1;3764:123:0;;;;;:::i;:::-;;:::i;1475:23::-;;;;;;;;;;;;;;;;6258:1438;;;;;;;;;;-1:-1:-1;6258:1438:0;;;;;:::i;:::-;;:::i;1420:21::-;;;;;;;;;;-1:-1:-1;1420:21:0;;;;;;;;;;;2519:4:1;2507:17;;;2489:36;;2477:2;2462:18;1420:21:0;2347:184:1;7931:166:0;;;;;;;;;;;;;:::i;2278:33::-;;;;;;;;;;-1:-1:-1;2278:33:0;;;;;;;;2065:28;;;;;;;;;;;;;;;;2184:23;;;;;;;;;;;;;;;;2127:21;;;;;;;;;;;;;;;;2013:45;;;;;;;;;;-1:-1:-1;2013:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4661:178;;;;;;;;;;-1:-1:-1;4661:178:0;;;;;:::i;:::-;;:::i;4117:145::-;;;;;;;;;;-1:-1:-1;4117:145:0;;;;;:::i;:::-;;:::i;1924:26::-;;;;;;;;;;-1:-1:-1;1924:26:0;;;;-1:-1:-1;;;;;1924:26:0;;;;;;-1:-1:-1;;;;;3196:32:1;;;3178:51;;3166:2;3151:18;1924:26:0;3032:203:1;1270:44:0;;;;;;;;;;-1:-1:-1;1270:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;2971:689;;;;;;:::i;:::-;;:::i;1677:26::-;;;;;;;;;;;;;;;;2611:352;;;;;;;;;;-1:-1:-1;2611:352:0;;;;;:::i;:::-;;:::i;4018:93::-;;;;;;;;;;-1:-1:-1;4018:93:0;;;;;:::i;:::-;;:::i;2100:20::-;;;;;;;;;;;;;;;;1448;;;;;;;;;;;;;:::i;4566:87::-;;;;;;;;;;-1:-1:-1;4566:87:0;;;;;:::i;:::-;;:::i;1705:25::-;;;;;;;;;;;;;;;;3893:119;;;;;;;;;;-1:-1:-1;3893:119:0;;;;;:::i;:::-;;:::i;4969:1281::-;;;;;;;;;;-1:-1:-1;4969:1281:0;;;;;:::i;:::-;;:::i;1732:23::-;;;;;;;;;;;;;;;;8391:1319;;;;;;;;;;;;;:::i;1839:22::-;;;;;;;;;;-1:-1:-1;1839:22:0;;;;-1:-1:-1;;;;;1839:22:0;;;8214:169;;;;;;;;;;-1:-1:-1;8214:169:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1894:23::-;;;;;;;;;;-1:-1:-1;1894:23:0;;;;-1:-1:-1;;;;;1894:23:0;;;4268:144;;;;;;;;;;-1:-1:-1;4268:144:0;;;;;:::i;:::-;;:::i;1321:65::-;;;;;;;;;;-1:-1:-1;1321:65:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1790:18;;;;;;;;;;-1:-1:-1;1790:18:0;;;;-1:-1:-1;;;;;1790:18:0;;;8105:101;;;;;;;;;;-1:-1:-1;8105:101:0;;;;;:::i;:::-;;:::i;1868:19::-;;;;;;;;;;-1:-1:-1;1868:19:0;;;;-1:-1:-1;;;;;1868:19:0;;;1764;;;;;;;;;;-1:-1:-1;1764:19:0;;;;-1:-1:-1;;;;;1764:19:0;;;3668:88;;;;;;;;;;;;;:::i;1957:49::-;;;;;;;;;;-1:-1:-1;1957:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1395:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4418:140::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;;;;;;;;;4502:1:::1;4491:7;:12;;4483:50;;;::::0;-1:-1:-1;;;4483:50:0;;7104:2:1;4483:50:0::1;::::0;::::1;7086:21:1::0;7143:2;7123:18;;;7116:30;7182:27;7162:18;;;7155:55;7227:18;;4483:50:0::1;6902:349:1::0;4483:50:0::1;4535:11;:21:::0;4418:140::o;7704:219::-;7806:10;7771:12;7796:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;7796:31:0;;;;;;;;;;:40;;;7854:38;7771:12;;7796:31;;7854:38;;;;7830:6;160:25:1;;148:2;133:18;;14:177;7854:38:0;;;;;;;;-1:-1:-1;7911:4:0;7704:219;;;;;:::o;4847:114::-;2541:11;;-1:-1:-1;;;;;2541:11:0;2556:10;2541:25;2533:50;;;;-1:-1:-1;;;2533:50:0;;;;;;;:::i;:::-;4927:10:::1;:26:::0;4847:114::o;3764:123::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3849:22:0;;;::::1;;::::0;;;:17:::1;:22;::::0;;;;:36;;-1:-1:-1;;3849:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;3764:123::o;6258:1438::-;-1:-1:-1;;;;;6373:16:0;;6340:12;6373:16;;;;;;;;;;;:26;-1:-1:-1;6373:26:0;6365:66;;;;-1:-1:-1;;;6365:66:0;;7458:2:1;6365:66:0;;;7440:21:1;7497:2;7477:18;;;7470:30;7536:29;7516:18;;;7509:57;7583:18;;6365:66:0;7256:351:1;6365:66:0;-1:-1:-1;;;;;6447:19:0;;6456:10;6447:19;6444:174;;-1:-1:-1;;;;;6490:16:0;;;;;;:9;:16;;;;;;;;6507:10;6490:28;;;;;;;;:38;-1:-1:-1;6490:38:0;6482:71;;;;-1:-1:-1;;;6482:71:0;;7814:2:1;6482:71:0;;;7796:21:1;7853:2;7833:18;;;7826:30;-1:-1:-1;;;7872:18:1;;;7865:50;7932:18;;6482:71:0;7612:344:1;6482:71:0;-1:-1:-1;;;;;6568:16:0;;;;;;:9;:16;;;;;;;;6585:10;6568:28;;;;;;;:38;;6600:6;;6568:16;:38;;6600:6;;6568:38;:::i;:::-;;;;-1:-1:-1;;6444:174:0;6638:7;;-1:-1:-1;;;;;6638:7:0;:21;;;:42;;-1:-1:-1;6672:8:0;;-1:-1:-1;;;;;6663:17:0;;;6672:8;;6663:17;6638:42;:68;;;-1:-1:-1;;;;;;6684:22:0;;6701:4;6684:22;6638:68;6630:111;;;;-1:-1:-1;;;6630:111:0;;8428:2:1;6630:111:0;;;8410:21:1;8467:2;8447:18;;;8440:30;8506:32;8486:18;;;8479:60;8556:18;;6630:111:0;8226:354:1;6630:111:0;-1:-1:-1;;;;;6783:20:0;;6754:11;6783:20;;;:13;:20;;;;;;;;;:42;;-1:-1:-1;;;;;;6807:18:0;;;;;;:13;:18;;;;;;;;6783:42;6778:458;;6871:7;;6842:9;;-1:-1:-1;;;;;6871:14:0;;;:7;;:14;6868:115;;6915:22;6930:6;6915:14;:22::i;:::-;6905:32;;;;:::i;:::-;;;6963:4;6956:11;;6868:115;7000:7;;-1:-1:-1;;;;;7000:16:0;;;:7;;:16;6997:134;;7046:21;7060:6;7046:13;:21::i;:::-;7036:31;;;;:::i;:::-;;;7093:4;7086:11;;6997:134;7149:4;7145:80;;7183:26;7202:6;7183:18;:26::i;:::-;7173:36;;;;:::i;:::-;;;7145:80;6827:409;6778:458;-1:-1:-1;;;;;7248:16:0;;:9;:16;;;;;;;;;;:26;;7268:6;;7248:9;:26;;7268:6;;7248:26;:::i;:::-;;;;-1:-1:-1;7285:16:0;;-1:-1:-1;7295:6:0;7285:16;;:::i;:::-;;;7330:6;7312:9;:14;7322:3;-1:-1:-1;;;;;7312:14:0;-1:-1:-1;;;;;7312:14:0;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;7349:13:0;;;;;;;:6;:13;;;;;;;;7365:15;7349:31;;7397:22;;;;;:17;:22;;;;;;7396:23;:48;;;;-1:-1:-1;7423:7:0;;-1:-1:-1;;;;;7423:7:0;:21;;7396:48;7393:228;;;7516:3;7504:11;;:15;;;;:::i;:::-;7486:16;;:34;;;;:::i;:::-;-1:-1:-1;;;;;7468:14:0;;:9;:14;;;;;;;;;;;:52;;7460:149;;;;-1:-1:-1;;;7460:149:0;;9312:2:1;7460:149:0;;;9294:21:1;9351:2;9331:18;;;9324:30;9390:34;9370:18;;;9363:62;9461:34;9441:18;;;9434:62;-1:-1:-1;;;9512:19:1;;;9505:51;9573:19;;7460:149:0;9110:488:1;7460:149:0;7654:3;-1:-1:-1;;;;;7638:28:0;7647:5;-1:-1:-1;;;;;7638:28:0;;7659:6;7638:28;;;;160:25:1;;148:2;133:18;;14:177;7638:28:0;;;;;;;;-1:-1:-1;7684:4:0;;6258:1438;-1:-1:-1;;;;6258:1438:0:o;7931:166::-;2541:11;;-1:-1:-1;;;;;2541:11:0;2556:10;2541:25;2533:50;;;;-1:-1:-1;;;2533:50:0;;;;;;;:::i;:::-;7995:51:::1;::::0;7981:9:::1;::::0;7995:10:::1;::::0;8027:4:::1;8018:23;::::0;7981:9;7995:51;7981:9;7995:51;8018:23;7995:10;:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7980:66;;;8065:4;8057:32;;;::::0;-1:-1:-1;;;8057:32:0;;10015:2:1;8057:32:0::1;::::0;::::1;9997:21:1::0;10054:2;10034:18;;;10027:30;-1:-1:-1;;;10073:18:1;;;10066:45;10128:18;;8057:32:0::1;9813:339:1::0;8057:32:0::1;7969:128;7931:166::o:0;4661:178::-;2541:11;;-1:-1:-1;;;;;2541:11:0;2556:10;2541:25;2533:50;;;;-1:-1:-1;;;2533:50:0;;;;;;;:::i;:::-;4769:3:::1;:10:::0;4761:18;::::1;4753:44;;;::::0;-1:-1:-1;;;4753:44:0;;10359:2:1;4753:44:0::1;::::0;::::1;10341:21:1::0;10398:2;10378:18;;;10371:30;-1:-1:-1;;;10417:18:1;;;10410:43;10470:18;;4753:44:0::1;10157:337:1::0;4753:44:0::1;4821:10;4808:3;4812:5;4808:10;;;;;;;;:::i;:::-;;;;;;;;;:23;;;;;-1:-1:-1::0;;;;;4808:23:0::1;;;;;-1:-1:-1::0;;;;;4808:23:0::1;;;;;;4661:178:::0;;:::o;4117:145::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;4201:2:::1;4190:7;:13;;4182:52;;;::::0;-1:-1:-1;;;4182:52:0;;10833:2:1;4182:52:0::1;::::0;::::1;10815:21:1::0;10872:2;10852:18;;;10845:30;10911:28;10891:18;;;10884:56;10957:18;;4182:52:0::1;10631:350:1::0;4182:52:0::1;4236:14;:24:::0;4117:145::o;2971:689::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;3069:13:::1;::::0;::::1;;3068:14;3060:68;;;::::0;-1:-1:-1;;;3060:68:0;;11188:2:1;3060:68:0::1;::::0;::::1;11170:21:1::0;11227:2;11207:18;;;11200:30;11266:34;11246:18;;;11239:62;-1:-1:-1;;;11317:18:1;;;11310:39;11366:19;;3060:68:0::1;10986:405:1::0;3060:68:0::1;3140:13;:20:::0;;-1:-1:-1;;3140:20:0::1;3156:4;3140:20;::::0;;3171:26:::1;3193:4;3171:26:::0;::::1;:::i;:::-;3228:4;3210:24;::::0;;;:9:::1;:24;::::0;;;;;;;3243:6:::1;::::0;;-1:-1:-1;;;;;3243:6:0;;::::1;3210:41:::0;;;;;;;;;;-1:-1:-1;;3210:61:0;;;;3288:4:::1;::::0;3310:6;;3282:55;;-1:-1:-1;;;3282:55:0;;3310:6;;::::1;3282:55;::::0;::::1;11570:51:1::0;11637:18;;;11630:34;3171:26:0;;-1:-1:-1;3288:4:0::1;::::0;3282:19:::1;::::0;11543:18:1;;3282:55:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3356:4;;;;;;;;;-1:-1:-1::0;;;;;3356:4:0::1;-1:-1:-1::0;;;;;3348:21:0::1;;3377:9;3348:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3412:8:0::1;::::0;-1:-1:-1;;;;;3412:8:0::1;3402:9;:19:::0;;;::::1;::::0;;;;;;:41;;3425:18;;-1:-1:-1;3402:19:0;;-1:-1:-1;3402:9:0;;-1:-1:-1;3402:41:0::1;::::0;3425:18;;3402:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;3472:4:0::1;3454:9;:24:::0;;;::::1;::::0;;;;;;:46;;3482:18;;3454:9;:46:::1;::::0;3482:18;;3454:46:::1;:::i;:::-;::::0;;;-1:-1:-1;;3517:6:0::1;::::0;3552:4:::1;::::0;3578:36:::1;::::0;-1:-1:-1;;;3578:36:0;;3545:4:::1;3578:36;::::0;::::1;3178:51:1::0;;;-1:-1:-1;;;;;3517:6:0;;::::1;::::0;:19:::1;::::0;3545:4;;3552;::::1;::::0;3558:18;;3552:4;;3578:21:::1;::::0;3151:18:1;;3578:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3517:135;::::0;-1:-1:-1;;;;;;3517:135:0::1;::::0;;;;;;-1:-1:-1;;;;;12537:32:1;;;3517:135:0::1;::::0;::::1;12519:51:1::0;12606:32;;;;12586:18;;;12579:60;12655:18;;;12648:34;12698:18;;;12691:34;3616:1:0::1;12741:19:1::0;;;12734:35;;;12785:19;;;12778:35;3622:10:0::1;12829:19:1::0;;;12822:61;-1:-1:-1;;12899:19:1;;;12892:35;12491:19;;3517:135:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2971:689:::0;:::o;2611:352::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;2694:7:::1;::::0;-1:-1:-1;;;;;2694:7:0::1;:21:::0;2686:48:::1;;;::::0;-1:-1:-1;;;2686:48:0;;13601:2:1;2686:48:0::1;::::0;::::1;13583:21:1::0;13640:2;13620:18;;;13613:30;-1:-1:-1;;;13659:18:1;;;13652:44;13713:18;;2686:48:0::1;13399:338:1::0;2686:48:0::1;2747:7;:24:::0;;-1:-1:-1;;;;;;2747:24:0::1;-1:-1:-1::0;;;;;2747:24:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;2782:26:0;;;:17:::1;:26;::::0;;;;;;;:33;;-1:-1:-1;;2782:33:0::1;-1:-1:-1::0;2782:33:0;;::::1;::::0;;;2846:4:::1;2828:24:::0;;;;;;;2861:6:::1;::::0;;;::::1;2828:41:::0;;;;;;;;-1:-1:-1;;2828:61:0;;;;2906:4:::1;::::0;2928:6;;2900:55;;-1:-1:-1;;;2900:55:0;;2928:6;;::::1;2900:55;::::0;::::1;11570:51:1::0;11637:18;;;11630:34;2906:4:0;;::::1;::::0;2900:19:::1;::::0;11543:18:1;;2900:55:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2611:352:::0;:::o;4018:93::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;4083:16:::1;:26:::0;4018:93::o;1448:20::-;;;;;;;:::i;4566:87::-;2541:11;;-1:-1:-1;;;;;2541:11:0;2556:10;2541:25;2533:50;;;;-1:-1:-1;;;2533:50:0;;;;;;;:::i;:::-;4632:9:::1;:19:::0;4566:87::o;3893:119::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3978:18:0;;;::::1;;::::0;;;:13:::1;:18;::::0;;;;:32;;-1:-1:-1;;3978:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;3893:119::o;4969:1281::-;5075:10;5032:12;5065:21;;;;;;;;;;;:31;-1:-1:-1;5065:31:0;5057:84;;;;-1:-1:-1;;;5057:84:0;;13944:2:1;5057:84:0;;;13926:21:1;13983:2;13963:18;;;13956:30;14022:34;14002:18;;;13995:62;-1:-1:-1;;;14073:18:1;;;14066:38;14121:19;;5057:84:0;13742:404:1;5057:84:0;5186:7;;5154:11;;-1:-1:-1;;;;;5186:7:0;:21;;;:47;;-1:-1:-1;5225:8:0;;-1:-1:-1;;;;;5225:8:0;5211:10;:22;5186:47;:78;;;-1:-1:-1;5237:10:0;5259:4;5237:27;5186:78;5178:121;;;;-1:-1:-1;;;5178:121:0;;8428:2:1;5178:121:0;;;8410:21:1;8467:2;8447:18;;;8440:30;8506:32;8486:18;;;8479:60;8556:18;;5178:121:0;8226:354:1;5178:121:0;5331:10;5317:25;;;;:13;:25;;;;;;;;;:47;;-1:-1:-1;;;;;;5346:18:0;;;;;;:13;:18;;;;;;;;5317:47;5312:450;;5424:7;;5381:9;;-1:-1:-1;;;;;5424:7:0;5410:10;:21;5407:121;;5461:21;5475:6;5461:13;:21::i;:::-;5451:31;;;;:::i;:::-;;;5508:4;5501:11;;5407:121;5545:7;;-1:-1:-1;;;;;5545:14:0;;;:7;;:14;5542:115;;5589:22;5604:6;5589:14;:22::i;:::-;5579:32;;;;:::i;:::-;;;5637:4;5630:11;;5542:115;5675:4;5671:80;;5709:26;5728:6;5709:18;:26::i;:::-;5699:36;;;;:::i;:::-;;;5671:80;5366:396;5312:450;5784:10;5774:9;:21;;;;;;;;;;:31;;5799:6;;5774:9;:31;;5799:6;;5774:31;:::i;:::-;;;;-1:-1:-1;5816:16:0;;-1:-1:-1;5826:6:0;5816:16;;:::i;:::-;;;5861:6;5843:9;:14;5853:3;-1:-1:-1;;;;;5843:14:0;-1:-1:-1;;;;;5843:14:0;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;5887:10:0;5880:18;;;;:6;:18;;;;;;;;5901:15;5880:36;;-1:-1:-1;;;;;5933:22:0;;;;:17;:22;;;;;;;;5932:23;:48;;;;-1:-1:-1;5959:7:0;;-1:-1:-1;;;;;5959:7:0;:21;;5932:48;5929:233;;;6055:3;6040:11;;6021:16;;:30;;;;:::i;:::-;6020:38;;;;:::i;:::-;-1:-1:-1;;;;;6002:14:0;;:9;:14;;;;;;;;;;;:56;;5994:156;;;;-1:-1:-1;;;5994:156:0;;14353:2:1;5994:156:0;;;14335:21:1;14392:2;14372:18;;;14365:30;14431:34;14411:18;;;14404:62;14502:34;14482:18;;;14475:62;14574:25;14553:19;;;14546:54;14617:19;;5994:156:0;14151:491:1;5994:156:0;6187:33;;160:25:1;;;-1:-1:-1;;;;;6187:33:0;;;6196:10;;6187:33;;148:2:1;133:18;6187:33:0;;;;;;;-1:-1:-1;6238:4:0;;4969:1281;-1:-1:-1;;;4969:1281:0:o;8391:1319::-;8447:1;8436:8;;:12;8428:46;;;;-1:-1:-1;;;8428:46:0;;14849:2:1;8428:46:0;;;14831:21:1;14888:2;14868:18;;;14861:30;-1:-1:-1;;;14907:18:1;;;14900:51;14968:18;;8428:46:0;14647:345:1;8428:46:0;8507:10;;:21;;8518:10;8507:21;:::i;:::-;8493:11;:35;8485:66;;;;-1:-1:-1;;;8485:66:0;;15199:2:1;8485:66:0;;;15181:21:1;15238:2;15218:18;;;15211:30;-1:-1:-1;;;15257:18:1;;;15250:48;15315:18;;8485:66:0;14997:342:1;8485:66:0;8564:27;8594:34;8612:8;;8622:5;8594:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8594:34:0;;;;;;;;;;;;;;;;;;;;;:17;:34::i;:::-;8564:64;;8639:22;8664:10;8695:1;8675:10;:17;:21;;;;:::i;:::-;8664:33;;;;;;;;:::i;:::-;;;;;;;8639:58;;8733:9;;8716:14;:26;8708:62;;;;-1:-1:-1;;;8708:62:0;;15546:2:1;8708:62:0;;;15528:21:1;15585:2;15565:18;;;15558:30;15624:25;15604:18;;;15597:53;15667:18;;8708:62:0;15344:347:1;8708:62:0;8783:17;8843:5;8830:8;;8822:5;:16;;;;:::i;:::-;8804:35;;:14;:35;:::i;:::-;8803:45;;;;:::i;:::-;8783:65;-1:-1:-1;8859:16:0;8878:27;:15;8896:9;8878:27;:::i;:::-;8916:6;;8977:8;;9013:5;;8916:114;;-1:-1:-1;;;8916:114:0;;8859:46;;-1:-1:-1;;;;;;8916:6:0;;;;:60;;:114;;8977:8;8987:9;;8998:5;;9013;;;;8859:46;;8916:114;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9043:5:0;;9066:4;;9043:29;;-1:-1:-1;;;9043:29:0;;-1:-1:-1;;;;;9066:4:0;;;9043:29;;;3178:51:1;9043:5:0;;;-1:-1:-1;9043:16:0;;-1:-1:-1;3151:18:1;;9043:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9096:1:0;9085:8;:12;-1:-1:-1;;9118:4:0;;9133:36;;-1:-1:-1;;;9133:36:0;;9163:4;9133:36;;;3178:51:1;-1:-1:-1;;;;;9118:4:0;;;;9110:22;;9118:4;;9133:21;;3151:18:1;;9133:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9110:60;;;;;;;;;;;;;160:25:1;;148:2;133:18;;14:177;9110:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9203:21:0;;-1:-1:-1;9183:17:0;;-1:-1:-1;9274:5:0;;-1:-1:-1;9251:19:0;9203:21;9266:4;9251:19;:::i;:::-;9250:29;;;;:::i;:::-;9235:44;-1:-1:-1;9290:11:0;9327:5;9305:18;:12;9320:3;9305:18;:::i;:::-;9304:28;;;;:::i;:::-;9290:42;;9346:10;9361:3;9365:1;9361:6;;;;;;;;:::i;:::-;;;;;;;;;;:31;;-1:-1:-1;;;;;9361:6:0;;;;9380:7;;9361:31;;:6;:31;9380:7;9361:6;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9345:47;;;9404:10;9419:3;9423:1;9419:6;;;;;;;;:::i;:::-;;;;;;;;;;:30;;-1:-1:-1;;;;;9419:6:0;;;;9438;;9419:30;;:6;:30;9438:6;9419;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9403:46;;;9461:10;9476:3;9480:1;9476:6;;;;;;;;:::i;:::-;;;;;;;;;;:30;;-1:-1:-1;;;;;9476:6:0;;;;9495;;9476:30;;:6;:30;9495:6;9476;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9460:46;;;9518:10;9533:3;9537:1;9533:6;;;;;;;;:::i;:::-;;;;;;;;;;:30;;-1:-1:-1;;;;;9533:6:0;;;;9552;;9533:30;;:6;:30;9552:6;9533;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9517:46;;;9575:10;9590:3;9594:1;9590:6;;;;;;;;:::i;:::-;;;;;;;;;;:30;;-1:-1:-1;;;;;9590:6:0;;;;9609;;9590:30;;:6;:30;9609:6;9590;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9574:46;;;9641:5;:14;;;;;9650:5;9641:14;:23;;;;;9659:5;9641:23;:32;;;;;9668:5;9641:32;:41;;;;;9677:5;9641:41;9633:69;;;;-1:-1:-1;;;9633:69:0;;17099:2:1;9633:69:0;;;17081:21:1;17138:2;17118:18;;;17111:30;-1:-1:-1;;;17157:18:1;;;17150:45;17212:18;;9633:69:0;16897:339:1;9633:69:0;8417:1293;;;;;;;;;;;;8391:1319::o;8214:169::-;8339:6;;:36;;-1:-1:-1;;;8339:36:0;;8303:16;;-1:-1:-1;;;;;8339:6:0;;:20;;:36;;8360:8;;8370:4;;8339:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8339:36:0;;;;;;;;;;;;:::i;:::-;8332:43;8214:169;-1:-1:-1;;;8214:169:0:o;4268:144::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;4352:2:::1;4341:7;:13;;4333:52;;;::::0;-1:-1:-1;;;4333:52:0;;10833:2:1;4333:52:0::1;::::0;::::1;10815:21:1::0;10872:2;10852:18;;;10845:30;10911:28;10891:18;;;10884:56;10957:18;;4333:52:0::1;10631:350:1::0;4333:52:0::1;4387:13;:23:::0;4268:144::o;8105:101::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;8178:8:::1;:20:::0;8105:101::o;3668:88::-;2433:8;;-1:-1:-1;;;;;2433:8:0;2445:10;2433:22;2425:47;;;;-1:-1:-1;;;2425:47:0;;;;;;;:::i;:::-;3727:8:::1;:21:::0;;-1:-1:-1;;;;;;3727:21:0::1;::::0;;3668:88::o;9912:186::-;9967:8;10017:3;10009:6;9994:14;;:21;;;;:::i;:::-;9993:27;;;;:::i;:::-;9987:33;;10043:3;10031:8;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;10077:4:0;10059:9;:24;;;;;;;;;;:31;;10087:3;;10059:9;:31;;10087:3;;10059:31;:::i;:::-;;;;-1:-1:-1;9912:186:0;;;-1:-1:-1;;9912:186:0:o;9718:::-;9772:8;9823:3;9815:6;9799:13;;:22;;;;:::i;10106:187::-;10165:8;10212:3;10204:6;10192:11;;:18;;;;:::i;196:418:1:-;345:2;334:9;327:21;308:4;377:6;371:13;420:6;415:2;404:9;400:18;393:34;479:6;474:2;466:6;462:15;457:2;446:9;442:18;436:50;535:1;530:2;521:6;510:9;506:22;502:31;495:42;605:2;598;594:7;589:2;581:6;577:15;573:29;562:9;558:45;554:54;546:62;;;196:418;;;;:::o;619:226::-;678:6;731:2;719:9;710:7;706:23;702:32;699:52;;;747:1;744;737:12;699:52;-1:-1:-1;792:23:1;;619:226;-1:-1:-1;619:226:1:o;850:173::-;918:20;;-1:-1:-1;;;;;967:31:1;;957:42;;947:70;;1013:1;1010;1003:12;947:70;850:173;;;:::o;1028:300::-;1096:6;1104;1157:2;1145:9;1136:7;1132:23;1128:32;1125:52;;;1173:1;1170;1163:12;1125:52;1196:29;1215:9;1196:29;:::i;:::-;1186:39;1294:2;1279:18;;;;1266:32;;-1:-1:-1;;;1028:300:1:o;1525:118::-;1611:5;1604:13;1597:21;1590:5;1587:32;1577:60;;1633:1;1630;1623:12;1648:315;1713:6;1721;1774:2;1762:9;1753:7;1749:23;1745:32;1742:52;;;1790:1;1787;1780:12;1742:52;1813:29;1832:9;1813:29;:::i;:::-;1803:39;;1892:2;1881:9;1877:18;1864:32;1905:28;1927:5;1905:28;:::i;:::-;1952:5;1942:15;;;1648:315;;;;;:::o;1968:374::-;2045:6;2053;2061;2114:2;2102:9;2093:7;2089:23;2085:32;2082:52;;;2130:1;2127;2120:12;2082:52;2153:29;2172:9;2153:29;:::i;:::-;2143:39;;2201:38;2235:2;2224:9;2220:18;2201:38;:::i;:::-;1968:374;;2191:48;;-1:-1:-1;;;2308:2:1;2293:18;;;;2280:32;;1968:374::o;2536:186::-;2595:6;2648:2;2636:9;2627:7;2623:23;2619:32;2616:52;;;2664:1;2661;2654:12;2616:52;2687:29;2706:9;2687:29;:::i;2727:300::-;2795:6;2803;2856:2;2844:9;2835:7;2831:23;2827:32;2824:52;;;2872:1;2869;2862:12;2824:52;2917:23;;;-1:-1:-1;2983:38:1;3017:2;3002:18;;2983:38;:::i;:::-;2973:48;;2727:300;;;;;:::o;3240:127::-;3301:10;3296:3;3292:20;3289:1;3282:31;3332:4;3329:1;3322:15;3356:4;3353:1;3346:15;3372:275;3443:2;3437:9;3508:2;3489:13;;-1:-1:-1;;3485:27:1;3473:40;;3543:18;3528:34;;3564:22;;;3525:62;3522:88;;;3590:18;;:::i;:::-;3626:2;3619:22;3372:275;;-1:-1:-1;3372:275:1:o;3652:183::-;3712:4;3745:18;3737:6;3734:30;3731:56;;;3767:18;;:::i;:::-;-1:-1:-1;3812:1:1;3808:14;3824:4;3804:25;;3652:183::o;3840:1006::-;3933:6;3941;3994:2;3982:9;3973:7;3969:23;3965:32;3962:52;;;4010:1;4007;4000:12;3962:52;4055:23;;;-1:-1:-1;4153:2:1;4138:18;;4125:32;4180:18;4169:30;;4166:50;;;4212:1;4209;4202:12;4166:50;4235:22;;4288:4;4280:13;;4276:27;-1:-1:-1;4266:55:1;;4317:1;4314;4307:12;4266:55;4357:2;4344:16;4380:64;4396:47;4436:6;4396:47;:::i;:::-;4380:64;:::i;:::-;4466:3;4490:6;4485:3;4478:19;4522:2;4517:3;4513:12;4506:19;;4577:2;4567:6;4564:1;4560:14;4556:2;4552:23;4548:32;4534:46;;4603:7;4595:6;4592:19;4589:39;;;4624:1;4621;4614:12;4589:39;4656:2;4652;4648:11;4637:22;;4668:148;4684:6;4679:3;4676:15;4668:148;;;4750:23;4769:3;4750:23;:::i;:::-;4738:36;;4803:2;4701:12;;;;4794;;;;4668:148;;;4835:5;4825:15;;;;;;3840:1006;;;;;:::o;4851:611::-;5041:2;5053:21;;;5123:13;;5026:18;;;5145:22;;;4993:4;;5224:15;;;5198:2;5183:18;;;4993:4;5267:169;5281:6;5278:1;5275:13;5267:169;;;5342:13;;5330:26;;5385:2;5411:15;;;;5376:12;;;;5303:1;5296:9;5267:169;;;-1:-1:-1;5453:3:1;;4851:611;-1:-1:-1;;;;;4851:611:1:o;5467:260::-;5535:6;5543;5596:2;5584:9;5575:7;5571:23;5567:32;5564:52;;;5612:1;5609;5602:12;5564:52;5635:29;5654:9;5635:29;:::i;:::-;5625:39;;5683:38;5717:2;5706:9;5702:18;5683:38;:::i;6176:380::-;6255:1;6251:12;;;;6298;;;6319:61;;6373:4;6365:6;6361:17;6351:27;;6319:61;6426:2;6418:6;6415:14;6395:18;6392:38;6389:161;;6472:10;6467:3;6463:20;6460:1;6453:31;6507:4;6504:1;6497:15;6535:4;6532:1;6525:15;6389:161;;6176:380;;;:::o;6561:336::-;6763:2;6745:21;;;6802:2;6782:18;;;6775:30;-1:-1:-1;;;6836:2:1;6821:18;;6814:42;6888:2;6873:18;;6561:336::o;7961:127::-;8022:10;8017:3;8013:20;8010:1;8003:31;8053:4;8050:1;8043:15;8077:4;8074:1;8067:15;8093:128;8160:9;;;8181:11;;;8178:37;;;8195:18;;:::i;8585:125::-;8650:9;;;8671:10;;;8668:36;;;8684:18;;:::i;8715:217::-;8755:1;8781;8771:132;;8825:10;8820:3;8816:20;8813:1;8806:31;8860:4;8857:1;8850:15;8888:4;8885:1;8878:15;8771:132;-1:-1:-1;8917:9:1;;8715:217::o;8937:168::-;9010:9;;;9041;;9058:15;;;9052:22;;9038:37;9028:71;;9079:18;;:::i;10499:127::-;10560:10;10555:3;10551:20;10548:1;10541:31;10591:4;10588:1;10581:15;10615:4;10612:1;10605:15;11675:245;11742:6;11795:2;11783:9;11774:7;11770:23;11766:32;11763:52;;;11811:1;11808;11801:12;11763:52;11843:9;11837:16;11862:28;11884:5;11862:28;:::i;11925:230::-;11995:6;12048:2;12036:9;12027:7;12023:23;12019:32;12016:52;;;12064:1;12061;12054:12;12016:52;-1:-1:-1;12109:16:1;;11925:230;-1:-1:-1;11925:230:1:o;12938:456::-;13026:6;13034;13042;13095:2;13083:9;13074:7;13070:23;13066:32;13063:52;;;13111:1;13108;13101:12;13063:52;-1:-1:-1;;13156:16:1;;13262:2;13247:18;;13241:25;13358:2;13343:18;;;13337:25;13156:16;;13241:25;;-1:-1:-1;13337:25:1;12938:456;-1:-1:-1;12938:456:1:o;15696:974::-;15947:4;15995:3;15984:9;15980:19;16026:6;16015:9;16008:25;16069:6;16064:2;16053:9;16049:18;16042:34;16112:3;16107:2;16096:9;16092:18;16085:31;16136:6;16171;16165:13;16202:6;16194;16187:22;16240:3;16229:9;16225:19;16218:26;;16263:6;16260:1;16253:17;16306:2;16303:1;16293:16;16279:30;;16327:1;16337:194;16351:6;16348:1;16345:13;16337:194;;;16416:13;;-1:-1:-1;;;;;16412:39:1;16400:52;;16448:1;16507:14;;;;16481:2;16472:12;;;;16366:9;16337:194;;;-1:-1:-1;;;;;;;16587:32:1;;;;16582:2;16567:18;;16560:60;-1:-1:-1;;16651:3:1;16636:19;16629:35;16548:3;15696:974;-1:-1:-1;;;15696:974:1:o;17241:708::-;17411:4;17459:2;17448:9;17444:18;17489:6;17478:9;17471:25;17532:2;17527;17516:9;17512:18;17505:30;17555:6;17590;17584:13;17621:6;17613;17606:22;17659:2;17648:9;17644:18;17637:25;;17697:2;17689:6;17685:15;17671:29;;17718:1;17728:195;17742:6;17739:1;17736:13;17728:195;;;17807:13;;-1:-1:-1;;;;;17803:39:1;17791:52;;17872:2;17898:15;;;;17863:12;;;;17839:1;17757:9;17728:195;;;-1:-1:-1;17940:3:1;;17241:708;-1:-1:-1;;;;;;17241:708:1:o;17954:930::-;18049:6;18102:2;18090:9;18081:7;18077:23;18073:32;18070:52;;;18118:1;18115;18108:12;18070:52;18151:9;18145:16;18184:18;18176:6;18173:30;18170:50;;;18216:1;18213;18206:12;18170:50;18239:22;;18292:4;18284:13;;18280:27;-1:-1:-1;18270:55:1;;18321:1;18318;18311:12;18270:55;18354:2;18348:9;18377:64;18393:47;18433:6;18393:47;:::i;18377:64::-;18463:3;18487:6;18482:3;18475:19;18519:2;18514:3;18510:12;18503:19;;18574:2;18564:6;18561:1;18557:14;18553:2;18549:23;18545:32;18531:46;;18600:7;18592:6;18589:19;18586:39;;;18621:1;18618;18611:12;18586:39;18653:2;18649;18645:11;18634:22;;18665:189;18681:6;18676:3;18673:15;18665:189;;;18771:10;;18794:18;;18841:2;18698:12;;;;18832;;;;18665:189;;;18873:5;17954:930;-1:-1:-1;;;;;;17954:930:1:o

Swarm Source

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