Contract 0xcf083be4164828f00cae704ec15a36d711491284 1

DeFi  
 

Contract Overview

ApeSwap: Ape Factory V2
Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xfb763f84c8de563b5e670555a3cd8c3616063f8451b8e4b7a923bd7fa4a9c9d5Create Pair261968372022-03-21 18:05:09149 days 10 hrs ago0x258de6d045aeb7b16e88ef41e0f9534229bc34d7 IN  ApeSwap: Ape Factory V20 MATIC0.099938606525 40.000002612
0x4e5497a8b97ce535d0e9bc8fd542d8fdb697a5e3377155bef5bbd0aaa4ab7a11Create Pair261967242022-03-21 18:01:15149 days 10 hrs ago0x258de6d045aeb7b16e88ef41e0f9534229bc34d7 IN  ApeSwap: Ape Factory V20 MATIC0.039524877431 40.000037882
0x63fbde3699f680887cd99adc6836a2bb1c7804e8f1bb4f6a9c767b50e0627df9Create Pair260873612022-03-18 20:37:58152 days 7 hrs ago0x258de6d045aeb7b16e88ef41e0f9534229bc34d7 IN  ApeSwap: Ape Factory V20 MATIC0.095038131217 38.038760441
0x7fa481bd7ea58c44e6ab19734ec0f73d2dddd2af675ef01019774bae08b3b373Create Pair257319552022-03-08 16:33:53162 days 11 hrs ago0xc1d8dae25d0c48b9e57cd9eef103850aa66dd451 IN  ApeSwap: Ape Factory V20 MATIC0.2498465 100
0xc85b1a491a5c05c85c50b363e3a60c30eae1e79f0f39ae7599b7225acf803349Create Pair256144092022-03-05 16:16:14165 days 12 hrs ago0xc1d8dae25d0c48b9e57cd9eef103850aa66dd451 IN  ApeSwap: Ape Factory V20 MATIC0.084582804118 33.853907947
0x1a3265467b4262c60026b67406178c37bb6d1c0369164fa875dc74ec436dbe0eSet Fee To Sette...236056462022-01-11 19:40:16218 days 8 hrs ago0x6c905b4108a87499ced1e0498721f2b831c6ab13 IN  ApeSwap: Ape Factory V20 MATIC0.0008051730
0xe0c291a9edb917babe63f65b7f711dcecd43593d066bdd9d0ba9e15f5e7b5ae0Create Pair189187052021-09-09 12:29:05342 days 15 hrs ago0x85e28311f12ed27f3db375885b7ac51d0dee3a7b IN  ApeSwap: Ape Factory V20 MATIC0.049969120
0x4c8206f1595fbec299ae91c5a47a2f7b76fd5d11bcafcd6298ddcfceb6a53ff5Create Pair188050932021-09-06 9:50:49345 days 18 hrs agoCougarSwap: Deployer IN  ApeSwap: Ape Factory V20 MATIC0.0299814612
0x4c5c340a7e7c053cd73fbdd9e7d88edc224c6653fe8ef0ab8d4e78a84646c086Create Pair188050902021-09-06 9:50:37345 days 18 hrs agoCougarSwap: Deployer IN  ApeSwap: Ape Factory V20 MATIC0.03247991513
0x16700a2a3e4c6510682199ad5ff4acb43a0f66f8c0ba6ad104881270fa4d1aa3Create Pair187339402021-09-04 9:45:03347 days 18 hrs ago0x4336b600798b99b0fd4e1ef52fa06d7a081ecfc5 IN  ApeSwap: Ape Factory V20 MATIC0.025234496510.1
0xf7ec18f0f94d20172d5836f930829c7b60ff5f1bb430a2cf00da38d0f316f0f5Create Pair187339342021-09-04 9:44:51347 days 18 hrs ago0x4336b600798b99b0fd4e1ef52fa06d7a081ecfc5 IN  ApeSwap: Ape Factory V20 MATIC0.025234496510.1
0x11314090c3f85df36f2f3019ecea9ce1e1d8a05f8249ffa8920c6c33dabfd0adCreate Pair183558812021-08-24 19:44:06358 days 8 hrs ago0x4336b600798b99b0fd4e1ef52fa06d7a081ecfc5 IN  ApeSwap: Ape Factory V20 MATIC0.0749539530
0x78ff25b126ef2e6ce30ee09f0b84ac60df14fc1b66c444bf8b1d10f5b34c8343Create Pair183556592021-08-24 19:36:28358 days 8 hrs ago0x4336b600798b99b0fd4e1ef52fa06d7a081ecfc5 IN  ApeSwap: Ape Factory V20 MATIC0.07690916056330.78256472
0x31b45a8530131b24198a80986d2b1d15705bfe6f52ee472d5a281a8398fcd419Create Pair181927652021-08-20 11:40:42362 days 16 hrs ago0x9ddfda1dfac07e5ff9e9f2a5260ed3446e342982 IN  ApeSwap: Ape Factory V20 MATIC0.049969120
0x60f39763b716a683be1185f18475e5046acfee4e0aa3ecd42ac37f689b0932fbCreate Pair181927092021-08-20 11:38:50362 days 16 hrs ago0x9ddfda1dfac07e5ff9e9f2a5260ed3446e342982 IN  ApeSwap: Ape Factory V20 MATIC0.049969120
0xa0feb5bd14d708b51c2a1879979a380c32009b35dc38b31124312b0e0e232217Create Pair179141372021-08-12 20:06:29370 days 8 hrs agoBarbershop Finance: Deployer IN  ApeSwap: Ape Factory V20 MATIC0.0375018095515.01
0x3863a1ef6d15377325b60e1681c664d38b7cf43e1ef8b5fe77d5c470c58d349fCreate Pair163442812021-07-01 0:04:51413 days 4 hrs ago0x6c4242cbe5b658da0a9440f90bb3afd31975418d IN  ApeSwap: Ape Factory V20 MATIC0.0002453410
0x57b9406fd93d0fd1ef36e563f1fb959a0ef5d95d7e899764ba78ece58cd2f043Create Pair163041422021-06-29 23:01:02414 days 5 hrs ago0xbfd026e4c127bad8475f4cfb003c112cca4a9a12 IN  ApeSwap: Ape Factory V20 MATIC0.0024984551
0xc86503dc3711a1e596d853389f602daa3ec83de5863782947c2854ae7999cc3dCreate Pair158802682021-06-19 0:29:15425 days 3 hrs ago0xcef34e4db130c8a64493517985b23af5b13e8cc6 IN  ApeSwap: Ape Factory V20 MATIC0.00524677652.1
0x2986fd2e4d28690a6d58319280f509c7854c78dd7a235f41f261fb94ffff584bCreate Pair158779632021-06-18 23:00:26425 days 5 hrs ago0xcef34e4db130c8a64493517985b23af5b13e8cc6 IN  ApeSwap: Ape Factory V20 MATIC0.0024984651
0x0f694a7ed05db3a331474b07ee1dc6e55a5b5794efdd6a93504df0f1e1db3df3Create Pair158779592021-06-18 23:00:18425 days 5 hrs ago0xcef34e4db130c8a64493517985b23af5b13e8cc6 IN  ApeSwap: Ape Factory V20 MATIC0.0024984551
0xb776828b9b4e60eb5af5a67ab4ab447469f1d7070e8fcab306b7cfb4c38c9644Create Pair158778712021-06-18 22:56:42425 days 5 hrs ago0xcef34e4db130c8a64493517985b23af5b13e8cc6 IN  ApeSwap: Ape Factory V20 MATIC0.0074953653
0x632b73ba136bef9b9b20df753c69c63fdf85a128e30747db5595316bef34349cSet Fee To153003112021-06-03 22:42:11440 days 5 hrs ago0x6c905b4108a87499ced1e0498721f2b831c6ab13 IN  ApeSwap: Ape Factory V20 MATIC0.000045961
0x0184b6ae368ac4264ee6acc9024e0ff4769c31fb9c67ad22dd2c125bb49b4e090x60806040152988012021-06-03 21:48:07440 days 6 hrs ago0x876688c3df57953259d69de76b9f209bb3645e12 IN  Create: ApeFactory0 MATIC0.0030894461
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x629c714d1c93458bda547cb425951882fbb5a79c81520e287b1c090bbd87a884320040282022-08-17 18:25:0910 hrs 1 min ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x44cbad0ca99f33a500cf56584ed9fce5a4ff8dfb05003f7f301d8d46828eadfd319529922022-08-16 9:49:251 day 18 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x48890ae3665816ff1b2f1743b8fffdc03b77ed2c773192bb8bced167427c89dd318857002022-08-14 15:20:303 days 13 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x0954ba2370cada2ff25b6a8520dd8d3b00abb9d48261c03fff25a53fbd592262317940292022-08-12 4:48:455 days 23 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x4d3ab5e83bda7bbf3c4b6e948f2caabf8a13fce3fcb9f69b9585240400dcfc87317270172022-08-10 9:23:307 days 19 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x317952e4e709482816770af1e105b6dbfcd831f99474aa0b636b231847e810a1316761052022-08-08 23:52:339 days 4 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0xab13816dd2cbbaf46ec9cfacfbd4d21538d9e8ea7129b60401146761aacea168316365642022-08-07 21:52:3210 days 6 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0xbb81674f8a6939ec1c0fcc461e0f96675f4e475dbe7faf61baed9a08e3cf4442316361212022-08-07 21:26:3810 days 6 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0xfb789bbdfc8e662500880c22dcd6319b52437ef1d539b61867a51b76720edbee314923632022-08-04 1:11:3914 days 3 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x221531102a70471b6d34c2af218a3a750001b699b288a180ad095d3c21e39e1f314914802022-08-04 0:34:1914 days 3 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x786291de4671a2f05eb4fb5c5fe65392bc7ebab488de1c60631828b5a9c7ecf4314902372022-08-03 23:46:1014 days 4 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x47a7ebd8db2fa37546f9f368e4b247c6d7fc9dc1a8247848fd641fd2240b648f313938792022-08-01 12:50:1716 days 15 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x0f27ba4357e337bbc3d32d33d14b81bb0d7d7707c5ad8afdac2b47f2ae4d5a4a313717072022-07-31 23:35:0717 days 4 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x26f5769a9a9018067adf8c5072c74fde980a9d1d9f109bed9262d3b8b6b0a4be312766342022-07-29 13:00:1719 days 15 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0xdfcf7e48dd2d3c92ca0796509f60581a58de608e6605693f33a6a2905f619249312690102022-07-29 8:25:0219 days 20 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x06e602c1d035749921c43c0facd3c3623bef8eb719e6886d190401d0003af219312687752022-07-29 8:16:5619 days 20 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x0a762809404469d22239110361d241bde1a034556d3020aecea5d2ed508c8c07312541992022-07-28 23:30:5320 days 4 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0xab8f59a7c6d9de340e97f735bb9170c8287c113cbe476a3e8725d2d0c9782aae312373582022-07-28 13:17:3320 days 15 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0xc01d9ec598ea35c4051b930f635ec388b3bc99b5fd2eb5550ad2f69ea91110c6312352672022-07-28 12:01:1720 days 16 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x8962b74531a1cda2b1e200f9a304512b8b843a7a0492d4abec32892e98a20ece311903272022-07-27 8:34:3921 days 19 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x16a5dbb29527e06d96cdba7dc4bf5a90d112766e003340fdb010f5699a4e00f0311655342022-07-26 17:52:1722 days 10 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x2ae8a5331603ae2591b52f014a5691ee3b21762e225367f6b8bcbc6175ed64f1311456252022-07-26 4:42:0822 days 23 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x7dabcb5d7e01466a7e396b662fc7b52bb193245b2a111e964689aa21e5d52a08310492802022-07-23 13:09:1825 days 15 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0x5f0757f97a589c63b12a8a58207472e55e6c39e6355349e6d8f36c422aaf23e1310259172022-07-22 21:45:1626 days 6 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
0xa5aa81241acfffe0d14cf0f6230ba1464d9f7bbcdf6908d9e014e09019ecbac0310257062022-07-22 21:35:5426 days 6 hrs ago ApeSwap: Ape Factory V2  Contract Creation0 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ApeFactory

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 11 : ApeFactory.sol
pragma solidity =0.5.16;

