Contract 0xbd67d157502a23309db761c41965600c2ec788b2 5

 

Contract Overview

Just Liquidity: Router
Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x79efd788259011d175bb20404573a19b3ac52ca642f2eef699a56fdee1eef8feSwap Tokens For ...111611112021-09-23 9:20:392 mins ago0x719243173d285614dd6b3c13bba2a38463253a81 IN  Just Liquidity: Router0 BNB0.00064271
0x6a6565ab613ed0d8b70e8e861c22a8d9487d72bbcd75b516b2945a7e408a60fdSwap Exact BNB F...111611082021-09-23 9:20:283 mins ago0xb8c3405905f02c9c67a5129d23303202f53c239b IN  Just Liquidity: Router0.287356 BNB0.000606287
0x4a8f3a625b449605bfcb1837d28446e60a9079eaed89c720a9f205812a677b12Swap Exact BNB F...111611042021-09-23 9:20:163 mins ago0xb8c3405905f02c9c67a5129d23303202f53c239b IN  Just Liquidity: Router0.2180045 BNB0.000606221
0xf9b9aa48f3f4d57d92a3803fb92cfb419e21614d338830f303999695031aa180Swap Exact BNB F...111611012021-09-23 9:20:053 mins ago0xb8c3405905f02c9c67a5129d23303202f53c239b IN  Just Liquidity: Router0.257705 BNB0.000606221
0xe060ce6832daf96a90e235911c1733df5557bf901b234f013f4ddb58335ee8e6Swap Exact BNB F...111610972021-09-23 9:19:533 mins ago0xb8c3405905f02c9c67a5129d23303202f53c239b IN  Just Liquidity: Router0.277505499999999 BNB0.000606287
0x239536b8eb5442d7a558c580c5553b72cbf4fb876efd96b930c9a44e5e96b64dSwap Exact Token...111610302021-09-23 9:16:317 mins ago0xea61b1f6ce485ecfaac90b63711bd2f1217e5dfc IN  Just Liquidity: Router0 BNB0.000567405
0x8bce152058ada04f6a64b9cd40153a4a85ac53b3fc9c32c2d7cfe473474cfde1Swap Exact Token...111610262021-09-23 9:16:197 mins ago0xe21101c520e40a85fcea5153b1359a1c7729c9ca IN  Just Liquidity: Router0 BNB0.0007603398
0x27b8ebe4f22242665b7c34cf82c15094c44d247a48e1132a159f527e212a8644Swap Exact Token...111609162021-09-23 9:10:2213 mins ago0x4575be42000978dbdeba8e72481c86f762df8152 IN  Just Liquidity: Router0 BNB0.000627605
0x228abc2255b34797ff99f9e0b3efdf5a7bf1ec4f2aee3bc3223564200f6bb2b2Swap Exact BNB F...111609022021-09-23 9:09:3514 mins ago0xb8c3405905f02c9c67a5129d23303202f53c239b IN  Just Liquidity: Router0.2180045 BNB0.000606221
0x9258e5efcd2cb516efd0fe5bb813d9f98eec578d1bb23092d8ac801cf682b640Swap Exact BNB F...111608982021-09-23 9:09:2214 mins ago0xaa94c06df57a72411d559b700c5b3c59335bb313 IN  Just Liquidity: Router0.21824 BNB0.000606155
0x5974ffec956dd77f5112957cc6fb42b6e69cfd30cc085e18856f153ced4ef436Swap Exact Token...111606392021-09-23 8:55:3927 mins ago0x9c1094d47a359fafde49168ab489c0a74fa24532 IN  Just Liquidity: Router0 BNB0.000567405
0xb2faeb738cf5a36f6a626469746fb746e077b307bc4cf7b86e49b9b40dbc357dSwap Exact BNB F...111606162021-09-23 8:54:3029 mins ago0xb8c3405905f02c9c67a5129d23303202f53c239b IN  Just Liquidity: Router0.267555499999999 BNB0.000606221
0x5d1062fddb730125dbad5121b7eb3c100cc5a26cca9dd536b11adbcdd1d478c3Swap BNB For Exa...111606112021-09-23 8:54:1529 mins ago0xe0e589ed010acc32782d25a22ccc357546b37299 IN  Just Liquidity: Router0.033141375266354 BNB0.00069814
0x32a32f13973e17646bfc01953c8170b9fb0c908d7b46b6915169f0d39963637dAdd Liquidity BN...111606092021-09-23 8:54:0929 mins ago0x4f1766f9fdc0307c0ca01171836139ab7a6a3111 IN  Just Liquidity: Router0.056439919365154 BNB0.00092533
0x4fb27655e09a5d5a96cc64b9955e0496f1d71e90e8f6a18b58125e16837dc9e4Swap Exact Token...111605902021-09-23 8:53:1230 mins ago0x4f1766f9fdc0307c0ca01171836139ab7a6a3111 IN  Just Liquidity: Router0 BNB0.000643355
0xa8722e34503b9d2ffe03d7b7d8e3d9e3e9076b242d1d43583c377e9c1076400dSwap BNB For Exa...111605792021-09-23 8:52:3930 mins ago0x5590ad2d91e99b31e7b2b84f3cd70eb4e281136e IN  Just Liquidity: Router0.585875951199498 BNB0.000665965
0xdfb8c2a31f1a685a3b929adda3e60615e7928fca4daa6aecaba788e8777f37fbSwap BNB For Exa...111605152021-09-23 8:49:2734 mins ago0x7c3a486e90843cc9b065b96f9d280b391870807a IN  Just Liquidity: Router0.022735894331532 BNB0.000590905
0x6ae8ca6e235ef21e838970e69e60a9262396907d9edb58bef3fa1e3c591c14ccSwap Exact BNB F...111604952021-09-23 8:48:2735 mins ago0xb8c3405905f02c9c67a5129d23303202f53c239b IN  Just Liquidity: Router0.2279545 BNB0.000606221
0x90d50231229d3c986f767393377d6e4cbf8ee3345b4c343d1cda99ab68cd2886Swap Exact BNB F...111604672021-09-23 8:47:0336 mins ago0xa0397a58ed1e1c0dde4fec671ecc1c4f7bc2e2d5 IN  Just Liquidity: Router0.18867 BNB0.000606221
0x427b4622d722e4ff64cb6a5655424b8773d07aac91b833c0cb5bb4e368aa4f47Swap Exact Token...111604412021-09-23 8:45:4537 mins ago0xbb172929361814c2db23ec34bbd491eb3779cd29 IN  Just Liquidity: Router0 BNB0.000642225
0xb4044cd91af67be20bb0fdf781c63a9da1c858d6f15c132954238cf678952c5eSwap Exact BNB F...111604362021-09-23 8:45:3038 mins ago0xcc031a8e48d55233c76418843416109dbd41fba4 IN  Just Liquidity: Router0.83332252 BNB0.00055123
0xe0e1103a2e4a4c9a9e4b0ba4af71ee3c785804caaddfc55d309e8c37bac6b494Swap Exact BNB F...111604132021-09-23 8:44:2139 mins ago0xa0397a58ed1e1c0dde4fec671ecc1c4f7bc2e2d5 IN  Just Liquidity: Router0.18867 BNB0.000606221
0x0a8b6fdb7869e3ec2839aa26073a9ddc2591b9b94e48a1773e5e530d0eb6f297Swap Exact BNB F...111604042021-09-23 8:43:5439 mins ago0xaa94c06df57a72411d559b700c5b3c59335bb313 IN  Just Liquidity: Router0.28768 BNB0.000606287
0x8bf832a3c5298b2844baa07572ad38d1a2affaa5fbfbe43c19635980fdd6f2c6Swap Exact Token...111604002021-09-23 8:43:4239 mins ago0x4d2ba2528e03cc4a46cc7ce362afcb27a20a2567 IN  Just Liquidity: Router0 BNB0.0005787531
0x976c92c122dd2ea192e491682a9cee976a4ac6c67b8483a95fb5ea6735ed70b0Swap Exact BNB F...111603892021-09-23 8:43:0940 mins ago0x20a9435bd2d3804e90a07d26eeb7fbaba344e20d IN  Just Liquidity: Router0.55 BNB0.00062623
[ Download CSV Export 

OVERVIEW

JulSwap offers the same trading engine and analytics as Uniswap and some additional features from Sushiswap.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x79efd788259011d175bb20404573a19b3ac52ca642f2eef699a56fdee1eef8fe111611112021-09-23 9:20:392 mins ago Just Liquidity: Router0x719243173d285614dd6b3c13bba2a38463253a811 BNB
0x79efd788259011d175bb20404573a19b3ac52ca642f2eef699a56fdee1eef8fe111611112021-09-23 9:20:392 mins ago Binance: WBNB Token Just Liquidity: Router1 BNB
0x6a6565ab613ed0d8b70e8e861c22a8d9487d72bbcd75b516b2945a7e408a60fd111611082021-09-23 9:20:283 mins ago Just Liquidity: Router Binance: WBNB Token0.287356 BNB
0x4a8f3a625b449605bfcb1837d28446e60a9079eaed89c720a9f205812a677b12111611042021-09-23 9:20:163 mins ago Just Liquidity: Router Binance: WBNB Token0.2180045 BNB
0xf9b9aa48f3f4d57d92a3803fb92cfb419e21614d338830f303999695031aa180111611012021-09-23 9:20:053 mins ago Just Liquidity: Router Binance: WBNB Token0.257705 BNB
0xe060ce6832daf96a90e235911c1733df5557bf901b234f013f4ddb58335ee8e6111610972021-09-23 9:19:533 mins ago Just Liquidity: Router Binance: WBNB Token0.277505499999999968 BNB
0x239536b8eb5442d7a558c580c5553b72cbf4fb876efd96b930c9a44e5e96b64d111610302021-09-23 9:16:317 mins ago Just Liquidity: Router0xea61b1f6ce485ecfaac90b63711bd2f1217e5dfc0.136820047666960919 BNB
0x239536b8eb5442d7a558c580c5553b72cbf4fb876efd96b930c9a44e5e96b64d111610302021-09-23 9:16:317 mins ago Binance: WBNB Token Just Liquidity: Router0.136820047666960919 BNB
0x8bce152058ada04f6a64b9cd40153a4a85ac53b3fc9c32c2d7cfe473474cfde1111610262021-09-23 9:16:197 mins ago Just Liquidity: Router0xe21101c520e40a85fcea5153b1359a1c7729c9ca0.611392616466187619 BNB
0x8bce152058ada04f6a64b9cd40153a4a85ac53b3fc9c32c2d7cfe473474cfde1111610262021-09-23 9:16:197 mins ago Binance: WBNB Token Just Liquidity: Router0.611392616466187619 BNB
0x228abc2255b34797ff99f9e0b3efdf5a7bf1ec4f2aee3bc3223564200f6bb2b2111609022021-09-23 9:09:3514 mins ago Just Liquidity: Router Binance: WBNB Token0.2180045 BNB
0x9258e5efcd2cb516efd0fe5bb813d9f98eec578d1bb23092d8ac801cf682b640111608982021-09-23 9:09:2214 mins ago Just Liquidity: Router Binance: WBNB Token0.21824 BNB
0x5974ffec956dd77f5112957cc6fb42b6e69cfd30cc085e18856f153ced4ef436111606392021-09-23 8:55:3927 mins ago Just Liquidity: Router0x9c1094d47a359fafde49168ab489c0a74fa245320.202362954729921176 BNB
0x5974ffec956dd77f5112957cc6fb42b6e69cfd30cc085e18856f153ced4ef436111606392021-09-23 8:55:3927 mins ago Binance: WBNB Token Just Liquidity: Router0.202362954729921176 BNB
0xb2faeb738cf5a36f6a626469746fb746e077b307bc4cf7b86e49b9b40dbc357d111606162021-09-23 8:54:3029 mins ago Just Liquidity: Router Binance: WBNB Token0.267555499999999968 BNB
0x5d1062fddb730125dbad5121b7eb3c100cc5a26cca9dd536b11adbcdd1d478c3111606112021-09-23 8:54:1529 mins ago Just Liquidity: Router0xe0e589ed010acc32782d25a22ccc357546b372990.000164882464011712 BNB
0x5d1062fddb730125dbad5121b7eb3c100cc5a26cca9dd536b11adbcdd1d478c3111606112021-09-23 8:54:1529 mins ago Just Liquidity: Router Binance: WBNB Token0.032976492802342584 BNB
0x32a32f13973e17646bfc01953c8170b9fb0c908d7b46b6915169f0d39963637d111606092021-09-23 8:54:0929 mins ago Just Liquidity: Router Binance: WBNB Token0.056439919365154235 BNB
0x4fb27655e09a5d5a96cc64b9955e0496f1d71e90e8f6a18b58125e16837dc9e4111605902021-09-23 8:53:1230 mins ago Just Liquidity: Router0x4f1766f9fdc0307c0ca01171836139ab7a6a31110.054488419420483627 BNB
0x4fb27655e09a5d5a96cc64b9955e0496f1d71e90e8f6a18b58125e16837dc9e4111605902021-09-23 8:53:1230 mins ago Binance: WBNB Token Just Liquidity: Router0.054488419420483627 BNB
0xa8722e34503b9d2ffe03d7b7d8e3d9e3e9076b242d1d43583c377e9c1076400d111605792021-09-23 8:52:3930 mins ago Just Liquidity: Router0x5590ad2d91e99b31e7b2b84f3cd70eb4e281136e0.002914805727360688 BNB
0xa8722e34503b9d2ffe03d7b7d8e3d9e3e9076b242d1d43583c377e9c1076400d111605792021-09-23 8:52:3930 mins ago Just Liquidity: Router Binance: WBNB Token0.582961145472137728 BNB
0xdfb8c2a31f1a685a3b929adda3e60615e7928fca4daa6aecaba788e8777f37fb111605152021-09-23 8:49:2734 mins ago Just Liquidity: Router0x7c3a486e90843cc9b065b96f9d280b391870807a0.000113113902146927 BNB
0xdfb8c2a31f1a685a3b929adda3e60615e7928fca4daa6aecaba788e8777f37fb111605152021-09-23 8:49:2734 mins ago Just Liquidity: Router Binance: WBNB Token0.022622780429385426 BNB
0x6ae8ca6e235ef21e838970e69e60a9262396907d9edb58bef3fa1e3c591c14cc111604952021-09-23 8:48:2735 mins ago Just Liquidity: Router Binance: WBNB Token0.2279545 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BSCswapRouter

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2020-10-04
*/

// File: contracts/bscswap/interfaces/IBSCswapPair.sol

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity >=0.5.0;

interface IBSCswapPair {
    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/bscswap/libraries/SafeMath.sol

pragma solidity =0.6.12;

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

library SafeMathBSCswap {
    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/bscswap/libraries/BSCswapLibrary.sol

pragma solidity >=0.5.0;

library BSCswapLibrary {
    using SafeMathBSCswap for uint;

    // returns sorted token addresses, used to handle return values from pairs sorted in this order
    function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) {
        require(tokenA != tokenB, 'BSCswapLibrary: IDENTICAL_ADDRESSES');
        (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'BSCswapLibrary: ZERO_ADDRESS');
    }

    // calculates the CREATE2 address for a pair without making any external calls
    function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) {
        (address token0, address token1) = sortTokens(tokenA, tokenB);
        pair = address(uint(keccak256(abi.encodePacked(
                hex'ff',
                factory,
                keccak256(abi.encodePacked(token0, token1)),
                hex'b1e98e21a5335633815a8cfb3b580071c2e4561c50afd57a8746def9ed890b18' // init code hash
            ))));
    }

    // fetches and sorts the reserves for a pair
    function getReserves(address factory, address tokenA, address tokenB) internal view returns (uint reserveA, uint reserveB) {
        (address token0,) = sortTokens(tokenA, tokenB);
        (uint reserve0, uint reserve1,) = IBSCswapPair(pairFor(factory, tokenA, tokenB)).getReserves();
        (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0);
    }

    // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset
    function quote(uint amountA, uint reserveA, uint reserveB) internal pure returns (uint amountB) {
        require(amountA > 0, 'BSCswapLibrary: INSUFFICIENT_AMOUNT');
        require(reserveA > 0 && reserveB > 0, 'BSCswapLibrary: INSUFFICIENT_LIQUIDITY');
        amountB = amountA.mul(reserveB) / reserveA;
    }

    // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) internal pure returns (uint amountOut) {
        require(amountIn > 0, 'BSCswapLibrary: INSUFFICIENT_INPUT_AMOUNT');
        require(reserveIn > 0 && reserveOut > 0, 'BSCswapLibrary: INSUFFICIENT_LIQUIDITY');
        uint amountInWithFee = amountIn.mul(997);
        uint numerator = amountInWithFee.mul(reserveOut);
        uint denominator = reserveIn.mul(1000).add(amountInWithFee);
        amountOut = numerator / denominator;
    }

    // given an output amount of an asset and pair reserves, returns a required input amount of the other asset
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) internal pure returns (uint amountIn) {
        require(amountOut > 0, 'BSCswapLibrary: INSUFFICIENT_OUTPUT_AMOUNT');
        require(reserveIn > 0 && reserveOut > 0, 'BSCswapLibrary: INSUFFICIENT_LIQUIDITY');
        uint numerator = reserveIn.mul(amountOut).mul(1000);
        uint denominator = reserveOut.sub(amountOut).mul(997);
        amountIn = (numerator / denominator).add(1);
    }

    // performs chained getAmountOut calculations on any number of pairs
    function getAmountsOut(address factory, uint amountIn, address[] memory path) internal view returns (uint[] memory amounts) {
        require(path.length >= 2, 'BSCswapLibrary: INVALID_PATH');
        amounts = new uint[](path.length);
        amounts[0] = amountIn;
        for (uint i; i < path.length - 1; i++) {
            (uint reserveIn, uint reserveOut) = getReserves(factory, path[i], path[i + 1]);
            amounts[i + 1] = getAmountOut(amounts[i], reserveIn, reserveOut);
        }
    }

    // performs chained getAmountIn calculations on any number of pairs
    function getAmountsIn(address factory, uint amountOut, address[] memory path) internal view returns (uint[] memory amounts) {
        require(path.length >= 2, 'BSCswapLibrary: INVALID_PATH');
        amounts = new uint[](path.length);
        amounts[amounts.length - 1] = amountOut;
        for (uint i = path.length - 1; i > 0; i--) {
            (uint reserveIn, uint reserveOut) = getReserves(factory, path[i - 1], path[i]);
            amounts[i - 1] = getAmountIn(amounts[i], reserveIn, reserveOut);
        }
    }
}

