Contract 0x1D1367B3f328aAbA49A8Ee14384A539752dE11Ad

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xc9e11ee3d0e6843ebc69b885022ec9a35f7bd84c260f683d0c83dbb541d8860eAdd IGO Poo List117762772022-01-15 5:01:0313 days 4 hrs ago0x1c1bdadd6b167f4a60dfeccc525534bf0f5bf323 IN 0x1d1367b3f328aaba49a8ee14384a539752de11ad0 HT0.0001701495 2.25
0xa34b0a72a5e1e9ed983737ad4fdcbcce9bbb0e764f45f511775ad0b80fc75a7aAdd IGO Poo List117748482022-01-15 3:49:3613 days 5 hrs ago0x1c1bdadd6b167f4a60dfeccc525534bf0f5bf323 IN 0x1d1367b3f328aaba49a8ee14384a539752de11ad0 HT0.00026098875 2.25
0x95ecf0cafb443c3fab7907426e38d73b2d6336952b7b4ebfceafe8a517f08af20x60806040117748072022-01-15 3:47:3313 days 5 hrs ago0x1c1bdadd6b167f4a60dfeccc525534bf0f5bf323 IN  Create: IGOPoolFactory0 HT0.003956679 2.25
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IGOPoolFactory

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at hecoinfo.com on 2022-01-15
*/

/**
 *Submitted for verification at hecoinfo.com on 2022-01-15
*/

pragma solidity ^0.6.12;
pragma experimental ABIEncoderV2;
// SPDX-License-Identifier: MIT

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "e0");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "e1");
        }
    }
}

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

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;

    constructor() internal {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "e3");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ow1");
        _;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ow2");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "e4");
        (bool success, bytes memory returndata) = target.call{value : weiValue}(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "e5");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "e6");
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "e7");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "e8");
        uint256 c = a / b;
        return c;
    }
}

interface IERC721Enumerable {
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function ownerOf(uint256 tokenId) external view returns (address owner);

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function tokenURI(uint256 tokenId) external view returns (string memory);

    function mintForMiner(address _to) external returns (bool, uint256);

    function MinerList(address _address) external returns (bool);
}


interface k {
    struct nftInfo {
        string name;
        string symbol;
        string tokenURI;
        address ownerOf;
        tokenIdInfo statusList;
    }

    struct tokenIdInfo {
        bool mintStatus;
        bool buybackStatus;
        bool swapStatus;
    }

    struct orderItem_1 {
        uint256 orderId;
        IERC721Enumerable nftToken;
        uint256 igoTotalAmount;
        address erc20Token;
        uint256 price;
        bool orderStatus;
        uint256 igoOkAmount;
        uint256 startBlock;
        uint256 endBlock;
        uint256 cosoQuote;
        bool useWhiteListCheck;
    }

    struct orderItem_2 {
        IERC20 swapToken;
        uint256 swapPrice;
        uint256 buyBackEndBlock;
        uint256 buyBackNum;
        uint256 swapFee;
        uint256 igoMaxAmount;
        IERC721Enumerable CosoNFT;
        bool useStakingCoso;
        bool useWhiteList;
        IERC20 ETH;
    }
}

interface IGOPool is k {
    function useSwapPool() external view returns (bool);
    function IGOPoolFactory() external view returns (address);
    function swapPool() external view returns (address);
    function fk1() external view returns (orderItem_1 memory);
    function fk2() external view returns (orderItem_2 memory);
    function UserIgoTokenIdListNum(address _user) external view returns (uint256);
    function UserIgoTokenIdList(address _user,uint256 _index) external view returns (uint256);
    function getTokenInfoByIndex() external view returns (orderItem_1 memory orderItem1, orderItem_2 memory orderItem2, string memory name2, string memory symbol2, uint256 decimals2, uint256 price2, string memory nftName, string memory nftSymbol);
    function getUserIdoTokenIdList(address _address) external view returns (uint256[] memory);
    function massGetNftInfo(IERC721Enumerable _nftToken, uint256[] memory _tokenIdList) external view returns (nftInfo[] memory nftInfolist2);
    function getStaking(address _user) external view returns (uint256[] memory idTokenList, uint256 idTokenListNum, nftInfo[] memory nftInfolist2, uint256 igoQuota, uint256 maxIgoNum);
}


interface SwapPool  {
    struct claimiItem {
        uint256 tokenId;
        bool hasClaim;
    }
    
    function swapToken() external view returns(IERC20);
    function swapPrice() external view returns(uint256);
    function SwapNFT() external view returns(IERC721Enumerable);
    function userTokenIdList(address _user,uint256 _time) external view returns(uint256);
    function canClaimBlockNumList(uint256 _time) external view returns(uint256);
    function canClaimAmountList(uint256 _time) external view returns(uint256);
    function canClaimAmount(address _user,uint256 _time) external view returns(uint256);
    function userClaimList(address _address, uint256 _tokenId, uint256 _time) external view returns (claimiItem memory);
    function getUserTokenIdList(address _address) external view returns (uint256[] memory);
}


interface StakingPool {
   function userStakingTokenIdList(address _user,uint256 _index) external view returns (uint256);
   function userStakingNumList(address _user) external view returns (uint256);
   function getuserStakingTokenIdList(address _user) external view returns (uint256[] memory stakingList);
}

