ETH Price: $3,351.86 (-1.09%)

Contract

0x6e452121B2cEcb231ab95756f2bb034D8D07F5c2
 

Overview

ETH Balance

0.0001 ETH

Eth Value

$0.34 (@ $3,351.86/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
User With Draw89104672019-11-10 20:46:251875 days ago1573418785IN
0x6e452121...D8D07F5c2
0 ETH0.000042511
Send Award By Se...89104572019-11-10 20:43:521875 days ago1573418632IN
0x6e452121...D8D07F5c2
0 ETH0.000042461
Re Play In89104522019-11-10 20:42:341875 days ago1573418554IN
0x6e452121...D8D07F5c2
0 ETH0.00036782.21
User With Draw89104512019-11-10 20:42:101875 days ago1573418530IN
0x6e452121...D8D07F5c2
0 ETH0.00004161
Re Play In89004202019-11-09 4:49:291877 days ago1573274969IN
0x6e452121...D8D07F5c2
0 ETH0.000165511
Re Play In89004202019-11-09 4:49:291877 days ago1573274969IN
0x6e452121...D8D07F5c2
0 ETH0.00017961
Send Award By Se...88599122019-11-02 16:26:491884 days ago1572712009IN
0x6e452121...D8D07F5c2
0 ETH0.000605710
Send Award By Se...88599012019-11-02 16:23:351884 days ago1572711815IN
0x6e452121...D8D07F5c2
0 ETH0.000605710
Invest88598852019-11-02 16:20:231884 days ago1572711623IN
0x6e452121...D8D07F5c2
1 ETH0.0047701210
Send Award By Se...88598642019-11-02 16:16:441884 days ago1572711404IN
0x6e452121...D8D07F5c2
0 ETH0.0005500710
Send Award By Se...88597992019-11-02 16:02:061884 days ago1572710526IN
0x6e452121...D8D07F5c2
0 ETH0.000181713
Invest88597782019-11-02 15:56:551884 days ago1572710215IN
0x6e452121...D8D07F5c2
1 ETH0.0047701210
Send Award By Se...88596842019-11-02 15:35:251884 days ago1572708925IN
0x6e452121...D8D07F5c2
0 ETH0.000181443
Invest88591802019-11-02 13:37:271884 days ago1572701847IN
0x6e452121...D8D07F5c2
16 ETH0.000462481.95
Invest88577032019-11-02 7:46:561884 days ago1572680816IN
0x6e452121...D8D07F5c2
13 ETH0.0022263211
Invest88572632019-11-02 6:03:491884 days ago1572674629IN
0x6e452121...D8D07F5c2
2 ETH0.0062374710
Invest88562172019-11-02 1:58:101884 days ago1572659890IN
0x6e452121...D8D07F5c2
1 ETH0.002429712
Invest88534512019-11-01 15:35:121885 days ago1572622512IN
0x6e452121...D8D07F5c2
3 ETH0.000215251
Invest88531992019-11-01 14:34:071885 days ago1572618847IN
0x6e452121...D8D07F5c2
14 ETH0.0022494611
Invest88530142019-11-01 13:46:451885 days ago1572616005IN
0x6e452121...D8D07F5c2
30 ETH0.0064179110
Invest88524872019-11-01 11:44:561885 days ago1572608696IN
0x6e452121...D8D07F5c2
15 ETH0.001866448
Invest88516432019-11-01 8:29:121885 days ago1572596952IN
0x6e452121...D8D07F5c2
30 ETH0.0077383412.65
Invest88516362019-11-01 8:27:181885 days ago1572596838IN
0x6e452121...D8D07F5c2
13 ETH0.001027055
Invest88515062019-11-01 7:56:251885 days ago1572594985IN
0x6e452121...D8D07F5c2
6 ETH0.001016525
Invest88514442019-11-01 7:40:461885 days ago1572594046IN
0x6e452121...D8D07F5c2
16 ETH0.0081148812.65
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
88599122019-11-02 16:26:491884 days ago1572712009
0x6e452121...D8D07F5c2
0.965 ETH
88599012019-11-02 16:23:351884 days ago1572711815
0x6e452121...D8D07F5c2
0.9649 ETH
88598852019-11-02 16:20:231884 days ago1572711623
0x6e452121...D8D07F5c2
0.035 ETH
88597992019-11-02 16:02:061884 days ago1572710526
0x6e452121...D8D07F5c2
4,113.1811424 ETH
88597782019-11-02 15:56:551884 days ago1572710215
0x6e452121...D8D07F5c2
0.035 ETH
88591802019-11-02 13:37:271884 days ago1572701847
0x6e452121...D8D07F5c2
0.56 ETH
88577032019-11-02 7:46:561884 days ago1572680816
0x6e452121...D8D07F5c2
0.455 ETH
88572632019-11-02 6:03:491884 days ago1572674629
0x6e452121...D8D07F5c2
0.07 ETH
88562172019-11-02 1:58:101884 days ago1572659890
0x6e452121...D8D07F5c2
0.035 ETH
88534512019-11-01 15:35:121885 days ago1572622512
0x6e452121...D8D07F5c2
0.105 ETH
88531992019-11-01 14:34:071885 days ago1572618847
0x6e452121...D8D07F5c2
0.49 ETH
88530142019-11-01 13:46:451885 days ago1572616005
0x6e452121...D8D07F5c2
1.05 ETH
88524872019-11-01 11:44:561885 days ago1572608696
0x6e452121...D8D07F5c2
0.525 ETH
88516432019-11-01 8:29:121885 days ago1572596952
0x6e452121...D8D07F5c2
1.05 ETH
88516362019-11-01 8:27:181885 days ago1572596838
0x6e452121...D8D07F5c2
0.455 ETH
88515062019-11-01 7:56:251885 days ago1572594985
0x6e452121...D8D07F5c2
0.21 ETH
88514442019-11-01 7:40:461885 days ago1572594046
0x6e452121...D8D07F5c2
0.56 ETH
88510522019-11-01 6:08:381885 days ago1572588518
0x6e452121...D8D07F5c2
0.21 ETH
88506782019-11-01 4:40:591885 days ago1572583259
0x6e452121...D8D07F5c2
0.14 ETH
88502232019-11-01 2:53:411885 days ago1572576821
0x6e452121...D8D07F5c2
0.665 ETH
88491652019-10-31 22:49:401885 days ago1572562180
0x6e452121...D8D07F5c2
0.17 ETH
88474182019-10-31 15:59:451886 days ago1572537585
0x6e452121...D8D07F5c2
0.315 ETH
88473572019-10-31 15:46:191886 days ago1572536779
0x6e452121...D8D07F5c2
0.315 ETH
88472642019-10-31 15:27:121886 days ago1572535632
0x6e452121...D8D07F5c2
0.315 ETH
88472532019-10-31 15:25:331886 days ago1572535533
0x6e452121...D8D07F5c2
0.315 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Ev5

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 3: ev5_main.sol
/**
 *Submitted for verification at Etherscan.io on 2019-09-23
*/
pragma solidity ^0.5.11;
import './ownable.sol';
import './safemath.sol';
/**
 * @title -EV5.Win- v0.5.11
 * ╔═╗┌─┐┬ ┬┬─┐┌─┐┌─┐┌─┐  ┌─┐┌┐┌┌┬┐  ┬ ┬┬┌─┐┌┬┐┌─┐┌┬┐  ┌─┐┬─┐┌─┐  ┌┬┐┬ ┬┌─┐  ┌┐ ┌─┐┌─┐┌┬┐  ┬ ┬┌─┐┌─┐┬  ┌┬┐┬ ┬
 * ║  │ ││ │├┬┘├─┤│ ┬├┤   ├─┤│││ ││  ││││└─┐ │││ ││││  ├─┤├┬┘├┤    │ ├─┤├┤   ├┴┐├┤ └─┐ │   │││├┤ ├─┤│   │ ├─┤
 * ╚═╝└─┘└─┘┴└─┴ ┴└─┘└─┘  ┴ ┴┘└┘─┴┘  └┴┘┴└─┘─┴┘└─┘┴ ┴  ┴ ┴┴└─└─┘   ┴ ┴ ┴└─┘  └─┘└─┘└─┘ ┴   └┴┘└─┘┴ ┴┴─┘ ┴ ┴ ┴
 *
 * ==('-.==========(`-. ====================(`\ .-') /`===============.-') _====================================
 * _(  OO)      _(OO  )_                  `.( OO ),'              ( OO ) )
 * (,------. ,--(_/   ,. \.------.      ,--./  .--.    ,-.-')  ,--./ ,--,'
 *  |  .---' \   \   /(__/|   ___|      |      |  |    |  |OO) |   \ |  |\
 *  |  |      \   \ /   / |  '--.       |  |   |  |,   |  |  \ |    \|  | )
 * (|  '--.    \   '   /, `---.  '.     |  |.'.|  |_)  |  |(_/ |  .     |/
 *  |  .--'     \     /__).-   |  |     |         |   ,|  |_.' |  |\    |
 *  |  `---.     \   /    | `-'   / .-. |   ,'.   |  (_|  |    |  | \   |          © Cargo Keep Team Inc. 2019
 *  `------'      `-'      `----''  `-' '--'   '--'    `--'    `--'  `--'
 * =============================================================================================================
*
*
╔═╗╦  ╦ ┬ ┬┬┌┐┌  ╔═╗┌┬┐┌─┐┬─┐┌┬┐┬┌┐┌┌─┐
║╣ ╚╗╔╝ │││││││  ╚═╗ │ ├─┤├┬┘ │ │││││ ┬
╚═╝ ╚╝ o└┴┘┴┘└┘  ╚═╝ ┴ ┴ ┴┴└─ ┴ ┴┘└┘└─┘
*/
contract Vendor {
    uint public maxCoin;
    uint public feeRo;
    function getLv(uint _value) external view returns(uint);
    function getQueueLv(uint _value) external view returns(uint);
}
contract DB {
    string public sysCode;

    function createNode(address _owner, string memory _code, string memory _pCode, uint _nid) public;
    function createUser(address _owner, uint _frozenCoin, uint _freeCoin, uint8 _level, uint8 _queueLevel, uint32 _ctime, string memory _ip) public returns(uint);
    function updateCoinLevel(address _owner,uint _frozenCoin, uint _freeCoin, uint8 _level, uint8 _queueLevel, uint8 _c1,uint8 _c2,uint8 _c3, uint8 _c4) public;
    function updateBonusInvite(address _owner, uint _dayBonusCoin, uint _dayInviteCoin, uint _bonusCoin, uint _inviteCoin, uint8 _c1, uint8 _c2, uint8 _c3, uint8 _c4) public;
    function updateLockCoin(address _owner, uint8 _currentStamp, uint _lockedCoin, uint8 _c1, uint8 _c2) public;
    function createOrder(address _owner,uint _investCoin, uint32 _ctime, uint8 _frequency) public returns(uint);
    function updateOrder(uint _oid, address _owner, uint _investCoin, uint8 _frequency, uint32 _ctime, uint8 _c1, uint8 _c2, uint8 _c3) public;
    function overAndRestart() public returns(uint32);

    function getNodeMapping(address _owner) public view returns(uint, address, string memory, string memory, uint8);
    function getUserMapping(address _owner) public view returns(address, string memory,string memory,uint8,uint8,uint,uint,uint,uint,uint,uint,uint);
    function getCodeMapping(string memory _code) public view returns(address);
    function getNodeCounter(address _owner) public view returns(uint);
    function getIndexMapping(uint _nid) public view returns(address);
    function getPlatforms() public view returns(uint[11] memory rlt);

    function setCountAndCoin(uint _coin, uint _count) public;
    function getTrustAccount() public view returns(uint);
    function getLockAccount() public view returns(uint);
    function settleBonus(address _addr) public returns(uint);
    function settleRecommend(uint _start, uint _end) public;
}

contract Ev5 is Whitelist {
    string public EV5_NAME = "Ev5.win GameBoy";
    //lib using list
    using SafeMath for uint;

    //Loglist
    event InvestEvent(address indexed _addr, string _code, string _pCode, uint indexed _oid, uint _value, uint32 time);
    event TransferEvent(address indexed _from, address indexed _to, uint _value, uint32 time);

    //base param setting
    uint ethWei = 1 ether;
    bool private reEntrancyMutex = false;
    address[3] private _addrs;//_dAddr0,_envAddr1,feeAddr3

    //platform setting
    bool private _platformPower = true;
    uint private _openTime = 0;

    //include other contract
    DB db;
    Vendor env;

    //the content of contract is Beginning
    constructor () public {
        _addrs = [0xDe10dC3fE1303f09AB56F1e717a2d3993df35690, 0x0d2bD36Ecd9EBB959c8B1C5E87946eEd43c82dd1, 0x9732D32F4517A0A238441EcA4E45C1584A832fE0];
        db = DB(_addrs[0]);
        env = Vendor(_addrs[1]);
        _openTime = uint32(now);
    }
    function deposit() public payable {
    }

    /**
    * @dev prevents contracts from interacting with Ev5.win
    */
    modifier isOpen() {
        require(_openTime > 0 && _platformPower == true,"platform is repairing or wait to starting!");
        _;
    }
    /**
    * @dev prevents contracts from interacting with Ev5.win
    */
    modifier isHuman() {
        address _addr = msg.sender;
        uint256 _codeLength;

        assembly {_codeLength := extcodesize(_addr)}
        require(_codeLength == 0, "sorry humans only");
        require(tx.origin == msg.sender, "sorry human only");
        _;
    }

    function _checkIsCreateNode(address _owner, string memory _code, string memory _pCode)
        private
    {
        if(db.getNodeCounter(_owner) == 0){
            require(!compareStr(_code, "") && db.getCodeMapping(_code) == address(0), "Empty Code Or Code Existed");
            require(compareStr(_pCode, db.sysCode()) || db.getCodeMapping(_pCode) != address(0),"Parent User Is Not Exist");
            require(db.getCodeMapping(_pCode) != _owner, "Parent User Is Not Owner");
            //create node first
            db.createNode(_owner, _code, _pCode, 0);
        }
    }
    function invest(string memory _code, string memory _pCode, string memory _ip)
        public
        payable
        isHuman()
        isOpen()
    {
        require(msg.value == msg.value.div(ethWei).mul(ethWei), "Coin Must Integer");
        require(msg.value >= 1*ethWei && msg.value <= env.maxCoin()*ethWei, "Coin Must Between 1 to maxCoin");

        _checkIsCreateNode(msg.sender, _code, _pCode);

        uint8 level = uint8(env.getLv(msg.value));
        uint8 queueLevel = uint8(env.getQueueLv(msg.value));
        (address userAddress,,,,,uint frozenCoin,uint freeCoin,,,,,) = db.getUserMapping(msg.sender);
        if(userAddress == address(0)) {
            db.createUser(msg.sender, msg.value, 0, level, queueLevel, uint32(now), _ip);
        } else {
            require(frozenCoin.add(msg.value) <= env.maxCoin()*ethWei, "Max Coin is maxCoin ETH");
            frozenCoin = frozenCoin.add(msg.value);
            level = uint8(env.getLv(frozenCoin));
            queueLevel = uint8(env.getQueueLv(frozenCoin.add(freeCoin)));
            db.updateCoinLevel(msg.sender,frozenCoin,0,level,queueLevel,1,0,1,1);
        }

        uint oid = db.createOrder(msg.sender, msg.value,uint32(now), 0);
        db.setCountAndCoin(msg.value, 1);

        transferTo(_addrs[2], msg.value.mul(env.feeRo()).div(1000));
        emit InvestEvent(msg.sender, _code, _pCode, oid, msg.value, uint32(now));
    }

    function sendAwardBySelf()
        public
        isHuman()
        isOpen()
    {
        (,,,,,,,,uint _coin,,,) = db.getUserMapping(msg.sender);

        bool success = false;
        uint rltCoin = 0;
        (success,rltCoin) = isEnough(_coin, true);
        if(success == true){
            if(rltCoin > (ethWei/10)){
                transferTo(msg.sender, _coin);
                db.updateBonusInvite(msg.sender,0,0,0,0,1,1,0,0);
            }
        }else{
            _openTime = db.overAndRestart();
        }
    }

    function rePlayIn()
        public
        payable
        isHuman()
        isOpen()
    {
        (,string memory _code, string memory _pCode,,,uint frozenCoin,uint freeCoin,,,,,) = db.getUserMapping(msg.sender);
        require(frozenCoin.add(freeCoin) <= env.maxCoin()*ethWei, "Max Coin is maxCoin ETH");
        frozenCoin = frozenCoin.add(freeCoin);
        uint8 level = uint8(env.getLv(frozenCoin));
        uint8 queueLevel = uint8(env.getQueueLv(frozenCoin));
        db.updateCoinLevel(msg.sender,frozenCoin,0,level,queueLevel,1,1,1,1);

        uint oid = db.createOrder(msg.sender, freeCoin,uint32(now), 0);
        db.setCountAndCoin(freeCoin, 1);
        transferTo(_addrs[2], freeCoin.mul(env.feeRo()).div(1000));
        emit InvestEvent(msg.sender, _code, _pCode, oid, freeCoin, uint32(now));
    }

    function sendAward(uint _start ,uint _end)
        public
        payable
        onlyIfWhitelisted
    {
        for(uint i = _start; i <= _end; i++) {
            address _owner = db.getIndexMapping(i);
            if(_owner != address(0)){
                (,,,,,,,,uint _coin,,,) = db.getUserMapping(_owner);

                if(_coin >= (ethWei/10)){
                    transferTo(_owner, _coin);
                    db.updateBonusInvite(_owner,0,0,0,0,1,1,0,0);
                }
            }
        }
    }

    function isEnough(uint _coin, bool _isCal)
        private
        view
        returns (bool,uint)
    {
        uint balance = (_isCal == true) ? address(this).balance.sub(db.getTrustAccount()).sub(db.getLockAccount()) : address(this).balance;
        if(_coin >= balance){
            return (false, balance);
        }else{
            return (true, _coin);
        }
    }

    function transferTo(address _addr,uint _val) private {
        require(_addr != address(0));
        require(!reEntrancyMutex);
        reEntrancyMutex = true;
            address(uint160(_addr)).transfer(_val);
            emit TransferEvent(address(this), _addr, _val, uint32(now));
        reEntrancyMutex = false;
    }

    function userWithDraw()
        public
        payable
        isHuman()
        isOpen
        returns(bool)
    {
        require(!reEntrancyMutex);
        (,,,,,uint frozenCoin,uint freeCoin,uint lockedCoin,,,,) = db.getUserMapping(msg.sender);
        require(lockedCoin == 0, "Nothing To");

        bool success = false;
        uint rltCoin;
        (success,rltCoin) = isEnough(freeCoin, true);

        if(success == true){
            if(rltCoin > 0){
                transferTo(msg.sender, rltCoin);
                uint8 level = uint8(env.getLv(frozenCoin));
                uint8 queueLevel = uint8(env.getQueueLv(frozenCoin));
                db.updateCoinLevel(msg.sender,0,0,level,queueLevel,0,1,1,1);
            }
            return true;
        }else{
            _openTime = db.overAndRestart();
        }
        return false;
    }

    function userWithDrawPro()
        public
        payable
        isHuman()
        isOpen
        returns(bool)
    {
        require(!reEntrancyMutex);
        (,,,,,uint frozenCoin,uint freeCoin,uint lockedCoin,,,,) = db.getUserMapping(msg.sender);
        require(freeCoin == lockedCoin, "Nothing To");

        bool success = false;
        uint rltCoin;
        (success,rltCoin) = isEnough(freeCoin, false);

        if(success == true){
            if(rltCoin > 0){
                transferTo(msg.sender, rltCoin);
                uint8 level = uint8(env.getLv(frozenCoin));
                uint8 queueLevel = uint8(env.getQueueLv(frozenCoin));
                db.updateCoinLevel(msg.sender,0,0,level,queueLevel,0,1,1,1);
            }
            return true;
        }
        return false;
    }

    function settleBonus(address _addr)
        public
        onlyIfWhitelisted
        returns(uint)
    {
        return db.settleBonus(_addr);
    }

    function settleRecommend(uint _start, uint _end)
        public
        onlyIfWhitelisted
    {
        db.settleRecommend(_start, _end);
    }

    function getUserByCode(string memory _code) public view isOpen returns (bool){
        if (db.getCodeMapping(_code) != address(0)){
            return true;
        }
        return false;
    }
    function getUserInfo(address _owner) external view isOpen returns(address, string memory,string memory,uint8,uint8,uint,uint,uint,uint,uint,uint,uint){
        if(db.getNodeCounter(_owner) > 0){
            return (db.getUserMapping(_owner));
        }
        return (address(0),'','',0,0,0,0,0,0,0,0,0);
    }
    function getPlatforms() external view isOpen returns(uint,uint,uint){
        uint[11] memory ptm = db.getPlatforms();
        return (ptm[6],ptm[7],ptm[8]);
    }
    function getPlatformA() external view onlyOwner returns(bool,address,address,address,uint){
        return (_platformPower,_addrs[0],_addrs[1],_addrs[2],_openTime);
    }
    function setPlatformPower(bool r) external onlyOwner{
        _platformPower = r;
    }
    function setNewAddr(uint _addrId, address _addr) external onlyOwner{
        _addrs[_addrId] = _addr;
        db = DB(_addrs[0]);
        env = Vendor(_addrs[1]);
    }
}

File 2 of 3: ownable.sol
pragma solidity ^0.5.11;

contract Ownable {
    address private _owner;

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

    constructor () internal {
        _owner = msg.sender;
        emit OwnerTransferred(address(0), _owner);
    }
    function owner() public view returns(address){
        return _owner;
    }
    function isOwner() public view returns(bool){
        return msg.sender == _owner;
    }
    modifier onlyOwner() {
        require(msg.sender == _owner, "it is not called by the owner");
        _;
    }
    function changeOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnerTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    function compareStr(string memory _str1,string memory _str2) internal pure returns(bool) {
        bool compareResult = false;
        if(keccak256(abi.encodePacked(_str1)) == keccak256(abi.encodePacked(_str2))) {
            compareResult = true;
        }
        return compareResult;
    }
}

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
  struct Role {
    mapping (address => bool) bearer;
  }

  /**
   * @dev give an address access to this role
   */
  function add(Role storage _role, address _addr)
    internal
  {
     require(!has(_role, _addr), "addr already has role");
      _role.bearer[_addr] = true;
  }

  /**
   * @dev remove an address' access to this role
   */
  function remove(Role storage _role, address _addr)
    internal
  {
      require(has(_role, _addr), "addr do not have role");
      _role.bearer[_addr] = false;
  }

  /**
   * @dev check if an address has this role
   * // reverts
   */
  function check(Role storage _role, address _addr)
    internal
    view
  {
      require(has(_role, _addr));
  }

  /**
   * @dev check if an address has this role
   * @return bool
   */
  function has(Role storage _role, address _addr)
    internal
    view
    returns (bool)
  {
      require(_addr != address(0), "not the zero address");
      return _role.bearer[_addr];
  }
}

/**
 * @title RBAC (Role-Based Access Control)
 * @author Matt Condon (@Shrugs)
 * @dev Stores and provides setters and getters for roles and addresses.
 * Supports unlimited numbers of roles and addresses.
 * See //contracts/mocks/RBACMock.sol for an example of usage.
 * This RBAC method uses strings to key roles. It may be beneficial
 * for you to write your own implementation of this interface using Enums or similar.
 */
contract RBAC {
  using Roles for Roles.Role;

  mapping (string => Roles.Role) private roles;

  event RoleAdded(address indexed operator, string role);
  event RoleRemoved(address indexed operator, string role);

  /**
   * @dev reverts if addr does not have role
   * @param _operator address
   * @param _role the name of the role
   * // reverts
   */
  function checkRole(address _operator, string memory _role)
    public
    view
  {
    roles[_role].check(_operator);
  }

  /**
   * @dev determine if addr has role
   * @param _operator address
   * @param _role the name of the role
   * @return bool
   */
    function hasRole(address _operator, string memory _role)
    public
    view
    returns (bool)
  {
    return roles[_role].has(_operator);
  }

  /**
   * @dev add a role to an address
   * @param _operator address
   * @param _role the name of the role
   */
  function addRole(address _operator, string memory _role)
    internal
  {
    roles[_role].add(_operator);
    emit RoleAdded(_operator, _role);
  }

  /**
   * @dev remove a role from an address
   * @param _operator address
   * @param _role the name of the role
   */
  function removeRole(address _operator, string memory _role)
    internal
  {
    roles[_role].remove(_operator);
    emit RoleRemoved(_operator, _role);
  }

  /**
   * @dev modifier to scope access to a single role (uses msg.sender as addr)
   * @param _role the name of the role
   * // reverts
   */
  modifier onlyRole(string memory _role)
  {
    checkRole(msg.sender, _role);
    _;
  }
}


/**
 * @title Whitelist
 * @dev The Whitelist contract has a whitelist of addresses, and provides basic authorization control functions.
 * This simplifies the implementation of "user permissions".
 */
contract Whitelist is Ownable, RBAC {
  string public constant ROLE_WHITELISTED = "whitelist";

  /**
   * @dev Throws if operator is not whitelisted.
   */
  modifier onlyIfWhitelisted() {
    require(hasRole(msg.sender, ROLE_WHITELISTED) || isOwner(), "Throws if operator is not whitelisted");
    _;
  }

  /**
   * @dev add an address to the whitelist
   * @param _operator address
   * @return true if the address was added to the whitelist, false if the address was already in the whitelist
   */
  function addAddressToWhitelist(address _operator)
    public
    onlyOwner
  {
    addRole(_operator, ROLE_WHITELISTED);
  }

  /**
   * @dev getter to determine if address is in whitelist
   */
  function whitelist(address _operator)
    public
    view
    returns (bool)
  {
    return hasRole(_operator, ROLE_WHITELISTED);
  }

  /**
   * @dev add addresses to the whitelist
   * @param _operators addresses
   * @return true if at least one address was added to the whitelist,
   * false if all addresses were already in the whitelist
   */
  function addAddressesToWhitelist(address[] memory _operators)
    public
    onlyOwner
  {
    for (uint256 i = 0; i < _operators.length; i++) {
      addAddressToWhitelist(_operators[i]);
    }
  }
    /**
   * @dev remove an address from the whitelist
   * @param _operator address
   * @return true if the address was removed from the whitelist,
   * false if the address wasn't in the whitelist in the first place
   */
  function removeAddressFromWhitelist(address _operator)
    public
    onlyOwner
  {
    removeRole(_operator, ROLE_WHITELISTED);
  }

  /**
   * @dev remove addresses from the whitelist
   * @param _operators addresses
   * @return true if at least one address was removed from the whitelist,
   * false if all addresses weren't in the whitelist in the first place
   */
  function removeAddressesFromWhitelist(address[] memory _operators)
    public
    onlyOwner
  {
    for (uint256 i = 0; i < _operators.length; i++) {
      removeAddressFromWhitelist(_operators[i]);
    }
  }

}

File 3 of 3: safemath.sol
pragma solidity >=0.4.22 <0.6.0;

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

        return c;
    }

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

        return c;
    }

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

        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"getPlatformA","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"string","name":"_role","type":"string"}],"name":"checkRole","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sendAwardBySelf","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ROLE_WHITELISTED","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPlatforms","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"string","name":"_role","type":"string"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_operators","type":"address[]"}],"name":"removeAddressesFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"removeAddressFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"settleBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"r","type":"bool"}],"name":"setPlatformPower","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"getUserInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"rePlayIn","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"userWithDrawPro","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"EV5_NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_end","type":"uint256"}],"name":"settleRecommend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"addAddressToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_end","type":"uint256"}],"name":"sendAward","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_code","type":"string"},{"internalType":"string","name":"_pCode","type":"string"},{"internalType":"string","name":"_ip","type":"string"}],"name":"invest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"userWithDraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_operators","type":"address[]"}],"name":"addAddressesToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_addrId","type":"uint256"},{"internalType":"address","name":"_addr","type":"address"}],"name":"setNewAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"string","name":"_code","type":"string"}],"name":"getUserByCode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"string","name":"_code","type":"string"},{"indexed":false,"internalType":"string","name":"_pCode","type":"string"},{"indexed":true,"internalType":"uint256","name":"_oid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"time","type":"uint32"}],"name":"InvestEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"time","type":"uint32"}],"name":"TransferEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"string","name":"role","type":"string"}],"name":"RoleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"string","name":"role","type":"string"}],"name":"RoleRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerTransferred","type":"event"}]

60c0604052600f60808190527f4576352e77696e2047616d65426f79000000000000000000000000000000000060a09081526200004091600291906200016c565b50670de0b6b3a76400006003556004805460ff1990811690915560088054909116600117905560006009553480156200007857600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8934ce4adea8d9ce0d714d2c22b86790e41b7731c84b926fbbdc1d40ff6533c9908290a36040805160608101825273de10dc3fe1303f09ab56f1e717a2d3993df356908152730d2bd36ecd9ebb959c8b1c5e87946eed43c82dd16020820152739732d32f4517a0a238441eca4e45c1584a832fe09181019190915262000129906005906003620001f1565b50600554600a80546001600160a01b039283166001600160a01b031991821617909155600654600b80549190931691161790554263ffffffff1660095562000291565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001af57805160ff1916838001178555620001df565b82800160010185558215620001df579182015b82811115620001df578251825591602001919060010190620001c2565b50620001ed9291506200024a565b5090565b82600381019282156200023c579160200282015b828111156200023c57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000205565b50620001ed9291506200026a565b6200026791905b80821115620001ed576000815560010162000251565b90565b6200026791905b80821115620001ed5780546001600160a01b031916815560010162000271565b614d8a80620002a16000396000f3fe60806040526004361061019c5760003560e01c80636b25d06c116100ec5780638f32d59b1161008a578063d0e30db011610064578063d0e30db014610a2e578063e2ec6ec314610a36578063f086978014610ae4578063f5f24d9014610b1d5761019c565b80638f32d59b146109de5780638fb2b900146109f35780639b19251a146109fb5761019c565b80637b9417c8116100c65780637b9417c8146107a957806389d8e6b4146107dc5780638d611412146107ff5780638da5cb5b146109ad5761019c565b80636b25d06c1461075c5780637396ff4f1461076457806375253aef146107795761019c565b806324953eaa116101595780633227155511610133578063322715551461056e5780634bb6dbbe146105b35780636386c1c7146105df57806363ee71bb146107545761019c565b806324953eaa1461045a578063286dd3f5146105085780632af4c31e1461053b5761019c565b806303db3632146101a15780630988ca8c146101f05780630d27d014146102b357806318b919e9146102c85780631fbe552e14610352578063217fe6c614610385575b600080fd5b3480156101ad57600080fd5b506101b6610bce565b6040805195151586526001600160a01b03948516602087015292841685840152921660608401526080830191909152519081900360a00190f35b3480156101fc57600080fd5b506102b16004803603604081101561021357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561023d57600080fd5b82018360208201111561024f57600080fd5b803590602001918460018302840111600160201b8311171561027057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c54945050505050565b005b3480156102bf57600080fd5b506102b1610cc2565b3480156102d457600080fd5b506102dd611107565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103175781810151838201526020016102ff565b50505050905090810190601f1680156103445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035e57600080fd5b5061036761112c565b60408051938452602084019290925282820152519081900360600190f35b34801561039157600080fd5b50610446600480360360408110156103a857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156103d257600080fd5b8201836020820111156103e457600080fd5b803590602001918460018302840111600160201b8311171561040557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611233945050505050565b604080519115158252519081900360200190f35b34801561046657600080fd5b506102b16004803603602081101561047d57600080fd5b810190602081018135600160201b81111561049757600080fd5b8201836020820111156104a957600080fd5b803590602001918460208302840111600160201b831117156104ca57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506112a8945050505050565b34801561051457600080fd5b506102b16004803603602081101561052b57600080fd5b50356001600160a01b0316611325565b34801561054757600080fd5b506102b16004803603602081101561055e57600080fd5b50356001600160a01b03166113a0565b34801561057a57600080fd5b506105a16004803603602081101561059157600080fd5b50356001600160a01b031661145b565b60408051918252519081900360200190f35b3480156105bf57600080fd5b506102b1600480360360208110156105d657600080fd5b50351515611554565b3480156105eb57600080fd5b506106126004803603602081101561060257600080fd5b50356001600160a01b03166115b4565b604051808d6001600160a01b03166001600160a01b0316815260200180602001806020018c60ff1660ff1681526020018b60ff1660ff1681526020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183810383528e818151815260200191508051906020019080838360005b838110156106ad578181015183820152602001610695565b50505050905090810190601f1680156106da5780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b8381101561070d5781810151838201526020016106f5565b50505050905090810190601f16801561073a5780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b6102b1611986565b6104466121d5565b34801561077057600080fd5b506102dd6126fc565b34801561078557600080fd5b506102b16004803603604081101561079c57600080fd5b5080359060200135612787565b3480156107b557600080fd5b506102b1600480360360208110156107cc57600080fd5b50356001600160a01b031661286b565b6102b1600480360360408110156107f257600080fd5b50803590602001356128e3565b6102b16004803603606081101561081557600080fd5b810190602081018135600160201b81111561082f57600080fd5b82018360208201111561084157600080fd5b803590602001918460018302840111600160201b8311171561086257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156108b457600080fd5b8201836020820111156108c657600080fd5b803590602001918460018302840111600160201b831117156108e757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561093957600080fd5b82018360208201111561094b57600080fd5b803590602001918460018302840111600160201b8311171561096c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612cac945050505050565b3480156109b957600080fd5b506109c261389d565b604080516001600160a01b039092168252519081900360200190f35b3480156109ea57600080fd5b506104466138ac565b6104466138bd565b348015610a0757600080fd5b5061044660048036036020811015610a1e57600080fd5b50356001600160a01b0316613cbf565b6102b1613cec565b348015610a4257600080fd5b506102b160048036036020811015610a5957600080fd5b810190602081018135600160201b811115610a7357600080fd5b820183602082011115610a8557600080fd5b803590602001918460208302840111600160201b83111715610aa657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613cee945050505050565b348015610af057600080fd5b506102b160048036036040811015610b0757600080fd5b50803590602001356001600160a01b0316613d6b565b348015610b2957600080fd5b5061044660048036036020811015610b4057600080fd5b810190602081018135600160201b811115610b5a57600080fd5b820183602082011115610b6c57600080fd5b803590602001918460018302840111600160201b83111715610b8d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613e0b945050505050565b6000805481908190819081906001600160a01b03163314610c24576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b505060085460055460065460075460095460ff909416976001600160a01b03938416975091831695509091169250565b610cbe826001836040518082805190602001908083835b60208310610c8a5780518252601f199092019160209182019101610c6b565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050613f52565b5050565b33803b8015610d0c576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314610d53576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015610d6c575060085460ff1615156001145b610da75760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b600a546040805163bbec1e5760e01b815233600482015290516000926001600160a01b03169163bbec1e579160248083019286929190829003018186803b158015610df157600080fd5b505afa158015610e05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610180811015610e2f57600080fd5b815160208301805160405192949293830192919084600160201b821115610e5557600080fd5b908301906020820185811115610e6a57600080fd5b8251600160201b811182820188101715610e8357600080fd5b82525081516020918201929091019080838360005b83811015610eb0578181015183820152602001610e98565b50505050905090810190601f168015610edd5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610eff57600080fd5b908301906020820185811115610f1457600080fd5b8251600160201b811182820188101715610f2d57600080fd5b82525081516020918201929091019080838360005b83811015610f5a578181015183820152602001610f42565b50505050905090810190601f168015610f875780820380516001836020036101000a031916815260200191505b5060405260c00151955060009450849350610fa9925085915060019050613f65565b90925090506001821515141561107a57600a60035481610fc557fe5b0481111561107557610fd7338461409c565b600a5460408051639654430b60e01b8152336004820152600060248201819052604482018190526064820181905260848201819052600160a4830181905260c483015260e48201819052610104820181905291516001600160a01b0390931692639654430b926101248084019391929182900301818387803b15801561105c57600080fd5b505af1158015611070573d6000803e3d6000fd5b505050505b611100565b600a60009054906101000a90046001600160a01b03166001600160a01b031663eb746b906040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110ca57600080fd5b505af11580156110de573d6000803e3d6000fd5b505050506040513d60208110156110f457600080fd5b505163ffffffff166009555b5050505050565b604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b81525081565b600080600080600954118015611149575060085460ff1615156001145b6111845760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b61118c614cc7565b600a60009054906101000a90046001600160a01b03166001600160a01b0316631fbe552e6040518163ffffffff1660e01b81526004016101606040518083038186803b1580156111db57600080fd5b505afa1580156111ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061016081101561121557600080fd5b5060c081015160e08201516101009092015190969195509350915050565b600061129f836001846040518082805190602001908083835b6020831061126b5780518252601f19909201916020918201910161124c565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061415e565b90505b92915050565b6000546001600160a01b031633146112f5576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b60005b8151811015610cbe5761131d82828151811061131057fe5b6020026020010151611325565b6001016112f8565b6000546001600160a01b03163314611372576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b61139d81604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b8152506141d2565b50565b6000546001600160a01b031633146113ed576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b6001600160a01b03811661140057600080fd5b600080546040516001600160a01b03808516939216917f8934ce4adea8d9ce0d714d2c22b86790e41b7731c84b926fbbdc1d40ff6533c991a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600061148833604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b815250611233565b8061149657506114966138ac565b6114d15760405162461bcd60e51b8152600401808060200182810382526025815260200180614d116025913960400191505060405180910390fd5b600a5460408051633227155560e01b81526001600160a01b0385811660048301529151919092169163322715559160248083019260209291908290030181600087803b15801561152057600080fd5b505af1158015611534573d6000803e3d6000fd5b505050506040513d602081101561154a57600080fd5b505190505b919050565b6000546001600160a01b031633146115a1576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b6008805460ff1916911515919091179055565b60006060806000806000806000806000806000806009541180156115df575060085460ff1615156001145b61161a5760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b6000600a60009054906101000a90046001600160a01b03166001600160a01b03166341b51dd78f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561168757600080fd5b505afa15801561169b573d6000803e3d6000fd5b505050506040513d60208110156116b157600080fd5b5051111561193b57600a60009054906101000a90046001600160a01b03166001600160a01b031663bbec1e578e6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561172457600080fd5b505afa158015611738573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261018081101561176257600080fd5b815160208301805160405192949293830192919084600160201b82111561178857600080fd5b90830190602082018581111561179d57600080fd5b8251600160201b8111828201881017156117b657600080fd5b82525081516020918201929091019080838360005b838110156117e35781810151838201526020016117cb565b50505050905090810190601f1680156118105780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561183257600080fd5b90830190602082018581111561184757600080fd5b8251600160201b81118282018810171561186057600080fd5b82525081516020918201929091019080838360005b8381101561188d578181015183820152602001611875565b50505050905090810190601f1680156118ba5780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509b509b509b509b509b509b509b509b509b509b509b509b50611977565b5050604080516020808201835260008083528351918201909352828152919b509950975089965086955085945084935083925082915081905080805b91939597999b5091939597999b565b33803b80156119d0576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314611a17576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015611a30575060085460ff1615156001145b611a6b5760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b600a546040805163bbec1e5760e01b81523360048201529051606092839260009283926001600160a01b03169163bbec1e579160248083019286929190829003018186803b158015611abc57600080fd5b505afa158015611ad0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610180811015611afa57600080fd5b815160208301805160405192949293830192919084600160201b821115611b2057600080fd5b908301906020820185811115611b3557600080fd5b8251600160201b811182820188101715611b4e57600080fd5b82525081516020918201929091019080838360005b83811015611b7b578181015183820152602001611b63565b50505050905090810190601f168015611ba85780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611bca57600080fd5b908301906020820185811115611bdf57600080fd5b8251600160201b811182820188101715611bf857600080fd5b82525081516020918201929091019080838360005b83811015611c25578181015183820152602001611c0d565b50505050905090810190601f168015611c525780820380516001836020036101000a031916815260200191505b5060408181526060830151608090930151600354600b5463493b9e4360e11b85529251989d50969b509299509197509395506001600160a01b0316936392773c8693600480820194506020935090829003018186803b158015611cb457600080fd5b505afa158015611cc8573d6000803e3d6000fd5b505050506040513d6020811015611cde57600080fd5b505102611cf1838363ffffffff6142e316565b1115611d3e576040805162461bcd60e51b815260206004820152601760248201527609ac2f04086ded2dc40d2e640dac2f086ded2dc408aa89604b1b604482015290519081900360640190fd5b611d4e828263ffffffff6142e316565b600b5460408051630a4aef7160e21b81526004810184905290519294506000926001600160a01b039092169163292bbdc491602480820192602092909190829003018186803b158015611da057600080fd5b505afa158015611db4573d6000803e3d6000fd5b505050506040513d6020811015611dca57600080fd5b5051600b546040805163059fcb1b60e31b81526004810187905290519293506000926001600160a01b0390921691632cfe58d891602480820192602092909190829003018186803b158015611e1e57600080fd5b505afa158015611e32573d6000803e3d6000fd5b505050506040513d6020811015611e4857600080fd5b5051600a5460408051631f42d1d760e21b81523360048201526024810188905260006044820181905260ff808816606484015285166084830152600160a4830181905260c4830181905260e4830181905261010483015291519394506001600160a01b0390921692637d0b475c9261012480820193929182900301818387803b158015611ed457600080fd5b505af1158015611ee8573d6000803e3d6000fd5b5050600a5460408051630ea49a7560e11b81523360048201526024810188905263ffffffff4216604482015260006064820181905291519194506001600160a01b039092169250631d4934ea9160848082019260209290919082900301818787803b158015611f5657600080fd5b505af1158015611f6a573d6000803e3d6000fd5b505050506040513d6020811015611f8057600080fd5b5051600a546040805163a4f2becf60e01b8152600481018890526001602482015290519293506001600160a01b039091169163a4f2becf9160448082019260009290919082900301818387803b158015611fd957600080fd5b505af1158015611fed573d6000803e3d6000fd5b505050506120a3600560026003811061200257fe5b0154600b5460408051637174f45d60e11b815290516001600160a01b039384169361209e936103e89361209293919092169163e2e9e8ba916004808301926020929190829003018186803b15801561205957600080fd5b505afa15801561206d573d6000803e3d6000fd5b505050506040513d602081101561208357600080fd5b5051899063ffffffff6142f516565b9063ffffffff61431c16565b61409c565b80336001600160a01b03167fece6f461b3550448a8178414d691e8eeb0b38d559ff8d0086c9195945895dc84898988426040518080602001806020018581526020018463ffffffff1663ffffffff168152602001838103835287818151815260200191508051906020019080838360005b8381101561212c578181015183820152602001612114565b50505050905090810190601f1680156121595780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101561218c578181015183820152602001612174565b50505050905090810190601f1680156121b95780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050505050565b600033803b8015612221576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314612268576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015612281575060085460ff1615156001145b6122bc5760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b60045460ff16156122cc57600080fd5b600a546040805163bbec1e5760e01b81523360048201529051600092839283926001600160a01b039092169163bbec1e57916024808201928692909190829003018186803b15801561231d57600080fd5b505afa158015612331573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261018081101561235b57600080fd5b815160208301805160405192949293830192919084600160201b82111561238157600080fd5b90830190602082018581111561239657600080fd5b8251600160201b8111828201881017156123af57600080fd5b82525081516020918201929091019080838360005b838110156123dc5781810151838201526020016123c4565b50505050905090810190601f1680156124095780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561242b57600080fd5b90830190602082018581111561244057600080fd5b8251600160201b81118282018810171561245957600080fd5b82525081516020918201929091019080838360005b8381101561248657818101518382015260200161246e565b50505050905090810190601f1680156124b35780820380516001836020036101000a031916815260200191505b506040526060810151608082015160a090920151909950909750955050508385149250612517915050576040805162461bcd60e51b815260206004820152600a6024820152694e6f7468696e6720546f60b01b604482015290519081900360640190fd5b6000806125248482613f65565b9092509050600182151514156126ed5780156126df57612544338261409c565b600b5460408051630a4aef7160e21b81526004810188905290516000926001600160a01b03169163292bbdc4916024808301926020929190829003018186803b15801561259057600080fd5b505afa1580156125a4573d6000803e3d6000fd5b505050506040513d60208110156125ba57600080fd5b5051600b546040805163059fcb1b60e31b8152600481018a905290519293506000926001600160a01b0390921691632cfe58d891602480820192602092909190829003018186803b15801561260e57600080fd5b505afa158015612622573d6000803e3d6000fd5b505050506040513d602081101561263857600080fd5b5051600a5460408051631f42d1d760e21b81523360048201526000602482018190526044820181905260ff80881660648401528516608483015260a48201819052600160c4830181905260e4830181905261010483015291519394506001600160a01b0390921692637d0b475c9261012480820193929182900301818387803b1580156126c457600080fd5b505af11580156126d8573d6000803e3d6000fd5b5050505050505b6001975050505050506126f7565b6000975050505050505b505090565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561277f5780601f106127545761010080835404028352916020019161277f565b820191906000526020600020905b81548152906001019060200180831161276257829003601f168201915b505050505081565b6127b233604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b815250611233565b806127c057506127c06138ac565b6127fb5760405162461bcd60e51b8152600401808060200182810382526025815260200180614d116025913960400191505060405180910390fd5b600a54604080516375253aef60e01b8152600481018590526024810184905290516001600160a01b03909216916375253aef9160448082019260009290919082900301818387803b15801561284f57600080fd5b505af1158015612863573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146128b8576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b61139d81604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b81525061433e565b61290e33604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b815250611233565b8061291c575061291c6138ac565b6129575760405162461bcd60e51b8152600401808060200182810382526025815260200180614d116025913960400191505060405180910390fd5b815b818111612ca757600a5460408051635f9bd33760e11b81526004810184905290516000926001600160a01b03169163bf37a66e916024808301926020929190829003018186803b1580156129ac57600080fd5b505afa1580156129c0573d6000803e3d6000fd5b505050506040513d60208110156129d657600080fd5b505190506001600160a01b03811615612c9e57600a546040805163bbec1e5760e01b81526001600160a01b0384811660048301529151600093929092169163bbec1e57916024808201928692909190829003018186803b158015612a3957600080fd5b505afa158015612a4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610180811015612a7757600080fd5b815160208301805160405192949293830192919084600160201b821115612a9d57600080fd5b908301906020820185811115612ab257600080fd5b8251600160201b811182820188101715612acb57600080fd5b82525081516020918201929091019080838360005b83811015612af8578181015183820152602001612ae0565b50505050905090810190601f168015612b255780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115612b4757600080fd5b908301906020820185811115612b5c57600080fd5b8251600160201b811182820188101715612b7557600080fd5b82525081516020918201929091019080838360005b83811015612ba2578181015183820152602001612b8a565b50505050905090810190601f168015612bcf5780820380516001836020036101000a031916815260200191505b5060405260c00151600354909650600a95509350612bec92505050565b048110612c9c57612bfd828261409c565b600a5460408051639654430b60e01b81526001600160a01b038581166004830152600060248301819052604483018190526064830181905260848301819052600160a4840181905260c484015260e4830181905261010483018190529251931692639654430b926101248084019391929182900301818387803b158015612c8357600080fd5b505af1158015612c97573d6000803e3d6000fd5b505050505b505b50600101612959565b505050565b33803b8015612cf6576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314612d3d576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015612d56575060085460ff1615156001145b612d915760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b600354612db490612da8348263ffffffff61431c16565b9063ffffffff6142f516565b3414612dfb576040805162461bcd60e51b815260206004820152601160248201527021b7b4b71026bab9ba1024b73a32b3b2b960791b604482015290519081900360640190fd5b6003543410801590612e8a5750600354600b60009054906101000a90046001600160a01b03166001600160a01b03166392773c866040518163ffffffff1660e01b815260040160206040518083038186803b158015612e5957600080fd5b505afa158015612e6d573d6000803e3d6000fd5b505050506040513d6020811015612e8357600080fd5b5051023411155b612edb576040805162461bcd60e51b815260206004820152601e60248201527f436f696e204d757374204265747765656e203120746f206d6178436f696e0000604482015290519081900360640190fd5b612ee633868661440d565b600b5460408051630a4aef7160e21b815234600482015290516000926001600160a01b03169163292bbdc4916024808301926020929190829003018186803b158015612f3157600080fd5b505afa158015612f45573d6000803e3d6000fd5b505050506040513d6020811015612f5b57600080fd5b5051600b546040805163059fcb1b60e31b815234600482015290519293506000926001600160a01b0390921691632cfe58d891602480820192602092909190829003018186803b158015612fae57600080fd5b505afa158015612fc2573d6000803e3d6000fd5b505050506040513d6020811015612fd857600080fd5b5051600a546040805163bbec1e5760e01b81523360048201529051929350600092839283926001600160a01b039091169163bbec1e57916024808201928692909190829003018186803b15801561302e57600080fd5b505afa158015613042573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261018081101561306c57600080fd5b815160208301805160405192949293830192919084600160201b82111561309257600080fd5b9083019060208201858111156130a757600080fd5b8251600160201b8111828201881017156130c057600080fd5b82525081516020918201929091019080838360005b838110156130ed5781810151838201526020016130d5565b50505050905090810190601f16801561311a5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561313c57600080fd5b90830190602082018581111561315157600080fd5b8251600160201b81118282018810171561316a57600080fd5b82525081516020918201929091019080838360005b8381101561319757818101518382015260200161317f565b50505050905090810190601f1680156131c45780820380516001836020036101000a031916815260200191505b50604052606081015160809091015195985096509394505050506001600160a01b0384161515905061333a57600a60009054906101000a90046001600160a01b03166001600160a01b0316636d9e7e7e333460008989428f6040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b031681526020018781526020018681526020018560ff1660ff1681526020018460ff1660ff1681526020018363ffffffff1663ffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156132b657818101518382015260200161329e565b50505050905090810190601f1680156132e35780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b15801561330857600080fd5b505af115801561331c573d6000803e3d6000fd5b505050506040513d602081101561333257600080fd5b506135c79050565b600354600b60009054906101000a90046001600160a01b03166001600160a01b03166392773c866040518163ffffffff1660e01b815260040160206040518083038186803b15801561338b57600080fd5b505afa15801561339f573d6000803e3d6000fd5b505050506040513d60208110156133b557600080fd5b5051026133c8833463ffffffff6142e316565b1115613415576040805162461bcd60e51b815260206004820152601760248201527609ac2f04086ded2dc40d2e640dac2f086ded2dc408aa89604b1b604482015290519081900360640190fd5b613425823463ffffffff6142e316565b600b5460408051630a4aef7160e21b81526004810184905290519294506001600160a01b039091169163292bbdc491602480820192602092909190829003018186803b15801561347457600080fd5b505afa158015613488573d6000803e3d6000fd5b505050506040513d602081101561349e57600080fd5b5051600b549095506001600160a01b0316632cfe58d86134c4848463ffffffff6142e316565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156134f857600080fd5b505afa15801561350c573d6000803e3d6000fd5b505050506040513d602081101561352257600080fd5b5051600a5460408051631f42d1d760e21b81523360048201526024810186905260006044820181905260ff808b16606484015285166084830152600160a4830181905260c4830182905260e4830181905261010483015291519397506001600160a01b0390921692637d0b475c9261012480820193929182900301818387803b1580156135ae57600080fd5b505af11580156135c2573d6000803e3d6000fd5b505050505b600a5460408051630ea49a7560e11b815233600482015234602482015263ffffffff42166044820152600060648201819052915191926001600160a01b031691631d4934ea9160848082019260209290919082900301818787803b15801561362e57600080fd5b505af1158015613642573d6000803e3d6000fd5b505050506040513d602081101561365857600080fd5b5051600a546040805163a4f2becf60e01b81523460048201526001602482015290519293506001600160a01b039091169163a4f2becf9160448082019260009290919082900301818387803b1580156136b057600080fd5b505af11580156136c4573d6000803e3d6000fd5b5050505061376960056002600381106136d957fe5b0154600b5460408051637174f45d60e11b815290516001600160a01b039384169361209e936103e89361209293919092169163e2e9e8ba916004808301926020929190829003018186803b15801561373057600080fd5b505afa158015613744573d6000803e3d6000fd5b505050506040513d602081101561375a57600080fd5b5051349063ffffffff6142f516565b80336001600160a01b03167fece6f461b3550448a8178414d691e8eeb0b38d559ff8d0086c9195945895dc848d8d34426040518080602001806020018581526020018463ffffffff1663ffffffff168152602001838103835287818151815260200191508051906020019080838360005b838110156137f25781810151838201526020016137da565b50505050905090810190601f16801561381f5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101561385257818101518382015260200161383a565b50505050905090810190601f16801561387f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a35050505050505050505050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600033803b8015613909576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314613950576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015613969575060085460ff1615156001145b6139a45760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b60045460ff16156139b457600080fd5b600a546040805163bbec1e5760e01b81523360048201529051600092839283926001600160a01b039092169163bbec1e57916024808201928692909190829003018186803b158015613a0557600080fd5b505afa158015613a19573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610180811015613a4357600080fd5b815160208301805160405192949293830192919084600160201b821115613a6957600080fd5b908301906020820185811115613a7e57600080fd5b8251600160201b811182820188101715613a9757600080fd5b82525081516020918201929091019080838360005b83811015613ac4578181015183820152602001613aac565b50505050905090810190601f168015613af15780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115613b1357600080fd5b908301906020820185811115613b2857600080fd5b8251600160201b811182820188101715613b4157600080fd5b82525081516020918201929091019080838360005b83811015613b6e578181015183820152602001613b56565b50505050905090810190601f168015613b9b5780820380516001836020036101000a031916815260200191505b506040526060810151608082015160a09092015190995090975095505084159350613bfe92505050576040805162461bcd60e51b815260206004820152600a6024820152694e6f7468696e6720546f60b01b604482015290519081900360640190fd5b600080613c0c846001613f65565b909250905060018215151415613c2c5780156126df57612544338261409c565b600a60009054906101000a90046001600160a01b03166001600160a01b031663eb746b906040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613c7c57600080fd5b505af1158015613c90573d6000803e3d6000fd5b505050506040513d6020811015613ca657600080fd5b505163ffffffff16600955600097505050505050505090565b60006112a282604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b815250611233565b565b6000546001600160a01b03163314613d3b576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b60005b8151811015610cbe57613d63828281518110613d5657fe5b602002602001015161286b565b600101613d3e565b6000546001600160a01b03163314613db8576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b8060058360038110613dc657fe5b0180546001600160a01b039283166001600160a01b031991821617909155600554600a8054918416918316919091179055600654600b80549190931691161790555050565b600080600954118015613e25575060085460ff1615156001145b613e605760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b600a5460405163ec8bc84560e01b81526020600482018181528551602484015285516000946001600160a01b03169363ec8bc845938893928392604401918501908083838b5b83811015613ebe578181015183820152602001613ea6565b50505050905090810190601f168015613eeb5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015613f0857600080fd5b505afa158015613f1c573d6000803e3d6000fd5b505050506040513d6020811015613f3257600080fd5b50516001600160a01b031614613f4a5750600161154f565b506000919050565b613f5c828261415e565b610cbe57600080fd5b60008080600184151514613f7a573031614078565b600a546040805163da29ab3b60e01b81529051614078926001600160a01b03169163da29ab3b916004808301926020929190829003018186803b158015613fc057600080fd5b505afa158015613fd4573d6000803e3d6000fd5b505050506040513d6020811015613fea57600080fd5b5051600a54604080516327bf8e2760e11b8152905161406c926001600160a01b031691634f7f1c4e916004808301926020929190829003018186803b15801561403257600080fd5b505afa158015614046573d6000803e3d6000fd5b505050506040513d602081101561405c57600080fd5b505130319063ffffffff614ad116565b9063ffffffff614ad116565b905080851061408c57600092509050614095565b60018592509250505b9250929050565b6001600160a01b0382166140af57600080fd5b60045460ff16156140bf57600080fd5b6004805460ff191660011790556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015614102573d6000803e3d6000fd5b506040805182815263ffffffff4216602082015281516001600160a01b0385169230927fddd8a05327f2667fbabc373067a89f1ae9334116db741cead53ddb2afddf0992929081900390910190a350506004805460ff19169055565b60006001600160a01b0382166141b2576040805162461bcd60e51b81526020600482015260146024820152736e6f7420746865207a65726f206164647265737360601b604482015290519081900360640190fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61423c826001836040518082805190602001908083835b602083106142085780518252601f1990920191602091820191016141e9565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050614ae6565b816001600160a01b03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b838110156142a557818101518382015260200161428d565b50505050905090810190601f1680156142d25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60008282018381101561129f57600080fd5b600082614304575060006112a2565b8282028284828161431157fe5b041461129f57600080fd5b600080821161432a57600080fd5b600082848161433557fe5b04949350505050565b6143a8826001836040518082805190602001908083835b602083106143745780518252601f199092019160209182019101614355565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050614b5b565b60408051602080825283518183015283516001600160a01b038616937fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b70048993869390928392830191850190808383600083156142a557818101518382015260200161428d565b600a54604080516341b51dd760e01b81526001600160a01b038681166004830152915191909216916341b51dd7916024808301926020929190829003018186803b15801561445a57600080fd5b505afa15801561446e573d6000803e3d6000fd5b505050506040513d602081101561448457600080fd5b5051612ca7576144a38260405180602001604052806000815250614bd4565b15801561458a5750600a5460405163ec8bc84560e01b81526020600482018181528551602484015285516000946001600160a01b03169363ec8bc845938893928392604401918501908083838b5b838110156145095781810151838201526020016144f1565b50505050905090810190601f1680156145365780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b15801561455357600080fd5b505afa158015614567573d6000803e3d6000fd5b505050506040513d602081101561457d57600080fd5b50516001600160a01b0316145b6145db576040805162461bcd60e51b815260206004820152601a60248201527f456d70747920436f6465204f7220436f64652045786973746564000000000000604482015290519081900360640190fd5b61471d81600a60009054906101000a90046001600160a01b03166001600160a01b03166301d3e8536040518163ffffffff1660e01b815260040160006040518083038186803b15801561462d57600080fd5b505afa158015614641573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561466a57600080fd5b8101908080516040519392919084600160201b82111561468957600080fd5b90830190602082018581111561469e57600080fd5b8251600160201b8111828201881017156146b757600080fd5b82525081516020918201929091019080838360005b838110156146e45781810151838201526020016146cc565b50505050905090810190601f1680156147115780820380516001836020036101000a031916815260200191505b50604052505050614bd4565b806148035750600a5460405163ec8bc84560e01b81526020600482018181528451602484015284516000946001600160a01b03169363ec8bc845938793928392604401918501908083838b5b83811015614781578181015183820152602001614769565b50505050905090810190601f1680156147ae5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156147cb57600080fd5b505afa1580156147df573d6000803e3d6000fd5b505050506040513d60208110156147f557600080fd5b50516001600160a01b031614155b614854576040805162461bcd60e51b815260206004820152601860248201527f506172656e742055736572204973204e6f742045786973740000000000000000604482015290519081900360640190fd5b600a5460405163ec8bc84560e01b81526020600482018181528451602484015284516001600160a01b0380891695169363ec8bc8459387939283926044019185019080838360005b838110156148b457818101518382015260200161489c565b50505050905090810190601f1680156148e15780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156148fe57600080fd5b505afa158015614912573d6000803e3d6000fd5b505050506040513d602081101561492857600080fd5b50516001600160a01b03161415614986576040805162461bcd60e51b815260206004820152601860248201527f506172656e742055736572204973204e6f74204f776e65720000000000000000604482015290519081900360640190fd5b600a54604051636eef994d60e01b81526001600160a01b03858116600483019081526000606484018190526080602485019081528751608486015287519390951694636eef994d948994899489949390929091604482019160a401906020880190808383895b83811015614a045781810151838201526020016149ec565b50505050905090810190601f168015614a315780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015614a64578181015183820152602001614a4c565b50505050905090810190601f168015614a915780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b158015614ab457600080fd5b505af1158015614ac8573d6000803e3d6000fd5b50505050505050565b600082821115614ae057600080fd5b50900390565b614af0828261415e565b614b39576040805162461bcd60e51b81526020600482015260156024820152746164647220646f206e6f74206861766520726f6c6560581b604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b614b65828261415e565b15614baf576040805162461bcd60e51b81526020600482015260156024820152746164647220616c72656164792068617320726f6c6560581b604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008060009050826040516020018082805190602001908083835b60208310614c0e5780518252601f199092019160209182019101614bef565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120846040516020018082805190602001908083835b60208310614c7c5780518252601f199092019160209182019101614c5d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120141561129f575060019392505050565b604051806101600160405280600b90602082028038833950919291505056fe706c6174666f726d20697320726570616972696e67206f72207761697420746f207374617274696e67215468726f7773206966206f70657261746f72206973206e6f742077686974656c69737465646974206973206e6f742063616c6c656420627920746865206f776e6572000000a265627a7a72315820a3b4a83f0d4688dc2a11470307f3726439ea9c231a7f98f6c1d8cebfc56292c764736f6c634300050b0032

