ETH Price: $2,448.22 (+1.90%)
Gas: 6.7 Gwei

Contract

0x28Ffb20bB8B6A415501279846Cbb36E7189E6554
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
End182282722023-09-27 16:25:35375 days ago1695831935IN
0x28Ffb20b...7189E6554
0 ETH0.001295115.14268662
Start182282662023-09-27 16:24:23375 days ago1695831863IN
0x28Ffb20b...7189E6554
0 ETH0.0022941116.310581
End182218152023-09-26 18:44:11375 days ago1695753851IN
0x28Ffb20b...7189E6554
0 ETH0.001545818.07382954
Start182218082023-09-26 18:42:47375 days ago1695753767IN
0x28Ffb20b...7189E6554
0 ETH0.002825820.09074443
End182152302023-09-25 20:37:35376 days ago1695674255IN
0x28Ffb20b...7189E6554
0 ETH0.002436528.48811654
Start182152272023-09-25 20:36:59376 days ago1695674219IN
0x28Ffb20b...7189E6554
0 ETH0.0033082624.49620153
End182143112023-09-25 17:33:11377 days ago1695663191IN
0x28Ffb20b...7189E6554
0 ETH0.0022793626.65077524
Start182143002023-09-25 17:30:59377 days ago1695663059IN
0x28Ffb20b...7189E6554
0 ETH0.0035391925.16279058
End182142912023-09-25 17:29:11377 days ago1695662951IN
0x28Ffb20b...7189E6554
0 ETH0.0020877624.41055812
Start182142872023-09-25 17:28:23377 days ago1695662903IN
0x28Ffb20b...7189E6554
0 ETH0.003331724.66978949
End182132192023-09-25 13:52:35377 days ago1695649955IN
0x28Ffb20b...7189E6554
0 ETH0.0016844219.69460376
Start182132032023-09-25 13:49:23377 days ago1695649763IN
0x28Ffb20b...7189E6554
0 ETH0.0029606921.04981374
End181995852023-09-23 16:04:11379 days ago1695485051IN
0x28Ffb20b...7189E6554
0 ETH0.0015414818.02338781
Start181995782023-09-23 16:02:47379 days ago1695484967IN
0x28Ffb20b...7189E6554
0 ETH0.0022473516.64069933
End181995552023-09-23 15:58:11379 days ago1695484691IN
0x28Ffb20b...7189E6554
0 ETH0.0008956310.47195098
Start181995462023-09-23 15:56:23379 days ago1695484583IN
0x28Ffb20b...7189E6554
0 ETH0.001369399.7360478
End181963342023-09-23 5:08:11379 days ago1695445691IN
0x28Ffb20b...7189E6554
0 ETH0.000807319.43935718
Start181963242023-09-23 5:06:11379 days ago1695445571IN
0x28Ffb20b...7189E6554
0 ETH0.001192778.48032009
End181963142023-09-23 5:04:11379 days ago1695445451IN
0x28Ffb20b...7189E6554
0 ETH0.000680057.95135403
Start181963072023-09-23 5:02:47379 days ago1695445367IN
0x28Ffb20b...7189E6554
0 ETH0.001156338.5621546
End181957302023-09-23 3:06:35379 days ago1695438395IN
0x28Ffb20b...7189E6554
0 ETH0.000777819.0944039
Start181957242023-09-23 3:05:23379 days ago1695438323IN
0x28Ffb20b...7189E6554
0 ETH0.001290379.17427099
End181943082023-09-22 22:19:35379 days ago1695421175IN
0x28Ffb20b...7189E6554
0 ETH0.000680237.95344546
Start181942962023-09-22 22:17:11379 days ago1695421031IN
0x28Ffb20b...7189E6554
0 ETH0.001078517.98595369
End181935982023-09-22 19:56:35379 days ago1695412595IN
0x28Ffb20b...7189E6554
0 ETH0.000699598.17982437
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TriviaGame

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-09-13
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;


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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        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) {
        return div(a, b, "SafeMath: division by zero");
    }

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

}

interface IERC20 {
    function totalSupply() external view returns (uint);

    function balanceOf(address account) external view returns (uint);

