Contract 0x16075eB18792B473b89E39BCa71D6015039021De

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x263c34b7d7b74d23c170cdd7fa9c09b5f583ebf71e2f3e2779b0461da55a6d01Add IGO Poo List117744192022-01-15 3:28:0913 days 4 hrs ago0x1c1bdadd6b167f4a60dfeccc525534bf0f5bf323 IN 0x16075eb18792b473b89e39bca71d6015039021de0 HT0.00026103825 2.25
0xd236cd363ef180b6fdadbabd2ea4117d8bc8e24b9f398481746e10cc2fb911efSet Staking Pool117743862022-01-15 3:26:3013 days 4 hrs ago0x1c1bdadd6b167f4a60dfeccc525534bf0f5bf323 IN 0x16075eb18792b473b89e39bca71d6015039021de0 HT0.00010388025 2.25
0x84155dc3bbfe4b237758502aecb597c4fb2cd7574c080656ccd533ed0e5e431a0x60806040117743412022-01-15 3:24:1513 days 4 hrs ago0x1c1bdadd6b167f4a60dfeccc525534bf0f5bf323 IN  Create: IGOPoolFactory0 HT0.00371405025 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;
    //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 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":"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"}]

6080604052600060015534801561001557600080fd5b50600061002061006f565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610073565b3390565b611c66806100826000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638f35325e116100715780638f35325e146101485780639a0d36a1146101685780639d78c8341461017b578063dfe3a3c114610190578063f2fde38b146101b0578063f3638a34146101c3576100b4565b80630c56ae3b146100b95780631bd9f877146100d75780631c3ac665146100f75780631c4231481461010a5780633028f63a1461012b5780638da5cb5b14610140575b600080fd5b6100c16101d6565b6040516100ce91906118fd565b60405180910390f35b6100ea6100e53660046112cb565b6101e5565b6040516100ce919061192a565b6100c16101053660046115e3565b6104b5565b61011d6101183660046112cb565b6104d0565b6040516100ce929190611a21565b61013e6101393660046112af565b610804565b005b6100c1610864565b61015b6101563660046115e3565b610873565b6040516100ce9190611b7d565b61013e6101763660046112af565b610a93565b610183610b04565b6040516100ce9190611b90565b6101a361019e3660046113b0565b610b0a565b6040516100ce91906119c1565b61013e6101be3660046112af565b610bb9565b61013e6101d1366004611318565b610c6f565b6002546001600160a01b031681565b8051606090806101f457506001545b806001600160401b038111801561020a57600080fd5b5060405190808252806020026020018201604052801561024457816020015b610231610d44565b8152602001906001900390816102295790505b50915060005b818110156104ad576000818152600360205260408082205481516315d8e44960e01b815291516001600160a01b03909116929183916315d8e4499160048082019261016092909190829003018186803b1580156102a657600080fd5b505afa1580156102ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102de91906114bf565b6020015190506000826001600160a01b031663e4e5daec896040518263ffffffff1660e01b815260040161031291906118fd565b60206040518083038186803b15801561032a57600080fd5b505afa15801561033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036291906115fb565b90506060816001600160401b038111801561037c57600080fd5b506040519080825280602002602001820160405280156103a6578160200160208202803683370190505b50905060005b8281101561045157604051632d5147c760e11b81526001600160a01b03861690635aa28f8e906103e2908d908590600401611911565b60206040518083038186803b1580156103fa57600080fd5b505afa15801561040e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043291906115fb565b82828151811061043e57fe5b60209081029190910101526001016103ac565b506040518060800160405280856001600160a01b03168152602001846001600160a01b031681526020018281526020018381525087868151811061049157fe5b602002602001018190525050505050808060010191505061024a565b505092915050565b6003602052600090815260409020546001600160a01b031681565b60606104da610d7e565b8251806104e657506001545b806001600160401b03811180156104fc57600080fd5b5060405190808252806020026020018201604052801561053657816020015b610523610d98565b81526020019060019003908161051b5790505b50925060005b81811015610638576000818152600360205260408082205490516311c8863360e01b8152606092918391839182916001600160a01b03909116906311c886339061058a908e906004016118fd565b60006040518083038186803b1580156105a257600080fd5b505afa1580156105b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105de91908101906113ea565b945094509450945094506040518060a001604052808681526020018581526020018481526020018381526020018281525089878151811061061b57fe5b60200260200101819052505050505050808060010191505061053c565b506002546001600160a01b0316610672576040805180820182526000808252825190815260208082019093529181019190915291506107fc565b600254604051630718b39f60e01b81526000916001600160a01b031690630718b39f906106a39089906004016118fd565b60206040518083038186803b1580156106bb57600080fd5b505afa1580156106cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f391906115fb565b90506060816001600160401b038111801561070d57600080fd5b50604051908082528060200260200182016040528015610737578160200160208202803683370190505b50905060005b828110156107e657600254604051631c9e04e960e31b81526001600160a01b039091169063e4f0274890610777908b908590600401611911565b60206040518083038186803b15801561078f57600080fd5b505afa1580156107a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c791906115fb565b8282815181106107d357fe5b602090810291909101015260010161073d565b5060408051808201909152918252602082015291505b509250929050565b61080c610d12565b6000546001600160a01b039081169116146108425760405162461bcd60e51b815260040161083990611b44565b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b61087b610dc7565b6000828152600360205260409020546001600160a01b03166101008201526108a1610e28565b600083815260036020526040908190205481516315d8e44960e01b815291516001600160a01b03909116916315d8e44991600480830192610160929190829003018186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092a91906114bf565b825250610935610e98565b6000838152600360205260409081902054815163dda1f8ad60e01b815291516001600160a01b039091169163dda1f8ad91600480830192610140929190829003018186803b15801561098657600080fd5b505afa15801561099a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109be91906115c7565b602080840191909152600084815260039091526040808220548151635a25cc8960e01b81529151606094508493928392859283926001600160a01b0390921691635a25cc899160048083019288929190829003018186803b158015610a2257600080fd5b505afa158015610a36573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a5e91908101906114e2565b60408f019590955260608e019390935260808d019190915260a08c015260c08b015260e08a0152509698975050505050505050565b610a9b610d12565b6000546001600160a01b03908116911614610ac85760405162461bcd60e51b815260040161083990611b44565b60018054600090815260036020526040902080546001600160a01b0319166001600160a01b0384161790558054610afe91610d16565b60015550565b60015481565b805160609080610b1957506001545b806001600160401b0381118015610b2f57600080fd5b50604051908082528060200260200182016040528015610b6957816020015b610b56610dc7565b815260200190600190039081610b4e5790505b50915060005b81811015610bb257610b93848281518110610b8657fe5b6020026020010151610873565b838281518110610b9f57fe5b6020908102919091010152600101610b6f565b5050919050565b610bc1610d12565b6000546001600160a01b03908116911614610bee5760405162461bcd60e51b815260040161083990611b44565b6001600160a01b038116610c145760405162461bcd60e51b815260040161083990611b27565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610c77610d12565b6000546001600160a01b03908116911614610ca45760405162461bcd60e51b815260040161083990611b44565b60005b8151811015610d0e57818181518110610cbc57fe5b6020908102919091018101516001805460009081526003909352604090922080546001600160a01b0319166001600160a01b039092169190911790558054610d0391610d16565b600190815501610ca7565b5050565b3390565b600082820183811015610d3b5760405162461bcd60e51b815260040161083990611b61565b90505b92915050565b604051806080016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160608152602001600081525090565b604051806040016040528060008152602001606081525090565b6040518060a0016040528060608152602001600081526020016060815260200160008152602001600081525090565b604051806101200160405280610ddb610e28565b8152602001610de8610e98565b815260200160608152602001606081526020016000815260200160008152602001606081526020016060815260200160006001600160a01b031681525090565b6040518061016001604052806000815260200160006001600160a01b031681526020016000815260200160006001600160a01b0316815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000151581525090565b60405180610140016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160001515815260200160001515815260200160006001600160a01b031681525090565b8051610d3e81611c0a565b600082601f830112610f25578081fd5b8151610f38610f3382611bbf565b611b99565b818152915060208083019084810160005b84811015611024578151870160e0818a03601f19011215610f6957600080fd5b60a0610f7481611b99565b858301516001600160401b0380821115610f8d57600080fd5b610f9b8d898488010161109d565b8352604091508185015181811115610fb257600080fd5b610fc08e8a8389010161109d565b898501525060608086015182811115610fd857600080fd5b610fe68f8b838a010161109d565b848601525060809250610ffb8e848801610f0a565b908401525061100c8c858501611259565b90820152865250509282019290820190600101610f49565b505050505092915050565b600082601f83011261103f578081fd5b813561104d610f3382611bbf565b81815291506020808301908481018184028601820187101561106e57600080fd5b60005b8481101561102457813584529282019290820190600101611071565b80518015158114610d3e57600080fd5b600082601f8301126110ad578081fd5b81516001600160401b038111156110c2578182fd5b6110d5601f8201601f1916602001611b99565b91508082528360208285010111156110ec57600080fd5b6110fd816020840160208601611bde565b5092915050565b6000610160808385031215611117578182fd5b61112081611b99565b915050815181526111348360208401610f0a565b6020820152604082015160408201526111508360608401610f0a565b60608201526080820151608082015261116c8360a0840161108d565b60a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101406111ac8482850161108d565b9082015292915050565b60006101408083850312156111c9578182fd5b6111d281611b99565b9150506111df8383610f0a565b81526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a08201526112208360c08401610f0a565b60c08201526112328360e0840161108d565b60e08201526101006112468482850161108d565b908201526101206111ac84848301610f0a565b60006060828403121561126a578081fd5b6112746060611b99565b9050815161128181611c22565b8152602082015161129181611c22565b602082015260408201516112a481611c22565b604082015292915050565b6000602082840312156112c0578081fd5b8135610d3b81611c0a565b600080604083850312156112dd578081fd5b82356112e881611c0a565b915060208301356001600160401b03811115611302578182fd5b61130e8582860161102f565b9150509250929050565b6000602080838503121561132a578182fd5b82356001600160401b0381111561133f578283fd5b8301601f8101851361134f578283fd5b803561135d610f3382611bbf565b8181528381019083850185840285018601891015611379578687fd5b8694505b838510156113a457803561139081611c0a565b83526001949094019391850191850161137d565b50979650505050505050565b6000602082840312156113c1578081fd5b81356001600160401b038111156113d6578182fd5b6113e28482850161102f565b949350505050565b600080600080600060a08688031215611401578081fd5b85516001600160401b0380821115611417578283fd5b818801915088601f83011261142a578283fd5b8151611438610f3382611bbf565b80828252602080830192508086018d828387028901011115611458578788fd5b8796505b8487101561147a57805184526001969096019592810192810161145c565b508b015160408c0151919a5098509350505080821115611498578283fd5b506114a588828901610f15565b606088015160809098015196999598509695949350505050565b600061016082840312156114d1578081fd5b6114db8383611104565b9392505050565b600080600080600080600080610360898b0312156114fe578586fd5b6115088a8a611104565b97506115188a6101608b016111b6565b96506102a08901516001600160401b0380821115611534578788fd5b6115408c838d0161109d565b97506102c08b0151915080821115611556578485fd5b6115628c838d0161109d565b96506102e08b015195506103008b015194506103208b0151915080821115611588578384fd5b6115948c838d0161109d565b93506103408b01519150808211156115aa578283fd5b506115b78b828c0161109d565b9150509295985092959890939650565b600061014082840312156115d9578081fd5b6114db83836111b6565b6000602082840312156115f4578081fd5b5035919050565b60006020828403121561160c578081fd5b5051919050565b6000815160e0845261162860e08501826116ee565b90506020830151848203602086015261164182826116ee565b9150506040830151848203604086015261165b82826116ee565b91505060018060a01b03606084015116606085015260808301518051151560808601526020810151151560a08601526040810151151560c0860152508091505092915050565b6001600160a01b03169052565b6000815180845260208085019450808401835b838110156116dd578151875295820195908201906001016116c1565b509495945050505050565b15159052565b60008151808452611706816020860160208601611bde565b601f01601f19169290920160200192915050565b80518252602081015161173060208401826116a1565b5060408101516040830152606081015161174d60608401826116a1565b506080810151608083015260a081015161176a60a08401826116e8565b5060c081015160c083015260e081015160e0830152610100808201518184015250610120808201518184015250610140808201516117aa828501826116e8565b50505050565b6117bb8282516116a1565b6020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c08101516117ff60c08401826116a1565b5060e081015161181260e08401826116e8565b5061010080820151611826828501826116e8565b5050610120808201516117aa828501826116a1565b600061038061184b84845161171a565b602083015161185e6101608601826117b0565b506040830151816102a0860152611877828601826116ee565b91505060608301518482036102c086015261189282826116ee565b91505060808301516102e085015260a083015161030085015260c08301518482036103208601526118c382826116ee565b91505060e08301518482036103408601526118de82826116ee565b9150506101008301516118f56103608601826116a1565b509392505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082528251828201819052600091906040908185019080840286018301878501865b838110156119b357888303603f19018552815180516001600160a01b03908116855288820151168885015286810151608088860181905290611992828701826116ae565b6060938401519690930195909552509487019492509086019060010161194e565b509098975050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611a1457603f19888603018452611a0285835161183b565b945092850192908501906001016119e6565b5092979650505050505050565b604080825283518282018190526000919060609081850190602080820287018401818a01875b84811015611af557605f198a8403018652815160a08151818652611a6d828701826116ae565b9150508582015186860152898201518582038b870152818151611a908185611b90565b93509188019183915080890282018e5b82811015611aca578582038452611ab8828651611613565b948b0194938b01939150600101611aa0565b50858d0151898e01526080958601519590980194909452505050958401955090830190600101611a47565b505087810382890152885181528189015194508582820152611b19868201866116ae565b9a9950505050505050505050565b60208082526003908201526227bb9960e91b604082015260600190565b6020808252600390820152624f773160e81b604082015260600190565b602080825260029082015261653560f01b604082015260600190565b6000602082526114db602083018461183b565b90815260200190565b6040518181016001600160401b0381118282101715611bb757600080fd5b604052919050565b60006001600160401b03821115611bd4578081fd5b5060209081020190565b60005b83811015611bf9578181015183820152602001611be1565b838111156117aa5750506000910152565b6001600160a01b0381168114611c1f57600080fd5b50565b8015158114611c1f57600080fdfea2646970667358221220f2ffc1c51a0774b70f33c9eb850cd600675812ba9037850f3ee0001cfaf102aa64736f6c634300060c0033