/*
 * ApeSwapFinance 
 * App:             https://apeswap.finance
 * Medium:          https://ape-swap.medium.com    
 * Twitter:         https://twitter.com/ape_swap 
 * Telegram:        https://t.me/ape_swap
 * Announcements:   https://t.me/ape_swap_news
 * GitHub:          https://github.com/ApeSwapFinance
 */

import './interfaces/IApeFactory.sol';
import './ApePair.sol';

contract ApeFactory is IApeFactory {
    bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(ApePair).creationCode));

    address public feeTo;
    address public feeToSetter;

    mapping(address => mapping(address => address)) public getPair;
    address[] public allPairs;

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

    constructor(address _feeToSetter) public {
        feeToSetter = _feeToSetter;
    }

    function allPairsLength() external view returns (uint) {
        return allPairs.length;
    }

    function createPair(address tokenA, address tokenB) external returns (address pair) {
        require(tokenA != tokenB, 'ApeSwap: IDENTICAL_ADDRESSES');
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'ApeSwap: ZERO_ADDRESS');
        require(getPair[token0][token1] == address(0), 'ApeSwap: PAIR_EXISTS'); // single check is sufficient
        bytes memory bytecode = type(ApePair).creationCode;
        bytes32 salt = keccak256(abi.encodePacked(token0, token1));
        assembly {
            pair := create2(0, add(bytecode, 32), mload(bytecode), salt)
        }
        IApePair(pair).initialize(token0, token1);
        getPair[token0][token1] = pair;
        getPair[token1][token0] = pair; // populate mapping in the reverse direction
        allPairs.push(pair);
        emit PairCreated(token0, token1, pair, allPairs.length);
    }

    function setFeeTo(address _feeTo) external {
        require(msg.sender == feeToSetter, 'ApeSwap: FORBIDDEN');
        feeTo = _feeTo;
    }

    function setFeeToSetter(address _feeToSetter) external {
        require(msg.sender == feeToSetter, 'ApeSwap: FORBIDDEN');
        feeToSetter = _feeToSetter;
    }
}

