ETH Price: $3,422.66 (+3.08%)

Contract

0xB2b11a9a31097897c26B8537D94BCb0c9fC8f0ed
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Migrate198369842024-05-10 3:34:35197 days ago1715312075IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.000637153
Migrate173467152023-05-27 0:04:47546 days ago1685145887IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.002014724.04527931
Migrate173467152023-05-27 0:04:47546 days ago1685145887IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.002014724.04527931
Migrate173141322023-05-22 10:05:35551 days ago1684749935IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0029628435.36120872
Migrate168688712023-03-20 12:25:23614 days ago1679315123IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0035059116.50745113
Migrate168688712023-03-20 12:25:23614 days ago1679315123IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0035059116.50745113
Migrate168688712023-03-20 12:25:23614 days ago1679315123IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0035059116.50745113
Migrate168668852023-03-20 5:44:47614 days ago1679291087IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0009394311.21203986
Migrate168528672023-03-18 6:29:35616 days ago1679120975IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0028520213.42863099
Migrate167248972023-02-28 6:32:11634 days ago1677565931IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0036904617.37636497
Migrate167192232023-02-27 11:26:11635 days ago1677497171IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0035559814
Migrate167098312023-02-26 3:47:59636 days ago1677383279IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0032360215.23667976
Migrate167031262023-02-25 5:07:11637 days ago1677301631IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0015151818.0835138
Migrate167025592023-02-25 3:12:47637 days ago1677294767IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0005183420
Migrate167023132023-02-25 2:23:35637 days ago1677291815IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0043366620.41897829
Migrate167016792023-02-25 0:16:11637 days ago1677284171IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.004644621.86888406
Migrate166996502023-02-24 17:23:47638 days ago1677259427IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0031716337.85305082
Migrate166986782023-02-24 14:06:47638 days ago1677247607IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0061231728.83070054
Migrate166986342023-02-24 13:57:59638 days ago1677247079IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0055358826.06544606
Migrate166986092023-02-24 13:52:59638 days ago1677246779IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0057234626.94867878
Migrate166986092023-02-24 13:52:59638 days ago1677246779IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0073365328.88410864
Migrate166986062023-02-24 13:52:23638 days ago1677246743IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.005687126.77746479
Migrate166985422023-02-24 13:39:35638 days ago1677245975IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0070767233.32042223
Migrate166983552023-02-24 13:01:23638 days ago1677243683IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0059449827.99166323
Migrate166979932023-02-24 11:47:59638 days ago1677239279IN
0xB2b11a9a...c9fC8f0ed
0 ETH0.0060866728.65879942
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Migrator

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 99999 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-23
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.16;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    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);
}
interface StakeV2{
    function getPending1(address staker) external view returns(uint256 _pendingReward);
    function getPending2(address staker) external view returns(uint256 _pendingReward);
    function getPending3(address staker) external view returns(uint256 _pendingReward);
    function isStakeholder(address _address) external view returns(bool);
    function userStakedFEG(address user) external view returns(uint256 StakedFEG);
}

library TransferHelper {
    function safeApprove(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');
    }

    function safeTransfer(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
    }

    function safeTransferFrom(address token, address from, address to, uint value) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
    }

    function safeTransferETH(address to, uint value) internal {
        (bool success,) = to.call{value:value}(new bytes(0));
        require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
    }
}

interface StakeV1{
     function yourStakedFEG(address staker) external view returns(uint256 stakedFEG);
}

interface ProPair{
    function userBalanceInternal(address _addr) external view returns(uint256, uint256);
}

