MATIC Price: $1.02 (+0.19%)
Gas: 89 GWei
 

Overview

MATIC Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 MATIC

MATIC Value

$0.00

Token Holdings

Sponsored

Transaction Hash
Method
Block
From
To
Value
Play121785262021-03-18 20:56:481105 days ago1616101008IN
0xE7AEF21f...87947E2aa
0 MATIC0.000207661
Play121785232021-03-18 20:56:421105 days ago1616101002IN
0xE7AEF21f...87947E2aa
0 MATIC0.000207661
Play121784042021-03-18 20:51:421105 days ago1616100702IN
0xE7AEF21f...87947E2aa
0 MATIC0.000029261
Play121784032021-03-18 20:51:381105 days ago1616100698IN
0xE7AEF21f...87947E2aa
0 MATIC0.000029261
Play120965412021-03-16 18:46:541107 days ago1615920414IN
0xE7AEF21f...87947E2aa
0 MATIC0.000249461
Play120965342021-03-16 18:46:401107 days ago1615920400IN
0xE7AEF21f...87947E2aa
0 MATIC0.000204421
Play120965272021-03-16 18:46:261107 days ago1615920386IN
0xE7AEF21f...87947E2aa
0 MATIC0.000204521
Play120965202021-03-16 18:46:121107 days ago1615920372IN
0xE7AEF21f...87947E2aa
0 MATIC0.000204421
Play120965132021-03-16 18:45:581107 days ago1615920358IN
0xE7AEF21f...87947E2aa
0 MATIC0.00019371
Play120965082021-03-16 18:45:441107 days ago1615920344IN
0xE7AEF21f...87947E2aa
0 MATIC0.000249421
Play120965042021-03-16 18:45:361107 days ago1615920336IN
0xE7AEF21f...87947E2aa
0 MATIC0.000204521
Play120965012021-03-16 18:45:301107 days ago1615920330IN
0xE7AEF21f...87947E2aa
0 MATIC0.000193661
Play120964942021-03-16 18:45:161107 days ago1615920316IN
0xE7AEF21f...87947E2aa
0 MATIC0.000249371
Play120964902021-03-16 18:45:081107 days ago1615920308IN
0xE7AEF21f...87947E2aa
0 MATIC0.000193621
Play120964842021-03-16 18:44:561107 days ago1615920296IN
0xE7AEF21f...87947E2aa
0 MATIC0.000249371
Play120964802021-03-16 18:44:481107 days ago1615920288IN
0xE7AEF21f...87947E2aa
0 MATIC0.000204421
Play120964772021-03-16 18:44:421107 days ago1615920282IN
0xE7AEF21f...87947E2aa
0 MATIC0.000193621
Play120964732021-03-16 18:44:341107 days ago1615920274IN
0xE7AEF21f...87947E2aa
0 MATIC0.000234371
Play120964712021-03-16 18:44:301107 days ago1615920270IN
0xE7AEF21f...87947E2aa
0 MATIC0.000226461
Play120964702021-03-16 18:44:281107 days ago1615920268IN
0xE7AEF21f...87947E2aa
0 MATIC0.000230261
Play120964632021-03-16 18:44:141107 days ago1615920254IN
0xE7AEF21f...87947E2aa
0 MATIC0.000249461
Play120964592021-03-16 18:44:061107 days ago1615920246IN
0xE7AEF21f...87947E2aa
0 MATIC0.000204511
Play120964562021-03-16 18:44:001107 days ago1615920240IN
0xE7AEF21f...87947E2aa
0 MATIC0.000200221
Play120964562021-03-16 18:44:001107 days ago1615920240IN
0xE7AEF21f...87947E2aa
0 MATIC0.000196441
Play120964522021-03-16 18:43:521107 days ago1615920232IN
0xE7AEF21f...87947E2aa
0 MATIC0.000204471
View all transactions

Parent Txn Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
dgRoulette

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-06-10
*/

// SPDX-License-Identifier: -- 🎲 --

pragma solidity ^0.7.5;

// Roulette Logic Contract ///////////////////////////////////////////////////////////
// Author: Decentral Games ([email protected]) ///////////////////////////////////////
// Roulette - MultiPlayer - TokenIndex 3.0

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, 'SafeMath: addition overflow');
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, 'SafeMath: subtraction overflow');
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, 'SafeMath: multiplication overflow');
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, 'SafeMath: division by zero');
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, 'SafeMath: modulo by zero');
        return a % b;
    }
}

contract AccessController {

    address public ceoAddress;
    address public workerAddress;

    bool public paused = false;

    // mapping (address => enumRoles) accessRoles; // multiple operators idea

    event CEOSet(address newCEO);
    event WorkerSet(address newWorker);

    event Paused();
    event Unpaused();

    constructor() {
        ceoAddress = msg.sender;
        workerAddress = msg.sender;
        emit CEOSet(ceoAddress);
        emit WorkerSet(workerAddress);
    }

    modifier onlyCEO() {
        require(
            msg.sender == ceoAddress,
            'AccessControl: CEO access denied'
        );
        _;
    }

    modifier onlyWorker() {
        require(
            msg.sender == workerAddress,
            'AccessControl: worker access denied'
        );
        _;
    }

    modifier whenNotPaused() {
        require(
            !paused,
            'AccessControl: currently paused'
        );
        _;
    }

    modifier whenPaused {
        require(
            paused,
            'AccessControl: currenlty not paused'
        );
        _;
    }

    function setCEO(address _newCEO) public onlyCEO {
        require(
            _newCEO != address(0x0),
            'AccessControl: invalid CEO address'
        );
        ceoAddress = _newCEO;
        emit CEOSet(ceoAddress);
    }

    function setWorker(address _newWorker) external {
        require(
            _newWorker != address(0x0),
            'AccessControl: invalid worker address'
        );
        require(
            msg.sender == ceoAddress || msg.sender == workerAddress,
            'AccessControl: invalid worker address'
        );
        workerAddress = _newWorker;
        emit WorkerSet(workerAddress);
    }

    function pause() external onlyWorker whenNotPaused {
        paused = true;
        emit Paused();
    }

    function unpause() external onlyCEO whenPaused {
        paused = false;
        emit Unpaused();
    }
}

interface TreasuryInstance {

    function getTokenAddress(
        uint8 _tokenIndex
    ) external view returns (address);

    function tokenInboundTransfer(
        uint8 _tokenIndex,
        address _from,
        uint256 _amount
    )  external returns (bool);

    function tokenOutboundTransfer(
        uint8 _tokenIndex,
        address _to,
        uint256 _amount
    ) external returns (bool);

    function checkAllocatedTokens(
        uint8 _tokenIndex
    ) external view returns (uint256);

    function checkApproval(
        address _userAddress,
        uint8 _tokenIndex
    ) external view returns (uint256 approved);

    function getMaximumBet(
        uint8 _tokenIndex
    ) external view returns (uint128);

    function consumeHash(
        bytes32 _localhash
    ) external returns (bool);
}

interface PointerInstance {

    function addPoints(
        address _player,
        uint256 _points,
        address _token,
        uint256 _numPlayers,
        uint256 _wearableBonus
    ) external returns (
        uint256 newPoints,
        uint256 multiplierA,
        uint256 multiplierB
    );

    function addPoints(
        address _player,
        uint256 _points,
        address _token,
        uint256 _numPlayers
    ) external returns (
        uint256 newPoints,
        uint256 multiplierA,
        uint256 multiplierB
    );

    function addPoints(
        address _player,
        uint256 _points,
        address _token
    ) external returns (
        uint256 newPoints,
        uint256 multiplierA,
        uint256 multiplierB
    );
}