File 2 of 11 : IApeFactory.sol
pragma solidity >=0.5.0;

/*
 * ApeSwapFinance 
 * App:             https://apeswap.finance
 * Medium:          https://ape-swap.medium.com    
 * Twitter:         https://twitter.com/ape_swap 
 * Telegram:        https://t.me/ape_swap
 * Announcements:   https://t.me/ape_swap_news
 * GitHub:          https://github.com/ApeSwapFinance
 */

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

File 3 of 11 : ApePair.sol
pragma solidity =0.5.16;

/*
 * ApeSwapFinance 
 * App:             https://apeswap.finance
 * Medium:          https://ape-swap.medium.com    
 * Twitter:         https://twitter.com/ape_swap 
 * Telegram:        https://t.me/ape_swap
 * Announcements:   https://t.me/ape_swap_news
 * GitHub:          https://github.com/ApeSwapFinance
 */

import './interfaces/IApePair.sol';
import './ApeERC20.sol';
import './libraries/Math.sol';
import './libraries/UQ112x112.sol';
import './interfaces/IERC20.sol';
import './interfaces/IApeFactory.sol';
import './interfaces/IApeCallee.sol';

contract ApePair is IApePair, ApeERC20 {
    using SafeMath  for uint;
    using UQ112x112 for uint224;

    uint public constant MINIMUM_LIQUIDITY = 10**3;
    bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

    address public factory;
    address public token0;
    address public token1;

    uint112 private reserve0;           // uses single storage slot, accessible via getReserves
    uint112 private reserve1;           // uses single storage slot, accessible via getReserves
    uint32  private blockTimestampLast; // uses single storage slot, accessible via getReserves

    uint public price0CumulativeLast;
    uint public price1CumulativeLast;
    uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event

    uint private unlocked = 1;
    modifier lock() {
        require(unlocked == 1, 'ApeSwap: LOCKED');
        unlocked = 0;
        _;
        unlocked = 1;
    }

    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {
        _reserve0 = reserve0;
        _reserve1 = reserve1;
        _blockTimestampLast = blockTimestampLast;
    }

    function _safeTransfer(address token, address to, uint value) private {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'ApeSwap: TRANSFER_FAILED');
    }

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    constructor() public {
        factory = msg.sender;
    }

    // called once by the factory at time of deployment
    function initialize(address _token0, address _token1) external {
        require(msg.sender == factory, 'ApeSwap: FORBIDDEN'); // sufficient check
        token0 = _token0;
        token1 = _token1;
    }

    // update reserves and, on the first call per block, price accumulators
    function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {
        require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'ApeSwap: OVERFLOW');
        uint32 blockTimestamp = uint32(block.timestamp % 2**32);
        uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired
        if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
            // * never overflows, and + overflow is desired
            price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
            price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;
        }
        reserve0 = uint112(balance0);
        reserve1 = uint112(balance1);
        blockTimestampLast = blockTimestamp;
        emit Sync(reserve0, reserve1);
    }

    // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)
    function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
        address feeTo = IApeFactory(factory).feeTo();
        feeOn = feeTo != address(0);
        uint _kLast = kLast; // gas savings
        if (feeOn) {
            if (_kLast != 0) {
                uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
                uint rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint numerator = totalSupply.mul(rootK.sub(rootKLast));
                    uint denominator = (rootK / 3).add(rootKLast);
                    uint liquidity = numerator / denominator;
                    if (liquidity > 0) _mint(feeTo, liquidity);
                }
            }
        } else if (_kLast != 0) {
            kLast = 0;
        }
    }

    // this low-level function should be called from a contract which performs important safety checks
    function mint(address to) external lock returns (uint liquidity) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        uint balance0 = IERC20(token0).balanceOf(address(this));
        uint balance1 = IERC20(token1).balanceOf(address(this));
        uint amount0 = balance0.sub(_reserve0);
        uint amount1 = balance1.sub(_reserve1);

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        if (_totalSupply == 0) {
            liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
           _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
        } else {
            liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);
        }
        require(liquidity > 0, 'ApeSwap: INSUFFICIENT_LIQUIDITY_MINTED');
        _mint(to, liquidity);

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Mint(msg.sender, amount0, amount1);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function burn(address to) external lock returns (uint amount0, uint amount1) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        address _token0 = token0;                                // gas savings
        address _token1 = token1;                                // gas savings
        uint balance0 = IERC20(_token0).balanceOf(address(this));
        uint balance1 = IERC20(_token1).balanceOf(address(this));
        uint liquidity = balanceOf[address(this)];

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
        amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
        require(amount0 > 0 && amount1 > 0, 'ApeSwap: INSUFFICIENT_LIQUIDITY_BURNED');
        _burn(address(this), liquidity);
        _safeTransfer(_token0, to, amount0);
        _safeTransfer(_token1, to, amount1);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_token1).balanceOf(address(this));

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Burn(msg.sender, amount0, amount1, to);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
        require(amount0Out > 0 || amount1Out > 0, 'ApeSwap: INSUFFICIENT_OUTPUT_AMOUNT');
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        require(amount0Out < _reserve0 && amount1Out < _reserve1, 'ApeSwap: INSUFFICIENT_LIQUIDITY');

        uint balance0;
        uint balance1;
        { // scope for _token{0,1}, avoids stack too deep errors
        address _token0 = token0;
        address _token1 = token1;
        require(to != _token0 && to != _token1, 'ApeSwap: INVALID_TO');
        if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
        if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
        if (data.length > 0) IApeCallee(to).apeCall(msg.sender, amount0Out, amount1Out, data);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_token1).balanceOf(address(this));
        }
        uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
        uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
        require(amount0In > 0 || amount1In > 0, 'ApeSwap: INSUFFICIENT_INPUT_AMOUNT');
        { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
        uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(2));
        uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(2));
        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'ApeSwap: K');
        }

        _update(balance0, balance1, _reserve0, _reserve1);
        emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
    }

    // force balances to match reserves
    function skim(address to) external lock {
        address _token0 = token0; // gas savings
        address _token1 = token1; // gas savings
        _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
        _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
    }

    // force reserves to match balances
    function sync() external lock {
        _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);
    }
}

File 4 of 11 : IApePair.sol
pragma solidity >=0.5.0;

/*
 * ApeSwapFinance 
 * App:             https://apeswap.finance
 * Medium:          https://ape-swap.medium.com    
 * Twitter:         https://twitter.com/ape_swap 
 * Telegram:        https://t.me/ape_swap
 * Announcements:   https://t.me/ape_swap_news
 * GitHub:          https://github.com/ApeSwapFinance
 */

interface IApePair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

File 5 of 11 : ApeERC20.sol
pragma solidity =0.5.16;

/*
 * ApeSwapFinance 
 * App:             https://apeswap.finance
 * Medium:          https://ape-swap.medium.com    
 * Twitter:         https://twitter.com/ape_swap 
 * Telegram:        https://t.me/ape_swap
 * Announcements:   https://t.me/ape_swap_news
 * GitHub:          https://github.com/ApeSwapFinance
 */

import './interfaces/IApeERC20.sol';
import './libraries/SafeMath.sol';

contract ApeERC20 is IApeERC20 {
    using SafeMath for uint;

    string public constant name = 'ApeSwapFinance LPs';
    string public constant symbol = 'APE-LP';
    uint8 public constant decimals = 18;
    uint  public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;

    bytes32 public DOMAIN_SEPARATOR;
    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    mapping(address => uint) public nonces;

    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    constructor() public {
        uint chainId;
        assembly {
            chainId := chainid
        }
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes(name)),
                keccak256(bytes('1')),
                chainId,
                address(this)
            )
        );
    }

    function _mint(address to, uint value) internal {
        totalSupply = totalSupply.add(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint value) internal {
        balanceOf[from] = balanceOf[from].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Transfer(from, address(0), value);
    }

    function _approve(address owner, address spender, uint value) private {
        allowance[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _transfer(address from, address to, uint value) private {
        balanceOf[from] = balanceOf[from].sub(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(from, to, value);
    }

    function approve(address spender, uint value) external returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transfer(address to, uint value) external returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint value) external returns (bool) {
        if (allowance[from][msg.sender] != uint(-1)) {
            allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);
        }
        _transfer(from, to, value);
        return true;
    }

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        require(deadline >= block.timestamp, 'ApeSwap: EXPIRED');
        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
            )
        );
        address recoveredAddress = ecrecover(digest, v, r, s);
        require(recoveredAddress != address(0) && recoveredAddress == owner, 'ApeSwap: INVALID_SIGNATURE');
        _approve(owner, spender, value);
    }
}