    function transfer(address recipient, uint amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

contract TriviaGame {
    using SafeMath for uint256;
    IERC20 token;
    address public owner;
    address public gameMaster;
    bool public playingActive = true;
    uint public currentGame = 0;
    uint public gameBet = 0;
    bool public gameActive = false;
    uint public gamePot = 0;
    address public revenueWallet;
    uint256 public revenueBps = 800;
    uint256 public burnBps = 200;

    event NewGame(uint id, address[] players, uint pot);
    event Win(address player, uint256 amount);

    constructor() {
        owner = msg.sender;
        revenueWallet = address(0x57938dF55F34b8bA723ec8af9Bec47e28a889744);
        gameMaster = address(0x93C92290b408f9BAe71BF0DB3D3Fb43f919015fD);
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "not authorized");
        _;
    }

    modifier onlyOwnerOrGameMaster() {
        require(msg.sender == gameMaster || msg.sender == owner, "not authorized");
        _;
    }

    receive() external payable {
    }

    
    function start(address[] memory _players, uint _bet) public onlyOwnerOrGameMaster
    {
        require(playingActive == true,"Maintenance in progress");
        require(gameActive == false,"A previous game is still running");
        require(_players.length > 1,"Not enough players");

        uint bet = _bet * 10** 9;
        for (uint16 i = 0; i < _players.length; i++) {
            require(token.allowance(_players[i], address(this)) >= bet ,"Not enough allowance");
            bool isSent = token.transferFrom(_players[i], address(this), bet);
            require(isSent, "Funds transfer failed");
        }

        gamePot = _players.length * bet;
        gameBet = bet;
        gameActive = true;

        emit NewGame(currentGame,_players,gamePot);
    }

    function end(address winner) public onlyOwnerOrGameMaster
    {
        require(playingActive == true,"Maintenance in progress");
        require(gameActive == true,"No game running");
        
        uint256 burnShare = gamePot * burnBps / 10_000;
        uint256 approxRevenueShare = gamePot * revenueBps / 10_000;

        uint256 totalWinnings = gamePot - burnShare - approxRevenueShare;
 
        bool isSent = token.transfer(winner, totalWinnings);
        require(isSent, "Funds transfer failed");
        
        token.transfer(address(0x000000000000000000000000000000000000dEaD), burnShare);

        uint256 realRevenueShare = gamePot - totalWinnings - burnShare;
        isSent = token.transfer(revenueWallet, realRevenueShare);
        require(isSent, "Revenue transfer failed");

        currentGame++;
        gameActive = false;

        emit Win(winner,totalWinnings);
    }

    function refund(address[] memory _players, uint _bet) public onlyOwnerOrGameMaster
    {
        require(playingActive == true,"Maintenance in progress");
        require(gameActive == true,"No game running");

        for (uint16 i = 0; i < _players.length; i++) {
            bool isSent = token.transfer(_players[i], _bet);
            require(isSent, "Funds transfer failed");
        }
        
        currentGame++;
        gameActive = false;
    }
    function toggleGame() external onlyOwner() {
        playingActive = !playingActive;
    }
    function updateRevenueWallet(address _wallet) external onlyOwner {
        revenueWallet = _wallet;
    }

    function updateRevenueBps(uint amount) external onlyOwner {
        revenueBps = amount;
    }

    function updateBurnBps(uint amount) external onlyOwner {
        burnBps = amount;
    }

    function setTokenAddress(address payable _tokenAddress) external onlyOwner() {
       token = IERC20(address(_tokenAddress));
    }

    function setGMAddress(address _gameMaster) external onlyOwner() {
       gameMaster = _gameMaster;
    }

    function withdrawStuckETH() external onlyOwner {
        (bool success, ) = msg.sender.call{ value: address(this).balance } ("");
        require(success, "Transfer failed.");
    }

    function withdrawStuckToken() external onlyOwner {
        uint balance = token.balanceOf(address(this));
        token.transfer(msg.sender, balance);
    }

    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;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"players","type":"address[]"},{"indexed":false,"internalType":"uint256","name":"pot","type":"uint256"}],"name":"NewGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Win","type":"event"},{"inputs":[],"name":"burnBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentGame","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"winner","type":"address"}],"name":"end","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gameActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gameBet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gameMaster","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gamePot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"playingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_players","type":"address[]"},{"internalType":"uint256","name":"_bet","type":"uint256"}],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revenueBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revenueWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gameMaster","type":"address"}],"name":"setGMAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_tokenAddress","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_players","type":"address[]"},{"internalType":"uint256","name":"_bet","type":"uint256"}],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateBurnBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateRevenueBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"updateRevenueWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600260146101000a81548160ff021916908315150217905550600060035560006004556000600560006101000a81548160ff021916908315150217905550600060065561032060085560c860095534801561006057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507357938df55f34b8ba723ec8af9bec47e28a889744600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507393c92290b408f9bae71bf0db3d3fb43f919015fd600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506125038061015b6000396000f3fe60806040526004361061012e5760003560e01c80638c4dd39d116100ab578063d344404d1161006f578063d344404d1461038b578063df86ff7b146103b6578063ee8b8230146103df578063f020044f14610408578063f5648a4f14610433578063ff08aa491461044a57610135565b80638c4dd39d146102b85780638c63efc4146102e15780638da5cb5b1461030a5780638f73e2f114610335578063bdf84ae71461036057610135565b806353deb3d6116100f257806353deb3d61461020b5780635d5089db1461023657806360b663bb1461025f5780637fd60e421461028a57806384dd4452146102a157610135565b8063052c8f7e1461013a5780630db7d8f81461016357806326a4e8d21461018c5780633f78ae3d146101b557806344478425146101e057610135565b3661013557005b600080fd5b34801561014657600080fd5b50610161600480360381019061015c919061199c565b610475565b005b34801561016f57600080fd5b5061018a6004803603810190610185919061199c565b610549565b005b34801561019857600080fd5b506101b360048036038101906101ae9190611a07565b61061d565b005b3480156101c157600080fd5b506101ca6106f0565b6040516101d79190611a4d565b60405180910390f35b3480156101ec57600080fd5b506101f56106f6565b6040516102029190611a77565b60405180910390f35b34801561021757600080fd5b5061022061071c565b60405161022d9190611a4d565b60405180910390f35b34801561024257600080fd5b5061025d60048036038101906102589190611c17565b610722565b005b34801561026b57600080fd5b50610274610bab565b6040516102819190611a4d565b60405180910390f35b34801561029657600080fd5b5061029f610bb1565b005b3480156102ad57600080fd5b506102b6610c6d565b005b3480156102c457600080fd5b506102df60048036038101906102da919061199c565b610e3e565b005b3480156102ed57600080fd5b5061030860048036038101906103039190611c17565b611348565b005b34801561031657600080fd5b5061031f611639565b60405161032c9190611a77565b60405180910390f35b34801561034157600080fd5b5061034a61165f565b6040516103579190611c8e565b60405180910390f35b34801561036c57600080fd5b50610375611672565b6040516103829190611a77565b60405180910390f35b34801561039757600080fd5b506103a0611698565b6040516103ad9190611a4d565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190611ca9565b61169e565b005b3480156103eb57600080fd5b5061040660048036038101906104019190611ca9565b611738565b005b34801561041457600080fd5b5061041d6117d2565b60405161042a9190611c8e565b60405180910390f35b34801561043f57600080fd5b506104486117e5565b005b34801561045657600080fd5b5061045f611924565b60405161046c9190611a4d565b60405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fc90611d33565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d090611d33565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a490611d33565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107cb5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190611d33565b60405180910390fd5b60011515600260149054906101000a900460ff16151514610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790611d9f565b60405180910390fd5b60001515600560009054906101000a900460ff161515146108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad90611e0b565b60405180910390fd5b60018251116108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f190611e77565b60405180910390fd5b6000633b9aca008261090c9190611ec6565b905060005b83518161ffff161015610b31578160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e868461ffff168151811061097257610971611f08565b5b6020026020010151306040518363ffffffff1660e01b8152600401610998929190611f37565b602060405180830381865afa1580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d99190611f75565b1015610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190611fee565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd868461ffff1681518110610a7057610a6f611f08565b5b602002602001015130866040518463ffffffff1660e01b8152600401610a989392919061200e565b6020604051808303816000875af1158015610ab7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adb9190612071565b905080610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b14906120ea565b60405180910390fd5b508080610b2990612118565b915050610911565b50808351610b3f9190611ec6565b600681905550806004819055506001600560006101000a81548160ff0219169083151502179055507fc3176f132510ce7baddc5fa9cec964ab99db36283f484edaa095063de1baeecc60035484600654604051610b9e93929190612200565b60405180910390a1505050565b60035481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3890611d33565b60405180910390fd5b600260149054906101000a900460ff1615600260146101000a81548160ff021916908315150217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490611d33565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d599190611a77565b602060405180830381865afa158015610d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9a9190611f75565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610df792919061223e565b6020604051808303816000875af1158015610e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3a9190612071565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ee75750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d90611d33565b60405180910390fd5b60011515600260149054906101000a900460ff16151514610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390611d9f565b60405180910390fd5b60011515600560009054906101000a900460ff16151514610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc9906122b3565b60405180910390fd5b6000612710600954600654610fe79190611ec6565b610ff19190612302565b905060006127106008546006546110089190611ec6565b6110129190612302565b9050600081836006546110259190612333565b61102f9190612333565b905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86846040518363ffffffff1660e01b815260040161108f92919061223e565b6020604051808303816000875af11580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d29190612071565b905080611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b906120ea565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead866040518363ffffffff1660e01b815260040161117192919061223e565b6020604051808303816000875af1158015611190573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b49190612071565b50600084836006546111c69190612333565b6111d09190612333565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161124f92919061223e565b6020604051808303816000875af115801561126e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112929190612071565b9150816112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb906123b3565b60405180910390fd5b600360008154809291906112e7906123d3565b91905055506000600560006101000a81548160ff0219169083151502179055507f6747c18256028de8cd2fa276e75d6b4193ac34c1b55fa8e71797ac132d32ad39868460405161133892919061223e565b60405180910390a1505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113f15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142790611d33565b60405180910390fd5b60011515600260149054906101000a900460ff16151514611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d90611d9f565b60405180910390fd5b60011515600560009054906101000a900460ff161515146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906122b3565b60405180910390fd5b60005b82518161ffff1610156116015760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858461ffff168151811061154257611541611f08565b5b6020026020010151856040518363ffffffff1660e01b815260040161156892919061223e565b6020604051808303816000875af1158015611587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ab9190612071565b9050806115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e4906120ea565b60405180910390fd5b5080806115f990612118565b9150506114df565b5060036000815480929190611615906123d3565b91905055506000600560006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260149054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590611d33565b60405180910390fd5b8060098190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf90611d33565b60405180910390fd5b8060088190555050565b600560009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90611d33565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161189b9061244c565b60006040518083038185875af1925050503d80600081146118d8576040519150601f19603f3d011682016040523d82523d6000602084013e6118dd565b606091505b5050905080611921576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611918906124ad565b60405180910390fd5b50565b60085481565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119698261193e565b9050919050565b6119798161195e565b811461198457600080fd5b50565b60008135905061199681611970565b92915050565b6000602082840312156119b2576119b1611934565b5b60006119c084828501611987565b91505092915050565b60006119d48261193e565b9050919050565b6119e4816119c9565b81146119ef57600080fd5b50565b600081359050611a01816119db565b92915050565b600060208284031215611a1d57611a1c611934565b5b6000611a2b848285016119f2565b91505092915050565b6000819050919050565b611a4781611a34565b82525050565b6000602082019050611a626000830184611a3e565b92915050565b611a718161195e565b82525050565b6000602082019050611a8c6000830184611a68565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611ae082611a97565b810181811067ffffffffffffffff82111715611aff57611afe611aa8565b5b80604052505050565b6000611b1261192a565b9050611b1e8282611ad7565b919050565b600067ffffffffffffffff821115611b3e57611b3d611aa8565b5b602082029050602081019050919050565b600080fd5b6000611b67611b6284611b23565b611b08565b90508083825260208201905060208402830185811115611b8a57611b89611b4f565b5b835b81811015611bb35780611b9f8882611987565b845260208401935050602081019050611b8c565b5050509392505050565b600082601f830112611bd257611bd1611a92565b5b8135611be2848260208601611b54565b91505092915050565b611bf481611a34565b8114611bff57600080fd5b50565b600081359050611c1181611beb565b92915050565b60008060408385031215611c2e57611c2d611934565b5b600083013567ffffffffffffffff811115611c4c57611c4b611939565b5b611c5885828601611bbd565b9250506020611c6985828601611c02565b9150509250929050565b60008115159050919050565b611c8881611c73565b82525050565b6000602082019050611ca36000830184611c7f565b92915050565b600060208284031215611cbf57611cbe611934565b5b6000611ccd84828501611c02565b91505092915050565b600082825260208201905092915050565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000611d1d600e83611cd6565b9150611d2882611ce7565b602082019050919050565b60006020820190508181036000830152611d4c81611d10565b9050919050565b7f4d61696e74656e616e636520696e2070726f6772657373000000000000000000600082015250565b6000611d89601783611cd6565b9150611d9482611d53565b602082019050919050565b60006020820190508181036000830152611db881611d7c565b9050919050565b7f412070726576696f75732067616d65206973207374696c6c2072756e6e696e67600082015250565b6000611df5602083611cd6565b9150611e0082611dbf565b602082019050919050565b60006020820190508181036000830152611e2481611de8565b9050919050565b7f4e6f7420656e6f75676820706c61796572730000000000000000000000000000600082015250565b6000611e61601283611cd6565b9150611e6c82611e2b565b602082019050919050565b60006020820190508181036000830152611e9081611e54565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ed182611a34565b9150611edc83611a34565b9250828202611eea81611a34565b91508282048414831517611f0157611f00611e97565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050611f4c6000830185611a68565b611f596020830184611a68565b9392505050565b600081519050611f6f81611beb565b92915050565b600060208284031215611f8b57611f8a611934565b5b6000611f9984828501611f60565b91505092915050565b7f4e6f7420656e6f75676820616c6c6f77616e6365000000000000000000000000600082015250565b6000611fd8601483611cd6565b9150611fe382611fa2565b602082019050919050565b6000602082019050818103600083015261200781611fcb565b9050919050565b60006060820190506120236000830186611a68565b6120306020830185611a68565b61203d6040830184611a3e565b949350505050565b61204e81611c73565b811461205957600080fd5b50565b60008151905061206b81612045565b92915050565b60006020828403121561208757612086611934565b5b60006120958482850161205c565b91505092915050565b7f46756e6473207472616e73666572206661696c65640000000000000000000000600082015250565b60006120d4601583611cd6565b91506120df8261209e565b602082019050919050565b60006020820190508181036000830152612103816120c7565b9050919050565b600061ffff82169050919050565b60006121238261210a565b915061ffff820361213757612136611e97565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6121778161195e565b82525050565b6000612189838361216e565b60208301905092915050565b6000602082019050919050565b60006121ad82612142565b6121b7818561214d565b93506121c28361215e565b8060005b838110156121f35781516121da888261217d565b97506121e583612195565b9250506001810190506121c6565b5085935050505092915050565b60006060820190506122156000830186611a3e565b818103602083015261222781856121a2565b90506122366040830184611a3e565b949350505050565b60006040820190506122536000830185611a68565b6122606020830184611a3e565b9392505050565b7f4e6f2067616d652072756e6e696e670000000000000000000000000000000000600082015250565b600061229d600f83611cd6565b91506122a882612267565b602082019050919050565b600060208201905081810360008301526122cc81612290565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061230d82611a34565b915061231883611a34565b925082612328576123276122d3565b5b828204905092915050565b600061233e82611a34565b915061234983611a34565b925082820390508181111561236157612360611e97565b5b92915050565b7f526576656e7565207472616e73666572206661696c6564000000000000000000600082015250565b600061239d601783611cd6565b91506123a882612367565b602082019050919050565b600060208201905081810360008301526123cc81612390565b9050919050565b60006123de82611a34565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124105761240f611e97565b5b600182019050919050565b600081905092915050565b50565b600061243660008361241b565b915061244182612426565b600082019050919050565b600061245782612429565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000612497601083611cd6565b91506124a282612461565b602082019050919050565b600060208201905081810360008301526124c68161248a565b905091905056fea2646970667358221220c47ecd8d73be8c007ee335cf7f5979d383127d050464258a08b21a8d12195f2c64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80638c4dd39d116100ab578063d344404d1161006f578063d344404d1461038b578063df86ff7b146103b6578063ee8b8230146103df578063f020044f14610408578063f5648a4f14610433578063ff08aa491461044a57610135565b80638c4dd39d146102b85780638c63efc4146102e15780638da5cb5b1461030a5780638f73e2f114610335578063bdf84ae71461036057610135565b806353deb3d6116100f257806353deb3d61461020b5780635d5089db1461023657806360b663bb1461025f5780637fd60e421461028a57806384dd4452146102a157610135565b8063052c8f7e1461013a5780630db7d8f81461016357806326a4e8d21461018c5780633f78ae3d146101b557806344478425146101e057610135565b3661013557005b600080fd5b34801561014657600080fd5b50610161600480360381019061015c919061199c565b610475565b005b34801561016f57600080fd5b5061018a6004803603810190610185919061199c565b610549565b005b34801561019857600080fd5b506101b360048036038101906101ae9190611a07565b61061d565b005b3480156101c157600080fd5b506101ca6106f0565b6040516101d79190611a4d565b60405180910390f35b3480156101ec57600080fd5b506101f56106f6565b6040516102029190611a77565b60405180910390f35b34801561021757600080fd5b5061022061071c565b60405161022d9190611a4d565b60405180910390f35b34801561024257600080fd5b5061025d60048036038101906102589190611c17565b610722565b005b34801561026b57600080fd5b50610274610bab565b6040516102819190611a4d565b60405180910390f35b34801561029657600080fd5b5061029f610bb1565b005b3480156102ad57600080fd5b506102b6610c6d565b005b3480156102c457600080fd5b506102df60048036038101906102da919061199c565b610e3e565b005b3480156102ed57600080fd5b5061030860048036038101906103039190611c17565b611348565b005b34801561031657600080fd5b5061031f611639565b60405161032c9190611a77565b60405180910390f35b34801561034157600080fd5b5061034a61165f565b6040516103579190611c8e565b60405180910390f35b34801561036c57600080fd5b50610375611672565b6040516103829190611a77565b60405180910390f35b34801561039757600080fd5b506103a0611698565b6040516103ad9190611a4d565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190611ca9565b61169e565b005b3480156103eb57600080fd5b5061040660048036038101906104019190611ca9565b611738565b005b34801561041457600080fd5b5061041d6117d2565b60405161042a9190611c8e565b60405180910390f35b34801561043f57600080fd5b506104486117e5565b005b34801561045657600080fd5b5061045f611924565b60405161046c9190611a4d565b60405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fc90611d33565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d090611d33565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a490611d33565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107cb5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190611d33565b60405180910390fd5b60011515600260149054906101000a900460ff16151514610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790611d9f565b60405180910390fd5b60001515600560009054906101000a900460ff161515146108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad90611e0b565b60405180910390fd5b60018251116108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f190611e77565b60405180910390fd5b6000633b9aca008261090c9190611ec6565b905060005b83518161ffff161015610b31578160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e868461ffff168151811061097257610971611f08565b5b6020026020010151306040518363ffffffff1660e01b8152600401610998929190611f37565b602060405180830381865afa1580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d99190611f75565b1015610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190611fee565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd868461ffff1681518110610a7057610a6f611f08565b5b602002602001015130866040518463ffffffff1660e01b8152600401610a989392919061200e565b6020604051808303816000875af1158015610ab7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adb9190612071565b905080610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b14906120ea565b60405180910390fd5b508080610b2990612118565b915050610911565b50808351610b3f9190611ec6565b600681905550806004819055506001600560006101000a81548160ff0219169083151502179055507fc3176f132510ce7baddc5fa9cec964ab99db36283f484edaa095063de1baeecc60035484600654604051610b9e93929190612200565b60405180910390a1505050565b60035481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3890611d33565b60405180910390fd5b600260149054906101000a900460ff1615600260146101000a81548160ff021916908315150217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490611d33565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d599190611a77565b602060405180830381865afa158015610d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9a9190611f75565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610df792919061223e565b6020604051808303816000875af1158015610e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3a9190612071565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ee75750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d90611d33565b60405180910390fd5b60011515600260149054906101000a900460ff16151514610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390611d9f565b60405180910390fd5b60011515600560009054906101000a900460ff16151514610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc9906122b3565b60405180910390fd5b6000612710600954600654610fe79190611ec6565b610ff19190612302565b905060006127106008546006546110089190611ec6565b6110129190612302565b9050600081836006546110259190612333565b61102f9190612333565b905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86846040518363ffffffff1660e01b815260040161108f92919061223e565b6020604051808303816000875af11580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d29190612071565b905080611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b906120ea565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead866040518363ffffffff1660e01b815260040161117192919061223e565b6020604051808303816000875af1158015611190573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b49190612071565b50600084836006546111c69190612333565b6111d09190612333565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161124f92919061223e565b6020604051808303816000875af115801561126e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112929190612071565b9150816112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb906123b3565b60405180910390fd5b600360008154809291906112e7906123d3565b91905055506000600560006101000a81548160ff0219169083151502179055507f6747c18256028de8cd2fa276e75d6b4193ac34c1b55fa8e71797ac132d32ad39868460405161133892919061223e565b60405180910390a1505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113f15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142790611d33565b60405180910390fd5b60011515600260149054906101000a900460ff16151514611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d90611d9f565b60405180910390fd5b60011515600560009054906101000a900460ff161515146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906122b3565b60405180910390fd5b60005b82518161ffff1610156116015760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858461ffff168151811061154257611541611f08565b5b6020026020010151856040518363ffffffff1660e01b815260040161156892919061223e565b6020604051808303816000875af1158015611587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ab9190612071565b9050806115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e4906120ea565b60405180910390fd5b5080806115f990612118565b9150506114df565b5060036000815480929190611615906123d3565b91905055506000600560006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260149054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590611d33565b60405180910390fd5b8060098190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf90611d33565b60405180910390fd5b8060088190555050565b600560009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90611d33565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161189b9061244c565b60006040518083038185875af1925050503d80600081146118d8576040519150601f19603f3d011682016040523d82523d6000602084013e6118dd565b606091505b5050905080611921576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611918906124ad565b60405180910390fd5b50565b60085481565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119698261193e565b9050919050565b6119798161195e565b811461198457600080fd5b50565b60008135905061199681611970565b92915050565b6000602082840312156119b2576119b1611934565b5b60006119c084828501611987565b91505092915050565b60006119d48261193e565b9050919050565b6119e4816119c9565b81146119ef57600080fd5b50565b600081359050611a01816119db565b92915050565b600060208284031215611a1d57611a1c611934565b5b6000611a2b848285016119f2565b91505092915050565b6000819050919050565b611a4781611a34565b82525050565b6000602082019050611a626000830184611a3e565b92915050565b611a718161195e565b82525050565b6000602082019050611a8c6000830184611a68565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611ae082611a97565b810181811067ffffffffffffffff82111715611aff57611afe611aa8565b5b80604052505050565b6000611b1261192a565b9050611b1e8282611ad7565b919050565b600067ffffffffffffffff821115611b3e57611b3d611aa8565b5b602082029050602081019050919050565b600080fd5b6000611b67611b6284611b23565b611b08565b90508083825260208201905060208402830185811115611b8a57611b89611b4f565b5b835b81811015611bb35780611b9f8882611987565b845260208401935050602081019050611b8c565b5050509392505050565b600082601f830112611bd257611bd1611a92565b5b8135611be2848260208601611b54565b91505092915050565b611bf481611a34565b8114611bff57600080fd5b50565b600081359050611c1181611beb565b92915050565b60008060408385031215611c2e57611c2d611934565b5b600083013567ffffffffffffffff811115611c4c57611c4b611939565b5b611c5885828601611bbd565b9250506020611c6985828601611c02565b9150509250929050565b60008115159050919050565b611c8881611c73565b82525050565b6000602082019050611ca36000830184611c7f565b92915050565b600060208284031215611cbf57611cbe611934565b5b6000611ccd84828501611c02565b91505092915050565b600082825260208201905092915050565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000611d1d600e83611cd6565b9150611d2882611ce7565b602082019050919050565b60006020820190508181036000830152611d4c81611d10565b9050919050565b7f4d61696e74656e616e636520696e2070726f6772657373000000000000000000600082015250565b6000611d89601783611cd6565b9150611d9482611d53565b602082019050919050565b60006020820190508181036000830152611db881611d7c565b9050919050565b7f412070726576696f75732067616d65206973207374696c6c2072756e6e696e67600082015250565b6000611df5602083611cd6565b9150611e0082611dbf565b602082019050919050565b60006020820190508181036000830152611e2481611de8565b9050919050565b7f4e6f7420656e6f75676820706c61796572730000000000000000000000000000600082015250565b6000611e61601283611cd6565b9150611e6c82611e2b565b602082019050919050565b60006020820190508181036000830152611e9081611e54565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ed182611a34565b9150611edc83611a34565b9250828202611eea81611a34565b91508282048414831517611f0157611f00611e97565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050611f4c6000830185611a68565b611f596020830184611a68565b9392505050565b600081519050611f6f81611beb565b92915050565b600060208284031215611f8b57611f8a611934565b5b6000611f9984828501611f60565b91505092915050565b7f4e6f7420656e6f75676820616c6c6f77616e6365000000000000000000000000600082015250565b6000611fd8601483611cd6565b9150611fe382611fa2565b602082019050919050565b6000602082019050818103600083015261200781611fcb565b9050919050565b60006060820190506120236000830186611a68565b6120306020830185611a68565b61203d6040830184611a3e565b949350505050565b61204e81611c73565b811461205957600080fd5b50565b60008151905061206b81612045565b92915050565b60006020828403121561208757612086611934565b5b60006120958482850161205c565b91505092915050565b7f46756e6473207472616e73666572206661696c65640000000000000000000000600082015250565b60006120d4601583611cd6565b91506120df8261209e565b602082019050919050565b60006020820190508181036000830152612103816120c7565b9050919050565b600061ffff82169050919050565b60006121238261210a565b915061ffff820361213757612136611e97565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6121778161195e565b82525050565b6000612189838361216e565b60208301905092915050565b6000602082019050919050565b60006121ad82612142565b6121b7818561214d565b93506121c28361215e565b8060005b838110156121f35781516121da888261217d565b97506121e583612195565b9250506001810190506121c6565b5085935050505092915050565b60006060820190506122156000830186611a3e565b818103602083015261222781856121a2565b90506122366040830184611a3e565b949350505050565b60006040820190506122536000830185611a68565b6122606020830184611a3e565b9392505050565b7f4e6f2067616d652072756e6e696e670000000000000000000000000000000000600082015250565b600061229d600f83611cd6565b91506122a882612267565b602082019050919050565b600060208201905081810360008301526122cc81612290565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061230d82611a34565b915061231883611a34565b925082612328576123276122d3565b5b828204905092915050565b600061233e82611a34565b915061234983611a34565b925082820390508181111561236157612360611e97565b5b92915050565b7f526576656e7565207472616e73666572206661696c6564000000000000000000600082015250565b600061239d601783611cd6565b91506123a882612367565b602082019050919050565b600060208201905081810360008301526123cc81612390565b9050919050565b60006123de82611a34565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124105761240f611e97565b5b600182019050919050565b600081905092915050565b50565b600061243660008361241b565b915061244182612426565b600082019050919050565b600061245782612429565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000612497601083611cd6565b91506124a282612461565b602082019050919050565b600060208201905081810360008301526124c68161248a565b905091905056fea2646970667358221220c47ecd8d73be8c007ee335cf7f5979d383127d050464258a08b21a8d12195f2c64736f6c63430008120033