contract dgRoulette is AccessController {

    using SafeMath for uint128;
    using SafeMath for uint256;

    uint256 private store;
    uint256 public pointsCap;

    enum BetType { Single, EvenOdd, RedBlack, HighLow, Column, Dozen }

    mapping (address => uint) public totalBets;
    mapping (address => uint) public totalPayout;

    mapping (uint => uint) public maxSquareBets;
    mapping (uint => mapping (uint => mapping (uint => uint))) public currentBets;

    Bet[] public bets;
    uint256[] winAmounts;

    struct Bet {
        address player;
        uint8 betType;
        uint8 number;
        uint8 tokenIndex;
        uint128 value;
    }

    event GameResult(
        address[] _players,
        uint8[] _tokenIndex,
        uint256 indexed _landID,
        uint256 indexed _number,
        uint256 indexed _machineID,
        uint256[] _winAmounts
    );

    TreasuryInstance public treasury;
    PointerInstance public pointerContract;

    constructor(
        address _treasuryAddress,
        uint128 _maxSquareBetDefault,
        uint8 _maxNumberBets,
        address _pointerAddress
    ) {
        treasury = TreasuryInstance(_treasuryAddress);
        store |= _maxNumberBets<<0;
        store |= _maxSquareBetDefault<<8;
        store |= block.timestamp<<136;
        pointerContract = PointerInstance(_pointerAddress);
        pointsCap = 2;
    }

    function addPoints(
        address _player,
        uint256 _points,
        address _token,
        uint256 _numPlayers,
        uint256 _wearableBonus
    )
        private
    {
        pointerContract.addPoints(
            _player,
            _points,
            _token,
            _numPlayers,
            _wearableBonus
        );
    }

    function bet(
        address _player,
        uint8 _betType,
        uint8 _number,
        uint8 _tokenIndex,
        uint128 _value
    )
        internal
    {
        currentBets[_tokenIndex][_betType][_number] += _value;

        uint256 _maxSquareBet = maxSquareBets[_tokenIndex] == 0
            ? uint128(store>>8)
            : maxSquareBets[_tokenIndex];

        require(
            currentBets[_tokenIndex][_betType][_number] <= _maxSquareBet,
            'Roulette: exceeding maximum bet limit'
        );

        bets.push(Bet({
            player: _player,
            betType: _betType,
            number: _number,
            tokenIndex: _tokenIndex,
            value: _value
        }));
    }

    function _launch(
        bytes32 _localhash,
        address[] memory _players,
        uint8[] memory _tokenIndex,
        uint256 _landID,
        uint256 _machineID
    )
        private
        returns(
            uint256[] memory,
            uint256 number
        )
    {
        // require(block.timestamp > store>>136, 'Roulette: expired round');
        require(bets.length > 0, 'Roulette: must have bets');

        delete winAmounts;

        store ^= (store>>136)<<136;
        store |= block.timestamp<<136;

        number = uint(
            keccak256(
                abi.encodePacked(_localhash)
            )
        ) % 37;

        for (uint i = 0; i < bets.length; i++) {
            bool won = false;
            Bet memory b = bets[i];
            if (b.betType == uint(BetType.Single) && b.number == number) {
                won = true;
            } else if (b.betType == uint(BetType.EvenOdd) && number <= 36) {
                if (number > 0 && number % 2 == b.number) {
                    won = true;
                }
            } else if (b.betType == uint(BetType.RedBlack) && b.number == 0) {
                if ((number > 0 && number <= 10) || (number >= 19 && number <= 28)) {
                    won = (number % 2 == 1);
                } else {
                    if (number > 0 && number <= 36) {
                        won = (number % 2 == 0);
                    }
                }
            } else if (b.betType == uint(BetType.RedBlack) && b.number == 1) {
                if ((number > 0 && number <= 10) || (number >= 19 && number <= 28)) {
                    won = (number % 2 == 0);
                } else {
                    if (number > 0 && number <= 36) {
                        won = (number % 2 == 1);
                    }
                }
            } else if (b.betType == uint(BetType.HighLow) && number <= 36) {
                if (number >= 19 && b.number == 0) {
                    won = true;
                }
                if (number > 0 && number <= 18 && b.number == 1) {
                    won = true;
                }
            } else if (b.betType == uint(BetType.Column) && number <= 36) {
                if (b.number == 0 && number > 0) won = (number % 3 == 1);
                if (b.number == 1 && number > 0) won = (number % 3 == 2);
                if (b.number == 2 && number > 0) won = (number % 3 == 0);
            } else if (b.betType == uint(BetType.Dozen) && number <= 36) {
                if (b.number == 0) won = (number > 0 && number <= 12);
                if (b.number == 1) won = (number > 12 && number <= 24);
                if (b.number == 2) won = (number > 24 && number <= 36);
            }

            if (won) {
                uint256 betWin = b.value.mul(
                    getPayoutForType(b.betType, b.number)
                );
                winAmounts.push(betWin);
            } else {
                winAmounts.push(0);
            }
            currentBets[b.tokenIndex][b.betType][b.number] = 0;
        }

        delete bets;

        emit GameResult(
            _players,
            _tokenIndex,
            _landID,
            number,
            _machineID,
            winAmounts
        );

        return(
            winAmounts,
            number
        );
    }

    function play(
        address[] memory _players,
        uint256 _landID,
        uint256 _machineID,
        uint8[] memory _betIDs,
        uint8[] memory _betValues,
        uint128[] memory _betAmount,
        bytes32 _localhash,
        uint8[] memory _tokenIndex,
        uint8 _playerCount,
        uint8[] memory _wearableBonus
    )
        public
        whenNotPaused
        onlyWorker
    {
        require(
            _betIDs.length == _betValues.length,
            'Roulette: inconsistent amount of betsValues'
        );

        require(
            _tokenIndex.length == _betAmount.length,
            'Roulette: inconsistent amount of betAmount'
        );

        require(
            _betValues.length == _tokenIndex.length,
            'Roulette: inconsistent amount of tokenIndex'
        );

        require(
            _betIDs.length <= uint8(store>>0),
            'Roulette: maximum amount of bets reached'
        );

        /* treasury.consumeHash(
            _localhash
        );*/

        bool[5] memory checkedTokens;
        uint8 i;

        for (i = 0; i < _betIDs.length; i++) {

            require(
                treasury.getMaximumBet(_tokenIndex[i]) >= _betAmount[i],
                'Roulette: bet amount is more than maximum'
            );

            treasury.tokenInboundTransfer(
                _tokenIndex[i],
                _players[i],
                _betAmount[i]
            );

            bet(
                _players[i],
                _betIDs[i],
                _betValues[i],
                _tokenIndex[i],
                _betAmount[i]
            );

            if (!checkedTokens[_tokenIndex[i]]) {
                uint256 tokenFunds = treasury.checkAllocatedTokens(_tokenIndex[i]);
                require(
                    getNecessaryBalance(_tokenIndex[i]) <= tokenFunds,
                    'Roulette: not enough tokens for payout'
                );
                checkedTokens[_tokenIndex[i]] = true;
            }
        }

        uint256 _spinResult;
        (winAmounts, _spinResult) = _launch(
            _localhash,
            _players,
            _tokenIndex,
            _landID,
            _machineID
        );

        // payout && points preparation
        for (i = 0; i < winAmounts.length; i++) {
            if (winAmounts[i] > 0) {
                treasury.tokenOutboundTransfer(
                    _tokenIndex[i],
                    _players[i],
                    winAmounts[i]
                );
                // collecting totalPayout
                totalPayout[_players[i]] =
                totalPayout[_players[i]] + winAmounts[i];
            }
            totalBets[_players[i]] =
            totalBets[_players[i]] + _betAmount[i];
        }

        // point calculation && bonus
        for (i = 0; i < _players.length; i++) {
            _issuePointsAmount(
                _players[i],
                _tokenIndex[i],
                _playerCount,
                _wearableBonus[i]
            );
        }
    }

    function changeCap(
        uint256 _newPointsCap
    )
        external
        onlyCEO
    {
        pointsCap = _newPointsCap;
    }

    function _issuePointsAmount(
        address _player,
        uint8 _tokenIndex,
        uint256 _playerCount,
        uint256 _wearableBonus
    ) private {
        if (totalPayout[_player] > totalBets[_player]) {

            uint256 points = totalPayout[_player].sub(totalBets[_player]);
            uint256 limits = totalBets[_player].mul(pointsCap);

            points = points > limits
                ? limits
                : points;

            addPoints(
                _player,
                points,
                treasury.getTokenAddress(_tokenIndex),
                _playerCount,
                _wearableBonus
            );
        }
        else if (totalPayout[_player] < totalBets[_player]) {
            addPoints(
                _player,
                totalBets[_player].sub(totalPayout[_player]),
                treasury.getTokenAddress(_tokenIndex),
                _playerCount,
                _wearableBonus
            );
        }
        totalBets[_player] = 0;
        totalPayout[_player] = 0;
    }

    function getPayoutForType(
        uint256 _betType,
        uint256 _betNumber
    )
        public
        pure
        returns(uint256)
    {
        if (_betType == uint8(BetType.Single))
            return _betNumber > 36 ? 0 : 36;
        if (_betType == uint8(BetType.EvenOdd))
            return _betNumber > 1 ? 0 : 2;
        if (_betType == uint8(BetType.RedBlack))
            return _betNumber > 1 ? 0 : 2;
        if (_betType == uint8(BetType.HighLow))
            return _betNumber > 1 ? 0 : 2;
        if (_betType == uint8(BetType.Column))
            return _betNumber > 2 ? 0 : 3;
        if (_betType == uint8(BetType.Dozen))
            return _betNumber > 2 ? 0 : 3;

        return 0;
    }

    function getNecessaryBalance(
        uint256 _tokenIndex
    )
        public
        view
        returns (uint256 _necessaryBalance)
    {
        uint256 _necessaryForBetType;
        uint256[6] memory betTypesMax;

        for (uint8 _i = 0; _i < bets.length; _i++) {
            Bet memory b = bets[_i];
            if (b.tokenIndex == _tokenIndex) {

                uint256 _payout = getPayoutForType(b.betType, b.number);
                uint256 _square = currentBets[b.tokenIndex][b.betType][b.number];

                require(
                    _payout > 0,
                    'Roulette: incorrect bet type/value'
                );

                _necessaryForBetType = _square.mul(_payout);

                if (_necessaryForBetType > betTypesMax[b.betType]) {
                    betTypesMax[b.betType] = _necessaryForBetType;
                }
            }
        }

        for (uint8 _i = 0; _i < betTypesMax.length; _i++) {
            _necessaryBalance = _necessaryBalance.add(
                betTypesMax[_i]
            );
        }
    }

    function getBetsCountAndValue()
        external
        view
        returns(uint value, uint)
    {
        for (uint i = 0; i < bets.length; i++) {
            value += bets[i].value;
        }

        return (bets.length, value);
    }

    function getBetsCount()
        external
        view
        returns (uint256)
    {
        return bets.length;
    }

    function changeMaxSquareBet(
        uint256 _tokenIndex,
        uint256 _newMaxSquareBet
    )
        external
        onlyCEO
    {
        maxSquareBets[_tokenIndex] = _newMaxSquareBet;
    }

    function changeMaxSquareBetDefault(
        uint128 _newMaxSquareBetDefault
    )
        external
        onlyCEO
    {
        store ^= uint128((store>>8))<<8;
        store |= _newMaxSquareBetDefault<<8;
    }

    function changeMaximumBetAmount(
        uint8 _newMaximumBetAmount
    )
        external
        onlyCEO
    {
        store ^= uint8(store)<<0;
        store |= _newMaximumBetAmount<<0;
    }

    function changeTreasury(
        address _newTreasuryAddress
    )
        external
        onlyCEO
    {
        treasury = TreasuryInstance(
            _newTreasuryAddress
        );
    }

    function getNextRoundTimestamp()
        external
        view
        returns(uint)
    {
        return store>>136;
    }

    function checkMaximumBetAmount()
        external
        view
        returns (uint8)
    {
        return uint8(store>>0);
    }

    function checkMaxSquareBetDefault()
        external
        view
        returns (uint128)
    {
        return uint128(store>>8);
    }

    function updatePointer(
        address _newPointerAddress
    )
        external
        onlyCEO
    {
        pointerContract = PointerInstance(
            _newPointerAddress
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_treasuryAddress","type":"address"},{"internalType":"uint128","name":"_maxSquareBetDefault","type":"uint128"},{"internalType":"uint8","name":"_maxNumberBets","type":"uint8"},{"internalType":"address","name":"_pointerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newCEO","type":"address"}],"name":"CEOSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"_players","type":"address[]"},{"indexed":false,"internalType":"uint8[]","name":"_tokenIndex","type":"uint8[]"},{"indexed":true,"internalType":"uint256","name":"_landID","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_number","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_machineID","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"_winAmounts","type":"uint256[]"}],"name":"GameResult","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWorker","type":"address"}],"name":"WorkerSet","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bets","outputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint8","name":"betType","type":"uint8"},{"internalType":"uint8","name":"number","type":"uint8"},{"internalType":"uint8","name":"tokenIndex","type":"uint8"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ceoAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPointsCap","type":"uint256"}],"name":"changeCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenIndex","type":"uint256"},{"internalType":"uint256","name":"_newMaxSquareBet","type":"uint256"}],"name":"changeMaxSquareBet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_newMaxSquareBetDefault","type":"uint128"}],"name":"changeMaxSquareBetDefault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newMaximumBetAmount","type":"uint8"}],"name":"changeMaximumBetAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTreasuryAddress","type":"address"}],"name":"changeTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkMaxSquareBetDefault","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaximumBetAmount","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"currentBets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBetsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBetsCountAndValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenIndex","type":"uint256"}],"name":"getNecessaryBalance","outputs":[{"internalType":"uint256","name":"_necessaryBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextRoundTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_betType","type":"uint256"},{"internalType":"uint256","name":"_betNumber","type":"uint256"}],"name":"getPayoutForType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"maxSquareBets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_players","type":"address[]"},{"internalType":"uint256","name":"_landID","type":"uint256"},{"internalType":"uint256","name":"_machineID","type":"uint256"},{"internalType":"uint8[]","name":"_betIDs","type":"uint8[]"},{"internalType":"uint8[]","name":"_betValues","type":"uint8[]"},{"internalType":"uint128[]","name":"_betAmount","type":"uint128[]"},{"internalType":"bytes32","name":"_localhash","type":"bytes32"},{"internalType":"uint8[]","name":"_tokenIndex","type":"uint8[]"},{"internalType":"uint8","name":"_playerCount","type":"uint8"},{"internalType":"uint8[]","name":"_wearableBonus","type":"uint8[]"}],"name":"play","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pointerContract","outputs":[{"internalType":"contract PointerInstance","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pointsCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newCEO","type":"address"}],"name":"setCEO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWorker","type":"address"}],"name":"setWorker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalBets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalPayout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"contract TreasuryInstance","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newPointerAddress","type":"address"}],"name":"updatePointer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"workerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526000600160146101000a81548160ff02191690831515021790555034801561002b57600080fd5b506040516143443803806143448339818101604052608081101561004e57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff97cbb4246b709036319093e5ff31674b9f6759076d153e1bea1f60392170fc060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f54841e992da2f7bcaa3127409f02e1849c79072740593c398d6670f65f995fa7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a183600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008260ff16901b60ff166002600082825417925050819055506008836fffffffffffffffffffffffffffffffff16901b6fffffffffffffffffffffffffffffffff16600260008282541792505081905550608842901b60026000828254179250508190555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260038190555050505050614067806102dd6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063625c3a5f11610104578063b633b2ab116100a2578063cbd88f4811610071578063cbd88f4814610b00578063dca4d1a514610b34578063dcdfe3e814610b76578063ef37cfe914610b97576101cf565b8063b633b2ab146109f0578063bde0489014610a0e578063c26f6d4414610a64578063ca43134114610aa8576101cf565b80638456cb59116100de5780638456cb59146109665780638c7e347a146109705780639eb9a1061461098e578063b14f2a39146109ac576101cf565b8063625c3a5f146108c55780636a5f3d5e146108f6578063800edb9d14610938576101cf565b80633f4ba83a11610171578063524b1bbf1161014b578063524b1bbf146107f95780635c975abb146108315780635ccc53021461085157806361d027b314610891576101cf565b80633f4ba83a146103f357806342fc40c2146103fd57806350bfba99146107c5576101cf565b806327d7874c116101ad57806327d7874c146102ef57806329dd3c9c146103335780633025d9e21461037f5780633a7c48d6146103c3576101cf565b80630a0f8168146101d45780630ab5cb641461020857806322af00fa14610260575b600080fd5b6101dc610bbc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61024a6004803603602081101561021e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610be0565b6040518082815260200191505060405180910390f35b61028c6004803603602081101561027657600080fd5b8101908080359060200190929190505050610bf8565b604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018560ff1681526020018460ff1681526020018360ff168152602001826fffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390f35b6103316004803603602081101561030557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ca1565b005b6103696004803603604081101561034957600080fd5b810190808035906020019092919080359060200190929190505050610e98565b6040518082815260200191505060405180910390f35b6103c16004803603602081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd5565b005b6103cb6110da565b60405180826fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103fb6110e8565b005b6107c3600480360361014081101561041457600080fd5b810190808035906020019064010000000081111561043157600080fd5b82018360208201111561044357600080fd5b8035906020019184602083028401116401000000008311171561046557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803590602001906401000000008111156104d957600080fd5b8201836020820111156104eb57600080fd5b8035906020019184602083028401116401000000008311171561050d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561056d57600080fd5b82018360208201111561057f57600080fd5b803590602001918460208302840111640100000000831117156105a157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561060157600080fd5b82018360208201111561061357600080fd5b8035906020019184602083028401116401000000008311171561063557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291908035906020019064010000000081111561069f57600080fd5b8201836020820111156106b157600080fd5b803590602001918460208302840111640100000000831117156106d357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291908035906020019064010000000081111561074057600080fd5b82018360208201111561075257600080fd5b8035906020019184602083028401116401000000008311171561077457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611257565b005b6107cd611d7d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61082f6004803603604081101561080f57600080fd5b810190808035906020019092919080359060200190929190505050611da3565b005b610839611e80565b60405180821515815260200191505060405180910390f35b61088f6004803603602081101561086757600080fd5b8101908080356fffffffffffffffffffffffffffffffff169060200190929190505050611e93565b005b610899611fcc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108f4600480360360208110156108db57600080fd5b81019080803560ff169060200190929190505050611ff2565b005b6109226004803603602081101561090c57600080fd5b81019080803590602001909291905050506120ec565b6040518082815260200191505060405180910390f35b6109646004803603602081101561094e57600080fd5b81019080803590602001909291905050506123b1565b005b61096e61247c565b005b6109786125ed565b6040518082815260200191505060405180910390f35b6109966125fa565b6040518082815260200191505060405180910390f35b6109ee600480360360208110156109c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612600565b005b6109f8612705565b6040518082815260200191505060405180910390f35b610a4e60048036036060811015610a2457600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050612713565b6040518082815260200191505060405180910390f35b610aa660048036036020811015610a7a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612745565b005b610aea60048036036020811015610abe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061297a565b6040518082815260200191505060405180910390f35b610b08612992565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b6060048036036020811015610b4a57600080fd5b81019080803590602001909291905050506129b8565b6040518082815260200191505060405180910390f35b610b7e6129d0565b604051808260ff16815260200191505060405180910390f35b610b9f6129dd565b604051808381526020018281526020019250505060405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b60088181548110610c0857600080fd5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16908060000160159054906101000a900460ff16908060000160169054906101000a900460ff16908060010160009054906101000a90046fffffffffffffffffffffffffffffffff16905085565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613f336022913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff97cbb4246b709036319093e5ff31674b9f6759076d153e1bea1f60392170fc060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000806005811115610ea657fe5b60ff16831415610ecc5760248211610ebf576024610ec2565b60005b60ff169050610fcf565b60016005811115610ed957fe5b60ff16831415610eff5760018211610ef2576002610ef5565b60005b60ff169050610fcf565b60026005811115610f0c57fe5b60ff16831415610f325760018211610f25576002610f28565b60005b60ff169050610fcf565b60036005811115610f3f57fe5b60ff16831415610f655760018211610f58576002610f5b565b60005b60ff169050610fcf565b60046005811115610f7257fe5b60ff16831415610f985760028211610f8b576003610f8e565b60005b60ff169050610fcf565b600580811115610fa457fe5b60ff16831415610fca5760028211610fbd576003610fc0565b60005b60ff169050610fcf565b600090505b92915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006008600254901c905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b600160149054906101000a900460ff1661120e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613fc26023913960400191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693360405160405180910390a1565b600160149054906101000a900460ff16156112da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416363657373436f6e74726f6c3a2063757272656e746c79207061757365640081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611380576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613f556023913960400191505060405180910390fd5b85518751146113da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f08602b913960400191505060405180910390fd5b8451835114611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613ede602a913960400191505060405180910390fd5b825186511461148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613eb3602b913960400191505060405180910390fd5b6000600254901c60ff16875111156114f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061400a6028913960400191505060405180910390fd5b6114f9613cb5565b60005b88518160ff1610156119c257868160ff168151811061151757fe5b60200260200101516fffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166371da23e9878460ff168151811061157e57fe5b60200260200101516040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b1580156115bd57600080fd5b505afa1580156115d1573d6000803e3d6000fd5b505050506040513d60208110156115e757600080fd5b81019080805190602001909291905050506fffffffffffffffffffffffffffffffff161015611661576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613f996029913960400191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341d4c74f868360ff16815181106116ae57fe5b60200260200101518e8460ff16815181106116c557fe5b60200260200101518a8560ff16815181106116dc57fe5b60200260200101516040518463ffffffff1660e01b8152600401808460ff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561175357600080fd5b505af1158015611767573d6000803e3d6000fd5b505050506040513d602081101561177d57600080fd5b81019080805190602001909291905050505061180a8c8260ff16815181106117a157fe5b60200260200101518a8360ff16815181106117b857fe5b60200260200101518a8460ff16815181106117cf57fe5b6020026020010151888560ff16815181106117e657fe5b60200260200101518b8660ff16815181106117fd57fe5b6020026020010151612a5e565b81858260ff168151811061181a57fe5b602002602001015160ff166005811061182f57fe5b60200201516119b5576000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c70620b5878460ff168151811061188757fe5b60200260200101516040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b1580156118c657600080fd5b505afa1580156118da573d6000803e3d6000fd5b505050506040513d60208110156118f057600080fd5b8101908080519060200190929190505050905080611926878460ff168151811061191657fe5b602002602001015160ff166120ec565b111561197d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613e6b6026913960400191505060405180910390fd5b600183878460ff168151811061198f57fe5b602002602001015160ff16600581106119a457fe5b602002019015159081151581525050505b80806001019150506114fc565b60006119d1878e888f8f612d20565b600960008294508391905090805190602001906119ef929190613cd7565b505050600091505b6009805490508260ff161015611cfc57600060098360ff1681548110611a1957fe5b90600052602060002001541115611c1657600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331297992878460ff1681518110611a7757fe5b60200260200101518f8560ff1681518110611a8e57fe5b602002602001015160098660ff1681548110611aa657fe5b90600052602060002001546040518463ffffffff1660e01b8152600401808460ff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b0e57600080fd5b505af1158015611b22573d6000803e3d6000fd5b505050506040513d6020811015611b3857600080fd5b81019080805190602001909291905050505060098260ff1681548110611b5a57fe5b9060005260206000200154600560008f8560ff1681518110611b7857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600560008f8560ff1681518110611bcf57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b878260ff1681518110611c2557fe5b60200260200101516fffffffffffffffffffffffffffffffff16600460008f8560ff1681518110611c5257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600460008f8560ff1681518110611ca957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081806001019250506119f7565b600091505b8c518260ff161015611d6e57611d618d8360ff1681518110611d1f57fe5b6020026020010151878460ff1681518110611d3657fe5b60200260200101518760ff16878660ff1681518110611d5157fe5b602002602001015160ff16613557565b8180600101925050611d01565b50505050505050505050505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b8060066000848152602001908152602001600020819055505050565b600160149054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b600880600254901c6fffffffffffffffffffffffffffffffff16901b6fffffffffffffffffffffffffffffffff166002600082825418925050819055506008816fffffffffffffffffffffffffffffffff16901b6fffffffffffffffffffffffffffffffff1660026000828254179250508190555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b600060025460ff16901b60ff1660026000828254189250508190555060008160ff16901b60ff1660026000828254179250508190555050565b6000806120f7613d24565b60005b6008805490508160ff16101561236457600060088260ff168154811061211c57fe5b90600052602060002090600202016040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900460ff1660ff1660ff1681526020016000820160159054906101000a900460ff1660ff1660ff1681526020016000820160169054906101000a900460ff1660ff1660ff1681526020016001820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905085816060015160ff161415612356576000612257826020015160ff16836040015160ff16610e98565b9050600060076000846060015160ff1681526020019081526020016000206000846020015160ff1681526020019081526020016000206000846040015160ff16815260200190815260200160002054905060008211612301576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e916022913960400191505060405180910390fd5b6123148282613a0490919063ffffffff16565b955084836020015160ff166006811061232957fe5b6020020151861115612353578585846020015160ff166006811061234957fe5b6020020181815250505b50505b5080806001019150506120fa565b5060005b60068160ff1610156123a95761239a828260ff166006811061238657fe5b602002015185613a8a90919063ffffffff16565b93508080600101915050612368565b505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612472576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b8060038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612522576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613f556023913960400191505060405180910390fd5b600160149054906101000a900460ff16156125a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416363657373436f6e74726f6c3a2063757272656e746c79207061757365640081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75260405160405180910390a1565b6000600880549050905090565b60035481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006088600254901c905090565b600760205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613e466025913960400191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806128725750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6128c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613e466025913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f54841e992da2f7bcaa3127409f02e1849c79072740593c398d6670f65f995fa7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60056020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090505481565b600080600254901c905090565b60008060005b600880549050811015612a4e57600881815481106129fd57fe5b906000526020600020906002020160010160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168301925080806001019150506129e3565b5060088054905082915091509091565b806fffffffffffffffffffffffffffffffff16600760008460ff16815260200190815260200160002060008660ff16815260200190815260200160002060008560ff16815260200190815260200160002060008282540192505081905550600080600660008560ff1681526020019081526020016000205414612af757600660008460ff16815260200190815260200160002054612b11565b6008600254901c6fffffffffffffffffffffffffffffffff165b905080600760008560ff16815260200190815260200160002060008760ff16815260200190815260200160002060008660ff168152602001908152602001600020541115612baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613fe56025913960400191505060405180910390fd5b60086040518060a001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018760ff1681526020018660ff1681526020018560ff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff021916908360ff16021790555060408201518160000160156101000a81548160ff021916908360ff16021790555060608201518160000160166101000a81548160ff021916908360ff16021790555060808201518160010160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b606060008060088054905011612d9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f526f756c657474653a206d75737420686176652062657473000000000000000081525060200191505060405180910390fd5b60096000612dac9190613d46565b608880600254901c901b600260008282541892505081905550608842901b600260008282541792505081905550602587604051602001808281526020019150506040516020818303038152906040528051906020012060001c81612e0c57fe5b06905060005b6008805490508110156133da5760008060088381548110612e2f57fe5b90600052602060002090600202016040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900460ff1660ff1660ff1681526020016000820160159054906101000a900460ff1660ff1660ff1681526020016000820160169054906101000a900460ff1660ff1660ff1681526020016001820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060006005811115612f4e57fe5b816020015160ff16148015612f69575083816040015160ff16145b15612f7757600191506132d7565b60016005811115612f8457fe5b816020015160ff16148015612f9a575060248411155b15612fce57600084118015612fbf5750806040015160ff1660028581612fbc57fe5b06145b15612fc957600191505b6132d6565b60026005811115612fdb57fe5b816020015160ff16148015612ff757506000816040015160ff16145b1561306d5760008411801561300d5750600a8411155b806130265750601384101580156130255750601c8411155b5b156130405760016002858161303757fe5b06149150613068565b600084118015613051575060248411155b156130675760006002858161306257fe5b061491505b5b6132d5565b6002600581111561307a57fe5b816020015160ff1614801561309657506001816040015160ff16145b1561310c576000841180156130ac5750600a8411155b806130c55750601384101580156130c45750601c8411155b5b156130df576000600285816130d657fe5b06149150613107565b6000841180156130f0575060248411155b156131065760016002858161310157fe5b061491505b5b6132d4565b6003600581111561311957fe5b816020015160ff1614801561312f575060248411155b15613189576013841015801561314c57506000816040015160ff16145b1561315657600191505b600084118015613167575060128411155b801561317a57506001816040015160ff16145b1561318457600191505b6132d3565b6004600581111561319657fe5b816020015160ff161480156131ac575060248411155b1561323d576000816040015160ff161480156131c85750600084115b156131de576001600385816131d957fe5b061491505b6001816040015160ff161480156131f55750600084115b1561320b5760026003858161320657fe5b061491505b6002816040015160ff161480156132225750600084115b156132385760006003858161323357fe5b061491505b6132d2565b60058081111561324957fe5b816020015160ff1614801561325f575060248411155b156132d1576000816040015160ff161415613288576000841180156132855750600c8411155b91505b6001816040015160ff1614156132ac57600c841180156132a9575060188411155b91505b6002816040015160ff1614156132d0576018841180156132cd575060248411155b91505b5b5b5b5b5b5b5b811561335057600061331f6132fa836020015160ff16846040015160ff16610e98565b83608001516fffffffffffffffffffffffffffffffff16613a0490919063ffffffff16565b905060098190806001815401808255809150506001900390600052602060002001600090919091909150555061337b565b6009600090806001815401808255809150506001900390600052602060002001600090919091909150555b600060076000836060015160ff1681526020019081526020016000206000836020015160ff1681526020019081526020016000206000836040015160ff1681526020019081526020016000208190555050508080600101915050612e12565b50600860006133e99190613d67565b8281857f9623f640ae1546f2effbb27dd873d724cabc8e76b7df25287c07fcee7b30cf418989600960405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561345c578082015181840152602081019050613441565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561349e578082015181840152602081019050613483565b5050505090500184810382528581815481526020019150805480156134e257602002820191906000526020600020905b8154815260200190600101908083116134ce575b5050965050505050505060405180910390a46009818180548060200260200160405190810160405280929190818152602001828054801561354257602002820191906000526020600020905b81548152602001906001019080831161352e575b50505050509150915091509550959350505050565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561379f576000613670600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b1290919063ffffffff16565b905060006136c8600354600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a0490919063ffffffff16565b90508082116136d757816136d9565b805b91506137988683600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ad3f918896040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b15801561375657600080fd5b505afa15801561376a573d6000803e3d6000fd5b505050506040513d602081101561378057600080fd5b81019080805190602001909291905050508787613b9b565b5050613974565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561397357613972846138ba600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b1290919063ffffffff16565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ad3f918876040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b15801561393057600080fd5b505afa158015613944573d6000803e3d6000fd5b505050506040513d602081101561395a57600080fd5b81019080805190602001909291905050508585613b9b565b5b5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b600080831415613a175760009050613a84565b6000828402905082848281613a2857fe5b0414613a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613f786021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015613b08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600082821115613b8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630680429586868686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050606060405180830381600087803b158015613c5c57600080fd5b505af1158015613c70573d6000803e3d6000fd5b505050506040513d6060811015613c8657600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050505050565b6040518060a00160405280600590602082028036833780820191505090505090565b828054828255906000526020600020908101928215613d13579160200282015b82811115613d12578251825591602001919060010190613cf7565b5b509050613d209190613d8b565b5090565b6040518060c00160405280600690602082028036833780820191505090505090565b5080546000825590600052602060002090810190613d649190613d8b565b50565b5080546000825560020290600052602060002090810190613d889190613da8565b50565b5b80821115613da4576000816000905550600101613d8c565b5090565b5b80821115613e4157600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff02191690556000820160156101000a81549060ff02191690556000820160166101000a81549060ff02191690556001820160006101000a8154906fffffffffffffffffffffffffffffffff021916905550600201613da9565b509056fe416363657373436f6e74726f6c3a20696e76616c696420776f726b65722061646472657373526f756c657474653a206e6f7420656e6f75676820746f6b656e7320666f72207061796f7574526f756c657474653a20696e636f72726563742062657420747970652f76616c7565526f756c657474653a20696e636f6e73697374656e7420616d6f756e74206f6620746f6b656e496e646578526f756c657474653a20696e636f6e73697374656e7420616d6f756e74206f6620626574416d6f756e74526f756c657474653a20696e636f6e73697374656e7420616d6f756e74206f66206265747356616c756573416363657373436f6e74726f6c3a20696e76616c69642043454f2061646472657373416363657373436f6e74726f6c3a20776f726b6572206163636573732064656e696564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f756c657474653a2062657420616d6f756e74206973206d6f7265207468616e206d6178696d756d416363657373436f6e74726f6c3a2063757272656e6c7479206e6f7420706175736564526f756c657474653a20657863656564696e67206d6178696d756d20626574206c696d6974526f756c657474653a206d6178696d756d20616d6f756e74206f6620626574732072656163686564a2646970667358221220b75d55fc9fe4353a21a0d6a0863e6c1de230d6f4e4f6918abe1b004badbad71c64736f6c63430007060033000000000000000000000000bf79ce2fbd819e5abc2327563d02a200255b7cb300000000000000000000000000000000000000000000000d8d726b7177a80000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000011e46db40d4438d1c64f68993ca43b03ac1b6a6b

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063625c3a5f11610104578063b633b2ab116100a2578063cbd88f4811610071578063cbd88f4814610b00578063dca4d1a514610b34578063dcdfe3e814610b76578063ef37cfe914610b97576101cf565b8063b633b2ab146109f0578063bde0489014610a0e578063c26f6d4414610a64578063ca43134114610aa8576101cf565b80638456cb59116100de5780638456cb59146109665780638c7e347a146109705780639eb9a1061461098e578063b14f2a39146109ac576101cf565b8063625c3a5f146108c55780636a5f3d5e146108f6578063800edb9d14610938576101cf565b80633f4ba83a11610171578063524b1bbf1161014b578063524b1bbf146107f95780635c975abb146108315780635ccc53021461085157806361d027b314610891576101cf565b80633f4ba83a146103f357806342fc40c2146103fd57806350bfba99146107c5576101cf565b806327d7874c116101ad57806327d7874c146102ef57806329dd3c9c146103335780633025d9e21461037f5780633a7c48d6146103c3576101cf565b80630a0f8168146101d45780630ab5cb641461020857806322af00fa14610260575b600080fd5b6101dc610bbc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61024a6004803603602081101561021e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610be0565b6040518082815260200191505060405180910390f35b61028c6004803603602081101561027657600080fd5b8101908080359060200190929190505050610bf8565b604051808673ffffffffffffffffffffffffffffffffffffffff1681526020018560ff1681526020018460ff1681526020018360ff168152602001826fffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390f35b6103316004803603602081101561030557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ca1565b005b6103696004803603604081101561034957600080fd5b810190808035906020019092919080359060200190929190505050610e98565b6040518082815260200191505060405180910390f35b6103c16004803603602081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fd5565b005b6103cb6110da565b60405180826fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103fb6110e8565b005b6107c3600480360361014081101561041457600080fd5b810190808035906020019064010000000081111561043157600080fd5b82018360208201111561044357600080fd5b8035906020019184602083028401116401000000008311171561046557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803590602001906401000000008111156104d957600080fd5b8201836020820111156104eb57600080fd5b8035906020019184602083028401116401000000008311171561050d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561056d57600080fd5b82018360208201111561057f57600080fd5b803590602001918460208302840111640100000000831117156105a157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561060157600080fd5b82018360208201111561061357600080fd5b8035906020019184602083028401116401000000008311171561063557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291908035906020019064010000000081111561069f57600080fd5b8201836020820111156106b157600080fd5b803590602001918460208302840111640100000000831117156106d357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291908035906020019064010000000081111561074057600080fd5b82018360208201111561075257600080fd5b8035906020019184602083028401116401000000008311171561077457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611257565b005b6107cd611d7d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61082f6004803603604081101561080f57600080fd5b810190808035906020019092919080359060200190929190505050611da3565b005b610839611e80565b60405180821515815260200191505060405180910390f35b61088f6004803603602081101561086757600080fd5b8101908080356fffffffffffffffffffffffffffffffff169060200190929190505050611e93565b005b610899611fcc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108f4600480360360208110156108db57600080fd5b81019080803560ff169060200190929190505050611ff2565b005b6109226004803603602081101561090c57600080fd5b81019080803590602001909291905050506120ec565b6040518082815260200191505060405180910390f35b6109646004803603602081101561094e57600080fd5b81019080803590602001909291905050506123b1565b005b61096e61247c565b005b6109786125ed565b6040518082815260200191505060405180910390f35b6109966125fa565b6040518082815260200191505060405180910390f35b6109ee600480360360208110156109c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612600565b005b6109f8612705565b6040518082815260200191505060405180910390f35b610a4e60048036036060811015610a2457600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050612713565b6040518082815260200191505060405180910390f35b610aa660048036036020811015610a7a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612745565b005b610aea60048036036020811015610abe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061297a565b6040518082815260200191505060405180910390f35b610b08612992565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b6060048036036020811015610b4a57600080fd5b81019080803590602001909291905050506129b8565b6040518082815260200191505060405180910390f35b610b7e6129d0565b604051808260ff16815260200191505060405180910390f35b610b9f6129dd565b604051808381526020018281526020019250505060405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b60088181548110610c0857600080fd5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16908060000160159054906101000a900460ff16908060000160169054906101000a900460ff16908060010160009054906101000a90046fffffffffffffffffffffffffffffffff16905085565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613f336022913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff97cbb4246b709036319093e5ff31674b9f6759076d153e1bea1f60392170fc060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000806005811115610ea657fe5b60ff16831415610ecc5760248211610ebf576024610ec2565b60005b60ff169050610fcf565b60016005811115610ed957fe5b60ff16831415610eff5760018211610ef2576002610ef5565b60005b60ff169050610fcf565b60026005811115610f0c57fe5b60ff16831415610f325760018211610f25576002610f28565b60005b60ff169050610fcf565b60036005811115610f3f57fe5b60ff16831415610f655760018211610f58576002610f5b565b60005b60ff169050610fcf565b60046005811115610f7257fe5b60ff16831415610f985760028211610f8b576003610f8e565b60005b60ff169050610fcf565b600580811115610fa457fe5b60ff16831415610fca5760028211610fbd576003610fc0565b60005b60ff169050610fcf565b600090505b92915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006008600254901c905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b600160149054906101000a900460ff1661120e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613fc26023913960400191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693360405160405180910390a1565b600160149054906101000a900460ff16156112da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416363657373436f6e74726f6c3a2063757272656e746c79207061757365640081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611380576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613f556023913960400191505060405180910390fd5b85518751146113da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f08602b913960400191505060405180910390fd5b8451835114611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613ede602a913960400191505060405180910390fd5b825186511461148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613eb3602b913960400191505060405180910390fd5b6000600254901c60ff16875111156114f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061400a6028913960400191505060405180910390fd5b6114f9613cb5565b60005b88518160ff1610156119c257868160ff168151811061151757fe5b60200260200101516fffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166371da23e9878460ff168151811061157e57fe5b60200260200101516040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b1580156115bd57600080fd5b505afa1580156115d1573d6000803e3d6000fd5b505050506040513d60208110156115e757600080fd5b81019080805190602001909291905050506fffffffffffffffffffffffffffffffff161015611661576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613f996029913960400191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341d4c74f868360ff16815181106116ae57fe5b60200260200101518e8460ff16815181106116c557fe5b60200260200101518a8560ff16815181106116dc57fe5b60200260200101516040518463ffffffff1660e01b8152600401808460ff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561175357600080fd5b505af1158015611767573d6000803e3d6000fd5b505050506040513d602081101561177d57600080fd5b81019080805190602001909291905050505061180a8c8260ff16815181106117a157fe5b60200260200101518a8360ff16815181106117b857fe5b60200260200101518a8460ff16815181106117cf57fe5b6020026020010151888560ff16815181106117e657fe5b60200260200101518b8660ff16815181106117fd57fe5b6020026020010151612a5e565b81858260ff168151811061181a57fe5b602002602001015160ff166005811061182f57fe5b60200201516119b5576000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c70620b5878460ff168151811061188757fe5b60200260200101516040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b1580156118c657600080fd5b505afa1580156118da573d6000803e3d6000fd5b505050506040513d60208110156118f057600080fd5b8101908080519060200190929190505050905080611926878460ff168151811061191657fe5b602002602001015160ff166120ec565b111561197d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613e6b6026913960400191505060405180910390fd5b600183878460ff168151811061198f57fe5b602002602001015160ff16600581106119a457fe5b602002019015159081151581525050505b80806001019150506114fc565b60006119d1878e888f8f612d20565b600960008294508391905090805190602001906119ef929190613cd7565b505050600091505b6009805490508260ff161015611cfc57600060098360ff1681548110611a1957fe5b90600052602060002001541115611c1657600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331297992878460ff1681518110611a7757fe5b60200260200101518f8560ff1681518110611a8e57fe5b602002602001015160098660ff1681548110611aa657fe5b90600052602060002001546040518463ffffffff1660e01b8152600401808460ff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b0e57600080fd5b505af1158015611b22573d6000803e3d6000fd5b505050506040513d6020811015611b3857600080fd5b81019080805190602001909291905050505060098260ff1681548110611b5a57fe5b9060005260206000200154600560008f8560ff1681518110611b7857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600560008f8560ff1681518110611bcf57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b878260ff1681518110611c2557fe5b60200260200101516fffffffffffffffffffffffffffffffff16600460008f8560ff1681518110611c5257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600460008f8560ff1681518110611ca957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081806001019250506119f7565b600091505b8c518260ff161015611d6e57611d618d8360ff1681518110611d1f57fe5b6020026020010151878460ff1681518110611d3657fe5b60200260200101518760ff16878660ff1681518110611d5157fe5b602002602001015160ff16613557565b8180600101925050611d01565b50505050505050505050505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b8060066000848152602001908152602001600020819055505050565b600160149054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b600880600254901c6fffffffffffffffffffffffffffffffff16901b6fffffffffffffffffffffffffffffffff166002600082825418925050819055506008816fffffffffffffffffffffffffffffffff16901b6fffffffffffffffffffffffffffffffff1660026000828254179250508190555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b600060025460ff16901b60ff1660026000828254189250508190555060008160ff16901b60ff1660026000828254179250508190555050565b6000806120f7613d24565b60005b6008805490508160ff16101561236457600060088260ff168154811061211c57fe5b90600052602060002090600202016040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900460ff1660ff1660ff1681526020016000820160159054906101000a900460ff1660ff1660ff1681526020016000820160169054906101000a900460ff1660ff1660ff1681526020016001820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905085816060015160ff161415612356576000612257826020015160ff16836040015160ff16610e98565b9050600060076000846060015160ff1681526020019081526020016000206000846020015160ff1681526020019081526020016000206000846040015160ff16815260200190815260200160002054905060008211612301576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e916022913960400191505060405180910390fd5b6123148282613a0490919063ffffffff16565b955084836020015160ff166006811061232957fe5b6020020151861115612353578585846020015160ff166006811061234957fe5b6020020181815250505b50505b5080806001019150506120fa565b5060005b60068160ff1610156123a95761239a828260ff166006811061238657fe5b602002015185613a8a90919063ffffffff16565b93508080600101915050612368565b505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612472576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b8060038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612522576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613f556023913960400191505060405180910390fd5b600160149054906101000a900460ff16156125a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416363657373436f6e74726f6c3a2063757272656e746c79207061757365640081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75260405160405180910390a1565b6000600880549050905090565b60035481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416363657373436f6e74726f6c3a2043454f206163636573732064656e69656481525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006088600254901c905090565b600760205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613e466025913960400191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806128725750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6128c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613e466025913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f54841e992da2f7bcaa3127409f02e1849c79072740593c398d6670f65f995fa7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60056020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090505481565b600080600254901c905090565b60008060005b600880549050811015612a4e57600881815481106129fd57fe5b906000526020600020906002020160010160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168301925080806001019150506129e3565b5060088054905082915091509091565b806fffffffffffffffffffffffffffffffff16600760008460ff16815260200190815260200160002060008660ff16815260200190815260200160002060008560ff16815260200190815260200160002060008282540192505081905550600080600660008560ff1681526020019081526020016000205414612af757600660008460ff16815260200190815260200160002054612b11565b6008600254901c6fffffffffffffffffffffffffffffffff165b905080600760008560ff16815260200190815260200160002060008760ff16815260200190815260200160002060008660ff168152602001908152602001600020541115612baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613fe56025913960400191505060405180910390fd5b60086040518060a001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018760ff1681526020018660ff1681526020018560ff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff021916908360ff16021790555060408201518160000160156101000a81548160ff021916908360ff16021790555060608201518160000160166101000a81548160ff021916908360ff16021790555060808201518160010160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050505050505050565b606060008060088054905011612d9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f526f756c657474653a206d75737420686176652062657473000000000000000081525060200191505060405180910390fd5b60096000612dac9190613d46565b608880600254901c901b600260008282541892505081905550608842901b600260008282541792505081905550602587604051602001808281526020019150506040516020818303038152906040528051906020012060001c81612e0c57fe5b06905060005b6008805490508110156133da5760008060088381548110612e2f57fe5b90600052602060002090600202016040518060a00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900460ff1660ff1660ff1681526020016000820160159054906101000a900460ff1660ff1660ff1681526020016000820160169054906101000a900460ff1660ff1660ff1681526020016001820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060006005811115612f4e57fe5b816020015160ff16148015612f69575083816040015160ff16145b15612f7757600191506132d7565b60016005811115612f8457fe5b816020015160ff16148015612f9a575060248411155b15612fce57600084118015612fbf5750806040015160ff1660028581612fbc57fe5b06145b15612fc957600191505b6132d6565b60026005811115612fdb57fe5b816020015160ff16148015612ff757506000816040015160ff16145b1561306d5760008411801561300d5750600a8411155b806130265750601384101580156130255750601c8411155b5b156130405760016002858161303757fe5b06149150613068565b600084118015613051575060248411155b156130675760006002858161306257fe5b061491505b5b6132d5565b6002600581111561307a57fe5b816020015160ff1614801561309657506001816040015160ff16145b1561310c576000841180156130ac5750600a8411155b806130c55750601384101580156130c45750601c8411155b5b156130df576000600285816130d657fe5b06149150613107565b6000841180156130f0575060248411155b156131065760016002858161310157fe5b061491505b5b6132d4565b6003600581111561311957fe5b816020015160ff1614801561312f575060248411155b15613189576013841015801561314c57506000816040015160ff16145b1561315657600191505b600084118015613167575060128411155b801561317a57506001816040015160ff16145b1561318457600191505b6132d3565b6004600581111561319657fe5b816020015160ff161480156131ac575060248411155b1561323d576000816040015160ff161480156131c85750600084115b156131de576001600385816131d957fe5b061491505b6001816040015160ff161480156131f55750600084115b1561320b5760026003858161320657fe5b061491505b6002816040015160ff161480156132225750600084115b156132385760006003858161323357fe5b061491505b6132d2565b60058081111561324957fe5b816020015160ff1614801561325f575060248411155b156132d1576000816040015160ff161415613288576000841180156132855750600c8411155b91505b6001816040015160ff1614156132ac57600c841180156132a9575060188411155b91505b6002816040015160ff1614156132d0576018841180156132cd575060248411155b91505b5b5b5b5b5b5b5b811561335057600061331f6132fa836020015160ff16846040015160ff16610e98565b83608001516fffffffffffffffffffffffffffffffff16613a0490919063ffffffff16565b905060098190806001815401808255809150506001900390600052602060002001600090919091909150555061337b565b6009600090806001815401808255809150506001900390600052602060002001600090919091909150555b600060076000836060015160ff1681526020019081526020016000206000836020015160ff1681526020019081526020016000206000836040015160ff1681526020019081526020016000208190555050508080600101915050612e12565b50600860006133e99190613d67565b8281857f9623f640ae1546f2effbb27dd873d724cabc8e76b7df25287c07fcee7b30cf418989600960405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561345c578082015181840152602081019050613441565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561349e578082015181840152602081019050613483565b5050505090500184810382528581815481526020019150805480156134e257602002820191906000526020600020905b8154815260200190600101908083116134ce575b5050965050505050505060405180910390a46009818180548060200260200160405190810160405280929190818152602001828054801561354257602002820191906000526020600020905b81548152602001906001019080831161352e575b50505050509150915091509550959350505050565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561379f576000613670600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b1290919063ffffffff16565b905060006136c8600354600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a0490919063ffffffff16565b90508082116136d757816136d9565b805b91506137988683600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ad3f918896040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b15801561375657600080fd5b505afa15801561376a573d6000803e3d6000fd5b505050506040513d602081101561378057600080fd5b81019080805190602001909291905050508787613b9b565b5050613974565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561397357613972846138ba600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613b1290919063ffffffff16565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ad3f918876040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b15801561393057600080fd5b505afa158015613944573d6000803e3d6000fd5b505050506040513d602081101561395a57600080fd5b81019080805190602001909291905050508585613b9b565b5b5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b600080831415613a175760009050613a84565b6000828402905082848281613a2857fe5b0414613a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613f786021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015613b08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600082821115613b8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630680429586868686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050606060405180830381600087803b158015613c5c57600080fd5b505af1158015613c70573d6000803e3d6000fd5b505050506040513d6060811015613c8657600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050505050565b6040518060a00160405280600590602082028036833780820191505090505090565b828054828255906000526020600020908101928215613d13579160200282015b82811115613d12578251825591602001919060010190613cf7565b5b509050613d209190613d8b565b5090565b6040518060c00160405280600690602082028036833780820191505090505090565b5080546000825590600052602060002090810190613d649190613d8b565b50565b5080546000825560020290600052602060002090810190613d889190613da8565b50565b5b80821115613da4576000816000905550600101613d8c565b5090565b5b80821115613e4157600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff02191690556000820160156101000a81549060ff02191690556000820160166101000a81549060ff02191690556001820160006101000a8154906fffffffffffffffffffffffffffffffff021916905550600201613da9565b509056fe416363657373436f6e74726f6c3a20696e76616c696420776f726b65722061646472657373526f756c657474653a206e6f7420656e6f75676820746f6b656e7320666f72207061796f7574526f756c657474653a20696e636f72726563742062657420747970652f76616c7565526f756c657474653a20696e636f6e73697374656e7420616d6f756e74206f6620746f6b656e496e646578526f756c657474653a20696e636f6e73697374656e7420616d6f756e74206f6620626574416d6f756e74526f756c657474653a20696e636f6e73697374656e7420616d6f756e74206f66206265747356616c756573416363657373436f6e74726f6c3a20696e76616c69642043454f2061646472657373416363657373436f6e74726f6c3a20776f726b6572206163636573732064656e696564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f756c657474653a2062657420616d6f756e74206973206d6f7265207468616e206d6178696d756d416363657373436f6e74726f6c3a2063757272656e6c7479206e6f7420706175736564526f756c657474653a20657863656564696e67206d6178696d756d20626574206c696d6974526f756c657474653a206d6178696d756d20616d6f756e74206f6620626574732072656163686564a2646970667358221220b75d55fc9fe4353a21a0d6a0863e6c1de230d6f4e4f6918abe1b004badbad71c64736f6c63430007060033

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

000000000000000000000000bf79ce2fbd819e5abc2327563d02a200255b7cb300000000000000000000000000000000000000000000000d8d726b7177a80000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000011e46db40d4438d1c64f68993ca43b03ac1b6a6b

-----Decoded View---------------
Arg [0] : _treasuryAddress (address): 0xBF79cE2fbd819e5aBC2327563D02a200255B7Cb3
Arg [1] : _maxSquareBetDefault (uint128): 250000000000000000000
Arg [2] : _maxNumberBets (uint8): 36
Arg [3] : _pointerAddress (address): 0x11e46DB40d4438D1c64f68993CA43b03Ac1B6A6B

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000bf79ce2fbd819e5abc2327563d02a200255b7cb3
Arg [1] : 00000000000000000000000000000000000000000000000d8d726b7177a80000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000024
Arg [3] : 00000000000000000000000011e46db40d4438d1c64f68993ca43b03ac1b6a6b


Deployed Bytecode Sourcemap

5094:14114:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1420:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5346:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5584:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2543:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15467:736;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19002:203;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18851:143;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3323:106;;;:::i;:::-;;11072:3153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6054:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17712:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1489:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17924:220;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6015:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18152:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16211:1102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14233:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3208:107;;;:::i;:::-;;17579:125;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5239:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18362:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18570:129;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5498:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2790:410;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5395:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1452:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5448:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18707:136;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17321:250;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1420:25;;;;;;;;;;;;:::o;5346:42::-;;;;;;;;;;;;;;;;;:::o;5584:17::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2543:239::-;1970:10;;;;;;;;;;1956:24;;:10;:24;;;1934:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2643:3:::1;2624:23;;:7;:23;;;;2602:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2733:7;2720:10;::::0;:20:::1;;;;;;;;;;;;;;;;;;2756:18;2763:10;::::0;::::1;;;;;;;;2756:18;;;;;;;;;;;;;;;;;;;;2543:239:::0;:::o;15467:736::-;15603:7;15650:14;15644:21;;;;;;;;15632:33;;:8;:33;15628:83;;;15700:2;15687:10;:15;:24;;15709:2;15687:24;;;15705:1;15687:24;15680:31;;;;;;15628:83;15744:15;15738:22;;;;;;;;15726:34;;:8;:34;15722:82;;;15795:1;15782:10;:14;:22;;15803:1;15782:22;;;15799:1;15782:22;15775:29;;;;;;15722:82;15837:16;15831:23;;;;;;;;15819:35;;:8;:35;15815:83;;;15889:1;15876:10;:14;:22;;15897:1;15876:22;;;15893:1;15876:22;15869:29;;;;;;15815:83;15931:15;15925:22;;;;;;;;15913:34;;:8;:34;15909:82;;;15982:1;15969:10;:14;:22;;15990:1;15969:22;;;15986:1;15969:22;15962:29;;;;;;15909:82;16024:14;16018:21;;;;;;;;16006:33;;:8;:33;16002:81;;;16074:1;16061:10;:14;:22;;16082:1;16061:22;;;16078:1;16061:22;16054:29;;;;;;16002:81;16116:13;16110:20;;;;;;;;16098:32;;:8;:32;16094:80;;;16165:1;16152:10;:14;:22;;16173:1;16152:22;;;16169:1;16152:22;16145:29;;;;;;16094:80;16194:1;16187:8;;15467:736;;;;;:::o;19002:203::-;1970:10;;;;;;;;;;1956:24;;:10;:24;;;1934:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19168:18:::1;19120:15;;:77;;;;;;;;;;;;;;;;;;19002:203:::0;:::o;18851:143::-;18937:7;18984:1;18977:5;;:8;;18962:24;;18851:143;:::o;3323:106::-;1970:10;;;;;;;;;;1956:24;;:10;:24;;;1934:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:6:::1;;;;;;;;;;;2424:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3390:5:::2;3381:6;;:14;;;;;;;;;;;;;;;;;;3411:10;;;;;;;;;;3323:106::o:0;11072:3153::-;2300:6;;;;;;;;;;;2299:7;2277:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2137:13:::1;;;;;;;;;;;2123:27;;:10;:27;;;2101:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11541:10:::2;:17;11523:7;:14;:35;11501:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11686:10;:17;11664:11;:18;:39;11642:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11829:11;:18;11808:10;:17;:39;11786:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11984:1;11977:5;;:8;;11953:33;;:7;:14;:33;;11931:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12141:28;;:::i;:::-;12180:7;12200:959;12216:7;:14;12212:1;:18;;;12200:959;;;12322:10;12333:1;12322:13;;;;;;;;;;;;;;;;12280:55;;:8;;;;;;;;;;;:22;;;12303:11;12315:1;12303:14;;;;;;;;;;;;;;;;12280:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;:55;;;;12254:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12429:8;;;;;;;;;;;:29;;;12477:11;12489:1;12477:14;;;;;;;;;;;;;;;;12510:8;12519:1;12510:11;;;;;;;;;;;;;;;;12540:10;12551:1;12540:13;;;;;;;;;;;;;;;;12429:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;12585:174;12607:8;12616:1;12607:11;;;;;;;;;;;;;;;;12637:7;12645:1;12637:10;;;;;;;;;;;;;;;;12666;12677:1;12666:13;;;;;;;;;;;;;;;;12698:11;12710:1;12698:14;;;;;;;;;;;;;;;;12731:10;12742:1;12731:13;;;;;;;;;;;;;;;;12585:3;:174::i;:::-;12781:13;12795:11;12807:1;12795:14;;;;;;;;;;;;;;;;12781:29;;;;;;;;;;;;;12776:372;;12831:18;12852:8;;;;;;;;;;;:29;;;12882:11;12894:1;12882:14;;;;;;;;;;;;;;;;12852:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;12831:66;;12985:10;12946:35;12966:11;12978:1;12966:14;;;;;;;;;;;;;;;;12946:35;;:19;:35::i;:::-;:49;;12916:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13128:4;13096:13;13110:11;13122:1;13110:14;;;;;;;;;;;;;;;;13096:29;;;;;;;;;;;;:36;;;;;;;;;::::0;::::2;12776:372;;12232:3;;;;;;;12200:959;;;13171:19;13229:139;13251:10;13276:8;13299:11;13325:7;13347:10;13229:7;:139::i;:::-;13202:10;;13201:167;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13431:1;13427:5;;13422:517;13438:10;:17;;;;13434:1;:21;;;13422:517;;;13497:1;13481:10;13492:1;13481:13;;;;;;;;;;;;;;;;;;:17;13477:360;;;13519:8;;;;;;;;;;;:30;;;13572:11;13584:1;13572:14;;;;;;;;;;;;;;;;13609:8;13618:1;13609:11;;;;;;;;;;;;;;;;13643:10;13654:1;13643:13;;;;;;;;;;;;;;;;;;13519:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;13808:10;13819:1;13808:13;;;;;;;;;;;;;;;;;;13781:11;:24;13793:8;13802:1;13793:11;;;;;;;;;;;;;;;;13781:24;;;;;;;;;;;;;;;;:40;13737:11;:24;13749:8;13758:1;13749:11;;;;;;;;;;;;;;;;13737:24;;;;;;;;;;;;;;;:84;;;;13477:360;13914:10;13925:1;13914:13;;;;;;;;;;;;;;;;13889:38;;:9;:22;13899:8;13908:1;13899:11;;;;;;;;;;;;;;;;13889:22;;;;;;;;;;;;;;;;:38;13851:9;:22;13861:8;13870:1;13861:11;;;;;;;;;;;;;;;;13851:22;;;;;;;;;;;;;;;:76;;;;13457:3;;;;;;;13422:517;;;13999:1;13995:5;;13990:228;14006:8;:15;14002:1;:19;;;13990:228;;;14043:163;14080:8;14089:1;14080:11;;;;;;;;;;;;;;;;14110;14122:1;14110:14;;;;;;;;;;;;;;;;14143:12;14043:163;;14174:14;14189:1;14174:17;;;;;;;;;;;;;;;;14043:163;;:18;:163::i;:::-;14023:3;;;;;;;13990:228;;;2224:1;;;11072:3153:::0;;;;;;;;;;:::o;6054:38::-;;;;;;;;;;;;;:::o;17712:204::-;1970:10;;;;;;;;;;1956:24;;:10;:24;;;1934:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17892:16:::1;17863:13;:26;17877:11;17863:26;;;;;;;;;;;:45;;;;17712:204:::0;;:::o;1489:26::-;;;;;;;;;;;;;:::o;17924:220::-;1970:10;;;;;;;;;;1956:24;;:10;:24;;;1934:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18089:1:::1;18084::::0;18077:5:::1;;:8;;18068:22;;;;18059:31;;:5;;:31;;;;;;;;;;;18135:1;18110:23;:26;;;;18101:35;;:5;;:35;;;;;;;;;;;17924:220:::0;:::o;6015:32::-;;;;;;;;;;;;;:::o;18152:202::-;1970:10;;;;;;;;;;1956:24;;:10;:24;;;1934:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18302:1:::1;18294:5;;18288:15;;;;18279:24;;:5;;:24;;;;;;;;;;;18345:1;18323:20;:23;;;;18314:32;;:5;;:32;;;;;;;;;;;18152:202:::0;:::o;16211:1102::-;16325:25;16368:28;16407:29;;:::i;:::-;16454:8;16449:678;16473:4;:11;;;;16468:2;:16;;;16449:678;;;16507:12;16522:4;16527:2;16522:8;;;;;;;;;;;;;;;;;;;;16507:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16565:11;16549:1;:12;;;:27;;;16545:571;;;16599:15;16617:37;16634:1;:9;;;16617:37;;16645:1;:8;;;16617:37;;:16;:37::i;:::-;16599:55;;16673:15;16691:11;:25;16703:1;:12;;;16691:25;;;;;;;;;;;;;:36;16717:1;:9;;;16691:36;;;;;;;;;;;;;:46;16728:1;:8;;;16691:46;;;;;;;;;;;;;;16673:64;;16798:1;16788:7;:11;16758:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16921:20;16933:7;16921;:11;;:20;;;;:::i;:::-;16898:43;;16989:11;17001:1;:9;;;16989:22;;;;;;;;;;;;;16966:20;:45;16962:139;;;17061:20;17036:11;17048:1;:9;;;17036:22;;;;;;;;;;;;:45;;;;;16962:139;16545:571;;;16449:678;16486:4;;;;;;;16449:678;;;;17144:8;17139:167;17163:18;17158:2;:23;;;17139:167;;;17224:70;17264:11;17276:2;17264:15;;;;;;;;;;;;;17224:17;:21;;:70;;;;:::i;:::-;17204:90;;17183:4;;;;;;;17139:167;;;;16211:1102;;;;;:::o;14233:142::-;1970:10;;;;;;;;;;1956:24;;:10;:24;;;1934:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14354:13:::1;14342:9;:25;;;;14233:142:::0;:::o;3208:107::-;2137:13;;;;;;;;;;;2123:27;;:10;:27;;;2101:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:6:::1;;;;;;;;;;;2299:7;2277:88;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3279:4:::2;3270:6:::0;::::2;:13;;;;;;;;;;;;;;;;;;3299:8;;;;;;;;;;3208:107::o:0;17579:125::-;17653:7;17685:4;:11;;;;17678:18;;17579:125;:::o;5239:24::-;;;;:::o;18362:200::-;1970:10;;;;;;;;;;1956:24;;:10;:24;;;1934:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18524:19:::1;18482:8;;:72;;;;;;;;;;;;;;;;;;18362:200:::0;:::o;18570:129::-;18652:4;18688:3;18681:5;;:10;;18674:17;;18570:129;:::o;5498:77::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2790:410::-;2893:3;2871:26;;:10;:26;;;;2849:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3009:10;;;;;;;;;;2995:24;;:10;:24;;;:55;;;;3037:13;;;;;;;;;;;3023:27;;:10;:27;;;2995:55;2973:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3142:10;3126:13;;:26;;;;;;;;;;;;;;;;;;3168:24;3178:13;;;;;;;;;;;3168:24;;;;;;;;;;;;;;;;;;;;2790:410;:::o;5395:44::-;;;;;;;;;;;;;;;;;:::o;1452:28::-;;;;;;;;;;;;;:::o;5448:43::-;;;;;;;;;;;;;;;;;:::o;18707:136::-;18790:5;18833:1;18826:5;;:8;;18813:22;;18707:136;:::o;17321:250::-;17402:10;17414:4;17441:6;17436:88;17457:4;:11;;;;17453:1;:15;17436:88;;;17499:4;17504:1;17499:7;;;;;;;;;;;;;;;;;;:13;;;;;;;;;;;;17490:22;;;;;;17470:3;;;;;;;17436:88;;;;17544:4;:11;;;;17557:5;17536:27;;;;17321:250;;:::o;6907:744::-;7136:6;7089:53;;:11;:24;7101:11;7089:24;;;;;;;;;;;;;:34;7114:8;7089:34;;;;;;;;;;;;;:43;7124:7;7089:43;;;;;;;;;;;;;;:53;;;;;;;;;;;7155:21;7209:1;7179:13;:26;7193:11;7179:26;;;;;;;;;;;;;;:31;:106;;7259:13;:26;7273:11;7259:26;;;;;;;;;;;;;;7179:106;;;7241:1;7234:5;;:8;;7179:106;;;7155:130;;7367:13;7320:11;:24;7332:11;7320:24;;;;;;;;;;;;;:34;7345:8;7320:34;;;;;;;;;;;;;:43;7355:7;7320:43;;;;;;;;;;;;;;:60;;7298:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7458:4;7468:174;;;;;;;;7495:7;7468:174;;;;;;7526:8;7468:174;;;;;;7557:7;7468:174;;;;;;7591:11;7468:174;;;;;;7624:6;7468:174;;;;;7458:185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6907:744;;;;;;:::o;7659:3405::-;7888:16;7919:14;8061:1;8047:4;:11;;;;:15;8039:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8111:10;;8104:17;;;;:::i;:::-;8157:3;8151;8144:5;;:10;;8143:17;;8134:5;;:26;;;;;;;;;;;8197:3;8180:15;:20;;8171:5;;:29;;;;;;;;;;;8326:2;8286:10;8269:28;;;;;;;;;;;;;;;;;;;;;;;;;8241:71;;;;;;8222:101;;:106;;;;;;8213:115;;8346:6;8341:2435;8362:4;:11;;;;8358:1;:15;8341:2435;;;8395:8;8426:12;8441:4;8446:1;8441:7;;;;;;;;;;;;;;;;;;8426:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8485:14;8480:20;;;;;;;;8467:1;:9;;;:33;;;:55;;;;;8516:6;8504:1;:8;;;:18;;;8467:55;8463:1969;;;8549:4;8543:10;;8463:1969;;;8597:15;8592:21;;;;;;;;8579:1;:9;;;:34;;;:50;;;;;8627:2;8617:6;:12;;8579:50;8575:1857;;;8663:1;8654:6;:10;:36;;;;;8682:1;:8;;;8668:22;;8677:1;8668:6;:10;;;;;;:22;8654:36;8650:95;;;8721:4;8715:10;;8650:95;8575:1857;;;8788:16;8783:22;;;;;;;;8770:1;:9;;;:35;;;:52;;;;;8821:1;8809;:8;;;:13;;;8770:52;8766:1666;;;8857:1;8848:6;:10;:26;;;;;8872:2;8862:6;:12;;8848:26;8847:62;;;;8890:2;8880:6;:12;;:28;;;;;8906:2;8896:6;:12;;8880:28;8847:62;8843:288;;;8955:1;8950;8941:6;:10;;;;;;:15;8934:23;;8843:288;;;9019:1;9010:6;:10;:26;;;;;9034:2;9024:6;:12;;9010:26;9006:106;;;9086:1;9081;9072:6;:10;;;;;;:15;9065:23;;9006:106;8843:288;8766:1666;;;9174:16;9169:22;;;;;;;;9156:1;:9;;;:35;;;:52;;;;;9207:1;9195;:8;;;:13;;;9156:52;9152:1280;;;9243:1;9234:6;:10;:26;;;;;9258:2;9248:6;:12;;9234:26;9233:62;;;;9276:2;9266:6;:12;;:28;;;;;9292:2;9282:6;:12;;9266:28;9233:62;9229:288;;;9341:1;9336;9327:6;:10;;;;;;:15;9320:23;;9229:288;;;9405:1;9396:6;:10;:26;;;;;9420:2;9410:6;:12;;9396:26;9392:106;;;9472:1;9467;9458:6;:10;;;;;;:15;9451:23;;9392:106;9229:288;9152:1280;;;9560:15;9555:21;;;;;;;;9542:1;:9;;;:34;;;:50;;;;;9590:2;9580:6;:12;;9542:50;9538:894;;;9627:2;9617:6;:12;;:29;;;;;9645:1;9633;:8;;;:13;;;9617:29;9613:88;;;9677:4;9671:10;;9613:88;9732:1;9723:6;:10;:26;;;;;9747:2;9737:6;:12;;9723:26;:43;;;;;9765:1;9753;:8;;;:13;;;9723:43;9719:102;;;9797:4;9791:10;;9719:102;9538:894;;;9864:14;9859:20;;;;;;;;9846:1;:9;;;:33;;;:49;;;;;9893:2;9883:6;:12;;9846:49;9842:590;;;9932:1;9920;:8;;;:13;;;:27;;;;;9946:1;9937:6;:10;9920:27;9916:56;;;9970:1;9965;9956:6;:10;;;;;;:15;9949:23;;9916:56;10007:1;9995;:8;;;:13;;;:27;;;;;10021:1;10012:6;:10;9995:27;9991:56;;;10045:1;10040;10031:6;:10;;;;;;:15;10024:23;;9991:56;10082:1;10070;:8;;;:13;;;:27;;;;;10096:1;10087:6;:10;10070:27;10066:56;;;10120:1;10115;10106:6;:10;;;;;;:15;10099:23;;10066:56;9842:590;;;10166:13;10161:19;;;;;;;;10148:1;:9;;;:32;;;:48;;;;;10194:2;10184:6;:12;;10148:48;10144:288;;;10233:1;10221;:8;;;:13;;;10217:53;;;10252:1;10243:6;:10;:26;;;;;10267:2;10257:6;:12;;10243:26;10236:34;;10217:53;10305:1;10293;:8;;;:13;;;10289:54;;;10324:2;10315:6;:11;:27;;;;;10340:2;10330:6;:12;;10315:27;10308:35;;10289:54;10378:1;10366;:8;;;:13;;;10362:54;;;10397:2;10388:6;:11;:27;;;;;10413:2;10403:6;:12;;10388:27;10381:35;;10362:54;10144:288;9842:590;9538:894;9152:1280;8766:1666;8575:1857;8463:1969;10452:3;10448:252;;;10476:14;10493:90;10527:37;10544:1;:9;;;10527:37;;10555:1;:8;;;10527:37;;:16;:37::i;:::-;10493:1;:7;;;:11;;;;:90;;;;:::i;:::-;10476:107;;10602:10;10618:6;10602:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10448:252;;;;10666:10;10682:1;10666:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10448:252;10763:1;10714:11;:25;10726:1;:12;;;10714:25;;;;;;;;;;;;;:36;10740:1;:9;;;10714:36;;;;;;;;;;;;;:46;10751:1;:8;;;10714:46;;;;;;;;;;;;;:50;;;;8341:2435;;8375:3;;;;;;;8341:2435;;;;10795:4;;10788:11;;;;:::i;:::-;10934:10;10913:6;10891:7;10817:163;10842:8;10865:11;10959:10;10817:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:10;11039:6;10993:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7659:3405;;;;;;;;:::o;14383:1076::-;14582:9;:18;14592:7;14582:18;;;;;;;;;;;;;;;;14559:11;:20;14571:7;14559:20;;;;;;;;;;;;;;;;:41;14555:829;;;14619:14;14636:44;14661:9;:18;14671:7;14661:18;;;;;;;;;;;;;;;;14636:11;:20;14648:7;14636:20;;;;;;;;;;;;;;;;:24;;:44;;;;:::i;:::-;14619:61;;14695:14;14712:33;14735:9;;14712;:18;14722:7;14712:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;14695:50;;14780:6;14771;:15;:67;;14832:6;14771:67;;;14806:6;14771:67;14762:76;;14855:195;14883:7;14909:6;14934:8;;;;;;;;;;;:24;;;14959:11;14934:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14990:12;15021:14;14855:9;:195::i;:::-;14555:829;;;;;15104:9;:18;15114:7;15104:18;;;;;;;;;;;;;;;;15081:11;:20;15093:7;15081:20;;;;;;;;;;;;;;;;:41;15077:307;;;15139:233;15167:7;15193:44;15216:11;:20;15228:7;15216:20;;;;;;;;;;;;;;;;15193:9;:18;15203:7;15193:18;;;;;;;;;;;;;;;;:22;;:44;;;;:::i;:::-;15256:8;;;;;;;;;;;:24;;;15281:11;15256:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15312:12;15343:14;15139:9;:233::i;:::-;15077:307;14555:829;15415:1;15394:9;:18;15404:7;15394:18;;;;;;;;;;;;;;;:22;;;;15450:1;15427:11;:20;15439:7;15427:20;;;;;;;;;;;;;;;:24;;;;14383:1076;;;;:::o;698:248::-;756:7;785:1;780;:6;776:47;;;810:1;803:8;;;;776:47;835:9;851:1;847;:5;835:17;;880:1;875;871;:5;;;;;;:10;863:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:1;930:8;;;698:248;;;;;:::o;321:179::-;379:7;399:9;415:1;411;:5;399:17;;440:1;435;:6;;427:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;491:1;484:8;;;321:179;;;;:::o;508:182::-;566:7;599:1;594;:6;;586:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;646:9;662:1;658;:5;646:17;;681:1;674:8;;;508:182;;;;:::o;6536:363::-;6735:15;;;;;;;;;;;:25;;;6775:7;6797;6819:6;6840:11;6866:14;6735:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6536:363;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://b75d55fc9fe4353a21a0d6a0863e6c1de230d6f4e4f6918abe1b004badbad71c

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.