File 6 of 11 : IApeERC20.sol
pragma solidity >=0.5.0;

/*
 * ApeSwapFinance 
 * App:             https://apeswap.finance
 * Medium:          https://ape-swap.medium.com    
 * Twitter:         https://twitter.com/ape_swap 
 * Telegram:        https://t.me/ape_swap
 * Announcements:   https://t.me/ape_swap_news
 * GitHub:          https://github.com/ApeSwapFinance
 */

interface IApeERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
}

File 7 of 11 : SafeMath.sol
pragma solidity =0.5.16;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library SafeMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

File 8 of 11 : Math.sol
pragma solidity =0.5.16;

// a library for performing various math operations

library Math {
    function min(uint x, uint y) internal pure returns (uint z) {
        z = x < y ? x : y;
    }

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

File 9 of 11 : UQ112x112.sol
pragma solidity =0.5.16;

// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))

// range: [0, 2**112 - 1]
// resolution: 1 / 2**112

library UQ112x112 {
    uint224 constant Q112 = 2**112;

    // encode a uint112 as a UQ112x112
    function encode(uint112 y) internal pure returns (uint224 z) {
        z = uint224(y) * Q112; // never overflows
    }

    // divide a UQ112x112 by a uint112, returning a UQ112x112
    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
        z = x / uint224(y);
    }
}