Deployed ByteCode Sourcemap

8425:5374:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8601:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13019:737;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8776:48::-;;;;;;:::i;:::-;;:::i;11818:1187::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;9277:114::-;;;;;;:::i;:::-;;:::i;:::-;;2260:79;;;:::i;10462:930::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9403:147::-;;;;;;:::i;:::-;;:::i;8567:27::-;;;:::i;:::-;;;;;;;:::i;11400:406::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2445:209::-;;;;;;:::i;:::-;;:::i;9569:248::-;;;;;;:::i;:::-;;:::i;8601:30::-;;;-1:-1:-1;;;;;8601:30:0;;:::o;13019:737::-;13177:17;;13117:32;;13210:7;13206:56;;-1:-1:-1;13241:8:0;;13206:56;13305:3;-1:-1:-1;;;;;13285:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;13273:36;;13326:9;13321:427;13340:3;13338:1;:5;13321:427;;;13365:9;13377:16;;;:13;:16;;;;;;;13432:7;;-1:-1:-1;;;13432:7:0;;;;-1:-1:-1;;;;;13377:16:0;;;;13365:9;13377:16;;13432:5;;:7;;;;;;;;;;;;;;;13377:16;13432:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:16;;;13409:39;;13464:9;13476:1;-1:-1:-1;;;;;13476:23:0;;13500:5;13476:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13464:42;;13522:21;13560:1;-1:-1:-1;;;;;13546:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13546:16:0;;13522:40;;13583:9;13578:102;13597:1;13595;:3;13578:102;;;13634:29;;-1:-1:-1;;;13634:29:0;;-1:-1:-1;;;;;13634:20:0;;;;;:29;;13655:5;;13661:1;;13634:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13624:4;13629:1;13624:7;;;;;;;;;;;;;;;;;:39;13599:3;;13578:102;;;;13710:25;;;;;;;;13724:1;-1:-1:-1;;;;;13710:25:0;;;;;13726:1;-1:-1:-1;;;;;13710:25:0;;;;;13728:4;13710:25;;;;13733:1;13710:25;;;13695:9;13705:1;13695:12;;;;;;;;;;;;;:40;;;;13321:427;;;;13344:3;;;;;;;13321:427;;;;13019:737;;;;;:::o;8776:48::-;;;;;;;;;;;;-1:-1:-1;;;;;8776:48:0;;:::o;11818:1187::-;11908:40;11949:38;;:::i;:::-;12015:17;;12048:7;12044:56;;-1:-1:-1;12079:8:0;;12044:56;12149:3;-1:-1:-1;;;;;12127:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;12109:44;;12168:9;12163:327;12187:3;12183:1;:7;12163:327;;;12242:22;12333:16;;;:13;:16;;;;;;;:34;;-1:-1:-1;;;12333:34:0;;12213:28;;12242:22;12213:28;;12242:22;;;;-1:-1:-1;;;;;12333:16:0;;;;:27;;:34;;12361:5;;12333:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12333:34:0;;;;;;;;;;;;:::i;:::-;12212:155;;;;;;;;;;12403:75;;;;;;;;12419:11;12403:75;;;;12431:14;12403:75;;;;12446:12;12403:75;;;;12459:8;12403:75;;;;12468:9;12403:75;;;12382:15;12398:1;12382:18;;;;;;;;;;;;;:96;;;;12163:327;;;;;12192:3;;;;;;;12163:327;;;-1:-1:-1;12512:11:0;;-1:-1:-1;;;;;12512:11:0;12500:498;;12573:35;;;;;;;;-1:-1:-1;12573:35:0;;;12591:16;;;;;12573:35;12591:16;;;;;;12573:35;;;;;;;;-1:-1:-1;12500:498:0;;;12662:11;;:37;;-1:-1:-1;;;12662:37:0;;12641:18;;-1:-1:-1;;;;;12662:11:0;;:30;;:37;;12693:5;;12662:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12641:58;;12714:28;12759:10;-1:-1:-1;;;;;12745:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12745:25:0;;12714:56;;12790:9;12785:130;12804:10;12802:1;:12;12785:130;;;12856:11;;:43;;-1:-1:-1;;;12856:43:0;;-1:-1:-1;;;;;12856:11:0;;;;:34;;:43;;12891:5;;12897:1;;12856:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12839:11;12851:1;12839:14;;;;;;;;;;;;;;;;;:60;12815:3;;12785:130;;;-1:-1:-1;12947:39:0;;;;;;;;;;;;;;;;;-1:-1:-1;12500:498:0;11818:1187;;;;;;:::o;9277:114::-;2397:12;:10;:12::i;:::-;2387:6;;-1:-1:-1;;;;;2387:6:0;;;:22;;;2379:38;;;;-1:-1:-1;;;2379:38:0;;;;;;;:::i;:::-;;;;;;;;;9357:11:::1;:26:::0;;-1:-1:-1;;;;;;9357:26:0::1;-1:-1:-1::0;;;;;9357:26:0;;;::::1;::::0;;;::::1;::::0;;9277:114::o;2260:79::-;2298:7;2325:6;-1:-1:-1;;;;;2325:6:0;2260:79;:::o;10462:930::-;10519:32;;:::i;:::-;10591:21;;;;:13;:21;;;;;;-1:-1:-1;;;;;10591:21:0;;10564:24;;:48;10638:30;;:::i;:::-;10671:21;;;;:13;:21;;;;;;;;:27;;-1:-1:-1;;;10671:27:0;;;;-1:-1:-1;;;;;10671:21:0;;;;:25;;:27;;;;;;;;;;;;;;:21;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10713:30;;-1:-1:-1;10780:30:0;;:::i;:::-;10813:21;;;;:13;:21;;;;;;;;:27;;-1:-1:-1;;;10813:27:0;;;;-1:-1:-1;;;;;10813:21:0;;;;:25;;:27;;;;;;;;;;;;;;:21;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10855:16;;;;:30;;;;10969:17;11052:21;;;:13;:21;;;;;;;;:43;;-1:-1:-1;;;11052:43:0;;;;10925:19;;-1:-1:-1;10925:19:0;;10969:17;;;10925:19;;;;-1:-1:-1;;;;;11052:21:0;;;;:41;;:43;;;;;10969:17;;11052:43;;;;;;;:21;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11052:43:0;;;;;;;;;;;;:::i;:::-;11110:19;;;:27;;;;11152:21;;;:31;;;;11198:23;;;:35;;;;11248:20;;;:29;11292:21;;;:31;11338:23;;;:35;-1:-1:-1;11110:13:0;;10462:930;-1:-1:-1;;;;;;;;10462:930:0:o;9403:147::-;2397:12;:10;:12::i;:::-;2387:6;;-1:-1:-1;;;;;2387:6:0;;;:22;;;2379:38;;;;-1:-1:-1;;;2379:38:0;;;;;;;:::i;:::-;9485:8:::1;::::0;;9471:23:::1;::::0;;;:13:::1;:23;::::0;;;;:34;;-1:-1:-1;;;;;;9471:34:0::1;-1:-1:-1::0;;;;;9471:34:0;::::1;;::::0;;9527:8;;:15:::1;::::0;:12:::1;:15::i;:::-;9516:8;:26:::0;-1:-1:-1;9403:147:0:o;8567:27::-;;;;:::o;11400:406::-;11542:17;;11476:38;;11575:7;11571:56;;-1:-1:-1;11606:8:0;;11571:56;11675:3;-1:-1:-1;;;;;11657:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11637:42;;11695:9;11690:109;11714:3;11710:1;:7;11690:109;;;11762:25;11773:10;11784:1;11773:13;;;;;;;;;;;;;;11762:10;:25::i;:::-;11739:17;11757:1;11739:20;;;;;;;;;;;;;;;;;:48;11719:3;;11690:109;;;;11400: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;9569:248::-;2397:12;:10;:12::i;:::-;2387:6;;-1:-1:-1;;;;;2387:6:0;;;:22;;;2379:38;;;;-1:-1:-1;;;2379:38:0;;;;;;;:::i;:::-;9659:9:::1;9654:156;9673:12;:19;9671:1;:21;9654:156;;;9745:12;9758:1;9745:15;;;;;;;;;::::0;;::::1;::::0;;;;;;;9733:8:::1;::::0;;9719:23:::1;::::0;;;:13:::1;:23:::0;;;;;;;:41;;-1:-1:-1;;;;;;9719:41:0::1;-1:-1:-1::0;;;;;9719:41:0;;::::1;::::0;;;::::1;::::0;;9782:8;;:15:::1;::::0;:12:::1;:15::i;:::-;9771:8;:26:::0;;;9693:3:::1;9654:156;;;;9569:248:::0;:::o;1423:106::-;1511:10;1423:106;:::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;-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;:::-;;4253:371;;;;:::o;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;:::-;12291:88;12109:286;-1:-1;;;;12109:286::o;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;17281:249::-;;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;;28299:4;28292:5;28288:16;28282:23;28351:3;28345:4;28341:14;28299:4;28329:3;28325:14;28318:38;28371:73;28439:4;28425:12;28371:73;:::i;:::-;28363:81;;;28533:4;28526:5;28522:16;28516:23;28585:3;28579:4;28575:14;28533:4;28563:3;28559:14;28552:38;28605:73;28673:4;28659:12;28605:73;:::i;:::-;28597:81;;;4929:18;;50468:42;;;28766:4;28759:5;28755:16;28749:23;50457:54;28766:4;28830:3;28826:14;18345:37;28926:4;28919:5;28915:16;28909:23;38849:16;38843:23;49905:13;49898:21;28926:4;29046:3;29042:14;23904:34;28299:4;39010:5;39006:16;39000:23;49905:13;49898:21;39071:14;29046:3;39071:14;23904:34;28533:4;39164:5;39160:16;39154:23;49905:13;49898:21;39225:14;29046:3;39225:14;23904:34;;17416:108;;;;17409:121;;;;:::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;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;41400:47;;;46859:12;;41371:18;;;48527:19;;;41053:785;;41386:2;48567:14;;;;;;48576:4;22507:17;;;22498:27;;;;45967:14;;;41053:785;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;37474:4;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;20020:100;20113:6;20108:3;20020:100;:::i;:::-;20013:107;-1:-1;45967:14;;;;20013:107;;-1:-1;20173:17;;;20164:27;;-1:-1;20325:402;20350:6;20347:1;20344:13;20325:402;;;20412:9;20406:4;20402:20;20397:3;20390:33;20479:112;20586:4;20457:6;20451:13;20479:112;:::i;:::-;47808:14;;;;20706;;;;20471:120;-1:-1;22714:1;20365:9;20325:402;;;-1:-1;38297:16;;;38291:23;38368:14;;;39329:37;38467: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://f2ffc1c51a0774b70f33c9eb850cd600675812ba9037850f3ee0001cfaf102aa
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading