Contract 0xB5F5AF1087A8DA62A23b08C00C6ec9af21F397a1 8

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x3c3a881884091e6b6217b546bcb4d351d21d53d7231a86e4f0e54ce87780664ePoint_buy200082492021-10-25 1:00:1057 secs ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.010872686962
0xe74a3bfdda1d1bfdb33e8317692b10d904ee996d811b6eb15ce2bdf146589a10Point_buy200081262021-10-25 0:57:583 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.011092092419
0xbd42eb87108946d09e0660265965c5c1c5326fb15a6506195163e3e8dfa0b5ddPoint_buy200080102021-10-25 0:56:134 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.011086368311
0xc714c405596c4d9a0e9effe97a990ffdb633eb0ee10d3890be04c1383c13961cPoint_buy200079032021-10-25 0:54:346 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.011549801614
0x71ad5b73da1e21181a0eb220b3ea455579c92b132dcb4a0a3c9bb24991d0abcdPoint_buy200077762021-10-25 0:52:228 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.012631308664
0x79d127b4a802cf531365f877f933f0ac6698572eb19901c63681a1fb53b87114Point_buy200076642021-10-25 0:50:3610 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.010795097128
0xc0ad0415e2ac72341972eaaae3e9eb0f6aed7fe94bbfee39a516acaede39edb0Point_buy200075642021-10-25 0:48:4712 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.009859115732
0x6e47610cc04696e2bfa841250bc70c3180b3f5a0e52efa10218b55f6944ddceePoint_buy200074692021-10-25 0:47:2813 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.01000283709
0xf4e90baf98ec32f58626dde2bfb483a03e30dedef13872a2993dcc8579ce12e0Point_buy200073832021-10-25 0:46:1314 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.00984089236
0x6747900fbc23fed214e29096782795d17cd4d80ee3acbe21009bf1226c200579Point_buy200072602021-10-25 0:44:0317 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.009647257039
0x4f1e72680eeba10a8667a2a28d9c31bc37b1dc8256f28e2bbd84732968b73ecfPoint_buy200070872021-10-25 0:41:1819 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.010979058231
0x9cbe25764b77d3d4bc27136aa74b8e62455b141917fcf867fe4bde9eaa416662Point_buy200069832021-10-25 0:39:3721 mins ago0xfec978153e0148de5c4fb45622214ffd6b5171da IN  Rarity: Attributes0 FTM0.010172052899
0xea3f80f727dcd3f74b2c323e0fc824f2dda4cfd26c376cb8d7bb32887eefcf14Point_buy200007982021-10-24 23:08:531 hr 52 mins ago0x60999773a86345ef2ce54954cc253e32e17f9df3 IN  Rarity: Attributes0 FTM0.011384444825
0x3e2be3d120ef96a0359df4e00ef6d45279a042b15b61b457ed57e57bed10213fPoint_buy199997862021-10-24 22:55:242 hrs 5 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.010639151334
0x812f4c9e1d5b98085273ea7ed6e74c441c3d832cc2bc7d23c1811204cd9524c6Point_buy199996152021-10-24 22:53:102 hrs 7 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.012071656696
0xab546308e6e1e6bbf4862722a5076e7ddec869c75fce449c791416f6527eaab9Point_buy199995442021-10-24 22:52:122 hrs 8 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.012338765619
0x0ae1b0ff56549bd67dd21cbe7590f03cd21dfd113aacfbb3ce37e10aee7a37f4Point_buy199994782021-10-24 22:51:242 hrs 9 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.012282836172
0xa41f546c08097470ff953f05f3d901e87ae4eec4613fd696f550abb1fe6eaf0fPoint_buy199994102021-10-24 22:50:292 hrs 10 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.012412886367
0xa1ab1a54218b942ffe47ee1f76232c4a9a9f86de9ebee55f65a8e12f9478f4d6Point_buy199993432021-10-24 22:49:392 hrs 11 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.012412886367
0xc9b5563b8dfef20ff4c7788d6a7b498a26a7b8ca41a22ab985aa49c14a1c0899Point_buy199992682021-10-24 22:48:442 hrs 12 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.012498336358
0xf0aca9355038bb57444a29ad6a34db25da01e501d26feccb99f7f2d64cdde7d1Point_buy199992082021-10-24 22:47:542 hrs 13 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.01151547861
0x76255b308d56af55ac1aefebc437937187f251f819e742ee3250bd464817e75bPoint_buy199991312021-10-24 22:46:442 hrs 14 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.01094338304
0xea03c290936e21af3fd053908edeffcb6cbcc63e2c051d038c9ddc6464379758Point_buy199990612021-10-24 22:45:432 hrs 15 mins ago0x9939e3e725be346d240cb59c1530ad9cca74b14e IN  Rarity: Attributes0 FTM0.010353286553
0x5e6f2561747de72feedd1049d10c7cc4b9ed338be0fc53e65079a20ff47ba3c5Point_buy199961892021-10-24 22:06:212 hrs 54 mins ago0x22e21e88e409fc30f915b2180f201a6ae48fd808 IN  Rarity: Attributes0 FTM0.011385187136
0x2776685131e22136cc047d3191aae9f3d538a05ee21cd416cb32ceda428e3dc9Point_buy199958462021-10-24 22:00:323 hrs ago0x40ab9dab47a4138ba17691f805df36f5490e083c IN  Rarity: Attributes0 FTM0.010694423284
[ Download CSV Export 
Latest 5 internal transactions
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
rarity_attributes

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license
/**
 *Submitted for verification at FtmScan.com on 2021-09-06
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

interface rarity {
    function level(uint) external view returns (uint);
    function getApproved(uint) external view returns (address);
    function ownerOf(uint) external view returns (address);
}

contract rarity_attributes {
    
    uint constant POINT_BUY = 32;
    rarity constant rm = rarity(0xce761D788DF608BD21bdd59d6f4B54b2e27F25Bb);
    
    struct ability_score {
        uint32 strength;
        uint32 dexterity;
        uint32 constitution;
        uint32 intelligence;
        uint32 wisdom;
        uint32 charisma;
    }
    
    mapping(uint => ability_score) public ability_scores;
    mapping(uint => uint) public level_points_spent;
    mapping(uint => bool) public character_created;
    
    event Created(address indexed creator, uint summoner, uint32 strength, uint32 dexterity, uint32 constitution, uint32 intelligence, uint32 wisdom, uint32 charisma);
    event Leveled(address indexed leveler, uint summoner, uint32 strength, uint32 dexterity, uint32 constitution, uint32 intelligence, uint32 wisdom, uint32 charisma);
    
    function _isApprovedOrOwner(uint _summoner) internal view returns (bool) {
        return rm.getApproved(_summoner) == msg.sender || rm.ownerOf(_summoner) == msg.sender;
    }
    
    function point_buy(uint _summoner, uint32 _str, uint32 _dex, uint32 _const, uint32 _int, uint32 _wis, uint32 _cha) external {
        require(_isApprovedOrOwner(_summoner));
        require(!character_created[_summoner]);
        require(calculate_point_buy(_str, _dex, _const, _int, _wis, _cha) == POINT_BUY);
        character_created[_summoner] = true;
        
        ability_scores[_summoner] = ability_score(_str, _dex, _const, _int, _wis, _cha);
        emit Created(msg.sender, _summoner, _str, _dex, _const, _int, _wis, _cha);
    }
    
    function calculate_point_buy(uint _str, uint _dex, uint _const, uint _int, uint _wis, uint _cha) public pure returns (uint) {
        return calc(_str)+calc(_dex)+calc(_const)+calc(_int)+calc(_wis)+calc(_cha);
    }
    
    function calc(uint score) public pure returns (uint) {
        if (score <= 14) {
            return score - 8;
        } else {
            return ((score - 8)**2)/6;
        }
    }
    
    function _increase_base(uint _summoner) internal {
        require(_isApprovedOrOwner(_summoner));
        require(character_created[_summoner]);
        uint _points_spent = level_points_spent[_summoner];
        require(abilities_by_level(rm.level(_summoner)) - _points_spent > 0);
        level_points_spent[_summoner] = _points_spent+1;
    }
    
    function increase_strength(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.strength = _attr.strength+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_dexterity(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.dexterity = _attr.dexterity+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_constitution(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.constitution = _attr.constitution+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_intelligence(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.intelligence = _attr.intelligence+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_wisdom(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.wisdom = _attr.wisdom+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    function increase_charisma(uint _summoner) external {
        _increase_base(_summoner);
        ability_score storage _attr = ability_scores[_summoner];
        _attr.charisma = _attr.charisma+1;
        emit Leveled(msg.sender, _summoner, _attr.strength, _attr.dexterity, _attr.constitution, _attr.intelligence, _attr.wisdom, _attr.charisma);
    }
    
    
    function abilities_by_level(uint current_level) public pure returns (uint) {
        return current_level / 4;
    }
    
    
    function tokenURI(uint256 _summoner) public view returns (string memory) {
        string memory output;
        {
        string[7] memory parts;
        ability_score memory _attr = ability_scores[_summoner];
        parts[0] = '<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><style>.base { fill: white; font-family: serif; font-size: 14px; }</style><rect width="100%" height="100%" fill="black" /><text x="10" y="20" class="base">';

        parts[1] = string(abi.encodePacked("strength", " ", toString(_attr.strength), '</text><text x="10" y="40" class="base">'));

        parts[2] = string(abi.encodePacked("dexterity", " ", toString(_attr.dexterity), '</text><text x="10" y="60" class="base">'));

        parts[3] = string(abi.encodePacked("constitution", " ", toString(_attr.constitution), '</text><text x="10" y="60" class="base">'));

        parts[4] = string(abi.encodePacked("intelligence", " ", toString(_attr.intelligence),  '</text><text x="10" y="60" class="base">'));

        parts[5] = string(abi.encodePacked("wisdom", " ", toString(_attr.wisdom), '</text><text x="10" y="60" class="base">'));

        parts[6] = string(abi.encodePacked("charisma", " ", toString(_attr.charisma), '</text></svg>'));
        
        output = string(abi.encodePacked(parts[0], parts[1], parts[2], parts[3], parts[4], parts[5], parts[6]));
        }
        string memory json = Base64.encode(bytes(string(abi.encodePacked('{"name": "summoner #', toString(_summoner), '", "description": "Rarity is achieved via an active economy, summoners must level, gain feats, learn spells, to be able to craft gear. This allows for market driven rarity while allowing an ever growing economy. Feats, spells, and summoner gear is ommitted as part of further expansions.", "image": "data:image/svg+xml;base64,', Base64.encode(bytes(output)), '"}'))));
        output = string(abi.encodePacked('data:application/json;base64,', json));

        return output;
    }
    
    function toString(uint256 value) internal pure returns (string memory) {
    // Inspired by OraclizeAPI's implementation - MIT license
    // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }
}

/// [MIT License]
/// @title Base64
/// @notice Provides a function for encoding some bytes in base64
/// @author Brecht Devos <[email protected]>
library Base64 {
    bytes internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

    /// @notice Encodes some bytes to the base64 representation
    function encode(bytes memory data) internal pure returns (string memory) {
        uint256 len = data.length;
        if (len == 0) return "";

        // multiply by 4/3 rounded up
        uint256 encodedLen = 4 * ((len + 2) / 3);

        // Add some extra buffer at the end
        bytes memory result = new bytes(encodedLen + 32);

        bytes memory table = TABLE;

        assembly {
            let tablePtr := add(table, 1)
            let resultPtr := add(result, 32)

            for {
                let i := 0
            } lt(i, len) {

            } {
                i := add(i, 3)
                let input := and(mload(add(data, i)), 0xffffff)

                let out := mload(add(tablePtr, and(shr(18, input), 0x3F)))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(shr(12, input), 0x3F))), 0xFF))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(shr(6, input), 0x3F))), 0xFF))
                out := shl(8, out)
                out := add(out, and(mload(add(tablePtr, and(input, 0x3F))), 0xFF))
                out := shl(224, out)

                mstore(resultPtr, out)

                resultPtr := add(resultPtr, 4)
            }

            switch mod(len, 3)
            case 1 {
                mstore(sub(resultPtr, 2), shl(240, 0x3d3d))
            }
            case 2 {
                mstore(sub(resultPtr, 1), shl(248, 0x3d))
            }

            mstore(result, encodedLen)
        }

        return string(result);
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"uint256","name":"summoner","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"strength","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"dexterity","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"constitution","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"intelligence","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"wisdom","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"charisma","type":"uint32"}],"name":"Created","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"leveler","type":"address"},{"indexed":false,"internalType":"uint256","name":"summoner","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"strength","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"dexterity","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"constitution","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"intelligence","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"wisdom","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"charisma","type":"uint32"}],"name":"Leveled","type":"event"},{"inputs":[{"internalType":"uint256","name":"current_level","type":"uint256"}],"name":"abilities_by_level","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ability_scores","outputs":[{"internalType":"uint32","name":"strength","type":"uint32"},{"internalType":"uint32","name":"dexterity","type":"uint32"},{"internalType":"uint32","name":"constitution","type":"uint32"},{"internalType":"uint32","name":"intelligence","type":"uint32"},{"internalType":"uint32","name":"wisdom","type":"uint32"},{"internalType":"uint32","name":"charisma","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"score","type":"uint256"}],"name":"calc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_str","type":"uint256"},{"internalType":"uint256","name":"_dex","type":"uint256"},{"internalType":"uint256","name":"_const","type":"uint256"},{"internalType":"uint256","name":"_int","type":"uint256"},{"internalType":"uint256","name":"_wis","type":"uint256"},{"internalType":"uint256","name":"_cha","type":"uint256"}],"name":"calculate_point_buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"character_created","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_charisma","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_constitution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_dexterity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_intelligence","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_strength","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"increase_wisdom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"level_points_spent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"},{"internalType":"uint32","name":"_str","type":"uint32"},{"internalType":"uint32","name":"_dex","type":"uint32"},{"internalType":"uint32","name":"_const","type":"uint32"},{"internalType":"uint32","name":"_int","type":"uint32"},{"internalType":"uint32","name":"_wis","type":"uint32"},{"internalType":"uint32","name":"_cha","type":"uint32"}],"name":"point_buy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_summoner","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50611b42806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063bf2bf8951161008c578063de99903911610066578063de99903914610261578063e0d92c4a14610274578063f895543214610287578063fe6676b3146102ba57600080fd5b8063bf2bf8951461021b578063c3c2407c1461022e578063c87b56dd1461024157600080fd5b806377d9e11c116100c857806377d9e11c1461013d578063849ada74146101d557806396cf4c4b146101f55780639ed24c8e1461020857600080fd5b806305934d9c146100ef57806338c9027a1461010457806351c232261461012a575b600080fd5b6101026100fd366004611160565b6102cd565b005b610117610112366004611160565b610385565b6040519081526020015b60405180910390f35b610117610138366004611160565b6103c8565b61019661014b366004611160565b60006020819052908152604090205463ffffffff80821691600160201b8104821691600160401b8204811691600160601b8104821691600160801b8204811691600160a01b90041686565b6040805163ffffffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c001610121565b6101176101e3366004611160565b60016020526000908152604090205481565b610102610203366004611160565b6103d5565b610117610216366004611192565b61047d565b610102610229366004611160565b6104f2565b61010261023c3660046111d5565b610598565b61025461024f366004611160565b6107d6565b6040516101219190611713565b61010261026f366004611160565b610a74565b610102610282366004611160565b610b09565b6102aa610295366004611160565b60026020526000908152604090205460ff1681565b6040519015158152602001610121565b6101026102c8366004611160565b610bb8565b6102d681610c5f565b600081815260208190526040902080546102fe90600160201b900463ffffffff166001611798565b815467ffffffff00000000198116600160201b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793908104821692600160401b8204831692600160601b8304811692600160801b8104821692600160a01b90910490911690611746565b60405180910390a25050565b6000600e82116103a05761039a6008836118e1565b92915050565b600660026103af6008856118e1565b6103b99190611817565b61039a91906117c0565b919050565b600061039a6004836117c0565b6103de81610c5f565b6000818152602081905260409020805461040690600160601b900463ffffffff166001611798565b815463ffffffff60601b198116600160601b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793600160201b8104831693600160401b8204841693928204831692600160801b8304811692600160a01b90041690611746565b600061048882610385565b61049184610385565b61049a86610385565b6104a388610385565b6104ac8a610385565b6104b58c610385565b6104bf9190611780565b6104c99190611780565b6104d39190611780565b6104dd9190611780565b6104e79190611780565b979650505050505050565b6104fb81610c5f565b6000818152602081905260409020805461052390600160a01b900463ffffffff166001611798565b815463ffffffff60a01b198116600160a01b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793600160201b8104831693600160401b8204841693600160601b8304811693600160801b8404821693041690611746565b6105a187610d5c565b6105aa57600080fd5b60008781526002602052604090205460ff16156105c657600080fd5b60206105fa8763ffffffff168763ffffffff168763ffffffff168763ffffffff168763ffffffff168763ffffffff1661047d565b1461060457600080fd5b60016002600089815260200190815260200160002060006101000a81548160ff0219169083151502179055506040518060c001604052808763ffffffff1681526020018663ffffffff1681526020018563ffffffff1681526020018463ffffffff1681526020018363ffffffff1681526020018263ffffffff1681525060008089815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160086101000a81548163ffffffff021916908363ffffffff160217905550606082015181600001600c6101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160106101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160000160146101000a81548163ffffffff021916908363ffffffff160217905550905050336001600160a01b03167f471b798bfd4e4756e197917dd3ba2cbf782f09c2deef48cd5fa694cdba976328888888888888886040516107c59796959493929190611746565b60405180910390a250505050505050565b6060806107e16110f5565b60008481526020818152604091829020825160c081018452905463ffffffff8082168352600160201b8204811683850152600160401b8204811683860152600160601b820481166060840152600160801b820481166080840152600160a01b9091041660a08201528251610120810190935260fd8084529092916119b090830139825280516108759063ffffffff16610e89565b6040516020016108859190611441565b60408051808303601f190181529190526020808401919091528101516108b09063ffffffff16610e89565b6040516020016108c09190611405565b60408051601f19818403018152919052826002602002015260408101516108ec9063ffffffff16610e89565b6040516020016108fc919061138d565b60408051601f19818403018152919052826003602002015260608101516109289063ffffffff16610e89565b60405160200161093891906114b3565b60408051601f19818403018152919052826004602002015260808101516109649063ffffffff16610e89565b60405160200161097491906113cc565b60408051601f19818403018152919052826005602002015260a08101516109a09063ffffffff16610e89565b6040516020016109b0919061133c565b60408051808303601f1901815291815260c084018290528351602080860151868401516060880151608089015160a08a015196516109fa98969794969395929491939192016112aa565b604051602081830303815290604052925050506000610a49610a1b85610e89565b610a2484610f8f565b604051602001610a35929190611529565b604051602081830303815290604052610f8f565b905080604051602001610a5c91906114e4565b60408051601f19818403018152919052949350505050565b610a7d81610c5f565b60008181526020819052604090208054610a9e9063ffffffff166001611798565b815463ffffffff191663ffffffff9182169081178084556040513393600080516020611aed833981519152936103799388939192600160201b8204811692600160401b8304821692600160601b8104831692600160801b8204811692600160a01b9092041690611746565b610b1281610c5f565b60008181526020819052604090208054610b3a90600160401b900463ffffffff166001611798565b81546bffffffff0000000000000000198116600160401b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793600160201b8104831693918104831692600160601b8204811692600160801b8304821692600160a01b900490911690611746565b610bc181610c5f565b60008181526020819052604090208054610be990600160801b900463ffffffff166001611798565b815463ffffffff60801b198116600160801b63ffffffff93841681029182178086556040513395600080516020611aed83398151915295610379958a959183169083161793600160201b8104831693600160401b8204841693600160601b83048116938304811692600160a01b90041690611746565b610c6881610d5c565b610c7157600080fd5b60008181526002602052604090205460ff16610c8c57600080fd5b6000818152600160205260408082205490516302e2c6f960e11b8152600481018490529091908290610d279073ce761d788df608bd21bdd59d6f4b54b2e27f25bb906305c58df29060240160206040518083038186803b158015610cef57600080fd5b505afa158015610d03573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101389190611179565b610d3191906118e1565b11610d3b57600080fd5b610d46816001611780565b6000928352600160205260409092209190915550565b60405163020604bf60e21b815260048101829052600090339073ce761d788df608bd21bdd59d6f4b54b2e27f25bb9063081812fc9060240160206040518083038186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de49190611130565b6001600160a01b0316148061039a57506040516331a9108f60e11b815260048101839052339073ce761d788df608bd21bdd59d6f4b54b2e27f25bb90636352211e9060240160206040518083038186803b158015610e4157600080fd5b505afa158015610e55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e799190611130565b6001600160a01b03161492915050565b606081610ead5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610ed75780610ec181611928565b9150610ed09050600a836117c0565b9150610eb1565b60008167ffffffffffffffff811115610ef257610ef2611999565b6040519080825280601f01601f191660200182016040528015610f1c576020820181803683370190505b5090505b8415610f8757610f316001836118e1565b9150610f3e600a86611943565b610f49906030611780565b60f81b818381518110610f5e57610f5e611983565b60200101906001600160f81b031916908160001a905350610f80600a866117c0565b9450610f20565b949350505050565b805160609080610faf575050604080516020810190915260008152919050565b60006003610fbe836002611780565b610fc891906117c0565b610fd39060046118c2565b90506000610fe2826020611780565b67ffffffffffffffff811115610ffa57610ffa611999565b6040519080825280601f01601f191660200182016040528015611024576020820181803683370190505b5090506000604051806060016040528060408152602001611aad604091399050600181016020830160005b868110156110b0576003818a01810151603f601282901c8116860151600c83901c8216870151600684901c831688015192909316870151600891821b60ff94851601821b92841692909201901b91160160e01b83526004909201910161104f565b5060038606600181146110ca57600281146110db576110e7565b613d3d60f01b6001198301526110e7565b603d60f81b6000198301525b505050918152949350505050565b6040518060e001604052806007905b60608152602001906001900390816111045790505090565b803563ffffffff811681146103c357600080fd5b60006020828403121561114257600080fd5b81516001600160a01b038116811461115957600080fd5b9392505050565b60006020828403121561117257600080fd5b5035919050565b60006020828403121561118b57600080fd5b5051919050565b60008060008060008060c087890312156111ab57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600080600080600060e0888a0312156111f057600080fd5b873596506112006020890161111c565b955061120e6040890161111c565b945061121c6060890161111c565b935061122a6080890161111c565b925061123860a0890161111c565b915061124660c0890161111c565b905092959891949750929550565b600081516112668185602086016118f8565b9290920192915050565b7f3c2f746578743e3c7465787420783d2231302220793d2236302220636c6173738152671e913130b9b2911f60c11b602082015260280190565b6000885160206112bd8285838e016118f8565b8951918401916112d08184848e016118f8565b89519201916112e28184848d016118f8565b88519201916112f48184848c016118f8565b87519201916113068184848b016118f8565b86519201916113188184848a016118f8565b855192019161132a81848489016118f8565b919091019a9950505050505050505050565b676368617269736d6160c01b8152600160fd1b6008820152600082516113698160098501602087016118f8565b6c1e17ba32bc3a1f1e17b9bb339f60991b6009939091019283015250601601919050565b6b31b7b739ba34ba3aba34b7b760a11b8152600160fd1b600c820152600082516113be81600d8501602087016118f8565b610f87600d82850101611270565b65776973646f6d60d01b8152600160fd1b6006820152600082516113f78160078501602087016118f8565b610f87600782850101611270565b6864657874657269747960b81b8152600160fd1b60098201526000825161143381600a8501602087016118f8565b610f87600a82850101611270565b670e6e8e4cadccee8d60c31b8152600160fd1b60088201526000825161146e8160098501602087016118f8565b7f3c2f746578743e3c7465787420783d2231302220793d2234302220636c6173736009939091019283015250671e913130b9b2911f60c11b6029820152603101919050565b6b696e74656c6c6967656e636560a01b8152600160fd1b600c820152600082516113be81600d8501602087016118f8565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161151c81601d8501602087016118f8565b91909101601d0192915050565b737b226e616d65223a202273756d6d6f6e6572202360601b815282516000906115598160148501602088016118f8565b7f222c20226465736372697074696f6e223a2022526172697479206973206163686014918401918201527f69657665642076696120616e206163746976652065636f6e6f6d792c2073756d60348201527f6d6f6e657273206d757374206c6576656c2c206761696e2066656174732c206c60548201527f6561726e207370656c6c732c20746f2062652061626c6520746f20637261667460748201527f20676561722e205468697320616c6c6f777320666f72206d61726b657420647260948201527f6976656e20726172697479207768696c6520616c6c6f77696e6720616e20657660b48201527f65722067726f77696e672065636f6e6f6d792e2046656174732c207370656c6c60d48201527f732c20616e642073756d6d6f6e65722067656172206973206f6d6d697474656460f48201527f2061732070617274206f66206675727468657220657870616e73696f6e732e226101148201527f2c2022696d616765223a2022646174613a696d6167652f7376672b786d6c3b6261013482015265185cd94d8d0b60d21b61015482015261170a6116fc61015a830186611254565b61227d60f01b815260020190565b95945050505050565b60208152600082518060208401526117328160408501602087016118f8565b601f01601f19169190910160400192915050565b96875263ffffffff95861660208801529385166040870152918416606086015283166080850152821660a08401521660c082015260e00190565b6000821982111561179357611793611957565b500190565b600063ffffffff8083168185168083038211156117b7576117b7611957565b01949350505050565b6000826117cf576117cf61196d565b500490565b600181815b8085111561180f5781600019048211156117f5576117f5611957565b8085161561180257918102915b93841c93908002906117d9565b509250929050565b600061115960ff8416836000826118305750600161039a565b8161183d5750600061039a565b8160018114611853576002811461185d57611879565b600191505061039a565b60ff84111561186e5761186e611957565b50506001821b61039a565b5060208310610133831016604e8410600b841016171561189c575081810a61039a565b6118a683836117d4565b80600019048211156118ba576118ba611957565b029392505050565b60008160001904831182151516156118dc576118dc611957565b500290565b6000828210156118f3576118f3611957565b500390565b60005b838110156119135781810151838201526020016118fb565b83811115611922576000848401525b50505050565b600060001982141561193c5761193c611957565b5060010190565b6000826119525761195261196d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207072657365727665417370656374526174696f3d22784d696e594d696e206d656574222076696577426f783d223020302033353020333530223e3c7374796c653e2e62617365207b2066696c6c3a2077686974653b20666f6e742d66616d696c793a2073657269663b20666f6e742d73697a653a20313470783b207d3c2f7374796c653e3c726563742077696474683d223130302522206865696768743d2231303025222066696c6c3d22626c61636b22202f3e3c7465787420783d2231302220793d2232302220636c6173733d2262617365223e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f207b63f0a8632134b76c8dd10b38a52179fc29b3fa01eb51e4662e4c720ec8d4a26469706673582212203528791a508493f9ea8325516c2add82400b3f6069ac9a9a8437cf65ea9e76d464736f6c63430008070033

Deployed ByteCode Sourcemap

267:7548:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3058:358;;;;;;:::i;:::-;;:::i;:::-;;2126:189;;;;;;:::i;:::-;;:::i;:::-;;;11150:25:1;;;11138:2;11123:18;2126:189:0;;;;;;;;4920:118;;;;;;:::i;:::-;;:::i;630:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;630:52:0;;;;;-1:-1:-1;;;630:52:0;;;;;-1:-1:-1;;;630:52:0;;;;;-1:-1:-1;;;630:52:0;;;;;-1:-1:-1;;;630:52:0;;;;;;;;;12154:10:1;12191:15;;;12173:34;;12243:15;;;12238:2;12223:18;;12216:43;12295:15;;;12275:18;;;12268:43;;;;12347:15;;;12342:2;12327:18;;12320:43;12400:15;;12394:3;12379:19;;12372:44;12453:15;;;12447:3;12432:19;;12425:44;12131:3;12116:19;630:52:0;11869:606:1;689:47:0;;;;;;:::i;:::-;;;;;;;;;;;;;;3807:367;;;;;;:::i;:::-;;:::i;1897:217::-;;;;;;:::i;:::-;;:::i;4547:355::-;;;;;;:::i;:::-;;:::i;1335:550::-;;;;;;:::i;:::-;;:::i;5056:2029::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2691:355::-;;;;;;:::i;:::-;;:::i;3428:367::-;;;;;;:::i;:::-;;:::i;743:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10589:14:1;;10582:22;10564:41;;10552:2;10537:18;743:46:0;10424:187:1;4186:349:0;;;;;;:::i;:::-;;:::i;3058:358::-;3122:25;3137:9;3122:14;:25::i;:::-;3158:27;3188:25;;;;;;;;;;3242:15;;:17;;-1:-1:-1;;;3242:15:0;;;;3258:1;3242:17;:::i;:::-;3224:35;;-1:-1:-1;;3224:35:0;;-1:-1:-1;;;3224:35:0;;;;;;;;;;;;3275:133;;3283:10;;-1:-1:-1;;;;;;;;;;;3275:133:0;;;3295:9;;3306:14;;;;;;;;3322:15;;;;;;-1:-1:-1;;;3339:18:0;;;;;-1:-1:-1;;;3359:18:0;;;;;-1:-1:-1;;;3379:12:0;;;;;-1:-1:-1;;;3393:14:0;;;;;;;3275:133;:::i;:::-;;;;;;;;3111:305;3058:358;:::o;2126:189::-;2173:4;2203:2;2194:5;:11;2190:118;;2229:9;2237:1;2229:5;:9;:::i;:::-;2222:16;2126:189;-1:-1:-1;;2126:189:0:o;2190:118::-;2295:1;2292;2280:9;2288:1;2280:5;:9;:::i;:::-;2279:14;;;;:::i;:::-;2278:18;;;;:::i;2190:118::-;2126:189;;;:::o;4920:118::-;4989:4;5013:17;5029:1;5013:13;:17;:::i;3807:367::-;3874:25;3889:9;3874:14;:25::i;:::-;3910:27;3940:25;;;;;;;;;;3997:18;;:20;;-1:-1:-1;;;3997:18:0;;;;4016:1;3997:20;:::i;:::-;3976:41;;-1:-1:-1;;;;3976:41:0;;-1:-1:-1;;;3976:41:0;;;;;;;;;;;;4033:133;;4041:10;;-1:-1:-1;;;;;;;;;;;4033:133:0;;;4053:9;;4064:14;;;;;;;;-1:-1:-1;;;4080:15:0;;;;;-1:-1:-1;;;4097:18:0;;;;;4117;;;;;;-1:-1:-1;;;4137:12:0;;;;;-1:-1:-1;;;4151:14:0;;;;4033:133;:::i;1897:217::-;2015:4;2096:10;2101:4;2096;:10::i;:::-;2085;2090:4;2085;:10::i;:::-;2074;2079:4;2074;:10::i;:::-;2061:12;2066:6;2061:4;:12::i;:::-;2050:10;2055:4;2050;:10::i;:::-;2039;2044:4;2039;:10::i;:::-;:21;;;;:::i;:::-;:34;;;;:::i;:::-;:45;;;;:::i;:::-;:56;;;;:::i;:::-;:67;;;;:::i;:::-;2032:74;1897:217;-1:-1:-1;;;;;;;1897:217:0:o;4547:355::-;4610:25;4625:9;4610:14;:25::i;:::-;4646:27;4676:25;;;;;;;;;;4729:14;;:16;;-1:-1:-1;;;4729:14:0;;;;4744:1;4729:16;:::i;:::-;4712:33;;-1:-1:-1;;;;4712:33:0;;-1:-1:-1;;;4712:33:0;;;;;;;;;;;;4761:133;;4769:10;;-1:-1:-1;;;;;;;;;;;4761:133:0;;;4781:9;;4792:14;;;;;;;;-1:-1:-1;;;4808:15:0;;;;;-1:-1:-1;;;4825:18:0;;;;;-1:-1:-1;;;4845:18:0;;;;;-1:-1:-1;;;4865:12:0;;;;;4879:14;;;4761:133;:::i;1335:550::-;1478:29;1497:9;1478:18;:29::i;:::-;1470:38;;;;;;1528:28;;;;:17;:28;;;;;;;;1527:29;1519:38;;;;;;333:2;1576:57;1596:4;1576:57;;1602:4;1576:57;;1608:6;1576:57;;1616:4;1576:57;;1622:4;1576:57;;1628:4;1576:57;;:19;:57::i;:::-;:70;1568:79;;;;;;1689:4;1658:17;:28;1676:9;1658:28;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;1742:51;;;;;;;;1756:4;1742:51;;;;;;1762:4;1742:51;;;;;;1768:6;1742:51;;;;;;1776:4;1742:51;;;;;;1782:4;1742:51;;;;;;1788:4;1742:51;;;;;1714:14;:25;1729:9;1714:25;;;;;;;;;;;:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1817:10;-1:-1:-1;;;;;1809:68:0;;1829:9;1840:4;1846;1852:6;1860:4;1866;1872;1809:68;;;;;;;;;;;;:::i;:::-;;;;;;;;1335:550;;;;;;;:::o;5056:2029::-;5114:13;5140:20;5182:22;;:::i;:::-;5215:26;5244:25;;;;;;;;;;;;5215:54;;;;;;;;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;-1:-1:-1;;;5215:54:0;;;;;;;;5280:266;;;;;;;;;;;;5215:54;;5280:266;;;;;;;;5620:14;;5611:24;;;;:8;:24::i;:::-;5577:103;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;5577:103:0;;;;;;5559:8;;;;:122;;;;5756:15;;;5747:25;;;;:8;:25::i;:::-;5712:105;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5712:105:0;;;;;;;;;5694:5;5700:1;5694:8;;;:124;5896:18;;;;5887:28;;;;:8;:28::i;:::-;5849:111;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5849:111:0;;;;;;;;;5831:5;5837:1;5831:8;;;:130;6039:18;;;;6030:28;;;;:8;:28::i;:::-;5992:112;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5992:112:0;;;;;;;;;5974:5;5980:1;5974:8;;;:131;6177:12;;;;6168:22;;;;:8;:22::i;:::-;6136:99;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6136:99:0;;;;;;;;;6118:5;6124:1;6118:8;;;:118;6310:14;;;;6301:24;;;;:8;:24::i;:::-;6267:76;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;6267:76:0;;;;;;6249:8;;;:95;;;6398:8;;6249;6408;;;;6418;;;;6428;;;;6438;;;;6448;;;;6381:86;;;;6398:8;;6408;;6418;;6428;;6438;;6448;;6381:86;;:::i;:::-;;;;;;;;;;;;;6365:103;;5171:1309;;6490:18;6511:457;6579:19;6588:9;6579:8;:19::i;:::-;6930:28;6950:6;6930:13;:28::i;:::-;6538:427;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6511:13;:457::i;:::-;6490:478;;7045:4;6995:55;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6995:55:0;;;;;;;;;;5056:2029;-1:-1:-1;;;;5056:2029:0:o;2691:355::-;2754:25;2769:9;2754:14;:25::i;:::-;2790:27;2820:25;;;;;;;;;;2873:14;;:16;;:14;;;:16;:::i;:::-;2856:33;;-1:-1:-1;;2856:33:0;;;;;;;;;;;2905:133;;2913:10;;-1:-1:-1;;;;;;;;;;;2905:133:0;;;2925:9;;2856:33;;-1:-1:-1;;;2952:15:0;;;;;-1:-1:-1;;;2969:18:0;;;;;-1:-1:-1;;;2989:18:0;;;;;-1:-1:-1;;;3009:12:0;;;;;-1:-1:-1;;;3023:14:0;;;;;2905:133;:::i;3428:367::-;3495:25;3510:9;3495:14;:25::i;:::-;3531:27;3561:25;;;;;;;;;;3618:18;;:20;;-1:-1:-1;;;3618:18:0;;;;3637:1;3618:20;:::i;:::-;3597:41;;-1:-1:-1;;3597:41:0;;-1:-1:-1;;;3597:41:0;;;;;;;;;;;;3654:133;;3662:10;;-1:-1:-1;;;;;;;;;;;3654:133:0;;;3674:9;;3685:14;;;;;;;;-1:-1:-1;;;3701:15:0;;;;;3718:18;;;;;;-1:-1:-1;;;3738:18:0;;;;;-1:-1:-1;;;3758:12:0;;;;;-1:-1:-1;;;3772:14:0;;;;;;3654:133;:::i;4186:349::-;4247:25;4262:9;4247:14;:25::i;:::-;4283:27;4313:25;;;;;;;;;;4364:12;;:14;;-1:-1:-1;;;4364:12:0;;;;4377:1;4364:14;:::i;:::-;4349:29;;-1:-1:-1;;;;4349:29:0;;-1:-1:-1;;;4349:29:0;;;;;;;;;;;;4394:133;;4402:10;;-1:-1:-1;;;;;;;;;;;4394:133:0;;;4414:9;;4425:14;;;;;;;;-1:-1:-1;;;4441:15:0;;;;;-1:-1:-1;;;4458:18:0;;;;;-1:-1:-1;;;4478:18:0;;;;;4498:12;;;;;-1:-1:-1;;;4512:14:0;;;;4394:133;:::i;2327:352::-;2395:29;2414:9;2395:18;:29::i;:::-;2387:38;;;;;;2444:28;;;;:17;:28;;;;;;;;2436:37;;;;;;2484:18;2505:29;;;:18;:29;;;;;;;2572:19;;-1:-1:-1;;;2572:19:0;;;;;11150:25:1;;;2505:29:0;;2484:18;2505:29;;2553:39;;370:42;;2572:8;;11123:18:1;;2572:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2553:39::-;:55;;;;:::i;:::-;:59;2545:68;;;;;;2656:15;:13;2670:1;2656:15;:::i;:::-;2624:29;;;;:18;:29;;;;;;:47;;;;-1:-1:-1;2327:352:0:o;1146:177::-;1237:25;;-1:-1:-1;;;1237:25:0;;;;;11150::1;;;1213:4:0;;1266:10;;370:42;;1237:14;;11123:18:1;;1237:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1237:39:0;;:78;;;-1:-1:-1;1280:21:0;;-1:-1:-1;;;1280:21:0;;;;;11150:25:1;;;1305:10:0;;370:42;;1280:10;;11123:18:1;;1280:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1280:35:0;;1230:85;1146:177;-1:-1:-1;;1146:177:0:o;7097:715::-;7153:13;7366:10;7362:53;;-1:-1:-1;;7393:10:0;;;;;;;;;;;;-1:-1:-1;;;7393:10:0;;;;;7097:715::o;7362:53::-;7440:5;7425:12;7481:78;7488:9;;7481:78;;7514:8;;;;:::i;:::-;;-1:-1:-1;7537:10:0;;-1:-1:-1;7545:2:0;7537:10;;:::i;:::-;;;7481:78;;;7569:19;7601:6;7591:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7591:17:0;;7569:39;;7619:154;7626:10;;7619:154;;7653:11;7663:1;7653:11;;:::i;:::-;;-1:-1:-1;7722:10:0;7730:2;7722:5;:10;:::i;:::-;7709:24;;:2;:24;:::i;:::-;7696:39;;7679:6;7686;7679:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;7679:56:0;;;;;;;;-1:-1:-1;7750:11:0;7759:2;7750:11;;:::i;:::-;;;7619:154;;;7797:6;7097:715;-1:-1:-1;;;;7097:715:0:o;8166:1607::-;8264:11;;8224:13;;8290:8;8286:23;;-1:-1:-1;;8300:9:0;;;;;;;;;-1:-1:-1;8300:9:0;;;8166:1607;-1:-1:-1;8166:1607:0:o;8286:23::-;8361:18;8399:1;8388:7;:3;8394:1;8388:7;:::i;:::-;8387:13;;;;:::i;:::-;8382:19;;:1;:19;:::i;:::-;8361:40;-1:-1:-1;8459:19:0;8491:15;8361:40;8504:2;8491:15;:::i;:::-;8481:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8481:26:0;;8459:48;;8520:18;8541:5;;;;;;;;;;;;;;;;;8520:26;;8610:1;8603:5;8599:13;8655:2;8647:6;8643:15;8706:1;8674:777;8729:3;8726:1;8723:10;8674:777;;;8784:1;8827:12;;;;;8821:19;8922:4;8910:2;8906:14;;;;;8888:40;;8882:47;9031:2;9027:14;;;9023:25;;9009:40;;9003:47;9160:1;9156:13;;;9152:24;;9138:39;;9132:46;9280:16;;;;9266:31;;9260:38;8958:1;8954:11;;;9052:4;8999:58;;;8990:68;9083:11;;9128:57;;;9119:67;;;;9211:11;;9256:49;;9247:59;9335:3;9331:13;9364:22;;9434:1;9419:17;;;;8777:9;8674:777;;;8678:44;9483:1;9478:3;9474:11;9504:1;9499:84;;;;9602:1;9597:82;;;;9467:212;;9499:84;-1:-1:-1;;;;;9532:17:0;;9525:43;9499:84;;9597:82;-1:-1:-1;;;;;9630:17:0;;9623:41;9467:212;-1:-1:-1;;;9695:26:0;;;9702:6;8166:1607;-1:-1:-1;;;;8166:1607:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:163:1:-;81:20;;141:10;130:22;;120:33;;110:61;;167:1;164;157:12;182:290;252:6;305:2;293:9;284:7;280:23;276:32;273:52;;;321:1;318;311:12;273:52;347:16;;-1:-1:-1;;;;;392:31:1;;382:42;;372:70;;438:1;435;428:12;372:70;461:5;182:290;-1:-1:-1;;;182:290:1:o;477:180::-;536:6;589:2;577:9;568:7;564:23;560:32;557:52;;;605:1;602;595:12;557:52;-1:-1:-1;628:23:1;;477:180;-1:-1:-1;477:180:1:o;662:184::-;732:6;785:2;773:9;764:7;760:23;756:32;753:52;;;801:1;798;791:12;753:52;-1:-1:-1;824:16:1;;662:184;-1:-1:-1;662:184:1:o;851:523::-;955:6;963;971;979;987;995;1048:3;1036:9;1027:7;1023:23;1019:33;1016:53;;;1065:1;1062;1055:12;1016:53;-1:-1:-1;;1088:23:1;;;1158:2;1143:18;;1130:32;;-1:-1:-1;1209:2:1;1194:18;;1181:32;;1260:2;1245:18;;1232:32;;-1:-1:-1;1311:3:1;1296:19;;1283:33;;-1:-1:-1;1363:3:1;1348:19;1335:33;;-1:-1:-1;851:523:1;-1:-1:-1;851:523:1:o;1379:616::-;1486:6;1494;1502;1510;1518;1526;1534;1587:3;1575:9;1566:7;1562:23;1558:33;1555:53;;;1604:1;1601;1594:12;1555:53;1640:9;1627:23;1617:33;;1669:37;1702:2;1691:9;1687:18;1669:37;:::i;:::-;1659:47;;1725:37;1758:2;1747:9;1743:18;1725:37;:::i;:::-;1715:47;;1781:37;1814:2;1803:9;1799:18;1781:37;:::i;:::-;1771:47;;1837:38;1870:3;1859:9;1855:19;1837:38;:::i;:::-;1827:48;;1894:38;1927:3;1916:9;1912:19;1894:38;:::i;:::-;1884:48;;1951:38;1984:3;1973:9;1969:19;1951:38;:::i;:::-;1941:48;;1379:616;;;;;;;;;;:::o;2000:185::-;2042:3;2080:5;2074:12;2095:52;2140:6;2135:3;2128:4;2121:5;2117:16;2095:52;:::i;:::-;2163:16;;;;;2000:185;-1:-1:-1;;2000:185:1:o;2190:237::-;2267:66;2255:79;;-1:-1:-1;;;2359:2:1;2350:12;;2343:50;2418:2;2409:12;;2190:237::o;2562:1449::-;2981:3;3019:6;3013:13;3045:4;3058:51;3102:6;3097:3;3092:2;3084:6;3080:15;3058:51;:::i;:::-;3172:13;;3131:16;;;;3194:55;3172:13;3131:16;3216:15;;;3194:55;:::i;:::-;3316:13;;3271:20;;;3338:55;3316:13;3271:20;3360:15;;;3338:55;:::i;:::-;3460:13;;3415:20;;;3482:55;3460:13;3415:20;3504:15;;;3482:55;:::i;:::-;3604:13;;3559:20;;;3626:55;3604:13;3559:20;3648:15;;;3626:55;:::i;:::-;3748:13;;3703:20;;;3770:55;3748:13;3703:20;3792:15;;;3770:55;:::i;:::-;3892:13;;3847:20;;;3914:55;3892:13;3847:20;3936:15;;;3914:55;:::i;:::-;3985:20;;;;;2562:1449;-1:-1:-1;;;;;;;;;;2562:1449:1:o;4016:726::-;-1:-1:-1;;;4475:3:1;4468:23;-1:-1:-1;;;4516:1:1;4511:3;4507:11;4500:24;4450:3;4553:6;4547:13;4569:61;4623:6;4619:1;4614:3;4610:11;4603:4;4595:6;4591:17;4569:61;:::i;:::-;-1:-1:-1;;;4689:1:1;4649:16;;;;4681:10;;;4674:35;-1:-1:-1;4733:2:1;4725:11;;4016:726;-1:-1:-1;4016:726:1:o;4747:698::-;-1:-1:-1;;;5206:3:1;5199:27;-1:-1:-1;;;5251:2:1;5246:3;5242:12;5235:25;5181:3;5289:6;5283:13;5305:62;5360:6;5355:2;5350:3;5346:12;5339:4;5331:6;5327:17;5305:62;:::i;:::-;5383:56;5435:2;5426:6;5421:3;5417:16;5413:25;5383:56;:::i;5450:689::-;-1:-1:-1;;;5909:3:1;5902:21;-1:-1:-1;;;5948:1:1;5943:3;5939:11;5932:24;5884:3;5985:6;5979:13;6001:61;6055:6;6051:1;6046:3;6042:11;6035:4;6027:6;6023:17;6001:61;:::i;:::-;6078:55;6130:1;6121:6;6116:3;6112:16;6108:24;6078:55;:::i;6144:694::-;-1:-1:-1;;;6603:3:1;6596:24;-1:-1:-1;;;6645:1:1;6640:3;6636:11;6629:24;6578:3;6682:6;6676:13;6698:62;6753:6;6748:2;6743:3;6739:12;6732:4;6724:6;6720:17;6698:62;:::i;:::-;6776:56;6828:2;6819:6;6814:3;6810:16;6806:25;6776:56;:::i;6843:835::-;-1:-1:-1;;;7302:3:1;7295:23;-1:-1:-1;;;7343:1:1;7338:3;7334:11;7327:24;7277:3;7380:6;7374:13;7396:61;7450:6;7446:1;7441:3;7437:11;7430:4;7422:6;7418:17;7396:61;:::i;:::-;7520:66;7516:1;7476:16;;;;7508:10;;;7501:86;-1:-1:-1;;;;7611:2:1;7603:11;;7596:49;7669:2;7661:11;;6843:835;-1:-1:-1;6843:835:1:o;7683:698::-;-1:-1:-1;;;8142:3:1;8135:27;-1:-1:-1;;;8187:2:1;8182:3;8178:12;8171:25;8117:3;8225:6;8219:13;8241:62;8296:6;8291:2;8286:3;8282:12;8275:4;8267:6;8263:17;8241:62;:::i;8386:448::-;8648:31;8643:3;8636:44;8618:3;8709:6;8703:13;8725:62;8780:6;8775:2;8770:3;8766:12;8759:4;8751:6;8747:17;8725:62;:::i;:::-;8807:16;;;;8825:2;8803:25;;8386:448;-1:-1:-1;;8386:448:1:o;8839:1580::-;-1:-1:-1;;;9339:64:1;;9426:13;;9321:3;;9448:62;9426:13;9498:2;9489:12;;9482:4;9470:17;;9448:62;:::i;:::-;9574:66;9569:2;9529:16;;;9561:11;;;9554:87;9670:34;9665:2;9657:11;;9650:55;9734:34;9729:2;9721:11;;9714:55;9799:34;9793:3;9785:12;;9778:56;9864:34;9858:3;9850:12;;9843:56;9929:34;9923:3;9915:12;;9908:56;9994:34;9988:3;9980:12;;9973:56;10059:34;10053:3;10045:12;;10038:56;10124:66;10118:3;10110:12;;10103:88;10221:66;10215:3;10207:12;;10200:88;-1:-1:-1;;;10312:3:1;10304:12;;10297:30;10343:70;10373:39;10407:3;10399:12;;10391:6;10373:39;:::i;:::-;-1:-1:-1;;;2497:27:1;;2549:1;2540:11;;2432:125;10343:70;10336:77;8839:1580;-1:-1:-1;;;;;8839:1580:1:o;10616:383::-;10765:2;10754:9;10747:21;10728:4;10797:6;10791:13;10840:6;10835:2;10824:9;10820:18;10813:34;10856:66;10915:6;10910:2;10899:9;10895:18;10890:2;10882:6;10878:15;10856:66;:::i;:::-;10983:2;10962:15;-1:-1:-1;;10958:29:1;10943:45;;;;10990:2;10939:54;;10616:383;-1:-1:-1;;10616:383:1:o;11186:678::-;11489:25;;;11533:10;11579:15;;;11574:2;11559:18;;11552:43;11631:15;;;11626:2;11611:18;;11604:43;11683:15;;;11678:2;11663:18;;11656:43;11736:15;;11730:3;11715:19;;11708:44;11789:15;;11783:3;11768:19;;11761:44;11842:15;11836:3;11821:19;;11814:44;11476:3;11461:19;;11186:678::o;12480:128::-;12520:3;12551:1;12547:6;12544:1;12541:13;12538:39;;;12557:18;;:::i;:::-;-1:-1:-1;12593:9:1;;12480:128::o;12613:228::-;12652:3;12680:10;12717:2;12714:1;12710:10;12747:2;12744:1;12740:10;12778:3;12774:2;12770:12;12765:3;12762:21;12759:47;;;12786:18;;:::i;:::-;12822:13;;12613:228;-1:-1:-1;;;;12613:228:1:o;12846:120::-;12886:1;12912;12902:35;;12917:18;;:::i;:::-;-1:-1:-1;12951:9:1;;12846:120::o;12971:422::-;13060:1;13103:5;13060:1;13117:270;13138:7;13128:8;13125:21;13117:270;;;13197:4;13193:1;13189:6;13185:17;13179:4;13176:27;13173:53;;;13206:18;;:::i;:::-;13256:7;13246:8;13242:22;13239:55;;;13276:16;;;;13239:55;13355:22;;;;13315:15;;;;13117:270;;;13121:3;12971:422;;;;;:::o;13398:140::-;13456:5;13485:47;13526:4;13516:8;13512:19;13506:4;13592:5;13622:8;13612:80;;-1:-1:-1;13663:1:1;13677:5;;13612:80;13711:4;13701:76;;-1:-1:-1;13748:1:1;13762:5;;13701:76;13793:4;13811:1;13806:59;;;;13879:1;13874:130;;;;13786:218;;13806:59;13836:1;13827:10;;13850:5;;;13874:130;13911:3;13901:8;13898:17;13895:43;;;13918:18;;:::i;:::-;-1:-1:-1;;13974:1:1;13960:16;;13989:5;;13786:218;;14088:2;14078:8;14075:16;14069:3;14063:4;14060:13;14056:36;14050:2;14040:8;14037:16;14032:2;14026:4;14023:12;14019:35;14016:77;14013:159;;;-1:-1:-1;14125:19:1;;;14157:5;;14013:159;14204:34;14229:8;14223:4;14204:34;:::i;:::-;14274:6;14270:1;14266:6;14262:19;14253:7;14250:32;14247:58;;;14285:18;;:::i;:::-;14323:20;;13543:806;-1:-1:-1;;;13543:806:1:o;14354:168::-;14394:7;14460:1;14456;14452:6;14448:14;14445:1;14442:21;14437:1;14430:9;14423:17;14419:45;14416:71;;;14467:18;;:::i;:::-;-1:-1:-1;14507:9:1;;14354:168::o;14527:125::-;14567:4;14595:1;14592;14589:8;14586:34;;;14600:18;;:::i;:::-;-1:-1:-1;14637:9:1;;14527:125::o;14657:258::-;14729:1;14739:113;14753:6;14750:1;14747:13;14739:113;;;14829:11;;;14823:18;14810:11;;;14803:39;14775:2;14768:10;14739:113;;;14870:6;14867:1;14864:13;14861:48;;;14905:1;14896:6;14891:3;14887:16;14880:27;14861:48;;14657:258;;;:::o;14920:135::-;14959:3;-1:-1:-1;;14980:17:1;;14977:43;;;15000:18;;:::i;:::-;-1:-1:-1;15047:1:1;15036:13;;14920:135::o;15060:112::-;15092:1;15118;15108:35;;15123:18;;:::i;:::-;-1:-1:-1;15157:9:1;;15060:112::o;15177:127::-;15238:10;15233:3;15229:20;15226:1;15219:31;15269:4;15266:1;15259:15;15293:4;15290:1;15283:15;15309:127;15370:10;15365:3;15361:20;15358:1;15351:31;15401:4;15398:1;15391:15;15425:4;15422:1;15415:15;15441:127;15502:10;15497:3;15493:20;15490:1;15483:31;15533:4;15530:1;15523:15;15557:4;15554:1;15547:15;15573:127;15634:10;15629:3;15625:20;15622:1;15615:31;15665:4;15662:1;15655:15;15689:4;15686:1;15679:15

Swarm Source

ipfs://3528791a508493f9ea8325516c2add82400b3f6069ac9a9a8437cf65ea9e76d4
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.