File 10 of 11 : IERC20.sol
pragma solidity >=0.5.0;

/*
 * ApeSwapFinance 
 * App:             https://apeswap.finance
 * Medium:          https://ape-swap.medium.com    
 * Twitter:         https://twitter.com/ape_swap 
 * Telegram:        https://t.me/ape_swap
 * Announcements:   https://t.me/ape_swap_news
 * GitHub:          https://github.com/ApeSwapFinance
 */

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}

File 11 of 11 : IApeCallee.sol
pragma solidity >=0.5.0;

/*
 * ApeSwapFinance 
 * App:             https://apeswap.finance
 * Medium:          https://ape-swap.medium.com    
 * Twitter:         https://twitter.com/ape_swap 
 * Telegram:        https://t.me/ape_swap
 * Announcements:   https://t.me/ape_swap_news
 * GitHub:          https://github.com/ApeSwapFinance
 */

interface IApeCallee {
    function apeCall(address sender, uint amount0, uint amount1, bytes calldata data) external;
}

Settings
{
  "metadata": {
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"PairCreated","type":"event"},{"constant":true,"inputs":[],"name":"INIT_CODE_PAIR_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_feeTo","type":"address"}],"name":"setFeeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"name":"setFeeToSetter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405161373b38038061373b8339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b039092169190911790556136d8806100636000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80635855a25a11610076578063c9c653961161005b578063c9c6539614610155578063e6a4390514610190578063f46901ed146101cb576100a3565b80635855a25a14610118578063a2e74af614610120576100a3565b8063017e7e58146100a8578063094b7415146100d95780631e3dd18b146100e1578063574f2ba3146100fe575b600080fd5b6100b06101fe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b061021a565b6100b0600480360360208110156100f757600080fd5b5035610236565b61010661026a565b60408051918252519081900360200190f35b610106610270565b6101536004803603602081101561013657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610321565b005b6100b06004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166103ee565b6100b0600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610841565b610153600480360360208110156101e157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610874565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b60405161027f60208201610941565b6020820181038252601f19601f820116604052506040516020018082805190602001908083835b602083106102e357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102a6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60015473ffffffffffffffffffffffffffffffffffffffff1633146103a757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f417065537761703a20464f5242494444454e0000000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561048b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f417065537761703a204944454e544943414c5f41444452455353455300000000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106104c85783856104cb565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff821661055257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f417065537761703a205a45524f5f414444524553530000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600260209081526040808320858516845290915290205416156105f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f417065537761703a20504149525f455849535453000000000000000000000000604482015290519081900360640190fd5b60606040518060200161060590610941565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152868116602483015291519297509087169163485cc9559160448082019260009290919082900301818387803b15801561073257600080fd5b505af1158015610746573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1633146108fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f417065537761703a20464f5242494444454e0000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d558061094f8339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612d03823960408051918290036052018220828201825260128352714170655377617046696e616e6365204c507360701b6020938401528151808301835260018152603160f81b908401528151808401919091527f3daa526e0cb6e02f6c18cec975ea46f882a39b41e4defdbb2e199e0476b3122d818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612bf68061010d6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d6d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610da6565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610dfb565b604080519115158252519081900360200190f35b61036a610e12565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e2e565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e34565b61039b610f13565b610400610f37565b6040805160ff9092168252519081900360200190f35b61039b610f3c565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f42565b61039b61101b565b61039b611021565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611027565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e1565b61039b6113f3565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f9565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661140b565b6040805192835260208301919091528051918290030190f35b6102616118a8565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118e1565b61039b6118ee565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118f4565b61036a611aea565b61036a611b06565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b22565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dee565b610257611e0b565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f417065537761703a204c4f434b45440000000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612b576023913960400191505060405180910390fd5b600080610767610da6565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b61080557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f417065537761703a20494e53554646494349454e545f4c495155494449545900604482015290519081900360640190fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061086a57508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f417065537761703a20494e56414c49445f544f00000000000000000000000000604482015290519081900360640190fd5b8a156108e6576108e6828a8d611ff1565b89156108f7576108f7818a8c611ff1565b86156109d9578873ffffffffffffffffffffffffffffffffffffffff1663becda363338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109c057600080fd5b505af11580156109d4573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a4557600080fd5b505afa158015610a59573d6000803e3d6000fd5b505050506040513d6020811015610a6f57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610ae157600080fd5b505afa158015610af5573d6000803e3d6000fd5b505050506040513d6020811015610b0b57600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b35576000610b4b565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b6f576000610b85565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b965750600081115b610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b7a6022913960400191505060405180910390fd5b6000610c1f610c0184600263ffffffff6121fe16565b610c13876103e863ffffffff6121fe16565b9063ffffffff61228416565b90506000610c37610c0184600263ffffffff6121fe16565b9050610c6f620f4240610c636dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121fe16565b9063ffffffff6121fe16565b610c7f838363ffffffff6121fe16565b1015610cec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f417065537761703a204b00000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610cfa848488886122f6565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280601281526020017f4170655377617046696e616e6365204c5073000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610e083384846125b2565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610efe5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610ecc908363ffffffff61228416565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610f09848484612621565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fc857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f417065537761703a20464f5242494444454e0000000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461109a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f417065537761703a204c4f434b45440000000000000000000000000000000000604482015290519081900360640190fd5b6000600c819055806110aa610da6565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561112457600080fd5b505afa158015611138573d6000803e3d6000fd5b505050506040513d602081101561114e57600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111c757600080fd5b505afa1580156111db573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b505190506000611217836dffffffffffffffffffffffffffff871663ffffffff61228416565b9050600061123b836dffffffffffffffffffffffffffff871663ffffffff61228416565b905060006112498787612702565b60005490915080611286576112726103e8610c1361126d878763ffffffff6121fe16565b61287a565b985061128160006103e86128cc565b6112e3565b6112e06dffffffffffffffffffffffffffff89166112aa868463ffffffff6121fe16565b816112b157fe5b046dffffffffffffffffffffffffffff89166112d3868563ffffffff6121fe16565b816112da57fe5b0461297c565b98505b6000891161133c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b316026913960400191505060405180910390fd5b6113468a8a6128cc565b61135286868a8a6122f6565b811561139457600854611390906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121fe16565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461147f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f417065537761703a204c4f434b45440000000000000000000000000000000000604482015290519081900360640190fd5b6000600c8190558061148f610da6565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561151157600080fd5b505afa158015611525573d6000803e3d6000fd5b505050506040513d602081101561153b57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b1580156115af57600080fd5b505afa1580156115c3573d6000803e3d6000fd5b505050506040513d60208110156115d957600080fd5b5051306000908152600160205260408120549192506115f88888612702565b6000549091508061160f848763ffffffff6121fe16565b8161161657fe5b049a508061162a848663ffffffff6121fe16565b8161163157fe5b04995060008b118015611644575060008a115b611699576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b9c6026913960400191505060405180910390fd5b6116a33084612994565b6116ae878d8d611ff1565b6116b9868d8c611ff1565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561172557600080fd5b505afa158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117c157600080fd5b505afa1580156117d5573d6000803e3d6000fd5b505050506040513d60208110156117eb57600080fd5b505193506117fb85858b8b6122f6565b811561183d57600854611839906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121fe16565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f4150452d4c50000000000000000000000000000000000000000000000000000081525081565b6000610e08338484612621565b6103e881565b600c5460011461196557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f417065537761703a204c4f434b45440000000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a419285928792611a3c926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611a0457600080fd5b505afa158015611a18573d6000803e3d6000fd5b505050506040513d6020811015611a2e57600080fd5b50519063ffffffff61228416565b611ff1565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611ae09284928792611a3c926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611a0457600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f417065537761703a204558504952454400000000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cf2573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d6d57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f417065537761703a20494e56414c49445f5349474e4154555245000000000000604482015290519081900360640190fd5b611de38989896125b2565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e7c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f417065537761703a204c4f434b45440000000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fea9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611ef357600080fd5b505afa158015611f07573d6000803e3d6000fd5b505050506040513d6020811015611f1d57600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f9057600080fd5b505afa158015611fa4573d6000803e3d6000fd5b505050506040513d6020811015611fba57600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122f6565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120f757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120ba565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612159576040519150601f19603f3d011682016040523d82523d6000602084013e61215e565b606091505b509150915081801561218c57508051158061218c575080806020019051602081101561218957600080fd5b50515b6121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f417065537761703a205452414e534645525f4641494c45440000000000000000604482015290519081900360640190fd5b5050505050565b60008115806122195750508082028282828161221657fe5b04145b610e0c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610e0c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061232257506dffffffffffffffffffffffffffff8311155b61238d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f417065537761703a204f564552464c4f57000000000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123dd57506dffffffffffffffffffffffffffff841615155b80156123f857506dffffffffffffffffffffffffffff831615155b156124a8578063ffffffff1661243b8561241186612a59565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7d16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff811661247b8461241187612a59565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612657908263ffffffff61228416565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612699908263ffffffff612abe16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561276d57600080fd5b505afa158015612781573d6000803e3d6000fd5b505050506040513d602081101561279757600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff82161580159450919250906128665780156128615760006127ee61126d6dffffffffffffffffffffffffffff88811690881663ffffffff6121fe16565b905060006127fb8361287a565b90508082111561285e57600061282961281a848463ffffffff61228416565b6000549063ffffffff6121fe16565b9050600061283a6003850484612abe565b9050600081838161284757fe5b049050801561285a5761285a87826128cc565b5050505b50505b612872565b8015612872576000600b555b505092915050565b600060038211156128bd575080600160028204015b818110156128b7578091506002818285816128a657fe5b0401816128af57fe5b04905061288f565b506128c7565b81156128c7575060015b919050565b6000546128df908263ffffffff612abe16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612917908263ffffffff612abe16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600081831061298b578161298d565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129ca908263ffffffff61228416565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a04908263ffffffff61228416565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab657fe5b049392505050565b80820182811015610e0c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe417065537761703a20494e53554646494349454e545f4c49515549444954595f4d494e544544417065537761703a20494e53554646494349454e545f4f55545055545f414d4f554e54417065537761703a20494e53554646494349454e545f494e5055545f414d4f554e54417065537761703a20494e53554646494349454e545f4c49515549444954595f4255524e4544a265627a7a7231582055c5fc7101801088d5a8a88eef877c83bf0edd75157b81943a390ef9db259de164736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820e45767fcedc2009ff92ad0b81c32d15c31a893d442714c595e20d5e602d1c2cf64736f6c634300051000320000000000000000000000006c905b4108a87499ced1e0498721f2b831c6ab13

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000006c905b4108a87499ced1e0498721f2b831c6ab13

