Contract 0x586E79aA192c97CB2A4D7bAdC41e89130aa4F835 8

 

Contract Overview

Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9a7b7ae9384184097d37e802d525e0568b88f9f80ca0331e23ac30c86b5ed252Approve1644737262023-12-28 3:13:16109 days 19 hrs ago0xc0d34fd2e26922e6ffb30b5eafaf0f35c062fc12 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00006532 0.1
0xda5f3dd8c8a60f8a61d720e65890957aa7406782c7692f44ab749dcb4e6255eaTransfer1312718322023-09-15 8:47:08213 days 14 hrs ago0x8fe53e72da65b7283680534c7b9d14c769893adc IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.000043690.1
0x7adb882ba0a9b2e3a74ce40289bc45cb0cb91276472a3227d202e06981081ae0Approve899756872023-05-12 15:07:26339 days 7 hrs ago0x76dac0b66e748ce1ff53165e17c436a1f8ccb031 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00014161 0.1
0xb66a309d7fb8223b6a96e594c0e8e16f2ec553e3eeb1c43598eca8c108e73e3fApprove858747892023-04-30 14:35:49351 days 8 hrs ago0x2a088d9c1cbead284d36ef7900d99b979dede299 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00008922 0.1
0x5d2885e66be7c6ba6cca87fd94653f0b8f6507bdce155d63fa449c92f3d50803Approve858740822023-04-30 14:32:51351 days 8 hrs ago0x2a088d9c1cbead284d36ef7900d99b979dede299 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00008969 0.1
0x5186fac44ce306118a22632994c8951facbe37a32a4e6de3d4f8aa985e67f7ddApprove831541842023-04-22 15:06:21359 days 8 hrs ago0x0e3ffe387ab5b3f776444da1014f64a17e833cf9 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00005934 0.1
0x91575c244203b28fd522f2f448b5b61806cbc0f5f6e4484827903648f15dfa69Approve808727052023-04-16 0:03:50365 days 23 hrs ago0xf9de72e39c712cbd6878f80f97b787c6e12bab5a IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00004609 0.1
0xfd16a6c0a85d4313f74b93fd4570e088f2119d5bd28d93cb986fba389f50cc76Approve785794852023-04-09 7:11:31372 days 15 hrs ago0x0cf2ced122da6d9af8cf78900f57dafb638491d1 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00003819 0.1
0x833aafb836c0f3b5d6f01ac028482085d89323409d9c687ff250d920e5d54476Approve785794582023-04-09 7:11:24372 days 15 hrs ago0x0cf2ced122da6d9af8cf78900f57dafb638491d1 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00003799 0.1
0xc7210fe3d8ee89864fd33d91a39c37040b88cf8e0a04acf7710cd1fccb24e691Approve753430772023-03-30 18:58:37382 days 4 hrs ago0xf9de72e39c712cbd6878f80f97b787c6e12bab5a IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00005566 0.1
0x6330b0bcf0ddcc2ba08794d6e864d70d91a15f03b4af7e66e6115e6c1a27b281Approve746028952023-03-28 15:18:45384 days 7 hrs ago0x8df977851c0ae59b7104c9c676ef2a93ca352afb IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00005613 0.1
0x0cf1fddcf9aa237a0e540d011f21098d9f82b069864a7bbb767f35fc16da70eeApprove745248612023-03-28 9:55:30384 days 13 hrs ago0xc1116058cf3949168f26e5b065f63c798a84d552 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00004489 0.1
0xa4ebb027dc1a52656bc0c9bd7adbb7d378ff499e19cdda679b0bfe9201764dfaApprove745238802023-03-28 9:51:29384 days 13 hrs ago0x966ecaab8f734ee01a2ae890939b1347d6ca9c24 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00005713 0.1
0x33a09679afc2b980ef3a95a96331d794785a0b70bf5391d1d93d1a31c3bbaef6Approve745231652023-03-28 9:48:30384 days 13 hrs ago0xc1116058cf3949168f26e5b065f63c798a84d552 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00005742 0.1
0x2a25d0be5ff1d852898ab9d026b0ff0db977181ad459e22eef521a13a68dbfc0Approve745163842023-03-28 9:20:28384 days 13 hrs ago0x8603b1fb50dd045263c2414cd4eca87877f55c7a IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00004993 0.1
0x0a6b34a8f92c9e64f426a1823baae0b8e00cf865951e80a6bd252e93d9748eb3Approve745152592023-03-28 9:15:45384 days 13 hrs ago0xc1116058cf3949168f26e5b065f63c798a84d552 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00005018 0.1
0x46d1576029fc0c5aec3c9bd5e9efeb57d55ffd8d9fa1ca356cb164e574a2c9d7Approve741673022023-03-27 9:01:54385 days 14 hrs ago0x08a05ce26beaa25ec2bacbcd9a47059801f8d458 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00004231 0.1
0x1d5c9e7a99ea00fa9a03b66890c4b2b28fb7d1b80497916193299fde50572e7fApprove741670422023-03-27 9:00:55385 days 14 hrs ago0x4bc661b6b79f03eb494341361babd3e575f8e1c1 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00004214 0.1
0xee6555e23fd511a61b1639db8e2806937b16c7c077cdb58ffd187e86bd0ee78bApprove741668152023-03-27 8:59:58385 days 14 hrs ago0xf0601e955807b11a18fd1673518e9e59d514027f IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00004214 0.1
0x55b26e87f2eda69fa45ea02bab0397b9b2b123ab0f61c361d297b8443a2dec5bApprove739382912023-03-26 17:08:36386 days 5 hrs ago0x37a622566ffc6e0ef81b8d84b5760d198507a878 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00004901 0.1
0x5e3af96007966bbb7fdfe44e1ebaf4e2507792604d6a8e1e9a3a62291c0e9d14Approve739379832023-03-26 17:07:24386 days 5 hrs ago0x9ec784e1e060e57995a1f0173ff885c3d8676045 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00005136 0.1
0x187fdf116b3f38e3179375a5c02c569fff5c04c1b8ea0b63673492b7cdd0ac59Approve738366982023-03-26 10:09:44386 days 12 hrs ago0x3c8a99827789ceaccfabf7346a8d6548002081b7 IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00003348 0.1
0x9781080a0a3d267e0e67841f91e2dec240a151ace2719aafa371b586b62686ddApprove738359692023-03-26 10:06:41386 days 13 hrs ago0x19ca18be8fb6a20871076233674e1f35cc159bdd IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00003149 0.1
0x513b605c0cd250a67ce9f604ad5b2a78b654324ba83823f1e1ecb0587e5085f5Approve738357842023-03-26 10:05:54386 days 13 hrs ago0x19ca18be8fb6a20871076233674e1f35cc159bdd IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00003177 0.1
0x8c4cd410a64801d9f7f63d9caaedd14bd3da916f276692fc55ffe4d51b367800Approve738353302023-03-26 10:04:04386 days 13 hrs ago0x19ca18be8fb6a20871076233674e1f35cc159bdd IN  0x586e79aa192c97cb2a4d7badc41e89130aa4f8350 ETH0.00003639 0.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xda5f3dd8c8a60f8a61d720e65890957aa7406782c7692f44ab749dcb4e6255ea1312718322023-09-15 8:47:08213 days 14 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350xc1116058cf3949168f26e5b065f63c798a84d5520.000269171550644383 ETH
0xda5f3dd8c8a60f8a61d720e65890957aa7406782c7692f44ab749dcb4e6255ea1312718322023-09-15 8:47:08213 days 14 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f835 SushiSwap: Router0.000134585775322192 ETH
0xda5f3dd8c8a60f8a61d720e65890957aa7406782c7692f44ab749dcb4e6255ea1312718322023-09-15 8:47:08213 days 14 hrs ago SushiSwap: Router 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350.000403757325966575 ETH
0x9d64ee4ef36d6b4d073ee78c6e0758f34eb8f7417ebba4b6175d27fc709e1285745186662023-03-28 9:29:53384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350xc1116058cf3949168f26e5b065f63c798a84d5520.000413767845320414 ETH
0x9d64ee4ef36d6b4d073ee78c6e0758f34eb8f7417ebba4b6175d27fc709e1285745186662023-03-28 9:29:53384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f835 SushiSwap: Router0.000206883922660207 ETH
0x9d64ee4ef36d6b4d073ee78c6e0758f34eb8f7417ebba4b6175d27fc709e1285745186662023-03-28 9:29:53384 days 13 hrs ago SushiSwap: Router 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350.000620651767980621 ETH
0x6f9ba07a4754c1c5e360432a4e524a17551b2990b850b5353553c94c53017864745181922023-03-28 9:27:53384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350xc1116058cf3949168f26e5b065f63c798a84d5520.000442424469230114 ETH
0x6f9ba07a4754c1c5e360432a4e524a17551b2990b850b5353553c94c53017864745181922023-03-28 9:27:53384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f835 SushiSwap: Router0.000221212234615057 ETH
0x6f9ba07a4754c1c5e360432a4e524a17551b2990b850b5353553c94c53017864745181922023-03-28 9:27:53384 days 13 hrs ago SushiSwap: Router 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350.000663636703845171 ETH
0x902aaf81c351472c58ab921e8c39520b3107d06452c071b4b7d876105d2ea96e745179562023-03-28 9:26:53384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350xc1116058cf3949168f26e5b065f63c798a84d5520.000516974425595364 ETH
0x902aaf81c351472c58ab921e8c39520b3107d06452c071b4b7d876105d2ea96e745179562023-03-28 9:26:53384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f835 SushiSwap: Router0.000258487212797683 ETH
0x902aaf81c351472c58ab921e8c39520b3107d06452c071b4b7d876105d2ea96e745179562023-03-28 9:26:53384 days 13 hrs ago SushiSwap: Router 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350.000775461638393047 ETH
0x6938ae7f3ec9aa729b05647cdf7c1795b46ef04209788ed0d3b542cb043e62da745178432023-03-28 9:26:29384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350xc1116058cf3949168f26e5b065f63c798a84d5520.000561992928812652 ETH
0x6938ae7f3ec9aa729b05647cdf7c1795b46ef04209788ed0d3b542cb043e62da745178432023-03-28 9:26:29384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f835 SushiSwap: Router0.000280996464406327 ETH
0x6938ae7f3ec9aa729b05647cdf7c1795b46ef04209788ed0d3b542cb043e62da745178432023-03-28 9:26:29384 days 13 hrs ago SushiSwap: Router 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350.000842989393218979 ETH
0x6fb9fe581d4b6b03494048012eac31db1c2416ddb0e17292da2a027cffca210a745176632023-03-28 9:25:44384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350xc1116058cf3949168f26e5b065f63c798a84d5520.00061317663694506 ETH
0x6fb9fe581d4b6b03494048012eac31db1c2416ddb0e17292da2a027cffca210a745176632023-03-28 9:25:44384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f835 SushiSwap: Router0.00030658831847253 ETH
0x6fb9fe581d4b6b03494048012eac31db1c2416ddb0e17292da2a027cffca210a745176632023-03-28 9:25:44384 days 13 hrs ago SushiSwap: Router 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350.00091976495541759 ETH
0xa4d4638eee7ed4ff9e01c7c8c6f5ddb62b57b7df2fd05ba92eb0ab7ecd045556745175022023-03-28 9:25:03384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350xc1116058cf3949168f26e5b065f63c798a84d5520.000710165156829644 ETH
0xa4d4638eee7ed4ff9e01c7c8c6f5ddb62b57b7df2fd05ba92eb0ab7ecd045556745175022023-03-28 9:25:03384 days 13 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f835 SushiSwap: Router0.000355082578414822 ETH
0xa4d4638eee7ed4ff9e01c7c8c6f5ddb62b57b7df2fd05ba92eb0ab7ecd045556745175022023-03-28 9:25:03384 days 13 hrs ago SushiSwap: Router 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350.001065247735244466 ETH
0x294fcfae2d869974e2e17f0c34a9f5fc3893529eff6f75f6b649db64a51f63db741674042023-03-27 9:02:20385 days 14 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350xc1116058cf3949168f26e5b065f63c798a84d5520.00200196129235241 ETH
0x294fcfae2d869974e2e17f0c34a9f5fc3893529eff6f75f6b649db64a51f63db741674042023-03-27 9:02:20385 days 14 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f835 SushiSwap: Router0.001000980646176205 ETH
0x294fcfae2d869974e2e17f0c34a9f5fc3893529eff6f75f6b649db64a51f63db741674042023-03-27 9:02:20385 days 14 hrs ago SushiSwap: Router 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350.003002941938528615 ETH
0xf70d2357d691b368fed834a5b443be711cec2db1cbd906821883bfe9a4eaf90c739380662023-03-26 17:07:45386 days 5 hrs ago 0x586e79aa192c97cb2a4d7badc41e89130aa4f8350xc1116058cf3949168f26e5b065f63c798a84d5520.002558668734022482 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MARBI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-03-05
*/

/*
MiniArbi(MARBI) 
Twitter @MiniArbitrum
Telergam: @miniarbi
*/

// SPDX-License-Identifier: MIT

    pragma solidity ^0.8.7;

    interface IERC20 {
        
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }

    library SafeMath {

        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            return a + b;
        }


        function sub(uint256 a, uint256 b) internal pure returns (uint256) {
            return a - b;
        }


        function mul(uint256 a, uint256 b) internal pure returns (uint256) {
            return a * b;
        }
        
        function div(uint256 a, uint256 b) internal pure returns (uint256) {
            return a / b;
        }


        function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            unchecked {
                require(b <= a, errorMessage);
                return a - b;
            }
        }
        
        function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            unchecked {
                require(b > 0, errorMessage);
                return a / b;
            }
        }

    }

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

        function _msgData() internal view virtual returns (bytes calldata) {
            this; 
            return msg.data;
        }
    }

    abstract contract Ownable is Context {
        address internal _owner;
        address private _previousOwner;
        uint256 public _lockTime;

        event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
        constructor () {
            _owner = _msgSender();
            emit OwnershipTransferred(address(0), _owner);
        }
        
        function owner() public view virtual returns (address) {
            return _owner;
        }
        
        modifier onlyOwner() {
            require(owner() == _msgSender(), "Ownable: caller is not the owner");
            _;
        }
        
        function renounceOwnership() public virtual onlyOwner {
            emit OwnershipTransferred(_owner, address(0));
            _owner = address(0);
        }


        function transferOwnership(address newOwner) public virtual onlyOwner {
            require(newOwner != address(0), "Ownable: new owner is the zero address");
            emit OwnershipTransferred(_owner, newOwner);
            _owner = newOwner;
        }


            //Locks the contract for owner for the amount of time provided
        function lock(uint256 time) public virtual onlyOwner {
            _previousOwner = _owner;
            _owner = address(0);
            _lockTime = time;
            emit OwnershipTransferred(_owner, address(0));
        }
        
        //Unlocks the contract for owner when _lockTime is exceeds
        function unlock() public virtual {
            require(_previousOwner == msg.sender, "You don't have permission to unlock.");
            require(block.timestamp > _lockTime , "Contract is locked.");
            emit OwnershipTransferred(_owner, _previousOwner);
            _owner = _previousOwner;
        }
    }

    interface IERC20Metadata is IERC20 {
        function name() external view returns (string memory);
        function symbol() external view returns (string memory);
        function decimals() external view returns (uint8);
    }
    contract ERC20 is Context,Ownable, IERC20, IERC20Metadata {
        using SafeMath for uint256;

        mapping(address => uint256) private _balances;

        mapping(address => mapping(address => uint256)) private _allowances;

        uint256 private _totalSupply;

        string private _name;
        string private _symbol;

        constructor(string memory name_, string memory symbol_) {
            _name = name_;
            _symbol = symbol_;
        }

        function name() public view virtual override returns (string memory) {
            return _name;
        }

        function symbol() public view virtual override returns (string memory) {
            return _symbol;
        }

        function decimals() public view virtual override returns (uint8) {
            return 18;
        }

        function totalSupply() public view virtual override returns (uint256) {
            return _totalSupply;
        }

        function balanceOf(address account) public view virtual override returns (uint256) {
            return _balances[account];
        }

        function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
            _transfer(_msgSender(), recipient, amount);
            return true;
        }

        function allowance(address owner, address spender) public view virtual override returns (uint256) {
            return _allowances[owner][spender];
        }

        function approve(address spender, uint256 amount) public virtual override returns (bool) {
            _approve(_msgSender(), spender, amount);
            return true;
        }

        function transferFrom(
            address sender,
            address recipient,
            uint256 amount
        ) public virtual override returns (bool) {
            _transfer(sender, recipient, amount);
            _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
            return true;
        }

        function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
            _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
            return true;
        }

        function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
            _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
            return true;
        }

        function _transfer(
            address sender,
            address recipient,
            uint256 amount
        ) internal virtual {
            require(sender != address(0), "ERC20: transfer from the zero address");
            require(recipient != address(0), "ERC20: transfer to the zero address");

            _beforeTokenTransfer(sender, recipient, amount);

            _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }

        function _mint(address account, uint256 amount) internal virtual {
            require(account != address(0), "ERC20: mint to the zero address");

            _beforeTokenTransfer(address(0), account, amount);

            _totalSupply = _totalSupply.add(amount);
            _balances[account] = _balances[account].add(amount);
            emit Transfer(address(0), account, amount);
        }

        function _burn(address account, uint256 amount) internal virtual {
            require(account != address(0), "ERC20: burn from the zero address");

            _beforeTokenTransfer(account, address(0), amount);

            _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
            _totalSupply = _totalSupply.sub(amount);
            emit Transfer(account, address(0), amount);
        }

        function _approve(
            address owner,
            address spender,
            uint256 amount
        ) internal virtual {
            require(owner != address(0), "ERC20: approve from the zero address");
            require(spender != address(0), "ERC20: approve to the zero address");

            _allowances[owner][spender] = amount;
            emit Approval(owner, spender, amount);
        }

        function _beforeTokenTransfer(
            address from,
            address to,
            uint256 amount
        ) internal virtual {}
    }


    interface IUniswapV2Factory {
        event PairCreated(address indexed token0, address indexed token1, address pair, uint);
        function createPair(address tokenA, address tokenB) external returns (address pair);
    }

    interface IUniswapV2Pair {
        function factory() external view returns (address);
    }

    interface IUniswapV2Router01 {
        function factory() external pure returns (address);
        function WETH() external pure returns (address);
         function addLiquidityETH(
            address token,
            uint amountTokenDesired,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    }

    interface IUniswapV2Router02 is IUniswapV2Router01 {
        function swapExactTokensForETHSupportingFeeOnTransferTokens(
            uint amountIn,
            uint amountOutMin,
            address[] calldata path,
            address to,
            uint deadline
        ) external;
    }

    contract MARBI is ERC20 {
        using SafeMath for uint256;

        mapping (address => bool) private _isExcludedFromFee;
        mapping(address => bool) private _isExcludedFromMaxWallet;
        mapping(address => bool) private _isExcludedFromMaxTnxLimit;

        address public _marketingWalletAddress;    
        address public _burnAddress;

        uint256 public _buyLiquidityFee = 1;  
        uint256 public _buyMarketingFee = 1;  
        uint256 public _buyBurnFee = 1;  

        uint256 public _sellLiquidityFee = 1; 
        uint256 public _sellMarketingFee = 1; 
        uint256 public _sellBurnFee = 1;

        IUniswapV2Router02 public uniswapV2Router;
        address public uniswapV2Pair;
        bool inSwapAndLiquify;
        bool public swapAndLiquifyEnabled = true;
        uint256 public _maxWalletBalance;
        uint256 public _maxTxAmount;
        uint256 public numTokensSellToAddToLiquidity;
        event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
        event SwapAndLiquifyEnabledUpdated(bool enabled);
        event SwapAndLiquify(
            uint256 tokensSwapped,
            uint256 ethReceived,
            uint256 tokensIntoLiqudity
        );
        
        modifier lockTheSwap {
            inSwapAndLiquify = true;
            _;
            inSwapAndLiquify = false;
        }
        
        constructor () ERC20("MiniArbi", "MARBI"){

            numTokensSellToAddToLiquidity = 10000000 * 10 ** decimals();
            _marketingWalletAddress = 0xc1116058cF3949168f26E5B065f63C798A84D552;
            _burnAddress = 0x000000000000000000000000000000000000dEaD;
            
            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
            // Create a uniswap pair for this new token
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());

            // set the rest of the contract variables
            uniswapV2Router = _uniswapV2Router;
            
            //exclude owner and this contract from fee
            _isExcludedFromFee[_msgSender()] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[_marketingWalletAddress] = true;
            _isExcludedFromFee[_burnAddress] = true;

            // exclude from the Max wallet balance 
            _isExcludedFromMaxWallet[owner()] = true;
            _isExcludedFromMaxWallet[address(this)] = true;
            _isExcludedFromMaxWallet[_marketingWalletAddress] = true;

            // exclude from the max tnx limit 
            _isExcludedFromMaxTnxLimit[owner()] = true;
            _isExcludedFromMaxTnxLimit[address(this)] = true;
            _isExcludedFromMaxTnxLimit[_marketingWalletAddress] = true;


            /*
                _mint is an internal function in ERC20.sol that is only called here,
                and CANNOT be called ever again
            */
            _mint(owner(), 10000000000 * 10 ** decimals());		
            _maxWalletBalance = (totalSupply() * 2 ) / 100;
            _maxTxAmount = (totalSupply() * 2 ) / 100;

            
        }

        function burn(uint tokens) external onlyOwner {
            _burn(msg.sender, tokens * 10 ** decimals());
        }
        
        function includeAndExcludeInWhitelist(address account, bool value) public onlyOwner {
            _isExcludedFromFee[account] = value;
        }

        function includeAndExcludedFromMaxWallet(address account, bool value) public onlyOwner {
            _isExcludedFromMaxWallet[account] = value;
        }

        function includeAndExcludedFromMaxTnxLimit(address account, bool value) public onlyOwner {
            _isExcludedFromMaxTnxLimit[account] = value;
        }

        function isExcludedFromFee(address account) public view returns(bool) {
            return _isExcludedFromFee[account];
        }

        function isExcludedFromMaxWallet(address account) public view returns(bool){
            return _isExcludedFromMaxWallet[account];
        }

        function isExcludedFromMaxTnxLimit(address account) public view returns(bool) {
            return _isExcludedFromMaxTnxLimit[account];
        }

        function setMaxWalletBalance(uint256 maxBalancePercent) external onlyOwner {
        _maxWalletBalance = maxBalancePercent * 10** decimals();
        }

        function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner {
        _maxTxAmount = maxTxAmount * 10** decimals();
       }


        function setSellFeePercent(
            uint256 liqFee,
            uint256 marketingFee,
            uint256 burnFee
        ) external onlyOwner {
            _sellLiquidityFee = liqFee;
            _sellMarketingFee = marketingFee;
            _sellBurnFee = burnFee;
            uint256 sFee = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBurnFee);
            require(sFee <= 40, "ERC20: Sell fees cannot be more than 40%");
        }

        function setBuyFeePercent(
            uint256 liqFee,
            uint256 marketingFee,
            uint256 burnFee
        ) external onlyOwner {
            _buyLiquidityFee = liqFee;
            _buyMarketingFee = marketingFee;
            _buyBurnFee = burnFee;    
            uint256 bFee = _buyLiquidityFee.add(_buyMarketingFee).add(_buyBurnFee);
            require(bFee <= 40, "ERC20: Buy fees cannot be more than 40%");
        }
        function setMarketingWalletAddress(address _addr) external onlyOwner {
            _marketingWalletAddress = _addr;
        }  
        
        function setNumTokensSellToAddToLiquidity(uint256 amount) external onlyOwner {
            numTokensSellToAddToLiquidity = amount * 10 ** decimals();
        }

        function setRouterAddress(address newRouter) external onlyOwner {
            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouter);
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
            uniswapV2Router = _uniswapV2Router;
        }

        function setSwapAndLiquifyEnabled(bool _enabled) external onlyOwner {
            swapAndLiquifyEnabled = _enabled;
            emit SwapAndLiquifyEnabledUpdated(_enabled);
        }
        
        //to recieve ETH from uniswapV2Router when swaping
        receive() external payable {}
    
        function _transfer(
            address from,
            address to,
            uint256 amount
        ) internal override {
            require(from != address(0), "ERC20: transfer from the zero address");
            require(to != address(0), "ERC20: transfer to the zero address");
            require(amount > 0, "Transfer amount must be greater than zero");
        
        if (from != owner() && to != owner())
            require( _isExcludedFromMaxTnxLimit[from] || _isExcludedFromMaxTnxLimit[to] || 
                amount <= _maxTxAmount,
                "ERC20: Transfer amount exceeds the maxTxAmount."
            );
        
        
        if (
            from != owner() &&
            to != address(this) &&
            to != _burnAddress &&
            to != uniswapV2Pair ) 
        {
            uint256 currentBalance = balanceOf(to);
            require(_isExcludedFromMaxWallet[to] || (currentBalance + amount <= _maxWalletBalance),
                    "ERC20: Reached max wallet holding");
        }

            uint256 contractTokenBalance = balanceOf(address(this)); 
            bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
            if (
                overMinTokenBalance &&
                !inSwapAndLiquify &&
                from != uniswapV2Pair &&
                swapAndLiquifyEnabled
            ) {
                contractTokenBalance = numTokensSellToAddToLiquidity;
                swapBack(contractTokenBalance);
            }

            bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            super._transfer(from, to, amount);
            takeFee = false;
        } else {

            if (from == uniswapV2Pair) {
                // Buy
                uint256 liquidityTokens = amount.mul(_buyLiquidityFee).div(100);
                uint256 marketingTokens = amount.mul(_buyMarketingFee).div(100);
                uint256 burnTokens = amount.mul(_buyBurnFee).div(100);

                amount= amount.sub(liquidityTokens.add(marketingTokens).add(burnTokens));
                super._transfer(from, address(this), liquidityTokens);
                super._transfer(from, address(this),marketingTokens);
                super._transfer(from, _burnAddress, burnTokens);
                super._transfer(from, to, amount);

            } else if (to == uniswapV2Pair) {
                // Sell
                uint256 liquidityTokens = amount.mul(_sellLiquidityFee).div(100);
                uint256 marketingTokens = amount.mul(_sellMarketingFee).div(100);
                uint256 burnTokens = amount.mul(_sellBurnFee).div(100);

                amount= amount.sub(liquidityTokens.add(marketingTokens).add(burnTokens));
                super._transfer(from, address(this), liquidityTokens);
                super._transfer(from, address(this),marketingTokens);
                super._transfer(from, _burnAddress, burnTokens);
                super._transfer(from, to, amount);
            } else {
                // Transfer
                super._transfer(from, to, amount);
            }
        
        }

        }

         function swapBack(uint256 contractBalance) private lockTheSwap {

                uint256 tokensForLiquidity = contractBalance.mul(_sellLiquidityFee).div(100);
                uint256 marketingTokens = contractBalance.mul(_sellMarketingFee).div(100);

                uint256 totalTokensToSwap = tokensForLiquidity + marketingTokens;
                
                if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

                bool success;
                
                // Halve the amount of liquidity tokens
                uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
                
                swapTokensForEth(contractBalance - liquidityTokens); 
                
                uint256 ethBalance = address(this).balance;
                uint256 ethForLiquidity = ethBalance;

                uint256 ethForMarketing = ethBalance * marketingTokens / (totalTokensToSwap - (tokensForLiquidity/2));

                ethForLiquidity -= ethForMarketing;
                                
                if(liquidityTokens > 0 && ethForLiquidity > 0){
                    addLiquidity(liquidityTokens, ethForLiquidity);

                }

                (success,) = address(_marketingWalletAddress).call{value: ethForMarketing}("");
        }       

        function swapTokensForEth(uint256 tokenAmount) private {
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0, // accept any amount of ETH
                path,
                address(this),
                block.timestamp
            );
        }

        function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.addLiquidityETH{value: ethAmount}(
                address(this),
                tokenAmount,
                0, // slippage is unavoidable
                0, // slippage is unavoidable
                owner(),
                block.timestamp
            );
        }
    }

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludeInWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxTnxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxTnxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liqFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBalancePercent","type":"uint256"}],"name":"setMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liqFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600d819055600e819055600f819055601081905560118190556012556014805460ff60a81b1916600160a81b1790553480156200004257600080fd5b50604051806040016040528060088152602001674d696e694172626960c01b815250604051806040016040528060058152602001644d4152424960d81b81525062000092620004d360201b60201c565b600080546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36006620000e78382620006a1565b506007620000f68282620006a1565b5062000103915050601290565b6200011090600a62000880565b6200011f906298968062000891565b601755600b80546001600160a01b031990811673c1116058cf3949168f26e5b065f63c798a84d55217909155600c805490911661dead1790556040805163c45a015560e01b81529051731b02da8cb0d097eb8d57a175b88c7d8b4799750691829163c45a0155916004808201926020929091908290030181865afa158015620001ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d29190620008ab565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000220573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002469190620008ab565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ba9190620008ab565b601480546001600160a01b03199081166001600160a01b039384161790915560138054909116918316919091179055600160086000620002f73390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526008909352818320805485166001908117909155600b54821684528284208054861682179055600c54909116835290822080549093168117909255600990620003796000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526009909352818320805485166001908117909155600b54909116835290822080549093168117909255600a90620003e96000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600a909352818320805485166001908117909155600b549091168352912080549092161790556200047c620004576000546001600160a01b031690565b620004656012600a62000880565b62000476906402540be40062000891565b620004d7565b60646200048860055490565b6200049590600262000891565b620004a19190620008dd565b6015556064620004b060055490565b620004bd90600262000891565b620004c99190620008dd565b6016555062000916565b3390565b6001600160a01b038216620005325760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b6200054e81600554620005e660201b620012d81790919060201c565b6005556001600160a01b03821660009081526003602090815260409091205462000583918390620012d8620005e6821b17901c565b6001600160a01b0383166000818152600360205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620005d59085815260200190565b60405180910390a35050565b505050565b6000620005f4828462000900565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200062857607f821691505b6020821081036200064957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005e157600081815260208120601f850160051c81016020861015620006785750805b601f850160051c820191505b81811015620006995782815560010162000684565b505050505050565b81516001600160401b03811115620006bd57620006bd620005fd565b620006d581620006ce845462000613565b846200064f565b602080601f8311600181146200070d5760008415620006f45750858301515b600019600386901b1c1916600185901b17855562000699565b600085815260208120601f198616915b828110156200073e578886015182559484019460019091019084016200071d565b50858210156200075d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007c4578160001904821115620007a857620007a86200076d565b80851615620007b657918102915b93841c939080029062000788565b509250929050565b600082620007dd57506001620005f7565b81620007ec57506000620005f7565b8160018114620008055760028114620008105762000830565b6001915050620005f7565b60ff8411156200082457620008246200076d565b50506001821b620005f7565b5060208310610133831016604e8410600b841016171562000855575081810a620005f7565b62000861838362000783565b80600019048211156200087857620008786200076d565b029392505050565b6000620005f460ff841683620007cc565b8082028115828204841417620005f757620005f76200076d565b600060208284031215620008be57600080fd5b81516001600160a01b0381168114620008d657600080fd5b9392505050565b600082620008fb57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005f757620005f76200076d565b61249c80620009266000396000f3fe6080604052600436106102815760003560e01c80637abdc1ca1161014f578063be19674b116100c1578063dc44b6a01161007a578063dc44b6a0146107a6578063dd467064146107bc578063dd62ed3e146107dc578063ec28438a14610822578063f0f165af14610842578063f2fde38b1461086257600080fd5b8063be19674b1461070e578063c49b9a801461072e578063c5d241891461074e578063c860795214610764578063d12a76881461077a578063d4a5af841461079057600080fd5b806395d89b411161011357806395d89b41146106645780639904a1c314610679578063a457c2d714610699578063a69df4b5146106b9578063a9059cbb146106ce578063bd3900c0146106ee57600080fd5b80637abdc1ca146105e45780637d1db4a5146105fa57806388790a68146106105780638da5cb5b146106265780638e4d62af1461064457600080fd5b806341cb87fc116101f35780635342acb4116101ac5780635342acb4146104d857806355874a79146105115780636dd3d39f1461054a57806370a0823114610583578063715018a6146105b957806379af25a6146105ce57600080fd5b806341cb87fc1461041757806342966c681461043757806348eb61b61461045757806349bd5a5e146104775780634a74bb02146104975780634cb80fd5146104b857600080fd5b806318160ddd1161024557806318160ddd1461036657806323b872dd1461037b578063313ce5671461039b57806339509351146103b75780633a9e00de146103d75780634144d9e4146103f757600080fd5b806306fdde031461028d578063095ea7b3146102b8578063151cd1c2146102e85780631694505e1461030a57806316f2f1a81461034257600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2610882565b6040516102af9190611eb0565b60405180910390f35b3480156102c457600080fd5b506102d86102d3366004611f13565b610914565b60405190151581526020016102af565b3480156102f457600080fd5b50610308610303366004611f3f565b61092b565b005b34801561031657600080fd5b5060135461032a906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b34801561034e57600080fd5b50610358600f5481565b6040519081526020016102af565b34801561037257600080fd5b50600554610358565b34801561038757600080fd5b506102d8610396366004611f6b565b6109ed565b3480156103a757600080fd5b50604051601281526020016102af565b3480156103c357600080fd5b506102d86103d2366004611f13565b610a56565b3480156103e357600080fd5b506103086103f2366004611fac565b610a8c565b34801561040357600080fd5b50600b5461032a906001600160a01b031681565b34801561042357600080fd5b50610308610432366004611fc5565b610ad2565b34801561044357600080fd5b50610308610452366004611fac565b610c77565b34801561046357600080fd5b50610308610472366004611ff7565b610cc3565b34801561048357600080fd5b5060145461032a906001600160a01b031681565b3480156104a357600080fd5b506014546102d890600160a81b900460ff1681565b3480156104c457600080fd5b506103086104d3366004611fc5565b610d18565b3480156104e457600080fd5b506102d86104f3366004611fc5565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561051d57600080fd5b506102d861052c366004611fc5565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561055657600080fd5b506102d8610565366004611fc5565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561058f57600080fd5b5061035861059e366004611fc5565b6001600160a01b031660009081526003602052604090205490565b3480156105c557600080fd5b50610308610d64565b3480156105da57600080fd5b5061035860025481565b3480156105f057600080fd5b5061035860125481565b34801561060657600080fd5b5061035860165481565b34801561061c57600080fd5b5061035860105481565b34801561063257600080fd5b506000546001600160a01b031661032a565b34801561065057600080fd5b5061030861065f366004611ff7565b610dc6565b34801561067057600080fd5b506102a2610e1b565b34801561068557600080fd5b50610308610694366004611ff7565b610e2a565b3480156106a557600080fd5b506102d86106b4366004611f13565b610e7f565b3480156106c557600080fd5b50610308610ece565b3480156106da57600080fd5b506102d86106e9366004611f13565b610fca565b3480156106fa57600080fd5b50600c5461032a906001600160a01b031681565b34801561071a57600080fd5b50610308610729366004611f3f565b610fd7565b34801561073a57600080fd5b5061030861074936600461202c565b611083565b34801561075a57600080fd5b50610358600e5481565b34801561077057600080fd5b5061035860115481565b34801561078657600080fd5b5061035860175481565b34801561079c57600080fd5b5061035860155481565b3480156107b257600080fd5b50610358600d5481565b3480156107c857600080fd5b506103086107d7366004611fac565b611105565b3480156107e857600080fd5b506103586107f7366004612047565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561082e57600080fd5b5061030861083d366004611fac565b611174565b34801561084e57600080fd5b5061030861085d366004611fac565b6111ba565b34801561086e57600080fd5b5061030861087d366004611fc5565b611200565b60606006805461089190612080565b80601f01602080910402602001604051908101604052809291908181526020018280546108bd90612080565b801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b5050505050905090565b60006109213384846112eb565b5060015b92915050565b6000546001600160a01b0316331461095e5760405162461bcd60e51b8152600401610955906120ba565b60405180910390fd5b60108390556011829055601281905560006109838261097d86866112d8565b906112d8565b905060288111156109e75760405162461bcd60e51b815260206004820152602860248201527f45524332303a2053656c6c20666565732063616e6e6f74206265206d6f7265206044820152677468616e2034302560c01b6064820152608401610955565b50505050565b60006109fa848484611410565b610a4c8433610a47856040518060600160405280602881526020016123fa602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906118b1565b6112eb565b5060019392505050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610921918590610a4790866112d8565b6000546001600160a01b03163314610ab65760405162461bcd60e51b8152600401610955906120ba565b610ac26012600a6121e9565b610acc90826121f8565b60155550565b6000546001600160a01b03163314610afc5760405162461bcd60e51b8152600401610955906120ba565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b63919061220f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd4919061220f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c45919061220f565b601480546001600160a01b039283166001600160a01b0319918216179091556013805493909216921691909117905550565b6000546001600160a01b03163314610ca15760405162461bcd60e51b8152600401610955906120ba565b610cc033610cb16012600a6121e9565b610cbb90846121f8565b6118dd565b50565b6000546001600160a01b03163314610ced5760405162461bcd60e51b8152600401610955906120ba565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d425760405162461bcd60e51b8152600401610955906120ba565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d8e5760405162461bcd60e51b8152600401610955906120ba565b600080546040516001600160a01b0390911690600080516020612422833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610df05760405162461bcd60e51b8152600401610955906120ba565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b60606007805461089190612080565b6000546001600160a01b03163314610e545760405162461bcd60e51b8152600401610955906120ba565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60006109213384610a4785604051806060016040528060258152602001612442602591393360009081526004602090815260408083206001600160a01b038d16845290915290205491906118b1565b6001546001600160a01b03163314610f345760405162461bcd60e51b8152602060048201526024808201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60448201526337b1b59760e11b6064820152608401610955565b6002544211610f7b5760405162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903637b1b5b2b21760691b6044820152606401610955565b600154600080546040516001600160a01b03938416939091169160008051602061242283398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610921338484611410565b6000546001600160a01b031633146110015760405162461bcd60e51b8152600401610955906120ba565b600d839055600e829055600f81905560006110208261097d86866112d8565b905060288111156109e75760405162461bcd60e51b815260206004820152602760248201527f45524332303a2042757920666565732063616e6e6f74206265206d6f7265207460448201526668616e2034302560c81b6064820152608401610955565b6000546001600160a01b031633146110ad5760405162461bcd60e51b8152600401610955906120ba565b60148054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110fa90831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461112f5760405162461bcd60e51b8152600401610955906120ba565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516815560028290556040518190600080516020612422833981519152908290a350565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610955906120ba565b6111aa6012600a6121e9565b6111b490826121f8565b60165550565b6000546001600160a01b031633146111e45760405162461bcd60e51b8152600401610955906120ba565b6111f06012600a6121e9565b6111fa90826121f8565b60175550565b6000546001600160a01b0316331461122a5760405162461bcd60e51b8152600401610955906120ba565b6001600160a01b03811661128f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610955565b600080546040516001600160a01b038085169392169160008051602061242283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006112e4828461222c565b9392505050565b6001600160a01b03831661134d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610955565b6001600160a01b0382166113ae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610955565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166114365760405162461bcd60e51b81526004016109559061223f565b6001600160a01b03821661145c5760405162461bcd60e51b815260040161095590612284565b600081116114be5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610955565b6000546001600160a01b038481169116148015906114ea57506000546001600160a01b03838116911614155b1561159f576001600160a01b0383166000908152600a602052604090205460ff168061152e57506001600160a01b0382166000908152600a602052604090205460ff165b8061153b57506016548111155b61159f5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a205472616e7366657220616d6f756e742065786365656473207460448201526e34329036b0bc2a3c20b6b7bab73a1760891b6064820152608401610955565b6000546001600160a01b038481169116148015906115c657506001600160a01b0382163014155b80156115e05750600c546001600160a01b03838116911614155b80156115fa57506014546001600160a01b03838116911614155b15611695576001600160a01b03821660009081526003602090815260408083205460099092529091205460ff168061163d575060155461163a838361222c565b11155b6116935760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564206d61782077616c6c657420686f6c64696e6044820152606760f81b6064820152608401610955565b505b30600090815260036020526040902054601754811080159081906116c35750601454600160a01b900460ff16155b80156116dd57506014546001600160a01b03868116911614155b80156116f25750601454600160a81b900460ff165b15611705576017549150611705826119e8565b6001600160a01b03851660009081526008602052604090205460019060ff168061174757506001600160a01b03851660009081526008602052604090205460ff165b1561175f57611757868686611b59565b5060006118a9565b6014546001600160a01b03908116908716036118305760006117976064611791600d5488611c6590919063ffffffff16565b90611c71565b905060006117b56064611791600e5489611c6590919063ffffffff16565b905060006117d36064611791600f548a611c6590919063ffffffff16565b90506117ed6117e68261097d86866112d8565b8890611c7d565b96506117fa893085611b59565b611805893084611b59565b600c5461181d908a906001600160a01b031683611b59565b611828898989611b59565b5050506118a9565b6014546001600160a01b039081169086160361189e576000611862606461179160105488611c6590919063ffffffff16565b90506000611880606461179160115489611c6590919063ffffffff16565b905060006117d360646117916012548a611c6590919063ffffffff16565b6118a9868686611b59565b505050505050565b600081848411156118d55760405162461bcd60e51b81526004016109559190611eb0565b505050900390565b6001600160a01b03821661193d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610955565b61197a816040518060600160405280602281526020016123b2602291396001600160a01b03851660009081526003602052604090205491906118b1565b6001600160a01b0383166000908152600360205260409020556005546119a09082611c7d565b6005556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6014805460ff60a01b1916600160a01b179055601054600090611a1390606490611791908590611c65565b90506000611a31606461179160115486611c6590919063ffffffff16565b90506000611a3f828461222c565b9050831580611a4c575080155b15611a5957505050611b49565b600080600283611a6987896121f8565b611a7391906122c7565b611a7d91906122c7565b9050611a91611a8c82886122e9565b611c89565b47806000611aa06002896122c7565b611aaa90876122e9565b611ab488856121f8565b611abe91906122c7565b9050611aca81836122e9565b9150600084118015611adc5750600082115b15611aeb57611aeb8483611ddb565b600b546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611b38576040519150601f19603f3d011682016040523d82523d6000602084013e611b3d565b606091505b50505050505050505050505b506014805460ff60a01b19169055565b6001600160a01b038316611b7f5760405162461bcd60e51b81526004016109559061223f565b6001600160a01b038216611ba55760405162461bcd60e51b815260040161095590612284565b611be2816040518060600160405280602681526020016123d4602691396001600160a01b03861660009081526003602052604090205491906118b1565b6001600160a01b038085166000908152600360205260408082209390935590841681522054611c1190826112d8565b6001600160a01b0380841660008181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114039085815260200190565b60006112e482846121f8565b60006112e482846122c7565b60006112e482846122e9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cbe57611cbe6122fc565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3b919061220f565b81600181518110611d4e57611d4e6122fc565b6001600160a01b039283166020918202929092010152601354611d7491309116846112eb565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dad908590600090869030904290600401612312565b600060405180830381600087803b158015611dc757600080fd5b505af11580156118a9573d6000803e3d6000fd5b601354611df39030906001600160a01b0316846112eb565b6013546001600160a01b031663f305d719823085600080611e1c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611e84573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ea99190612383565b5050505050565b600060208083528351808285015260005b81811015611edd57858101830151858201604001528201611ec1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cc057600080fd5b60008060408385031215611f2657600080fd5b8235611f3181611efe565b946020939093013593505050565b600080600060608486031215611f5457600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611f8057600080fd5b8335611f8b81611efe565b92506020840135611f9b81611efe565b929592945050506040919091013590565b600060208284031215611fbe57600080fd5b5035919050565b600060208284031215611fd757600080fd5b81356112e481611efe565b80358015158114611ff257600080fd5b919050565b6000806040838503121561200a57600080fd5b823561201581611efe565b915061202360208401611fe2565b90509250929050565b60006020828403121561203e57600080fd5b6112e482611fe2565b6000806040838503121561205a57600080fd5b823561206581611efe565b9150602083013561207581611efe565b809150509250929050565b600181811c9082168061209457607f821691505b6020821081036120b457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612140578160001904821115612126576121266120ef565b8085161561213357918102915b93841c939080029061210a565b509250929050565b60008261215757506001610925565b8161216457506000610925565b816001811461217a5760028114612184576121a0565b6001915050610925565b60ff841115612195576121956120ef565b50506001821b610925565b5060208310610133831016604e8410600b84101617156121c3575081810a610925565b6121cd8383612105565b80600019048211156121e1576121e16120ef565b029392505050565b60006112e460ff841683612148565b8082028115828204841417610925576109256120ef565b60006020828403121561222157600080fd5b81516112e481611efe565b80820180821115610925576109256120ef565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826122e457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610925576109256120ef565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123625784516001600160a01b03168352938301939183019160010161233d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561239857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d1c6f25f23f58996891f73cab53a1bc6b54d3d613fee531dd98966ff39a8454f64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102815760003560e01c80637abdc1ca1161014f578063be19674b116100c1578063dc44b6a01161007a578063dc44b6a0146107a6578063dd467064146107bc578063dd62ed3e146107dc578063ec28438a14610822578063f0f165af14610842578063f2fde38b1461086257600080fd5b8063be19674b1461070e578063c49b9a801461072e578063c5d241891461074e578063c860795214610764578063d12a76881461077a578063d4a5af841461079057600080fd5b806395d89b411161011357806395d89b41146106645780639904a1c314610679578063a457c2d714610699578063a69df4b5146106b9578063a9059cbb146106ce578063bd3900c0146106ee57600080fd5b80637abdc1ca146105e45780637d1db4a5146105fa57806388790a68146106105780638da5cb5b146106265780638e4d62af1461064457600080fd5b806341cb87fc116101f35780635342acb4116101ac5780635342acb4146104d857806355874a79146105115780636dd3d39f1461054a57806370a0823114610583578063715018a6146105b957806379af25a6146105ce57600080fd5b806341cb87fc1461041757806342966c681461043757806348eb61b61461045757806349bd5a5e146104775780634a74bb02146104975780634cb80fd5146104b857600080fd5b806318160ddd1161024557806318160ddd1461036657806323b872dd1461037b578063313ce5671461039b57806339509351146103b75780633a9e00de146103d75780634144d9e4146103f757600080fd5b806306fdde031461028d578063095ea7b3146102b8578063151cd1c2146102e85780631694505e1461030a57806316f2f1a81461034257600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a2610882565b6040516102af9190611eb0565b60405180910390f35b3480156102c457600080fd5b506102d86102d3366004611f13565b610914565b60405190151581526020016102af565b3480156102f457600080fd5b50610308610303366004611f3f565b61092b565b005b34801561031657600080fd5b5060135461032a906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b34801561034e57600080fd5b50610358600f5481565b6040519081526020016102af565b34801561037257600080fd5b50600554610358565b34801561038757600080fd5b506102d8610396366004611f6b565b6109ed565b3480156103a757600080fd5b50604051601281526020016102af565b3480156103c357600080fd5b506102d86103d2366004611f13565b610a56565b3480156103e357600080fd5b506103086103f2366004611fac565b610a8c565b34801561040357600080fd5b50600b5461032a906001600160a01b031681565b34801561042357600080fd5b50610308610432366004611fc5565b610ad2565b34801561044357600080fd5b50610308610452366004611fac565b610c77565b34801561046357600080fd5b50610308610472366004611ff7565b610cc3565b34801561048357600080fd5b5060145461032a906001600160a01b031681565b3480156104a357600080fd5b506014546102d890600160a81b900460ff1681565b3480156104c457600080fd5b506103086104d3366004611fc5565b610d18565b3480156104e457600080fd5b506102d86104f3366004611fc5565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561051d57600080fd5b506102d861052c366004611fc5565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561055657600080fd5b506102d8610565366004611fc5565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561058f57600080fd5b5061035861059e366004611fc5565b6001600160a01b031660009081526003602052604090205490565b3480156105c557600080fd5b50610308610d64565b3480156105da57600080fd5b5061035860025481565b3480156105f057600080fd5b5061035860125481565b34801561060657600080fd5b5061035860165481565b34801561061c57600080fd5b5061035860105481565b34801561063257600080fd5b506000546001600160a01b031661032a565b34801561065057600080fd5b5061030861065f366004611ff7565b610dc6565b34801561067057600080fd5b506102a2610e1b565b34801561068557600080fd5b50610308610694366004611ff7565b610e2a565b3480156106a557600080fd5b506102d86106b4366004611f13565b610e7f565b3480156106c557600080fd5b50610308610ece565b3480156106da57600080fd5b506102d86106e9366004611f13565b610fca565b3480156106fa57600080fd5b50600c5461032a906001600160a01b031681565b34801561071a57600080fd5b50610308610729366004611f3f565b610fd7565b34801561073a57600080fd5b5061030861074936600461202c565b611083565b34801561075a57600080fd5b50610358600e5481565b34801561077057600080fd5b5061035860115481565b34801561078657600080fd5b5061035860175481565b34801561079c57600080fd5b5061035860155481565b3480156107b257600080fd5b50610358600d5481565b3480156107c857600080fd5b506103086107d7366004611fac565b611105565b3480156107e857600080fd5b506103586107f7366004612047565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561082e57600080fd5b5061030861083d366004611fac565b611174565b34801561084e57600080fd5b5061030861085d366004611fac565b6111ba565b34801561086e57600080fd5b5061030861087d366004611fc5565b611200565b60606006805461089190612080565b80601f01602080910402602001604051908101604052809291908181526020018280546108bd90612080565b801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b5050505050905090565b60006109213384846112eb565b5060015b92915050565b6000546001600160a01b0316331461095e5760405162461bcd60e51b8152600401610955906120ba565b60405180910390fd5b60108390556011829055601281905560006109838261097d86866112d8565b906112d8565b905060288111156109e75760405162461bcd60e51b815260206004820152602860248201527f45524332303a2053656c6c20666565732063616e6e6f74206265206d6f7265206044820152677468616e2034302560c01b6064820152608401610955565b50505050565b60006109fa848484611410565b610a4c8433610a47856040518060600160405280602881526020016123fa602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906118b1565b6112eb565b5060019392505050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610921918590610a4790866112d8565b6000546001600160a01b03163314610ab65760405162461bcd60e51b8152600401610955906120ba565b610ac26012600a6121e9565b610acc90826121f8565b60155550565b6000546001600160a01b03163314610afc5760405162461bcd60e51b8152600401610955906120ba565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b63919061220f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd4919061220f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c45919061220f565b601480546001600160a01b039283166001600160a01b0319918216179091556013805493909216921691909117905550565b6000546001600160a01b03163314610ca15760405162461bcd60e51b8152600401610955906120ba565b610cc033610cb16012600a6121e9565b610cbb90846121f8565b6118dd565b50565b6000546001600160a01b03163314610ced5760405162461bcd60e51b8152600401610955906120ba565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d425760405162461bcd60e51b8152600401610955906120ba565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d8e5760405162461bcd60e51b8152600401610955906120ba565b600080546040516001600160a01b0390911690600080516020612422833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610df05760405162461bcd60e51b8152600401610955906120ba565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b60606007805461089190612080565b6000546001600160a01b03163314610e545760405162461bcd60e51b8152600401610955906120ba565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60006109213384610a4785604051806060016040528060258152602001612442602591393360009081526004602090815260408083206001600160a01b038d16845290915290205491906118b1565b6001546001600160a01b03163314610f345760405162461bcd60e51b8152602060048201526024808201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60448201526337b1b59760e11b6064820152608401610955565b6002544211610f7b5760405162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903637b1b5b2b21760691b6044820152606401610955565b600154600080546040516001600160a01b03938416939091169160008051602061242283398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610921338484611410565b6000546001600160a01b031633146110015760405162461bcd60e51b8152600401610955906120ba565b600d839055600e829055600f81905560006110208261097d86866112d8565b905060288111156109e75760405162461bcd60e51b815260206004820152602760248201527f45524332303a2042757920666565732063616e6e6f74206265206d6f7265207460448201526668616e2034302560c81b6064820152608401610955565b6000546001600160a01b031633146110ad5760405162461bcd60e51b8152600401610955906120ba565b60148054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110fa90831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461112f5760405162461bcd60e51b8152600401610955906120ba565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516815560028290556040518190600080516020612422833981519152908290a350565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610955906120ba565b6111aa6012600a6121e9565b6111b490826121f8565b60165550565b6000546001600160a01b031633146111e45760405162461bcd60e51b8152600401610955906120ba565b6111f06012600a6121e9565b6111fa90826121f8565b60175550565b6000546001600160a01b0316331461122a5760405162461bcd60e51b8152600401610955906120ba565b6001600160a01b03811661128f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610955565b600080546040516001600160a01b038085169392169160008051602061242283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006112e4828461222c565b9392505050565b6001600160a01b03831661134d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610955565b6001600160a01b0382166113ae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610955565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166114365760405162461bcd60e51b81526004016109559061223f565b6001600160a01b03821661145c5760405162461bcd60e51b815260040161095590612284565b600081116114be5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610955565b6000546001600160a01b038481169116148015906114ea57506000546001600160a01b03838116911614155b1561159f576001600160a01b0383166000908152600a602052604090205460ff168061152e57506001600160a01b0382166000908152600a602052604090205460ff165b8061153b57506016548111155b61159f5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a205472616e7366657220616d6f756e742065786365656473207460448201526e34329036b0bc2a3c20b6b7bab73a1760891b6064820152608401610955565b6000546001600160a01b038481169116148015906115c657506001600160a01b0382163014155b80156115e05750600c546001600160a01b03838116911614155b80156115fa57506014546001600160a01b03838116911614155b15611695576001600160a01b03821660009081526003602090815260408083205460099092529091205460ff168061163d575060155461163a838361222c565b11155b6116935760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564206d61782077616c6c657420686f6c64696e6044820152606760f81b6064820152608401610955565b505b30600090815260036020526040902054601754811080159081906116c35750601454600160a01b900460ff16155b80156116dd57506014546001600160a01b03868116911614155b80156116f25750601454600160a81b900460ff165b15611705576017549150611705826119e8565b6001600160a01b03851660009081526008602052604090205460019060ff168061174757506001600160a01b03851660009081526008602052604090205460ff165b1561175f57611757868686611b59565b5060006118a9565b6014546001600160a01b03908116908716036118305760006117976064611791600d5488611c6590919063ffffffff16565b90611c71565b905060006117b56064611791600e5489611c6590919063ffffffff16565b905060006117d36064611791600f548a611c6590919063ffffffff16565b90506117ed6117e68261097d86866112d8565b8890611c7d565b96506117fa893085611b59565b611805893084611b59565b600c5461181d908a906001600160a01b031683611b59565b611828898989611b59565b5050506118a9565b6014546001600160a01b039081169086160361189e576000611862606461179160105488611c6590919063ffffffff16565b90506000611880606461179160115489611c6590919063ffffffff16565b905060006117d360646117916012548a611c6590919063ffffffff16565b6118a9868686611b59565b505050505050565b600081848411156118d55760405162461bcd60e51b81526004016109559190611eb0565b505050900390565b6001600160a01b03821661193d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610955565b61197a816040518060600160405280602281526020016123b2602291396001600160a01b03851660009081526003602052604090205491906118b1565b6001600160a01b0383166000908152600360205260409020556005546119a09082611c7d565b6005556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6014805460ff60a01b1916600160a01b179055601054600090611a1390606490611791908590611c65565b90506000611a31606461179160115486611c6590919063ffffffff16565b90506000611a3f828461222c565b9050831580611a4c575080155b15611a5957505050611b49565b600080600283611a6987896121f8565b611a7391906122c7565b611a7d91906122c7565b9050611a91611a8c82886122e9565b611c89565b47806000611aa06002896122c7565b611aaa90876122e9565b611ab488856121f8565b611abe91906122c7565b9050611aca81836122e9565b9150600084118015611adc5750600082115b15611aeb57611aeb8483611ddb565b600b546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611b38576040519150601f19603f3d011682016040523d82523d6000602084013e611b3d565b606091505b50505050505050505050505b506014805460ff60a01b19169055565b6001600160a01b038316611b7f5760405162461bcd60e51b81526004016109559061223f565b6001600160a01b038216611ba55760405162461bcd60e51b815260040161095590612284565b611be2816040518060600160405280602681526020016123d4602691396001600160a01b03861660009081526003602052604090205491906118b1565b6001600160a01b038085166000908152600360205260408082209390935590841681522054611c1190826112d8565b6001600160a01b0380841660008181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114039085815260200190565b60006112e482846121f8565b60006112e482846122c7565b60006112e482846122e9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cbe57611cbe6122fc565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3b919061220f565b81600181518110611d4e57611d4e6122fc565b6001600160a01b039283166020918202929092010152601354611d7491309116846112eb565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dad908590600090869030904290600401612312565b600060405180830381600087803b158015611dc757600080fd5b505af11580156118a9573d6000803e3d6000fd5b601354611df39030906001600160a01b0316846112eb565b6013546001600160a01b031663f305d719823085600080611e1c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611e84573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ea99190612383565b5050505050565b600060208083528351808285015260005b81811015611edd57858101830151858201604001528201611ec1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cc057600080fd5b60008060408385031215611f2657600080fd5b8235611f3181611efe565b946020939093013593505050565b600080600060608486031215611f5457600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611f8057600080fd5b8335611f8b81611efe565b92506020840135611f9b81611efe565b929592945050506040919091013590565b600060208284031215611fbe57600080fd5b5035919050565b600060208284031215611fd757600080fd5b81356112e481611efe565b80358015158114611ff257600080fd5b919050565b6000806040838503121561200a57600080fd5b823561201581611efe565b915061202360208401611fe2565b90509250929050565b60006020828403121561203e57600080fd5b6112e482611fe2565b6000806040838503121561205a57600080fd5b823561206581611efe565b9150602083013561207581611efe565b809150509250929050565b600181811c9082168061209457607f821691505b6020821081036120b457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612140578160001904821115612126576121266120ef565b8085161561213357918102915b93841c939080029061210a565b509250929050565b60008261215757506001610925565b8161216457506000610925565b816001811461217a5760028114612184576121a0565b6001915050610925565b60ff841115612195576121956120ef565b50506001821b610925565b5060208310610133831016604e8410600b84101617156121c3575081810a610925565b6121cd8383612105565b80600019048211156121e1576121e16120ef565b029392505050565b60006112e460ff841683612148565b8082028115828204841417610925576109256120ef565b60006020828403121561222157600080fd5b81516112e481611efe565b80820180821115610925576109256120ef565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826122e457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610925576109256120ef565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123625784516001600160a01b03168352938301939183019160010161233d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561239857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d1c6f25f23f58996891f73cab53a1bc6b54d3d613fee531dd98966ff39a8454f64736f6c63430008110033

Deployed ByteCode Sourcemap

10075:12210:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4747:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5749:181;;;;;;;;;;-1:-1:-1;5749:181:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5749:181:0;1023:187:1;14757:454:0;;;;;;;;;;-1:-1:-1;14757:454:0;;;;;:::i;:::-;;:::i;:::-;;10726:41;;;;;;;;;;-1:-1:-1;10726:41:0;;;;-1:-1:-1;;;;;10726:41:0;;;;;;-1:-1:-1;;;;;1726:32:1;;;1708:51;;1696:2;1681:18;10726:41:0;1536:229:1;10541:30:0;;;;;;;;;;;;;;;;;;;1916:25:1;;;1904:2;1889:18;10541:30:0;1770:177:1;5104:116:0;;;;;;;;;;-1:-1:-1;5196:12:0;;5104:116;;5942:387;;;;;;;;;;-1:-1:-1;5942:387:0;;;;;:::i;:::-;;:::i;4991:101::-;;;;;;;;;;-1:-1:-1;4991:101:0;;5078:2;2555:36:1;;2543:2;2528:18;4991:101:0;2413:184:1;6341:230:0;;;;;;;;;;-1:-1:-1;6341:230:0;;;;;:::i;:::-;;:::i;14448:153::-;;;;;;;;;;-1:-1:-1;14448:153:0;;;;;:::i;:::-;;:::i;10352:38::-;;;;;;;;;;-1:-1:-1;10352:38:0;;;;-1:-1:-1;;;;;10352:38:0;;;16005:334;;;;;;;;;;-1:-1:-1;16005:334:0;;;;;:::i;:::-;;:::i;13359:117::-;;;;;;;;;;-1:-1:-1;13359:117:0;;;;;:::i;:::-;;:::i;13654:155::-;;;;;;;;;;-1:-1:-1;13654:155:0;;;;;:::i;:::-;;:::i;10778:28::-;;;;;;;;;;-1:-1:-1;10778:28:0;;;;-1:-1:-1;;;;;10778:28:0;;;10849:40;;;;;;;;;;-1:-1:-1;10849:40:0;;;;-1:-1:-1;;;10849:40:0;;;;;;15683:127;;;;;;;;;;-1:-1:-1;15683:127:0;;;;;:::i;:::-;;:::i;13992:131::-;;;;;;;;;;-1:-1:-1;13992:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;14084:27:0;14056:4;14084:27;;;:18;:27;;;;;;;;;13992:131;14289:147;;;;;;;;;;-1:-1:-1;14289:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;14389:35:0;14361:4;14389:35;;;:26;:35;;;;;;;;;14289:147;14135:142;;;;;;;;;;-1:-1:-1;14135:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;14232:33:0;14205:4;14232:33;;;:24;:33;;;;;;;;;14135:142;5232:135;;;;;;;;;;-1:-1:-1;5232:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;5337:18:0;5306:7;5337:18;;;:9;:18;;;;;;;5232:135;2846:160;;;;;;;;;;;;;:::i;2305:24::-;;;;;;;;;;;;;;;;10682:31;;;;;;;;;;;;;;;;10943:27;;;;;;;;;;;;;;;;10586:36;;;;;;;;;;;;;;;;2579:95;;;;;;;;;;-1:-1:-1;2625:7:0;2656:6;-1:-1:-1;;;;;2656:6:0;2579:95;;13496:146;;;;;;;;;;-1:-1:-1;13496:146:0;;;;;:::i;:::-;;:::i;4867:112::-;;;;;;;;;;;;;:::i;13821:159::-;;;;;;;;;;-1:-1:-1;13821:159:0;;;;;:::i;:::-;;:::i;6583:281::-;;;;;;;;;;-1:-1:-1;6583:281:0;;;;;:::i;:::-;;:::i;3686:314::-;;;;;;;;;;;;;:::i;5379:187::-;;;;;;;;;;-1:-1:-1;5379:187:0;;;;;:::i;:::-;;:::i;10405:27::-;;;;;;;;;;-1:-1:-1;10405:27:0;;;;-1:-1:-1;;;;;10405:27:0;;;15223:450;;;;;;;;;;-1:-1:-1;15223:450:0;;;;;:::i;:::-;;:::i;16351:185::-;;;;;;;;;;-1:-1:-1;16351:185:0;;;;;:::i;:::-;;:::i;10493:35::-;;;;;;;;;;;;;;;;10634:36;;;;;;;;;;;;;;;;10981:44;;;;;;;;;;;;;;;;10900:32;;;;;;;;;;;;;;;;10445:35;;;;;;;;;;;;;;;;3370:228;;;;;;;;;;-1:-1:-1;3370:228:0;;;;;:::i;:::-;;:::i;5578:159::-;;;;;;;;;;-1:-1:-1;5578:159:0;;;;;:::i;:::-;-1:-1:-1;;;;;5698:18:0;;;5667:7;5698:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5578:159;14613:130;;;;;;;;;;-1:-1:-1;14613:130:0;;;;;:::i;:::-;;:::i;15832:161::-;;;;;;;;;;-1:-1:-1;15832:161:0;;;;;:::i;:::-;;:::i;3020:260::-;;;;;;;;;;-1:-1:-1;3020:260:0;;;;;:::i;:::-;;:::i;4747:108::-;4801:13;4838:5;4831:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4747:108;:::o;5749:181::-;5832:4;5853:39;2004:10;5876:7;5885:6;5853:8;:39::i;:::-;-1:-1:-1;5914:4:0;5749:181;;;;;:::o;14757:454::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;;;;;;;;;14923:17:::1;:26:::0;;;14964:17:::1;:32:::0;;;15011:12:::1;:22:::0;;;-1:-1:-1;15063:58:0::1;15026:7:::0;15063:40:::1;14943:6:::0;14984:12;15063:21:::1;:40::i;:::-;:44:::0;::::1;:58::i;:::-;15048:73;;15152:2;15144:4;:10;;15136:63;;;::::0;-1:-1:-1;;;15136:63:0;;5258:2:1;15136:63:0::1;::::0;::::1;5240:21:1::0;5297:2;5277:18;;;5270:30;5336:34;5316:18;;;5309:62;-1:-1:-1;;;5387:18:1;;;5380:38;5435:19;;15136:63:0::1;5056:404:1::0;15136:63:0::1;14908:303;14757:454:::0;;;:::o;5942:387::-;6098:4;6119:36;6129:6;6137:9;6148:6;6119:9;:36::i;:::-;6170:121;6179:6;2004:10;6201:89;6239:6;6201:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6201:19:0;;;;;;:11;:19;;;;;;;;2004:10;6201:33;;;;;;;;;;:37;:89::i;:::-;6170:8;:121::i;:::-;-1:-1:-1;6313:4:0;5942:387;;;;;:::o;6341:230::-;2004:10;6429:4;6482:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6482:34:0;;;;;;;;;;6429:4;;6450:83;;6473:7;;6482:50;;6521:10;6482:38;:50::i;14448:153::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;14574:15:::1;5078:2:::0;14574::::1;:15;:::i;:::-;14554:35;::::0;:17;:35:::1;:::i;:::-;14534:17;:55:::0;-1:-1:-1;14448:153:0:o;16005:334::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;16084:35:::1;16141:9;16084:67;;16200:16;-1:-1:-1::0;;;;;16200:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16182:56:0::1;;16247:4;16254:16;-1:-1:-1::0;;;;;16254:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16182:96;::::0;-1:-1:-1;;;;;;16182:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7639:15:1;;;16182:96:0::1;::::0;::::1;7621:34:1::0;7691:15;;7671:18;;;7664:43;7556:18;;16182:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16166:13;:112:::0;;-1:-1:-1;;;;;16166:112:0;;::::1;-1:-1:-1::0;;;;;;16166:112:0;;::::1;;::::0;;;16293:15:::1;:34:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;16005:334:0:o;13359:117::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;13420:44:::1;13426:10;13447:16;5078:2:::0;13447::::1;:16;:::i;:::-;13438:25;::::0;:6;:25:::1;:::i;:::-;13420:5;:44::i;:::-;13359:117:::0;:::o;13654:155::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13756:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;13756:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13654:155::o;15683:127::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;15767:23:::1;:31:::0;;-1:-1:-1;;;;;;15767:31:0::1;-1:-1:-1::0;;;;;15767:31:0;;;::::1;::::0;;;::::1;::::0;;15683:127::o;2846:160::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;2957:1:::1;2941:6:::0;;2920:40:::1;::::0;-1:-1:-1;;;;;2941:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;2920:40:0;2957:1;;2920:40:::1;2992:1;2975:19:::0;;-1:-1:-1;;;;;;2975:19:0::1;::::0;;2846:160::o;13496:146::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13595:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;13595:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13496:146::o;4867:112::-;4923:13;4960:7;4953:14;;;;;:::i;13821:159::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13925:35:0;;;::::1;;::::0;;;:26:::1;:35;::::0;;;;:43;;-1:-1:-1;;13925:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13821:159::o;6583:281::-;6676:4;6697:129;2004:10;6720:7;6729:96;6768:15;6729:96;;;;;;;;;;;;;;;;;2004:10;6729:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6729:34:0;;;;;;;;;;;;:38;:96::i;3686:314::-;3742:14;;-1:-1:-1;;;;;3742:14:0;3760:10;3742:28;3734:77;;;;-1:-1:-1;;;3734:77:0;;7920:2:1;3734:77:0;;;7902:21:1;7959:2;7939:18;;;7932:30;7998:34;7978:18;;;7971:62;-1:-1:-1;;;8049:18:1;;;8042:34;8093:19;;3734:77:0;7718:400:1;3734:77:0;3852:9;;3834:15;:27;3826:60;;;;-1:-1:-1;;;3826:60:0;;8325:2:1;3826:60:0;;;8307:21:1;8364:2;8344:18;;;8337:30;-1:-1:-1;;;8383:18:1;;;8376:49;8442:18;;3826:60:0;8123:343:1;3826:60:0;3935:14;;;3927:6;;3906:44;;-1:-1:-1;;;;;3935:14:0;;;;3927:6;;;;-1:-1:-1;;;;;;;;;;;3906:44:0;;3974:14;;;3965:23;;-1:-1:-1;;;;;;3965:23:0;-1:-1:-1;;;;;3974:14:0;;;3965:23;;;;;;3686:314::o;5379:187::-;5465:4;5486:42;2004:10;5510:9;5521:6;5486:9;:42::i;15223:450::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;15388:16:::1;:25:::0;;;15428:16:::1;:31:::0;;;15474:11:::1;:21:::0;;;-1:-1:-1;15529:55:0::1;15488:7:::0;15529:38:::1;15407:6:::0;15447:12;15529:20:::1;:38::i;:55::-;15514:70;;15615:2;15607:4;:10;;15599:62;;;::::0;-1:-1:-1;;;15599:62:0;;8673:2:1;15599:62:0::1;::::0;::::1;8655:21:1::0;8712:2;8692:18;;;8685:30;8751:34;8731:18;;;8724:62;-1:-1:-1;;;8802:18:1;;;8795:37;8849:19;;15599:62:0::1;8471:403:1::0;16351:185:0;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;16434:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;16434:32:0::1;-1:-1:-1::0;;;;16434:32:0;;::::1;;::::0;;16486:38:::1;::::0;::::1;::::0;::::1;::::0;16458:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;16486:38:0::1;;;;;;;;16351:185:::0;:::o;3370:228::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;3455:6:::1;::::0;;;3438:23;;-1:-1:-1;;;;;;3438:23:0;;::::1;-1:-1:-1::0;;;;;3455:6:0;::::1;3438:23;::::0;;;3476:19:::1;::::0;;3510:9:::1;:16:::0;;;3546:40:::1;::::0;3455:6;;-1:-1:-1;;;;;;;;;;;3546:40:0;3455:6;;3546:40:::1;3370:228:::0;:::o;14613:130::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;14717:15:::1;5078:2:::0;14717::::1;:15;:::i;:::-;14703:29;::::0;:11;:29:::1;:::i;:::-;14688:12;:44:::0;-1:-1:-1;14613:130:0:o;15832:161::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;15965:16:::1;5078:2:::0;15965::::1;:16;:::i;:::-;15956:25;::::0;:6;:25:::1;:::i;:::-;15924:29;:57:::0;-1:-1:-1;15832:161:0:o;3020:260::-;2625:7;2656:6;-1:-1:-1;;;;;2656:6:0;2004:10;2738:23;2730:68;;;;-1:-1:-1;;;2730:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3113:22:0;::::1;3105:73;;;::::0;-1:-1:-1;;;3105:73:0;;9081:2:1;3105:73:0::1;::::0;::::1;9063:21:1::0;9120:2;9100:18;;;9093:30;9159:34;9139:18;;;9132:62;-1:-1:-1;;;9210:18:1;;;9203:36;9256:19;;3105:73:0::1;8879:402:1::0;3105:73:0::1;3219:6;::::0;;3198:38:::1;::::0;-1:-1:-1;;;;;3198:38:0;;::::1;::::0;3219:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;3198:38:0;::::1;3251:6;:17:::0;;-1:-1:-1;;;;;;3251:17:0::1;-1:-1:-1::0;;;;;3251:17:0;;;::::1;::::0;;;::::1;::::0;;3020:260::o;909:106::-;967:7;998:5;1002:1;998;:5;:::i;:::-;991:12;909:106;-1:-1:-1;;;909:106:0:o;8373:416::-;-1:-1:-1;;;;;8529:19:0;;8521:68;;;;-1:-1:-1;;;8521:68:0;;9618:2:1;8521:68:0;;;9600:21:1;9657:2;9637:18;;;9630:30;9696:34;9676:18;;;9669:62;-1:-1:-1;;;9747:18:1;;;9740:34;9791:19;;8521:68:0;9416:400:1;8521:68:0;-1:-1:-1;;;;;8612:21:0;;8604:68;;;;-1:-1:-1;;;8604:68:0;;10023:2:1;8604:68:0;;;10005:21:1;10062:2;10042:18;;;10035:30;10101:34;10081:18;;;10074:62;-1:-1:-1;;;10152:18:1;;;10145:32;10194:19;;8604:68:0;9821:398:1;8604:68:0;-1:-1:-1;;;;;8689:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8745:32;;1916:25:1;;;8745:32:0;;1889:18:1;8745:32:0;;;;;;;;8373:416;;;:::o;16661:3226::-;-1:-1:-1;;;;;16813:18:0;;16805:68;;;;-1:-1:-1;;;16805:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16896:16:0;;16888:64;;;;-1:-1:-1;;;16888:64:0;;;;;;;:::i;:::-;16984:1;16975:6;:10;16967:64;;;;-1:-1:-1;;;16967:64:0;;11236:2:1;16967:64:0;;;11218:21:1;11275:2;11255:18;;;11248:30;11314:34;11294:18;;;11287:62;-1:-1:-1;;;11365:18:1;;;11358:39;11414:19;;16967:64:0;11034:405:1;16967:64:0;2625:7;2656:6;-1:-1:-1;;;;;17056:15:0;;;2656:6;;17056:15;;;;:32;;-1:-1:-1;2625:7:0;2656:6;-1:-1:-1;;;;;17075:13:0;;;2656:6;;17075:13;;17056:32;17052:253;;;-1:-1:-1;;;;;17112:32:0;;;;;;:26;:32;;;;;;;;;:66;;-1:-1:-1;;;;;;17148:30:0;;;;;;:26;:30;;;;;;;;17112:66;:110;;;;17210:12;;17200:6;:22;;17112:110;17103:202;;;;-1:-1:-1;;;17103:202:0;;11646:2:1;17103:202:0;;;11628:21:1;11685:2;11665:18;;;11658:30;11724:34;11704:18;;;11697:62;-1:-1:-1;;;11775:18:1;;;11768:45;11830:19;;17103:202:0;11444:411:1;17103:202:0;2625:7;2656:6;-1:-1:-1;;;;;17354:15:0;;;2656:6;;17354:15;;;;:51;;-1:-1:-1;;;;;;17386:19:0;;17400:4;17386:19;;17354:51;:86;;;;-1:-1:-1;17428:12:0;;-1:-1:-1;;;;;17422:18:0;;;17428:12;;17422:18;;17354:86;:122;;;;-1:-1:-1;17463:13:0;;-1:-1:-1;;;;;17457:19:0;;;17463:13;;17457:19;;17354:122;17336:378;;;-1:-1:-1;;;;;5337:18:0;;17504:22;5337:18;;;:9;:18;;;;;;;;;17565:24;:28;;;;;;;;;;:78;;-1:-1:-1;17625:17:0;;17598:23;17615:6;17598:14;:23;:::i;:::-;:44;;17565:78;17557:145;;;;-1:-1:-1;;;17557:145:0;;12062:2:1;17557:145:0;;;12044:21:1;12101:2;12081:18;;;12074:30;12140:34;12120:18;;;12113:62;-1:-1:-1;;;12191:18:1;;;12184:31;12232:19;;17557:145:0;11860:397:1;17557:145:0;17489:225;17336:378;17779:4;17730:28;5337:18;;;:9;:18;;;;;;17852:29;;17828:53;;;;;;;17918:57;;-1:-1:-1;17959:16:0;;-1:-1:-1;;;17959:16:0;;;;17958:17;17918:57;:99;;;;-1:-1:-1;18004:13:0;;-1:-1:-1;;;;;17996:21:0;;;18004:13;;17996:21;;17918:99;:141;;;;-1:-1:-1;18038:21:0;;-1:-1:-1;;;18038:21:0;;;;17918:141;17896:315;;;18117:29;;18094:52;;18165:30;18174:20;18165:8;:30::i;:::-;-1:-1:-1;;;;;18261:24:0;;18227:12;18261:24;;;:18;:24;;;;;;18242:4;;18261:24;;;:50;;-1:-1:-1;;;;;;18289:22:0;;;;;;:18;:22;;;;;;;;18261:50;18257:1617;;;18328:33;18344:4;18350:2;18354:6;18328:15;:33::i;:::-;-1:-1:-1;18386:5:0;18257:1617;;;18438:13;;-1:-1:-1;;;;;18438:13:0;;;18430:21;;;;18426:1427;;18496:23;18522:37;18555:3;18522:28;18533:16;;18522:6;:10;;:28;;;;:::i;:::-;:32;;:37::i;:::-;18496:63;;18578:23;18604:37;18637:3;18604:28;18615:16;;18604:6;:10;;:28;;;;:::i;:37::-;18578:63;;18660:18;18681:32;18709:3;18681:23;18692:11;;18681:6;:10;;:23;;;;:::i;:32::-;18660:53;-1:-1:-1;18742:64:0;18753:52;18660:53;18753:36;:15;18773;18753:19;:36::i;:52::-;18742:6;;:10;:64::i;:::-;18734:72;;18825:53;18841:4;18855;18862:15;18825;:53::i;:::-;18897:52;18913:4;18927;18933:15;18897;:52::i;:::-;18990:12;;18968:47;;18984:4;;-1:-1:-1;;;;;18990:12:0;19004:10;18968:15;:47::i;:::-;19034:33;19050:4;19056:2;19060:6;19034:15;:33::i;:::-;18453:632;;;18426:1427;;;19101:13;;-1:-1:-1;;;;;19101:13:0;;;19095:19;;;;19091:762;;19160:23;19186:38;19220:3;19186:29;19197:17;;19186:6;:10;;:29;;;;:::i;:38::-;19160:64;;19243:23;19269:38;19303:3;19269:29;19280:17;;19269:6;:10;;:29;;;;:::i;:38::-;19243:64;;19326:18;19347:33;19376:3;19347:24;19358:12;;19347:6;:10;;:24;;;;:::i;19091:762::-;19804:33;19820:4;19826:2;19830:6;19804:15;:33::i;:::-;16790:3097;;;16661:3226;;;:::o;1395:226::-;1481:7;1550:12;1542:6;;;;1534:29;;;;-1:-1:-1;;;1534:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1589:5:0;;;1395:226::o;7919:442::-;-1:-1:-1;;;;;8007:21:0;;7999:67;;;;-1:-1:-1;;;7999:67:0;;12464:2:1;7999:67:0;;;12446:21:1;12503:2;12483:18;;;12476:30;12542:34;12522:18;;;12515:62;-1:-1:-1;;;12593:18:1;;;12586:31;12634:19;;7999:67:0;12262:397:1;7999:67:0;8170:68;8193:6;8170:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8170:18:0;;;;;;:9;:18;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;8149:18:0;;;;;;:9;:18;;;;;:89;8268:12;;:24;;8285:6;8268:16;:24::i;:::-;8253:12;:39;8312:37;;1916:25:1;;;8338:1:0;;-1:-1:-1;;;;;8312:37:0;;;;;1904:2:1;1889:18;8312:37:0;;;;;;;7919:442;;:::o;19900:1346::-;11366:16;:23;;-1:-1:-1;;;;11366:23:0;-1:-1:-1;;;11366:23:0;;;20033:17:::1;::::0;11366:23;;20013:47:::1;::::0;20056:3:::1;::::0;20013:38:::1;::::0;:15;;:19:::1;:38::i;:47::-;19984:76;;20079:23;20105:47;20148:3;20105:38;20125:17;;20105:15;:19;;:38;;;;:::i;:47::-;20079:73:::0;-1:-1:-1;20173:25:0::1;20201:36;20079:73:::0;20201:18;:36:::1;:::i;:::-;20173:64:::0;-1:-1:-1;20277:20:0;;;:46:::1;;-1:-1:-1::0;20301:22:0;;20277:46:::1;20274:60;;;20326:7;;;;;20274:60;20354:12;::::0;20545:1:::1;20525:17:::0;20486:36:::1;20504:18:::0;20486:15;:36:::1;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;20460:86:::0;-1:-1:-1;20583:51:0::1;20600:33;20460:86:::0;20600:15;:33:::1;:::i;:::-;20583:16;:51::i;:::-;20693:21;::::0;20672:18:::1;20869:20;20888:1;20869:18:::0;:20:::1;:::i;:::-;20848:42;::::0;:17;:42:::1;:::i;:::-;20816:28;20829:15:::0;20816:10;:28:::1;:::i;:::-;:75;;;;:::i;:::-;20790:101:::0;-1:-1:-1;20912:34:0::1;20790:101:::0;20912:34;::::1;:::i;:::-;;;21020:1;21002:15;:19;:42;;;;;21043:1;21025:15;:19;21002:42;20999:137;;;21068:46;21081:15;21098;21068:12;:46::i;:::-;21177:23;::::0;21169:65:::1;::::0;-1:-1:-1;;;;;21177:23:0;;::::1;::::0;21214:15;;21169:65:::1;::::0;;;21214:15;21177:23;21169:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;11404:1:0::1;-1:-1:-1::0;11420:16:0;:24;;-1:-1:-1;;;;11420:24:0;;;19900:1346::o;6876:617::-;-1:-1:-1;;;;;7036:20:0;;7028:70;;;;-1:-1:-1;;;7028:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7121:23:0;;7113:71;;;;-1:-1:-1;;;7113:71:0;;;;;;;:::i;:::-;7285;7307:6;7285:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7285:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;7265:17:0;;;;;;;:9;:17;;;;;;:91;;;;7394:20;;;;;;;:32;;7419:6;7394:24;:32::i;:::-;-1:-1:-1;;;;;7371:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7446:35;;;;;;;;;;7474:6;1916:25:1;;1904:2;1889:18;;1770:177;1149:106:0;1207:7;1238:5;1242:1;1238;:5;:::i;1275:106::-;1333:7;1364:5;1368:1;1364;:5;:::i;1029:106::-;1087:7;1118:5;1122:1;1118;:5;:::i;21265:547::-;21359:16;;;21373:1;21359:16;;;;;;;;21335:21;;21359:16;;;;;;;;;;-1:-1:-1;21359:16:0;21335:40;;21408:4;21390;21395:1;21390:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21390:23:0;;;:7;;;;;;;;;;:23;;;;21438:15;;:22;;;-1:-1:-1;;;21438:22:0;;;;:15;;;;;:20;;:22;;;;;21390:7;;21438:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21428:4;21433:1;21428:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21428:32:0;;;:7;;;;;;;;;:32;21507:15;;21475:62;;21492:4;;21507:15;21525:11;21475:8;:62::i;:::-;21552:15;;:248;;-1:-1:-1;;;21552:248:0;;-1:-1:-1;;;;;21552:15:0;;;;:66;;:248;;21637:11;;21552:15;;21715:4;;21746;;21770:15;;21552:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21824:454;21941:15;;21909:62;;21926:4;;-1:-1:-1;;;;;21941:15:0;21959:11;21909:8;:62::i;:::-;21986:15;;-1:-1:-1;;;;;21986:15:0;:31;22025:9;22062:4;22086:11;21986:15;;22210:7;2625;2656:6;-1:-1:-1;;;;;2656:6:0;;2579:95;22210:7;21986:280;;;;;;-1:-1:-1;;;;;;21986:280:0;;;-1:-1:-1;;;;;14837:15:1;;;21986:280:0;;;14819:34:1;14869:18;;;14862:34;;;;14912:18;;;14905:34;;;;14955:18;;;14948:34;15019:15;;;14998:19;;;14991:44;22236:15:0;15051:19:1;;;15044:35;14753:19;;21986:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21824:454;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:316::-;1292:6;1300;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:52;;;1377:1;1374;1367:12;1329:52;-1:-1:-1;;1400:23:1;;;1470:2;1455:18;;1442:32;;-1:-1:-1;1521:2:1;1506:18;;;1493:32;;1215:316;-1:-1:-1;1215:316:1:o;1952:456::-;2029:6;2037;2045;2098:2;2086:9;2077:7;2073:23;2069:32;2066:52;;;2114:1;2111;2104:12;2066:52;2153:9;2140:23;2172:31;2197:5;2172:31;:::i;:::-;2222:5;-1:-1:-1;2279:2:1;2264:18;;2251:32;2292:33;2251:32;2292:33;:::i;:::-;1952:456;;2344:7;;-1:-1:-1;;;2398:2:1;2383:18;;;;2370:32;;1952:456::o;2602:180::-;2661:6;2714:2;2702:9;2693:7;2689:23;2685:32;2682:52;;;2730:1;2727;2720:12;2682:52;-1:-1:-1;2753:23:1;;2602:180;-1:-1:-1;2602:180:1:o;2995:247::-;3054:6;3107:2;3095:9;3086:7;3082:23;3078:32;3075:52;;;3123:1;3120;3113:12;3075:52;3162:9;3149:23;3181:31;3206:5;3181:31;:::i;3247:160::-;3312:20;;3368:13;;3361:21;3351:32;;3341:60;;3397:1;3394;3387:12;3341:60;3247:160;;;:::o;3412:315::-;3477:6;3485;3538:2;3526:9;3517:7;3513:23;3509:32;3506:52;;;3554:1;3551;3544:12;3506:52;3593:9;3580:23;3612:31;3637:5;3612:31;:::i;:::-;3662:5;-1:-1:-1;3686:35:1;3717:2;3702:18;;3686:35;:::i;:::-;3676:45;;3412:315;;;;;:::o;3732:180::-;3788:6;3841:2;3829:9;3820:7;3816:23;3812:32;3809:52;;;3857:1;3854;3847:12;3809:52;3880:26;3896:9;3880:26;:::i;3917:388::-;3985:6;3993;4046:2;4034:9;4025:7;4021:23;4017:32;4014:52;;;4062:1;4059;4052:12;4014:52;4101:9;4088:23;4120:31;4145:5;4120:31;:::i;:::-;4170:5;-1:-1:-1;4227:2:1;4212:18;;4199:32;4240:33;4199:32;4240:33;:::i;:::-;4292:7;4282:17;;;3917:388;;;;;:::o;4310:380::-;4389:1;4385:12;;;;4432;;;4453:61;;4507:4;4499:6;4495:17;4485:27;;4453:61;4560:2;4552:6;4549:14;4529:18;4526:38;4523:161;;4606:10;4601:3;4597:20;4594:1;4587:31;4641:4;4638:1;4631:15;4669:4;4666:1;4659:15;4523:161;;4310:380;;;:::o;4695:356::-;4897:2;4879:21;;;4916:18;;;4909:30;4975:34;4970:2;4955:18;;4948:62;5042:2;5027:18;;4695:356::o;5465:127::-;5526:10;5521:3;5517:20;5514:1;5507:31;5557:4;5554:1;5547:15;5581:4;5578:1;5571:15;5597:422;5686:1;5729:5;5686:1;5743:270;5764:7;5754:8;5751:21;5743:270;;;5823:4;5819:1;5815:6;5811:17;5805:4;5802:27;5799:53;;;5832:18;;:::i;:::-;5882:7;5872:8;5868:22;5865:55;;;5902:16;;;;5865:55;5981:22;;;;5941:15;;;;5743:270;;;5747:3;5597:422;;;;;:::o;6024:806::-;6073:5;6103:8;6093:80;;-1:-1:-1;6144:1:1;6158:5;;6093:80;6192:4;6182:76;;-1:-1:-1;6229:1:1;6243:5;;6182:76;6274:4;6292:1;6287:59;;;;6360:1;6355:130;;;;6267:218;;6287:59;6317:1;6308:10;;6331:5;;;6355:130;6392:3;6382:8;6379:17;6376:43;;;6399:18;;:::i;:::-;-1:-1:-1;;6455:1:1;6441:16;;6470:5;;6267:218;;6569:2;6559:8;6556:16;6550:3;6544:4;6541:13;6537:36;6531:2;6521:8;6518:16;6513:2;6507:4;6504:12;6500:35;6497:77;6494:159;;;-1:-1:-1;6606:19:1;;;6638:5;;6494:159;6685:34;6710:8;6704:4;6685:34;:::i;:::-;6755:6;6751:1;6747:6;6743:19;6734:7;6731:32;6728:58;;;6766:18;;:::i;:::-;6804:20;;6024:806;-1:-1:-1;;;6024:806:1:o;6835:140::-;6893:5;6922:47;6963:4;6953:8;6949:19;6943:4;6922:47;:::i;6980:168::-;7053:9;;;7084;;7101:15;;;7095:22;;7081:37;7071:71;;7122:18;;:::i;7153:251::-;7223:6;7276:2;7264:9;7255:7;7251:23;7247:32;7244:52;;;7292:1;7289;7282:12;7244:52;7324:9;7318:16;7343:31;7368:5;7343:31;:::i;9286:125::-;9351:9;;;9372:10;;;9369:36;;;9385:18;;:::i;10224:401::-;10426:2;10408:21;;;10465:2;10445:18;;;10438:30;10504:34;10499:2;10484:18;;10477:62;-1:-1:-1;;;10570:2:1;10555:18;;10548:35;10615:3;10600:19;;10224:401::o;10630:399::-;10832:2;10814:21;;;10871:2;10851:18;;;10844:30;10910:34;10905:2;10890:18;;10883:62;-1:-1:-1;;;10976:2:1;10961:18;;10954:33;11019:3;11004:19;;10630:399::o;12664:217::-;12704:1;12730;12720:132;;12774:10;12769:3;12765:20;12762:1;12755:31;12809:4;12806:1;12799:15;12837:4;12834:1;12827:15;12720:132;-1:-1:-1;12866:9:1;;12664:217::o;12886:128::-;12953:9;;;12974:11;;;12971:37;;;12988:18;;:::i;13361:127::-;13422:10;13417:3;13413:20;13410:1;13403:31;13453:4;13450:1;13443:15;13477:4;13474:1;13467:15;13493:980;13755:4;13803:3;13792:9;13788:19;13834:6;13823:9;13816:25;13860:2;13898:6;13893:2;13882:9;13878:18;13871:34;13941:3;13936:2;13925:9;13921:18;13914:31;13965:6;14000;13994:13;14031:6;14023;14016:22;14069:3;14058:9;14054:19;14047:26;;14108:2;14100:6;14096:15;14082:29;;14129:1;14139:195;14153:6;14150:1;14147:13;14139:195;;;14218:13;;-1:-1:-1;;;;;14214:39:1;14202:52;;14309:15;;;;14274:12;;;;14250:1;14168:9;14139:195;;;-1:-1:-1;;;;;;;14390:32:1;;;;14385:2;14370:18;;14363:60;-1:-1:-1;;;14454:3:1;14439:19;14432:35;14351:3;13493:980;-1:-1:-1;;;13493:980:1:o;15090:306::-;15178:6;15186;15194;15247:2;15235:9;15226:7;15222:23;15218:32;15215:52;;;15263:1;15260;15253:12;15215:52;15292:9;15286:16;15276:26;;15342:2;15331:9;15327:18;15321:25;15311:35;;15386:2;15375:9;15371:18;15365:25;15355:35;;15090:306;;;;;:::o

Metadata Hash

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