Deployed Bytecode Sourcemap

1908:4510:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5234:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5692:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5551:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2186:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2216:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2289;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2947:784;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2085:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5136:92;;;;;;;;;;;;;:::i;:::-;;5998:159;;;;;;;;;;;;;:::i;:::-;;3739:915;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4662:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1987:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2046:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2014:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2119:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5453:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5349:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2149:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5806:184;;;;;;;;;;;;;:::i;:::-;;2251:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5234:107;2700:5;;;;;;;;;;;2686:19;;:10;:19;;;2678:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5326:7:::1;5310:13;;:23;;;;;;;;;;;;;;;;;;5234:107:::0;:::o;5692:106::-;2700:5;;;;;;;;;;;2686:19;;:10;:19;;;2678:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5779:11:::1;5766:10;;:24;;;;;;;;;;;;;;;;;;5692:106:::0;:::o;5551:133::-;2700:5;;;;;;;;;;;2686:19;;:10;:19;;;2678:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5661:13:::1;5638:5;::::0;:38:::1;;;;;;;;;;;;;;;;;;5551:133:::0;:::o;2186:23::-;;;;:::o;2216:28::-;;;;;;;;;;;;;:::o;2289:::-;;;;:::o;2947:784::-;2818:10;;;;;;;;;;;2804:24;;:10;:24;;;:47;;;;2846:5;;;;;;;;;;;2832:19;;:10;:19;;;2804:47;2796:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3070:4:::1;3053:21;;:13;;;;;;;;;;;:21;;;3045:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3134:5;3120:19;;:10;;;;;;;;;;;:19;;;3112:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;3212:1;3194:8;:15;:19;3186:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;3248:8;3266:6;3259:4;:13;;;;:::i;:::-;3248:24;;3288:8;3283:290;3306:8;:15;3302:1;:19;;;3283:290;;;3398:3;3351:5;::::0;::::1;;;;;;;;:15;;;3367:8;3376:1;3367:11;;;;;;;;;;:::i;:::-;;;;;;;;3388:4;3351:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;;3343:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;3441:11;3455:5:::0;::::1;;;;;;;;;;:18;;;3474:8;3483:1;3474:11;;;;;;;;;;:::i;:::-;;;;;;;;3495:4;3502:3;3455:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3441:65;;3529:6;3521:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;3328:245;3323:3;;;;;:::i;:::-;;;;3283:290;;;;3613:3;3595:8;:15;:21;;;;:::i;:::-;3585:7;:31;;;;3637:3;3627:7;:13;;;;3664:4;3651:10;;:17;;;;;;;;;;;;;;;;;;3686:37;3694:11;;3706:8;3715:7;;3686:37;;;;;;;;:::i;:::-;;;;;;;;3034:697;2947:784:::0;;:::o;2085:27::-;;;;:::o;5136:92::-;2700:5;;;;;;;;;;;2686:19;;:10;:19;;;2678:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5207:13:::1;;;;;;;;;;;5206:14;5190:13;;:30;;;;;;;;;;;;;;;;;;5136:92::o:0;5998:159::-;2700:5;;;;;;;;;;;2686:19;;:10;:19;;;2678:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6058:12:::1;6073:5:::0;::::1;;;;;;;;;;:15;;;6097:4;6073:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6058:45;;6114:5;::::0;::::1;;;;;;;;:14;;;6129:10;6141:7;6114:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6047:110;5998:159::o:0;3739:915::-;2818:10;;;;;;;;;;;2804:24;;:10;:24;;;:47;;;;2846:5;;;;;;;;;;;2832:19;;:10;:19;;;2804:47;2796:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3838:4:::1;3821:21;;:13;;;;;;;;;;;:21;;;3813:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3902:4;3888:18;;:10;;;;;;;;;;;:18;;;3880:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3946:17;3986:6;3976:7;;3966;;:17;;;;:::i;:::-;:26;;;;:::i;:::-;3946:46;;4003:26;4055:6;4042:10;;4032:7;;:20;;;;:::i;:::-;:29;;;;:::i;:::-;4003:58;;4074:21;4120:18;4108:9;4098:7;;:19;;;;:::i;:::-;:40;;;;:::i;:::-;4074:64;;4152:11;4166:5:::0;::::1;;;;;;;;;;:14;;;4181:6;4189:13;4166:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4152:51;;4222:6;4214:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;4275:5;::::0;::::1;;;;;;;;:14;;;4298:42;4343:9;4275:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4366:24;4419:9;4403:13;4393:7;;:23;;;;:::i;:::-;:35;;;;:::i;:::-;4366:62;;4448:5;::::0;::::1;;;;;;;;:14;;;4463:13;;;;;;;;;;;4478:16;4448:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4439:56;;4514:6;4506:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;4561:11;;:13;;;;;;;;;:::i;:::-;;;;;;4598:5;4585:10;;:18;;;;;;;;;;;;;;;;;;4621:25;4625:6;4632:13;4621:25;;;;;;;:::i;:::-;;;;;;;;3802:852;;;;;3739:915:::0;:::o;4662:468::-;2818:10;;;;;;;;;;;2804:24;;:10;:24;;;:47;;;;2846:5;;;;;;;;;;;2832:19;;:10;:19;;;2804:47;2796:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4786:4:::1;4769:21;;:13;;;;;;;;;;;:21;;;4761:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4850:4;4836:18;;:10;;;;;;;;;;;:18;;;4828:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;4891:8;4886:174;4909:8;:15;4905:1;:19;;;4886:174;;;4946:11;4960:5:::0;::::1;;;;;;;;;;:14;;;4975:8;4984:1;4975:11;;;;;;;;;;:::i;:::-;;;;;;;;4988:4;4960:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4946:47;;5016:6;5008:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;4931:129;4926:3;;;;;:::i;:::-;;;;4886:174;;;;5080:11;;:13;;;;;;;;;:::i;:::-;;;;;;5117:5;5104:10;;:18;;;;;;;;;;;;;;;;;;4662:468:::0;;:::o;1987:20::-;;;;;;;;;;;;;:::o;2046:32::-;;;;;;;;;;;;;:::o;2014:25::-;;;;;;;;;;;;;:::o;2119:23::-;;;;:::o;5453:90::-;2700:5;;;;;;;;;;;2686:19;;:10;:19;;;2678:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5529:6:::1;5519:7;:16;;;;5453:90:::0;:::o;5349:96::-;2700:5;;;;;;;;;;;2686:19;;:10;:19;;;2678:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5431:6:::1;5418:10;:19;;;;5349:96:::0;:::o;2149:30::-;;;;;;;;;;;;;:::o;5806:184::-;2700:5;;;;;;;;;;;2686:19;;:10;:19;;;2678:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5865:12:::1;5883:10;:15;;5907:21;5883:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5864:71;;;5954:7;5946:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;5853:137;5806:184::o:0;2251:31::-;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:104::-;1221:7;1250:24;1268:5;1250:24;:::i;:::-;1239:35;;1176:104;;;:::o;1286:138::-;1367:32;1393:5;1367:32;:::i;:::-;1360:5;1357:43;1347:71;;1414:1;1411;1404:12;1347:71;1286:138;:::o;1430:155::-;1484:5;1522:6;1509:20;1500:29;;1538:41;1573:5;1538:41;:::i;:::-;1430:155;;;;:::o;1591:345::-;1658:6;1707:2;1695:9;1686:7;1682:23;1678:32;1675:119;;;1713:79;;:::i;:::-;1675:119;1833:1;1858:61;1911:7;1902:6;1891:9;1887:22;1858:61;:::i;:::-;1848:71;;1804:125;1591:345;;;;:::o;1942:77::-;1979:7;2008:5;1997:16;;1942:77;;;:::o;2025:118::-;2112:24;2130:5;2112:24;:::i;:::-;2107:3;2100:37;2025:118;;:::o;2149:222::-;2242:4;2280:2;2269:9;2265:18;2257:26;;2293:71;2361:1;2350:9;2346:17;2337:6;2293:71;:::i;:::-;2149:222;;;;:::o;2377:118::-;2464:24;2482:5;2464:24;:::i;:::-;2459:3;2452:37;2377:118;;:::o;2501:222::-;2594:4;2632:2;2621:9;2617:18;2609:26;;2645:71;2713:1;2702:9;2698:17;2689:6;2645:71;:::i;:::-;2501:222;;;;:::o;2729:117::-;2838:1;2835;2828:12;2852:102;2893:6;2944:2;2940:7;2935:2;2928:5;2924:14;2920:28;2910:38;;2852:102;;;:::o;2960:180::-;3008:77;3005:1;2998:88;3105:4;3102:1;3095:15;3129:4;3126:1;3119:15;3146:281;3229:27;3251:4;3229:27;:::i;:::-;3221:6;3217:40;3359:6;3347:10;3344:22;3323:18;3311:10;3308:34;3305:62;3302:88;;;3370:18;;:::i;:::-;3302:88;3410:10;3406:2;3399:22;3189:238;3146:281;;:::o;3433:129::-;3467:6;3494:20;;:::i;:::-;3484:30;;3523:33;3551:4;3543:6;3523:33;:::i;:::-;3433:129;;;:::o;3568:311::-;3645:4;3735:18;3727:6;3724:30;3721:56;;;3757:18;;:::i;:::-;3721:56;3807:4;3799:6;3795:17;3787:25;;3867:4;3861;3857:15;3849:23;;3568:311;;;:::o;3885:117::-;3994:1;3991;3984:12;4025:710;4121:5;4146:81;4162:64;4219:6;4162:64;:::i;:::-;4146:81;:::i;:::-;4137:90;;4247:5;4276:6;4269:5;4262:21;4310:4;4303:5;4299:16;4292:23;;4363:4;4355:6;4351:17;4343:6;4339:30;4392:3;4384:6;4381:15;4378:122;;;4411:79;;:::i;:::-;4378:122;4526:6;4509:220;4543:6;4538:3;4535:15;4509:220;;;4618:3;4647:37;4680:3;4668:10;4647:37;:::i;:::-;4642:3;4635:50;4714:4;4709:3;4705:14;4698:21;;4585:144;4569:4;4564:3;4560:14;4553:21;;4509:220;;;4513:21;4127:608;;4025:710;;;;;:::o;4758:370::-;4829:5;4878:3;4871:4;4863:6;4859:17;4855:27;4845:122;;4886:79;;:::i;:::-;4845:122;5003:6;4990:20;5028:94;5118:3;5110:6;5103:4;5095:6;5091:17;5028:94;:::i;:::-;5019:103;;4835:293;4758:370;;;;:::o;5134:122::-;5207:24;5225:5;5207:24;:::i;:::-;5200:5;5197:35;5187:63;;5246:1;5243;5236:12;5187:63;5134:122;:::o;5262:139::-;5308:5;5346:6;5333:20;5324:29;;5362:33;5389:5;5362:33;:::i;:::-;5262:139;;;;:::o;5407:684::-;5500:6;5508;5557:2;5545:9;5536:7;5532:23;5528:32;5525:119;;;5563:79;;:::i;:::-;5525:119;5711:1;5700:9;5696:17;5683:31;5741:18;5733:6;5730:30;5727:117;;;5763:79;;:::i;:::-;5727:117;5868:78;5938:7;5929:6;5918:9;5914:22;5868:78;:::i;:::-;5858:88;;5654:302;5995:2;6021:53;6066:7;6057:6;6046:9;6042:22;6021:53;:::i;:::-;6011:63;;5966:118;5407:684;;;;;:::o;6097:90::-;6131:7;6174:5;6167:13;6160:21;6149:32;;6097:90;;;:::o;6193:109::-;6274:21;6289:5;6274:21;:::i;:::-;6269:3;6262:34;6193:109;;:::o;6308:210::-;6395:4;6433:2;6422:9;6418:18;6410:26;;6446:65;6508:1;6497:9;6493:17;6484:6;6446:65;:::i;:::-;6308:210;;;;:::o;6524:329::-;6583:6;6632:2;6620:9;6611:7;6607:23;6603:32;6600:119;;;6638:79;;:::i;:::-;6600:119;6758:1;6783:53;6828:7;6819:6;6808:9;6804:22;6783:53;:::i;:::-;6773:63;;6729:117;6524:329;;;;:::o;6859:169::-;6943:11;6977:6;6972:3;6965:19;7017:4;7012:3;7008:14;6993:29;;6859:169;;;;:::o;7034:164::-;7174:16;7170:1;7162:6;7158:14;7151:40;7034:164;:::o;7204:366::-;7346:3;7367:67;7431:2;7426:3;7367:67;:::i;:::-;7360:74;;7443:93;7532:3;7443:93;:::i;:::-;7561:2;7556:3;7552:12;7545:19;;7204:366;;;:::o;7576:419::-;7742:4;7780:2;7769:9;7765:18;7757:26;;7829:9;7823:4;7819:20;7815:1;7804:9;7800:17;7793:47;7857:131;7983:4;7857:131;:::i;:::-;7849:139;;7576:419;;;:::o;8001:173::-;8141:25;8137:1;8129:6;8125:14;8118:49;8001:173;:::o;8180:366::-;8322:3;8343:67;8407:2;8402:3;8343:67;:::i;:::-;8336:74;;8419:93;8508:3;8419:93;:::i;:::-;8537:2;8532:3;8528:12;8521:19;;8180:366;;;:::o;8552:419::-;8718:4;8756:2;8745:9;8741:18;8733:26;;8805:9;8799:4;8795:20;8791:1;8780:9;8776:17;8769:47;8833:131;8959:4;8833:131;:::i;:::-;8825:139;;8552:419;;;:::o;8977:182::-;9117:34;9113:1;9105:6;9101:14;9094:58;8977:182;:::o;9165:366::-;9307:3;9328:67;9392:2;9387:3;9328:67;:::i;:::-;9321:74;;9404:93;9493:3;9404:93;:::i;:::-;9522:2;9517:3;9513:12;9506:19;;9165:366;;;:::o;9537:419::-;9703:4;9741:2;9730:9;9726:18;9718:26;;9790:9;9784:4;9780:20;9776:1;9765:9;9761:17;9754:47;9818:131;9944:4;9818:131;:::i;:::-;9810:139;;9537:419;;;:::o;9962:168::-;10102:20;10098:1;10090:6;10086:14;10079:44;9962:168;:::o;10136:366::-;10278:3;10299:67;10363:2;10358:3;10299:67;:::i;:::-;10292:74;;10375:93;10464:3;10375:93;:::i;:::-;10493:2;10488:3;10484:12;10477:19;;10136:366;;;:::o;10508:419::-;10674:4;10712:2;10701:9;10697:18;10689:26;;10761:9;10755:4;10751:20;10747:1;10736:9;10732:17;10725:47;10789:131;10915:4;10789:131;:::i;:::-;10781:139;;10508:419;;;:::o;10933:180::-;10981:77;10978:1;10971:88;11078:4;11075:1;11068:15;11102:4;11099:1;11092:15;11119:410;11159:7;11182:20;11200:1;11182:20;:::i;:::-;11177:25;;11216:20;11234:1;11216:20;:::i;:::-;11211:25;;11271:1;11268;11264:9;11293:30;11311:11;11293:30;:::i;:::-;11282:41;;11472:1;11463:7;11459:15;11456:1;11453:22;11433:1;11426:9;11406:83;11383:139;;11502:18;;:::i;:::-;11383:139;11167:362;11119:410;;;;:::o;11535:180::-;11583:77;11580:1;11573:88;11680:4;11677:1;11670:15;11704:4;11701:1;11694:15;11721:332;11842:4;11880:2;11869:9;11865:18;11857:26;;11893:71;11961:1;11950:9;11946:17;11937:6;11893:71;:::i;:::-;11974:72;12042:2;12031:9;12027:18;12018:6;11974:72;:::i;:::-;11721:332;;;;;:::o;12059:143::-;12116:5;12147:6;12141:13;12132:22;;12163:33;12190:5;12163:33;:::i;:::-;12059:143;;;;:::o;12208:351::-;12278:6;12327:2;12315:9;12306:7;12302:23;12298:32;12295:119;;;12333:79;;:::i;:::-;12295:119;12453:1;12478:64;12534:7;12525:6;12514:9;12510:22;12478:64;:::i;:::-;12468:74;;12424:128;12208:351;;;;:::o;12565:170::-;12705:22;12701:1;12693:6;12689:14;12682:46;12565:170;:::o;12741:366::-;12883:3;12904:67;12968:2;12963:3;12904:67;:::i;:::-;12897:74;;12980:93;13069:3;12980:93;:::i;:::-;13098:2;13093:3;13089:12;13082:19;;12741:366;;;:::o;13113:419::-;13279:4;13317:2;13306:9;13302:18;13294:26;;13366:9;13360:4;13356:20;13352:1;13341:9;13337:17;13330:47;13394:131;13520:4;13394:131;:::i;:::-;13386:139;;13113:419;;;:::o;13538:442::-;13687:4;13725:2;13714:9;13710:18;13702:26;;13738:71;13806:1;13795:9;13791:17;13782:6;13738:71;:::i;:::-;13819:72;13887:2;13876:9;13872:18;13863:6;13819:72;:::i;:::-;13901;13969:2;13958:9;13954:18;13945:6;13901:72;:::i;:::-;13538:442;;;;;;:::o;13986:116::-;14056:21;14071:5;14056:21;:::i;:::-;14049:5;14046:32;14036:60;;14092:1;14089;14082:12;14036:60;13986:116;:::o;14108:137::-;14162:5;14193:6;14187:13;14178:22;;14209:30;14233:5;14209:30;:::i;:::-;14108:137;;;;:::o;14251:345::-;14318:6;14367:2;14355:9;14346:7;14342:23;14338:32;14335:119;;;14373:79;;:::i;:::-;14335:119;14493:1;14518:61;14571:7;14562:6;14551:9;14547:22;14518:61;:::i;:::-;14508:71;;14464:125;14251:345;;;;:::o;14602:171::-;14742:23;14738:1;14730:6;14726:14;14719:47;14602:171;:::o;14779:366::-;14921:3;14942:67;15006:2;15001:3;14942:67;:::i;:::-;14935:74;;15018:93;15107:3;15018:93;:::i;:::-;15136:2;15131:3;15127:12;15120:19;;14779:366;;;:::o;15151:419::-;15317:4;15355:2;15344:9;15340:18;15332:26;;15404:9;15398:4;15394:20;15390:1;15379:9;15375:17;15368:47;15432:131;15558:4;15432:131;:::i;:::-;15424:139;;15151:419;;;:::o;15576:89::-;15612:7;15652:6;15645:5;15641:18;15630:29;;15576:89;;;:::o;15671:171::-;15709:3;15732:23;15749:5;15732:23;:::i;:::-;15723:32;;15777:6;15770:5;15767:17;15764:43;;15787:18;;:::i;:::-;15764:43;15834:1;15827:5;15823:13;15816:20;;15671:171;;;:::o;15848:114::-;15915:6;15949:5;15943:12;15933:22;;15848:114;;;:::o;15968:184::-;16067:11;16101:6;16096:3;16089:19;16141:4;16136:3;16132:14;16117:29;;15968:184;;;;:::o;16158:132::-;16225:4;16248:3;16240:11;;16278:4;16273:3;16269:14;16261:22;;16158:132;;;:::o;16296:108::-;16373:24;16391:5;16373:24;:::i;:::-;16368:3;16361:37;16296:108;;:::o;16410:179::-;16479:10;16500:46;16542:3;16534:6;16500:46;:::i;:::-;16578:4;16573:3;16569:14;16555:28;;16410:179;;;;:::o;16595:113::-;16665:4;16697;16692:3;16688:14;16680:22;;16595:113;;;:::o;16744:732::-;16863:3;16892:54;16940:5;16892:54;:::i;:::-;16962:86;17041:6;17036:3;16962:86;:::i;:::-;16955:93;;17072:56;17122:5;17072:56;:::i;:::-;17151:7;17182:1;17167:284;17192:6;17189:1;17186:13;17167:284;;;17268:6;17262:13;17295:63;17354:3;17339:13;17295:63;:::i;:::-;17288:70;;17381:60;17434:6;17381:60;:::i;:::-;17371:70;;17227:224;17214:1;17211;17207:9;17202:14;;17167:284;;;17171:14;17467:3;17460:10;;16868:608;;;16744:732;;;;:::o;17482:593::-;17681:4;17719:2;17708:9;17704:18;17696:26;;17732:71;17800:1;17789:9;17785:17;17776:6;17732:71;:::i;:::-;17850:9;17844:4;17840:20;17835:2;17824:9;17820:18;17813:48;17878:108;17981:4;17972:6;17878:108;:::i;:::-;17870:116;;17996:72;18064:2;18053:9;18049:18;18040:6;17996:72;:::i;:::-;17482:593;;;;;;:::o;18081:332::-;18202:4;18240:2;18229:9;18225:18;18217:26;;18253:71;18321:1;18310:9;18306:17;18297:6;18253:71;:::i;:::-;18334:72;18402:2;18391:9;18387:18;18378:6;18334:72;:::i;:::-;18081:332;;;;;:::o;18419:165::-;18559:17;18555:1;18547:6;18543:14;18536:41;18419:165;:::o;18590:366::-;18732:3;18753:67;18817:2;18812:3;18753:67;:::i;:::-;18746:74;;18829:93;18918:3;18829:93;:::i;:::-;18947:2;18942:3;18938:12;18931:19;;18590:366;;;:::o;18962:419::-;19128:4;19166:2;19155:9;19151:18;19143:26;;19215:9;19209:4;19205:20;19201:1;19190:9;19186:17;19179:47;19243:131;19369:4;19243:131;:::i;:::-;19235:139;;18962:419;;;:::o;19387:180::-;19435:77;19432:1;19425:88;19532:4;19529:1;19522:15;19556:4;19553:1;19546:15;19573:185;19613:1;19630:20;19648:1;19630:20;:::i;:::-;19625:25;;19664:20;19682:1;19664:20;:::i;:::-;19659:25;;19703:1;19693:35;;19708:18;;:::i;:::-;19693:35;19750:1;19747;19743:9;19738:14;;19573:185;;;;:::o;19764:194::-;19804:4;19824:20;19842:1;19824:20;:::i;:::-;19819:25;;19858:20;19876:1;19858:20;:::i;:::-;19853:25;;19902:1;19899;19895:9;19887:17;;19926:1;19920:4;19917:11;19914:37;;;19931:18;;:::i;:::-;19914:37;19764:194;;;;:::o;19964:173::-;20104:25;20100:1;20092:6;20088:14;20081:49;19964:173;:::o;20143:366::-;20285:3;20306:67;20370:2;20365:3;20306:67;:::i;:::-;20299:74;;20382:93;20471:3;20382:93;:::i;:::-;20500:2;20495:3;20491:12;20484:19;;20143:366;;;:::o;20515:419::-;20681:4;20719:2;20708:9;20704:18;20696:26;;20768:9;20762:4;20758:20;20754:1;20743:9;20739:17;20732:47;20796:131;20922:4;20796:131;:::i;:::-;20788:139;;20515:419;;;:::o;20940:233::-;20979:3;21002:24;21020:5;21002:24;:::i;:::-;20993:33;;21048:66;21041:5;21038:77;21035:103;;21118:18;;:::i;:::-;21035:103;21165:1;21158:5;21154:13;21147:20;;20940:233;;;:::o;21179:147::-;21280:11;21317:3;21302:18;;21179:147;;;;:::o;21332:114::-;;:::o;21452:398::-;21611:3;21632:83;21713:1;21708:3;21632:83;:::i;:::-;21625:90;;21724:93;21813:3;21724:93;:::i;:::-;21842:1;21837:3;21833:11;21826:18;;21452:398;;;:::o;21856:379::-;22040:3;22062:147;22205:3;22062:147;:::i;:::-;22055:154;;22226:3;22219:10;;21856:379;;;:::o;22241:166::-;22381:18;22377:1;22369:6;22365:14;22358:42;22241:166;:::o;22413:366::-;22555:3;22576:67;22640:2;22635:3;22576:67;:::i;:::-;22569:74;;22652:93;22741:3;22652:93;:::i;:::-;22770:2;22765:3;22761:12;22754:19;;22413:366;;;:::o;22785:419::-;22951:4;22989:2;22978:9;22974:18;22966:26;;23038:9;23032:4;23028:20;23024:1;23013:9;23009:17;23002:47;23066:131;23192:4;23066:131;:::i;:::-;23058:139;;22785:419;;;:::o

Swarm Source

ipfs://c47ecd8d73be8c007ee335cf7f5979d383127d050464258a08b21a8d12195f2c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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.