-----Decoded View---------------
Arg [0] : _feeToSetter (address): 0x6c905b4108a87499ced1e0498721f2b831c6ab13

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c905b4108a87499ced1e0498721f2b831c6ab13


Deployed ByteCode Sourcemap

406:1838:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;406:1838:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;555:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;581:26;;;:::i;682:25::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;682:25:1;;:::i;896:94::-;;;:::i;:::-;;;;;;;;;;;;;;;;447:101;;;:::i;2078:164::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2078:164:1;;;;:::i;:::-;;996:930;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;996:930:1;;;;;;;;;;;:::i;614:62::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;614:62:1;;;;;;;;;;;:::i;1932:140::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1932:140:1;;;;:::i;555:20::-;;;;;;:::o;581:26::-;;;;;;:::o;682:25::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;682:25:1;:::o;896:94::-;968:8;:15;896:94;:::o;447:101::-;520:26;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;520:26:1;503:44;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;503:44:1;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;503:44:1;;;493:55;;;;;;447:101;:::o;2078:164::-;2165:11;;;;2151:10;:25;2143:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2209:11;:26;;;;;;;;;;;;;;;2078:164::o;996:930::-;1066:12;1108:6;1098:16;;:6;:16;;;;1090:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1158:14;1174;1201:6;1192:15;;:6;:15;;;:53;;1230:6;1238;1192:53;;;1211:6;1219;1192:53;1157:88;;-1:-1:-1;1157:88:1;-1:-1:-1;1263:20:1;;;1255:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1327:37;:15;;;1362:1;1327:15;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:37;1319:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1429:21;1453:26;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;1453:26:1;1429:50;;1489:12;1531:6;1539;1514:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1514:32:1;;;1504:43;;;;;;1489:58;;1635:4;1624:8;1618:15;1613:2;1603:8;1599:17;1596:1;1588:52;1659:41;;;;;;:25;:41;;;;;;;;;;;;;;;;1580:60;;-1:-1:-1;1659:25:1;;;;;;:41;;;;;-1:-1:-1;;1659:41:1;;;;;;;;-1:-1:-1;1659:25:1;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;1659:41:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;1710:15:1;;;;;;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:30;;;;;;;;;;;;;;1750:15;;;;;;:23;;;;;;;;:30;;;;;;;;1835:8;27:10:-1;;-1:-1;23:18;;45:23;;1835:19:1;;;;;;;;;;;;;;;;;;1903:15;;1869:50;;;;;;;;;;;;;;;;;;;;;;996:930;;;;;;;;:::o;614:62::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1932:140::-;2007:11;;;;1993:10;:25;1985:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2051:5;:14;;;;;;;;;;;;;;;1932:140::o;406:1838::-;;;;;;;;:::o

Swarm Source

bzzr://e45767fcedc2009ff92ad0b81c32d15c31a893d442714c595e20d5e602d1c2cf
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.