contract ReEntrancyGuard {
    bool internal locked;

    modifier noReentrant() {
        require(!locked, "No re-entrancy");
        locked = true;
        _;
        locked = false;
    }
}
contract ReEntrancyGuard2 {
    mapping(address=>uint256) internal lastBlock;

    modifier lock(){
        require(lastBlock[msg.sender] < block.number,"No re-entrancy V2");
        lastBlock[msg.sender] = block.number;
        _;

    }
}

                                                                                                                    
contract Migrator is ReEntrancyGuard,ReEntrancyGuard2{
    address public constant V_2         = 0x4a9D6b95459eb9532B7E4d82Ca214a3b20fa2358;
    address public constant V_1         = 0x5bCF1f407c0fc922074283B4e11DaaF539f6644D;
    address public constant FEG         = 0x389999216860AB8E0175387A0c90E5c52522C945;
    address public constant PRO         = 0xf2bda964ec2D2fcB1610c886eD4831bf58f64948;
    address public constant NEW_PAIR    = 0xBA993532E7b66029077b794383eB0Cb75CcDD72D; 
    address public constant dev         = 0x765Cf9485CD66960608a0B8Dd79d39FCBC847904; 
    address public constant DEAD        = 0x000000000000000000000000000000000000dEaD; 

    uint256  public constant  RATIO = 1_000;

    mapping(address=>bool) public v1Claimed;
    mapping(address=>uint256) public amtClaimed;
    


    function balanceEligable(address holder) public view returns(uint256){
            return IERC20(FEG).balanceOf(holder)*RATIO;
    }




    function lPEligable(address holder) public view  returns(uint256){
        return ((IERC20(PRO).balanceOf(holder)*117/100)/10**9)*RATIO;
    }

    function stakingV2Eligable(address holder) public view returns(uint256){
        return StakeV2(V_2).userStakedFEG(holder) * RATIO;
    }

    function stakingV1Eligable(address holder) public view returns(uint256){
        if (v1Claimed[holder]) return 0;
        return StakeV1(V_1).yourStakedFEG(holder) * RATIO;
    }

    function totalEligable(address holder) external view returns(uint256){
        return  lPEligable(holder) + balanceEligable(holder) +  stakingV2Eligable(holder) + stakingV1Eligable(holder);
    }

    

    function saveLostTokens(address toSave) external { //added function to save any lost tokens
        require(FEG != toSave,"Can't extract FEG");
        require(msg.sender == dev, "You do not have permission");
        uint256 toSend = IERC20(toSave).balanceOf(address(this));
        require(IERC20(toSave).transfer(dev,toSend),"Extraction Transfer failed");
    }
  
    function singleStepMigrationBalance() external noReentrant lock{
        require(msg.sender == tx.origin, "no contract allowed");
        address user = msg.sender;
        uint256 toSend =balanceEligable(user);
        TransferHelper.safeTransferFrom(FEG,user,address(this),IERC20(FEG).balanceOf(user));
        require(IERC20(NEW_PAIR).transfer(user,toSend),"New token Transfer failed");
        amtClaimed[user] += toSend;
    }

    function singleStepMigrationLP() external noReentrant lock{
        require(msg.sender == tx.origin, "no contract allowed");
        address user = msg.sender;
        uint256 toSend = ((IERC20(PRO).balanceOf(user)*117/100)/10**9)*RATIO;
        TransferHelper.safeTransferFrom(PRO,user,address(this),IERC20(PRO).balanceOf(user));
        require(IERC20(NEW_PAIR).transfer(user,toSend),"New token Transfer failed");
        amtClaimed[user] += toSend;
    }

    function singleStepMigrationStakingV1() external noReentrant lock{
        require(msg.sender == tx.origin, "no contract allowed");
        address user = msg.sender;
        require(!v1Claimed[user],"You already claimed V_1");
        uint256 toSend = StakeV1(V_1).yourStakedFEG(user) * RATIO;
        v1Claimed[user] = true;
        require(IERC20(NEW_PAIR).transfer(user,toSend),"New token Transfer failed");
        amtClaimed[user] += toSend;
    }

    function singleStepMigrationStakingV2() external noReentrant lock{
        require(msg.sender == tx.origin, "no contract allowed");
        address user = msg.sender;
        require(StakeV2(V_2).isStakeholder(user),"You are not a stakeholder");
        require( StakeV2(V_2).getPending1(user) == 0 && StakeV2(V_2).getPending2(user) == 0 && StakeV2(V_2).getPending3(user) == 0, "Please claim your Staking rewards" );
        uint256 toSend = StakeV2(V_2).userStakedFEG(user) * RATIO;
        TransferHelper.safeTransferFrom(V_2,user,address(this),IERC20(V_2).balanceOf(user));
        require(IERC20(NEW_PAIR).transfer(user,toSend),"New token Transfer failed");
        amtClaimed[user] += toSend;
    }

    function singleStepMigrationStakingV2WithoutRewardsClaim() external noReentrant lock{
        require(msg.sender == tx.origin, "no contract allowed");
        address user = msg.sender;
        uint256 toSend = StakeV2(V_2).userStakedFEG(user) * RATIO;
        TransferHelper.safeTransferFrom(V_2,user,address(this),IERC20(V_2).balanceOf(user));
        require(IERC20(NEW_PAIR).transfer(user,toSend),"New token Transfer failed");
        amtClaimed[user] += toSend;
    }


    function migrate() external noReentrant lock{
        require(msg.sender == tx.origin, "no contract allowed");
        address user = msg.sender;
        uint256 toSend = 0;
        //balance
        if(IERC20(FEG).balanceOf(user) > 0){
            require( IERC20(FEG).allowance(user,address(this)) >= IERC20(FEG).balanceOf(user),"Please apPROve your FEG balance");
            toSend += balanceEligable(user);
            TransferHelper.safeTransferFrom(FEG,user,address(this),IERC20(FEG).balanceOf(user));
        }
        //Staking V_2
        if(IERC20(V_2).balanceOf(user) > 0){
            //V_2 logic
            toSend += StakeV2(V_2).userStakedFEG(user) * RATIO;
            TransferHelper.safeTransferFrom(V_2,user,address(this),IERC20(V_2).balanceOf(user));
        }
        //Staking V_1
        if(!v1Claimed[user]){
            toSend += StakeV1(V_1).yourStakedFEG(user) * RATIO;
            v1Claimed[user] = true;
        }
        //liquidity in PROpair
        if(IERC20(PRO).balanceOf(user)>0){
            toSend += ((IERC20(PRO).balanceOf(user)*117/100)/10**9)*RATIO;
            TransferHelper.safeTransferFrom(PRO,user,address(this),IERC20(PRO).balanceOf(user));
        }
        //checks if the person get's anything
        require(toSend > 0,"Nothing to migrate");
        require(IERC20(NEW_PAIR).transfer(user,toSend),"New token Transfer failed");
    }

function migrateView(address user) external view returns(uint toSend){
        //balance
        if(IERC20(FEG).balanceOf(user) > 0){
            toSend += balanceEligable(user);
        }
        //Staking V_2
        if(IERC20(V_2).balanceOf(address(this)) > 0){
            //V_2 logic
            toSend += StakeV2(V_2).userStakedFEG(user) * RATIO;
        }
        //Staking V_1
        if(!v1Claimed[user]){
            toSend += StakeV1(V_1).yourStakedFEG(user) * RATIO;
        }
        //liquidity in PROpair
        if(IERC20(PRO).balanceOf(user)>0){
            toSend += ((IERC20(PRO).balanceOf(user)*117/100)/10**9)*RATIO;
        }

        //checks if the person get's anything
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NEW_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATIO","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"V_1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"V_2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"amtClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"balanceEligable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"lPEligable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"migrateView","outputs":[{"internalType":"uint256","name":"toSend","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toSave","type":"address"}],"name":"saveLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"singleStepMigrationBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"singleStepMigrationLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"singleStepMigrationStakingV1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"singleStepMigrationStakingV2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"singleStepMigrationStakingV2WithoutRewardsClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"stakingV1Eligable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"stakingV2Eligable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"totalEligable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"v1Claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50612dbb806100206000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80638fd3ab80116100e3578063cf81d75c1161008c578063de0ee23a11610066578063de0ee23a1461035a578063f7296d2a1461036d578063f999ee0e1461038057600080fd5b8063cf81d75c14610311578063d9b6f82f1461032c578063dcf56b871461033f57600080fd5b8063a879ab28116100bd578063a879ab28146102ce578063c63ffb29146102d6578063cae99ae9146102de57600080fd5b80638fd3ab80146102a357806391cca3db146102ab5780639caf1f9d146102c657600080fd5b80632a3f700b11610145578063582494fd1161011f578063582494fd1461027757806359e741d21461027f57806376cb7ae71461028857600080fd5b80632a3f700b1461022f57806330581ef7146102445780634e8d347d1461025757600080fd5b8063093a9fbc11610176578063093a9fbc146101e65780631257cd90146102015780631e6f9ba21461021c57600080fd5b806301df5a031461019257806303fd2a45146101b8575b600080fd5b6101a56101a0366004612c4a565b610388565b6040519081526020015b60405180910390f35b6101c161dead81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101af565b6101c173389999216860ab8e0175387a0c90e5c52522c94581565b6101c173ba993532e7b66029077b794383eb0cb75ccdd72d81565b6101a561022a366004612c4a565b6103d2565b61024261023d366004612c4a565b6104ad565b005b6101a5610252366004612c4a565b61076b565b6101a5610265366004612c4a565b60036020526000908152604090205481565b610242610848565b6101a56103e881565b6101c1735bcf1f407c0fc922074283b4e11daaf539f6644d81565b610242610c9d565b6101c173765cf9485cd66960608a0b8dd79d39fcbc84790481565b6102426117ad565b610242611b0b565b610242611dcd565b6103016102ec366004612c4a565b60026020526000908152604090205460ff1681565b60405190151581526020016101af565b6101c173f2bda964ec2d2fcb1610c886ed4831bf58f6494881565b6101a561033a366004612c4a565b61233b565b6101c1734a9d6b95459eb9532b7e4d82ca214a3b20fa235881565b6101a5610368366004612c4a565b6127cc565b6101a561037b366004612c4a565b612839565b6102426128a6565b60006103938261076b565b61039c83612839565b6103a5846127cc565b6103ae856103d2565b6103b89190612cb6565b6103c29190612cb6565b6103cc9190612cb6565b92915050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e890633b9aca009060649073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa158015610460573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104849190612cc9565b61048f906075612ce2565b6104999190612cf9565b6104a39190612cf9565b6103cc9190612ce2565b73ffffffffffffffffffffffffffffffffffffffff811673389999216860ab8e0175387a0c90e5c52522c94503610545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f43616e277420657874726163742046454700000000000000000000000000000060448201526064015b60405180910390fd5b3373765cf9485cd66960608a0b8dd79d39fcbc847904146105c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f596f7520646f206e6f742068617665207065726d697373696f6e000000000000604482015260640161053c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106539190612cc9565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273765cf9485cd66960608a0b8dd79d39fcbc84790460048201526024810182905290915073ffffffffffffffffffffffffffffffffffffffff83169063a9059cbb906044016020604051808303816000875af11580156106dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107019190612d34565b610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45787472616374696f6e205472616e73666572206661696c6564000000000000604482015260640161053c565b5050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604081205460ff16156107a157506000919050565b6040517f4851067100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890735bcf1f407c0fc922074283b4e11daaf539f6644d906348510671906024015b602060405180830381865afa158015610824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190612cc9565b60005460ff16156108b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117825533825260205260409020544311610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b33600081815260016020526040902043905532146109cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b6040517f522c90690000000000000000000000000000000000000000000000000000000081523360048201819052906000906103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c9069906024015b602060405180830381865afa158015610a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a669190612cc9565b610a709190612ce2565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152909150610b2590734a9d6b95459eb9532b7e4d82ca214a3b20fa2358908490309083906370a08231906024015b602060405180830381865afa158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b209190612cc9565b612aac565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024810182905273ba993532e7b66029077b794383eb0cb75ccdd72d9063a9059cbb906044015b6020604051808303816000875af1158015610bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd19190612d34565b610c37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4e657720746f6b656e205472616e73666572206661696c656400000000000000604482015260640161053c565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054839290610c6c908490612cb6565b9091555050600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b60005460ff1615610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117825533825260205260409020544311610daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152336004820181905290600090819073389999216860ab8e0175387a0c90e5c52522c945906370a0823190602401602060405180830381865afa158015610e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb89190612cc9565b11156110f6576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273389999216860ab8e0175387a0c90e5c52522c945906370a0823190602401602060405180830381865afa158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f609190612cc9565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015230602482015273389999216860ab8e0175387a0c90e5c52522c9459063dd62ed3e90604401602060405180830381865afa158015610fe4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110089190612cc9565b1015611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f506c6561736520617050524f766520796f7572204645472062616c616e636500604482015260640161053c565b611079826127cc565b6110839082612cb6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201529091506110f69073389999216860ab8e0175387a0c90e5c52522c945908490309083906370a0823190602401610adf565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152600090734a9d6b95459eb9532b7e4d82ca214a3b20fa2358906370a0823190602401602060405180830381865afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b9190612cc9565b11156112ce576040517f522c906900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c906990602401602060405180830381865afa158015611223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112479190612cc9565b6112519190612ce2565b61125b9082612cb6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201529091506112ce90734a9d6b95459eb9532b7e4d82ca214a3b20fa2358908490309083906370a0823190602401610adf565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090205460ff16611406576040517f4851067100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890735bcf1f407c0fc922074283b4e11daaf539f6644d90634851067190602401602060405180830381865afa15801561137d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a19190612cc9565b6113ab9190612ce2565b6113b59082612cb6565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590505b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260009073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa158015611487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ab9190612cc9565b1115611606576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890633b9aca009060649073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa15801561153c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115609190612cc9565b61156b906075612ce2565b6115759190612cf9565b61157f9190612cf9565b6115899190612ce2565b6115939082612cb6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201529091506116069073f2bda964ec2d2fcb1610c886ed4831bf58f64948908490309083906370a0823190602401610adf565b60008111611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e6f7468696e6720746f206d6967726174650000000000000000000000000000604482015260640161053c565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024810182905273ba993532e7b66029077b794383eb0cb75ccdd72d9063a9059cbb906044016020604051808303816000875af11580156116f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171b9190612d34565b611781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4e657720746f6b656e205472616e73666572206661696c656400000000000000604482015260640161053c565b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60005460ff161561181a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081178255338252602052604090205443116118ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b3360008181526002602052604090205460ff16156119ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f596f7520616c726561647920636c61696d656420565f31000000000000000000604482015260640161053c565b6040517f4851067100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e890735bcf1f407c0fc922074283b4e11daaf539f6644d90634851067190602401602060405180830381865afa158015611a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a579190612cc9565b611a619190612ce2565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600260205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101919091526024810182905290915073ba993532e7b66029077b794383eb0cb75ccdd72d9063a9059cbb90604401610b8e565b60005460ff1615611b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117825533825260205260409020544311611c18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214611c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201819052906000906103e890633b9aca009060649073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa158015611d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d319190612cc9565b611d3c906075612ce2565b611d469190612cf9565b611d509190612cf9565b611d5a9190612ce2565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152909150610b259073f2bda964ec2d2fcb1610c886ed4831bf58f64948908490309083906370a0823190602401610adf565b60005460ff1615611e3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117825533825260205260409020544311611eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214611f54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b6040517fef037b90000000000000000000000000000000000000000000000000000000008152336004820181905290734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063ef037b9090602401602060405180830381865afa158015611fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe39190612d34565b612049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f596f7520617265206e6f742061207374616b65686f6c64657200000000000000604482015260640161053c565b6040517fdff49b0b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063dff49b0b90602401602060405180830381865afa1580156120c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120eb9190612cc9565b15801561219757506040517f1f75d80d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152734a9d6b95459eb9532b7e4d82ca214a3b20fa235890631f75d80d90602401602060405180830381865afa158015612171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121959190612cc9565b155b801561224257506040517f3d43621400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152734a9d6b95459eb9532b7e4d82ca214a3b20fa235890633d43621490602401602060405180830381865afa15801561221c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122409190612cc9565b155b6122ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f506c6561736520636c61696d20796f7572205374616b696e672072657761726460448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161053c565b6040517f522c906900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c906990602401610a25565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152600090819073389999216860ab8e0175387a0c90e5c52522c945906370a0823190602401602060405180830381865afa1580156123be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e29190612cc9565b11156123fe576123f1826127cc565b6123fb9082612cb6565b90505b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090734a9d6b95459eb9532b7e4d82ca214a3b20fa2358906370a0823190602401602060405180830381865afa158015612469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248d9190612cc9565b1115612550576040517f522c906900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c906990602401602060405180830381865afa158015612515573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125399190612cc9565b6125439190612ce2565b61254d9082612cb6565b90505b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090205460ff1661263a576040517f4851067100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890735bcf1f407c0fc922074283b4e11daaf539f6644d90634851067190602401602060405180830381865afa1580156125ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126239190612cc9565b61262d9190612ce2565b6126379082612cb6565b90505b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260009073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa1580156126bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126df9190612cc9565b11156127c7576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890633b9aca009060649073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa158015612770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127949190612cc9565b61279f906075612ce2565b6127a99190612cf9565b6127b39190612cf9565b6127bd9190612ce2565b6103cc9082612cb6565b919050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e89073389999216860ab8e0175387a0c90e5c52522c945906370a0823190602401610807565b6040517f522c906900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c906990602401610807565b60005460ff1615612913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081178255338252602052604090205443116129b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214612a2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b336000612a39826127cc565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152909150610b259073389999216860ab8e0175387a0c90e5c52522c945908490309083906370a0823190602401610adf565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691612b4b9190612d56565b6000604051808303816000865af19150503d8060008114612b88576040519150601f19603f3d011682016040523d82523d6000602084013e612b8d565b606091505b5091509150818015612bb7575080511580612bb7575080806020019051810190612bb79190612d34565b612c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160448201527f494c454400000000000000000000000000000000000000000000000000000000606482015260840161053c565b505050505050565b600060208284031215612c5c57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114612c8057600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103cc576103cc612c87565b600060208284031215612cdb57600080fd5b5051919050565b80820281158282048414176103cc576103cc612c87565b600082612d2f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215612d4657600080fd5b81518015158114612c8057600080fd5b6000825160005b81811015612d775760208186018101518583015201612d5d565b50600092019182525091905056fea2646970667358221220ac18bb0b42c66a0980c1036fafd83a285cb56c45d37d64ef370913b6860f360164736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018d5760003560e01c80638fd3ab80116100e3578063cf81d75c1161008c578063de0ee23a11610066578063de0ee23a1461035a578063f7296d2a1461036d578063f999ee0e1461038057600080fd5b8063cf81d75c14610311578063d9b6f82f1461032c578063dcf56b871461033f57600080fd5b8063a879ab28116100bd578063a879ab28146102ce578063c63ffb29146102d6578063cae99ae9146102de57600080fd5b80638fd3ab80146102a357806391cca3db146102ab5780639caf1f9d146102c657600080fd5b80632a3f700b11610145578063582494fd1161011f578063582494fd1461027757806359e741d21461027f57806376cb7ae71461028857600080fd5b80632a3f700b1461022f57806330581ef7146102445780634e8d347d1461025757600080fd5b8063093a9fbc11610176578063093a9fbc146101e65780631257cd90146102015780631e6f9ba21461021c57600080fd5b806301df5a031461019257806303fd2a45146101b8575b600080fd5b6101a56101a0366004612c4a565b610388565b6040519081526020015b60405180910390f35b6101c161dead81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101af565b6101c173389999216860ab8e0175387a0c90e5c52522c94581565b6101c173ba993532e7b66029077b794383eb0cb75ccdd72d81565b6101a561022a366004612c4a565b6103d2565b61024261023d366004612c4a565b6104ad565b005b6101a5610252366004612c4a565b61076b565b6101a5610265366004612c4a565b60036020526000908152604090205481565b610242610848565b6101a56103e881565b6101c1735bcf1f407c0fc922074283b4e11daaf539f6644d81565b610242610c9d565b6101c173765cf9485cd66960608a0b8dd79d39fcbc84790481565b6102426117ad565b610242611b0b565b610242611dcd565b6103016102ec366004612c4a565b60026020526000908152604090205460ff1681565b60405190151581526020016101af565b6101c173f2bda964ec2d2fcb1610c886ed4831bf58f6494881565b6101a561033a366004612c4a565b61233b565b6101c1734a9d6b95459eb9532b7e4d82ca214a3b20fa235881565b6101a5610368366004612c4a565b6127cc565b6101a561037b366004612c4a565b612839565b6102426128a6565b60006103938261076b565b61039c83612839565b6103a5846127cc565b6103ae856103d2565b6103b89190612cb6565b6103c29190612cb6565b6103cc9190612cb6565b92915050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e890633b9aca009060649073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa158015610460573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104849190612cc9565b61048f906075612ce2565b6104999190612cf9565b6104a39190612cf9565b6103cc9190612ce2565b73ffffffffffffffffffffffffffffffffffffffff811673389999216860ab8e0175387a0c90e5c52522c94503610545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f43616e277420657874726163742046454700000000000000000000000000000060448201526064015b60405180910390fd5b3373765cf9485cd66960608a0b8dd79d39fcbc847904146105c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f596f7520646f206e6f742068617665207065726d697373696f6e000000000000604482015260640161053c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106539190612cc9565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273765cf9485cd66960608a0b8dd79d39fcbc84790460048201526024810182905290915073ffffffffffffffffffffffffffffffffffffffff83169063a9059cbb906044016020604051808303816000875af11580156106dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107019190612d34565b610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f45787472616374696f6e205472616e73666572206661696c6564000000000000604482015260640161053c565b5050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604081205460ff16156107a157506000919050565b6040517f4851067100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890735bcf1f407c0fc922074283b4e11daaf539f6644d906348510671906024015b602060405180830381865afa158015610824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190612cc9565b60005460ff16156108b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117825533825260205260409020544311610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b33600081815260016020526040902043905532146109cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b6040517f522c90690000000000000000000000000000000000000000000000000000000081523360048201819052906000906103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c9069906024015b602060405180830381865afa158015610a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a669190612cc9565b610a709190612ce2565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152909150610b2590734a9d6b95459eb9532b7e4d82ca214a3b20fa2358908490309083906370a08231906024015b602060405180830381865afa158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b209190612cc9565b612aac565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024810182905273ba993532e7b66029077b794383eb0cb75ccdd72d9063a9059cbb906044015b6020604051808303816000875af1158015610bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd19190612d34565b610c37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4e657720746f6b656e205472616e73666572206661696c656400000000000000604482015260640161053c565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054839290610c6c908490612cb6565b9091555050600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b60005460ff1615610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117825533825260205260409020544311610daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152336004820181905290600090819073389999216860ab8e0175387a0c90e5c52522c945906370a0823190602401602060405180830381865afa158015610e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb89190612cc9565b11156110f6576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273389999216860ab8e0175387a0c90e5c52522c945906370a0823190602401602060405180830381865afa158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f609190612cc9565b6040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015230602482015273389999216860ab8e0175387a0c90e5c52522c9459063dd62ed3e90604401602060405180830381865afa158015610fe4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110089190612cc9565b1015611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f506c6561736520617050524f766520796f7572204645472062616c616e636500604482015260640161053c565b611079826127cc565b6110839082612cb6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201529091506110f69073389999216860ab8e0175387a0c90e5c52522c945908490309083906370a0823190602401610adf565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152600090734a9d6b95459eb9532b7e4d82ca214a3b20fa2358906370a0823190602401602060405180830381865afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b9190612cc9565b11156112ce576040517f522c906900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c906990602401602060405180830381865afa158015611223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112479190612cc9565b6112519190612ce2565b61125b9082612cb6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201529091506112ce90734a9d6b95459eb9532b7e4d82ca214a3b20fa2358908490309083906370a0823190602401610adf565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090205460ff16611406576040517f4851067100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890735bcf1f407c0fc922074283b4e11daaf539f6644d90634851067190602401602060405180830381865afa15801561137d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a19190612cc9565b6113ab9190612ce2565b6113b59082612cb6565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590505b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260009073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa158015611487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ab9190612cc9565b1115611606576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890633b9aca009060649073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa15801561153c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115609190612cc9565b61156b906075612ce2565b6115759190612cf9565b61157f9190612cf9565b6115899190612ce2565b6115939082612cb6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201529091506116069073f2bda964ec2d2fcb1610c886ed4831bf58f64948908490309083906370a0823190602401610adf565b60008111611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e6f7468696e6720746f206d6967726174650000000000000000000000000000604482015260640161053c565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024810182905273ba993532e7b66029077b794383eb0cb75ccdd72d9063a9059cbb906044016020604051808303816000875af11580156116f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171b9190612d34565b611781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4e657720746f6b656e205472616e73666572206661696c656400000000000000604482015260640161053c565b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60005460ff161561181a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081178255338252602052604090205443116118ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b3360008181526002602052604090205460ff16156119ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f596f7520616c726561647920636c61696d656420565f31000000000000000000604482015260640161053c565b6040517f4851067100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e890735bcf1f407c0fc922074283b4e11daaf539f6644d90634851067190602401602060405180830381865afa158015611a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a579190612cc9565b611a619190612ce2565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600260205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101919091526024810182905290915073ba993532e7b66029077b794383eb0cb75ccdd72d9063a9059cbb90604401610b8e565b60005460ff1615611b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117825533825260205260409020544311611c18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214611c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201819052906000906103e890633b9aca009060649073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa158015611d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d319190612cc9565b611d3c906075612ce2565b611d469190612cf9565b611d509190612cf9565b611d5a9190612ce2565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152909150610b259073f2bda964ec2d2fcb1610c886ed4831bf58f64948908490309083906370a0823190602401610adf565b60005460ff1615611e3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117825533825260205260409020544311611eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214611f54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b6040517fef037b90000000000000000000000000000000000000000000000000000000008152336004820181905290734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063ef037b9090602401602060405180830381865afa158015611fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe39190612d34565b612049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f596f7520617265206e6f742061207374616b65686f6c64657200000000000000604482015260640161053c565b6040517fdff49b0b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063dff49b0b90602401602060405180830381865afa1580156120c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120eb9190612cc9565b15801561219757506040517f1f75d80d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152734a9d6b95459eb9532b7e4d82ca214a3b20fa235890631f75d80d90602401602060405180830381865afa158015612171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121959190612cc9565b155b801561224257506040517f3d43621400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152734a9d6b95459eb9532b7e4d82ca214a3b20fa235890633d43621490602401602060405180830381865afa15801561221c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122409190612cc9565b155b6122ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f506c6561736520636c61696d20796f7572205374616b696e672072657761726460448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161053c565b6040517f522c906900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c906990602401610a25565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152600090819073389999216860ab8e0175387a0c90e5c52522c945906370a0823190602401602060405180830381865afa1580156123be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e29190612cc9565b11156123fe576123f1826127cc565b6123fb9082612cb6565b90505b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600090734a9d6b95459eb9532b7e4d82ca214a3b20fa2358906370a0823190602401602060405180830381865afa158015612469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248d9190612cc9565b1115612550576040517f522c906900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c906990602401602060405180830381865afa158015612515573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125399190612cc9565b6125439190612ce2565b61254d9082612cb6565b90505b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602052604090205460ff1661263a576040517f4851067100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890735bcf1f407c0fc922074283b4e11daaf539f6644d90634851067190602401602060405180830381865afa1580156125ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126239190612cc9565b61262d9190612ce2565b6126379082612cb6565b90505b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260009073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa1580156126bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126df9190612cc9565b11156127c7576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526103e890633b9aca009060649073f2bda964ec2d2fcb1610c886ed4831bf58f64948906370a0823190602401602060405180830381865afa158015612770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127949190612cc9565b61279f906075612ce2565b6127a99190612cf9565b6127b39190612cf9565b6127bd9190612ce2565b6103cc9082612cb6565b919050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e89073389999216860ab8e0175387a0c90e5c52522c945906370a0823190602401610807565b6040517f522c906900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526000906103e890734a9d6b95459eb9532b7e4d82ca214a3b20fa23589063522c906990602401610807565b60005460ff1615612913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2072652d656e7472616e6379000000000000000000000000000000000000604482015260640161053c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081178255338252602052604090205443116129b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2072652d656e7472616e6379205632000000000000000000000000000000604482015260640161053c565b3360008181526001602052604090204390553214612a2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6f20636f6e747261637420616c6c6f77656400000000000000000000000000604482015260640161053c565b336000612a39826127cc565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152909150610b259073389999216860ab8e0175387a0c90e5c52522c945908490309083906370a0823190602401610adf565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790529151600092839290881691612b4b9190612d56565b6000604051808303816000865af19150503d8060008114612b88576040519150601f19603f3d011682016040523d82523d6000602084013e612b8d565b606091505b5091509150818015612bb7575080511580612bb7575080806020019051810190612bb79190612d34565b612c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160448201527f494c454400000000000000000000000000000000000000000000000000000000606482015260840161053c565b505050505050565b600060208284031215612c5c57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114612c8057600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103cc576103cc612c87565b600060208284031215612cdb57600080fd5b5051919050565b80820281158282048414176103cc576103cc612c87565b600082612d2f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215612d4657600080fd5b81518015158114612c8057600080fd5b6000825160005b81811015612d775760208186018101518583015201612d5d565b50600092019182525091905056fea2646970667358221220ac18bb0b42c66a0980c1036fafd83a285cb56c45d37d64ef370913b6860f360164736f6c63430008110033

Deployed Bytecode Sourcemap

3444:6797:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4908:197;;;;;;:::i;:::-;;:::i;:::-;;;474:25:1;;;462:2;447:18;4908:197:0;;;;;;;;4028:80;;4066:42;4028:80;;;;;686:42:1;674:55;;;656:74;;644:2;629:18;4028:80:0;510:226:1;3678:80:0;;3716:42;3678:80;;3852;;3890:42;3852:80;;4420:144;;;;;;:::i;:::-;;:::i;5121:369::-;;;;;;:::i;:::-;;:::i;:::-;;4719:181;;;;;;:::i;:::-;;:::i;4212:43::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7607:479;;;:::i;4118:39::-;;4152:5;4118:39;;3591:80;;3629:42;3591:80;;8096:1414;;;:::i;3940:80::-;;3978:42;3940:80;;6418:461;;;:::i;5946:464::-;;;:::i;6887:712::-;;;:::i;4166:39::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;906:14:1;;899:22;881:41;;869:2;854:18;4166:39:0;741:187:1;3765:80:0;;3803:42;3765:80;;9514:720;;;;;;:::i;:::-;;:::i;3504:80::-;;3542:42;3504:80;;4272:134;;;;;;:::i;:::-;;:::i;4572:139::-;;;;;;:::i;:::-;;:::i;5500:438::-;;;:::i;4908:197::-;4969:7;5072:25;5090:6;5072:17;:25::i;:::-;5044;5062:6;5044:17;:25::i;:::-;5017:23;5033:6;5017:15;:23::i;:::-;4996:18;5007:6;4996:10;:18::i;:::-;:44;;;;:::i;:::-;:73;;;;:::i;:::-;:101;;;;:::i;:::-;4988:109;4908:197;-1:-1:-1;;4908:197:0:o;4420:144::-;4505:29;;;;;:21;674:55:1;;4505:29:0;;;656:74:1;4477:7:0;;4152:5;;4544;;4539:3;;3803:42;;4505:21;;629:18:1;;4505:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;4535:3;4505:33;:::i;:::-;:37;;;;:::i;:::-;4504:45;;;;:::i;:::-;4503:53;;;;:::i;5121:369::-;5230:13;;;3716:42;5230:13;5222:42;;;;;;;2095:2:1;5222:42:0;;;2077:21:1;2134:2;2114:18;;;2107:30;2173:19;2153:18;;;2146:47;2210:18;;5222:42:0;;;;;;;;;5283:10;3978:42;5283:17;5275:56;;;;;;;2441:2:1;5275:56:0;;;2423:21:1;2480:2;2460:18;;;2453:30;2519:28;2499:18;;;2492:56;2565:18;;5275:56:0;2239:350:1;5275:56:0;5359:39;;;;;5392:4;5359:39;;;656:74:1;5342:14:0;;5359:24;;;;;;629:18:1;;5359:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5417:35;;;;;3978:42;5417:35;;;2768:74:1;2858:18;;;2851:34;;;5342:56:0;;-1:-1:-1;5417:23:0;;;;;;2741:18:1;;5417:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5409:73;;;;;;;3380:2:1;5409:73:0;;;3362:21:1;3419:2;3399:18;;;3392:30;3458:28;3438:18;;;3431:56;3504:18;;5409:73:0;3178:350:1;5409:73:0;5170:320;5121:369;:::o;4719:181::-;4805:17;;;4782:7;4805:17;;;:9;:17;;;;;;;;4801:31;;;-1:-1:-1;4831:1:0;;4719:181;-1:-1:-1;4719:181:0:o;4801:31::-;4850:34;;;;;686:42:1;674:55;;4850:34:0;;;656:74:1;4152:5:0;;3629:42;;4850:26;;629:18:1;;4850:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7607:479::-;2974:6;;;;2973:7;2965:34;;;;;;;3735:2:1;2965:34:0;;;3717:21:1;3774:2;3754:18;;;3747:30;3813:16;3793:18;;;3786:44;3847:18;;2965:34:0;3533:338:1;2965:34:0;3010:6;:13;;;;3019:4;3010:13;;;;;3203:10:::1;3193:21:::0;;::::1;::::0;;;;;3217:12:::1;-1:-1:-1::0;3185:65:0::1;;;::::0;::::1;::::0;;4078:2:1;3185:65:0::1;::::0;::::1;4060:21:1::0;4117:2;4097:18;;;4090:30;4156:19;4136:18;;;4129:47;4193:18;;3185:65:0::1;3876:341:1::0;3185:65:0::1;3271:10;3261:21;::::0;;;:9:::1;:21;::::0;;;;3285:12:::1;3261:36:::0;;7724:9:::2;7710:23;7702:55;;;::::0;::::2;::::0;;4424:2:1;7702:55:0::2;::::0;::::2;4406:21:1::0;4463:2;4443:18;;;4436:30;4502:21;4482:18;;;4475:49;4541:18;;7702:55:0::2;4222:343:1::0;7702:55:0::2;7821:32;::::0;;;;7783:10:::2;7821:32;::::0;::::2;656:74:1::0;;;7783:10:0;7768:12:::2;::::0;4152:5:::2;::::0;3542:42:::2;::::0;7821:26:::2;::::0;629:18:1;;7821:32:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;;:::i;:::-;7927:27;::::0;;;;:21:::2;674:55:1::0;;7927:27:0::2;::::0;::::2;656:74:1::0;7804:57:0;;-1:-1:-1;7872:83:0::2;::::0;3542:42:::2;::::0;7908:4;;7921::::2;::::0;3542:42;;7927:21:::2;::::0;629:18:1;;7927:27:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7872:31;:83::i;:::-;7974:38;::::0;;;;2798:42:1;2786:55;;7974:38:0::2;::::0;::::2;2768:74:1::0;2858:18;;;2851:34;;;3890:42:0::2;::::0;7974:25:::2;::::0;2741:18:1;;7974:38:0::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7966:75;;;::::0;::::2;::::0;;4772:2:1;7966:75:0::2;::::0;::::2;4754:21:1::0;4811:2;4791:18;;;4784:30;4850:27;4830:18;;;4823:55;4895:18;;7966:75:0::2;4570:349:1::0;7966:75:0::2;8052:16;::::0;::::2;;::::0;;;:10:::2;:16;::::0;;;;:26;;8072:6;;8052:16;:26:::2;::::0;8072:6;;8052:26:::2;:::i;:::-;::::0;;;-1:-1:-1;;3055:5:0;3046:14;;;;;;-1:-1:-1;;7607:479:0:o;8096:1414::-;2974:6;;;;2973:7;2965:34;;;;;;;3735:2:1;2965:34:0;;;3717:21:1;3774:2;3754:18;;;3747:30;3813:16;3793:18;;;3786:44;3847:18;;2965:34:0;3533:338:1;2965:34:0;3010:6;:13;;;;3019:4;3010:13;;;;;3203:10:::1;3193:21:::0;;::::1;::::0;;;;;3217:12:::1;-1:-1:-1::0;3185:65:0::1;;;::::0;::::1;::::0;;4078:2:1;3185:65:0::1;::::0;::::1;4060:21:1::0;4117:2;4097:18;;;4090:30;4156:19;4136:18;;;4129:47;4193:18;;3185:65:0::1;3876:341:1::0;3185:65:0::1;3271:10;3261:21;::::0;;;:9:::1;:21;::::0;;;;3285:12:::1;3261:36:::0;;8173:9:::2;8159:23;8151:55;;;::::0;::::2;::::0;;4424:2:1;8151:55:0::2;::::0;::::2;4406:21:1::0;4463:2;4443:18;;;4436:30;4502:21;4482:18;;;4475:49;4541:18;;8151:55:0::2;4222:343:1::0;8151:55:0::2;8304:27;::::0;;;;8232:10:::2;8304:27;::::0;::::2;656:74:1::0;;;8232:10:0;8217:12:::2;::::0;;;3716:42:::2;::::0;8304:21:::2;::::0;629:18:1;;8304:27:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;8301:322;;;8405:27;::::0;;;;686:42:1;674:55;;8405:27:0::2;::::0;::::2;656:74:1::0;3716:42:0::2;::::0;8405:21:::2;::::0;629:18:1;;8405:27:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8360:41;::::0;;;;5108:42:1;5177:15;;8360:41:0::2;::::0;::::2;5159:34:1::0;8395:4:0::2;5209:18:1::0;;;5202:43;3716:42:0::2;::::0;8360:21:::2;::::0;5071:18:1;;8360:41:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:72;;8351:116;;;::::0;::::2;::::0;;5458:2:1;8351:116:0::2;::::0;::::2;5440:21:1::0;5497:2;5477:18;;;5470:30;5536:33;5516:18;;;5509:61;5587:18;;8351:116:0::2;5256:355:1::0;8351:116:0::2;8492:21;8508:4;8492:15;:21::i;:::-;8482:31;::::0;;::::2;:::i;:::-;8583:27;::::0;;;;:21:::2;674:55:1::0;;8583:27:0::2;::::0;::::2;656:74:1::0;8482:31:0;;-1:-1:-1;8528:83:0::2;::::0;3716:42:::2;::::0;8564:4;;8577::::2;::::0;3716:42;;8583:21:::2;::::0;629:18:1;;8583:27:0::2;510:226:1::0;8528:83:0::2;8659:27;::::0;;;;686:42:1;674:55;;8659:27:0::2;::::0;::::2;656:74:1::0;8689:1:0::2;::::0;3542:42:::2;::::0;8659:21:::2;::::0;629:18:1;;8659:27:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;8656:235;;;8741:32;::::0;;;;686:42:1;674:55;;8741:32:0::2;::::0;::::2;656:74:1::0;4152:5:0::2;::::0;3542:42:::2;::::0;8741:26:::2;::::0;629:18:1;;8741:32:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;;:::i;:::-;8731:50;::::0;;::::2;:::i;:::-;8851:27;::::0;;;;:21:::2;674:55:1::0;;8851:27:0::2;::::0;::::2;656:74:1::0;8731:50:0;;-1:-1:-1;8796:83:0::2;::::0;3542:42:::2;::::0;8832:4;;8845::::2;::::0;3542:42;;8851:21:::2;::::0;629:18:1;;8851:27:0::2;510:226:1::0;8796:83:0::2;8928:15;::::0;::::2;;::::0;;;:9:::2;:15;::::0;;;;;::::2;;8924:134;;8969:32;::::0;;;;686:42:1;674:55;;8969:32:0::2;::::0;::::2;656:74:1::0;4152:5:0::2;::::0;3629:42:::2;::::0;8969:26:::2;::::0;629:18:1;;8969:32:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;;:::i;:::-;8959:50;::::0;;::::2;:::i;:::-;9024:15;::::0;::::2;;::::0;;;:9:::2;:15;::::0;;;;:22;;;::::2;9042:4;9024:22;::::0;;8959:50;-1:-1:-1;8924:134:0::2;9103:27;::::0;;;;686:42:1;674:55;;9103:27:0::2;::::0;::::2;656:74:1::0;9131:1:0::2;::::0;3803:42:::2;::::0;9103:21:::2;::::0;629:18:1;;9103:27:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;9100:219;;;9160:27;::::0;;;;686:42:1;674:55;;9160:27:0::2;::::0;::::2;656:74:1::0;4152:5:0::2;::::0;9197::::2;::::0;9192:3:::2;::::0;3803:42:::2;::::0;9160:21:::2;::::0;629:18:1;;9160:27:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;::::0;9188:3:::2;9160:31;:::i;:::-;:35;;;;:::i;:::-;9159:43;;;;:::i;:::-;9158:51;;;;:::i;:::-;9148:61;::::0;;::::2;:::i;:::-;9279:27;::::0;;;;:21:::2;674:55:1::0;;9279:27:0::2;::::0;::::2;656:74:1::0;9148:61:0;;-1:-1:-1;9224:83:0::2;::::0;3803:42:::2;::::0;9260:4;;9273::::2;::::0;3803:42;;9279:21:::2;::::0;629:18:1;;9279:27:0::2;510:226:1::0;9224:83:0::2;9393:1;9384:6;:10;9376:40;;;::::0;::::2;::::0;;5818:2:1;9376:40:0::2;::::0;::::2;5800:21:1::0;5857:2;5837:18;;;5830:30;5896:20;5876:18;;;5869:48;5934:18;;9376:40:0::2;5616:342:1::0;9376:40:0::2;9435:38;::::0;;;;2798:42:1;2786:55;;9435:38:0::2;::::0;::::2;2768:74:1::0;2858:18;;;2851:34;;;3890:42:0::2;::::0;9435:25:::2;::::0;2741:18:1;;9435:38:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9427:75;;;::::0;::::2;::::0;;4772:2:1;9427:75:0::2;::::0;::::2;4754:21:1::0;4811:2;4791:18;;;4784:30;4850:27;4830:18;;;4823:55;4895:18;;9427:75:0::2;4570:349:1::0;9427:75:0::2;-1:-1:-1::0;;3055:5:0;3046:14;;;;;;8096:1414::o;6418:461::-;2974:6;;;;2973:7;2965:34;;;;;;;3735:2:1;2965:34:0;;;3717:21:1;3774:2;3754:18;;;3747:30;3813:16;3793:18;;;3786:44;3847:18;;2965:34:0;3533:338:1;2965:34:0;3010:6;:13;;;;3019:4;3010:13;;;;;3203:10:::1;3193:21:::0;;::::1;::::0;;;;;3217:12:::1;-1:-1:-1::0;3185:65:0::1;;;::::0;::::1;::::0;;4078:2:1;3185:65:0::1;::::0;::::1;4060:21:1::0;4117:2;4097:18;;;4090:30;4156:19;4136:18;;;4129:47;4193:18;;3185:65:0::1;3876:341:1::0;3185:65:0::1;3271:10;3261:21;::::0;;;:9:::1;:21;::::0;;;;3285:12:::1;3261:36:::0;;6516:9:::2;6502:23;6494:55;;;::::0;::::2;::::0;;4424:2:1;6494:55:0::2;::::0;::::2;4406:21:1::0;4463:2;4443:18;;;4436:30;4502:21;4482:18;;;4475:49;4541:18;;6494:55:0::2;4222:343:1::0;6494:55:0::2;6575:10;6560:12;6605:15:::0;;;:9:::2;:15;::::0;;;;;::::2;;6604:16;6596:51;;;::::0;::::2;::::0;;6165:2:1;6596:51:0::2;::::0;::::2;6147:21:1::0;6204:2;6184:18;;;6177:30;6243:25;6223:18;;;6216:53;6286:18;;6596:51:0::2;5963:347:1::0;6596:51:0::2;6675:32;::::0;;;;686:42:1;674:55;;6675:32:0::2;::::0;::::2;656:74:1::0;6658:14:0::2;::::0;4152:5:::2;::::0;3629:42:::2;::::0;6675:26:::2;::::0;629:18:1;;6675:32:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;;:::i;:::-;6726:15;::::0;::::2;;::::0;;;:9:::2;:15;::::0;;;;;;:22;;;::::2;6744:4;6726:22;::::0;;6767:38;;;;::::2;::::0;::::2;2768:74:1::0;;;;2858:18;;;2851:34;;;;;-1:-1:-1;3890:42:0::2;::::0;6767:25:::2;::::0;2741:18:1;;6767:38:0::2;2594:297:1::0;5946:464:0;2974:6;;;;2973:7;2965:34;;;;;;;3735:2:1;2965:34:0;;;3717:21:1;3774:2;3754:18;;;3747:30;3813:16;3793:18;;;3786:44;3847:18;;2965:34:0;3533:338:1;2965:34:0;3010:6;:13;;;;3019:4;3010:13;;;;;3203:10:::1;3193:21:::0;;::::1;::::0;;;;;3217:12:::1;-1:-1:-1::0;3185:65:0::1;;;::::0;::::1;::::0;;4078:2:1;3185:65:0::1;::::0;::::1;4060:21:1::0;4117:2;4097:18;;;4090:30;4156:19;4136:18;;;4129:47;4193:18;;3185:65:0::1;3876:341:1::0;3185:65:0::1;3271:10;3261:21;::::0;;;:9:::1;:21;::::0;;;;3285:12:::1;3261:36:::0;;6037:9:::2;6023:23;6015:55;;;::::0;::::2;::::0;;4424:2:1;6015:55:0::2;::::0;::::2;4406:21:1::0;4463:2;4443:18;;;4436:30;4502:21;4482:18;;;4475:49;4541:18;;6015:55:0::2;4222:343:1::0;6015:55:0::2;6136:27;::::0;;;;6096:10:::2;6136:27;::::0;::::2;656:74:1::0;;;6096:10:0;6081:12:::2;::::0;4152:5:::2;::::0;6173::::2;::::0;6168:3:::2;::::0;3803:42:::2;::::0;6136:21:::2;::::0;629:18:1;;6136:27:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;::::0;6164:3:::2;6136:31;:::i;:::-;:35;;;;:::i;:::-;6135:43;;;;:::i;:::-;6134:51;;;;:::i;:::-;6251:27;::::0;;;;:21:::2;674:55:1::0;;6251:27:0::2;::::0;::::2;656:74:1::0;6117:68:0;;-1:-1:-1;6196:83:0::2;::::0;3803:42:::2;::::0;6232:4;;6245::::2;::::0;3803:42;;6251:21:::2;::::0;629:18:1;;6251:27:0::2;510:226:1::0;6887:712:0;2974:6;;;;2973:7;2965:34;;;;;;;3735:2:1;2965:34:0;;;3717:21:1;3774:2;3754:18;;;3747:30;3813:16;3793:18;;;3786:44;3847:18;;2965:34:0;3533:338:1;2965:34:0;3010:6;:13;;;;3019:4;3010:13;;;;;3203:10:::1;3193:21:::0;;::::1;::::0;;;;;3217:12:::1;-1:-1:-1::0;3185:65:0::1;;;::::0;::::1;::::0;;4078:2:1;3185:65:0::1;::::0;::::1;4060:21:1::0;4117:2;4097:18;;;4090:30;4156:19;4136:18;;;4129:47;4193:18;;3185:65:0::1;3876:341:1::0;3185:65:0::1;3271:10;3261:21;::::0;;;:9:::1;:21;::::0;;;;3285:12:::1;3261:36:::0;;6985:9:::2;6971:23;6963:55;;;::::0;::::2;::::0;;4424:2:1;6963:55:0::2;::::0;::::2;4406:21:1::0;4463:2;4443:18;;;4436:30;4502:21;4482:18;;;4475:49;4541:18;;6963:55:0::2;4222:343:1::0;6963:55:0::2;7073:32;::::0;;;;7044:10:::2;7073:32;::::0;::::2;656:74:1::0;;;7044:10:0;3542:42:::2;::::0;7073:26:::2;::::0;629:18:1;;7073:32:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7065:69;;;::::0;::::2;::::0;;6517:2:1;7065:69:0::2;::::0;::::2;6499:21:1::0;6556:2;6536:18;;;6529:30;6595:27;6575:18;;;6568:55;6640:18;;7065:69:0::2;6315:349:1::0;7065:69:0::2;7154:30;::::0;;;;686:42:1;674:55;;7154:30:0::2;::::0;::::2;656:74:1::0;3542:42:0::2;::::0;7154:24:::2;::::0;629:18:1;;7154:30:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35:::0;:74;::::2;;;-1:-1:-1::0;7193:30:0::2;::::0;;;;686:42:1;674:55;;7193:30:0::2;::::0;::::2;656:74:1::0;3542:42:0::2;::::0;7193:24:::2;::::0;629:18:1;;7193:30:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35:::0;7154:74:::2;:113;;;;-1:-1:-1::0;7232:30:0::2;::::0;;;;686:42:1;674:55;;7232:30:0::2;::::0;::::2;656:74:1::0;3542:42:0::2;::::0;7232:24:::2;::::0;629:18:1;;7232:30:0::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35:::0;7154:113:::2;7145:161;;;::::0;::::2;::::0;;6871:2:1;7145:161:0::2;::::0;::::2;6853:21:1::0;6910:2;6890:18;;;6883:30;6949:34;6929:18;;;6922:62;7020:3;7000:18;;;6993:31;7041:19;;7145:161:0::2;6669:397:1::0;7145:161:0::2;7334:32;::::0;;;;686:42:1;674:55;;7334:32:0::2;::::0;::::2;656:74:1::0;7317:14:0::2;::::0;4152:5:::2;::::0;3542:42:::2;::::0;7334:26:::2;::::0;629:18:1;;7334:32:0::2;510:226:1::0;9514:720:0;9616:27;;;;;686:42:1;674:55;;9616:27:0;;;656:74:1;9571:11:0;;;;3716:42;;9616:21;;629:18:1;;9616:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;9613:93;;;9673:21;9689:4;9673:15;:21::i;:::-;9663:31;;;;:::i;:::-;;;9613:93;9742:36;;;;;9772:4;9742:36;;;656:74:1;9781:1:0;;3542:42;;9742:21;;629:18:1;;9742:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;9739:146;;;9833:32;;;;;686:42:1;674:55;;9833:32:0;;;656:74:1;4152:5:0;;3542:42;;9833:26;;629:18:1;;9833:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;;:::i;:::-;9823:50;;;;:::i;:::-;;;9739:146;9922:15;;;;;;;:9;:15;;;;;;;;9918:97;;9963:32;;;;;686:42:1;674:55;;9963:32:0;;;656:74:1;4152:5:0;;3629:42;;9963:26;;629:18:1;;9963:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;;:::i;:::-;9953:50;;;;:::i;:::-;;;9918:97;10060:27;;;;;686:42:1;674:55;;10060:27:0;;;656:74:1;10088:1:0;;3803:42;;10060:21;;629:18:1;;10060:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;10057:121;;;10117:27;;;;;686:42:1;674:55;;10117:27:0;;;656:74:1;4152:5:0;;10154;;10149:3;;3803:42;;10117:21;;629:18:1;;10117:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;10145:3;10117:31;:::i;:::-;:35;;;;:::i;:::-;10116:43;;;;:::i;:::-;10115:51;;;;:::i;:::-;10105:61;;;;:::i;10057:121::-;9514:720;;;:::o;4272:134::-;4363:29;;;;;686:42:1;674:55;;4363:29:0;;;656:74:1;4333:7:0;;4152:5;;3716:42;;4363:21;;629:18:1;;4363:29:0;510:226:1;4572:139:0;4661:34;;;;;686:42:1;674:55;;4661:34:0;;;656:74:1;4635:7:0;;4152:5;;3542:42;;4661:26;;629:18:1;;4661:34:0;510:226:1;5500:438:0;2974:6;;;;2973:7;2965:34;;;;;;;3735:2:1;2965:34:0;;;3717:21:1;3774:2;3754:18;;;3747:30;3813:16;3793:18;;;3786:44;3847:18;;2965:34:0;3533:338:1;2965:34:0;3010:6;:13;;;;3019:4;3010:13;;;;;3203:10:::1;3193:21:::0;;::::1;::::0;;;;;3217:12:::1;-1:-1:-1::0;3185:65:0::1;;;::::0;::::1;::::0;;4078:2:1;3185:65:0::1;::::0;::::1;4060:21:1::0;4117:2;4097:18;;;4090:30;4156:19;4136:18;;;4129:47;4193:18;;3185:65:0::1;3876:341:1::0;3185:65:0::1;3271:10;3261:21;::::0;;;:9:::1;:21;::::0;;;;3285:12:::1;3261:36:::0;;5596:9:::2;5582:23;5574:55;;;::::0;::::2;::::0;;4424:2:1;5574:55:0::2;::::0;::::2;4406:21:1::0;4463:2;4443:18;;;4436:30;4502:21;4482:18;;;4475:49;4541:18;;5574:55:0::2;4222:343:1::0;5574:55:0::2;5655:10;5640:12;5692:21;5655:10:::0;5692:15:::2;:21::i;:::-;5779:27;::::0;;;;:21:::2;674:55:1::0;;5779:27:0::2;::::0;::::2;656:74:1::0;5676:37:0;;-1:-1:-1;5724:83:0::2;::::0;3716:42:::2;::::0;5760:4;;5773::::2;::::0;3716:42;;5779:21:::2;::::0;629:18:1;;5779:27:0::2;510:226:1::0;2031:402:0;2256:51;;;2245:10;7352:15:1;;;2256:51:0;;;7334:34:1;7404:15;;;7384:18;;;7377:43;7436:18;;;;7429:34;;;2256:51:0;;;;;;;;;;7246:18:1;;;;2256:51:0;;;;;;;;;;;;;2245:63;;-1:-1:-1;;;;2245:10:0;;;;:63;;2256:51;2245:63;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2209:99;;;;2327:7;:57;;;;-1:-1:-1;2339:11:0;;:16;;:44;;;2370:4;2359:24;;;;;;;;;;;;:::i;:::-;2319:106;;;;;;;8093:2:1;2319:106:0;;;8075:21:1;8132:2;8112:18;;;8105:30;8171:34;8151:18;;;8144:62;8242:6;8222:18;;;8215:34;8266:19;;2319:106:0;7891:400:1;2319:106:0;2119:314;;2031:402;;;;:::o;14:309:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:1:o;933:184::-;985:77;982:1;975:88;1082:4;1079:1;1072:15;1106:4;1103:1;1096:15;1122:125;1187:9;;;1208:10;;;1205:36;;;1221:18;;:::i;1252:184::-;1322:6;1375:2;1363:9;1354:7;1350:23;1346:32;1343:52;;;1391:1;1388;1381:12;1343:52;-1:-1:-1;1414:16:1;;1252:184;-1:-1:-1;1252:184:1:o;1441:168::-;1514:9;;;1545;;1562:15;;;1556:22;;1542:37;1532:71;;1583:18;;:::i;1614:274::-;1654:1;1680;1670:189;;1715:77;1712:1;1705:88;1816:4;1813:1;1806:15;1844:4;1841:1;1834:15;1670:189;-1:-1:-1;1873:9:1;;1614:274::o;2896:277::-;2963:6;3016:2;3004:9;2995:7;2991:23;2987:32;2984:52;;;3032:1;3029;3022:12;2984:52;3064:9;3058:16;3117:5;3110:13;3103:21;3096:5;3093:32;3083:60;;3139:1;3136;3129:12;7474:412;7603:3;7641:6;7635:13;7666:1;7676:129;7690:6;7687:1;7684:13;7676:129;;;7788:4;7772:14;;;7768:25;;7762:32;7749:11;;;7742:53;7705:12;7676:129;;;-1:-1:-1;7860:1:1;7824:16;;7849:13;;;-1:-1:-1;7824:16:1;7474:412;-1:-1:-1;7474:412:1:o

Swarm Source

ipfs://ac18bb0b42c66a0980c1036fafd83a285cb56c45d37d64ef370913b6860f3601

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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