Deployed Bytecode

0x60806040526004361061019c5760003560e01c80636b25d06c116100ec5780638f32d59b1161008a578063d0e30db011610064578063d0e30db014610a2e578063e2ec6ec314610a36578063f086978014610ae4578063f5f24d9014610b1d5761019c565b80638f32d59b146109de5780638fb2b900146109f35780639b19251a146109fb5761019c565b80637b9417c8116100c65780637b9417c8146107a957806389d8e6b4146107dc5780638d611412146107ff5780638da5cb5b146109ad5761019c565b80636b25d06c1461075c5780637396ff4f1461076457806375253aef146107795761019c565b806324953eaa116101595780633227155511610133578063322715551461056e5780634bb6dbbe146105b35780636386c1c7146105df57806363ee71bb146107545761019c565b806324953eaa1461045a578063286dd3f5146105085780632af4c31e1461053b5761019c565b806303db3632146101a15780630988ca8c146101f05780630d27d014146102b357806318b919e9146102c85780631fbe552e14610352578063217fe6c614610385575b600080fd5b3480156101ad57600080fd5b506101b6610bce565b6040805195151586526001600160a01b03948516602087015292841685840152921660608401526080830191909152519081900360a00190f35b3480156101fc57600080fd5b506102b16004803603604081101561021357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561023d57600080fd5b82018360208201111561024f57600080fd5b803590602001918460018302840111600160201b8311171561027057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c54945050505050565b005b3480156102bf57600080fd5b506102b1610cc2565b3480156102d457600080fd5b506102dd611107565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103175781810151838201526020016102ff565b50505050905090810190601f1680156103445780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035e57600080fd5b5061036761112c565b60408051938452602084019290925282820152519081900360600190f35b34801561039157600080fd5b50610446600480360360408110156103a857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156103d257600080fd5b8201836020820111156103e457600080fd5b803590602001918460018302840111600160201b8311171561040557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611233945050505050565b604080519115158252519081900360200190f35b34801561046657600080fd5b506102b16004803603602081101561047d57600080fd5b810190602081018135600160201b81111561049757600080fd5b8201836020820111156104a957600080fd5b803590602001918460208302840111600160201b831117156104ca57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506112a8945050505050565b34801561051457600080fd5b506102b16004803603602081101561052b57600080fd5b50356001600160a01b0316611325565b34801561054757600080fd5b506102b16004803603602081101561055e57600080fd5b50356001600160a01b03166113a0565b34801561057a57600080fd5b506105a16004803603602081101561059157600080fd5b50356001600160a01b031661145b565b60408051918252519081900360200190f35b3480156105bf57600080fd5b506102b1600480360360208110156105d657600080fd5b50351515611554565b3480156105eb57600080fd5b506106126004803603602081101561060257600080fd5b50356001600160a01b03166115b4565b604051808d6001600160a01b03166001600160a01b0316815260200180602001806020018c60ff1660ff1681526020018b60ff1660ff1681526020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183810383528e818151815260200191508051906020019080838360005b838110156106ad578181015183820152602001610695565b50505050905090810190601f1680156106da5780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b8381101561070d5781810151838201526020016106f5565b50505050905090810190601f16801561073a5780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b6102b1611986565b6104466121d5565b34801561077057600080fd5b506102dd6126fc565b34801561078557600080fd5b506102b16004803603604081101561079c57600080fd5b5080359060200135612787565b3480156107b557600080fd5b506102b1600480360360208110156107cc57600080fd5b50356001600160a01b031661286b565b6102b1600480360360408110156107f257600080fd5b50803590602001356128e3565b6102b16004803603606081101561081557600080fd5b810190602081018135600160201b81111561082f57600080fd5b82018360208201111561084157600080fd5b803590602001918460018302840111600160201b8311171561086257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156108b457600080fd5b8201836020820111156108c657600080fd5b803590602001918460018302840111600160201b831117156108e757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561093957600080fd5b82018360208201111561094b57600080fd5b803590602001918460018302840111600160201b8311171561096c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612cac945050505050565b3480156109b957600080fd5b506109c261389d565b604080516001600160a01b039092168252519081900360200190f35b3480156109ea57600080fd5b506104466138ac565b6104466138bd565b348015610a0757600080fd5b5061044660048036036020811015610a1e57600080fd5b50356001600160a01b0316613cbf565b6102b1613cec565b348015610a4257600080fd5b506102b160048036036020811015610a5957600080fd5b810190602081018135600160201b811115610a7357600080fd5b820183602082011115610a8557600080fd5b803590602001918460208302840111600160201b83111715610aa657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613cee945050505050565b348015610af057600080fd5b506102b160048036036040811015610b0757600080fd5b50803590602001356001600160a01b0316613d6b565b348015610b2957600080fd5b5061044660048036036020811015610b4057600080fd5b810190602081018135600160201b811115610b5a57600080fd5b820183602082011115610b6c57600080fd5b803590602001918460018302840111600160201b83111715610b8d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613e0b945050505050565b6000805481908190819081906001600160a01b03163314610c24576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b505060085460055460065460075460095460ff909416976001600160a01b03938416975091831695509091169250565b610cbe826001836040518082805190602001908083835b60208310610c8a5780518252601f199092019160209182019101610c6b565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050613f52565b5050565b33803b8015610d0c576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314610d53576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015610d6c575060085460ff1615156001145b610da75760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b600a546040805163bbec1e5760e01b815233600482015290516000926001600160a01b03169163bbec1e579160248083019286929190829003018186803b158015610df157600080fd5b505afa158015610e05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610180811015610e2f57600080fd5b815160208301805160405192949293830192919084600160201b821115610e5557600080fd5b908301906020820185811115610e6a57600080fd5b8251600160201b811182820188101715610e8357600080fd5b82525081516020918201929091019080838360005b83811015610eb0578181015183820152602001610e98565b50505050905090810190601f168015610edd5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610eff57600080fd5b908301906020820185811115610f1457600080fd5b8251600160201b811182820188101715610f2d57600080fd5b82525081516020918201929091019080838360005b83811015610f5a578181015183820152602001610f42565b50505050905090810190601f168015610f875780820380516001836020036101000a031916815260200191505b5060405260c00151955060009450849350610fa9925085915060019050613f65565b90925090506001821515141561107a57600a60035481610fc557fe5b0481111561107557610fd7338461409c565b600a5460408051639654430b60e01b8152336004820152600060248201819052604482018190526064820181905260848201819052600160a4830181905260c483015260e48201819052610104820181905291516001600160a01b0390931692639654430b926101248084019391929182900301818387803b15801561105c57600080fd5b505af1158015611070573d6000803e3d6000fd5b505050505b611100565b600a60009054906101000a90046001600160a01b03166001600160a01b031663eb746b906040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110ca57600080fd5b505af11580156110de573d6000803e3d6000fd5b505050506040513d60208110156110f457600080fd5b505163ffffffff166009555b5050505050565b604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b81525081565b600080600080600954118015611149575060085460ff1615156001145b6111845760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b61118c614cc7565b600a60009054906101000a90046001600160a01b03166001600160a01b0316631fbe552e6040518163ffffffff1660e01b81526004016101606040518083038186803b1580156111db57600080fd5b505afa1580156111ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061016081101561121557600080fd5b5060c081015160e08201516101009092015190969195509350915050565b600061129f836001846040518082805190602001908083835b6020831061126b5780518252601f19909201916020918201910161124c565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061415e565b90505b92915050565b6000546001600160a01b031633146112f5576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b60005b8151811015610cbe5761131d82828151811061131057fe5b6020026020010151611325565b6001016112f8565b6000546001600160a01b03163314611372576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b61139d81604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b8152506141d2565b50565b6000546001600160a01b031633146113ed576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b6001600160a01b03811661140057600080fd5b600080546040516001600160a01b03808516939216917f8934ce4adea8d9ce0d714d2c22b86790e41b7731c84b926fbbdc1d40ff6533c991a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600061148833604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b815250611233565b8061149657506114966138ac565b6114d15760405162461bcd60e51b8152600401808060200182810382526025815260200180614d116025913960400191505060405180910390fd5b600a5460408051633227155560e01b81526001600160a01b0385811660048301529151919092169163322715559160248083019260209291908290030181600087803b15801561152057600080fd5b505af1158015611534573d6000803e3d6000fd5b505050506040513d602081101561154a57600080fd5b505190505b919050565b6000546001600160a01b031633146115a1576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b6008805460ff1916911515919091179055565b60006060806000806000806000806000806000806009541180156115df575060085460ff1615156001145b61161a5760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b6000600a60009054906101000a90046001600160a01b03166001600160a01b03166341b51dd78f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561168757600080fd5b505afa15801561169b573d6000803e3d6000fd5b505050506040513d60208110156116b157600080fd5b5051111561193b57600a60009054906101000a90046001600160a01b03166001600160a01b031663bbec1e578e6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060006040518083038186803b15801561172457600080fd5b505afa158015611738573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261018081101561176257600080fd5b815160208301805160405192949293830192919084600160201b82111561178857600080fd5b90830190602082018581111561179d57600080fd5b8251600160201b8111828201881017156117b657600080fd5b82525081516020918201929091019080838360005b838110156117e35781810151838201526020016117cb565b50505050905090810190601f1680156118105780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561183257600080fd5b90830190602082018581111561184757600080fd5b8251600160201b81118282018810171561186057600080fd5b82525081516020918201929091019080838360005b8381101561188d578181015183820152602001611875565b50505050905090810190601f1680156118ba5780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509b509b509b509b509b509b509b509b509b509b509b509b50611977565b5050604080516020808201835260008083528351918201909352828152919b509950975089965086955085945084935083925082915081905080805b91939597999b5091939597999b565b33803b80156119d0576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314611a17576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015611a30575060085460ff1615156001145b611a6b5760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b600a546040805163bbec1e5760e01b81523360048201529051606092839260009283926001600160a01b03169163bbec1e579160248083019286929190829003018186803b158015611abc57600080fd5b505afa158015611ad0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610180811015611afa57600080fd5b815160208301805160405192949293830192919084600160201b821115611b2057600080fd5b908301906020820185811115611b3557600080fd5b8251600160201b811182820188101715611b4e57600080fd5b82525081516020918201929091019080838360005b83811015611b7b578181015183820152602001611b63565b50505050905090810190601f168015611ba85780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611bca57600080fd5b908301906020820185811115611bdf57600080fd5b8251600160201b811182820188101715611bf857600080fd5b82525081516020918201929091019080838360005b83811015611c25578181015183820152602001611c0d565b50505050905090810190601f168015611c525780820380516001836020036101000a031916815260200191505b5060408181526060830151608090930151600354600b5463493b9e4360e11b85529251989d50969b509299509197509395506001600160a01b0316936392773c8693600480820194506020935090829003018186803b158015611cb457600080fd5b505afa158015611cc8573d6000803e3d6000fd5b505050506040513d6020811015611cde57600080fd5b505102611cf1838363ffffffff6142e316565b1115611d3e576040805162461bcd60e51b815260206004820152601760248201527609ac2f04086ded2dc40d2e640dac2f086ded2dc408aa89604b1b604482015290519081900360640190fd5b611d4e828263ffffffff6142e316565b600b5460408051630a4aef7160e21b81526004810184905290519294506000926001600160a01b039092169163292bbdc491602480820192602092909190829003018186803b158015611da057600080fd5b505afa158015611db4573d6000803e3d6000fd5b505050506040513d6020811015611dca57600080fd5b5051600b546040805163059fcb1b60e31b81526004810187905290519293506000926001600160a01b0390921691632cfe58d891602480820192602092909190829003018186803b158015611e1e57600080fd5b505afa158015611e32573d6000803e3d6000fd5b505050506040513d6020811015611e4857600080fd5b5051600a5460408051631f42d1d760e21b81523360048201526024810188905260006044820181905260ff808816606484015285166084830152600160a4830181905260c4830181905260e4830181905261010483015291519394506001600160a01b0390921692637d0b475c9261012480820193929182900301818387803b158015611ed457600080fd5b505af1158015611ee8573d6000803e3d6000fd5b5050600a5460408051630ea49a7560e11b81523360048201526024810188905263ffffffff4216604482015260006064820181905291519194506001600160a01b039092169250631d4934ea9160848082019260209290919082900301818787803b158015611f5657600080fd5b505af1158015611f6a573d6000803e3d6000fd5b505050506040513d6020811015611f8057600080fd5b5051600a546040805163a4f2becf60e01b8152600481018890526001602482015290519293506001600160a01b039091169163a4f2becf9160448082019260009290919082900301818387803b158015611fd957600080fd5b505af1158015611fed573d6000803e3d6000fd5b505050506120a3600560026003811061200257fe5b0154600b5460408051637174f45d60e11b815290516001600160a01b039384169361209e936103e89361209293919092169163e2e9e8ba916004808301926020929190829003018186803b15801561205957600080fd5b505afa15801561206d573d6000803e3d6000fd5b505050506040513d602081101561208357600080fd5b5051899063ffffffff6142f516565b9063ffffffff61431c16565b61409c565b80336001600160a01b03167fece6f461b3550448a8178414d691e8eeb0b38d559ff8d0086c9195945895dc84898988426040518080602001806020018581526020018463ffffffff1663ffffffff168152602001838103835287818151815260200191508051906020019080838360005b8381101561212c578181015183820152602001612114565b50505050905090810190601f1680156121595780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101561218c578181015183820152602001612174565b50505050905090810190601f1680156121b95780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a3505050505050505050565b600033803b8015612221576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314612268576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015612281575060085460ff1615156001145b6122bc5760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b60045460ff16156122cc57600080fd5b600a546040805163bbec1e5760e01b81523360048201529051600092839283926001600160a01b039092169163bbec1e57916024808201928692909190829003018186803b15801561231d57600080fd5b505afa158015612331573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261018081101561235b57600080fd5b815160208301805160405192949293830192919084600160201b82111561238157600080fd5b90830190602082018581111561239657600080fd5b8251600160201b8111828201881017156123af57600080fd5b82525081516020918201929091019080838360005b838110156123dc5781810151838201526020016123c4565b50505050905090810190601f1680156124095780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561242b57600080fd5b90830190602082018581111561244057600080fd5b8251600160201b81118282018810171561245957600080fd5b82525081516020918201929091019080838360005b8381101561248657818101518382015260200161246e565b50505050905090810190601f1680156124b35780820380516001836020036101000a031916815260200191505b506040526060810151608082015160a090920151909950909750955050508385149250612517915050576040805162461bcd60e51b815260206004820152600a6024820152694e6f7468696e6720546f60b01b604482015290519081900360640190fd5b6000806125248482613f65565b9092509050600182151514156126ed5780156126df57612544338261409c565b600b5460408051630a4aef7160e21b81526004810188905290516000926001600160a01b03169163292bbdc4916024808301926020929190829003018186803b15801561259057600080fd5b505afa1580156125a4573d6000803e3d6000fd5b505050506040513d60208110156125ba57600080fd5b5051600b546040805163059fcb1b60e31b8152600481018a905290519293506000926001600160a01b0390921691632cfe58d891602480820192602092909190829003018186803b15801561260e57600080fd5b505afa158015612622573d6000803e3d6000fd5b505050506040513d602081101561263857600080fd5b5051600a5460408051631f42d1d760e21b81523360048201526000602482018190526044820181905260ff80881660648401528516608483015260a48201819052600160c4830181905260e4830181905261010483015291519394506001600160a01b0390921692637d0b475c9261012480820193929182900301818387803b1580156126c457600080fd5b505af11580156126d8573d6000803e3d6000fd5b5050505050505b6001975050505050506126f7565b6000975050505050505b505090565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561277f5780601f106127545761010080835404028352916020019161277f565b820191906000526020600020905b81548152906001019060200180831161276257829003601f168201915b505050505081565b6127b233604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b815250611233565b806127c057506127c06138ac565b6127fb5760405162461bcd60e51b8152600401808060200182810382526025815260200180614d116025913960400191505060405180910390fd5b600a54604080516375253aef60e01b8152600481018590526024810184905290516001600160a01b03909216916375253aef9160448082019260009290919082900301818387803b15801561284f57600080fd5b505af1158015612863573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146128b8576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b61139d81604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b81525061433e565b61290e33604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b815250611233565b8061291c575061291c6138ac565b6129575760405162461bcd60e51b8152600401808060200182810382526025815260200180614d116025913960400191505060405180910390fd5b815b818111612ca757600a5460408051635f9bd33760e11b81526004810184905290516000926001600160a01b03169163bf37a66e916024808301926020929190829003018186803b1580156129ac57600080fd5b505afa1580156129c0573d6000803e3d6000fd5b505050506040513d60208110156129d657600080fd5b505190506001600160a01b03811615612c9e57600a546040805163bbec1e5760e01b81526001600160a01b0384811660048301529151600093929092169163bbec1e57916024808201928692909190829003018186803b158015612a3957600080fd5b505afa158015612a4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610180811015612a7757600080fd5b815160208301805160405192949293830192919084600160201b821115612a9d57600080fd5b908301906020820185811115612ab257600080fd5b8251600160201b811182820188101715612acb57600080fd5b82525081516020918201929091019080838360005b83811015612af8578181015183820152602001612ae0565b50505050905090810190601f168015612b255780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115612b4757600080fd5b908301906020820185811115612b5c57600080fd5b8251600160201b811182820188101715612b7557600080fd5b82525081516020918201929091019080838360005b83811015612ba2578181015183820152602001612b8a565b50505050905090810190601f168015612bcf5780820380516001836020036101000a031916815260200191505b5060405260c00151600354909650600a95509350612bec92505050565b048110612c9c57612bfd828261409c565b600a5460408051639654430b60e01b81526001600160a01b038581166004830152600060248301819052604483018190526064830181905260848301819052600160a4840181905260c484015260e4830181905261010483018190529251931692639654430b926101248084019391929182900301818387803b158015612c8357600080fd5b505af1158015612c97573d6000803e3d6000fd5b505050505b505b50600101612959565b505050565b33803b8015612cf6576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314612d3d576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015612d56575060085460ff1615156001145b612d915760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b600354612db490612da8348263ffffffff61431c16565b9063ffffffff6142f516565b3414612dfb576040805162461bcd60e51b815260206004820152601160248201527021b7b4b71026bab9ba1024b73a32b3b2b960791b604482015290519081900360640190fd5b6003543410801590612e8a5750600354600b60009054906101000a90046001600160a01b03166001600160a01b03166392773c866040518163ffffffff1660e01b815260040160206040518083038186803b158015612e5957600080fd5b505afa158015612e6d573d6000803e3d6000fd5b505050506040513d6020811015612e8357600080fd5b5051023411155b612edb576040805162461bcd60e51b815260206004820152601e60248201527f436f696e204d757374204265747765656e203120746f206d6178436f696e0000604482015290519081900360640190fd5b612ee633868661440d565b600b5460408051630a4aef7160e21b815234600482015290516000926001600160a01b03169163292bbdc4916024808301926020929190829003018186803b158015612f3157600080fd5b505afa158015612f45573d6000803e3d6000fd5b505050506040513d6020811015612f5b57600080fd5b5051600b546040805163059fcb1b60e31b815234600482015290519293506000926001600160a01b0390921691632cfe58d891602480820192602092909190829003018186803b158015612fae57600080fd5b505afa158015612fc2573d6000803e3d6000fd5b505050506040513d6020811015612fd857600080fd5b5051600a546040805163bbec1e5760e01b81523360048201529051929350600092839283926001600160a01b039091169163bbec1e57916024808201928692909190829003018186803b15801561302e57600080fd5b505afa158015613042573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261018081101561306c57600080fd5b815160208301805160405192949293830192919084600160201b82111561309257600080fd5b9083019060208201858111156130a757600080fd5b8251600160201b8111828201881017156130c057600080fd5b82525081516020918201929091019080838360005b838110156130ed5781810151838201526020016130d5565b50505050905090810190601f16801561311a5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561313c57600080fd5b90830190602082018581111561315157600080fd5b8251600160201b81118282018810171561316a57600080fd5b82525081516020918201929091019080838360005b8381101561319757818101518382015260200161317f565b50505050905090810190601f1680156131c45780820380516001836020036101000a031916815260200191505b50604052606081015160809091015195985096509394505050506001600160a01b0384161515905061333a57600a60009054906101000a90046001600160a01b03166001600160a01b0316636d9e7e7e333460008989428f6040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b031681526020018781526020018681526020018560ff1660ff1681526020018460ff1660ff1681526020018363ffffffff1663ffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156132b657818101518382015260200161329e565b50505050905090810190601f1680156132e35780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b15801561330857600080fd5b505af115801561331c573d6000803e3d6000fd5b505050506040513d602081101561333257600080fd5b506135c79050565b600354600b60009054906101000a90046001600160a01b03166001600160a01b03166392773c866040518163ffffffff1660e01b815260040160206040518083038186803b15801561338b57600080fd5b505afa15801561339f573d6000803e3d6000fd5b505050506040513d60208110156133b557600080fd5b5051026133c8833463ffffffff6142e316565b1115613415576040805162461bcd60e51b815260206004820152601760248201527609ac2f04086ded2dc40d2e640dac2f086ded2dc408aa89604b1b604482015290519081900360640190fd5b613425823463ffffffff6142e316565b600b5460408051630a4aef7160e21b81526004810184905290519294506001600160a01b039091169163292bbdc491602480820192602092909190829003018186803b15801561347457600080fd5b505afa158015613488573d6000803e3d6000fd5b505050506040513d602081101561349e57600080fd5b5051600b549095506001600160a01b0316632cfe58d86134c4848463ffffffff6142e316565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156134f857600080fd5b505afa15801561350c573d6000803e3d6000fd5b505050506040513d602081101561352257600080fd5b5051600a5460408051631f42d1d760e21b81523360048201526024810186905260006044820181905260ff808b16606484015285166084830152600160a4830181905260c4830182905260e4830181905261010483015291519397506001600160a01b0390921692637d0b475c9261012480820193929182900301818387803b1580156135ae57600080fd5b505af11580156135c2573d6000803e3d6000fd5b505050505b600a5460408051630ea49a7560e11b815233600482015234602482015263ffffffff42166044820152600060648201819052915191926001600160a01b031691631d4934ea9160848082019260209290919082900301818787803b15801561362e57600080fd5b505af1158015613642573d6000803e3d6000fd5b505050506040513d602081101561365857600080fd5b5051600a546040805163a4f2becf60e01b81523460048201526001602482015290519293506001600160a01b039091169163a4f2becf9160448082019260009290919082900301818387803b1580156136b057600080fd5b505af11580156136c4573d6000803e3d6000fd5b5050505061376960056002600381106136d957fe5b0154600b5460408051637174f45d60e11b815290516001600160a01b039384169361209e936103e89361209293919092169163e2e9e8ba916004808301926020929190829003018186803b15801561373057600080fd5b505afa158015613744573d6000803e3d6000fd5b505050506040513d602081101561375a57600080fd5b5051349063ffffffff6142f516565b80336001600160a01b03167fece6f461b3550448a8178414d691e8eeb0b38d559ff8d0086c9195945895dc848d8d34426040518080602001806020018581526020018463ffffffff1663ffffffff168152602001838103835287818151815260200191508051906020019080838360005b838110156137f25781810151838201526020016137da565b50505050905090810190601f16801561381f5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101561385257818101518382015260200161383a565b50505050905090810190601f16801561387f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a35050505050505050505050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600033803b8015613909576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b323314613950576040805162461bcd60e51b815260206004820152601060248201526f736f7272792068756d616e206f6e6c7960801b604482015290519081900360640190fd5b6000600954118015613969575060085460ff1615156001145b6139a45760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b60045460ff16156139b457600080fd5b600a546040805163bbec1e5760e01b81523360048201529051600092839283926001600160a01b039092169163bbec1e57916024808201928692909190829003018186803b158015613a0557600080fd5b505afa158015613a19573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610180811015613a4357600080fd5b815160208301805160405192949293830192919084600160201b821115613a6957600080fd5b908301906020820185811115613a7e57600080fd5b8251600160201b811182820188101715613a9757600080fd5b82525081516020918201929091019080838360005b83811015613ac4578181015183820152602001613aac565b50505050905090810190601f168015613af15780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115613b1357600080fd5b908301906020820185811115613b2857600080fd5b8251600160201b811182820188101715613b4157600080fd5b82525081516020918201929091019080838360005b83811015613b6e578181015183820152602001613b56565b50505050905090810190601f168015613b9b5780820380516001836020036101000a031916815260200191505b506040526060810151608082015160a09092015190995090975095505084159350613bfe92505050576040805162461bcd60e51b815260206004820152600a6024820152694e6f7468696e6720546f60b01b604482015290519081900360640190fd5b600080613c0c846001613f65565b909250905060018215151415613c2c5780156126df57612544338261409c565b600a60009054906101000a90046001600160a01b03166001600160a01b031663eb746b906040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613c7c57600080fd5b505af1158015613c90573d6000803e3d6000fd5b505050506040513d6020811015613ca657600080fd5b505163ffffffff16600955600097505050505050505090565b60006112a282604051806040016040528060098152602001681dda1a5d195b1a5cdd60ba1b815250611233565b565b6000546001600160a01b03163314613d3b576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b60005b8151811015610cbe57613d63828281518110613d5657fe5b602002602001015161286b565b600101613d3e565b6000546001600160a01b03163314613db8576040805162461bcd60e51b815260206004820152601d6024820152600080516020614d36833981519152604482015290519081900360640190fd5b8060058360038110613dc657fe5b0180546001600160a01b039283166001600160a01b031991821617909155600554600a8054918416918316919091179055600654600b80549190931691161790555050565b600080600954118015613e25575060085460ff1615156001145b613e605760405162461bcd60e51b815260040180806020018281038252602a815260200180614ce7602a913960400191505060405180910390fd5b600a5460405163ec8bc84560e01b81526020600482018181528551602484015285516000946001600160a01b03169363ec8bc845938893928392604401918501908083838b5b83811015613ebe578181015183820152602001613ea6565b50505050905090810190601f168015613eeb5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015613f0857600080fd5b505afa158015613f1c573d6000803e3d6000fd5b505050506040513d6020811015613f3257600080fd5b50516001600160a01b031614613f4a5750600161154f565b506000919050565b613f5c828261415e565b610cbe57600080fd5b60008080600184151514613f7a573031614078565b600a546040805163da29ab3b60e01b81529051614078926001600160a01b03169163da29ab3b916004808301926020929190829003018186803b158015613fc057600080fd5b505afa158015613fd4573d6000803e3d6000fd5b505050506040513d6020811015613fea57600080fd5b5051600a54604080516327bf8e2760e11b8152905161406c926001600160a01b031691634f7f1c4e916004808301926020929190829003018186803b15801561403257600080fd5b505afa158015614046573d6000803e3d6000fd5b505050506040513d602081101561405c57600080fd5b505130319063ffffffff614ad116565b9063ffffffff614ad116565b905080851061408c57600092509050614095565b60018592509250505b9250929050565b6001600160a01b0382166140af57600080fd5b60045460ff16156140bf57600080fd5b6004805460ff191660011790556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015614102573d6000803e3d6000fd5b506040805182815263ffffffff4216602082015281516001600160a01b0385169230927fddd8a05327f2667fbabc373067a89f1ae9334116db741cead53ddb2afddf0992929081900390910190a350506004805460ff19169055565b60006001600160a01b0382166141b2576040805162461bcd60e51b81526020600482015260146024820152736e6f7420746865207a65726f206164647265737360601b604482015290519081900360640190fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61423c826001836040518082805190602001908083835b602083106142085780518252601f1990920191602091820191016141e9565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050614ae6565b816001600160a01b03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b838110156142a557818101518382015260200161428d565b50505050905090810190601f1680156142d25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60008282018381101561129f57600080fd5b600082614304575060006112a2565b8282028284828161431157fe5b041461129f57600080fd5b600080821161432a57600080fd5b600082848161433557fe5b04949350505050565b6143a8826001836040518082805190602001908083835b602083106143745780518252601f199092019160209182019101614355565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050614b5b565b60408051602080825283518183015283516001600160a01b038616937fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b70048993869390928392830191850190808383600083156142a557818101518382015260200161428d565b600a54604080516341b51dd760e01b81526001600160a01b038681166004830152915191909216916341b51dd7916024808301926020929190829003018186803b15801561445a57600080fd5b505afa15801561446e573d6000803e3d6000fd5b505050506040513d602081101561448457600080fd5b5051612ca7576144a38260405180602001604052806000815250614bd4565b15801561458a5750600a5460405163ec8bc84560e01b81526020600482018181528551602484015285516000946001600160a01b03169363ec8bc845938893928392604401918501908083838b5b838110156145095781810151838201526020016144f1565b50505050905090810190601f1680156145365780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b15801561455357600080fd5b505afa158015614567573d6000803e3d6000fd5b505050506040513d602081101561457d57600080fd5b50516001600160a01b0316145b6145db576040805162461bcd60e51b815260206004820152601a60248201527f456d70747920436f6465204f7220436f64652045786973746564000000000000604482015290519081900360640190fd5b61471d81600a60009054906101000a90046001600160a01b03166001600160a01b03166301d3e8536040518163ffffffff1660e01b815260040160006040518083038186803b15801561462d57600080fd5b505afa158015614641573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561466a57600080fd5b8101908080516040519392919084600160201b82111561468957600080fd5b90830190602082018581111561469e57600080fd5b8251600160201b8111828201881017156146b757600080fd5b82525081516020918201929091019080838360005b838110156146e45781810151838201526020016146cc565b50505050905090810190601f1680156147115780820380516001836020036101000a031916815260200191505b50604052505050614bd4565b806148035750600a5460405163ec8bc84560e01b81526020600482018181528451602484015284516000946001600160a01b03169363ec8bc845938793928392604401918501908083838b5b83811015614781578181015183820152602001614769565b50505050905090810190601f1680156147ae5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156147cb57600080fd5b505afa1580156147df573d6000803e3d6000fd5b505050506040513d60208110156147f557600080fd5b50516001600160a01b031614155b614854576040805162461bcd60e51b815260206004820152601860248201527f506172656e742055736572204973204e6f742045786973740000000000000000604482015290519081900360640190fd5b600a5460405163ec8bc84560e01b81526020600482018181528451602484015284516001600160a01b0380891695169363ec8bc8459387939283926044019185019080838360005b838110156148b457818101518382015260200161489c565b50505050905090810190601f1680156148e15780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156148fe57600080fd5b505afa158015614912573d6000803e3d6000fd5b505050506040513d602081101561492857600080fd5b50516001600160a01b03161415614986576040805162461bcd60e51b815260206004820152601860248201527f506172656e742055736572204973204e6f74204f776e65720000000000000000604482015290519081900360640190fd5b600a54604051636eef994d60e01b81526001600160a01b03858116600483019081526000606484018190526080602485019081528751608486015287519390951694636eef994d948994899489949390929091604482019160a401906020880190808383895b83811015614a045781810151838201526020016149ec565b50505050905090810190601f168015614a315780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015614a64578181015183820152602001614a4c565b50505050905090810190601f168015614a915780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b158015614ab457600080fd5b505af1158015614ac8573d6000803e3d6000fd5b50505050505050565b600082821115614ae057600080fd5b50900390565b614af0828261415e565b614b39576040805162461bcd60e51b81526020600482015260156024820152746164647220646f206e6f74206861766520726f6c6560581b604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b614b65828261415e565b15614baf576040805162461bcd60e51b81526020600482015260156024820152746164647220616c72656164792068617320726f6c6560581b604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60008060009050826040516020018082805190602001908083835b60208310614c0e5780518252601f199092019160209182019101614bef565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120846040516020018082805190602001908083835b60208310614c7c5780518252601f199092019160209182019101614c5d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120141561129f575060019392505050565b604051806101600160405280600b90602082028038833950919291505056fe706c6174666f726d20697320726570616972696e67206f72207761697420746f207374617274696e67215468726f7773206966206f70657261746f72206973206e6f742077686974656c69737465646974206973206e6f742063616c6c656420627920746865206f776e6572000000a265627a7a72315820a3b4a83f0d4688dc2a11470307f3726439ea9c231a7f98f6c1d8cebfc56292c764736f6c634300050b0032