contract IGOPoolFactory is Ownable,k {
    using SafeMath for uint256;
    using Address for address;
    using SafeERC20 for IERC20;
    uint256 public orderNum = 0;
    StakingPool public stakingPool=StakingPool(0xA9304468f52b4e7608291aCCb8442Fd5464d97f3);
    //uint256 public swapRate = 10;
    //address public feeAddress;
    //IERC20 public ETH;
    //IERC721Enumerable public CosoNFT;
    mapping(uint256 => IGOPool) public orderItemInfo;
    //mapping(IGOPool => uint256) public orderItemInfo2;
    //mapping(IERC721Enumerable => uint256[]) public nftAddressOrderIdList;
    //mapping(IERC721Enumerable => IGOPool[]) public nftAddressPoolList;
    //mapping(address => bool) private erc20tokenWhiteList;
    //mapping(address => bool) private igoWhiteList;
    
    
    struct StakingPoolItem {
        uint256 StakingNum;
        uint256[] stakingList;
    }
    
    
    function setStakingPool(StakingPool _stakingPool) external onlyOwner {
        stakingPool = _stakingPool;
    }
    
    function addIGOPool(IGOPool _IGOPool) external onlyOwner {
        orderItemInfo[orderNum] = _IGOPool;
        orderNum = orderNum.add(1);
    }
    
    
     function addIGOPooList(IGOPool[] memory _IGOPoolList) external onlyOwner {
         for (uint256 i=0;i<_IGOPoolList.length;i++)
         {
        orderItemInfo[orderNum] = _IGOPoolList[i];
        orderNum = orderNum.add(1);
         }
    }


    struct orderItem_3 {
        orderItem_1 x1;
        orderItem_2 x2;
        string name2;
        string symbol2;
        uint256 decimals2;
        uint256 price2;
        string nftName;
        string nftSymbol;
        IGOPool igoAddress;
    }
    
    struct stakingInfoItem {
        uint256[]  idTokenList;
        uint256 idTokenListNum;
        nftInfo[]  nftInfolist2;
        uint256 igoQuota;
        uint256 maxIgoNum;
    }
    
    struct IgoIdListItem {
         IGOPool IGO;
         IERC721Enumerable nftToken;
         uint256[] TokenIdList;
         uint256 TokenIdListNum;
     }

    function getIgoInfo(uint256 _index) public view returns (orderItem_3 memory returnIgoInfo) {
        returnIgoInfo.igoAddress = orderItemInfo[_index];
        {
            orderItem_1 memory orderItem_1 = orderItemInfo[_index].fk1();
            returnIgoInfo.x1 = orderItem_1;
        }
        {
            orderItem_2 memory orderItem_2 = orderItemInfo[_index].fk2();
            returnIgoInfo.x2 = orderItem_2;
        }
        {
            (,,string memory name2, string memory symbol2, uint256 decimals2, uint256 price2,string memory nftName,string memory nftSymbol) = orderItemInfo[_index].getTokenInfoByIndex();
            returnIgoInfo.name2 = name2;
            returnIgoInfo.symbol2 = symbol2;
            returnIgoInfo.decimals2 = decimals2;
            returnIgoInfo.price2 = price2;
            returnIgoInfo.nftName = nftName;
            returnIgoInfo.nftSymbol = nftSymbol;
        }
    }

    function massGetIgoInfo(uint256[] memory index_list) external view returns (orderItem_3[] memory returnIgoInfoList) {
         uint256 num = index_list.length;
         if (num ==0) {
             num = orderNum;
         }
        returnIgoInfoList = new orderItem_3[](num);
        for (uint256 i = 0; i < num; i++) {
            returnIgoInfoList[i] = getIgoInfo(index_list[i]);
        }
    }
    
    function massGetStaking(address _user,uint256[] memory index_list) external view returns (stakingInfoItem[] memory stakingInfoList,StakingPoolItem memory StakingPoolList) {
         uint256 num = index_list.length;
         if (num ==0) {
             num = orderNum;
         }
       stakingInfoList = new stakingInfoItem[](num);
       for (uint256 i = 0; i < num; i++) {
            (uint256[] memory idTokenList,uint256 idTokenListNum,nftInfo[] memory nftInfolist2,uint256 igoQuota,uint256 maxIgoNum) = orderItemInfo[i].getStaking(_user);
            stakingInfoList[i] = stakingInfoItem(idTokenList,idTokenListNum,nftInfolist2,igoQuota,maxIgoNum);
        }
        if (address(stakingPool) == address(0)) {
           StakingPoolList =  StakingPoolItem(0,new uint256[](0));
        } else {
            uint256 StakingNum = stakingPool.userStakingNumList(_user);
            uint256[] memory stakingList = new uint256[](StakingNum);
            for (uint256 i=0;i<StakingNum;i++) {
                stakingList[i] = stakingPool.userStakingTokenIdList(_user,i);
            }
           StakingPoolList =  StakingPoolItem(StakingNum,stakingList);
        }
    }
    
    
     function massGetStakingNum(address _user,uint256[] memory index_list) external view returns (uint256 stakingNum) {
         uint256 num = index_list.length;
         if (num ==0) {
             num = orderNum;
         }
       for (uint256 i = 0; i < num; i++) {
            (,uint256 idTokenListNum,,,) = orderItemInfo[i].getStaking(_user);
            stakingNum = stakingNum.add(idTokenListNum);
        }
        if (address(stakingPool) != address(0)) {
            stakingNum = stakingNum.add(stakingPool.userStakingNumList(_user));
        }
    }
     
     function massGetIgoTokenIdList(address _user,uint256[] memory index_list) external view returns ( IgoIdListItem[] memory IgoIdList) {
         uint256 num = index_list.length;
         if (num ==0) {
             num = orderNum;
         }
         IgoIdList = new IgoIdListItem[](num);
         for (uint256 i=0;i<num;i++) {
             IGOPool x = orderItemInfo[i];
             IERC721Enumerable y =  x.fk1().nftToken;
             uint256 z = x.UserIgoTokenIdListNum(_user);
             uint256[] memory list = new uint256[](z);
             for (uint256 t=0;t<z;t++) {
                 list[t] = x.UserIgoTokenIdList(_user,t);
             }
             IgoIdList[i] = IgoIdListItem(x,y,list,z);
         }
     }
     
     //todo massGetSwapPoolInfo
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"contract IGOPool[]","name":"_IGOPoolList","type":"address[]"}],"name":"addIGOPooList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IGOPool","name":"_IGOPool","type":"address"}],"name":"addIGOPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getIgoInfo","outputs":[{"components":[{"components":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"internalType":"uint256","name":"igoTotalAmount","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"orderStatus","type":"bool"},{"internalType":"uint256","name":"igoOkAmount","type":"uint256"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"cosoQuote","type":"uint256"},{"internalType":"bool","name":"useWhiteListCheck","type":"bool"}],"internalType":"struct k.orderItem_1","name":"x1","type":"tuple"},{"components":[{"internalType":"contract IERC20","name":"swapToken","type":"address"},{"internalType":"uint256","name":"swapPrice","type":"uint256"},{"internalType":"uint256","name":"buyBackEndBlock","type":"uint256"},{"internalType":"uint256","name":"buyBackNum","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"uint256","name":"igoMaxAmount","type":"uint256"},{"internalType":"contract IERC721Enumerable","name":"CosoNFT","type":"address"},{"internalType":"bool","name":"useStakingCoso","type":"bool"},{"internalType":"bool","name":"useWhiteList","type":"bool"},{"internalType":"contract IERC20","name":"ETH","type":"address"}],"internalType":"struct k.orderItem_2","name":"x2","type":"tuple"},{"internalType":"string","name":"name2","type":"string"},{"internalType":"string","name":"symbol2","type":"string"},{"internalType":"uint256","name":"decimals2","type":"uint256"},{"internalType":"uint256","name":"price2","type":"uint256"},{"internalType":"string","name":"nftName","type":"string"},{"internalType":"string","name":"nftSymbol","type":"string"},{"internalType":"contract IGOPool","name":"igoAddress","type":"address"}],"internalType":"struct IGOPoolFactory.orderItem_3","name":"returnIgoInfo","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"index_list","type":"uint256[]"}],"name":"massGetIgoInfo","outputs":[{"components":[{"components":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"internalType":"uint256","name":"igoTotalAmount","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"orderStatus","type":"bool"},{"internalType":"uint256","name":"igoOkAmount","type":"uint256"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"cosoQuote","type":"uint256"},{"internalType":"bool","name":"useWhiteListCheck","type":"bool"}],"internalType":"struct k.orderItem_1","name":"x1","type":"tuple"},{"components":[{"internalType":"contract IERC20","name":"swapToken","type":"address"},{"internalType":"uint256","name":"swapPrice","type":"uint256"},{"internalType":"uint256","name":"buyBackEndBlock","type":"uint256"},{"internalType":"uint256","name":"buyBackNum","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"uint256","name":"igoMaxAmount","type":"uint256"},{"internalType":"contract IERC721Enumerable","name":"CosoNFT","type":"address"},{"internalType":"bool","name":"useStakingCoso","type":"bool"},{"internalType":"bool","name":"useWhiteList","type":"bool"},{"internalType":"contract IERC20","name":"ETH","type":"address"}],"internalType":"struct k.orderItem_2","name":"x2","type":"tuple"},{"internalType":"string","name":"name2","type":"string"},{"internalType":"string","name":"symbol2","type":"string"},{"internalType":"uint256","name":"decimals2","type":"uint256"},{"internalType":"uint256","name":"price2","type":"uint256"},{"internalType":"string","name":"nftName","type":"string"},{"internalType":"string","name":"nftSymbol","type":"string"},{"internalType":"contract IGOPool","name":"igoAddress","type":"address"}],"internalType":"struct IGOPoolFactory.orderItem_3[]","name":"returnIgoInfoList","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256[]","name":"index_list","type":"uint256[]"}],"name":"massGetIgoTokenIdList","outputs":[{"components":[{"internalType":"contract IGOPool","name":"IGO","type":"address"},{"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"internalType":"uint256[]","name":"TokenIdList","type":"uint256[]"},{"internalType":"uint256","name":"TokenIdListNum","type":"uint256"}],"internalType":"struct IGOPoolFactory.IgoIdListItem[]","name":"IgoIdList","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256[]","name":"index_list","type":"uint256[]"}],"name":"massGetStaking","outputs":[{"components":[{"internalType":"uint256[]","name":"idTokenList","type":"uint256[]"},{"internalType":"uint256","name":"idTokenListNum","type":"uint256"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenURI","type":"string"},{"internalType":"address","name":"ownerOf","type":"address"},{"components":[{"internalType":"bool","name":"mintStatus","type":"bool"},{"internalType":"bool","name":"buybackStatus","type":"bool"},{"internalType":"bool","name":"swapStatus","type":"bool"}],"internalType":"struct k.tokenIdInfo","name":"statusList","type":"tuple"}],"internalType":"struct k.nftInfo[]","name":"nftInfolist2","type":"tuple[]"},{"internalType":"uint256","name":"igoQuota","type":"uint256"},{"internalType":"uint256","name":"maxIgoNum","type":"uint256"}],"internalType":"struct IGOPoolFactory.stakingInfoItem[]","name":"stakingInfoList","type":"tuple[]"},{"components":[{"internalType":"uint256","name":"StakingNum","type":"uint256"},{"internalType":"uint256[]","name":"stakingList","type":"uint256[]"}],"internalType":"struct IGOPoolFactory.StakingPoolItem","name":"StakingPoolList","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256[]","name":"index_list","type":"uint256[]"}],"name":"massGetStakingNum","outputs":[{"internalType":"uint256","name":"stakingNum","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orderItemInfo","outputs":[{"internalType":"contract IGOPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"orderNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract StakingPool","name":"_stakingPool","type":"address"}],"name":"setStakingPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingPool","outputs":[{"internalType":"contract StakingPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600155600280546001600160a01b03191673a9304468f52b4e7608291accb8442fd5464d97f317905534801561003b57600080fd5b506000610046610095565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610099565b3390565b611df0806100a86000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638da5cb5b1161008c5780639d78c834116100665780639d78c834146101b6578063dfe3a3c1146101be578063f2fde38b146101de578063f3638a34146101f1576100cf565b80638da5cb5b1461017b5780638f35325e146101835780639a0d36a1146101a3576100cf565b80630c56ae3b146100d457806317a919fd146100f25780631bd9f877146101125780631c3ac665146101325780631c423148146101455780633028f63a14610166575b600080fd5b6100dc610204565b6040516100e99190611a20565b60405180910390f35b610105610100366004611465565b610213565b6040516100e99190611d1a565b610125610120366004611465565b610386565b6040516100e99190611a4d565b6100dc610140366004611775565b610656565b610158610153366004611465565b610671565b6040516100e9929190611b44565b610179610174366004611449565b6109a5565b005b6100dc610a05565b610196610191366004611775565b610a14565b6040516100e99190611d07565b6101796101b1366004611449565b610c34565b610105610ca5565b6101d16101cc36600461154a565b610cab565b6040516100e99190611ae4565b6101796101ec366004611449565b610d5a565b6101796101ff3660046114b2565b610e10565b6002546001600160a01b031681565b80516000908061022257506001545b60005b818110156102e1576000818152600360205260408082205490516311c8863360e01b81526001600160a01b03909116906311c8863390610269908990600401611a20565b60006040518083038186803b15801561028157600080fd5b505afa158015610295573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102bd919081019061157c565b5050509150506102d68185610eb390919063ffffffff16565b935050600101610225565b506002546001600160a01b03161561037f57600254604051630718b39f60e01b815261037c916001600160a01b031690630718b39f90610325908890600401611a20565b60206040518083038186803b15801561033d57600080fd5b505afa158015610351573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610375919061178d565b8390610eb3565b91505b5092915050565b80516060908061039557506001545b806001600160401b03811180156103ab57600080fd5b506040519080825280602002602001820160405280156103e557816020015b6103d2610ee5565b8152602001906001900390816103ca5790505b50915060005b8181101561064e576000818152600360205260408082205481516315d8e44960e01b815291516001600160a01b03909116929183916315d8e4499160048082019261016092909190829003018186803b15801561044757600080fd5b505afa15801561045b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047f9190611651565b6020015190506000826001600160a01b031663e4e5daec896040518263ffffffff1660e01b81526004016104b39190611a20565b60206040518083038186803b1580156104cb57600080fd5b505afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610503919061178d565b90506060816001600160401b038111801561051d57600080fd5b50604051908082528060200260200182016040528015610547578160200160208202803683370190505b50905060005b828110156105f257604051632d5147c760e11b81526001600160a01b03861690635aa28f8e90610583908d908590600401611a34565b60206040518083038186803b15801561059b57600080fd5b505afa1580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d3919061178d565b8282815181106105df57fe5b602090810291909101015260010161054d565b506040518060800160405280856001600160a01b03168152602001846001600160a01b031681526020018281526020018381525087868151811061063257fe5b60200260200101819052505050505080806001019150506103eb565b505092915050565b6003602052600090815260409020546001600160a01b031681565b606061067b610f1f565b82518061068757506001545b806001600160401b038111801561069d57600080fd5b506040519080825280602002602001820160405280156106d757816020015b6106c4610f39565b8152602001906001900390816106bc5790505b50925060005b818110156107d9576000818152600360205260408082205490516311c8863360e01b8152606092918391839182916001600160a01b03909116906311c886339061072b908e90600401611a20565b60006040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077f919081019061157c565b945094509450945094506040518060a00160405280868152602001858152602001848152602001838152602001828152508987815181106107bc57fe5b6020026020010181905250505050505080806001019150506106dd565b506002546001600160a01b03166108135760408051808201825260008082528251908152602080820190935291810191909152915061099d565b600254604051630718b39f60e01b81526000916001600160a01b031690630718b39f90610844908990600401611a20565b60206040518083038186803b15801561085c57600080fd5b505afa158015610870573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610894919061178d565b90506060816001600160401b03811180156108ae57600080fd5b506040519080825280602002602001820160405280156108d8578160200160208202803683370190505b50905060005b8281101561098757600254604051631c9e04e960e31b81526001600160a01b039091169063e4f0274890610918908b908590600401611a34565b60206040518083038186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610968919061178d565b82828151811061097457fe5b60209081029190910101526001016108de565b5060408051808201909152918252602082015291505b509250929050565b6109ad610ee1565b6000546001600160a01b039081169116146109e35760405162461bcd60e51b81526004016109da90611cce565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b610a1c610f68565b6000828152600360205260409020546001600160a01b0316610100820152610a42610fc9565b600083815260036020526040908190205481516315d8e44960e01b815291516001600160a01b03909116916315d8e44991600480830192610160929190829003018186803b158015610a9357600080fd5b505afa158015610aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acb9190611651565b825250610ad6611039565b6000838152600360205260409081902054815163dda1f8ad60e01b815291516001600160a01b039091169163dda1f8ad91600480830192610140929190829003018186803b158015610b2757600080fd5b505afa158015610b3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5f9190611759565b602080840191909152600084815260039091526040808220548151635a25cc8960e01b81529151606094508493928392859283926001600160a01b0390921691635a25cc899160048083019288929190829003018186803b158015610bc357600080fd5b505afa158015610bd7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bff9190810190611674565b60408f019590955260608e019390935260808d019190915260a08c015260c08b015260e08a0152509698975050505050505050565b610c3c610ee1565b6000546001600160a01b03908116911614610c695760405162461bcd60e51b81526004016109da90611cce565b60018054600090815260036020526040902080546001600160a01b0319166001600160a01b0384161790558054610c9f91610eb3565b60015550565b60015481565b805160609080610cba57506001545b806001600160401b0381118015610cd057600080fd5b50604051908082528060200260200182016040528015610d0a57816020015b610cf7610f68565b815260200190600190039081610cef5790505b50915060005b81811015610d5357610d34848281518110610d2757fe5b6020026020010151610a14565b838281518110610d4057fe5b6020908102919091010152600101610d10565b5050919050565b610d62610ee1565b6000546001600160a01b03908116911614610d8f5760405162461bcd60e51b81526004016109da90611cce565b6001600160a01b038116610db55760405162461bcd60e51b81526004016109da90611cb1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610e18610ee1565b6000546001600160a01b03908116911614610e455760405162461bcd60e51b81526004016109da90611cce565b60005b8151811015610eaf57818181518110610e5d57fe5b6020908102919091018101516001805460009081526003909352604090922080546001600160a01b0319166001600160a01b039092169190911790558054610ea491610eb3565b600190815501610e48565b5050565b600082820183811015610ed85760405162461bcd60e51b81526004016109da90611ceb565b90505b92915050565b3390565b604051806080016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160608152602001600081525090565b604051806040016040528060008152602001606081525090565b6040518060a0016040528060608152602001600081526020016060815260200160008152602001600081525090565b604051806101200160405280610f7c610fc9565b8152602001610f89611039565b815260200160608152602001606081526020016000815260200160008152602001606081526020016060815260200160006001600160a01b031681525090565b6040518061016001604052806000815260200160006001600160a01b031681526020016000815260200160006001600160a01b0316815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000151581525090565b60405180610140016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160001515815260200160001515815260200160006001600160a01b031681525090565b8051610edb81611d94565b600082601f8301126110c6578081fd5b81516110d96110d482611d49565b611d23565b818152915060208083019084810160005b848110156111c5578151870160e0818a03601f1901121561110a57600080fd5b60a061111581611d23565b858301516001600160401b038082111561112e57600080fd5b61113c8d898488010161123e565b835260409150818501518181111561115357600080fd5b6111618e8a8389010161123e565b89850152506060808601518281111561117957600080fd5b6111878f8b838a010161123e565b84860152506080925061119c8e8488016110ab565b90840152506111ad8c8585016113f3565b908201528652505092820192908201906001016110ea565b505050505092915050565b600082601f8301126111e0578081fd5b81356111ee6110d482611d49565b81815291506020808301908481018184028601820187101561120f57600080fd5b60005b848110156111c557813584529282019290820190600101611212565b80518015158114610edb57600080fd5b600082601f83011261124e578081fd5b81516001600160401b03811115611263578182fd5b611276601f8201601f1916602001611d23565b915080825283602082850101111561128d57600080fd5b61037f816020840160208601611d68565b60006101608083850312156112b1578182fd5b6112ba81611d23565b915050815181526112ce83602084016110ab565b6020820152604082015160408201526112ea83606084016110ab565b6060820152608082015160808201526113068360a0840161122e565b60a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101406113468482850161122e565b9082015292915050565b6000610140808385031215611363578182fd5b61136c81611d23565b91505061137983836110ab565b81526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a08201526113ba8360c084016110ab565b60c08201526113cc8360e0840161122e565b60e08201526101006113e08482850161122e565b90820152610120611346848483016110ab565b600060608284031215611404578081fd5b61140e6060611d23565b9050815161141b81611dac565b8152602082015161142b81611dac565b6020820152604082015161143e81611dac565b604082015292915050565b60006020828403121561145a578081fd5b8135610ed881611d94565b60008060408385031215611477578081fd5b823561148281611d94565b915060208301356001600160401b0381111561149c578182fd5b6114a8858286016111d0565b9150509250929050565b600060208083850312156114c4578182fd5b82356001600160401b038111156114d9578283fd5b8301601f810185136114e9578283fd5b80356114f76110d482611d49565b8181528381019083850185840285018601891015611513578687fd5b8694505b8385101561153e57803561152a81611d94565b835260019490940193918501918501611517565b50979650505050505050565b60006020828403121561155b578081fd5b81356001600160401b03811115611570578182fd5b61037c848285016111d0565b600080600080600060a08688031215611593578081fd5b85516001600160401b03808211156115a9578283fd5b818801915088601f8301126115bc578283fd5b81516115ca6110d482611d49565b80828252602080830192508086018d8283870289010111156115ea578788fd5b8796505b8487101561160c5780518452600196909601959281019281016115ee565b508b015160408c0151919a509850935050508082111561162a578283fd5b50611637888289016110b6565b606088015160809098015196999598509695949350505050565b60006101608284031215611663578081fd5b61166d838361129e565b9392505050565b600080600080600080600080610360898b031215611690578586fd5b61169a8a8a61129e565b97506116aa8a6101608b01611350565b96506102a08901516001600160401b03808211156116c6578788fd5b6116d28c838d0161123e565b97506102c08b01519150808211156116e8578485fd5b6116f48c838d0161123e565b96506102e08b015195506103008b015194506103208b015191508082111561171a578384fd5b6117268c838d0161123e565b93506103408b015191508082111561173c578283fd5b506117498b828c0161123e565b9150509295985092959890939650565b6000610140828403121561176b578081fd5b61166d8383611350565b600060208284031215611786578081fd5b5035919050565b60006020828403121561179e578081fd5b5051919050565b6001600160a01b03169052565b6000815180845260208085019450808401835b838110156117e1578151875295820195908201906001016117c5565b509495945050505050565b15159052565b6000815180845261180a816020860160208601611d68565b601f01601f19169290920160200192915050565b80518252602081015161183460208401826117a5565b5060408101516040830152606081015161185160608401826117a5565b506080810151608083015260a081015161186e60a08401826117ec565b5060c081015160c083015260e081015160e0830152610100808201518184015250610120808201518184015250610140808201516118ae828501826117ec565b50505050565b6118bf8282516117a5565b6020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015161190360c08401826117a5565b5060e081015161191660e08401826117ec565b506101008082015161192a828501826117ec565b5050610120808201516118ae828501826117a5565b600061038061194f84845161181e565b60208301516119626101608601826118b4565b506040830151816102a086015261197b828601826117f2565b91505060608301518482036102c086015261199682826117f2565b91505060808301516102e085015260a083015161030085015260c08301518482036103208601526119c782826117f2565b91505060e08301518482036103408601526119e282826117f2565b9150506101008301516119f96103608601826117a5565b509392505050565b8051151582526020808201511515908301526040908101511515910152565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082528251828201819052600091906040908185019080840286018301878501865b83811015611ad657888303603f19018552815180516001600160a01b03908116855288820151168885015286810151608088860181905290611ab5828701826117b2565b60609384015196909301959095525094870194925090860190600101611a71565b509098975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611b3757603f19888603018452611b2585835161193f565b94509285019290850190600101611b09565b5092979650505050505050565b60006040825260408201845180825260608401915060206060818302860101818801855b84811015611c7f57605f198884030186528151805160a08552611b8e60a08601826117b2565b905085820151868601526040820151858203604087015281815180845288840191508889820285010189840193508c5b82811015611c5257601f198683030184528451805160e08452611be460e08501826117f2565b90508c8201518482038e860152611bfb82826117f2565b91505060408201518482036040860152611c1582826117f2565b9150506060820151611c2a60608601826117a5565b5060808201519150611c3f6080850183611a01565b958c0195948c0194925050600101611bbe565b50606086810151908a01526080958601519590980194909452505050958401955090830190600101611b68565b50508581038287015286518152818701519350604082820152611ca560408201856117b2565b98975050505050505050565b60208082526003908201526227bb9960e91b604082015260600190565b6020808252600390820152624f773160e81b604082015260600190565b602080825260029082015261653560f01b604082015260600190565b60006020825261166d602083018461193f565b90815260200190565b6040518181016001600160401b0381118282101715611d4157600080fd5b604052919050565b60006001600160401b03821115611d5e578081fd5b5060209081020190565b60005b83811015611d83578181015183820152602001611d6b565b838111156118ae5750506000910152565b6001600160a01b0381168114611da957600080fd5b50565b8015158114611da957600080fdfea264697066735822122060bb4b4da9255adf5437d64b4ea7e569cb257b7f9b1929ddf61b7e50bac675e664736f6c634300060c0033

Deployed ByteCode Sourcemap

8425:6016:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8601:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13080:567;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13661:737::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8832:48::-;;;;;;:::i;:::-;;:::i;11874:1187::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;9333:114::-;;;;;;:::i;:::-;;:::i;:::-;;2260:79;;;:::i;10518:930::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9459:147::-;;;;;;:::i;:::-;;:::i;8567:27::-;;;:::i;11456:406::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2445:209::-;;;;;;:::i;:::-;;:::i;9625:248::-;;;;;;:::i;:::-;;:::i;8601:86::-;;;-1:-1:-1;;;;;8601:86:0;;:::o;13080:567::-;13219:17;;13173:18;;13252:7;13248:56;;-1:-1:-1;13283:8:0;;13248:56;13318:9;13313:184;13337:3;13333:1;:7;13313:184;;;13364:22;13393:16;;;:13;:16;;;;;;;:34;;-1:-1:-1;;;13393:34:0;;-1:-1:-1;;;;;13393:16:0;;;;:27;;:34;;13421:5;;13393:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13393:34:0;;;;;;;;;;;;:::i;:::-;13362:65;;;;;;13455:30;13470:14;13455:10;:14;;:30;;;;:::i;:::-;13442:43;-1:-1:-1;;13342:3:0;;13313:184;;;-1:-1:-1;13519:11:0;;-1:-1:-1;;;;;13519:11:0;13511:34;13507:133;;13590:11;;:37;;-1:-1:-1;;;13590:37:0;;13575:53;;-1:-1:-1;;;;;13590:11:0;;:30;;:37;;13621:5;;13590:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13575:10;;:14;:53::i;:::-;13562:66;;13507:133;13080:567;;;;;:::o;13661:737::-;13819:17;;13759:32;;13852:7;13848:56;;-1:-1:-1;13883:8:0;;13848:56;13947:3;-1:-1:-1;;;;;13927:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;13915:36;;13968:9;13963:427;13982:3;13980:1;:5;13963:427;;;14007:9;14019:16;;;:13;:16;;;;;;;14074:7;;-1:-1:-1;;;14074:7:0;;;;-1:-1:-1;;;;;14019:16:0;;;;14007:9;14019:16;;14074:5;;:7;;;;;;;;;;;;;;;14019:16;14074:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:16;;;14051:39;;14106:9;14118:1;-1:-1:-1;;;;;14118:23:0;;14142:5;14118:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14106:42;;14164:21;14202:1;-1:-1:-1;;;;;14188:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14188:16:0;;14164:40;;14225:9;14220:102;14239:1;14237;:3;14220:102;;;14276:29;;-1:-1:-1;;;14276:29:0;;-1:-1:-1;;;;;14276:20:0;;;;;:29;;14297:5;;14303:1;;14276:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14266:4;14271:1;14266:7;;;;;;;;;;;;;;;;;:39;14241:3;;14220:102;;;;14352:25;;;;;;;;14366:1;-1:-1:-1;;;;;14352:25:0;;;;;14368:1;-1:-1:-1;;;;;14352:25:0;;;;;14370:4;14352:25;;;;14375:1;14352:25;;;14337:9;14347:1;14337:12;;;;;;;;;;;;;:40;;;;13963:427;;;;13986:3;;;;;;;13963:427;;;;13661:737;;;;;:::o;8832:48::-;;;;;;;;;;;;-1:-1:-1;;;;;8832:48:0;;:::o;11874:1187::-;11964:40;12005:38;;:::i;:::-;12071:17;;12104:7;12100:56;;-1:-1:-1;12135:8:0;;12100:56;12205:3;-1:-1:-1;;;;;12183:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;12165:44;;12224:9;12219:327;12243:3;12239:1;:7;12219:327;;;12298:22;12389:16;;;:13;:16;;;;;;;:34;;-1:-1:-1;;;12389:34:0;;12269:28;;12298:22;12269:28;;12298:22;;;;-1:-1:-1;;;;;12389:16:0;;;;:27;;:34;;12417:5;;12389:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12389:34:0;;;;;;;;;;;;:::i;:::-;12268:155;;;;;;;;;;12459:75;;;;;;;;12475:11;12459:75;;;;12487:14;12459:75;;;;12502:12;12459:75;;;;12515:8;12459:75;;;;12524:9;12459:75;;;12438:15;12454:1;12438:18;;;;;;;;;;;;;:96;;;;12219:327;;;;;12248:3;;;;;;;12219:327;;;-1:-1:-1;12568:11:0;;-1:-1:-1;;;;;12568:11:0;12556:498;;12629:35;;;;;;;;-1:-1:-1;12629:35:0;;;12647:16;;;;;12629:35;12647:16;;;;;;12629:35;;;;;;;;-1:-1:-1;12556:498:0;;;12718:11;;:37;;-1:-1:-1;;;12718:37:0;;12697:18;;-1:-1:-1;;;;;12718:11:0;;:30;;:37;;12749:5;;12718:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12697:58;;12770:28;12815:10;-1:-1:-1;;;;;12801:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12801:25:0;;12770:56;;12846:9;12841:130;12860:10;12858:1;:12;12841:130;;;12912:11;;:43;;-1:-1:-1;;;12912:43:0;;-1:-1:-1;;;;;12912:11:0;;;;:34;;:43;;12947:5;;12953:1;;12912:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12895:11;12907:1;12895:14;;;;;;;;;;;;;;;;;:60;12871:3;;12841:130;;;-1:-1:-1;13003:39:0;;;;;;;;;;;;;;;;;-1:-1:-1;12556:498:0;11874:1187;;;;;;:::o;9333:114::-;2397:12;:10;:12::i;:::-;2387:6;;-1:-1:-1;;;;;2387:6:0;;;:22;;;2379:38;;;;-1:-1:-1;;;2379:38:0;;;;;;;:::i;:::-;;;;;;;;;9413:11:::1;:26:::0;;-1:-1:-1;;;;;;9413:26:0::1;-1:-1:-1::0;;;;;9413:26:0;;;::::1;::::0;;;::::1;::::0;;9333:114::o;2260:79::-;2298:7;2325:6;-1:-1:-1;;;;;2325:6:0;2260:79;:::o;10518:930::-;10575:32;;:::i;:::-;10647:21;;;;:13;:21;;;;;;-1:-1:-1;;;;;10647:21:0;;10620:24;;:48;10694:30;;:::i;:::-;10727:21;;;;:13;:21;;;;;;;;:27;;-1:-1:-1;;;10727:27:0;;;;-1:-1:-1;;;;;10727:21:0;;;;:25;;:27;;;;;;;;;;;;;;:21;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10769:30;;-1:-1:-1;10836:30:0;;:::i;:::-;10869:21;;;;:13;:21;;;;;;;;:27;;-1:-1:-1;;;10869:27:0;;;;-1:-1:-1;;;;;10869:21:0;;;;:25;;:27;;;;;;;;;;;;;;:21;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10911:16;;;;:30;;;;11025:17;11108:21;;;:13;:21;;;;;;;;:43;;-1:-1:-1;;;11108:43:0;;;;10981:19;;-1:-1:-1;10981:19:0;;11025:17;;;10981:19;;;;-1:-1:-1;;;;;11108:21:0;;;;:41;;:43;;;;;11025:17;;11108:43;;;;;;;:21;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11108:43:0;;;;;;;;;;;;:::i;:::-;11166:19;;;:27;;;;11208:21;;;:31;;;;11254:23;;;:35;;;;11304:20;;;:29;11348:21;;;:31;11394:23;;;:35;-1:-1:-1;11166:13:0;;10518:930;-1:-1:-1;;;;;;;;10518:930:0:o;9459:147::-;2397:12;:10;:12::i;:::-;2387:6;;-1:-1:-1;;;;;2387:6:0;;;:22;;;2379:38;;;;-1:-1:-1;;;2379:38:0;;;;;;;:::i;:::-;9541:8:::1;::::0;;9527:23:::1;::::0;;;:13:::1;:23;::::0;;;;:34;;-1:-1:-1;;;;;;9527:34:0::1;-1:-1:-1::0;;;;;9527:34:0;::::1;;::::0;;9583:8;;:15:::1;::::0;:12:::1;:15::i;:::-;9572:8;:26:::0;-1:-1:-1;9459:147:0:o;8567:27::-;;;;:::o;11456:406::-;11598:17;;11532:38;;11631:7;11627:56;;-1:-1:-1;11662:8:0;;11627:56;11731:3;-1:-1:-1;;;;;11713:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11693:42;;11751:9;11746:109;11770:3;11766:1;:7;11746:109;;;11818:25;11829:10;11840:1;11829:13;;;;;;;;;;;;;;11818:10;:25::i;:::-;11795:17;11813:1;11795:20;;;;;;;;;;;;;;;;;:48;11775:3;;11746:109;;;;11456:406;;;;:::o;2445:209::-;2397:12;:10;:12::i;:::-;2387:6;;-1:-1:-1;;;;;2387:6:0;;;:22;;;2379:38;;;;-1:-1:-1;;;2379:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2534:22:0;::::1;2526:38;;;;-1:-1:-1::0;;;2526:38:0::1;;;;;;;:::i;:::-;2601:6;::::0;;2580:38:::1;::::0;-1:-1:-1;;;;;2580:38:0;;::::1;::::0;2601:6;::::1;::::0;2580:38:::1;::::0;::::1;2629:6;:17:::0;;-1:-1:-1;;;;;;2629:17:0::1;-1:-1:-1::0;;;;;2629:17:0;;;::::1;::::0;;;::::1;::::0;;2445:209::o;9625:248::-;2397:12;:10;:12::i;:::-;2387:6;;-1:-1:-1;;;;;2387:6:0;;;:22;;;2379:38;;;;-1:-1:-1;;;2379:38:0;;;;;;;:::i;:::-;9715:9:::1;9710:156;9729:12;:19;9727:1;:21;9710:156;;;9801:12;9814:1;9801:15;;;;;;;;;::::0;;::::1;::::0;;;;;;;9789:8:::1;::::0;;9775:23:::1;::::0;;;:13:::1;:23:::0;;;;;;;:41;;-1:-1:-1;;;;;;9775:41:0::1;-1:-1:-1::0;;;;;9775:41:0;;::::1;::::0;;;::::1;::::0;;9838:8;;:15:::1;::::0;:12:::1;:15::i;:::-;9827:8;:26:::0;;;9749:3:::1;9710:156;;;;9625:248:::0;:::o;3785:154::-;3843:7;3875:5;;;3899:6;;;;3891:21;;;;-1:-1:-1;;;3891:21:0;;;;;;;:::i;:::-;3930:1;-1:-1:-1;3785:154:0;;;;;:::o;1423:106::-;1511:10;1423:106;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;142:134::-;220:13;;238:33;220:13;238:33;:::i;1097:758::-;;1249:3;1242:4;1234:6;1230:17;1226:27;1216:2;;-1:-1;;1257:12;1216:2;1297:6;1291:13;1319:104;1334:88;1415:6;1334:88;:::i;:::-;1319:104;:::i;:::-;1451:21;;;1310:113;-1:-1;1495:4;1508:14;;;;1483:17;;;1603:1;1588:261;1613:6;1610:1;1607:13;1588:261;;;1683:10;;1671:23;;4779:4;4758:19;;;-1:-1;;4758:19;4754:30;4751:2;;;1603:1;;4787:12;4751:2;4830:4;4815:20;4830:4;4815:20;:::i;:::-;1495:4;1671:23;;4885:24;-1:-1;;;;;4929:18;4921:6;4918:30;4915:2;;;1603:1;;4951:12;4915:2;4996:70;5062:3;1495:4;5053:6;1671:23;5038:22;;4996:70;:::i;:::-;4978:16;4971:96;5136:18;;;;1671:23;5136:18;5130:25;4929:18;5167:6;5164:30;5161:2;;;1603:1;;5197:12;5161:2;5242:70;5308:3;1495:4;5299:6;1671:23;5284:22;;5242:70;:::i;:::-;1495:4;5228:5;5224:16;5217:96;;5384:18;;1671:23;5384:18;5378:25;4929:18;5415:6;5412:30;5409:2;;;1603:1;;5445:12;5409:2;5490:70;5556:3;1495:4;5547:6;1671:23;5532:22;;5490:70;:::i;:::-;5136:18;5476:5;5472:16;5465:96;;5690:22;;;5658:60;5714:3;5690:22;1671:23;5690:22;5658:60;:::i;:::-;5640:16;;;5633:86;-1:-1;5820:88;5904:3;5880:22;;;5820:88;:::i;:::-;5802:16;;;5795:114;1701:85;;-1:-1;;1800:14;;;;1828;;;;1635:1;1628:9;1588:261;;;1592:14;;;;;1209:646;;;;:::o;1881:707::-;;1998:3;1991:4;1983:6;1979:17;1975:27;1965:2;;-1:-1;;2006:12;1965:2;2053:6;2040:20;2075:80;2090:64;2147:6;2090:64;:::i;2075:80::-;2183:21;;;2066:89;-1:-1;2227:4;2240:14;;;;2215:17;;;2329;;;2320:27;;;;2317:36;-1:-1;2314:2;;;2366:1;;2356:12;2314:2;2391:1;2376:206;2401:6;2398:1;2395:13;2376:206;;;10636:20;;2469:50;;2533:14;;;;2561;;;;2423:1;2416:9;2376:206;;3344:128;3419:13;;49905;;49898:21;52352:32;;52342:2;;52398:1;;52388:12;4180:444;;4293:3;4286:4;4278:6;4274:17;4270:27;4260:2;;-1:-1;;4301:12;4260:2;4341:6;4335:13;-1:-1;;;;;45629:6;45626:30;45623:2;;;-1:-1;;45659:12;45623:2;4363:65;4758:19;45713:17;;-1:-1;;45709:33;45800:4;45790:15;4363:65;:::i;:::-;4354:74;;4448:6;4441:5;4434:21;4552:3;45800:4;4543:6;4476;4534:16;;4531:25;4528:2;;;4569:1;;4559:12;4528:2;4579:39;4611:6;45800:4;4510:5;4506:16;45800:4;4476:6;4472:17;4579:39;:::i;5964:2000::-;;6092:6;;6080:9;6075:3;6071:19;6067:32;6064:2;;;-1:-1;;6102:12;6064:2;6130:22;6092:6;6130:22;:::i;:::-;6121:31;;;6269:22;10784:13;6219:16;6212:86;6396:85;6477:3;6363:2;6457:9;6453:22;6396:85;:::i;:::-;6363:2;6382:5;6378:16;6371:111;6553:2;6622:9;6618:22;10784:13;6553:2;6572:5;6568:16;6561:86;6747:60;6803:3;6714:2;6783:9;6779:22;6747:60;:::i;:::-;6714:2;6733:5;6729:16;6722:86;6870:3;6940:9;6936:22;10784:13;6870:3;6890:5;6886:16;6879:86;7067:57;7120:3;7033;7100:9;7096:22;7067:57;:::i;:::-;7033:3;7053:5;7049:16;7042:83;7193:3;7263:9;7259:22;10784:13;7193:3;7213:5;7209:16;7202:86;7355:3;7425:9;7421:22;10784:13;7355:3;7375:5;7371:16;7364:86;7515:3;;7587:9;7583:22;10784:13;7515:3;7535:5;7531:18;7524:88;;7678:3;;7750:9;7746:22;10784:13;7678:3;7698:5;7694:18;7687:88;;7849:3;7885:57;7938:3;7849;7918:9;7914:22;7885:57;:::i;:::-;7865:18;;;7858:85;7869:5;6058:1906;-1:-1;;6058:1906::o;7998:1860::-;;8126:6;;8114:9;8109:3;8105:19;8101:32;8098:2;;;-1:-1;;8136:12;8098:2;8164:22;8126:6;8164:22;:::i;:::-;8155:31;;;8273:73;8342:3;8318:22;8273:73;:::i;:::-;8255:16;8248:99;8413:2;8482:9;8478:22;10784:13;8413:2;8432:5;8428:16;8421:86;8579:2;8648:9;8644:22;10784:13;8579:2;8598:5;8594:16;8587:86;8740:2;8809:9;8805:22;10784:13;8740:2;8759:5;8755:16;8748:86;8898:3;8968:9;8964:22;10784:13;8898:3;8918:5;8914:16;8907:86;9062:3;9132:9;9128:22;10784:13;9062:3;9082:5;9078:16;9071:86;9255:85;9336:3;9221;9316:9;9312:22;9255:85;:::i;:::-;9221:3;9241:5;9237:16;9230:111;9446:57;9499:3;9412;9479:9;9475:22;9446:57;:::i;:::-;9412:3;9432:5;9428:16;9421:83;9573:3;9609:57;9662:3;9573;9642:9;9638:22;9609:57;:::i;:::-;9589:18;;;9582:85;9727:3;9763:73;9832:3;9808:22;;;9763:73;:::i;9892:670::-;;10020:4;10008:9;10003:3;9999:19;9995:30;9992:2;;;-1:-1;;10028:12;9992:2;10056:20;10020:4;10056:20;:::i;:::-;10047:29;;3425:6;3419:13;3437:30;3461:5;3437:30;:::i;:::-;10139:83;;10292:2;10354:22;;3419:13;3437:30;3419:13;3437:30;:::i;:::-;10292:2;10307:16;;10300:83;10450:2;10512:22;;3419:13;3437:30;3419:13;3437:30;:::i;:::-;10450:2;10465:16;;10458:83;10469:5;9986:576;-1:-1;;9986:576::o;10847:241::-;;10951:2;10939:9;10930:7;10926:23;10922:32;10919:2;;;-1:-1;;10957:12;10919:2;85:6;72:20;97:33;124:5;97:33;:::i;11095:502::-;;;11241:2;11229:9;11220:7;11216:23;11212:32;11209:2;;;-1:-1;;11247:12;11209:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;11299:63;-1:-1;11427:2;11412:18;;11399:32;-1:-1;;;;;11440:30;;11437:2;;;-1:-1;;11473:12;11437:2;11503:78;11573:7;11564:6;11553:9;11549:22;11503:78;:::i;:::-;11493:88;;;11203:394;;;;;:::o;11604:407::-;;11748:2;;11736:9;11727:7;11723:23;11719:32;11716:2;;;-1:-1;;11754:12;11716:2;11812:17;11799:31;-1:-1;;;;;11842:6;11839:30;11836:2;;;-1:-1;;11872:12;11836:2;11963:22;;435:4;423:17;;419:27;-1:-1;409:2;;-1:-1;;450:12;409:2;497:6;484:20;519:95;534:79;606:6;534:79;:::i;519:95::-;642:21;;;699:14;;;;674:17;;;788;;;779:27;;;;776:36;-1:-1;773:2;;;-1:-1;;815:12;773:2;-1:-1;841:10;;835:221;860:6;857:1;854:13;835:221;;;3932:6;3919:20;3944:48;3986:5;3944:48;:::i;:::-;928:65;;882:1;875:9;;;;;1007:14;;;;1035;;835:221;;;-1:-1;11892:103;11710:301;-1:-1;;;;;;;11710:301::o;12018:377::-;;12147:2;12135:9;12126:7;12122:23;12118:32;12115:2;;;-1:-1;;12153:12;12115:2;12211:17;12198:31;-1:-1;;;;;12241:6;12238:30;12235:2;;;-1:-1;;12271:12;12235:2;12301:78;12371:7;12362:6;12351:9;12347:22;12301:78;:::i;12402:1115::-;;;;;;12659:3;12647:9;12638:7;12634:23;12630:33;12627:2;;;-1:-1;;12666:12;12627:2;12717:17;12711:24;-1:-1;;;;;12755:18;12747:6;12744:30;12741:2;;;-1:-1;;12777:12;12741:2;12879:6;12868:9;12864:22;;;2742:3;2735:4;2727:6;2723:17;2719:27;2709:2;;-1:-1;;2750:12;2709:2;2790:6;2784:13;2812:80;2827:64;2884:6;2827:64;:::i;2812:80::-;2898:16;2934:6;2927:5;2920:21;2964:4;;2981:3;2977:14;2970:21;;2964:4;2956:6;2952:17;3086:3;2964:4;;3070:6;3066:17;2956:6;3057:27;;3054:36;3051:2;;;-1:-1;;3093:12;3051:2;-1:-1;3119:10;;3113:217;3138:6;3135:1;3132:13;3113:217;;;10784:13;;3206:61;;3160:1;3153:9;;;;;3281:14;;;;3309;;3113:217;;;-1:-1;12983:22;;10784:13;13073:2;13058:18;;13052:25;12797:99;;-1:-1;10784:13;-1:-1;13052:25;-1:-1;;;13086:30;;;13083:2;;;-1:-1;;13119:12;13083:2;;13149:113;13254:7;13245:6;13234:9;13230:22;13149:113;:::i;:::-;13299:2;13349:22;;10784:13;13418:3;13469:22;;;10784:13;12621:896;;;;-1:-1;13139:123;10784:13;;12621:896;-1:-1;;;;12621:896::o;14088:320::-;;14231:3;14219:9;14210:7;14206:23;14202:33;14199:2;;;-1:-1;;14238:12;14199:2;14300:92;14384:7;14360:22;14300:92;:::i;:::-;14290:102;14193:215;-1:-1;;;14193:215::o;14415:1731::-;;;;;;;;;14745:3;14733:9;14724:7;14720:23;14716:33;14713:2;;;-1:-1;;14752:12;14713:2;14814:92;14898:7;14874:22;14814:92;:::i;:::-;14804:102;;14962:92;15046:7;14943:3;15026:9;15022:22;14962:92;:::i;:::-;14952:102;;15112:3;15101:9;15097:19;15091:26;-1:-1;;;;;15137:18;15129:6;15126:30;15123:2;;;-1:-1;;15159:12;15123:2;15189:74;15255:7;15246:6;15235:9;15231:22;15189:74;:::i;:::-;15179:84;;15321:3;15310:9;15306:19;15300:26;15286:40;;15137:18;15338:6;15335:30;15332:2;;;-1:-1;;15368:12;15332:2;15398:74;15464:7;15455:6;15444:9;15440:22;15398:74;:::i;:::-;15388:84;;15509:3;15564:9;15560:22;10784:13;15518:74;;15629:3;15684:9;15680:22;10784:13;15638:74;;15770:3;15759:9;15755:19;15749:26;15735:40;;15137:18;15787:6;15784:30;15781:2;;;-1:-1;;15817:12;15781:2;15847:74;15913:7;15904:6;15893:9;15889:22;15847:74;:::i;:::-;15837:84;;15979:3;15968:9;15964:19;15958:26;15944:40;;15137:18;15996:6;15993:30;15990:2;;;-1:-1;;16026:12;15990:2;;16056:74;16122:7;16113:6;16102:9;16098:22;16056:74;:::i;:::-;16046:84;;;14707:1439;;;;;;;;;;;:::o;16153:320::-;;16296:3;16284:9;16275:7;16271:23;16267:33;16264:2;;;-1:-1;;16303:12;16264:2;16365:92;16449:7;16425:22;16365:92;:::i;16480:241::-;;16584:2;16572:9;16563:7;16559:23;16555:32;16552:2;;;-1:-1;;16590:12;16552:2;-1:-1;10636:20;;16546:175;-1:-1;16546:175::o;16728:263::-;;16843:2;16831:9;16822:7;16818:23;16814:32;16811:2;;;-1:-1;;16849:12;16811:2;-1:-1;10784:13;;16805:186;-1:-1;16805:186::o;18284:103::-;-1:-1;;;;;50457:54;18345:37;;18339:48::o;23171:670::-;;23354:5;46859:12;48539:6;48534:3;48527:19;48576:4;;48571:3;48567:14;23366:83;;48576:4;23520:5;45967:14;-1:-1;23559:260;23584:6;23581:1;23578:13;23559:260;;;23645:13;;39329:37;;18256:14;;;;47808;;;;23606:1;23599:9;23559:260;;;-1:-1;23825:10;;23285:556;-1:-1;;;;;23285:556::o;23849:94::-;49905:13;49898:21;23904:34;;23898:45::o;24759:327::-;;24894:5;46859:12;48539:6;48534:3;48527:19;24978:52;25023:6;48576:4;48571:3;48567:14;48576:4;25004:5;25000:16;24978:52;:::i;:::-;4758:19;52135:14;-1:-1;;52131:28;25042:39;;;;48576:4;25042:39;;24841:245;-1:-1;;24841:245::o;29147:1951::-;29363:16;29357:23;39336:3;39329:37;29532:4;29525:5;29521:16;29515:23;29544:88;29532:4;29621:3;29617:14;29603:12;29544:88;:::i;:::-;;29721:4;29714:5;29710:16;29704:23;29721:4;29785:3;29781:14;39329:37;29881:4;29874:5;29870:16;29864:23;29893:63;29881:4;29945:3;29941:14;29927:12;29893:63;:::i;:::-;;30036:4;30029:5;30025:16;30019:23;30036:4;30100:3;30096:14;39329:37;30197:4;30190:5;30186:16;30180:23;30209:57;30197:4;30255:3;30251:14;30237:12;30209:57;:::i;:::-;;30352:4;30345:5;30341:16;30335:23;30352:4;30416:3;30412:14;39329:37;30512:4;30505:5;30501:16;30495:23;30512:4;30576:3;30572:14;39329:37;30670:6;;30663:5;30659:18;30653:25;30670:6;30736:3;30732:16;39329:37;;30833:6;;30826:5;30822:18;30816:25;30833:6;30899:3;30895:16;39329:37;;31004:6;;30997:5;30993:18;30987:25;31018:59;31004:6;31064:3;31060:16;31046:12;31018:59;:::i;:::-;;;29259:1839;;:::o;31156:1811::-;31397:76;31458:14;31374:16;31368:23;31397:76;:::i;:::-;31557:4;31550:5;31546:16;31540:23;31557:4;31621:3;31617:14;39329:37;31722:4;31715:5;31711:16;31705:23;31722:4;31786:3;31782:14;39329:37;31882:4;31875:5;31871:16;31865:23;31882:4;31946:3;31942:14;39329:37;32039:4;32032:5;32028:16;32022:23;32039:4;32103:3;32099:14;39329:37;32201:4;32194:5;32190:16;32184:23;32201:4;32265:3;32261:14;39329:37;32358:4;32351:5;32347:16;32341:23;32370:88;32358:4;32447:3;32443:14;32429:12;32370:88;:::i;:::-;;32547:4;32540:5;32536:16;32530:23;32559:57;32547:4;32605:3;32601:14;32587:12;32559:57;:::i;:::-;;32703:6;;32696:5;32692:18;32686:25;32717:59;32703:6;32763:3;32759:16;32745:12;32717:59;:::i;:::-;;;32854:6;;32847:5;32843:18;32837:25;32868:78;32854:6;32933:3;32929:16;32915:12;32868:78;:::i;33051:2041::-;;33198:6;33293:119;33397:14;33270:16;33264:23;33293:119;:::i;:::-;33489:4;33482:5;33478:16;33472:23;33501:121;33614:6;33609:3;33605:16;33591:12;33501:121;:::i;:::-;;33702:4;33695:5;33691:16;33685:23;33198:6;33737;33732:3;33728:16;33721:40;33776:73;33198:6;33193:3;33189:16;33830:12;33776:73;:::i;:::-;33768:81;;;33937:4;33930:5;33926:16;33920:23;33991:3;33985:4;33981:14;33972:6;33967:3;33963:16;33956:40;34011:73;34079:4;34065:12;34011:73;:::i;:::-;34003:81;;;34174:4;34167:5;34163:16;34157:23;34243:6;34238:3;34234:16;39329:37;34332:4;34325:5;34321:16;34315:23;34401:6;34396:3;34392:16;39329:37;34491:4;34484:5;34480:16;34474:23;34545:3;34539:4;34535:14;34526:6;34521:3;34517:16;34510:40;34565:73;34633:4;34619:12;34565:73;:::i;:::-;34557:81;;;34728:4;34721:5;34717:16;34711:23;34782:3;34776:4;34772:14;34763:6;34758:3;34754:16;34747:40;34802:73;34870:4;34856:12;34802:73;:::i;:::-;34794:81;;;34966:6;34959:5;34955:18;34949:25;34980:80;35052:6;35047:3;35043:16;35029:12;34980:80;:::i;:::-;-1:-1;35076:11;33171:1921;-1:-1;;;33171:1921::o;38632:629::-;38843:23;;49905:13;49898:21;23904:34;;39017:4;39006:16;;;39000:23;49905:13;49898:21;39071:14;;;23904:34;39171:4;39160:16;;;39154:23;49905:13;49898:21;39225:14;;23904:34;38744:517::o;39498:222::-;-1:-1;;;;;50457:54;;;;18345:37;;39625:2;39610:18;;39596:124::o;39727:333::-;-1:-1;;;;;50457:54;;;;18345:37;;40046:2;40031:18;;39329:37;39882:2;39867:18;;39853:207::o;40067:490::-;40304:2;40318:47;;;46859:12;;40289:18;;;48527:19;;;40067:490;;40304:2;48567:14;;;;;;19072:17;;;19063:27;;;;45967:14;;;40067:490;19230:420;19255:6;19252:1;19249:13;19230:420;;;19307:20;;;-1:-1;;19307:20;19295:33;;19356:13;;26322:23;;-1:-1;;;;;50457:54;;;24024:63;;26501:16;;;26495:23;50457:54;26597:14;;;24024:63;26687:16;;;26681:23;26257:4;26724:14;;;26717:38;;;26257:4;26770:103;26248:14;;;26681:23;26770:103;:::i;:::-;26968:4;26957:16;;;26951:23;27028:14;;;;39329:37;;;;-1:-1;19629:14;;;;26762:111;-1:-1;47808:14;;;;19277:1;19270:9;19230:420;;;-1:-1;40371:176;;40275:282;-1:-1;;;;;;;;40275:282::o;40564:482::-;;40797:2;;40786:9;40782:18;40797:2;40818:17;40811:47;40872:164;21134:5;46859:12;48539:6;48534:3;48527:19;48567:14;40786:9;48567:14;21146:121;;48567:14;40797:2;21324:6;21320:17;40786:9;21311:27;;21299:39;;40797:2;21437:5;45967:14;-1:-1;21476:414;21501:6;21498:1;21495:13;21476:414;;;19307:20;;40786:9;21557:4;21553:20;;21548:3;21541:33;17696:102;17794:3;21608:6;21602:13;17696:102;:::i;:::-;21622:128;-1:-1;21869:14;;;;47808;;;;21523:1;21516:9;21476:414;;;-1:-1;40864:172;;40768:278;-1:-1;;;;;;;40768:278::o;41053:785::-;;41386:2;41407:17;41400:47;41386:2;41375:9;41371:18;22317:5;46859:12;48539:6;41371:18;48527:19;48567:14;41375:9;48567:14;22329:125;;48576:4;48567:14;48576:4;22511:6;22507:17;41375:9;22498:27;;48576:4;22628:5;45967:14;-1:-1;22667:426;22692:6;22689:1;22686:13;22667:426;;;22744:20;;41375:9;22748:4;22744:20;;22739:3;22732:33;22799:6;22793:13;37553:16;37547:23;37474:4;37590:14;37583:38;37636:103;37474:4;37469:3;37465:14;37720:12;37636:103;:::i;:::-;37628:111;;48576:4;37827:5;37823:16;37817:23;48576:4;37898:3;37894:14;39329:37;41386:2;37989:5;37985:16;37979:23;38048:3;38042:4;38038:14;41386:2;38026:3;38022:14;38015:38;38068:151;20001:5;46859:12;48539:6;48534:3;48527:19;48576:4;48571:3;48567:14;20013:107;;48576:4;;20177:6;20173:17;48571:3;20164:27;;48576:4;20286:5;45967:14;20298:21;;-1:-1;20325:402;20350:6;20347:1;20344:13;20325:402;;;4758:19;;48571:3;20406:4;20402:20;;20397:3;20390:33;20457:6;20451:13;28056:16;28050:23;27984:4;28093:14;28086:38;28139:73;27984:4;27979:3;27975:14;28193:12;28139:73;:::i;:::-;28131:81;;48576:4;28292:5;28288:16;28282:23;28351:3;28345:4;28341:14;48576:4;28329:3;28325:14;28318:38;28371:73;28439:4;28425:12;28371:73;:::i;:::-;28363:81;;;41386:2;28526:5;28522:16;28516:23;28585:3;28579:4;28575:14;41386:2;28563:3;28559:14;28552:38;28605:73;28673:4;28659:12;28605:73;:::i;:::-;28597:81;;;48567:14;28759:5;28755:16;28749:23;28778:63;48567:14;28830:3;28826:14;28812:12;28778:63;:::i;:::-;;28926:4;28919:5;28915:16;28909:23;28889:43;;28938:119;28926:4;29046:3;29042:14;29028:12;28938:119;:::i;:::-;47808:14;;;;20706;;;;20471:120;-1:-1;;22714:1;20365:9;20325:402;;;-1:-1;48567:14;38297:16;;;38291:23;38368:14;;;39329:37;28926:4;38456:16;;;38450:23;38527:14;;;;39329:37;;;;-1:-1;;;23072:14;;;;-1:-1;47808:14;;;;22714:1;22707:9;22667:426;;;22671:14;;41681:9;41675:4;41671:20;48576:4;41655:9;41651:18;41644:48;27410:16;27404:23;39336:3;39329:37;48576:4;27575:5;27571:16;27565:23;27545:43;;41386:2;48576:4;27612:3;27608:14;27601:38;27654:103;41386:2;27327:3;27323:14;27738:12;27654:103;:::i;:::-;41698:130;41357:481;-1:-1;;;;;;;;41357:481::o;42371:416::-;42571:2;42585:47;;;25318:1;42556:18;;;48527:19;-1:-1;;;48567:14;;;25333:26;25378:12;;;42542:245::o;42794:416::-;42994:2;43008:47;;;25629:1;42979:18;;;48527:19;-1:-1;;;48567:14;;;25644:26;25689:12;;;42965:245::o;43217:416::-;43417:2;43431:47;;;25940:1;43402:18;;;48527:19;-1:-1;;;48567:14;;;25955:25;25999:12;;;43388:245::o;43640:382::-;;43823:2;43844:17;43837:47;43898:114;43823:2;43812:9;43808:18;43998:6;43898:114;:::i;44029:222::-;39329:37;;;44156:2;44141:18;;44127:124::o;44258:256::-;44320:2;44314:9;44346:17;;;-1:-1;;;;;44406:34;;44442:22;;;44403:62;44400:2;;;44478:1;;44468:12;44400:2;44320;44487:22;44298:216;;-1:-1;44298:216::o;44521:319::-;;-1:-1;;;;;44687:6;44684:30;44681:2;;;-1:-1;;44717:12;44681:2;-1:-1;44762:4;44750:17;;;44815:15;;44618:222::o;51791:268::-;51856:1;51863:101;51877:6;51874:1;51871:13;51863:101;;;51944:11;;;51938:18;51925:11;;;51918:39;51899:2;51892:10;51863:101;;;51979:6;51976:1;51973:13;51970:2;;;-1:-1;;51856:1;52026:16;;52019:27;51840:219::o;52172:117::-;-1:-1;;;;;50457:54;;52231:35;;52221:2;;52280:1;;52270:12;52221:2;52215:74;:::o;52296:111::-;52377:5;49905:13;49898:21;52355:5;52352:32;52342:2;;52398:1;;52388:12

Swarm Source

ipfs://60bb4b4da9255adf5437d64b4ea7e569cb257b7f9b1929ddf61b7e50bac675e6
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading