Contract 0xF5adaA8B095BA1df2EDDfe87595a8B9428E17483

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x60a0cf5f453c80502c69d6a73f2f52b35383260b24eaf288129724b7adbbe69eApprove117152142021-10-12 18:27:2811 days 8 mins ago0xbd7bef0900211f1b0b6fd5572e43897b81a1762c IN  PancakeSwap: FLTY 30 BNB0.000221595
0x877148b8c8aaed5c63f109d15addfd47bfdb86b2fa6f6a60c604e62cbf50580cApprove111508852021-09-23 0:45:3730 days 17 hrs ago0x27989c993f3f4df4718f2bc752d0fe6f703a7398 IN  PancakeSwap: FLTY 30 BNB0.000101276
0x1ea92e4bbb4df681853621185ac82b59840c5354a0338319fca1752f8ad31dd1Approve109302532021-09-15 8:01:1438 days 10 hrs ago0xcb961fa1b40933048f1081bef5f748810009c5cc IN  PancakeSwap: FLTY 30 BNB0.000221595
0x815c1e5ca5bf333b55ee455c8f5344b038d105719c0ec239461f5dda26ed244cApprove105859052021-09-03 6:50:0050 days 11 hrs ago0x9598ca7b16ea0a3e7398a49210d650ac30a8bd3a IN  PancakeSwap: FLTY 30 BNB0.000221655
0xf0c9affa39f1df898b9c867071982fdac74edb00fbc93255a1283a24d5c5d275Approve105064422021-08-31 11:43:5553 days 6 hrs ago0x4e12daa700ade48e1d427988a12c78540363a793 IN  PancakeSwap: FLTY 30 BNB0.000221595
0xd83dc300e904b35307e778af9de520700ab2eb831f1b6f2ffb398cb0ef65d86eApprove103839752021-08-27 3:46:3057 days 14 hrs ago0xd2050719ea37325bdb6c18a85f6c442221811fac IN  PancakeSwap: FLTY 30 BNB0.000221595
0x8388bb48e2831c32a33d8e540ffac52b9cda615df040d101731aefd1be2b9f75Transfer101862102021-08-20 6:04:3564 days 12 hrs ago0x1abfa736b98ea7e0c125a395258c8b0bcd37982e IN  PancakeSwap: FLTY 30 BNB0.00018049
0xaf4f3f167c5b806a4eac33a8cc6806f64699f9fbd7573f1dbce017249927502eApprove99997902021-08-13 17:58:3271 days 36 mins ago0x28fed40423a25c1b6411ad22eb35680830ab6500 IN  PancakeSwap: FLTY 30 BNB0.000221655
0x179f64b8b973c7f30fd24bb6b5c9dddede03c6da2e7f78dcd30c50e581539696Transfer99562792021-08-12 5:02:1472 days 13 hrs ago0x1abfa736b98ea7e0c125a395258c8b0bcd37982e IN  PancakeSwap: FLTY 30 BNB0.00010561
0x86eeee654c6a569d6aa2c6971304a6761d7917eaee03f365c30d9cf90e9429ebTransfer99562472021-08-12 5:00:3872 days 13 hrs ago0x1abfa736b98ea7e0c125a395258c8b0bcd37982e IN  PancakeSwap: FLTY 30 BNB0.00013801
0x43a93d203239f91666d6addfee0026fbc23b1a964b49af503cb8b54ffcc9a577Transfer99561772021-08-12 4:56:5372 days 13 hrs ago0x1abfa736b98ea7e0c125a395258c8b0bcd37982e IN  PancakeSwap: FLTY 30 BNB0.00025537
0x8faa029536cb364773e3df5790af2c406b1b718567f65e0e93509664b3c54a48Approve93866252021-07-22 18:22:2093 days 13 mins ago0x82eaf244a82f02de6c83e8106581bc3d3211cb23 IN  PancakeSwap: FLTY 30 BNB0.000221595054
0x5a3f6f89c425a899366437e9d556d6f2407208d40febbab786b6274335bd6735Transfer91825162021-07-15 16:11:09100 days 2 hrs ago0x6862938a8a4544212538877e5a4d60abbbf00e24 IN  PancakeSwap: FLTY 30 BNB0.00010549
0xf37523159fd7a9e751fe814cd75d7936bcfd18b8bb219f166a7d05305a02d750Approve91824962021-07-15 16:10:09100 days 2 hrs ago0xc790fd5896132c9fa0c18c43c37f601089d5e132 IN  PancakeSwap: FLTY 30 BNB0.000221595
0xfa4cdb83cbc4102e2ecb73f558b48aaed511e41bd78eeb38735f1bdf053fc0c2Transfer91823892021-07-15 16:04:48100 days 2 hrs ago0x6862938a8a4544212538877e5a4d60abbbf00e24 IN  PancakeSwap: FLTY 30 BNB0.00025537
0xdf046fe988abb09ec94605f2ae26aeeaa1a862e63d4ef37b39cb52b6a5098507Approve90035692021-07-09 11:01:48106 days 7 hrs ago0x405c2b5203e3e4b9c67cc655d36bed4b60b8ed20 IN  PancakeSwap: FLTY 30 BNB0.000221595
0xb5eaebd9077d8686fe9ce18204011e8f69f08ad6b1f3c527ba2325c8ad040ed5Approve88971782021-07-05 18:08:42110 days 26 mins ago0x99d65df6507475702ed76488db20ff7283fd9acc IN  PancakeSwap: FLTY 30 BNB0.000221595054
0x445e60365694e65c5934f9558eef5217f655e9cbf69dce789343b84acaf11acdApprove87734172021-07-01 10:03:19114 days 8 hrs ago0x391cd59d33aed135e8ba7475677b1bc781035b32 IN  PancakeSwap: FLTY 30 BNB0.000221595
0x4b991110695d9854b86ba772ae7b8aff9953c3b25639f3a58b98cf481c6b1f46Approve87526352021-06-30 16:35:25115 days 2 hrs ago0x6ef3b580b4d1c6c6b33cb2d6cf9e0722e3a8ab40 IN  PancakeSwap: FLTY 30 BNB0.000221595
0xdae9e2acec380625d15b1eeb4051550a272c9edfbfd7e69f673cf6f7d1fa59b5Approve85560642021-06-23 19:59:39121 days 22 hrs ago0x6cc76d20646af5e6944bc6bfe60d21ea3fee63a5 IN  PancakeSwap: FLTY 30 BNB0.000220035
0x87ef9334b3e79c3a51142ccbd5d45ac0aef7f14b15d09b5e187ce216aa271658Approve83218432021-06-15 15:34:18130 days 3 hrs ago0xc5a7d9b2a61d6976abeaa5fce9db03db4420ca18 IN  PancakeSwap: FLTY 30 BNB0.000221595
0x8f20fecdc0103f83b5b74589087dc97734ff6fd81e598ac3e0ad4fd0d0717fa6Approve83170912021-06-15 11:30:47130 days 7 hrs ago0x6cec7b811396fca0e5b1798ab82ecf9ba6134bdb IN  PancakeSwap: FLTY 30 BNB0.000221595
0x168b2f2b88f259ed575672689277322004d7cca4fe8ffd88c1d2679d0e529e67Approve83054652021-06-15 1:41:20130 days 16 hrs ago0xd91b9c58066aa5a37da7478b332b746e046f6706 IN  PancakeSwap: FLTY 30 BNB0.000221655
0xa6d79f763d1979beb493248727b50ce120da9ec2611ef063b0a34bbc96d1429cApprove82480322021-06-13 1:12:54132 days 17 hrs ago0xf7f87ebc65838c8632fd416a3d62ecdd8a69b47f IN  PancakeSwap: FLTY 30 BNB0.000221595
0xd9c389e5adaa04cd497efdbd9bd5f82321539003ed381b67a3ffb1b2744a30ebApprove82092662021-06-11 16:45:01134 days 1 hr ago0x6862938a8a4544212538877e5a4d60abbbf00e24 IN  PancakeSwap: FLTY 30 BNB0.000221595
[ Download CSV Export 

OVERVIEW

PancakeSwap pool to exchange between FLTY and WBNB.

Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xd0933a7698aa830acf5b9aa0edee299bd8674bce9d7c65194596307b4a769bb270830012021-05-02 21:24:51173 days 21 hrs ago PancakeSwap: Factory  Contract Creation0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xa527a61703d82139f8a06bc30097cc9caa2df5a6

Contract Name:
PancakePair

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 50 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2020-09-24
*/

// File: contracts/interfaces/IPancakePair.sol

pragma solidity >=0.5.0;

interface IPancakePair {
    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: contracts/interfaces/IPancakeERC20.sol

pragma solidity >=0.5.0;

interface IPancakeERC20 {
    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: contracts/libraries/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: contracts/PancakeERC20.sol

pragma solidity =0.5.16;



contract PancakeERC20 is IPancakeERC20 {
    using SafeMath for uint;

    string public constant name = 'Pancake LPs';
    string public constant symbol = 'Cake-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, 'Pancake: 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, 'Pancake: INVALID_SIGNATURE');
        _approve(owner, spender, value);
    }
}

// File: contracts/libraries/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: contracts/libraries/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: contracts/interfaces/IERC20.sol

pragma solidity >=0.5.0;

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: contracts/interfaces/IPancakeFactory.sol

pragma solidity >=0.5.0;

interface IPancakeFactory {
    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: contracts/interfaces/IPancakeCallee.sol

pragma solidity >=0.5.0;

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

// File: contracts/PancakePair.sol

pragma solidity =0.5.16;








contract PancakePair is IPancakePair, PancakeERC20 {
    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, 'Pancake: 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))), 'Pancake: 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, 'Pancake: 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), 'Pancake: 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 = IPancakeFactory(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.mul(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, 'Pancake: 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, 'Pancake: 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, 'Pancake: INSUFFICIENT_OUTPUT_AMOUNT');
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        require(amount0Out < _reserve0 && amount1Out < _reserve1, 'Pancake: 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, 'Pancake: 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) IPancakeCallee(to).pancakeCall(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, 'Pancake: 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), 'Pancake: 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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sync","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526001600c5534801561001557600080fd5b5060405146908060526122e08239604080519182900360520182208282018252600b83526a50616e63616b65204c507360a81b6020938401528151808301835260018152603160f81b908401528151808401919091527fe87cb5a4dc26cf9451529a20899fcee996799afd48d7c0db7c25e150b364661d818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b031916331790556121da806101066000396000f3fe608060405234801561001057600080fd5b50600436106101595760003560e01c80636a627842116100c95780636a627842146103bf57806370a08231146103e55780637464fc3d1461040b5780637ecebe001461041357806389afcb441461043957806395d89b4114610478578063a9059cbb14610480578063ba9a7a56146104ac578063bc25cf77146104b4578063c45a0155146104da578063d21220a7146104e2578063d505accf146104ea578063dd62ed3e1461053b578063fff6cae91461056957610159565b8063022c0d9f1461015e57806306fdde03146101ea5780630902f1ac14610267578063095ea7b31461029f5780630dfe1681146102df57806318160ddd1461030357806323b872dd1461031d57806330adf81f14610353578063313ce5671461035b5780633644e51514610379578063485cc955146103815780635909c0d5146103af5780635a3d5493146103b7575b600080fd5b6101e86004803603608081101561017457600080fd5b8135916020810135916001600160a01b036040830135169190810190608081016060820135600160201b8111156101aa57600080fd5b8201836020820111156101bc57600080fd5b803590602001918460018302840111600160201b831117156101dd57600080fd5b509092509050610571565b005b6101f2610abc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022c578181015183820152602001610214565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026f610ae3565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b6102cb600480360360408110156102b557600080fd5b506001600160a01b038135169060200135610b0d565b604080519115158252519081900360200190f35b6102e7610b24565b604080516001600160a01b039092168252519081900360200190f35b61030b610b33565b60408051918252519081900360200190f35b6102cb6004803603606081101561033357600080fd5b506001600160a01b03813581169160208101359091169060400135610b39565b61030b610bd3565b610363610bf7565b6040805160ff9092168252519081900360200190f35b61030b610bfc565b6101e86004803603604081101561039757600080fd5b506001600160a01b0381358116916020013516610c02565b61030b610c84565b61030b610c8a565b61030b600480360360208110156103d557600080fd5b50356001600160a01b0316610c90565b61030b600480360360208110156103fb57600080fd5b50356001600160a01b0316610f8e565b61030b610fa0565b61030b6004803603602081101561042957600080fd5b50356001600160a01b0316610fa6565b61045f6004803603602081101561044f57600080fd5b50356001600160a01b0316610fb8565b6040805192835260208301919091528051918290030190f35b6101f261135c565b6102cb6004803603604081101561049657600080fd5b506001600160a01b03813516906020013561137f565b61030b61138c565b6101e8600480360360208110156104ca57600080fd5b50356001600160a01b0316611392565b6102e76114fb565b6102e761150a565b6101e8600480360360e081101561050057600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611519565b61030b6004803603604081101561055157600080fd5b506001600160a01b0381358116916020013516611716565b6101e8611733565b600c546001146105ba576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55841515806105cd5750600084115b6106085760405162461bcd60e51b815260040180806020018281038252602381526020018061215d6023913960400191505060405180910390fd5b600080610613610ae3565b5091509150816001600160701b0316871080156106385750806001600160701b031686105b610689576040805162461bcd60e51b815260206004820152601f60248201527f50616e63616b653a20494e53554646494349454e545f4c495155494449545900604482015290519081900360640190fd5b60065460075460009182916001600160a01b039182169190811690891682148015906106c75750806001600160a01b0316896001600160a01b031614155b61070e576040805162461bcd60e51b815260206004820152601360248201527250616e63616b653a20494e56414c49445f544f60681b604482015290519081900360640190fd5b8a1561071f5761071f828a8d611893565b891561073057610730818a8c611893565b86156107eb57886001600160a01b03166384800812338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156107d257600080fd5b505af11580156107e6573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561083157600080fd5b505afa158015610845573d6000803e3d6000fd5b505050506040513d602081101561085b57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108a757600080fd5b505afa1580156108bb573d6000803e3d6000fd5b505050506040513d60208110156108d157600080fd5b5051925060009150506001600160701b0385168a900383116108f4576000610903565b89856001600160701b03160383035b9050600089856001600160701b031603831161092057600061092f565b89856001600160701b03160383035b905060008211806109405750600081115b61097b5760405162461bcd60e51b81526004018080602001828103825260228152602001806120f56022913960400191505060405180910390fd5b60006109af61099184600263ffffffff611a2416565b6109a3876103e863ffffffff611a2416565b9063ffffffff611a8716565b905060006109c761099184600263ffffffff611a2416565b90506109f8620f42406109ec6001600160701b038b8116908b1663ffffffff611a2416565b9063ffffffff611a2416565b610a08838363ffffffff611a2416565b1015610a48576040805162461bcd60e51b815260206004820152600a60248201526950616e63616b653a204b60b01b604482015290519081900360640190fd5b5050610a5684848888611ad7565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600b81526020016a50616e63616b65204c507360a81b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b1a338484611c8c565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bbe576001600160a01b0384166000908152600260209081526040808320338452909152902054610b99908363ffffffff611a8716565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610bc9848484611cee565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c56576040805162461bcd60e51b81526020600482015260126024820152712830b731b0b5b29d102327a92124a22222a760711b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610cdb576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c81905580610ceb610ae3565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d3f57600080fd5b505afa158015610d53573d6000803e3d6000fd5b505050506040513d6020811015610d6957600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dbc57600080fd5b505afa158015610dd0573d6000803e3d6000fd5b505050506040513d6020811015610de657600080fd5b505190506000610e05836001600160701b03871663ffffffff611a8716565b90506000610e22836001600160701b03871663ffffffff611a8716565b90506000610e308787611d96565b60005490915080610e6d57610e596103e86109a3610e54878763ffffffff611a2416565b611ef4565b9850610e6860006103e8611f46565b610ebc565b610eb96001600160701b038916610e8a868463ffffffff611a2416565b81610e9157fe5b046001600160701b038916610eac868563ffffffff611a2416565b81610eb357fe5b04611fca565b98505b60008911610efb5760405162461bcd60e51b81526004018080602001828103825260268152602001806121806026913960400191505060405180910390fd5b610f058a8a611f46565b610f1186868a8a611ad7565b8115610f4157600854610f3d906001600160701b0380821691600160701b90041663ffffffff611a2416565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114611004576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c81905580611014610ae3565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561107057600080fd5b505afa158015611084573d6000803e3d6000fd5b505050506040513d602081101561109a57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d602081101561111257600080fd5b5051306000908152600160205260408120549192506111318888611d96565b60005490915080611148848763ffffffff611a2416565b8161114f57fe5b049a5080611163848663ffffffff611a2416565b8161116a57fe5b04995060008b11801561117d575060008a115b6111b85760405162461bcd60e51b81526004018080602001828103825260268152602001806121176026913960400191505060405180910390fd5b6111c23084611fe2565b6111cd878d8d611893565b6111d8868d8c611893565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561121e57600080fd5b505afa158015611232573d6000803e3d6000fd5b505050506040513d602081101561124857600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561129457600080fd5b505afa1580156112a8573d6000803e3d6000fd5b505050506040513d60208110156112be57600080fd5b505193506112ce85858b8b611ad7565b81156112fe576008546112fa906001600160701b0380821691600160701b90041663ffffffff611a2416565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b60405180604001604052806007815260200166043616b652d4c560cc1b81525081565b6000610b1a338484611cee565b6103e881565b600c546001146113db576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261148a9285928792611485926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561144d57600080fd5b505afa158015611461573d6000803e3d6000fd5b505050506040513d602081101561147757600080fd5b50519063ffffffff611a8716565b611893565b600854604080516370a0823160e01b815230600482015290516114f1928492879261148592600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b15801561144d57600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b42841015611561576040805162461bcd60e51b815260206004820152601060248201526f14185b98d85ad94e881156141254915160821b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa15801561167c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906116b25750886001600160a01b0316816001600160a01b0316145b611700576040805162461bcd60e51b815260206004820152601a60248201527950616e63616b653a20494e56414c49445f5349474e415455524560301b604482015290519081900360640190fd5b61170b898989611c8c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5460011461177c576040805162461bcd60e51b815260206004820152600f60248201526e14185b98d85ad94e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b8152306004820152905161188c926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156117cd57600080fd5b505afa1580156117e1573d6000803e3d6000fd5b505050506040513d60208110156117f757600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561184457600080fd5b505afa158015611858573d6000803e3d6000fd5b505050506040513d602081101561186e57600080fd5b50516008546001600160701b0380821691600160701b900416611ad7565b6001600c55565b60408051808201825260198152787472616e7366657228616464726573732c75696e743235362960381b60209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b6020831061193c5780518252601f19909201916020918201910161191d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461199e576040519150601f19603f3d011682016040523d82523d6000602084013e6119a3565b606091505b50915091508180156119d15750805115806119d157508080602001905160208110156119ce57600080fd5b50515b611a1d576040805162461bcd60e51b815260206004820152601860248201527714185b98d85ad94e881514905394d1915497d1905253115160421b604482015290519081900360640190fd5b5050505050565b6000811580611a3f57505080820282828281611a3c57fe5b04145b610b1e576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b1e576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611af557506001600160701b038311155b611b3a576040805162461bcd60e51b815260206004820152601160248201527050616e63616b653a204f564552464c4f5760781b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611b6a57506001600160701b03841615155b8015611b7e57506001600160701b03831615155b15611bef578063ffffffff16611bac85611b978661206e565b6001600160e01b03169063ffffffff61208016565b600980546001600160e01b03929092169290920201905563ffffffff8116611bd784611b978761206e565b600a80546001600160e01b0392909216929092020190555b600880546001600160701b0319166001600160701b0388811691909117600160701b600160e01b031916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611d17908263ffffffff611a8716565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611d4c908263ffffffff6120a516565b6001600160a01b03808416600081815260016020908152604091829020949094558051858152905191939287169260008051602061213d83398151915292918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611de757600080fd5b505afa158015611dfb573d6000803e3d6000fd5b505050506040513d6020811015611e1157600080fd5b5051600b546001600160a01b038216158015945091925090611ee0578015611edb576000611e54610e546001600160701b0388811690881663ffffffff611a2416565b90506000611e6183611ef4565b905080821115611ed8576000611e8f611e80848463ffffffff611a8716565b6000549063ffffffff611a2416565b90506000611eb483611ea886600363ffffffff611a2416565b9063ffffffff6120a516565b90506000818381611ec157fe5b0490508015611ed457611ed48782611f46565b5050505b50505b611eec565b8015611eec576000600b555b505092915050565b60006003821115611f37575080600160028204015b81811015611f3157809150600281828581611f2057fe5b040181611f2957fe5b049050611f09565b50611f41565b8115611f41575060015b919050565b600054611f59908263ffffffff6120a516565b60009081556001600160a01b038316815260016020526040902054611f84908263ffffffff6120a516565b6001600160a01b038316600081815260016020908152604080832094909455835185815293519293919260008051602061213d8339815191529281900390910190a35050565b6000818310611fd95781611fdb565b825b9392505050565b6001600160a01b03821660009081526001602052604090205461200b908263ffffffff611a8716565b6001600160a01b03831660009081526001602052604081209190915554612038908263ffffffff611a8716565b60009081556040805183815290516001600160a01b0385169160008051602061213d833981519152919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161209d57fe5b049392505050565b80820182811015610b1e576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe50616e63616b653a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4255524e4544ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef50616e63616b653a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582082d63502615ee1d8d2654f9dbbe00633c648597f2419f5919c9a5bd46e1de28c64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429

Deployed ByteCode Sourcemap

11086:9653:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11086:9653:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18271:1875;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;18271:1875:0;;;;;;;;-1:-1:-1;;;;;18271:1875:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;18271:1875:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18271:1875:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;18271:1875:0;;-1:-1:-1;18271:1875:0;-1:-1:-1;18271:1875:0;:::i;:::-;;4524:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4524:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12099:231;;;:::i;:::-;;;;-1:-1:-1;;;;;12099:231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6573:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6573:147:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11390:21;;;:::i;:::-;;;;-1:-1:-1;;;;;11390:21:0;;;;;;;;;;;;;;4664:24;;;:::i;:::-;;;;;;;;;;;;;;;;6875:301;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6875:301:0;;;;;;;;;;;;;;;;;:::i;4956:108::-;;;:::i;4622:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4813:31;;;:::i;13157:208::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13157:208:0;;;;;;;;;;:::i;11741:32::-;;;:::i;11780:::-;;;:::i;15345:1238::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15345:1238:0;-1:-1:-1;;;;;15345:1238:0;;:::i;4695:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4695:41:0;-1:-1:-1;;;;;4695:41:0;;:::i;11819:17::-;;;:::i;5071:38::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5071:38:0;-1:-1:-1;;;;;5071:38:0;;:::i;16695:1464::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16695:1464:0;-1:-1:-1;;;;;16695:1464:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4574:41;;;:::i;6728:139::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6728:139:0;;;;;;;;:::i;11211:46::-;;;:::i;20195:334::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20195:334:0;-1:-1:-1;;;;;20195:334:0;;:::i;11361:22::-;;;:::i;11418:21::-;;;:::i;7184:670::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;7184:670:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4743:61::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4743:61:0;;;;;;;;;;:::i;20578:158::-;;;:::i;18271:1875::-;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;18385:14;;;;:32;;;18416:1;18403:10;:14;18385:32;18377:80;;;;-1:-1:-1;;;18377:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18469:17;18488;18510:13;:11;:13::i;:::-;18468:55;;;;;18570:9;-1:-1:-1;;;;;18557:22:0;:10;:22;:48;;;;;18596:9;-1:-1:-1;;;;;18583:22:0;:10;:22;18557:48;18549:92;;;;;-1:-1:-1;;;18549:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18786:6;;18821;;18654:13;;;;-1:-1:-1;;;;;18786:6:0;;;;18821;;;;18846:13;;;;;;;:30;;;18869:7;-1:-1:-1;;;;;18863:13:0;:2;-1:-1:-1;;;;;18863:13:0;;;18846:30;18838:62;;;;;-1:-1:-1;;;18838:62:0;;;;;;;;;;;;-1:-1:-1;;;18838:62:0;;;;;;;;;;;;;;;18915:14;;18911:58;;18931:38;18945:7;18954:2;18958:10;18931:13;:38::i;:::-;19018:14;;19014:58;;19034:38;19048:7;19057:2;19061:10;19034:13;:38::i;:::-;19121:15;;19117:93;;19153:2;-1:-1:-1;;;;;19138:30:0;;19169:10;19181;19193;19205:4;;19138:72;;;;;;;;;;;;;-1:-1:-1;;;;;19138:72:0;-1:-1:-1;;;;;19138:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19138:72:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19138:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19138:72:0;;;;19117:93;19232:40;;;-1:-1:-1;;;19232:40:0;;19266:4;19232:40;;;;;;-1:-1:-1;;;;;19232:25:0;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;19232:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19232:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19232:40:0;19294;;;-1:-1:-1;;;19294:40:0;;19328:4;19294:40;;;;;;19232;;-1:-1:-1;;;;;;19294:25:0;;;;;:40;;;;;19232;;19294;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;19294:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19294:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19294:40:0;;-1:-1:-1;19356:14:0;;-1:-1:-1;;;;;;;19384:22:0;;;;;19373:33;;:75;;19447:1;19373:75;;;19433:10;19421:9;-1:-1:-1;;;;;19421:22:0;;19409:8;:35;19373:75;19356:92;;19459:14;19499:10;19487:9;-1:-1:-1;;;;;19487:22:0;;19476:8;:33;:75;;19550:1;19476:75;;;19536:10;19524:9;-1:-1:-1;;;;;19524:22:0;;19512:8;:35;19476:75;19459:92;;19582:1;19570:9;:13;:30;;;;19599:1;19587:9;:13;19570:30;19562:77;;;;-1:-1:-1;;;19562:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19725:21;19749:40;19772:16;:9;19786:1;19772:16;:13;:16;:::i;:::-;19749:18;:8;19762:4;19749:18;:12;:18;:::i;:::-;:22;:40;:22;:40;:::i;:::-;19725:64;-1:-1:-1;19800:21:0;19824:40;19847:16;:9;19861:1;19847:16;:13;:16;:::i;19824:40::-;19800:64;-1:-1:-1;19925:43:0;19960:7;19925:30;-1:-1:-1;;;;;19925:15:0;;;;:30;;;:19;:30;:::i;:::-;:34;:43;:34;:43;:::i;:::-;19883:38;:16;19904;19883:38;:20;:38;:::i;:::-;:85;;19875:108;;;;;-1:-1:-1;;;19875:108:0;;;;;;;;;;;;-1:-1:-1;;;19875:108:0;;;;;;;;;;;;;;;12059:1;;20007:49;20015:8;20025;20035:9;20046;20007:7;:49::i;:::-;20072:66;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20072:66:0;;;20077:10;;20072:66;;;;;;;;;-1:-1:-1;;12082:1:0;12071:8;:12;-1:-1:-1;;;;;;;;;18271:1875:0:o;4524:43::-;;;;;;;;;;;;;;-1:-1:-1;;;4524:43:0;;;;:::o;12099:231::-;12232:8;;-1:-1:-1;;;;;12232:8:0;;;;-1:-1:-1;;;12263:8:0;;;;;;-1:-1:-1;;;12304:18:0;;;;;12099:231::o;6573:147::-;6637:4;6654:36;6663:10;6675:7;6684:5;6654:8;:36::i;:::-;-1:-1:-1;6708:4:0;6573:147;;;;;:::o;11390:21::-;;;-1:-1:-1;;;;;11390:21:0;;:::o;4664:24::-;;;;:::o;6875:301::-;-1:-1:-1;;;;;6974:15:0;;6953:4;6974:15;;;:9;:15;;;;;;;;6990:10;6974:27;;;;;;;;-1:-1:-1;;6974:39:0;6970:140;;-1:-1:-1;;;;;7060:15:0;;;;;;:9;:15;;;;;;;;7076:10;7060:27;;;;;;;;:38;;7092:5;7060:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;7030:15:0;;;;;;:9;:15;;;;;;;;7046:10;7030:27;;;;;;;:68;6970:140;7120:26;7130:4;7136:2;7140:5;7120:9;:26::i;:::-;-1:-1:-1;7164:4:0;6875:301;;;;;:::o;4956:108::-;4998:66;4956:108;:::o;4622:35::-;4655:2;4622:35;:::o;4813:31::-;;;;:::o;13157:208::-;13253:7;;-1:-1:-1;;;;;13253:7:0;13239:10;:21;13231:52;;;;;-1:-1:-1;;;13231:52:0;;;;;;;;;;;;-1:-1:-1;;;13231:52:0;;;;;;;;;;;;;;;13314:6;:16;;-1:-1:-1;;;;;13314:16:0;;;-1:-1:-1;;;;;;13314:16:0;;;;;;;13341:6;:16;;;;;;;;;;;13157:208::o;11741:32::-;;;;:::o;11780:::-;;;;:::o;15345:1238::-;15394:14;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;;;12047:1;15463:13;:11;:13::i;:::-;-1:-1:-1;15525:6:0;;15518:39;;;-1:-1:-1;;;15518:39:0;;15551:4;15518:39;;;;;;15421:55;;-1:-1:-1;15421:55:0;;-1:-1:-1;15502:13:0;;-1:-1:-1;;;;;15525:6:0;;;;15518:24;;:39;;;;;;;;;;;;;;15525:6;15518:39;;;5:2:-1;;;;30:1;27;20:12;5:2;15518:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15518:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15518:39:0;15591:6;;15584:39;;;-1:-1:-1;;;15584:39:0;;15617:4;15584:39;;;;;;15518;;-1:-1:-1;15568:13:0;;-1:-1:-1;;;;;15591:6:0;;;;15584:24;;:39;;;;;15518;;15584;;;;;;;;15591:6;15584:39;;;5:2:-1;;;;30:1;27;20:12;5:2;15584:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15584:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15584:39:0;;-1:-1:-1;15634:12:0;15649:23;:8;-1:-1:-1;;;;;15649:23:0;;;:12;:23;:::i;:::-;15634:38;-1:-1:-1;15683:12:0;15698:23;:8;-1:-1:-1;;;;;15698:23:0;;;:12;:23;:::i;:::-;15683:38;;15734:10;15747:30;15756:9;15767;15747:8;:30::i;:::-;15788:17;15808:11;15734:43;;-1:-1:-1;15912:17:0;15908:352;;15958:54;11252:5;15958:31;15968:20;:7;15980;15968:20;:11;:20;:::i;:::-;15958:9;:31::i;:54::-;15946:66;;16026:36;16040:1;11252:5;16026;:36::i;:::-;15908:352;;;16162:86;-1:-1:-1;;;;;16171:37:0;;:25;:7;16183:12;16171:25;:11;:25;:::i;:::-;:37;;;;;;-1:-1:-1;;;;;16210:37:0;;:25;:7;16222:12;16210:25;:11;:25;:::i;:::-;:37;;;;;;16162:8;:86::i;:::-;16150:98;;15908:352;16290:1;16278:9;:13;16270:64;;;;-1:-1:-1;;;16270:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16345:20;16351:2;16355:9;16345:5;:20::i;:::-;16378:49;16386:8;16396;16406:9;16417;16378:7;:49::i;:::-;16442:5;16438:47;;;16476:8;;16457:28;;-1:-1:-1;;;;;16462:8:0;;;;-1:-1:-1;;;16476:8:0;;;16457:28;:18;:28;:::i;:::-;16449:5;:36;16438:47;16541:34;;;;;;;;;;;;;;16546:10;;16541:34;;;;;;;;-1:-1:-1;;12082:1:0;12071:8;:12;-1:-1:-1;15345:1238:0;;;-1:-1:-1;;;;;;15345:1238:0:o;4695:41::-;;;;;;;;;;;;;:::o;11819:17::-;;;;:::o;5071:38::-;;;;;;;;;;;;;:::o;16695:1464::-;16744:12;16758;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;;;12047:1;16825:13;:11;:13::i;:::-;-1:-1:-1;16882:6:0;;16963;;17042:40;;;-1:-1:-1;;;17042:40:0;;17076:4;17042:40;;;;;;16783:55;;-1:-1:-1;16783:55:0;;-1:-1:-1;;;;;;16882:6:0;;;;16963;;;16864:15;;16882:6;;17042:25;;:40;;;;;;;;;;;;;;16882:6;17042:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17042:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17042:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17042:40:0;17109;;;-1:-1:-1;;;17109:40:0;;17143:4;17109:40;;;;;;17042;;-1:-1:-1;17093:13:0;;-1:-1:-1;;;;;17109:25:0;;;;;:40;;;;;17042;;17109;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17109:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17109:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17109:40:0;17195:4;17160:14;17177:24;;;:9;17109:40;17177:24;;;;;17109:40;;-1:-1:-1;17227:30:0;17236:9;17247;17227:8;:30::i;:::-;17268:17;17288:11;17214:43;;-1:-1:-1;17288:11:0;17398:23;:9;17412:8;17398:23;:13;:23;:::i;:::-;:38;;;;;;;-1:-1:-1;17531:12:0;17505:23;:9;17519:8;17505:23;:13;:23;:::i;:::-;:38;;;;;;17495:48;;17620:1;17610:7;:11;:26;;;;;17635:1;17625:7;:11;17610:26;17602:77;;;;-1:-1:-1;;;17602:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17690:31;17704:4;17711:9;17690:5;:31::i;:::-;17732:35;17746:7;17755:2;17759:7;17732:13;:35::i;:::-;17778;17792:7;17801:2;17805:7;17778:13;:35::i;:::-;17835:40;;;-1:-1:-1;;;17835:40:0;;17869:4;17835:40;;;;;;-1:-1:-1;;;;;17835:25:0;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17835:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17835:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17835:40:0;17897;;;-1:-1:-1;;;17897:40:0;;17931:4;17897:40;;;;;;17835;;-1:-1:-1;;;;;;17897:25:0;;;;;:40;;;;;17835;;17897;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17897:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17897:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17897:40:0;;-1:-1:-1;17950:49:0;17958:8;17897:40;17978:9;17989;17950:7;:49::i;:::-;18014:5;18010:47;;;18048:8;;18029:28;;-1:-1:-1;;;;;18034:8:0;;;;-1:-1:-1;;;18048:8:0;;;18029:28;:18;:28;:::i;:::-;18021:5;:36;18010:47;18113:38;;;;;;;;;;;;;;-1:-1:-1;;;;;18113:38:0;;;18118:10;;18113:38;;;;;;;;;;;12059:1;;;;;;;;;12082;12071:8;:12;;;;16695:1464;;;:::o;4574:41::-;;;;;;;;;;;;;;-1:-1:-1;;;4574:41:0;;;;:::o;6728:139::-;6788:4;6805:32;6815:10;6827:2;6831:5;6805:9;:32::i;11211:46::-;11252:5;11211:46;:::o;20195:334::-;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;20264:6;;20314;;20418:8;;20373:40;;;-1:-1:-1;;;20373:40:0;;20407:4;20373:40;;;;;;-1:-1:-1;;;;;20264:6:0;;;;20314;;;;20346:82;;20264:6;;20369:2;;20373:54;;-1:-1:-1;;;;;20418:8:0;;20264:6;;20373:25;;:40;;;;;;;;;;;;;;;20264:6;20373:40;;;5:2:-1;;;;30:1;27;20:12;5:2;20373:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20373:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20373:40:0;;:54;:44;:54;:::i;:::-;20346:13;:82::i;:::-;20511:8;;20466:40;;;-1:-1:-1;;;20466:40:0;;20500:4;20466:40;;;;;;20439:82;;20453:7;;20462:2;;20466:54;;-1:-1:-1;;;20511:8:0;;-1:-1:-1;;;;;20511:8:0;;-1:-1:-1;;;;;20466:25:0;;;;;:40;;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;20439:82:0;-1:-1:-1;;12082:1:0;12071:8;:12;-1:-1:-1;20195:334:0:o;11361:22::-;;;-1:-1:-1;;;;;11361:22:0;;:::o;11418:21::-;;;-1:-1:-1;;;;;11418:21:0;;:::o;7184:670::-;7330:15;7318:8;:27;;7310:56;;;;;-1:-1:-1;;;7310:56:0;;;;;;;;;;;;-1:-1:-1;;;7310:56:0;;;;;;;;;;;;;;;7482:16;;-1:-1:-1;;;;;7578:13:0;;;7377:14;7578:13;;;:6;:13;;;;;;;;:15;;;;;;;;;7527:77;;4998:66;7527:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7527:77:0;;;;;7517:88;;;;;;-1:-1:-1;;;7418:202:0;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7418:202:0;;;;;;7394:237;;;;;;;;;7669:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7377:14;;7578:15;7669:26;;;;;-1:-1:-1;;7669:26:0;;;;;;;;;;7578:15;7669:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7669:26:0;;-1:-1:-1;;7669:26:0;;;-1:-1:-1;;;;;;;7714:30:0;;;;;;:59;;;7768:5;-1:-1:-1;;;;;7748:25:0;:16;-1:-1:-1;;;;;7748:25:0;;7714:59;7706:98;;;;;-1:-1:-1;;;7706:98:0;;;;;;;;;;;;-1:-1:-1;;;7706:98:0;;;;;;;;;;;;;;;7815:31;7824:5;7831:7;7840:5;7815:8;:31::i;:::-;7184:670;;;;;;;;;:::o;4743:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;20578:158::-;11992:8;;12004:1;11992:13;11984:41;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;-1:-1:-1;;;11984:41:0;;;;;;;;;;;;;;;12047:1;12036:8;:12;20634:6;;20627:39;;;-1:-1:-1;;;20627:39:0;;20660:4;20627:39;;;;;;20619:109;;-1:-1:-1;;;;;20634:6:0;;20627:24;;:39;;;;;;;;;;;;;;20634:6;20627:39;;;5:2:-1;;;;30:1;27;20:12;5:2;20627:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20627:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20627:39:0;20675:6;;20668:39;;;-1:-1:-1;;;20668:39:0;;20701:4;20668:39;;;;;;-1:-1:-1;;;;;20675:6:0;;;;20668:24;;:39;;;;;20627;;20668;;;;;;;;20675:6;20668:39;;;5:2:-1;;;;30:1;27;20:12;5:2;20668:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20668:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20668:39:0;20709:8;;-1:-1:-1;;;;;20709:8:0;;;;-1:-1:-1;;;20719:8:0;;;20619:7;:109::i;:::-;12082:1;12071:8;:12;20578:158::o;12338:285::-;11316:34;;;;;;;;;;;-1:-1:-1;;;11316:34:0;;;;;12466:43;;-1:-1:-1;;;;;12466:43:0;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;12466:43:0;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;12455:55:0;;;;12420:12;;12434:17;;12455:10;;;12466:43;12455:55;;;25:18:-1;12455:55:0;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;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;;;12455:55:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;12419:91:0;;;;12529:7;:57;;;;-1:-1:-1;12541:11:0;;:16;;:44;;;12572:4;12561:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12561:24:0;12541:44;12521:94;;;;;-1:-1:-1;;;12521:94:0;;;;;;;;;;;;-1:-1:-1;;;12521:94:0;;;;;;;;;;;;;;;12338:285;;;;;:::o;4226:142::-;4278:6;4305;;;:30;;-1:-1:-1;;4320:5:0;;;4334:1;4329;4320:5;4329:1;4315:15;;;;;:20;4305:30;4297:63;;;;;-1:-1:-1;;;4297:63:0;;;;;;;;;;;;-1:-1:-1;;;4297:63:0;;;;;;;;;;;;;;4089:129;4173:5;;;4168:16;;;;4160:50;;;;;-1:-1:-1;;;4160:50:0;;;;;;;;;;;;-1:-1:-1;;;4160:50:0;;;;;;;;;;;;;;13450:858;-1:-1:-1;;;;;13562:23:0;;;;;:50;;-1:-1:-1;;;;;;13589:23:0;;;13562:50;13554:80;;;;;-1:-1:-1;;;13554:80:0;;;;;;;;;;;;-1:-1:-1;;;13554:80:0;;;;;;;;;;;;;;;13749:18;;13676:23;:15;:23;;;-1:-1:-1;;;13749:18:0;;;;13732:35;;;13805:15;;;;;;:33;;-1:-1:-1;;;;;;13824:14:0;;;;13805:33;:51;;;;-1:-1:-1;;;;;;13842:14:0;;;;13805:51;13801:336;;;14011:11;13958:64;;13963:44;13997:9;13963:27;13980:9;13963:16;:27::i;:::-;-1:-1:-1;;;;;13963:33:0;;:44;:33;:44;:::i;:::-;13934:20;:88;;-1:-1:-1;;;;;13958:50:0;;;;:64;;;;13934:88;;;14061:64;;;14066:44;14100:9;14066:27;14083:9;14066:16;:27::i;:44::-;14037:20;:88;;-1:-1:-1;;;;;14061:50:0;;;;:64;;;;14037:88;;;13801:336;14147:8;:28;;-1:-1:-1;;;;;;14147:28:0;-1:-1:-1;;;;;14147:28:0;;;;;;;-1:-1:-1;;;;;;;;14186:28:0;-1:-1:-1;;;14186:28:0;;;;;;;;;-1:-1:-1;;;;;14225:35:0;-1:-1:-1;;;14225:35:0;;;;;;;;;14276:24;;;14281:8;;;14276:24;;14291:8;;;;;;;14276:24;;;;;;;;;;;;;;;;;13450:858;;;;;;:::o;6168:169::-;-1:-1:-1;;;;;6249:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;6298:31;;;;;;;;;;;;;;;;;6168:169;;;:::o;6345:220::-;-1:-1:-1;;;;;6439:15:0;;;;;;:9;:15;;;;;;:26;;6459:5;6439:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;6421:15:0;;;;;;;:9;:15;;;;;;:44;;;;6492:13;;;;;;;:24;;6510:5;6492:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;6476:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;6532:25;;;;;;;6476:13;;6532:25;;;;-1:-1:-1;;;;;;;;;;;6532:25:0;;;;;;;;6345:220;;;:::o;14398:835::-;14471:10;14494:13;14526:7;;;;;;;;;-1:-1:-1;;;;;14526:7:0;-1:-1:-1;;;;;14510:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14510:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14510:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14510:32:0;14605:5;;-1:-1:-1;;;;;14561:19:0;;;;;;-1:-1:-1;14510:32:0;;-1:-1:-1;14605:5:0;14636:590;;14666:11;;14662:494;;14698:10;14711:41;14721:30;-1:-1:-1;;;;;14721:15:0;;;;:30;;;:19;:30;:::i;14711:41::-;14698:54;;14771:14;14788:17;14798:6;14788:9;:17::i;:::-;14771:34;;14836:9;14828:5;:17;14824:317;;;14870:14;14887:37;14903:20;:5;14913:9;14903:20;:9;:20;:::i;:::-;14887:11;;;:37;:15;:37;:::i;:::-;14870:54;-1:-1:-1;14947:16:0;14966:27;14983:9;14966:12;:5;14976:1;14966:12;:9;:12;:::i;:::-;:16;:27;:16;:27;:::i;:::-;14947:46;;15016:14;15045:11;15033:9;:23;;;;;;;-1:-1:-1;15083:13:0;;15079:42;;15098:23;15104:5;15111:9;15098:5;:23::i;:::-;14824:317;;;;14662:494;;;14636:590;;;15177:11;;15173:53;;15213:1;15205:5;:9;15173:53;14398:835;;;;;;:::o;8219:303::-;8264:6;8291:1;8287;:5;8283:232;;;-1:-1:-1;8313:1:0;8346;8342;8338:5;;:9;8362:92;8373:1;8369;:5;8362:92;;;8399:1;8395:5;;8437:1;8432;8428;8424;:5;;;;;;:9;8423:15;;;;;;8419:19;;8362:92;;;8283:232;;;;8475:6;;8471:44;;-1:-1:-1;8502:1:0;8471:44;8219:303;;;:::o;5742:201::-;5815:11;;:22;;5831:5;5815:22;:15;:22;:::i;:::-;5801:11;:36;;;-1:-1:-1;;;;;5864:13:0;;;;:9;:13;;;;;;:24;;5882:5;5864:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5848:13:0;;;;;;:9;:13;;;;;;;;:40;;;;5904:31;;;;;;;5848:13;;;;-1:-1:-1;;;;;;;;;;;5904:31:0;;;;;;;;;5742:201;;:::o;8005:96::-;8057:6;8084:1;8080;:5;:13;;8092:1;8080:13;;;8088:1;8080:13;8076:17;8005:96;-1:-1:-1;;;8005:96:0:o;5951:209::-;-1:-1:-1;;;;;6030:15:0;;;;;;:9;:15;;;;;;:26;;6050:5;6030:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;6012:15:0;;;;;;:9;:15;;;;;:44;;;;6081:11;:22;;6097:5;6081:22;:15;:22;:::i;:::-;6067:11;:36;;;6119:33;;;;;;;;-1:-1:-1;;;;;6119:33:0;;;-1:-1:-1;;;;;;;;;;;6119:33:0;;;;;;;;;5951:209;;:::o;8869:120::-;-1:-1:-1;;;;;8945:10:0;-1:-1:-1;;;8945:17:0;;8869:120::o;9060:108::-;9120:9;-1:-1:-1;;;;;9150:10:0;;-1:-1:-1;;;;;9146:14:0;;9150:10;9146:14;;;;;;9060:108;-1:-1:-1;;;9060:108:0:o;3953:128::-;4037:5;;;4032:16;;;;4024:49;;;;;-1:-1:-1;;;4024:49:0;;;;;;;;;;;;-1:-1:-1;;;4024:49:0;;;;;;;;;;;;;

Swarm Source

bzzr://82d63502615ee1d8d2654f9dbbe00633c648597f2419f5919c9a5bd46e1de28c
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.