ETH Price: $2,289.10 (+1.07%)

Contract

0xE9828045632b32E2aaC7f3a4C1511C0d8965576C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Team To...122840012021-04-21 14:05:331235 days ago1619013933IN
The Borg: Presale Locked Token
0 ETH0.02642905128
Withdraw Team To...120494852021-03-16 11:55:331271 days ago1615895733IN
The Borg: Presale Locked Token
0 ETH0.0501341139
Withdraw Team To...117750042021-02-02 5:41:491313 days ago1612244509IN
The Borg: Presale Locked Token
0 ETH0.03823176106
Withdraw Team To...116887372021-01-19 23:26:481326 days ago1611098808IN
The Borg: Presale Locked Token
0 ETH0.0238046866
Withdraw Team To...116119652021-01-08 4:54:331338 days ago1610081673IN
The Borg: Presale Locked Token
0 ETH0.0240698374.00000145
Withdraw Team To...115318712020-12-26 21:53:421350 days ago1609019622IN
The Borg: Presale Locked Token
0 ETH0.0259942860
Lock With Unicry...115276992020-12-26 6:35:361351 days ago1608964536IN
The Borg: Presale Locked Token
0 ETH0.0155218947
Claim Team Fee A...115276932020-12-26 6:34:341351 days ago1608964474IN
The Borg: Presale Locked Token
0 ETH0.0207570847
Transfer115270472020-12-26 4:18:231351 days ago1608956303IN
The Borg: Presale Locked Token
1 ETH0.0092975772
Transfer115259642020-12-26 0:20:381351 days ago1608942038IN
The Borg: Presale Locked Token
0.2 ETH0.0108471784
Transfer115203122020-12-25 3:23:511352 days ago1608866631IN
The Borg: Presale Locked Token
0.25 ETH0.02647226205
Transfer115199232020-12-25 1:46:591352 days ago1608860819IN
The Borg: Presale Locked Token
0.5 ETH0.01625781164
Transfer115196942020-12-25 0:54:381352 days ago1608857678IN
The Borg: Presale Locked Token
1 ETH0.01120202113
Transfer115196812020-12-25 0:52:121352 days ago1608857532IN
The Borg: Presale Locked Token
0.1 ETH0.01459202113
Transfer115196722020-12-25 0:50:221352 days ago1608857422IN
The Borg: Presale Locked Token
0.1 ETH0.002373113
Transfer115175112020-12-24 16:54:571352 days ago1608828897IN
The Borg: Presale Locked Token
0.08 ETH0.0064566550
Buy Tokens115104592020-12-23 14:51:381354 days ago1608735098IN
The Borg: Presale Locked Token
0.1 ETH0.0109908485.00000269
Transfer115104082020-12-23 14:38:431354 days ago1608734323IN
The Borg: Presale Locked Token
0.5 ETH0.01652902128
Buy Tokens115087582020-12-23 8:37:361354 days ago1608712656IN
The Borg: Presale Locked Token
0.1 ETH0.0117666691
Transfer115084022020-12-23 7:19:101354 days ago1608707950IN
The Borg: Presale Locked Token
0.5 ETH0.0091202392
Transfer115083852020-12-23 7:14:381354 days ago1608707678IN
The Borg: Presale Locked Token
0.1 ETH0.0112345787
Transfer115074162020-12-23 3:44:461354 days ago1608695086IN
The Borg: Presale Locked Token
0.1 ETH0.0067149152
Transfer115071292020-12-23 2:45:321354 days ago1608691532IN
The Borg: Presale Locked Token
1 ETH0.011363788
Transfer115070822020-12-23 2:35:001354 days ago1608690900IN
The Borg: Presale Locked Token
0.75 ETH0.0116219790
Transfer115070372020-12-23 2:25:591354 days ago1608690359IN
The Borg: Presale Locked Token
0.3 ETH0.0118802392
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
115276932020-12-26 6:34:341351 days ago1608964474
The Borg: Presale Locked Token
4.7436 ETH
115276932020-12-26 6:34:341351 days ago1608964474
The Borg: Presale Locked Token
0.5664 ETH
115276932020-12-26 6:34:341351 days ago1608964474
The Borg: Presale Locked Token
1.062 ETH
115276932020-12-26 6:34:341351 days ago1608964474
The Borg: Presale Locked Token
0.708 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PreSale

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-12-22
*/

/*
    *****************************************
    ***  Pre-sale Contract v1.3 *************
    *****************************************
*/

pragma solidity ^0.7.0;
//SPDX-License-Identifier: MIT


interface IERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address who) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function transfer(address to, uint value) external returns (bool);
    function approve(address spender, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    
    function unPauseTransferForever() external;
    function uniswapV2Pair() external returns(address);
}
interface IUNIv2 {
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) 
    external 
    payable 
    returns (uint amountToken, uint amountETH, uint liquidity);
    
    function WETH() external pure returns (address);

}

interface IUnicrypt {
    event onDeposit(address, uint256, uint256);
    event onWithdraw(address, uint256);
    function depositToken(address token, uint256 amount, uint256 unlock_date) external payable; 
    function withdrawToken(address token, uint256 amount) external;

}

interface IUniswapV2Factory {
  event PairCreated(address indexed token0, address indexed token1, address pair, uint);

  function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor () {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and make it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}


contract PreSale is Context, ReentrancyGuard {
    using SafeMath for uint;
    IERC20 public ABS;
    address public _burnPool = 0x000000000000000000000000000000000000dEaD;

    IUNIv2 constant uniswap =  IUNIv2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Factory constant uniswapFactory = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f);
    IUnicrypt constant unicrypt = IUnicrypt(0x17e00383A843A9922bCA3B280C0ADE9f8BA48449);
    