// File: contracts/bscswap/libraries/TransferHelper.sol

pragma solidity >=0.6.0;

// helper methods for interacting with BEP20 tokens and sending BNB that do not consistently return true/false
library TransferHelper {
    function safeApprove(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');
    }

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

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

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

// File: contracts/bscswap/interfaces/IBSCswapRouter01.sol

pragma solidity >=0.6.2;

interface IBSCswapRouter01 {
    function factory() external pure returns (address);
    function WBNB() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityBNB(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountBNB, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityBNB(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountBNB);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityBNBWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountBNB);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactBNBForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactBNB(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForBNB(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapBNBForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

// File: contracts/bscswap/interfaces/IBSCswapRouter02.sol

pragma solidity >=0.6.2;


interface IBSCswapRouter02 is IBSCswapRouter01 {
    function removeLiquidityBNBSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline
    ) external returns (uint amountBNB);
    function removeLiquidityBNBWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountBNB);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactBNBForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForBNBSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

// File: contracts/bscswap/interfaces/IBSCswapFactory.sol

pragma solidity >=0.5.0;

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function migrator() 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;
    function setMigrator(address) external;
}

// File: contracts/bscswap/interfaces/IBEP20.sol

pragma solidity >=0.5.0;

interface IBEP20BSCswap {
    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/bscswap/interfaces/IWBNB.sol

pragma solidity >=0.5.0;

interface IWBNB {
    function deposit() external payable;
    function transfer(address to, uint value) external returns (bool);
    function withdraw(uint) external;
}

// File: contracts/bscswap/BSCswapRouter.sol

pragma solidity =0.6.12;

contract BSCswapRouter is IBSCswapRouter02 {
    using SafeMathBSCswap for uint;

    address public immutable override factory;
    address public immutable override WBNB;

    modifier ensure(uint deadline) {
        require(deadline >= block.timestamp, 'BSCswapRouter: EXPIRED');
        _;
    }

    constructor(address _factory, address _WBNB) public {
        factory = _factory;
        WBNB = _WBNB;
    }

    receive() external payable {
        assert(msg.sender == WBNB); // only accept BNB via fallback from the WBNB contract
    }

    // **** ADD LIQUIDITY ****
    function _addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin
    ) internal virtual returns (uint amountA, uint amountB) {
        // create the pair if it doesn't exist yet
        if (IBSCswapFactory(factory).getPair(tokenA, tokenB) == address(0)) {
            IBSCswapFactory(factory).createPair(tokenA, tokenB);
        }
        (uint reserveA, uint reserveB) = BSCswapLibrary.getReserves(factory, tokenA, tokenB);
        if (reserveA == 0 && reserveB == 0) {
            (amountA, amountB) = (amountADesired, amountBDesired);
        } else {
            uint amountBOptimal = BSCswapLibrary.quote(amountADesired, reserveA, reserveB);
            if (amountBOptimal <= amountBDesired) {
                require(amountBOptimal >= amountBMin, 'BSCswapRouter: INSUFFICIENT_B_AMOUNT');
                (amountA, amountB) = (amountADesired, amountBOptimal);
            } else {
                uint amountAOptimal = BSCswapLibrary.quote(amountBDesired, reserveB, reserveA);
                assert(amountAOptimal <= amountADesired);
                require(amountAOptimal >= amountAMin, 'BSCswapRouter: INSUFFICIENT_A_AMOUNT');
                (amountA, amountB) = (amountAOptimal, amountBDesired);
            }
        }
    }
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external virtual override ensure(deadline) returns (uint amountA, uint amountB, uint liquidity) {
        (amountA, amountB) = _addLiquidity(tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin);
        address pair = BSCswapLibrary.pairFor(factory, tokenA, tokenB);
        TransferHelper.safeTransferFrom(tokenA, msg.sender, pair, amountA);
        TransferHelper.safeTransferFrom(tokenB, msg.sender, pair, amountB);
        liquidity = IBSCswapPair(pair).mint(to);
    }
    function addLiquidityBNB(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline
    ) external virtual override payable ensure(deadline) returns (uint amountToken, uint amountBNB, uint liquidity) {
        (amountToken, amountBNB) = _addLiquidity(
            token,
            WBNB,
            amountTokenDesired,
            msg.value,
            amountTokenMin,
            amountBNBMin
        );
        address pair = BSCswapLibrary.pairFor(factory, token, WBNB);
        TransferHelper.safeTransferFrom(token, msg.sender, pair, amountToken);
        IWBNB(WBNB).deposit{value: amountBNB}();
        assert(IWBNB(WBNB).transfer(pair, amountBNB));
        liquidity = IBSCswapPair(pair).mint(to);
        // refund dust BNB, if any
        if (msg.value > amountBNB) TransferHelper.safeTransferBNB(msg.sender, msg.value - amountBNB);
    }

    // **** REMOVE LIQUIDITY ****
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) public virtual override ensure(deadline) returns (uint amountA, uint amountB) {
        address pair = BSCswapLibrary.pairFor(factory, tokenA, tokenB);
        IBSCswapPair(pair).transferFrom(msg.sender, pair, liquidity); // send liquidity to pair
        (uint amount0, uint amount1) = IBSCswapPair(pair).burn(to);
        (address token0,) = BSCswapLibrary.sortTokens(tokenA, tokenB);
        (amountA, amountB) = tokenA == token0 ? (amount0, amount1) : (amount1, amount0);
        require(amountA >= amountAMin, 'BSCswapRouter: INSUFFICIENT_A_AMOUNT');
        require(amountB >= amountBMin, 'BSCswapRouter: INSUFFICIENT_B_AMOUNT');
    }
    function removeLiquidityBNB(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline
    ) public virtual override ensure(deadline) returns (uint amountToken, uint amountBNB) {
        (amountToken, amountBNB) = removeLiquidity(
            token,
            WBNB,
            liquidity,
            amountTokenMin,
            amountBNBMin,
            address(this),
            deadline
        );
        TransferHelper.safeTransfer(token, to, amountToken);
        IWBNB(WBNB).withdraw(amountBNB);
        TransferHelper.safeTransferBNB(to, amountBNB);
    }
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external virtual override returns (uint amountA, uint amountB) {
        address pair = BSCswapLibrary.pairFor(factory, tokenA, tokenB);
        uint value = approveMax ? uint(-1) : liquidity;
        IBSCswapPair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);
        (amountA, amountB) = removeLiquidity(tokenA, tokenB, liquidity, amountAMin, amountBMin, to, deadline);
    }
    function removeLiquidityBNBWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external virtual override returns (uint amountToken, uint amountBNB) {
        address pair = BSCswapLibrary.pairFor(factory, token, WBNB);
        uint value = approveMax ? uint(-1) : liquidity;
        IBSCswapPair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);
        (amountToken, amountBNB) = removeLiquidityBNB(token, liquidity, amountTokenMin, amountBNBMin, to, deadline);
    }

    // **** REMOVE LIQUIDITY (supporting fee-on-transfer tokens) ****
    function removeLiquidityBNBSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline
    ) public virtual override ensure(deadline) returns (uint amountBNB) {
        (, amountBNB) = removeLiquidity(
            token,
            WBNB,
            liquidity,
            amountTokenMin,
            amountBNBMin,
            address(this),
            deadline
        );
        TransferHelper.safeTransfer(token, to, IBEP20BSCswap(token).balanceOf(address(this)));
        IWBNB(WBNB).withdraw(amountBNB);
        TransferHelper.safeTransferBNB(to, amountBNB);
    }
    function removeLiquidityBNBWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountBNBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external virtual override returns (uint amountBNB) {
        address pair = BSCswapLibrary.pairFor(factory, token, WBNB);
        uint value = approveMax ? uint(-1) : liquidity;
        IBSCswapPair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);
        amountBNB = removeLiquidityBNBSupportingFeeOnTransferTokens(
            token, liquidity, amountTokenMin, amountBNBMin, to, deadline
        );
    }

    // **** SWAP ****
    // requires the initial amount to have already been sent to the first pair
    function _swap(uint[] memory amounts, address[] memory path, address _to) internal virtual {
        for (uint i; i < path.length - 1; i++) {
            (address input, address output) = (path[i], path[i + 1]);
            (address token0,) = BSCswapLibrary.sortTokens(input, output);
            uint amountOut = amounts[i + 1];
            (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOut) : (amountOut, uint(0));
            address to = i < path.length - 2 ? BSCswapLibrary.pairFor(factory, output, path[i + 2]) : _to;
            IBSCswapPair(BSCswapLibrary.pairFor(factory, input, output)).swap(
                amount0Out, amount1Out, to, new bytes(0)
            );
        }
    }
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external virtual override ensure(deadline) returns (uint[] memory amounts) {
        amounts = BSCswapLibrary.getAmountsOut(factory, amountIn, path);
        require(amounts[amounts.length - 1] >= amountOutMin, 'BSCswapRouter: INSUFFICIENT_OUTPUT_AMOUNT');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, BSCswapLibrary.pairFor(factory, path[0], path[1]), amounts[0]
        );
        _swap(amounts, path, to);
    }
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external virtual override ensure(deadline) returns (uint[] memory amounts) {
        amounts = BSCswapLibrary.getAmountsIn(factory, amountOut, path);
        require(amounts[0] <= amountInMax, 'BSCswapRouter: EXCESSIVE_INPUT_AMOUNT');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, BSCswapLibrary.pairFor(factory, path[0], path[1]), amounts[0]
        );
        _swap(amounts, path, to);
    }
    function swapExactBNBForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        virtual
        override
        payable
        ensure(deadline)
        returns (uint[] memory amounts)
    {
        require(path[0] == WBNB, 'BSCswapRouter: INVALID_PATH');
        amounts = BSCswapLibrary.getAmountsOut(factory, msg.value, path);
        require(amounts[amounts.length - 1] >= amountOutMin, 'BSCswapRouter: INSUFFICIENT_OUTPUT_AMOUNT');
        IWBNB(WBNB).deposit{value: amounts[0]}();
        assert(IWBNB(WBNB).transfer(BSCswapLibrary.pairFor(factory, path[0], path[1]), amounts[0]));
        _swap(amounts, path, to);
    }
    function swapTokensForExactBNB(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        virtual
        override
        ensure(deadline)
        returns (uint[] memory amounts)
    {
        require(path[path.length - 1] == WBNB, 'BSCswapRouter: INVALID_PATH');
        amounts = BSCswapLibrary.getAmountsIn(factory, amountOut, path);
        require(amounts[0] <= amountInMax, 'BSCswapRouter: EXCESSIVE_INPUT_AMOUNT');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, BSCswapLibrary.pairFor(factory, path[0], path[1]), amounts[0]
        );
        _swap(amounts, path, address(this));
        IWBNB(WBNB).withdraw(amounts[amounts.length - 1]);
        TransferHelper.safeTransferBNB(to, amounts[amounts.length - 1]);
    }
    function swapExactTokensForBNB(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        virtual
        override
        ensure(deadline)
        returns (uint[] memory amounts)
    {
        require(path[path.length - 1] == WBNB, 'BSCswapRouter: INVALID_PATH');
        amounts = BSCswapLibrary.getAmountsOut(factory, amountIn, path);
        require(amounts[amounts.length - 1] >= amountOutMin, 'BSCswapRouter: INSUFFICIENT_OUTPUT_AMOUNT');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, BSCswapLibrary.pairFor(factory, path[0], path[1]), amounts[0]
        );
        _swap(amounts, path, address(this));
        IWBNB(WBNB).withdraw(amounts[amounts.length - 1]);
        TransferHelper.safeTransferBNB(to, amounts[amounts.length - 1]);
    }
    function swapBNBForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        virtual
        override
        payable
        ensure(deadline)
        returns (uint[] memory amounts)
    {
        require(path[0] == WBNB, 'BSCswapRouter: INVALID_PATH');
        amounts = BSCswapLibrary.getAmountsIn(factory, amountOut, path);
        require(amounts[0] <= msg.value, 'BSCswapRouter: EXCESSIVE_INPUT_AMOUNT');
        IWBNB(WBNB).deposit{value: amounts[0]}();
        assert(IWBNB(WBNB).transfer(BSCswapLibrary.pairFor(factory, path[0], path[1]), amounts[0]));
        _swap(amounts, path, to);
        // refund dust BNB, if any
        if (msg.value > amounts[0]) TransferHelper.safeTransferBNB(msg.sender, msg.value - amounts[0]);
    }

    // **** SWAP (supporting fee-on-transfer tokens) ****
    // requires the initial amount to have already been sent to the first pair
    function _swapSupportingFeeOnTransferTokens(address[] memory path, address _to) internal virtual {
        for (uint i; i < path.length - 1; i++) {
            (address input, address output) = (path[i], path[i + 1]);
            (address token0,) = BSCswapLibrary.sortTokens(input, output);
            IBSCswapPair pair = IBSCswapPair(BSCswapLibrary.pairFor(factory, input, output));
            uint amountInput;
            uint amountOutput;
            { // scope to avoid stack too deep errors
            (uint reserve0, uint reserve1,) = pair.getReserves();
            (uint reserveInput, uint reserveOutput) = input == token0 ? (reserve0, reserve1) : (reserve1, reserve0);
            amountInput = IBEP20BSCswap(input).balanceOf(address(pair)).sub(reserveInput);
            amountOutput = BSCswapLibrary.getAmountOut(amountInput, reserveInput, reserveOutput);
            }
            (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOutput) : (amountOutput, uint(0));
            address to = i < path.length - 2 ? BSCswapLibrary.pairFor(factory, output, path[i + 2]) : _to;
            pair.swap(amount0Out, amount1Out, to, new bytes(0));
        }
    }
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external virtual override ensure(deadline) {
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, BSCswapLibrary.pairFor(factory, path[0], path[1]), amountIn
        );
        uint balanceBefore = IBEP20BSCswap(path[path.length - 1]).balanceOf(to);
        _swapSupportingFeeOnTransferTokens(path, to);
        require(
            IBEP20BSCswap(path[path.length - 1]).balanceOf(to).sub(balanceBefore) >= amountOutMin,
            'BSCswapRouter: INSUFFICIENT_OUTPUT_AMOUNT'
        );
    }
    function swapExactBNBForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    )
        external
        virtual
        override
        payable
        ensure(deadline)
    {
        require(path[0] == WBNB, 'BSCswapRouter: INVALID_PATH');
        uint amountIn = msg.value;
        IWBNB(WBNB).deposit{value: amountIn}();
        assert(IWBNB(WBNB).transfer(BSCswapLibrary.pairFor(factory, path[0], path[1]), amountIn));
        uint balanceBefore = IBEP20BSCswap(path[path.length - 1]).balanceOf(to);
        _swapSupportingFeeOnTransferTokens(path, to);
        require(
            IBEP20BSCswap(path[path.length - 1]).balanceOf(to).sub(balanceBefore) >= amountOutMin,
            'BSCswapRouter: INSUFFICIENT_OUTPUT_AMOUNT'
        );
    }
    function swapExactTokensForBNBSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    )
        external
        virtual
        override
        ensure(deadline)
    {
        require(path[path.length - 1] == WBNB, 'BSCswapRouter: INVALID_PATH');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, BSCswapLibrary.pairFor(factory, path[0], path[1]), amountIn
        );
        _swapSupportingFeeOnTransferTokens(path, address(this));
        uint amountOut = IBEP20BSCswap(WBNB).balanceOf(address(this));
        require(amountOut >= amountOutMin, 'BSCswapRouter: INSUFFICIENT_OUTPUT_AMOUNT');
        IWBNB(WBNB).withdraw(amountOut);
        TransferHelper.safeTransferBNB(to, amountOut);
    }

    // **** LIBRARY FUNCTIONS ****
    function quote(uint amountA, uint reserveA, uint reserveB) public pure virtual override returns (uint amountB) {
        return BSCswapLibrary.quote(amountA, reserveA, reserveB);
    }

    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut)
        public
        pure
        virtual
        override
        returns (uint amountOut)
    {
        return BSCswapLibrary.getAmountOut(amountIn, reserveIn, reserveOut);
    }

    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut)
        public
        pure
        virtual
        override
        returns (uint amountIn)
    {
        return BSCswapLibrary.getAmountIn(amountOut, reserveIn, reserveOut);
    }

    function getAmountsOut(uint amountIn, address[] memory path)
        public
        view
        virtual
        override
        returns (uint[] memory amounts)
    {
        return BSCswapLibrary.getAmountsOut(factory, amountIn, path);
    }

    function getAmountsIn(uint amountOut, address[] memory path)
        public
        view
        virtual
        override
        returns (uint[] memory amounts)
    {
        return BSCswapLibrary.getAmountsIn(factory, amountOut, path);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WBNB","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WBNB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountBNBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityBNB","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountBNB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountBNBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityBNB","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountBNB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountBNBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityBNBSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountBNB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountBNBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityBNBWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountBNB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountBNBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityBNBWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountBNB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapBNBForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactBNBForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactBNBForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForBNB","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForBNBSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactBNB","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405234801561001057600080fd5b50604051620048a6380380620048a68339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c614721620001856000398061019f5280610e5e5280611186528061122d52806112a152806117a652806119485280611a265280611b5d5280611cb25280611d3a5280611fbd5280612032528061218a528061221252806123a0528061245452806127ec52806128d952806129b35280612a945280612c3a5280612c755280612e9f5280612ef55280612f295280612f9d525080610d095280610d425280610e3c5280610f9c528061107352806112d352806115ce52806118465280611a045280611c025280611d6c5280611f0d52806120d7528061224452806125335280612744528061276d5280612b345280612d755280612ed35280613738528061377b528061391d5280613a9a528061413c52806141f552806142a852506147216000f3fe60806040526004361061018f5760003560e01c80638dd95002116100d6578063d06ca61f1161007f578063e058848811610059578063e058848814610bd4578063e8e3370014610c27578063eaaed44214610ca7576101c8565b8063d06ca61f146109ed578063d46d2f8314610aa4578063d67b571e14610b3c576101c8565b8063b7e65949116100b0578063b7e6594914610928578063baa2abde1461097b578063c45a0155146109d8576101c8565b80638dd950021461083b5780639cf689111461086c578063ad615dec146108f2576101c8565b80635c11d795116101385780638332a963116101125780638332a963146106e757806385f8c2591461076d5780638803dbee146107a3576101c8565b80635c11d795146105445780635d616c5b146105dc578063685a0a3414610674576101c8565b806334a0772d1161016957806334a0772d146103b357806338ed17391461042657806350e27df3146104be576101c8565b8063054d50d4146101cd5780631f00ca74146102155780632195995c1461031c576101c8565b366101c857336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101c657fe5b005b600080fd5b3480156101d957600080fd5b50610203600480360360608110156101f057600080fd5b5080359060208101359060400135610ced565b60408051918252519081900360200190f35b34801561022157600080fd5b506102cc6004803603604081101561023857600080fd5b8135919081019060408101602082013564010000000081111561025a57600080fd5b82018360208201111561026c57600080fd5b8035906020019184602083028401116401000000008311171561028e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610d02945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103085781810151838201526020016102f0565b505050509050019250505060405180910390f35b34801561032857600080fd5b5061039a600480360361016081101561034057600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135610d38565b6040805192835260208301919091528051918290030190f35b3480156103bf57600080fd5b5061039a60048036036101408110156103d757600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135610e32565b34801561043257600080fd5b506102cc600480360360a081101561044957600080fd5b81359160208101359181019060608101604082013564010000000081111561047057600080fd5b82018360208201111561048257600080fd5b803590602001918460208302840111640100000000831117156104a457600080fd5b91935091506001600160a01b038135169060200135610f46565b6101c6600480360360808110156104d457600080fd5b813591908101906040810160208201356401000000008111156104f657600080fd5b82018360208201111561050857600080fd5b8035906020019184602083028401116401000000008311171561052a57600080fd5b91935091506001600160a01b038135169060200135611135565b34801561055057600080fd5b506101c6600480360360a081101561056757600080fd5b81359160208101359181019060608101604082013564010000000081111561058e57600080fd5b8201836020820111156105a057600080fd5b803590602001918460208302840111640100000000831117156105c257600080fd5b91935091506001600160a01b038135169060200135611559565b3480156105e857600080fd5b506102cc600480360360a08110156105ff57600080fd5b81359160208101359181019060608101604082013564010000000081111561062657600080fd5b82018360208201111561063857600080fd5b8035906020019184602083028401116401000000008311171561065a57600080fd5b91935091506001600160a01b03813516906020013561174b565b34801561068057600080fd5b50610203600480360361014081101561069857600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356119fc565b6102cc600480360360808110156106fd57600080fd5b8135919081019060408101602082013564010000000081111561071f57600080fd5b82018360208201111561073157600080fd5b8035906020019184602083028401116401000000008311171561075357600080fd5b91935091506001600160a01b038135169060200135611b0a565b34801561077957600080fd5b506102036004803603606081101561079057600080fd5b5080359060208101359060400135611eaa565b3480156107af57600080fd5b506102cc600480360360a08110156107c657600080fd5b8135916020810135918101906060810160408201356401000000008111156107ed57600080fd5b8201836020820111156107ff57600080fd5b8035906020019184602083028401116401000000008311171561082157600080fd5b91935091506001600160a01b038135169060200135611eb7565b34801561084757600080fd5b50610850611fbb565b604080516001600160a01b039092168252519081900360200190f35b6102cc6004803603608081101561088257600080fd5b813591908101906040810160208201356401000000008111156108a457600080fd5b8201836020820111156108b657600080fd5b803590602001918460208302840111640100000000831117156108d857600080fd5b91935091506001600160a01b038135169060200135611fdf565b3480156108fe57600080fd5b506102036004803603606081101561091557600080fd5b508035906020810135906040013561233c565b34801561093457600080fd5b50610203600480360360c081101561094b57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135612349565b34801561098757600080fd5b5061039a600480360360e081101561099e57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124da565b3480156109e457600080fd5b50610850612742565b3480156109f957600080fd5b506102cc60048036036040811015610a1057600080fd5b81359190810190604081016020820135640100000000811115610a3257600080fd5b820183602082011115610a4457600080fd5b80359060200191846020830284011164010000000083111715610a6657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612766945050505050565b348015610ab057600080fd5b506101c6600480360360a0811015610ac757600080fd5b813591602081013591810190606081016040820135640100000000811115610aee57600080fd5b820183602082011115610b0057600080fd5b80359060200191846020830284011164010000000083111715610b2257600080fd5b91935091506001600160a01b038135169060200135612793565b348015610b4857600080fd5b506102cc600480360360a0811015610b5f57600080fd5b813591602081013591810190606081016040820135640100000000811115610b8657600080fd5b820183602082011115610b9857600080fd5b80359060200191846020830284011164010000000083111715610bba57600080fd5b91935091506001600160a01b038135169060200135612a39565b348015610be057600080fd5b5061039a600480360360c0811015610bf757600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135612be2565b348015610c3357600080fd5b50610c896004803603610100811015610c4b57600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612d07565b60408051938452602084019290925282820152519081900360600190f35b610c89600480360360c0811015610cbd57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135612e45565b6000610cfa8484846130e3565b949350505050565b6060610d2f7f000000000000000000000000000000000000000000000000000000000000000084846131bb565b90505b92915050565b6000806000610d687f00000000000000000000000000000000000000000000000000000000000000008f8f613308565b9050600087610d77578c610d7b565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015610df157600080fd5b505af1158015610e05573d6000803e3d6000fd5b50505050610e188f8f8f8f8f8f8f6124da565b809450819550505050509b509b9950505050505050505050565b6000806000610e827f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000613308565b9050600087610e91578c610e95565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050610f318e8e8e8e8e8e612be2565b909f909e509c50505050505050505050505050565b60608142811015610f97576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b610ff57f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133e092505050565b9150868260018451038151811061100857fe5b6020026020010151101561104d5760405162461bcd60e51b81526004018080602001828103825260298152602001806146366029913960400191505060405180910390fd5b6110eb8686600081811061105d57fe5b905060200201356001600160a01b0316336110d17f00000000000000000000000000000000000000000000000000000000000000008a8a600081811061109f57fe5b905060200201356001600160a01b03168b8b60018181106110bc57fe5b905060200201356001600160a01b0316613308565b856000815181106110de57fe5b6020026020010151613517565b61112a82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613689915050565b509695505050505050565b8042811015611184576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106111bb57fe5b905060200201356001600160a01b03166001600160a01b031614611226576040805162461bcd60e51b815260206004820152601b60248201527f42534373776170526f757465723a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561128657600080fd5b505af115801561129a573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb61131c7f0000000000000000000000000000000000000000000000000000000000000000898960008181106112ff57fe5b905060200201356001600160a01b03168a8a60018181106110bc57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561136357600080fd5b505af1158015611377573d6000803e3d6000fd5b505050506040513d602081101561138d57600080fd5b505161139557fe5b6000868660001981018181106113a757fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561140357600080fd5b505afa158015611417573d6000803e3d6000fd5b505050506040513d602081101561142d57600080fd5b5051604080516020898102828101820190935289825292935061146f9290918a918a9182918501908490808284376000920191909152508992506138c6915050565b87611512828989600019810181811061148457fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156114e057600080fd5b505afa1580156114f4573d6000803e3d6000fd5b505050506040513d602081101561150a57600080fd5b505190613bed565b101561154f5760405162461bcd60e51b81526004018080602001828103825260298152602001806146366029913960400191505060405180910390fd5b5050505050505050565b80428110156115a8576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b611600858560008181106115b857fe5b905060200201356001600160a01b0316336115fa7f0000000000000000000000000000000000000000000000000000000000000000898960008181106112ff57fe5b8a613517565b60008585600019810181811061161257fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561166e57600080fd5b505afa158015611682573d6000803e3d6000fd5b505050506040513d602081101561169857600080fd5b505160408051602088810282810182019093528882529293506116da9290918991899182918501908490808284376000920191909152508892506138c6915050565b8661151282888860001981018181106116ef57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156114e057600080fd5b6060814281101561179c576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106117d657fe5b905060200201356001600160a01b03166001600160a01b031614611841576040805162461bcd60e51b815260206004820152601b60248201527f42534373776170526f757465723a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b61189f7f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133e092505050565b915086826001845103815181106118b257fe5b602002602001015110156118f75760405162461bcd60e51b81526004018080602001828103825260298152602001806146366029913960400191505060405180910390fd5b6119078686600081811061105d57fe5b61194682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613689915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061198557fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156119c357600080fd5b505af11580156119d7573d6000803e3d6000fd5b5050505061112a84836001855103815181106119ef57fe5b6020026020010151613c45565b600080611a4a7f00000000000000000000000000000000000000000000000000000000000000008d7f0000000000000000000000000000000000000000000000000000000000000000613308565b9050600086611a59578b611a5d565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b158015611ad357600080fd5b505af1158015611ae7573d6000803e3d6000fd5b50505050611af98d8d8d8d8d8d612349565b9d9c50505050505050505050505050565b60608142811015611b5b576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611b9257fe5b905060200201356001600160a01b03166001600160a01b031614611bfd576040805162461bcd60e51b815260206004820152601b60248201527f42534373776170526f757465723a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b611c5b7f0000000000000000000000000000000000000000000000000000000000000000888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506131bb92505050565b91503482600081518110611c6b57fe5b60200260200101511115611cb05760405162461bcd60e51b81526004018080602001828103825260258152602001806145c76025913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611cec57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d1f57600080fd5b505af1158015611d33573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611d987f0000000000000000000000000000000000000000000000000000000000000000898960008181106112ff57fe5b84600081518110611da557fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611df357600080fd5b505af1158015611e07573d6000803e3d6000fd5b505050506040513d6020811015611e1d57600080fd5b5051611e2557fe5b611e6482878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613689915050565b81600081518110611e7157fe5b6020026020010151341115611ea057611ea03383600081518110611e9157fe5b60200260200101513403613c45565b5095945050505050565b6000610cfa848484613d38565b60608142811015611f08576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b611f667f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506131bb92505050565b91508682600081518110611f7657fe5b6020026020010151111561104d5760405162461bcd60e51b81526004018080602001828103825260258152602001806145c76025913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b60608142811015612030576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168686600081811061206757fe5b905060200201356001600160a01b03166001600160a01b0316146120d2576040805162461bcd60e51b815260206004820152601b60248201527f42534373776170526f757465723a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b6121307f0000000000000000000000000000000000000000000000000000000000000000348888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133e092505050565b9150868260018451038151811061214357fe5b602002602001015110156121885760405162461bcd60e51b81526004018080602001828103825260298152602001806146366029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836000815181106121c457fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156121f757600080fd5b505af115801561220b573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122707f0000000000000000000000000000000000000000000000000000000000000000898960008181106112ff57fe5b8460008151811061227d57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156122cb57600080fd5b505af11580156122df573d6000803e3d6000fd5b505050506040513d60208110156122f557600080fd5b50516122fd57fe5b611ea082878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613689915050565b6000610cfa848484613e10565b6000814281101561239a576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b6123c9887f000000000000000000000000000000000000000000000000000000000000000089898930896124da565b90508092505061245288858a6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561242157600080fd5b505afa158015612435573d6000803e3d6000fd5b505050506040513d602081101561244b57600080fd5b5051613eb6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156124b857600080fd5b505af11580156124cc573d6000803e3d6000fd5b5050505061112a8483613c45565b600080824281101561252c576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b60006125597f00000000000000000000000000000000000000000000000000000000000000008c8c613308565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b1580156125b457600080fd5b505af11580156125c8573d6000803e3d6000fd5b505050506040513d60208110156125de57600080fd5b5050604080517f89afcb440000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b15801561264457600080fd5b505af1158015612658573d6000803e3d6000fd5b505050506040513d604081101561266e57600080fd5b508051602090910151909250905060006126888e8e61404e565b509050806001600160a01b03168e6001600160a01b0316146126ab5781836126ae565b82825b90975095508a8710156126f25760405162461bcd60e51b81526004018080602001828103825260248152602001806145a36024913960400191505060405180910390fd5b898610156127315760405162461bcd60e51b81526004018080602001828103825260248152602001806145ec6024913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060610d2f7f000000000000000000000000000000000000000000000000000000000000000084846133e0565b80428110156127e2576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061281c57fe5b905060200201356001600160a01b03166001600160a01b031614612887576040805162461bcd60e51b815260206004820152601b60248201527f42534373776170526f757465723a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b612897858560008181106115b857fe5b6128d58585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506138c6915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561294457600080fd5b505afa158015612958573d6000803e3d6000fd5b505050506040513d602081101561296e57600080fd5b50519050868110156129b15760405162461bcd60e51b81526004018080602001828103825260298152602001806146366029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b5050505061154f8482613c45565b60608142811015612a8a576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110612ac457fe5b905060200201356001600160a01b03166001600160a01b031614612b2f576040805162461bcd60e51b815260206004820152601b60248201527f42534373776170526f757465723a20494e56414c49445f504154480000000000604482015290519081900360640190fd5b612b8d7f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506131bb92505050565b91508682600081518110612b9d57fe5b602002602001015111156118f75760405162461bcd60e51b81526004018080602001828103825260258152602001806145c76025913960400191505060405180910390fd5b6000808242811015612c34576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b612c63897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124da565b9093509150612c73898685613eb6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612cd957600080fd5b505af1158015612ced573d6000803e3d6000fd5b50505050612cfb8583613c45565b50965096945050505050565b60008060008342811015612d5b576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b612d698c8c8c8c8c8c61412c565b90945092506000612d9b7f00000000000000000000000000000000000000000000000000000000000000008e8e613308565b9050612da98d338388613517565b612db58c338387613517565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b158015612e0457600080fd5b505af1158015612e18573d6000803e3d6000fd5b505050506040513d6020811015612e2e57600080fd5b5051949d939c50939a509198505050505050505050565b60008060008342811015612e99576040805162461bcd60e51b81526020600482015260166024820152751094d0dcddd85c149bdd5d195c8e881156141254915160521b604482015290519081900360640190fd5b612ec78a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c61412c565b90945092506000612f197f00000000000000000000000000000000000000000000000000000000000000008c7f0000000000000000000000000000000000000000000000000000000000000000613308565b9050612f278b338388613517565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612f8257600080fd5b505af1158015612f96573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561301257600080fd5b505af1158015613026573d6000803e3d6000fd5b505050506040513d602081101561303c57600080fd5b505161304457fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561309357600080fd5b505af11580156130a7573d6000803e3d6000fd5b505050506040513d60208110156130bd57600080fd5b50519250348410156130d5576130d533853403613c45565b505096509650969350505050565b60008084116131235760405162461bcd60e51b81526004018080602001828103825260298152602001806145506029913960400191505060405180910390fd5b6000831180156131335750600082115b61316e5760405162461bcd60e51b81526004018080602001828103825260268152602001806146106026913960400191505060405180910390fd5b600061317c856103e56143bd565b9050600061318a82856143bd565b905060006131a48361319e886103e86143bd565b90614429565b90508082816131af57fe5b04979650505050505050565b6060600282511015613214576040805162461bcd60e51b815260206004820152601c60248201527f425343737761704c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561322c57600080fd5b50604051908082528060200260200182016040528015613256578160200160208202803683370190505b509050828160018351038151811061326a57fe5b60209081029190910101528151600019015b8015613300576000806132b98786600186038151811061329857fe5b60200260200101518786815181106132ac57fe5b6020026020010151614481565b915091506132db8484815181106132cc57fe5b60200260200101518383613d38565b8460018503815181106132ea57fe5b602090810291909101015250506000190161327c565b509392505050565b6000806000613317858561404e565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527fb1e98e21a5335633815a8cfb3b580071c2e4561c50afd57a8746def9ed890b18609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6060600282511015613439576040805162461bcd60e51b815260206004820152601c60248201527f425343737761704c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561345157600080fd5b5060405190808252806020026020018201604052801561347b578160200160208202803683370190505b509050828160008151811061348c57fe5b60200260200101818152505060005b6001835103811015613300576000806134d1878685815181106134ba57fe5b60200260200101518786600101815181106132ac57fe5b915091506134f38484815181106134e457fe5b602002602001015183836130e3565b84846001018151811061350257fe5b6020908102919091010152505060010161349b565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135b15780518252601f199092019160209182019101613592565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613613576040519150601f19603f3d011682016040523d82523d6000602084013e613618565b606091505b5091509150818015613646575080511580613646575080806020019051602081101561364357600080fd5b50515b6136815760405162461bcd60e51b81526004018080602001828103825260248152602001806146a56024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156138c0576000808483815181106136a757fe5b60200260200101518584600101815181106136be57fe5b60200260200101519150915060006136d6838361404e565b50905060008785600101815181106136ea57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146137185782600061371c565b6000835b91509150600060028a510388106137335788613774565b6137747f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061376757fe5b6020026020010151613308565b90506137a17f00000000000000000000000000000000000000000000000000000000000000008888613308565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156137de576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561384657818101518382015260200161382e565b50505050905090810190601f1680156138735780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561389557600080fd5b505af11580156138a9573d6000803e3d6000fd5b50506001909901985061368c975050505050505050565b50505050565b60005b6001835103811015613be8576000808483815181106138e457fe5b60200260200101518584600101815181106138fb57fe5b6020026020010151915091506000613913838361404e565b50905060006139437f00000000000000000000000000000000000000000000000000000000000000008585613308565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561398457600080fd5b505afa158015613998573d6000803e3d6000fd5b505050506040513d60608110156139ae57600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506000806001600160a01b038a8116908916146139eb5782846139ee565b83835b91509150613a43828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156114e057600080fd5b9550613a508683836130e3565b945050505050600080856001600160a01b0316886001600160a01b031614613a7a57826000613a7e565b6000835b91509150600060028c51038a10613a95578a613ac9565b613ac97f0000000000000000000000000000000000000000000000000000000000000000898e8d6002018151811061376757fe5b60408051600080825260208201928390527f022c0d9f00000000000000000000000000000000000000000000000000000000835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613b6c578181015183820152602001613b54565b50505050905090810190601f168015613b995780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613bbb57600080fd5b505af1158015613bcf573d6000803e3d6000fd5b50506001909b019a506138c99950505050505050505050565b505050565b80820382811115610d32576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b60208310613c915780518252601f199092019160209182019101613c72565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613cf3576040519150601f19603f3d011682016040523d82523d6000602084013e613cf8565b606091505b5050905080613be85760405162461bcd60e51b815260040180806020018281038252602381526020018061465f6023913960400191505060405180910390fd5b6000808411613d785760405162461bcd60e51b815260040180806020018281038252602a815260200180614579602a913960400191505060405180910390fd5b600083118015613d885750600082115b613dc35760405162461bcd60e51b81526004018080602001828103825260268152602001806146106026913960400191505060405180910390fd5b6000613ddb6103e8613dd586886143bd565b906143bd565b90506000613def6103e5613dd58689613bed565b9050613e066001828481613dff57fe5b0490614429565b9695505050505050565b6000808411613e505760405162461bcd60e51b81526004018080602001828103825260238152602001806146c96023913960400191505060405180910390fd5b600083118015613e605750600082115b613e9b5760405162461bcd60e51b81526004018080602001828103825260268152602001806146106026913960400191505060405180910390fd5b82613ea685846143bd565b81613ead57fe5b04949350505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613f615780518252601f199092019160209182019101613f42565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613fc3576040519150601f19603f3d011682016040523d82523d6000602084013e613fc8565b606091505b5091509150818015613ff6575080511580613ff65750808060200190516020811015613ff357600080fd5b50515b614047576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b600080826001600160a01b0316846001600160a01b031614156140a25760405162461bcd60e51b81526004018080602001828103825260238152602001806146826023913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b0316106140c25782846140c5565b83835b90925090506001600160a01b038216614125576040805162461bcd60e51b815260206004820152601c60248201527f425343737761704c6962726172793a205a45524f5f4144445245535300000000604482015290519081900360640190fd5b9250929050565b60008060006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6a439058a8a6040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b1580156141b857600080fd5b505afa1580156141cc573d6000803e3d6000fd5b505050506040513d60208110156141e257600080fd5b50516001600160a01b031614156142a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c9c6539689896040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b0316815260200192505050602060405180830381600087803b15801561427357600080fd5b505af1158015614287573d6000803e3d6000fd5b505050506040513d602081101561429d57600080fd5b50505b6000806142ce7f00000000000000000000000000000000000000000000000000000000000000008b8b614481565b915091508160001480156142e0575080155b156142f0578793508692506143b0565b60006142fd898484613e10565b905087811161435057858110156143455760405162461bcd60e51b81526004018080602001828103825260248152602001806145ec6024913960400191505060405180910390fd5b8894509250826143ae565b600061435d898486613e10565b90508981111561436957fe5b878110156143a85760405162461bcd60e51b81526004018080602001828103825260248152602001806145a36024913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b60008115806143d8575050808202828282816143d557fe5b04145b610d32576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820182811015610d32576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b6000806000614490858561404e565b5090506000806144a1888888613308565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156144d957600080fd5b505afa1580156144ed573d6000803e3d6000fd5b505050506040513d606081101561450357600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506001600160a01b038781169084161461453d578082614540565b81815b9099909850965050505050505056fe425343737761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54425343737761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e5442534373776170526f757465723a20494e53554646494349454e545f415f414d4f554e5442534373776170526f757465723a204558434553534956455f494e5055545f414d4f554e5442534373776170526f757465723a20494e53554646494349454e545f425f414d4f554e54425343737761704c6962726172793a20494e53554646494349454e545f4c495155494449545942534373776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a20424e425f5452414e534645525f4641494c4544425343737761704c6962726172793a204944454e544943414c5f4144445245535345535472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544425343737761704c6962726172793a20494e53554646494349454e545f414d4f554e54a2646970667358221220f5dd67d47f108fcbc4c17314902460f0c2c44be43ceadc8f5deefc4a278141d764736f6c634300060c0033000000000000000000000000553990f2cba90272390f62c5bdb1681ffc899675000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c

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

000000000000000000000000553990f2cba90272390f62c5bdb1681ffc899675000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c

-----Decoded View---------------
Arg [0] : _factory (address): 0x553990f2cba90272390f62c5bdb1681ffc899675
Arg [1] : _WBNB (address): 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000553990f2cba90272390f62c5bdb1681ffc899675
Arg [1] : 000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c


Deployed ByteCode Sourcemap

16394:18461:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16875:10;-1:-1:-1;;;;;16889:4:0;16875:18;;16868:26;;;;16394:18461;;;;;33807:260;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33807:260:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;34601:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34601:251:0;;-1:-1:-1;34601:251:0;;-1:-1:-1;;;;;34601:251:0:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21670:673;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21670:673:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22349:665;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22349:665:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;25364:622::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25364:622:0;-1:-1:-1;;;;;;25364:622:0;;;;;;;;:::i;31861:858::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31861:858:0;-1:-1:-1;;;;;;31861:858:0;;;;;;;;:::i;31131:724::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31131:724:0;-1:-1:-1;;;;;;31131:724:0;;;;;;;;:::i;28119:842::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28119:842:0;-1:-1:-1;;;;;;28119:842:0;;;;;;;;:::i;23806:714::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23806:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;28967:802::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28967:802:0;-1:-1:-1;;;;;;28967:802:0;;;;;;;;:::i;34075:259::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34075:259:0;;;;;;;;;;;;:::i;25992:600::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25992:600:0;-1:-1:-1;;;;;;25992:600:0;;;;;;;;:::i;16531:38::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;16531:38:0;;;;;;;;;;;;;;26598:689;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26598:689:0;-1:-1:-1;;;;;;26598:689:0;;;;;;;;:::i;33613:186::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33613:186:0;;;;;;;;;;;;:::i;23093:707::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23093:707:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;20132:853::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20132:853:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16483:41::-;;;;;;;;;;;;;:::i;34342:251::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34342:251:0;;-1:-1:-1;34342:251:0;;-1:-1:-1;;;;;34342:251:0:i;32725:844::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32725:844:0;-1:-1:-1;;;;;;32725:844:0;;;;;;;;:::i;27293:820::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27293:820:0;-1:-1:-1;;;;;;27293:820:0;;;;;;;;:::i;20991:673::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20991:673:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18379:734::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18379:734:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;19119:970;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19119:970:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;33807:260::-;33960:14;33999:60;34027:8;34037:9;34048:10;33999:27;:60::i;:::-;33992:67;33807:260;-1:-1:-1;;;;33807:260:0:o;34601:251::-;34745:21;34791:53;34819:7;34828:9;34839:4;34791:27;:53::i;:::-;34784:60;;34601:251;;;;;:::o;21670:673::-;21976:12;21990;22015;22030:47;22053:7;22062:6;22070;22030:22;:47::i;:::-;22015:62;;22088:10;22101;:33;;22125:9;22101:33;;;-1:-1:-1;;22101:33:0;22145:78;;;-1:-1:-1;;;22145:78:0;;22171:10;22145:78;;;;22191:4;22145:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22088:46;;-1:-1:-1;;;;;;22145:25:0;;;;;:78;;;;;-1:-1:-1;;22145:78:0;;;;;;;;-1:-1:-1;22145:25:0;:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22255:80;22271:6;22279;22287:9;22298:10;22310;22322:2;22326:8;22255:15;:80::i;:::-;22234:101;;;;;;;;21670:673;;;;;;;;;;;;;;;;:::o;22349:665::-;22638:16;22656:14;22683:12;22698:44;22721:7;22730:5;22737:4;22698:22;:44::i;:::-;22683:59;;22753:10;22766;:33;;22790:9;22766:33;;;-1:-1:-1;;22766:33:0;22810:78;;;-1:-1:-1;;;22810:78:0;;22836:10;22810:78;;;;22856:4;22810:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22753:46;;-1:-1:-1;;;;;;22810:25:0;;;;;:78;;;;;-1:-1:-1;;22810:78:0;;;;;;;;-1:-1:-1;22810:25:0;:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22926:80;22945:5;22952:9;22963:14;22979:12;22993:2;22997:8;22926:18;:80::i;:::-;22899:107;;;;-1:-1:-1;22349:665:0;-1:-1:-1;;;;;;;;;;;;;22349:665:0:o;25364:622::-;25588:21;25569:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;25632:53:::1;25661:7;25670:8;25680:4;;25632:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;25632:28:0::1;::::0;-1:-1:-1;;;25632:53:0:i:1;:::-;25622:63;;25735:12;25704:7;25729:1;25712:7;:14;:18;25704:27;;;;;;;;;;;;;;:43;;25696:97;;;;-1:-1:-1::0;;;25696:97:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25804:139;25850:4;;25855:1;25850:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;25850:7:0::1;25859:10;25871:49;25894:7;25903:4;;25908:1;25903:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;25903:7:0::1;25912:4;;25917:1;25912:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;25912:7:0::1;25871:22;:49::i;:::-;25922:7;25930:1;25922:10;;;;;;;;;;;;;;25804:31;:139::i;:::-;25954:24;25960:7;25969:4;;25954:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;25975:2:0;;-1:-1:-1;25954:5:0::1;::::0;-1:-1:-1;;25954:24:0:i:1;:::-;25364:622:::0;;;;;;;;;:::o;31861:858::-;32121:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;32166:4:::1;-1:-1:-1::0;;;;;32155:15:0::1;:4;;32160:1;32155:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;32155:7:0::1;-1:-1:-1::0;;;;;32155:15:0::1;;32147:55;;;::::0;;-1:-1:-1;;;32147:55:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;32213:13;32229:9;32213:25;;32255:4;-1:-1:-1::0;;;;;32249:19:0::1;;32276:8;32249:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;32311:4;-1:-1:-1::0;;;;;32305:20:0::1;;32326:49;32349:7;32358:4;;32363:1;32358:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;32358:7:0::1;32367:4;;32372:1;32367:7;;;;;;32326:49;32377:8;32305:81;;;;;;;;;;;;;-1:-1:-1::0;;;;;32305:81:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;32305:81:0;32298:89:::1;;;;32398:18;32433:4:::0;;-1:-1:-1;;32438:15:0;;32433:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;32433:21:0::1;-1:-1:-1::0;;;;;32419:46:0::1;;32466:2;32419:50;;;;;;;;;;;;;-1:-1:-1::0;;;;;32419:50:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;32419:50:0;32480:44:::1;::::0;;32419:50:::1;32480:44:::0;;::::1;::::0;;;;;;;;;;;32419:50;;-1:-1:-1;32480:44:0::1;::::0;;;32515:4;;;;;;32480:44;::::1;::::0;32515:4;;32480:44;32515:4;32480:44;::::1;;::::0;::::1;::::0;;;;-1:-1:-1;32521:2:0;;-1:-1:-1;32480:34:0::1;::::0;-1:-1:-1;;32480:44:0:i:1;:::-;32630:12:::0;32557:69:::1;32612:13:::0;32571:4;;-1:-1:-1;;32576:15:0;;32571:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;32571:21:0::1;-1:-1:-1::0;;;;;32557:46:0::1;;32604:2;32557:50;;;;;;;;;;;;;-1:-1:-1::0;;;;;32557:50:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;32557:50:0;;:54:::1;:69::i;:::-;:85;;32535:176;;;;-1:-1:-1::0;;;32535:176:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16693:1;;31861:858:::0;;;;;;:::o;31131:724::-;31365:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;31386:137:::1;31432:4;;31437:1;31432:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;31432:7:0::1;31441:10;31453:49;31476:7;31485:4;;31490:1;31485:7;;;;;;31453:49;31504:8;31386:31;:137::i;:::-;31534:18;31569:4:::0;;-1:-1:-1;;31574:15:0;;31569:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;31569:21:0::1;-1:-1:-1::0;;;;;31555:46:0::1;;31602:2;31555:50;;;;;;;;;;;;;-1:-1:-1::0;;;;;31555:50:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;31555:50:0;31616:44:::1;::::0;;31555:50:::1;31616:44:::0;;::::1;::::0;;;;;;;;;;;31555:50;;-1:-1:-1;31616:44:0::1;::::0;;;31651:4;;;;;;31616:44;::::1;::::0;31651:4;;31616:44;31651:4;31616:44;::::1;;::::0;::::1;::::0;;;;-1:-1:-1;31657:2:0;;-1:-1:-1;31616:34:0::1;::::0;-1:-1:-1;;31616:44:0:i:1;:::-;31766:12:::0;31693:69:::1;31748:13:::0;31707:4;;-1:-1:-1;;31712:15:0;;31707:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;31707:21:0::1;-1:-1:-1::0;;;;;31693:46:0::1;;31740:2;31693:50;;;;;;;;;;;;;-1:-1:-1::0;;;;;31693:50:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;28119:842:::0;28333:21;28305:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;28405:4:0::1;28380:29;:4:::0;;-1:-1:-1;;28385:15:0;;28380:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;28380:21:0::1;-1:-1:-1::0;;;;;28380:29:0::1;;28372:69;;;::::0;;-1:-1:-1;;;28372:69:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;28462:53;28491:7;28500:8;28510:4;;28462:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;28462:28:0::1;::::0;-1:-1:-1;;;28462:53:0:i:1;:::-;28452:63;;28565:12;28534:7;28559:1;28542:7;:14;:18;28534:27;;;;;;;;;;;;;;:43;;28526:97;;;;-1:-1:-1::0;;;28526:97:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28634:139;28680:4;;28685:1;28680:7;;;;;;28634:139;28784:35;28790:7;28799:4;;28784:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;28813:4:0::1;::::0;-1:-1:-1;28784:5:0::1;::::0;-1:-1:-1;;28784:35:0:i:1;:::-;28836:4;-1:-1:-1::0;;;;;28830:20:0::1;;28851:7;28876:1;28859:7;:14;:18;28851:27;;;;;;;;;;;;;;28830:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28890:63;28921:2;28925:7;28950:1;28933:7;:14;:18;28925:27;;;;;;;;;;;;;;28890:30;:63::i;23806:714::-:0;24124:14;24151:12;24166:44;24189:7;24198:5;24205:4;24166:22;:44::i;:::-;24151:59;;24221:10;24234;:33;;24258:9;24234:33;;;-1:-1:-1;;24234:33:0;24278:78;;;-1:-1:-1;;;24278:78:0;;24304:10;24278:78;;;;24324:4;24278:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24221:46;;-1:-1:-1;;;;;;24278:25:0;;;;;:78;;;;;-1:-1:-1;;24278:78:0;;;;;;;;-1:-1:-1;24278:25:0;:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24379:133;24441:5;24448:9;24459:14;24475:12;24489:2;24493:8;24379:47;:133::i;:::-;24367:145;23806:714;-1:-1:-1;;;;;;;;;;;;;23806:714:0:o;28967:802::-;29180:21;29152:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;29238:4:::1;-1:-1:-1::0;;;;;29227:15:0::1;:4;;29232:1;29227:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;29227:7:0::1;-1:-1:-1::0;;;;;29227:15:0::1;;29219:55;;;::::0;;-1:-1:-1;;;29219:55:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;29295:53;29323:7;29332:9;29343:4;;29295:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;29295:27:0::1;::::0;-1:-1:-1;;;29295:53:0:i:1;:::-;29285:63;;29381:9;29367:7;29375:1;29367:10;;;;;;;;;;;;;;:23;;29359:73;;;;-1:-1:-1::0;;;29359:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29449:4;-1:-1:-1::0;;;;;29443:19:0::1;;29470:7;29478:1;29470:10;;;;;;;;;;;;;;29443:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;29507:4;-1:-1:-1::0;;;;;29501:20:0::1;;29522:49;29545:7;29554:4;;29559:1;29554:7;;;;;;29522:49;29573:7;29581:1;29573:10;;;;;;;;;;;;;;29501:83;;;;;;;;;;;;;-1:-1:-1::0;;;;;29501:83:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;29501:83:0;29494:91:::1;;;;29596:24;29602:7;29611:4;;29596:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;29617:2:0;;-1:-1:-1;29596:5:0::1;::::0;-1:-1:-1;;29596:24:0:i:1;:::-;29683:7;29691:1;29683:10;;;;;;;;;;;;;;29671:9;:22;29667:94;;;29695:66;29726:10;29750:7;29758:1;29750:10;;;;;;;;;;;;;;29738:9;:22;29695:30;:66::i;:::-;28967:802:::0;;;;;;;;:::o;34075:259::-;34228:13;34266:60;34293:9;34304;34315:10;34266:26;:60::i;25992:600::-;26216:21;26197:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;26260:53:::1;26288:7;26297:9;26308:4;;26260:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;26260:27:0::1;::::0;-1:-1:-1;;;26260:53:0:i:1;:::-;26250:63;;26346:11;26332:7;26340:1;26332:10;;;;;;;;;;;;;;:25;;26324:75;;;;-1:-1:-1::0;;;26324:75:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16531:38:::0;;;:::o;26598:689::-;26814:21;26786:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;26872:4:::1;-1:-1:-1::0;;;;;26861:15:0::1;:4;;26866:1;26861:7;;;;;;;;;;;;;-1:-1:-1::0;;;;;26861:7:0::1;-1:-1:-1::0;;;;;26861:15:0::1;;26853:55;;;::::0;;-1:-1:-1;;;26853:55:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;26929:54;26958:7;26967:9;26978:4;;26929:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;26929:28:0::1;::::0;-1:-1:-1;;;26929:54:0:i:1;:::-;26919:64;;27033:12;27002:7;27027:1;27010:7;:14;:18;27002:27;;;;;;;;;;;;;;:43;;26994:97;;;;-1:-1:-1::0;;;26994:97:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27108:4;-1:-1:-1::0;;;;;27102:19:0::1;;27129:7;27137:1;27129:10;;;;;;;;;;;;;;27102:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;27166:4;-1:-1:-1::0;;;;;27160:20:0::1;;27181:49;27204:7;27213:4;;27218:1;27213:7;;;;;;27181:49;27232:7;27240:1;27232:10;;;;;;;;;;;;;;27160:83;;;;;;;;;;;;;-1:-1:-1::0;;;;;27160:83:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;27160:83:0;27153:91:::1;;;;27255:24;27261:7;27270:4;;27255:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;27276:2:0;;-1:-1:-1;27255:5:0::1;::::0;-1:-1:-1;;27255:24:0:i:1;33613:186::-:0;33710:12;33742:49;33763:7;33772:8;33782;33742:20;:49::i;23093:707::-;23359:14;23340:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;23402:196:::1;23432:5;23452:4;23471:9;23495:14;23524:12;23559:4;23579:8;23402:15;:196::i;:::-;23386:212;;;;;;23609:85;23637:5;23644:2;23662:5;-1:-1:-1::0;;;;;23648:30:0::1;;23687:4;23648:45;;;;;;;;;;;;;-1:-1:-1::0;;;;;23648:45:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;23648:45:0;23609:27:::1;:85::i;:::-;23711:4;-1:-1:-1::0;;;;;23705:20:0::1;;23726:9;23705:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23747:45;23778:2;23782:9;23747:30;:45::i;20132:853::-:0;20386:12;20400;20367:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;20425:12:::1;20440:47;20463:7;20472:6;20480;20440:22;:47::i;:::-;20498:60;::::0;;-1:-1:-1;;;20498:60:0;;20530:10:::1;20498:60;::::0;::::1;::::0;-1:-1:-1;;;;;20498:31:0;::::1;:60:::0;;;;;;;;;;;;;;20425:62;;-1:-1:-1;20498:31:0;;::::1;::::0;:60;;;;;::::1;::::0;;;;;;;;;-1:-1:-1;20498:31:0;:60;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;20626:27:0::1;::::0;;;;;-1:-1:-1;;;;;20626:27:0;;::::1;;::::0;::::1;::::0;;;20596:12:::1;::::0;;;20626:23;;::::1;::::0;::::1;::::0;:27;;;;;;;;;;;20596:12;20626:23;:27;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;20626:27:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;20626:27:0;-1:-1:-1;20665:14:0::1;20684:41;20710:6:::0;20718;20684:25:::1;:41::i;:::-;20664:61;;;20767:6;-1:-1:-1::0;;;;;20757:16:0::1;:6;-1:-1:-1::0;;;;;20757:16:0::1;;:58;;20798:7;20807;20757:58;;;20777:7;20786;20757:58;20736:79:::0;;-1:-1:-1;20736:79:0;-1:-1:-1;20834:21:0;;::::1;;20826:70;;;;-1:-1:-1::0;;;20826:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20926:10;20915:7;:21;;20907:70;;;;-1:-1:-1::0;;;20907:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16693:1;;;;20132:853:::0;;;;;;;;;;;:::o;16483:41::-;;;:::o;34342:251::-;34486:21;34532:53;34561:7;34570:8;34580:4;34532:28;:53::i;32725:844::-;32992:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;33051:4:0::1;33026:29;:4:::0;;-1:-1:-1;;33031:15:0;;33026:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;33026:21:0::1;-1:-1:-1::0;;;;;33026:29:0::1;;33018:69;;;::::0;;-1:-1:-1;;;33018:69:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;33098:137;33144:4;;33149:1;33144:7;;;;;;33098:137;33246:55;33281:4;;33246:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;33295:4:0::1;::::0;-1:-1:-1;33246:34:0::1;::::0;-1:-1:-1;;33246:55:0:i:1;:::-;33312:14;33343:4;-1:-1:-1::0;;;;;33329:29:0::1;;33367:4;33329:44;;;;;;;;;;;;;-1:-1:-1::0;;;;;33329:44:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;33329:44:0;;-1:-1:-1;33392:25:0;;::::1;;33384:79;;;;-1:-1:-1::0;;;33384:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33480:4;-1:-1:-1::0;;;;;33474:20:0::1;;33495:9;33474:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;33516:45;33547:2;33551:9;33516:30;:45::i;27293:820::-:0;27507:21;27479:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;27579:4:0::1;27554:29;:4:::0;;-1:-1:-1;;27559:15:0;;27554:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;27554:21:0::1;-1:-1:-1::0;;;;;27554:29:0::1;;27546:69;;;::::0;;-1:-1:-1;;;27546:69:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;27636:53;27664:7;27673:9;27684:4;;27636:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;27636:27:0::1;::::0;-1:-1:-1;;;27636:53:0:i:1;:::-;27626:63;;27722:11;27708:7;27716:1;27708:10;;;;;;;;;;;;;;:25;;27700:75;;;;-1:-1:-1::0;;;27700:75:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20991:673:::0;21228:16;21246:14;21209:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;21300:196:::1;21330:5;21350:4;21369:9;21393:14;21422:12;21457:4;21477:8;21300:15;:196::i;:::-;21273:223:::0;;-1:-1:-1;21273:223:0;-1:-1:-1;21507:51:0::1;21535:5:::0;21542:2;21273:223;21507:27:::1;:51::i;:::-;21575:4;-1:-1:-1::0;;;;;21569:20:0::1;;21590:9;21569:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21611:45;21642:2;21646:9;21611:30;:45::i;:::-;20991:673:::0;;;;;;;;;;:::o;18379:734::-;18667:12;18681;18695:14;18648:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;18743:85:::1;18757:6;18765;18773:14;18789;18805:10;18817;18743:13;:85::i;:::-;18722:106:::0;;-1:-1:-1;18722:106:0;-1:-1:-1;18839:12:0::1;18854:47;18877:7;18886:6:::0;18894;18854:22:::1;:47::i;:::-;18839:62;;18912:66;18944:6;18952:10;18964:4;18970:7;18912:31;:66::i;:::-;18989;19021:6;19029:10;19041:4;19047:7;18989:31;:66::i;:::-;19091:4;-1:-1:-1::0;;;;;19078:23:0::1;;19102:2;19078:27;;;;;;;;;;;;;-1:-1:-1::0;;;;;19078:27:0::1;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;19078:27:0;18379:734;;;;-1:-1:-1;19078:27:0;;-1:-1:-1;18379:734:0;;-1:-1:-1;;;;;;;;;18379:734:0:o;19119:970::-;19372:16;19390:14;19406;19353:8;16640:15;16628:8;:27;;16620:62;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;-1:-1:-1;;;16620:62:0;;;;;;;;;;;;;;;19460:176:::1;19488:5;19508:4;19527:18;19560:9;19584:14;19613:12;19460:13;:176::i;:::-;19433:203:::0;;-1:-1:-1;19433:203:0;-1:-1:-1;19647:12:0::1;19662:44;19685:7;19694:5:::0;19701:4:::1;19662:22;:44::i;:::-;19647:59;;19717:69;19749:5;19756:10;19768:4;19774:11;19717:31;:69::i;:::-;19803:4;-1:-1:-1::0;;;;;19797:19:0::1;;19824:9;19797:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;19860:4;-1:-1:-1::0;;;;;19854:20:0::1;;19875:4;19881:9;19854:37;;;;;;;;;;;;;-1:-1:-1::0;;;;;19854:37:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;19854:37:0;19847:45:::1;;;;19928:4;-1:-1:-1::0;;;;;19915:23:0::1;;19939:2;19915:27;;;;;;;;;;;;;-1:-1:-1::0;;;;;19915:27:0::1;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;19915:27:0;;-1:-1:-1;19993:9:0::1;:21:::0;-1:-1:-1;19989:92:0::1;;;20016:65;20047:10;20071:9;20059;:21;20016:30;:65::i;:::-;16693:1;19119:970:::0;;;;;;;;;;;:::o;5395:513::-;5488:14;5534:1;5523:8;:12;5515:66;;;;-1:-1:-1;;;5515:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5612:1;5600:9;:13;:31;;;;;5630:1;5617:10;:14;5600:31;5592:82;;;;-1:-1:-1;;;5592:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5685:20;5708:17;:8;5721:3;5708:12;:17::i;:::-;5685:40;-1:-1:-1;5736:14:0;5753:31;5685:40;5773:10;5753:19;:31::i;:::-;5736:48;-1:-1:-1;5795:16:0;5814:40;5838:15;5814:19;:9;5828:4;5814:13;:19::i;:::-;:23;;:40::i;:::-;5795:59;;5889:11;5877:9;:23;;;;;;;5395:513;-1:-1:-1;;;;;;;5395:513:0:o;7169:530::-;7270:21;7327:1;7312:4;:11;:16;;7304:57;;;;;-1:-1:-1;;;7304:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7393:4;:11;7382:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7382:23:0;;7372:33;;7446:9;7416:7;7441:1;7424:7;:14;:18;7416:27;;;;;;;;;;;;;;;;;:39;7480:11;;-1:-1:-1;;7480:15:0;7466:226;7497:5;;7466:226;;7525:14;7541:15;7560:42;7572:7;7581:4;7590:1;7586;:5;7581:11;;;;;;;;;;;;;;7594:4;7599:1;7594:7;;;;;;;;;;;;;;7560:11;:42::i;:::-;7524:78;;;;7634:46;7646:7;7654:1;7646:10;;;;;;;;;;;;;;7658:9;7669:10;7634:11;:46::i;:::-;7617:7;7629:1;7625;:5;7617:14;;;;;;;;;;;;;;;;;:63;-1:-1:-1;;;;7504:3:0;7466:226;;;;7169:530;;;;;:::o;3918:478::-;4007:12;4033:14;4049;4067:26;4078:6;4086;4067:10;:26::i;:::-;4231:32;;;-1:-1:-1;;4231:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4221:43;;;;;;4134:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4124:262;;;;;;;;;3918:478;-1:-1:-1;;;;;3918:478:0:o;6579:509::-;6680:21;6737:1;6722:4;:11;:16;;6714:57;;;;;-1:-1:-1;;;6714:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6803:4;:11;6792:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6792:23:0;;6782:33;;6839:8;6826:7;6834:1;6826:10;;;;;;;;;;;;;:21;;;;;6863:6;6858:223;6889:1;6875:4;:11;:15;6871:1;:19;6858:223;;;6913:14;6929:15;6948:42;6960:7;6969:4;6974:1;6969:7;;;;;;;;;;;;;;6978:4;6983:1;6987;6983:5;6978:11;;;;;;;6948:42;6912:78;;;;7022:47;7035:7;7043:1;7035:10;;;;;;;;;;;;;;7047:9;7058:10;7022:12;:47::i;:::-;7005:7;7013:1;7017;7013:5;7005:14;;;;;;;;;;;;;;;;;:64;-1:-1:-1;;6892:3:0;;6858:223;;8670:402;8895:51;;;-1:-1:-1;;;;;8895:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8895:51:0;;;8884:63;;;;8849:12;;8863:17;;8884:10;;;;8895:51;8884:63;;;8895:51;8884:63;;8895:51;8884:63;;;;;;;;;;-1:-1:-1;;8884:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8848:99;;;;8966:7;:57;;;;-1:-1:-1;8978:11:0;;:16;;:44;;;9009:4;8998:24;;;;;;;;;;;;;;;-1:-1:-1;8998:24:0;8978:44;8958:106;;;;-1:-1:-1;;;8958:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8670:402;;;;;;:::o;24631:727::-;24738:6;24733:618;24764:1;24750:4;:11;:15;24746:1;:19;24733:618;;;24788:13;24803:14;24822:4;24827:1;24822:7;;;;;;;;;;;;;;24831:4;24836:1;24840;24836:5;24831:11;;;;;;;;;;;;;;24787:56;;;;24859:14;24878:40;24904:5;24911:6;24878:25;:40::i;:::-;24858:60;;;24933:14;24950:7;24958:1;24962;24958:5;24950:14;;;;;;;;;;;;;;24933:31;;24980:15;24997;25025:6;-1:-1:-1;;;;;25016:15:0;:5;-1:-1:-1;;;;;25016:15:0;;:61;;25058:9;25074:1;25016:61;;;25040:1;25044:9;25016:61;24979:98;;;;25092:10;25123:1;25109:4;:11;:15;25105:1;:19;:80;;25182:3;25105:80;;;25127:52;25150:7;25159:6;25167:4;25172:1;25176;25172:5;25167:11;;;;;;;;;;;;;;25127:22;:52::i;:::-;25092:93;;25213:46;25236:7;25245:5;25252:6;25213:22;:46::i;:::-;-1:-1:-1;;;;;25200:65:0;;25284:10;25296;25308:2;25322:1;25312:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25312:12:0;;25200:139;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25200:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24767:3:0;;;;;-1:-1:-1;24733:618:0;;-1:-1:-1;;;;;;;;24733:618:0;;;24631:727;;;:::o;29916:1209::-;30029:6;30024:1094;30055:1;30041:4;:11;:15;30037:1;:19;30024:1094;;;30079:13;30094:14;30113:4;30118:1;30113:7;;;;;;;;;;;;;;30122:4;30127:1;30131;30127:5;30122:11;;;;;;;;;;;;;;30078:56;;;;30150:14;30169:40;30195:5;30202:6;30169:25;:40::i;:::-;30149:60;;;30224:17;30257:46;30280:7;30289:5;30296:6;30257:22;:46::i;:::-;30224:80;;30319:16;30350:17;30438:13;30453;30471:4;-1:-1:-1;;;;;30471:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30471:18:0;;;;;;;30437:52;;;;;-1:-1:-1;30437:52:0;;-1:-1:-1;30505:17:0;;-1:-1:-1;;;;;30546:15:0;;;;;;;:61;;30588:8;30598;30546:61;;;30565:8;30575;30546:61;30504:103;;;;30636:63;30686:12;30650:5;-1:-1:-1;;;;;30636:30:0;;30675:4;30636:45;;;;;;;;;;;;;-1:-1:-1;;;;;30636:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;:63;30622:77;;30729:69;30757:11;30770:12;30784:13;30729:27;:69::i;:::-;30714:84;;30024:1094;;;;30829:15;30846;30874:6;-1:-1:-1;;;;;30865:15:0;:5;-1:-1:-1;;;;;30865:15:0;;:67;;30910:12;30929:1;30865:67;;;30889:1;30893:12;30865:67;30828:104;;;;30947:10;30978:1;30964:4;:11;:15;30960:1;:19;:80;;31037:3;30960:80;;;30982:52;31005:7;31014:6;31022:4;31027:1;31031;31027:5;31022:11;;;;;;;30982:52;31093:12;;;31103:1;31093:12;;;;;;;;;;31055:51;;;;;;;;;;;;;;;-1:-1:-1;;;;;31055:51:0;;;;;;;;;;;;;;;;;;;;;;30947:93;;-1:-1:-1;31055:9:0;;;;;;31065:10;;31077;;30947:93;;31093:12;;31055:51;;;;;;;;31093:12;;31055:51;;;;31093:12;;31055:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;30058:3:0;;;;;-1:-1:-1;30024:1094:0;;-1:-1:-1;;;;;;;;;;30024:1094:0;;;29916:1209;;:::o;2938:129::-;3022:5;;;3017:16;;;;3009:50;;;;;-1:-1:-1;;;3009:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9080:195;9188:12;;;9150;9188;;;;;;;;;-1:-1:-1;;;;;9167:7:0;;;9181:5;;9167:34;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9167:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9149:52;;;9220:7;9212:55;;;;-1:-1:-1;;;9212:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6029:468;6122:13;6168:1;6156:9;:13;6148:68;;;;-1:-1:-1;;;6148:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6247:1;6235:9;:13;:31;;;;;6265:1;6252:10;:14;6235:31;6227:82;;;;-1:-1:-1;;;6227:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6320:14;6337:34;6366:4;6337:24;:9;6351;6337:13;:24::i;:::-;:28;;:34::i;:::-;6320:51;-1:-1:-1;6382:16:0;6401:34;6431:3;6401:25;:10;6416:9;6401:14;:25::i;:34::-;6382:53;;6457:32;6487:1;6470:11;6458:9;:23;;;;;;;6457:29;:32::i;:::-;6446:43;6029:468;-1:-1:-1;;;;;;6029:468:0:o;4956:317::-;5038:12;5081:1;5071:7;:11;5063:59;;;;-1:-1:-1;;;5063:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5152:1;5141:8;:12;:28;;;;;5168:1;5157:8;:12;5141:28;5133:79;;;;-1:-1:-1;;;5133:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5257:8;5233:21;:7;5245:8;5233:11;:21::i;:::-;:32;;;;;;;4956:317;-1:-1:-1;;;;4956:317:0:o;8301:361::-;8496:45;;;-1:-1:-1;;;;;8496:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8485:57;;;;8450:12;;8464:17;;8485:10;;;;8496:45;8485:57;;;8496:45;8485:57;;8496:45;8485:57;;;;;;;;;;-1:-1:-1;;8485:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8449:93;;;;8561:7;:57;;;;-1:-1:-1;8573:11:0;;:16;;:44;;;8604:4;8593:24;;;;;;;;;;;;;;;-1:-1:-1;8593:24:0;8573:44;8553:101;;;;;-1:-1:-1;;;8553:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8301:361;;;;;:::o;3481:345::-;3556:14;3572;3617:6;-1:-1:-1;;;;;3607:16:0;:6;-1:-1:-1;;;;;3607:16:0;;;3599:64;;;;-1:-1:-1;;;3599:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3702:6;-1:-1:-1;;;;;3693:15:0;:6;-1:-1:-1;;;;;3693:15:0;;:53;;3731:6;3739;3693:53;;;3712:6;3720;3693:53;3674:72;;-1:-1:-1;3674:72:0;-1:-1:-1;;;;;;3765:20:0;;3757:61;;;;;-1:-1:-1;;;3757:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3481:345;;;;;:::o;16997:1376::-;17215:12;17229;17370:1;-1:-1:-1;;;;;17310:62:0;17326:7;-1:-1:-1;;;;;17310:32:0;;17343:6;17351;17310:48;;;;;;;;;;;;;-1:-1:-1;;;;;17310:48:0;;;;;;-1:-1:-1;;;;;17310:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17310:48:0;-1:-1:-1;;;;;17310:62:0;;17306:146;;;17405:7;-1:-1:-1;;;;;17389:35:0;;17425:6;17433;17389:51;;;;;;;;;;;;;-1:-1:-1;;;;;17389:51:0;;;;;;-1:-1:-1;;;;;17389:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17306:146:0;17463:13;17478;17495:51;17522:7;17531:6;17539;17495:26;:51::i;:::-;17462:84;;;;17561:8;17573:1;17561:13;:30;;;;-1:-1:-1;17578:13:0;;17561:30;17557:809;;;17630:14;;-1:-1:-1;17646:14:0;;-1:-1:-1;17557:809:0;;;17694:19;17716:56;17737:14;17753:8;17763;17716:20;:56::i;:::-;17694:78;;17809:14;17791;:32;17787:568;;17870:10;17852:14;:28;;17844:77;;;;-1:-1:-1;;;17844:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17962:14;;-1:-1:-1;17978:14:0;-1:-1:-1;17978:14:0;17787:568;;;18034:19;18056:56;18077:14;18093:8;18103;18056:20;:56::i;:::-;18034:78;;18156:14;18138;:32;;18131:40;;;;18216:10;18198:14;:28;;18190:77;;;;-1:-1:-1;;;18190:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18308:14;-1:-1:-1;18324:14:0;;-1:-1:-1;17787:568:0;17557:809;;16997:1376;;;;;;;;;;;:::o;3075:142::-;3127:6;3154;;;:30;;-1:-1:-1;;3169:5:0;;;3183:1;3178;3169:5;3178:1;3164:15;;;;;:20;3154:30;3146:63;;;;;-1:-1:-1;;;3146:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2802:128;2886:5;;;2881:16;;;;2873:49;;;;;-1:-1:-1;;;2873:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4454:389;4547:13;4562;4589:14;4608:26;4619:6;4627;4608:10;:26::i;:::-;4588:46;;;4646:13;4661;4692:32;4700:7;4709:6;4717;4692:7;:32::i;:::-;-1:-1:-1;;;;;4679:58:0;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4679:60:0;;;;;;;4645:94;;;;;-1:-1:-1;4645:94:0;;-1:-1:-1;;;;;;4773:16:0;;;;;;;:62;;4816:8;4826;4773:62;;;4793:8;4803;4773:62;4750:85;;;;-1:-1:-1;4454:389:0;-1:-1:-1;;;;;;;4454:389:0:o

Swarm Source

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