Deployed Bytecode Sourcemap

4282:9291:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13136:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13136:170:0;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;13136:170:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2912:121:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2912:121:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;2912:121:1;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2912:121:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2912:121:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2912:121:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2912:121:1;;-1:-1:-1;2912:121:1;;-1:-1:-1;;;;;2912:121:1:i;:::-;;7890:526:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7890:526:0;;;:::i;4350:53:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4350:53:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4350:53:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12968:163:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12968:163:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3175:143:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3175:143:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3175:143:1;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3175:143:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3175:143:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3175:143:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3175:143:1;;-1:-1:-1;3175:143:1;;-1:-1:-1;;;;;3175:143:1:i;:::-;;;;;;;;;;;;;;;;;;6162:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6162:208:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6162:208:1;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6162:208:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6162:208:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6162:208:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6162:208:1;;-1:-1:-1;6162:208:1;;-1:-1:-1;;;;;6162:208:1:i;5789:132::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5789:132:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5789:132:1;-1:-1:-1;;;;;5789:132:1;;:::i;569:184::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;569:184:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;569:184:1;-1:-1:-1;;;;;569:184:1;;:::i;12150:148:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12150:148:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12150:148:0;-1:-1:-1;;;;;12150:148:0;;:::i;:::-;;;;;;;;;;;;;;;;13311:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13311:87:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13311:87:0;;;;:::i;12652:311::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12652:311:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12652:311:0;-1:-1:-1;;;;;12652:311:0;;:::i;:::-;;;;;-1:-1:-1;;;;;12652:311:0;-1:-1:-1;;;;;12652:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12652:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12652:311:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12652:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8422:816;;;:::i;11338:806::-;;;:::i;4314:42::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4314:42:0;;;:::i;12304:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12304:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12304:143:0;;;;;;;:::i;4815:124:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4815:124:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4815:124:1;-1:-1:-1;;;;;4815:124:1;;:::i;9244:515:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9244:515:0;;;;;;;:::i;6479:1405::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6479:1405:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6479:1405:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6479:1405:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6479:1405:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6479:1405:0;;;;;;;;-1:-1:-1;6479:1405:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6479:1405:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6479:1405:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6479:1405:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6479:1405:0;;;;;;;;-1:-1:-1;6479:1405:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6479:1405:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6479:1405:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6479:1405:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6479:1405:0;;-1:-1:-1;6479:1405:0;;-1:-1:-1;;;;;6479:1405:0:i;280:75:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;280:75:1;;;:::i;:::-;;;;-1:-1:-1;;;;;280:75:1;;;;;;;;;;;;;;360:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;360:88:1;;;:::i;10477:855:0:-;;;:::i;5012:133:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5012:133:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5012:133:1;-1:-1:-1;;;;;5012:133:1;;:::i;5272:41:0:-;;;:::i;5363:198:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5363:198:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5363:198:1;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5363:198:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5363:198:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5363:198:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5363:198:1;;-1:-1:-1;5363:198:1;;-1:-1:-1;;;;;5363:198:1:i;13403:168:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13403:168:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13403:168:0;;;;;;-1:-1:-1;;;;;13403:168:0;;:::i;12453:194::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12453:194:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12453:194:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;12453:194:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12453:194:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;12453:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;12453:194:0;;-1:-1:-1;12453:194:0;;-1:-1:-1;;;;;12453:194:0:i;13136:170::-;13192:4;506:6:1;;13192:4:0;;;;;;;;-1:-1:-1;;;;;506:6:1;492:10;:20;484:62;;;;;-1:-1:-1;;;484:62:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;484:62:1;;;;;;;;;;;;;;;-1:-1:-1;;13244:14:0;;13259:6;:9;13269;;13279;;13289;;13244:14;;;;;-1:-1:-1;;;;;13259:9:0;;;;-1:-1:-1;13269:9:0;;;;-1:-1:-1;13279:9:0;;;;-1:-1:-1;13136:170:0:o;2912:121:1:-;2999:29;3018:9;2999:5;3005;2999:12;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2999:12:1;;;;;-1:-1:-1;2999:12:1;;;;;;;;;;;;-1:-1:-1;;2999:18:1;:29::i;:::-;2912:121;;:::o;7890:526:0:-;5658:10;5733:18;;5769:16;;5761:46;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;;;;5825:9;5838:10;5825:23;5817:52;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;;;;5442:1;5430:9;;:13;:39;;;;-1:-1:-1;5447:14:0;;;;:22;;:14;:22;5430:39;5422:93;;;;-1:-1:-1;;;5422:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8007:2;;:29;;;-1:-1:-1;;;8007:29:0;;8025:10;8007:29;;;;;;7990:10;;-1:-1:-1;;;;;8007:2:0;;:17;;:29;;;;;7990:10;;8007:29;;;;;;;:2;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8007:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8007:29:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8007:29:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;8007:29:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;8007:29:0;;420:4:-1;411:14;;;;8007:29:0;;;;;411:14:-1;8007:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8007:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;8007:29:0;;420:4:-1;411:14;;;;8007:29:0;;;;;411:14:-1;8007:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8007:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8007:29:0;;;;;;-1:-1:-1;8047:12:0;;-1:-1:-1;8047:12:0;;-1:-1:-1;8123:21:0;;-1:-1:-1;8007:29:0;;-1:-1:-1;8139:4:0;;-1:-1:-1;8123:8:0;:21::i;:::-;8103:41;;-1:-1:-1;8103:41:0;-1:-1:-1;8168:4:0;8157:15;;;;8154:256;;;8208:2;8201:6;;:9;;;;;;8190:7;:21;8187:153;;;8230:29;8241:10;8253:5;8230:10;:29::i;:::-;8277:2;;:48;;;-1:-1:-1;;;8277:48:0;;8298:10;8277:48;;;;:2;:48;;;;;;;;;;;;;;;;;;;;;;;;:2;:48;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8277:2:0;;;;:20;;:48;;;;;:2;;:48;;;;;;:2;;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;8277:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8277:48:0;;;;8187:153;8154:256;;;8380:2;;;;;;;;;-1:-1:-1;;;;;8380:2:0;-1:-1:-1;;;;;8380:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8380:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8380:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8380:19:0;8368:31;;:9;:31;8154:256;5525:1;;;7890:526;;:::o;4350:53:1:-;;;;;;;;;;;;;;-1:-1:-1;;;4350:53:1;;;;:::o;12968:163:0:-;13021:4;13026;13031;5442:1;5430:9;;:13;:39;;;;-1:-1:-1;5447:14:0;;;;:22;;:14;:22;5430:39;5422:93;;;;-1:-1:-1;;;5422:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13046:19;;:::i;:::-;13068:2;;;;;;;;;-1:-1:-1;;;;;13068:2:0;-1:-1:-1;;;;;13068:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13068:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13068:17:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;13103:6:0;;;;13110;;;;13117;;;;;13103;;13110;;-1:-1:-1;13117:6:0;-1:-1:-1;12968:163:0;-1:-1:-1;;12968:163:0:o;3175:143:1:-;3265:4;3286:27;3303:9;3286:5;3292;3286:12;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3286:12:1;;;;;-1:-1:-1;3286:12:1;;;;;;;;;;;;-1:-1:-1;;3286:16:1;:27::i;:::-;3279:34;;3175:143;;;;;:::o;6162:208::-;506:6;;-1:-1:-1;;;;;506:6:1;492:10;:20;484:62;;;;;-1:-1:-1;;;484:62:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;484:62:1;;;;;;;;;;;;;;;6267:9;6262:104;6286:10;:17;6282:1;:21;6262:104;;;6318:41;6345:10;6356:1;6345:13;;;;;;;;;;;;;;6318:26;:41::i;:::-;6305:3;;6262:104;;5789:132;506:6;;-1:-1:-1;;;;;506:6:1;492:10;:20;484:62;;;;;-1:-1:-1;;;484:62:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;484:62:1;;;;;;;;;;;;;;;5877:39;5888:9;5899:16;;;;;;;;;;;;;-1:-1:-1;;;5899:16:1;;;5877:10;:39::i;:::-;5789:132;:::o;569:184::-;506:6;;-1:-1:-1;;;;;506:6:1;492:10;:20;484:62;;;;;-1:-1:-1;;;484:62:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;484:62:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;647:22:1;;639:31;;;;;;702:6;;;685:34;;-1:-1:-1;;;;;685:34:1;;;;702:6;;;685:34;;;729:6;:17;;-1:-1:-1;;;;;;729:17:1;-1:-1:-1;;;;;729:17:1;;;;;;;;;;569:184::o;12150:148:0:-;12243:4;4512:37:1;4520:10;4532:16;;;;;;;;;;;;;-1:-1:-1;;;4532:16:1;;;4512:7;:37::i;:::-;:50;;;;4553:9;:7;:9::i;:::-;4504:100;;;;-1:-1:-1;;;4504:100:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12270:2:0;;:21;;;-1:-1:-1;;;12270:21:0;;-1:-1:-1;;;;;12270:21:0;;;;;;;;;:2;;;;;:14;;:21;;;;;;;;;;;;;;:2;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;12270:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12270:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12270:21:0;;-1:-1:-1;4610:1:1;12150:148:0;;;:::o;13311:87::-;506:6:1;;-1:-1:-1;;;;;506:6:1;492:10;:20;484:62;;;;;-1:-1:-1;;;484:62:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;484:62:1;;;;;;;;;;;;;;;13373:14:0;:18;;-1:-1:-1;;13373:18:0;;;;;;;;;;13311:87::o;12652:311::-;12718:7;12727:13;12741;12755:5;12761;12767:4;12772;12777;12782;12787;12792;12797;5442:1;5430:9;;:13;:39;;;;-1:-1:-1;5447:14:0;;;;:22;;:14;:22;5430:39;5422:93;;;;-1:-1:-1;;;5422:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12843:1;12815:2;;;;;;;;;-1:-1:-1;;;;;12815:2:0;-1:-1:-1;;;;;12815:17:0;;12833:6;12815:25;;;;;;;;;;;;;-1:-1:-1;;;;;12815:25:0;-1:-1:-1;;;;;12815:25:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12815:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12815:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12815:25:0;:29;12812:92;;;12867:2;;;;;;;;;-1:-1:-1;;;;;12867:2:0;-1:-1:-1;;;;;12867:17:0;;12885:6;12867:25;;;;;;;;;;;;;-1:-1:-1;;;;;12867:25:0;-1:-1:-1;;;;;12867:25:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12867:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12867:25:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;12867:25:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;12867:25:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;12867:25:0;;420:4:-1;411:14;;;;12867:25:0;;;;;411:14:-1;12867:25:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12867:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;12867:25:0;;420:4:-1;411:14;;;;12867:25:0;;;;;411:14:-1;12867:25:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12867:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12859:34;;;;;;;;;;;;;;;;;;;;;;;;;;12812:92;-1:-1:-1;;12913:43:0;;;;;;;;;12929:1;12913:43;;;;;;;;;;;;;;12929:1;;-1:-1:-1;12913:43:0;-1:-1:-1;12913:43:0;-1:-1:-1;12929:1:0;;-1:-1:-1;12929:1:0;;-1:-1:-1;12929:1:0;;-1:-1:-1;12929:1:0;;-1:-1:-1;12929:1:0;;-1:-1:-1;12929:1:0;;-1:-1:-1;12929:1:0;;-1:-1:-1;12929:1:0;;5525;12652:311;;;;;;;;;;;;;:::o;8422:816::-;5658:10;5733:18;;5769:16;;5761:46;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;;;;5825:9;5838:10;5825:23;5817:52;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;;;;5442:1;5430:9;;:13;:39;;;;-1:-1:-1;5447:14:0;;;;:22;;:14;:22;5430:39;5422:93;;;;-1:-1:-1;;;5422:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8606:2;;:29;;;-1:-1:-1;;;8606:29:0;;8624:10;8606:29;;;;;;8524:19;;;;8568:15;;;;-1:-1:-1;;;;;8606:2:0;;:17;;:29;;;;;8568:15;;8606:29;;;;;;;:2;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8606:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8606:29:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8606:29:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;8606:29:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;8606:29:0;;420:4:-1;411:14;;;;8606:29:0;;;;;411:14:-1;8606:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8606:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;8606:29:0;;420:4:-1;411:14;;;;8606:29:0;;;;;411:14:-1;8606:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8606:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8606:29:0;;;;;;;;;;;;;8695:6;;8681:3;;-1:-1:-1;;;8681:13:0;;;;8522:113;;-1:-1:-1;8522:113:0;;-1:-1:-1;8606:29:0;;-1:-1:-1;8606:29:0;;-1:-1:-1;8695:6:0;;-1:-1:-1;;;;;;8681:3:0;;:11;;:13;;;;;-1:-1:-1;8606:29:0;;-1:-1:-1;8681:13:0;;;;;;:3;:13;;;5:2:-1;;;;30:1;27;20:12;5:2;8681:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8681:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8681:13:0;:20;8653:24;:10;8668:8;8653:24;:14;:24;:::i;:::-;:48;;8645:84;;;;;-1:-1:-1;;;8645:84:0;;;;;;;;;;;;-1:-1:-1;;;8645:84:0;;;;;;;;;;;;;;;8752:24;:10;8767:8;8752:24;:14;:24;:::i;:::-;8806:3;;:21;;;-1:-1:-1;;;8806:21:0;;;;;;;;;;8739:37;;-1:-1:-1;8786:11:0;;-1:-1:-1;;;;;8806:3:0;;;;:9;;:21;;;;;;;;;;;;;;;:3;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;8806:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8806:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8806:21:0;8863:3;;:26;;;-1:-1:-1;;;8863:26:0;;;;;;;;;;8806:21;;-1:-1:-1;8838:16:0;;-1:-1:-1;;;;;8863:3:0;;;;:14;;:26;;;;;8806:21;;8863:26;;;;;;;;:3;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;8863:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8863:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8863:26:0;8900:2;;:68;;;-1:-1:-1;;;8900:68:0;;8919:10;8900:68;;;;;;;;;;:2;:68;;;;;;;;;;;;;;;;;;;;:2;:68;;;;;;;;;;;;;;;;;;;;;;;;8863:26;;-1:-1:-1;;;;;;8900:2:0;;;;:18;;:68;;;;;:2;:68;;;;;;:2;;:68;;;5:2:-1;;;;30:1;27;20:12;5:2;8900:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8990:2:0;;:51;;;-1:-1:-1;;;8990:51:0;;9005:10;8990:51;;;;;;;;;;;9033:3;8990:51;;;;;8979:8;8990:51;;;;;;;;8979:8;;-1:-1:-1;;;;;;8990:2:0;;;;-1:-1:-1;8990:14:0;;:51;;;;;;;;;;;;;;;8979:8;8990:2;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;8990:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8990:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8990:51:0;9051:2;;:31;;;-1:-1:-1;;;9051:31:0;;;;;;;;:2;:31;;;;;;8990:51;;-1:-1:-1;;;;;;9051:2:0;;;;:18;;:31;;;;;:2;;:31;;;;;;;;:2;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;9051:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9051:31:0;;;;9092:58;9103:6;9110:1;9103:9;;;;;;;;;9127:3;;:11;;;-1:-1:-1;;;9127:11:0;;;;-1:-1:-1;;;;;9103:9:0;;;;9114:35;;9144:4;;9114:25;;9127:3;;;;;:9;;:11;;;;;;;;;;;;;;:3;:11;;;5:2:-1;;;;30:1;27;20:12;5:2;9127:11:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9127:11:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9127:11:0;9114:8;;:25;:12;:25;:::i;:::-;:29;:35;:29;:35;:::i;:::-;9092:10;:58::i;:::-;9204:3;9177:10;-1:-1:-1;;;;;9165:66:0;;9189:5;9196:6;9209:8;9226:3;9165:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9165:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9165:66:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9165:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5525:1;;;;;;;8422:816;;:::o;11338:806::-;11445:4;5658:10;5733:18;;5769:16;;5761:46;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;;;;5825:9;5838:10;5825:23;5817:52;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;;;;5442:1;5430:9;;:13;:39;;;;-1:-1:-1;5447:14:0;;;;:22;;:14;:22;5430:39;5422:93;;;;-1:-1:-1;;;5422:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11474:15;;;;11473:16;11465:25;;;;;;11559:2;;:29;;;-1:-1:-1;;;11559:29:0;;11577:10;11559:29;;;;;;11506:15;;;;;;-1:-1:-1;;;;;11559:2:0;;;;:17;;:29;;;;;11506:15;;11559:29;;;;;;;;:2;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;11559:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11559:29:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;11559:29:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;11559:29:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;11559:29:0;;420:4:-1;411:14;;;;11559:29:0;;;;;411:14:-1;11559:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11559:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;11559:29:0;;420:4:-1;411:14;;;;11559:29:0;;;;;411:14:-1;11559:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11559:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11559:29:0;;;;;;;;;;;;;;;;;-1:-1:-1;11559:29:0;;-1:-1:-1;11559:29:0;-1:-1:-1;;;11606:22:0;;;;-1:-1:-1;11598:45:0;;-1:-1:-1;;11598:45:0;;;;-1:-1:-1;;;11598:45:0;;;;;;;;;;;;-1:-1:-1;;;11598:45:0;;;;;;;;;;;;;;;11654:12;;11726:25;11735:8;11654:12;11726:8;:25::i;:::-;11706:45;;-1:-1:-1;11706:45:0;-1:-1:-1;11776:4:0;11765:15;;;;11762:354;;;11798:11;;11795:286;;11828:31;11839:10;11851:7;11828:10;:31::i;:::-;11897:3;;:21;;;-1:-1:-1;;;11897:21:0;;;;;;;;;;11877:11;;-1:-1:-1;;;;;11897:3:0;;:9;;:21;;;;;;;;;;;;;;:3;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;11897:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11897:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11897:21:0;11962:3;;:26;;;-1:-1:-1;;;11962:26:0;;;;;;;;;;11897:21;;-1:-1:-1;11937:16:0;;-1:-1:-1;;;;;11962:3:0;;;;:14;;:26;;;;;11897:21;;11962:26;;;;;;;;:3;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;11962:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11962:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11962:26:0;12007:2;;:59;;;-1:-1:-1;;;12007:59:0;;12026:10;12007:59;;;;:2;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:2;:59;;;;;;;;;;;;;;;;;;11962:26;;-1:-1:-1;;;;;;12007:2:0;;;;:18;;:59;;;;;:2;:59;;;;;;:2;;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;12007:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12007:59:0;;;;11795:286;;;12101:4;12094:11;;;;;;;;;11762:354;12132:5;12125:12;;;;;;;5525:1;11338:806;;;:::o;4314:42::-;;;;;;;;;;;;;;-1:-1:-1;;4314:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12304:143::-;4512:37:1;4520:10;4532:16;;;;;;;;;;;;;-1:-1:-1;;;4532:16:1;;;4512:7;:37::i;:::-;:50;;;;4553:9;:7;:9::i;:::-;4504:100;;;;-1:-1:-1;;;4504:100:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12408:2:0;;:32;;;-1:-1:-1;;;12408:32:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12408:2:0;;;;:18;;:32;;;;;:2;;:32;;;;;;;;:2;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;12408:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12408:32:0;;;;12304:143;;:::o;4815:124:1:-;506:6;;-1:-1:-1;;;;;506:6:1;492:10;:20;484:62;;;;;-1:-1:-1;;;484:62:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;484:62:1;;;;;;;;;;;;;;;4898:36;4906:9;4917:16;;;;;;;;;;;;;-1:-1:-1;;;4917:16:1;;;4898:7;:36::i;9244:515:0:-;4512:37:1;4520:10;4532:16;;;;;;;;;;;;;-1:-1:-1;;;4532:16:1;;;4512:7;:37::i;:::-;:50;;;;4553:9;:7;:9::i;:::-;4504:100;;;;-1:-1:-1;;;4504:100:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9371:6:0;9358:395;9384:4;9379:1;:9;9358:395;;9426:2;;:21;;;-1:-1:-1;;;9426:21:0;;;;;;;;;;9409:14;;-1:-1:-1;;;;;9426:2:0;;:18;;:21;;;;;;;;;;;;;;:2;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;9426:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9426:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9426:21:0;;-1:-1:-1;;;;;;9464:20:0;;;9461:282;;9529:2;;:25;;;-1:-1:-1;;;9529:25:0;;-1:-1:-1;;;;;9529:25:0;;;;;;;;;9512:10;;9529:2;;;;;:17;;:25;;;;;9512:10;;9529:25;;;;;;;;:2;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;9529:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9529:25:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9529:25:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;9529:25:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;9529:25:0;;420:4:-1;411:14;;;;9529:25:0;;;;;411:14:-1;9529:25:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9529:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;9529:25:0;;420:4:-1;411:14;;;;9529:25:0;;;;;411:14:-1;9529:25:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9529:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9529:25:0;;;;;9586:6;;9529:25;;-1:-1:-1;9593:2:0;;-1:-1:-1;9586:6:0;-1:-1:-1;9586:9:0;;-1:-1:-1;;;9586:9:0;;;9576:5;:20;9573:156;;9619:25;9630:6;9638:5;9619:10;:25::i;:::-;9666:2;;:44;;;-1:-1:-1;;;9666:44:0;;-1:-1:-1;;;;;9666:44:0;;;;;;;:2;:44;;;;;;;;;;;;;;;;;;;;;;;;:2;:44;;;;;;;;;;;;;;;;;;;;;;;;:2;;;:20;;:44;;;;;:2;;:44;;;;;;:2;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;9666:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9666:44:0;;;;9573:156;9461:282;;-1:-1:-1;9390:3:0;;9358:395;;;;9244:515;;:::o;6479:1405::-;5658:10;5733:18;;5769:16;;5761:46;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;;;;5825:9;5838:10;5825:23;5817:52;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;;;;5442:1;5430:9;;:13;:39;;;;-1:-1:-1;5447:14:0;;;;:22;;:14;:22;5430:39;5422:93;;;;-1:-1:-1;;;5422:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6684:6;;6658:33;;:21;:9;6684:6;6658:21;:13;:21;:::i;:::-;:25;:33;:25;:33;:::i;:::-;6645:9;:46;6637:76;;;;;-1:-1:-1;;;6637:76:0;;;;;;;;;;;;-1:-1:-1;;;6637:76:0;;;;;;;;;;;;;;;6746:6;;6731:9;:21;;;;:58;;;6783:6;;6769:3;;;;;;;;;-1:-1:-1;;;;;6769:3:0;-1:-1:-1;;;;;6769:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6769:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6769:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6769:13:0;:20;6756:9;:33;;6731:58;6723:101;;;;;-1:-1:-1;;;6723:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6835:45;6854:10;6866:5;6873:6;6835:18;:45::i;:::-;6911:3;;:20;;;-1:-1:-1;;;6911:20:0;;6921:9;6911:20;;;;;;6891:11;;-1:-1:-1;;;;;6911:3:0;;:9;;:20;;;;;;;;;;;;;;:3;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;6911:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6911:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6911:20:0;6967:3;;:25;;;-1:-1:-1;;;6967:25:0;;6982:9;6967:25;;;;;;6911:20;;-1:-1:-1;6942:16:0;;-1:-1:-1;;;;;6967:3:0;;;;:14;;:25;;;;;6911:20;;6967:25;;;;;;;;:3;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;6967:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6967:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6967:25:0;7066:2;;:29;;;-1:-1:-1;;;7066:29:0;;7084:10;7066:29;;;;;;6967:25;;-1:-1:-1;7004:19:0;;;;;;-1:-1:-1;;;;;7066:2:0;;;;:17;;:29;;;;;7004:19;;7066:29;;;;;;;;:2;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;7066:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7066:29:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7066:29:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;7066:29:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;7066:29:0;;420:4:-1;411:14;;;;7066:29:0;;;;;411:14:-1;7066:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7066:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;7066:29:0;;420:4:-1;411:14;;;;7066:29:0;;;;;411:14:-1;7066:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7066:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7066:29:0;;;;;;;;;;;7003:92;;-1:-1:-1;7066:29:0;-1:-1:-1;7066:29:0;;-1:-1:-1;;;;;;;;;7108:25:0;;;7105:505;;-1:-1:-1;7105:505:0;;7149:2;;;;;;;;;-1:-1:-1;;;;;7149:2:0;-1:-1:-1;;;;;7149:13:0;;7163:10;7175:9;7186:1;7189:5;7196:10;7215:3;7221;7149:76;;;;;;;;;;;;;-1:-1:-1;;;;;7149:76:0;-1:-1:-1;;;;;7149:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7149:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7149:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7149:76:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7105:505:0;;-1:-1:-1;7105:505:0;;7307:6;;7293:3;;;;;;;;;-1:-1:-1;;;;;7293:3:0;-1:-1:-1;;;;;7293:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7293:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7293:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7293:13:0;:20;7264:25;:10;7279:9;7264:25;:14;:25;:::i;:::-;:49;;7256:85;;;;;-1:-1:-1;;;7256:85:0;;;;;;;;;;;;-1:-1:-1;;;7256:85:0;;;;;;;;;;;;;;;7368:25;:10;7383:9;7368:25;:14;:25;:::i;:::-;7421:3;;:21;;;-1:-1:-1;;;7421:21:0;;;;;;;;;;7355:38;;-1:-1:-1;;;;;;7421:3:0;;;;:9;;:21;;;;;;;;;;;;;;;:3;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;7421:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7421:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7421:21:0;7476:3;;7421:21;;-1:-1:-1;;;;;;7476:3:0;:14;7491:24;:10;7506:8;7491:24;:14;:24;:::i;:::-;7476:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7476:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7476:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7476:40:0;7531:2;;:68;;;-1:-1:-1;;;7531:68:0;;7550:10;7531:68;;;;;;;;;;:2;:68;;;;;;;;;;;;;;;;;;;;:2;:68;;;;;;;;;;;;;;;;;;;;;;;;7476:40;;-1:-1:-1;;;;;;7531:2:0;;;;:18;;:68;;;;;:2;:68;;;;;;:2;;:68;;;5:2:-1;;;;30:1;27;20:12;5:2;7531:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7531:68:0;;;;7105:505;7631:2;;:52;;;-1:-1:-1;;;7631:52:0;;7646:10;7631:52;;;;7658:9;7631:52;;;;;7675:3;7631:52;;;;;7620:8;7631:52;;;;;;;;7620:8;;-1:-1:-1;;;;;7631:2:0;;:14;;:52;;;;;;;;;;;;;;;7620:8;7631:2;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;7631:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7631:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7631:52:0;7693:2;;:32;;;-1:-1:-1;;;7693:32:0;;7712:9;7693:32;;;;:2;:32;;;;;;7631:52;;-1:-1:-1;;;;;;7693:2:0;;;;:18;;:32;;;;;:2;;:32;;;;;;;;:2;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;7693:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7693:32:0;;;;7736:59;7747:6;7754:1;7747:9;;;;;;;;;7772:3;;:11;;;-1:-1:-1;;;7772:11:0;;;;-1:-1:-1;;;;;7747:9:0;;;;7758:36;;7789:4;;7758:26;;7772:3;;;;;:9;;:11;;;;;;;;;;;;;;:3;:11;;;5:2:-1;;;;30:1;27;20:12;5:2;7772:11:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7772:11:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7772:11:0;7758:9;;:26;:13;:26;:::i;7736:59::-;7849:3;7822:10;-1:-1:-1;;;;;7810:67:0;;7834:5;7841:6;7854:9;7872:3;7810:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7810:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7810:67:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7810:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5525:1;;;;;;6479:1405;;;;;:::o;280:75:1:-;317:7;342:6;-1:-1:-1;;;;;342:6:1;280:75;:::o;360:88::-;399:4;435:6;-1:-1:-1;;;;;435:6:1;421:10;:20;;360:88::o;10477:855:0:-;10581:4;5658:10;5733:18;;5769:16;;5761:46;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;-1:-1:-1;;;5761:46:0;;;;;;;;;;;;;;;5825:9;5838:10;5825:23;5817:52;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;-1:-1:-1;;;5817:52:0;;;;;;;;;;;;;;;5442:1;5430:9;;:13;:39;;;;-1:-1:-1;5447:14:0;;;;:22;;:14;:22;5430:39;5422:93;;;;-1:-1:-1;;;5422:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10610:15;;;;10609:16;10601:25;;;;;;10695:2;;:29;;;-1:-1:-1;;;10695:29:0;;10713:10;10695:29;;;;;;10642:15;;;;;;-1:-1:-1;;;;;10695:2:0;;;;:17;;:29;;;;;10642:15;;10695:29;;;;;;;;:2;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;10695:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10695:29:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;10695:29:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;10695:29:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;10695:29:0;;420:4:-1;411:14;;;;10695:29:0;;;;;411:14:-1;10695:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10695:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;10695:29:0;;420:4:-1;411:14;;;;10695:29:0;;;;;411:14:-1;10695:29:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10695:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10695:29:0;;;;;;;;;;;;;;;;;-1:-1:-1;10695:29:0;;-1:-1:-1;10695:29:0;-1:-1:-1;;10742:15:0;;;-1:-1:-1;10734:38:0;;-1:-1:-1;;;10734:38:0;;;;-1:-1:-1;;;10734:38:0;;;;;;;;;;;;-1:-1:-1;;;10734:38:0;;;;;;;;;;;;;;;10783:12;;10855:24;10864:8;10874:4;10855:8;:24::i;:::-;10835:44;;-1:-1:-1;10835:44:0;-1:-1:-1;10904:4:0;10893:15;;;;10890:414;;;10926:11;;10923:286;;10956:31;10967:10;10979:7;10956:10;:31::i;10890:414::-;11274:2;;;;;;;;;-1:-1:-1;;;;;11274:2:0;-1:-1:-1;;;;;11274:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11274:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11274:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11274:19:0;11262:31;;:9;:31;11320:5;11313:12;;;;;;;10477:855;;;:::o;5012:133:1:-;5083:4;5104:36;5112:9;5123:16;;;;;;;;;;;;;-1:-1:-1;;;5123:16:1;;;5104:7;:36::i;5272:41:0:-;:::o;5363:198:1:-;506:6;;-1:-1:-1;;;;;506:6:1;492:10;:20;484:62;;;;;-1:-1:-1;;;484:62:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;484:62:1;;;;;;;;;;;;;;;5463:9;5458:99;5482:10;:17;5478:1;:21;5458:99;;;5514:36;5536:10;5547:1;5536:13;;;;;;;;;;;;;;5514:21;:36::i;:::-;5501:3;;5458:99;;13403:168:0;506:6:1;;-1:-1:-1;;;;;506:6:1;492:10;:20;484:62;;;;;-1:-1:-1;;;484:62:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;484:62:1;;;;;;;;;;;;;;;13498:5:0;13480:6;13487:7;13480:15;;;;;;;;:23;;-1:-1:-1;;;;;13480:23:0;;;-1:-1:-1;;;;;;13480:23:0;;;;;;;13521:6;:9;13513:2;:18;;13521:9;;;13513:18;;;;;;;;;13554:9;;13541:3;:23;;13554:9;;;;13541:23;;;;;-1:-1:-1;;13403:168:0:o;12453:194::-;12525:4;5442:1;5430:9;;:13;:39;;;;-1:-1:-1;5447:14:0;;;;:22;;:14;:22;5430:39;5422:93;;;;-1:-1:-1;;;5422:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12544:2;;:24;;-1:-1:-1;;;12544:24:0;;;;;;;;;;;;;;;;;12580:1;;-1:-1:-1;;;;;12544:2:0;;:17;;12562:5;;12544:24;;;;;;;;;;;;12580:1;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12544:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12544:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12544:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12544:24:0;-1:-1:-1;;;;;12544:38:0;;12540:79;;-1:-1:-1;12604:4:0;12597:11;;12540:79;-1:-1:-1;12635:5:0;12453:194;;;:::o;1740:113:1:-;1830:17;1834:5;1841;1830:3;:17::i;:::-;1822:26;;;;;9765:377:0;9854:4;;;9905;9895:14;;;;9894:115;;9996:4;9988:21;9894:115;;;9965:2;;:19;;;-1:-1:-1;;;9965:19:0;;;;9913:72;;-1:-1:-1;;;;;9965:2:0;;:17;;:19;;;;;;;;;;;;;;:2;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;9965:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9965:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9965:19:0;9939:2;;:20;;;-1:-1:-1;;;9939:20:0;;;;9913:47;;-1:-1:-1;;;;;9939:2:0;;:18;;:20;;;;;9965:19;;9939:20;;;;;;;:2;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;9939:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9939:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9939:20:0;9921:4;9913:21;;:47;:25;:47;:::i;:::-;:51;:72;:51;:72;:::i;:::-;9879:130;;10031:7;10022:5;:16;10019:117;;10061:5;;-1:-1:-1;10068:7:0;-1:-1:-1;10053:23:0;;10019:117;10113:4;10119:5;10105:20;;;;;9765:377;;;;;;:::o;10148:323::-;-1:-1:-1;;;;;10219:19:0;;10211:28;;;;;;10258:15;;;;10257:16;10249:25;;;;;;10284:15;:22;;-1:-1:-1;;10284:22:0;10302:4;10284:22;;;10320:38;;-1:-1:-1;;;;;10320:32:0;;;:38;;;;;10353:4;;10284:15;10320:38;10284:15;10320:38;10353:4;10320:32;:38;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;10377:54:0;;;;;;;10426:3;10377:54;;;;;;;-1:-1:-1;;;;;10377:54:0;;;10399:4;;10377:54;;;;;;;;;;;-1:-1:-1;;10441:15:0;:23;;-1:-1:-1;;10441:23:0;;;10148:323::o;1931:190:1:-;2014:4;-1:-1:-1;;;;;2038:19:1;;2030:52;;;;;-1:-1:-1;;;2030:52:1;;;;;;;;;;;;-1:-1:-1;;;2030:52:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2097:19:1;:12;:19;;;;;;;;;;;;;;;1931:190::o;3711:156::-;3792:30;3812:9;3792:5;3798;3792:12;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3792:12:1;;;;;-1:-1:-1;3792:12:1;;;;;;;;;;;;-1:-1:-1;;3792:19:1;:30::i;:::-;3845:9;-1:-1:-1;;;;;3833:29:1;;3856:5;3833:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3833:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3711:156;;:::o;567:145:2:-;625:7;656:5;;;679:6;;;;671:15;;;;;57:203;115:7;138:6;134:45;;-1:-1:-1;167:1:2;160:8;;134:45;200:5;;;204:1;200;:5;:1;223:5;;;;;:10;215:19;;;;;266:144;324:7;355:1;351;:5;343:14;;;;;;367:9;383:1;379;:5;;;;;;;266:144;-1:-1:-1;;;;266:144:2:o;3438:148:1:-;3516:27;3533:9;3516:5;3522;3516:12;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3516:12:1;;;;;-1:-1:-1;3516:12:1;;;;;;;;;;;;-1:-1:-1;;3516:16:1;:27::i;:::-;3554;;;;;;;;;;;;;;;-1:-1:-1;;;;;3554:27:1;;;;;3575:5;;3554:27;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;5893:581:0;6013:2;;:25;;;-1:-1:-1;;;6013:25:0;;-1:-1:-1;;;;;6013:25:0;;;;;;;;;:2;;;;;:17;;:25;;;;;;;;;;;;;;:2;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;6013:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6013:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6013:25:0;6010:458;;6067:21;6078:5;6067:21;;;;;;;;;;;;:10;:21::i;:::-;6066:22;:64;;;;-1:-1:-1;6092:2:0;;:24;;-1:-1:-1;;;6092:24:0;;;;;;;;;;;;;;;;;6128:1;;-1:-1:-1;;;;;6092:2:0;;:17;;6110:5;;6092:24;;;;;;;;;;;;6128:1;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6092:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6092:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6092:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6092:24:0;-1:-1:-1;;;;;6092:38:0;;6066:64;6058:103;;;;;-1:-1:-1;;;6058:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6183:32;6194:6;6202:2;;;;;;;;;-1:-1:-1;;;;;6202:2:0;-1:-1:-1;;;;;6202:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6202:12:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6202:12:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;6202:12:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;6202:12:0;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;6202:12:0;;420:4:-1;411:14;;;;6202:12:0;;;;;411:14:-1;6202:12:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6202:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6183:10;:32::i;:::-;:75;;;-1:-1:-1;6219:2:0;;:25;;-1:-1:-1;;;6219:25:0;;;;;;;;;;;;;;;;;6256:1;;-1:-1:-1;;;;;6219:2:0;;:17;;6237:6;;6219:25;;;;;;;;;;;;6256:1;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6219:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6219:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6219:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6219:25:0;-1:-1:-1;;;;;6219:39:0;;;6183:75;6175:111;;;;;-1:-1:-1;;;6175:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6308:2;;:25;;-1:-1:-1;;;6308:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6308:35:0;;;;:2;;:17;;6326:6;;6308:25;;;;;;;;;;;;:2;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6308:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6308:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6308:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6308:25:0;-1:-1:-1;;;;;6308:35:0;;;6300:72;;;;;-1:-1:-1;;;6300:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6418:2;;:39;;-1:-1:-1;;;6418:39:0;;-1:-1:-1;;;;;6418:39:0;;;;;;;;;:2;:39;;;;;;;;;;;;;;;;;;;;;:2;;;;;:13;;6432:6;;6440:5;;6447:6;;6418:2;:39;;;;;;;;;;;;;;;;;;:2;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6418:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6418:39:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6418:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6418:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6418:39:0;;;;5893:581;;;:::o;416:145:2:-;474:7;506:1;501;:6;;493:15;;;;;;-1:-1:-1;530:5:2;;;416:145::o;1499:165:1:-;1581:17;1585:5;1592;1581:3;:17::i;:::-;1573:51;;;;;-1:-1:-1;;;1573:51:1;;;;;;;;;;;;-1:-1:-1;;;1573:51:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;1632:19:1;1654:5;1632:19;;;;;;;;;;;:27;;-1:-1:-1;;1632:27:1;;;1499:165::o;1273:161::-;1352:17;1356:5;1363;1352:3;:17::i;:::-;1351:18;1343:52;;;;;-1:-1:-1;;;1343:52:1;;;;;;;;;;;;-1:-1:-1;;;1343:52:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;1403:19:1;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;1403:26:1;1425:4;1403:26;;;1273:161::o;758:293::-;841:4;857:18;878:5;857:26;;961:5;944:23;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;944:23:1;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;944:23:1;;;934:34;;;;;;923:5;906:23;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;906:23:1;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;906:23:1;;;896:34;;;;;;:72;893:122;;;-1:-1:-1;1000:4:1;;758:293;-1:-1:-1;;;758:293:1:o;4282:9291:0:-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;4282:9291:0;;;-1:-1:-1;;4282:9291:0:o

Swarm Source

bzzr://a3b4a83f0d4688dc2a11470307f3726439ea9c231a7f98f6c1d8cebfc56292c7

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.