    uint public tokensBought;
    bool public isStopped = false;
    bool public teamClaimed = false;
    bool public isRefundEnabled = false;
    bool public presaleStarted = false;
    bool justTrigger = false;
    uint constant teamTokens = 77777 ether;

    address payable owner;
    address payable constant owner1 = 0xDe87EA52cD67a32eC71d1A9817856f532b3145bf; // Marketing
    address payable constant owner2 = 0x635bF673DB15bd80846ed9eD0091D7B308b86D9d; // Treasury
    address payable constant owner3 = 0x6fE00946Dfa366360b8BB02a68d5536d8D92d488; // Development Fund
    
    address public pool;
    
    uint256 public liquidityUnlock;
    
    uint256 public ethSent;
    uint256 constant tokensPerETH = 777;
    uint256 public lockedLiquidityAmount;
    uint256 public timeTowithdrawTeamTokens;
    uint256 public refundTime; 
    mapping(address => uint) ethSpent;
    
     modifier onlyOwner() {
        require(msg.sender == owner, "You are not the owner");
        _;
    }
    
    constructor() {
        owner = msg.sender; 
        liquidityUnlock = block.timestamp.add(365 days);
        refundTime = block.timestamp.add(7 days);
    }
    
    
    receive() external payable {
        buyTokens();
    }
    
    
    function EMERGENCY_ALLOW_REFUNDS() external onlyOwner nonReentrant {
        isRefundEnabled = true;
        isStopped = true;
    }
    
    function getRefund() external nonReentrant {
        require(msg.sender == tx.origin);
        require(!justTrigger);
        // Refund should be enabled by the owner OR 7 days passed 
        require(isRefundEnabled || block.timestamp >= refundTime,"Cannot refund");
        address payable user = msg.sender;
        uint256 amount = ethSpent[user];
        ethSpent[user] = 0;
        user.transfer(amount);
    }
    
    function lockWithUnicrypt() external onlyOwner  {
        pool = ABS.uniswapV2Pair();
        IERC20 liquidityTokens = IERC20(pool);
        uint256 liquidityBalance = liquidityTokens.balanceOf(address(this));
        uint256 timeToLuck = liquidityUnlock;
        liquidityTokens.approve(address(unicrypt), liquidityBalance);

        unicrypt.depositToken{value: 0} (pool, liquidityBalance, timeToLuck);
        lockedLiquidityAmount = lockedLiquidityAmount.add(liquidityBalance);
    }
    
    function withdrawFromUnicrypt(uint256 amount) external onlyOwner {
        unicrypt.withdrawToken(pool, amount);
    }
    
    function withdrawTeamTokens() external onlyOwner nonReentrant {
        require(teamClaimed);
        require(block.timestamp >= timeTowithdrawTeamTokens, "Cannot withdraw yet");
        uint256 tokesToClaim = 7777 ether;
        uint256 amount = tokesToClaim.div(3); 
        ABS.transfer(owner1, amount);
        ABS.transfer(owner2, amount);
        ABS.transfer(owner3, amount);
        timeTowithdrawTeamTokens = block.timestamp.add(10 days);
    }

    function setToken(IERC20 addr) external onlyOwner nonReentrant {
        require(ABS == IERC20(address(0)), "You can set the address only once");
        ABS = addr;
    }
    
    function startPresale() external onlyOwner { 
        presaleStarted = true;
    }
    
     function pausePresale() external onlyOwner { 
        presaleStarted = false;
    }

    function buyTokens() public payable nonReentrant {
        require(msg.sender == tx.origin);
        require(presaleStarted == true, "Presale is Paused, do not send ETH.");
        require(ABS != IERC20(address(0)), "Main contract address not set.");
        require(!isStopped, "Presale stopped by contract, do not send ETH.");
        require(msg.value >= 0.01 ether, "Must send more than 0.01 ETH");
        require(msg.value <= 5 ether, "You can only send 5 ETH Max per TX.");
        require(ethSent < 300 ether, "Hard Cap reached at 300 ETH.");
        require (msg.value.add(ethSent) <= 300 ether, "Hard Cap is 300 ETH.");
        require(ethSpent[msg.sender].add(msg.value) <= 20 ether, "You cannot buy more than 20 ETH total per address or 5 ETH per TX.");
        uint256 tokens = msg.value.mul(tokensPerETH);
        require(ABS.balanceOf(address(this)) >= tokens, "Not enough tokens in the contract");
        ethSpent[msg.sender] = ethSpent[msg.sender].add(msg.value);
        tokensBought = tokensBought.add(tokens);
        ethSent = ethSent.add(msg.value);
        ABS.transfer(msg.sender, tokens);
    }
   
    function userEthSpenttInPresale(address user) external view returns(uint){
        return ethSpent[user];
    }
    
    function claimTeamFeeAndAddLiquidity() external onlyOwner  {
       require(!teamClaimed);
       uint256 amountETH = address(this).balance.mul(10).div(100); 
       uint256 amountETH2 = address(this).balance.mul(15).div(100); 
       uint256 amountETH3 = address(this).balance.mul(8).div(100); 
       owner1.transfer(amountETH);
       owner2.transfer(amountETH2);
       owner3.transfer(amountETH3);
       teamClaimed = true;
       
       addLiquidity();
    }
        
    function addLiquidity() internal {
        uint256 ETH = address(this).balance;
        uint256 tokensForUniswap = address(this).balance.mul(500);
        uint256 tokensToBurn = ABS.balanceOf(address(this)).sub(tokensForUniswap).sub(teamTokens);
        ABS.unPauseTransferForever();
        ABS.approve(address(uniswap), tokensForUniswap);
        uniswap.addLiquidityETH
        { value: ETH }
        (
            address(ABS),
            tokensForUniswap,
            tokensForUniswap,
            ETH,
            address(this),
            block.timestamp
        );
       
       if (tokensToBurn > 0){
           ABS.transfer(_burnPool ,tokensToBurn);
       }
       
       justTrigger = true;
       
        if(!isStopped)
            isStopped = true;
            
   }
    
    function withdrawLockedTokensAfter1Year(address tokenAddress, uint256 tokenAmount) external onlyOwner  {
        require(block.timestamp >= liquidityUnlock, "You cannot withdraw yet");
        IERC20(tokenAddress).transfer(owner, tokenAmount);
    }

}


library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ABS","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EMERGENCY_ALLOW_REFUNDS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_burnPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimTeamFeeAndAddLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethSent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isRefundEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isStopped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockWithUnicrypt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockedLiquidityAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pausePresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refundTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"addr","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"teamClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeTowithdrawTeamTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensBought","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"userEthSpenttInPresale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFromUnicrypt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"withdrawLockedTokensAfter1Year","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawTeamTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548160ff0219169083151502179055506000600460016101000a81548160ff0219169083151502179055506000600460026101000a81548160ff0219169083151502179055506000600460036101000a81548160ff02191690831515021790555060006004806101000a81548160ff021916908315150217905550348015620000da57600080fd5b50600160008190555033600460056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001426301e13380426200017160201b620025c01790919060201c565b6006819055506200016562093a80426200017160201b620025c01790919060201c565b600a81905550620001fa565b600080828401905083811015620001f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b612f29806200020a6000396000f3fe60806040526004361061016a5760003560e01c8063724b6f43116100d1578063b2d5ae441161008a578063cbf4efa111610064578063cbf4efa114610513578063d0febe4c14610578578063d7443eba14610582578063eca38e0c146105c357610179565b8063b2d5ae4414610476578063b4f5d0031461048d578063bd05fb75146104b857610179565b8063724b6f431461038a578063732783ac146103a15780638746475a146103cc578063953b7ef8146103f95780639876fdfa146104105780639b0ac9b01461044b57610179565b806316f0115b1161012357806316f0115b1461028057806328d2bc91146102c15780632f334652146103025780633f683b6a1461032f578063463f5b921461035c5780635d7f5cdb1461037357610179565b806304549d6f1461017e57806304c98b2b146101ab578063052c30bc146101c2578063070f5c09146101ed57806311e453f914610204578063144fa6d71461022f57610179565b36610179576101776105ee565b005b600080fd5b34801561018a57600080fd5b50610193610dbc565b60405180821515815260200191505060405180910390f35b3480156101b757600080fd5b506101c0610dcf565b005b3480156101ce57600080fd5b506101d7610eaf565b6040518082815260200191505060405180910390f35b3480156101f957600080fd5b50610202610eb5565b005b34801561021057600080fd5b50610219610f95565b6040518082815260200191505060405180910390f35b34801561023b57600080fd5b5061027e6004803603602081101561025257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9b565b005b34801561028c57600080fd5b506102956111d2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102cd57600080fd5b506102d66111f8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030e57600080fd5b5061031761121e565b60405180821515815260200191505060405180910390f35b34801561033b57600080fd5b50610344611231565b60405180821515815260200191505060405180910390f35b34801561036857600080fd5b50610371611244565b005b34801561037f57600080fd5b506103886114db565b005b34801561039657600080fd5b5061039f61165f565b005b3480156103ad57600080fd5b506103b6611a85565b6040518082815260200191505060405180910390f35b3480156103d857600080fd5b506103e1611a8b565b60405180821515815260200191505060405180910390f35b34801561040557600080fd5b5061040e611a9e565b005b34801561041c57600080fd5b506104496004803603602081101561043357600080fd5b8101908080359060200190929190505050611f6b565b005b34801561045757600080fd5b506104606120f0565b6040518082815260200191505060405180910390f35b34801561048257600080fd5b5061048b6120f6565b005b34801561049957600080fd5b506104a2612337565b6040518082815260200191505060405180910390f35b3480156104c457600080fd5b50610511600480360360408110156104db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061233d565b005b34801561051f57600080fd5b506105626004803603602081101561053657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254b565b6040518082815260200191505060405180910390f35b6105806105ee565b005b34801561058e57600080fd5b50610597612594565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105cf57600080fd5b506105d86125ba565b6040518082815260200191505060405180910390f35b60026000541415610667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106a757600080fd5b60011515600460039054906101000a900460ff16151514610713576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612dff6023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156107d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4d61696e20636f6e74726163742061646472657373206e6f74207365742e000081525060200191505060405180910390fd5b600460009054906101000a900460ff161561083e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180612e85602d913960400191505060405180910390fd5b662386f26fc100003410156108bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d7573742073656e64206d6f7265207468616e20302e3031204554480000000081525060200191505060405180910390fd5b674563918244f4000034111561091c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612ddc6023913960400191505060405180910390fd5b681043561a88293000006007541061099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4861726420436170207265616368656420617420333030204554482e0000000081525060200191505060405180910390fd5b681043561a88293000006109bb600754346125c090919063ffffffff16565b1115610a2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f486172642043617020697320333030204554482e00000000000000000000000081525060200191505060405180910390fd5b6801158e460913d00000610a8b34600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c090919063ffffffff16565b1115610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612eb26042913960600191505060405180910390fd5b6000610af96103093461264890919063ffffffff16565b905080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d6020811015610baf57600080fd5b81019080805190602001909291905050501015610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e646021913960400191505060405180910390fd5b610c6934600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c090919063ffffffff16565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cc1816003546125c090919063ffffffff16565b600381905550610cdc346007546125c090919063ffffffff16565b600781905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d7557600080fd5b505af1158015610d89573d6000803e3d6000fd5b505050506040513d6020811015610d9f57600080fd5b810190808051906020019092919050505050506001600081905550565b600460039054906101000a900460ff1681565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b6001600460036101000a81548160ff021916908315150217905550565b60085481565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b6000600460036101000a81548160ff021916908315150217905550565b60065481565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600260005414156110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e226021913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460019054906101000a900460ff1681565b600460009054906101000a900460ff1681565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600460019054906101000a900460ff161561132157600080fd5b600061134a606461133c600a4761264890919063ffffffff16565b6126ce90919063ffffffff16565b905060006113756064611367600f4761264890919063ffffffff16565b6126ce90919063ffffffff16565b905060006113a0606461139260084761264890919063ffffffff16565b6126ce90919063ffffffff16565b905073de87ea52cd67a32ec71d1a9817856f532b3145bf73ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156113fc573d6000803e3d6000fd5b5073635bf673db15bd80846ed9ed0091d7b308b86d9d73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611457573d6000803e3d6000fd5b50736fe00946dfa366360b8bb02a68d5536d8d92d48873ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114b2573d6000803e3d6000fd5b506001600460016101000a81548160ff0219169083151502179055506114d6612718565b505050565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461159e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b60026000541415611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506001600460026101000a81548160ff0219169083151502179055506001600460006101000a81548160ff0219169083151502179055506001600081905550565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611722576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349bd5a5e6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050506040513d60208110156117b657600080fd5b8101908080519060200190929190505050600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561189757600080fd5b505afa1580156118ab573d6000803e3d6000fd5b505050506040513d60208110156118c157600080fd5b81019080805190602001909291905050509050600060065490508273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37317e00383a843a9922bca3b280c0ade9f8ba48449846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561196057600080fd5b505af1158015611974573d6000803e3d6000fd5b505050506040513d602081101561198a57600080fd5b8101908080519060200190929190505050507317e00383a843a9922bca3b280c0ade9f8ba4844973ffffffffffffffffffffffffffffffffffffffff166399c6d2de6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685856040518563ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200193505050506000604051808303818588803b158015611a4c57600080fd5b505af1158015611a60573d6000803e3d6000fd5b5050505050611a7a826008546125c090919063ffffffff16565b600881905550505050565b60035481565b600460029054906101000a900460ff1681565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b60026000541415611bda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600460019054906101000a900460ff16611bfb57600080fd5b600954421015611c73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616e6e6f74207769746864726177207965740000000000000000000000000081525060200191505060405180910390fd5b60006901a5978e47b024e4000090506000611c986003836126ce90919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb73de87ea52cd67a32ec71d1a9817856f532b3145bf836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611d4157600080fd5b505af1158015611d55573d6000803e3d6000fd5b505050506040513d6020811015611d6b57600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb73635bf673db15bd80846ed9ed0091d7b308b86d9d836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611e2457600080fd5b505af1158015611e38573d6000803e3d6000fd5b505050506040513d6020811015611e4e57600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb736fe00946dfa366360b8bb02a68d5536d8d92d488836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611f0757600080fd5b505af1158015611f1b573d6000803e3d6000fd5b505050506040513d6020811015611f3157600080fd5b810190808051906020019092919050505050611f59620d2f00426125c090919063ffffffff16565b60098190555050506001600081905550565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461202e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b7317e00383a843a9922bca3b280c0ade9f8ba4844973ffffffffffffffffffffffffffffffffffffffff16639e281a98600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156120d557600080fd5b505af11580156120e9573d6000803e3d6000fd5b5050505050565b600a5481565b6002600054141561216f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121af57600080fd5b60048054906101000a900460ff16156121c757600080fd5b600460029054906101000a900460ff16806121e45750600a544210155b612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f43616e6e6f7420726566756e640000000000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561232a573d6000803e3d6000fd5b5050506001600081905550565b60095481565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600654421015612478576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f752063616e6e6f742077697468647261772079657400000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561250b57600080fd5b505af115801561251f573d6000803e3d6000fd5b505050506040513d602081101561253557600080fd5b8101908080519060200190929190505050505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60008082840190508381101561263e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561265b57600090506126c8565b600082840290508284828161266c57fe5b04146126c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e436021913960400191505060405180910390fd5b809150505b92915050565b600061271083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c0b565b905092915050565b600047905060006127346101f44761264890919063ffffffff16565b9050600061282a6910784cb3cbcb04a4000061281c84600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d60208110156127fd57600080fd5b8101908080519060200190929190505050612cd190919063ffffffff16565b612cd190919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663647af8e66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561289657600080fd5b505af11580156128aa573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561295557600080fd5b505af1158015612969573d6000803e3d6000fd5b505050506040513d602081101561297f57600080fd5b810190808051906020019092919050505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71984600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685868830426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612a6e57600080fd5b505af1158015612a82573d6000803e3d6000fd5b50505050506040513d6060811015612a9957600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050506000811115612bbc57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b8101908080519060200190929190505050505b60016004806101000a81548160ff021916908315150217905550600460009054906101000a900460ff16612c06576001600460006101000a81548160ff0219169083151502179055505b505050565b60008083118290612cb7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c7c578082015181840152602081019050612c61565b50505050905090810190601f168015612ca95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612cc357fe5b049050809150509392505050565b6000612d1383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d1b565b905092915050565b6000838311158290612dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d8d578082015181840152602081019050612d72565b50505050905090810190601f168015612dba5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe596f752063616e206f6e6c792073656e64203520455448204d6178207065722054582e50726573616c65206973205061757365642c20646f206e6f742073656e64204554482e596f752063616e20736574207468652061646472657373206f6e6c79206f6e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774e6f7420656e6f75676820746f6b656e7320696e2074686520636f6e747261637450726573616c652073746f7070656420627920636f6e74726163742c20646f206e6f742073656e64204554482e596f752063616e6e6f7420627579206d6f7265207468616e2032302045544820746f74616c207065722061646472657373206f72203520455448207065722054582ea2646970667358221220e7f4945d51584ae49b4bc0e5b552b3c4590f1025edf351fc0e999434a6e42dd864736f6c63430007050033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063724b6f43116100d1578063b2d5ae441161008a578063cbf4efa111610064578063cbf4efa114610513578063d0febe4c14610578578063d7443eba14610582578063eca38e0c146105c357610179565b8063b2d5ae4414610476578063b4f5d0031461048d578063bd05fb75146104b857610179565b8063724b6f431461038a578063732783ac146103a15780638746475a146103cc578063953b7ef8146103f95780639876fdfa146104105780639b0ac9b01461044b57610179565b806316f0115b1161012357806316f0115b1461028057806328d2bc91146102c15780632f334652146103025780633f683b6a1461032f578063463f5b921461035c5780635d7f5cdb1461037357610179565b806304549d6f1461017e57806304c98b2b146101ab578063052c30bc146101c2578063070f5c09146101ed57806311e453f914610204578063144fa6d71461022f57610179565b36610179576101776105ee565b005b600080fd5b34801561018a57600080fd5b50610193610dbc565b60405180821515815260200191505060405180910390f35b3480156101b757600080fd5b506101c0610dcf565b005b3480156101ce57600080fd5b506101d7610eaf565b6040518082815260200191505060405180910390f35b3480156101f957600080fd5b50610202610eb5565b005b34801561021057600080fd5b50610219610f95565b6040518082815260200191505060405180910390f35b34801561023b57600080fd5b5061027e6004803603602081101561025257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9b565b005b34801561028c57600080fd5b506102956111d2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102cd57600080fd5b506102d66111f8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030e57600080fd5b5061031761121e565b60405180821515815260200191505060405180910390f35b34801561033b57600080fd5b50610344611231565b60405180821515815260200191505060405180910390f35b34801561036857600080fd5b50610371611244565b005b34801561037f57600080fd5b506103886114db565b005b34801561039657600080fd5b5061039f61165f565b005b3480156103ad57600080fd5b506103b6611a85565b6040518082815260200191505060405180910390f35b3480156103d857600080fd5b506103e1611a8b565b60405180821515815260200191505060405180910390f35b34801561040557600080fd5b5061040e611a9e565b005b34801561041c57600080fd5b506104496004803603602081101561043357600080fd5b8101908080359060200190929190505050611f6b565b005b34801561045757600080fd5b506104606120f0565b6040518082815260200191505060405180910390f35b34801561048257600080fd5b5061048b6120f6565b005b34801561049957600080fd5b506104a2612337565b6040518082815260200191505060405180910390f35b3480156104c457600080fd5b50610511600480360360408110156104db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061233d565b005b34801561051f57600080fd5b506105626004803603602081101561053657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254b565b6040518082815260200191505060405180910390f35b6105806105ee565b005b34801561058e57600080fd5b50610597612594565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105cf57600080fd5b506105d86125ba565b6040518082815260200191505060405180910390f35b60026000541415610667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106a757600080fd5b60011515600460039054906101000a900460ff16151514610713576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612dff6023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156107d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4d61696e20636f6e74726163742061646472657373206e6f74207365742e000081525060200191505060405180910390fd5b600460009054906101000a900460ff161561083e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180612e85602d913960400191505060405180910390fd5b662386f26fc100003410156108bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d7573742073656e64206d6f7265207468616e20302e3031204554480000000081525060200191505060405180910390fd5b674563918244f4000034111561091c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612ddc6023913960400191505060405180910390fd5b681043561a88293000006007541061099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4861726420436170207265616368656420617420333030204554482e0000000081525060200191505060405180910390fd5b681043561a88293000006109bb600754346125c090919063ffffffff16565b1115610a2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f486172642043617020697320333030204554482e00000000000000000000000081525060200191505060405180910390fd5b6801158e460913d00000610a8b34600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c090919063ffffffff16565b1115610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180612eb26042913960600191505060405180910390fd5b6000610af96103093461264890919063ffffffff16565b905080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d6020811015610baf57600080fd5b81019080805190602001909291905050501015610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e646021913960400191505060405180910390fd5b610c6934600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c090919063ffffffff16565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cc1816003546125c090919063ffffffff16565b600381905550610cdc346007546125c090919063ffffffff16565b600781905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d7557600080fd5b505af1158015610d89573d6000803e3d6000fd5b505050506040513d6020811015610d9f57600080fd5b810190808051906020019092919050505050506001600081905550565b600460039054906101000a900460ff1681565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b6001600460036101000a81548160ff021916908315150217905550565b60085481565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b6000600460036101000a81548160ff021916908315150217905550565b60065481565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600260005414156110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e226021913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460019054906101000a900460ff1681565b600460009054906101000a900460ff1681565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600460019054906101000a900460ff161561132157600080fd5b600061134a606461133c600a4761264890919063ffffffff16565b6126ce90919063ffffffff16565b905060006113756064611367600f4761264890919063ffffffff16565b6126ce90919063ffffffff16565b905060006113a0606461139260084761264890919063ffffffff16565b6126ce90919063ffffffff16565b905073de87ea52cd67a32ec71d1a9817856f532b3145bf73ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156113fc573d6000803e3d6000fd5b5073635bf673db15bd80846ed9ed0091d7b308b86d9d73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611457573d6000803e3d6000fd5b50736fe00946dfa366360b8bb02a68d5536d8d92d48873ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114b2573d6000803e3d6000fd5b506001600460016101000a81548160ff0219169083151502179055506114d6612718565b505050565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461159e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b60026000541415611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506001600460026101000a81548160ff0219169083151502179055506001600460006101000a81548160ff0219169083151502179055506001600081905550565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611722576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349bd5a5e6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050506040513d60208110156117b657600080fd5b8101908080519060200190929190505050600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561189757600080fd5b505afa1580156118ab573d6000803e3d6000fd5b505050506040513d60208110156118c157600080fd5b81019080805190602001909291905050509050600060065490508273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37317e00383a843a9922bca3b280c0ade9f8ba48449846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561196057600080fd5b505af1158015611974573d6000803e3d6000fd5b505050506040513d602081101561198a57600080fd5b8101908080519060200190929190505050507317e00383a843a9922bca3b280c0ade9f8ba4844973ffffffffffffffffffffffffffffffffffffffff166399c6d2de6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685856040518563ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200193505050506000604051808303818588803b158015611a4c57600080fd5b505af1158015611a60573d6000803e3d6000fd5b5050505050611a7a826008546125c090919063ffffffff16565b600881905550505050565b60035481565b600460029054906101000a900460ff1681565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b60026000541415611bda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600460019054906101000a900460ff16611bfb57600080fd5b600954421015611c73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616e6e6f74207769746864726177207965740000000000000000000000000081525060200191505060405180910390fd5b60006901a5978e47b024e4000090506000611c986003836126ce90919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb73de87ea52cd67a32ec71d1a9817856f532b3145bf836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611d4157600080fd5b505af1158015611d55573d6000803e3d6000fd5b505050506040513d6020811015611d6b57600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb73635bf673db15bd80846ed9ed0091d7b308b86d9d836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611e2457600080fd5b505af1158015611e38573d6000803e3d6000fd5b505050506040513d6020811015611e4e57600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb736fe00946dfa366360b8bb02a68d5536d8d92d488836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611f0757600080fd5b505af1158015611f1b573d6000803e3d6000fd5b505050506040513d6020811015611f3157600080fd5b810190808051906020019092919050505050611f59620d2f00426125c090919063ffffffff16565b60098190555050506001600081905550565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461202e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b7317e00383a843a9922bca3b280c0ade9f8ba4844973ffffffffffffffffffffffffffffffffffffffff16639e281a98600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156120d557600080fd5b505af11580156120e9573d6000803e3d6000fd5b5050505050565b600a5481565b6002600054141561216f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121af57600080fd5b60048054906101000a900460ff16156121c757600080fd5b600460029054906101000a900460ff16806121e45750600a544210155b612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f43616e6e6f7420726566756e640000000000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561232a573d6000803e3d6000fd5b5050506001600081905550565b60095481565b600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600654421015612478576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f752063616e6e6f742077697468647261772079657400000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561250b57600080fd5b505af115801561251f573d6000803e3d6000fd5b505050506040513d602081101561253557600080fd5b8101908080519060200190929190505050505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60008082840190508381101561263e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561265b57600090506126c8565b600082840290508284828161266c57fe5b04146126c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e436021913960400191505060405180910390fd5b809150505b92915050565b600061271083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c0b565b905092915050565b600047905060006127346101f44761264890919063ffffffff16565b9050600061282a6910784cb3cbcb04a4000061281c84600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d60208110156127fd57600080fd5b8101908080519060200190929190505050612cd190919063ffffffff16565b612cd190919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663647af8e66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561289657600080fd5b505af11580156128aa573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561295557600080fd5b505af1158015612969573d6000803e3d6000fd5b505050506040513d602081101561297f57600080fd5b810190808051906020019092919050505050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71984600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685868830426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612a6e57600080fd5b505af1158015612a82573d6000803e3d6000fd5b50505050506040513d6060811015612a9957600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050506000811115612bbc57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d6020811015612ba957600080fd5b8101908080519060200190929190505050505b60016004806101000a81548160ff021916908315150217905550600460009054906101000a900460ff16612c06576001600460006101000a81548160ff0219169083151502179055505b505050565b60008083118290612cb7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c7c578082015181840152602081019050612c61565b50505050905090810190601f168015612ca95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612cc357fe5b049050809150509392505050565b6000612d1383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d1b565b905092915050565b6000838311158290612dc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d8d578082015181840152602081019050612d72565b50505050905090810190601f168015612dba5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe596f752063616e206f6e6c792073656e64203520455448204d6178207065722054582e50726573616c65206973205061757365642c20646f206e6f742073656e64204554482e596f752063616e20736574207468652061646472657373206f6e6c79206f6e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774e6f7420656e6f75676820746f6b656e7320696e2074686520636f6e747261637450726573616c652073746f7070656420627920636f6e74726163742c20646f206e6f742073656e64204554482e596f752063616e6e6f7420627579206d6f7265207468616e2032302045544820746f74616c207065722061646472657373206f72203520455448207065722054582ea2646970667358221220e7f4945d51584ae49b4bc0e5b552b3c4590f1025edf351fc0e999434a6e42dd864736f6c63430007050033

Deployed Bytecode Sourcemap

3993:6671:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5712:11;:9;:11::i;:::-;3993:6671;;;;;4616:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7629:84;;;;;;;;;;;;;:::i;:::-;;5209:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7726:85;;;;;;;;;;;;;:::i;:::-;;5095:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7443:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5063:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4099:69;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4536:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4500:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9091:477;;;;;;;;;;;;;:::i;:::-;;5749:135;;;;;;;;;;;;;:::i;:::-;;6333:496;;;;;;;;;;;;;:::i;:::-;;4469:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4574:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6973:462;;;;;;;;;;;;;:::i;:::-;;6841:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5298:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5896:425;;;;;;;;;;;;;:::i;:::-;;5252:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10407:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8966:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7819:1136;;;:::i;:::-;;4075:17;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5138:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7819:1136;3045:1;3642:7;;:19;;3634:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3045:1;3775:7;:18;;;;7901:9:::1;7887:23;;:10;:23;;;7879:32;;;::::0;::::1;;7948:4;7930:22;;:14;;;;;;;;;;;:22;;;7922:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8033:1;8011:25;;:3;;;;;;;;;;;:25;;;;8003:68;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8091:9;;;;;;;;;;;8090:10;8082:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8182:10;8169:9;:23;;8161:64;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8257:7;8244:9;:20;;8236:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8333:9;8323:7;;:19;8315:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8421:9;8395:22;8409:7;;8395:9;:13;;:22;;;;:::i;:::-;:35;;8386:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8513:8;8474:35;8499:9;8474:8;:20;8483:10;8474:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;:47;;8466:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8603:14;8620:27;5199:3;8620:9;:13;;:27;;;;:::i;:::-;8603:44;;8698:6;8666:3;;;;;;;;;;;:13;;;8688:4;8666:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;:38;;8658:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8776:35;8801:9;8776:8;:20;8785:10;8776:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;8753:8;:20;8762:10;8753:20;;;;;;;;;;;;;;;:58;;;;8837:24;8854:6;8837:12;;:16;;:24;;;;:::i;:::-;8822:12;:39;;;;8882:22;8894:9;8882:7;;:11;;:22;;;;:::i;:::-;8872:7;:32;;;;8915:3;;;;;;;;;;;:12;;;8928:10;8940:6;8915:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;3806:1;3001::::0;3954:7;:22;;;;7819:1136::o;4616:34::-;;;;;;;;;;;;;:::o;7629:84::-;5432:5;;;;;;;;;;;5418:19;;:10;:19;;;5410:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7701:4:::1;7684:14;;:21;;;;;;;;;;;;;;;;;;7629:84::o:0;5209:36::-;;;;:::o;7726:85::-;5432:5;;;;;;;;;;;5418:19;;:10;:19;;;5410:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7798:5:::1;7781:14;;:22;;;;;;;;;;;;;;;;;;7726:85::o:0;5095:30::-;;;;:::o;7443:174::-;5432:5;;;;;;;;;;;5418:19;;:10;:19;;;5410:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3045:1:::1;3642:7;;:19;;3634:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3045:1;3775:7;:18;;;;7547:1:::2;7525:25;;:3;;;;;;;;;;;:25;;;7517:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7605:4;7599:3;;:10;;;;;;;;;;;;;;;;;;3001:1:::1;3954:7;:22;;;;7443:174:::0;:::o;5063:19::-;;;;;;;;;;;;;:::o;4099:69::-;;;;;;;;;;;;;:::o;4536:31::-;;;;;;;;;;;;;:::o;4500:29::-;;;;;;;;;;;;;:::o;9091:477::-;5432:5;;;;;;;;;;;5418:19;;:10;:19;;;5410:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9169:11:::1;;;;;;;;;;;9168:12;9160:21;;;::::0;::::1;;9191:17;9211:38;9245:3;9211:29;9237:2;9211:21;:25;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;9191:58;;9260:18;9281:38;9315:3;9281:29;9307:2;9281:21;:25;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;9260:59;;9330:18;9351:37;9384:3;9351:28;9377:1;9351:21;:25;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;9330:58;;4797:42;9399:15;;:26;9415:9;9399:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;4893:42;9435:15;;:27;9451:10;9435:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;4988:42;9472:15;;:27;9488:10;9472:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9523:4;9509:11;;:18;;;;;;;;;;;;;;;;;;9546:14;:12;:14::i;:::-;5474:1;;;9091:477::o:0;5749:135::-;5432:5;;;;;;;;;;;5418:19;;:10;:19;;;5410:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3045:1:::1;3642:7;;:19;;3634:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3045:1;3775:7;:18;;;;5845:4:::2;5827:15;;:22;;;;;;;;;;;;;;;;;;5872:4;5860:9;;:16;;;;;;;;;;;;;;;;;;3001:1:::1;3954:7;:22;;;;5749:135::o:0;6333:496::-;5432:5;;;;;;;;;;;5418:19;;:10;:19;;;5410:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6399:3:::1;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;6392:4;;:26;;;;;;;;;;;;;;;;;;6429:22;6461:4;;;;;;;;;;;6429:37;;6477:24;6504:15;:25;;;6538:4;6504:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;6477:67;;6555:18;6576:15;;6555:36;;6602:15;:23;;;4413:42;6645:16;6602:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;4413:42;6675:21;;;6704:1;6708:4;;;;;;;;;;;6714:16;6732:10;6675:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;6778:43;6804:16;6778:21;;:25;;:43;;;;:::i;:::-;6754:21;:67;;;;5474:1;;;6333:496::o:0;4469:24::-;;;;:::o;4574:35::-;;;;;;;;;;;;;:::o;6973:462::-;5432:5;;;;;;;;;;;5418:19;;:10;:19;;;5410:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3045:1:::1;3642:7;;:19;;3634:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3045:1;3775:7;:18;;;;7054:11:::2;;;;;;;;;;;7046:20;;;::::0;::::2;;7104:24;;7085:15;:43;;7077:75;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;7163:20;7186:10;7163:33;;7207:14;7224:19;7241:1;7224:12;:16;;:19;;;;:::i;:::-;7207:36;;7255:3;;;;;;;;;;;:12;;;4797:42;7276:6;7255:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;7294:3;;;;;;;;;;;:12;;;4893:42;7315:6;7294:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;7333:3;;;;;;;;;;;:12;;;4988:42;7354:6;7333:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;7399;7419:7;7399:15;:19;;:28;;;;:::i;:::-;7372:24;:55;;;;3806:1;;3001::::1;3954:7;:22;;;;6973:462::o:0;6841:120::-;5432:5;;;;;;;;;;;5418:19;;:10;:19;;;5410:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4413:42:::1;6917:22;;;6940:4;;;;;;;;;;;6946:6;6917:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6841:120:::0;:::o;5298:25::-;;;;:::o;5896:425::-;3045:1;3642:7;;:19;;3634:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3045:1;3775:7;:18;;;;5972:9:::1;5958:23;;:10;:23;;;5950:32;;;::::0;::::1;;6002:11;::::0;::::1;;;;;;;;6001:12;5993:21;;;::::0;::::1;;6101:15;;;;;;;;;;;:48;;;;6139:10;;6120:15;:29;;6101:48;6093:73;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;6177:20;6200:10;6177:33;;6221:14;6238:8;:14;6247:4;6238:14;;;;;;;;;;;;;;;;6221:31;;6280:1;6263:8;:14;6272:4;6263:14;;;;;;;;;;;;;;;:18;;;;6292:4;:13;;:21;6306:6;6292:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;3806:1;;3001::::0;3954:7;:22;;;;5896:425::o;5252:39::-;;;;:::o;10407:252::-;5432:5;;;;;;;;;;;5418:19;;:10;:19;;;5410:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10548:15:::1;;10529;:34;;10521:70;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10609:12;10602:29;;;10632:5;;;;;;;;;;;10639:11;10602:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;10407:252:::0;;:::o;8966:113::-;9034:4;9057:8;:14;9066:4;9057:14;;;;;;;;;;;;;;;;9050:21;;8966:113;;;:::o;4075:17::-;;;;;;;;;;;;;:::o;5138:22::-;;;;:::o;10933:181::-;10991:7;11011:9;11027:1;11023;:5;11011:17;;11052:1;11047;:6;;11039:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11105:1;11098:8;;;10933:181;;;;:::o;12287:471::-;12345:7;12595:1;12590;:6;12586:47;;;12620:1;12613:8;;;;12586:47;12645:9;12661:1;12657;:5;12645:17;;12690:1;12685;12681;:5;;;;;;:10;12673:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12749:1;12742:8;;;12287:471;;;;;:::o;13234:132::-;13292:7;13319:39;13323:1;13326;13319:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;13312:46;;13234:132;;;;:::o;9584:811::-;9628:11;9642:21;9628:35;;9674:24;9701:30;9727:3;9701:21;:25;;:30;;;;:::i;:::-;9674:57;;9742:20;9765:66;4715:11;9765:50;9798:16;9765:3;;;;;;;;;;;:13;;;9787:4;9765:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:32;;:50;;;;:::i;:::-;:54;;:66;;;;:::i;:::-;9742:89;;9842:3;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9881:3;;;;;;;;;;;:11;;;4211:42;9911:16;9881:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4211:42;9939:23;;;9981:3;10019;;;;;;;;;;;10038:16;10069;10100:3;10126:4;10146:15;9939:233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10210:1;10195:12;:16;10191:83;;;10226:3;;;;;;;;;;;:12;;;10239:9;;;;;;;;;;;10250:12;10226:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10191:83;10306:4;10292:11;;:18;;;;;;;;;;;;;;;;;;10334:9;;;;;;;;;;;10330:44;;10370:4;10358:9;;:16;;;;;;;;;;;;;;;;;;10330:44;9584:811;;;:::o;13862:278::-;13948:7;13980:1;13976;:5;13983:12;13968:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14007:9;14023:1;14019;:5;;;;;;14007:17;;14131:1;14124:8;;;13862:278;;;;;:::o;11397:136::-;11455:7;11482:43;11486:1;11489;11482:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;11475:50;;11397:136;;;;:::o;11836:192::-;11922:7;11955:1;11950;:6;;11958:12;11942:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11982:9;11998:1;11994;:5;11982:17;;12019:1;12012:8;;;11836:192;;;;;:::o

Swarm Source

ipfs://e7f4945d51584ae49b4bc0e5b552b3c4590f1025edf351fc0e999434a6e42dd8

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

This is contract for BORG Tokens locked from pre-sale.

Validator Index Block Amount
View All Withdrawals

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

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