Contract 0xeE1a2EA55945223404d73C0BbE57f540BBAAD0D8

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x4dff3f3acb525a08b28cd9a49d7200909bd38000ff4510a51ed48524f7d9cf360x60806040168823922021-09-11 10:45:2141 days 15 hrs agoFantom: Deployer IN  Contract Creation0 FTM0.567987618401
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x4dff3f3acb525a08b28cd9a49d7200909bd38000ff4510a51ed48524f7d9cf36168823922021-09-11 10:45:2141 days 15 hrs ago Fantom: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
codex

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2021-09-11
*/

/**
 *Submitted for verification at FtmScan.com on 2021-09-11
*/

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

contract codex {
    string constant public index = "Items";
    string constant public class = "Weapons";
    
    function get_proficiency_by_id(uint _id) public pure returns (string memory description) {
        if (_id == 1) {
            return "Simple";
        } else if (_id == 2) {
            return "Martial";
        } else if (_id == 3) {
            return "Exotic";
        }
    }
    
    function get_encumbrance_by_id(uint _id) public pure returns (string memory description) {
        if (_id == 1) {
            return "Unarmed";
        } else if (_id == 2) {
            return "Light Melee Weapons";
        } else if (_id == 3) {
            return "One-Handed Melee Weapons";
        } else if (_id == 4) {
            return "Two-Handed Melee Weapons";
        } else if (_id == 5) {
            return "Ranged Weapons";
        }
    }
    
    function get_damage_type_by_id(uint _id) public pure returns (string memory description) {
        if (_id == 1) {
            return "Bludgeoning";
        } else if (_id == 2) {
            return "Piercing";
        } else if (_id == 3) {
            return "Slashing";
        }
    }
    
    struct weapon {
        uint id;
        uint cost;
        uint proficiency;
        uint encumbrance;
        uint damage_type;
        uint weight;
        uint damage;
        uint critical;
        int critical_modifier;
        uint range_increment;
        string name;
        string description;
    }

    function item_by_id(uint _id) public pure returns(weapon memory _weapon) {
        if (_id == 1) {
            return gauntlet();
        } else if (_id == 2) {
            return dagger();
        } else if (_id == 3) {
            return gauntlet_spiked();
        } else if (_id == 4) {
            return mace_light();
        } else if (_id == 5) {
            return sickle();
        } else if (_id == 6) {
            return club();
        } else if (_id == 7) {
            return mace_heavy();
        } else if (_id == 8) {
            return morningstar();
        } else if (_id == 9) {
            return shortspear();
        } else if (_id == 10) {
            return longspear();
        } else if (_id == 11) {
            return quarterstaff();
        } else if (_id == 12) {
            return spear();
        } else if (_id == 13) {
            return crossbow_heavy();
        } else if (_id == 14) {
            return crossbow_light();
        } else if (_id == 15) {
            return dart();
        } else if (_id == 16) {
            return javelin();
        } else if (_id == 17) {
            return sling();
        } else if (_id == 18) {
            return axe();
        } else if (_id == 19) {
            return hammer_light();
        } else if (_id == 20) {
            return handaxe();
        } else if (_id == 21) {
            return kukri();
        } else if (_id == 22) {
            return pick_light();
        } else if (_id == 23) {
            return sap();
        } else if (_id == 24) {
            return sword_short();
        } else if (_id == 25) {
            return battleaxe();
        } else if (_id == 26) {
            return flail();
        } else if (_id == 27) {
            return longsword();
        } else if (_id == 28) {
            return pick_heavy();
        } else if (_id == 29) {
            return rapier();
        } else if (_id == 30) {
            return scimitar();
        } else if (_id == 31) {
            return trident();
        } else if (_id == 32) {
            return warhammer();
        } else if (_id == 33) {
            return falchion();
        } else if (_id == 34) {
            return glaive();
        } else if (_id == 35) {
            return greataxe();
        } else if (_id == 36) {
            return greatclub();
        } else if (_id == 37) {
            return flail_heavy();
        } else if (_id == 38) {
            return greatsword();
        } else if (_id == 39) {
            return guisarme();
        } else if (_id == 40) {
            return halberd();
        } else if (_id == 41) {
            return lance();
        } else if (_id == 42) {
            return ranseur();
        } else if (_id == 43) {
            return scythe();
        } else if (_id == 44) {
            return longbow();
        } else if (_id == 45) {
            return longbow_composite();
        } else if (_id == 46) {
            return shortbow();
        } else if (_id == 47) {
            return shortbow_composite();
        } else if (_id == 48) {
            return kama();
        } else if (_id == 49) {
            return nunchaku();
        } else if (_id == 50) {
            return sai();
        } else if (_id == 51) {
            return siangham();
        } else if (_id == 52) {
            return sword_bastard();
        } else if (_id == 53) {
            return waraxe_dwarven();
        } else if (_id == 54) {
            return axe_orc_double();
        } else if (_id == 55) {
            return chain_spiked();
        } else if (_id == 56) {
            return flail_dire();
        } else if (_id == 57) {
            return crossbow_hand();
        } else if (_id == 58) {
            return crossbow_repeating_heavy();
        } else if (_id == 59) {
            return crossbow_repeating_light();
        }
    }

    function gauntlet() public pure returns (weapon memory _weapon) {
        _weapon.id = 1;
        _weapon.name = "Gauntlet";
        _weapon.cost = 2e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 1;
        _weapon.damage_type = 1;
        _weapon.weight = 1;
        _weapon.damage = 3;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "This metal glove lets you deal lethal damage rather than nonlethal damage with unarmed strikes. A strike with a gauntlet is otherwise considered an unarmed attack. The cost and weight given are for a single gauntlet. Medium and heavy armors (except breastplate) come with gauntlets.";
    }

    function dagger() public pure returns (weapon memory _weapon) {
        _weapon.id = 2;
        _weapon.name = "Dagger";
        _weapon.cost = 2e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 2;
        _weapon.weight = 1;
        _weapon.damage = 4;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 0;
        _weapon.description = "You get a +2 bonus on Sleight of Hand checks made to conceal a dagger on your body (see the Sleight of Hand skill).";
    }

    function gauntlet_spiked() public pure returns (weapon memory _weapon) {
        _weapon.id = 3;
        _weapon.name = "Gauntlet, spiked";
        _weapon.cost = 5e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 2;
        _weapon.weight = 1;
        _weapon.damage = 4;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "Your opponent cannot use a disarm action to disarm you of spiked gauntlets. The cost and weight given are for a single gauntlet. An attack with a spiked gauntlet is considered an armed attack.";
    }

    function mace_light() public pure returns (weapon memory _weapon) {
        _weapon.id = 4;
        _weapon.name = "Mace, light";
        _weapon.cost = 5e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 1;
        _weapon.weight = 4;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function sickle() public pure returns (weapon memory _weapon) {
        _weapon.id = 5;
        _weapon.name = "Sickle";
        _weapon.cost = 6e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 3;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A sickle can be used to make trip attacks. If you are tripped during your own trip attempt, you can drop the sickle to avoid being tripped.";
    }

    function club() public pure returns (weapon memory _weapon) {
        _weapon.id = 6;
        _weapon.name = "Club";
        _weapon.cost = 1e17;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 1;
        _weapon.weight = 3;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function mace_heavy() public pure returns (weapon memory _weapon) {
        _weapon.id = 7;
        _weapon.name = "Mace, heavy";
        _weapon.cost = 12e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 1;
        _weapon.weight = 8;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function morningstar() public pure returns (weapon memory _weapon) {
        _weapon.id = 8;
        _weapon.name = "Morningstar";
        _weapon.cost = 8e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 1;
        _weapon.weight = 6;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function shortspear() public pure returns (weapon memory _weapon) {
        _weapon.id = 9;
        _weapon.name = "Shortspear";
        _weapon.cost = 1e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 2;
        _weapon.weight = 3;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A shortspear is small enough to wield one-handed. It may also be thrown.";
    }

    function longspear() public pure returns (weapon memory _weapon) {
        _weapon.id = 10;
        _weapon.name = "Longspear";
        _weapon.cost = 5e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 2;
        _weapon.weight = 9;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A longspear has reach. You can strike opponents 10 feet away with it, but you cant use it against an adjacent foe. If you use a ready action to set a longspear against a charge, you deal double damage on a successful hit against a charging character.";
    }

    function quarterstaff() public pure returns (weapon memory _weapon) {
        _weapon.id = 11;
        _weapon.name = "Quarterstaff";
        _weapon.cost = 1e17;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 1;
        _weapon.weight = 4;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A quarterstaff is a double weapon. You can fight with it as if fighting with two weapons, but if you do, you incur all the normal attack penalties associated with fighting with two weapons, just as if you were using a one-handed weapon and a light weapon. A creature wielding a quarterstaff in one hand cant use it as a double weapon-only one end of the weapon can be used in any given round.";
    }

    function spear() public pure returns (weapon memory _weapon) {
        _weapon.id = 12;
        _weapon.name = "Spear";
        _weapon.cost = 2e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 2;
        _weapon.weight = 6;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function crossbow_heavy() public pure returns (weapon memory _weapon) {
        _weapon.id = 13;
        _weapon.name = "Crossbow, heavy";
        _weapon.cost = 50e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 8;
        _weapon.damage = 10;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 120;
        _weapon.description = "You draw a heavy crossbow back by turning a small winch. Loading a heavy crossbow is a full-round action that provokes attacks of opportunity.";
    }

    function crossbow_light() public pure returns (weapon memory _weapon) {
        _weapon.id = 14;
        _weapon.name = "Crossbow, light";
        _weapon.cost = 35e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 4;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 80;
        _weapon.description = "You draw a light crossbow back by pulling a lever. Loading a light crossbow is a move action that provokes attacks of opportunity.";
    }

    function dart() public pure returns (weapon memory _weapon) {
        _weapon.id = 15;
        _weapon.name = "Dart";
        _weapon.cost = 5e17;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 1;
        _weapon.damage = 4;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 20;
        _weapon.description = "";
    }

    function javelin() public pure returns (weapon memory _weapon) {
        _weapon.id = 16;
        _weapon.name = "Javelin";
        _weapon.cost = 1e18;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 30;
        _weapon.description = "Since it is not designed for melee, you are treated as nonproficient with it and take a -4 penalty on attack rolls if you use a javelin as a melee weapon.";
    }

    function sling() public pure returns (weapon memory _weapon) {
        _weapon.id = 17;
        _weapon.name = "Sling";
        _weapon.cost = 1e17;
        _weapon.proficiency = 1;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 1;
        _weapon.weight = 0;
        _weapon.damage = 4;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 50;
        _weapon.description = "Your Strength modifier applies to damage rolls when you use a sling, just as it does for thrown weapons. You can fire, but not load, a sling with one hand. Loading a sling is a move action that requires two hands and provokes attacks of opportunity.";
    }

    function axe() public pure returns (weapon memory _weapon) {
        _weapon.id = 18;
        _weapon.name = "Axe";
        _weapon.cost = 8e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 3;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function hammer_light() public pure returns (weapon memory _weapon) {
        _weapon.id = 19;
        _weapon.name = "Hammer, light";
        _weapon.cost = 1e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 1;
        _weapon.weight = 2;
        _weapon.damage = 4;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function handaxe() public pure returns (weapon memory _weapon) {
        _weapon.id = 20;
        _weapon.name = "Handaxe";
        _weapon.cost = 6e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 3;
        _weapon.weight = 3;
        _weapon.damage = 6;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function kukri() public pure returns (weapon memory _weapon) {
        _weapon.id = 21;
        _weapon.name = "Kukri";
        _weapon.cost = 8e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 3;
        _weapon.weight = 2;
        _weapon.damage = 4;
        _weapon.critical = 2;
        _weapon.critical_modifier = -2;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function pick_light() public pure returns (weapon memory _weapon) {
        _weapon.id = 22;
        _weapon.name = "Pick, light";
        _weapon.cost = 4e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 2;
        _weapon.weight = 3;
        _weapon.damage = 4;
        _weapon.critical = 4;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function sap() public pure returns (weapon memory _weapon) {
        _weapon.id = 23;
        _weapon.name = "Sap";
        _weapon.cost = 1e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 1;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function sword_short() public pure returns (weapon memory _weapon) {
        _weapon.id = 24;
        _weapon.name = "Sword, short";
        _weapon.cost = 10e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 2;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function battleaxe() public pure returns (weapon memory _weapon) {
        _weapon.id = 25;
        _weapon.name = "Battleaxe";
        _weapon.cost = 10e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 3;
        _weapon.weight = 6;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function flail() public pure returns (weapon memory _weapon) {
        _weapon.id = 26;
        _weapon.name = "Flail";
        _weapon.cost = 8e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 1;
        _weapon.weight = 5;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "With a flail, you get a +2 bonus on opposed attack rolls made to disarm an enemy (including the roll to avoid being disarmed if such an attempt fails).";
    }

    function longsword() public pure returns (weapon memory _weapon) {
        _weapon.id = 27;
        _weapon.name = "Longsword";
        _weapon.cost = 15e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 3;
        _weapon.weight = 4;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function pick_heavy() public pure returns (weapon memory _weapon) {
        _weapon.id = 28;
        _weapon.name = "Pick, heavy";
        _weapon.cost = 8e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 2;
        _weapon.weight = 6;
        _weapon.damage = 6;
        _weapon.critical = 4;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function rapier() public pure returns (weapon memory _weapon) {
        _weapon.id = 29;
        _weapon.name = "Rapier";
        _weapon.cost = 20e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 2;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = -2;
        _weapon.range_increment = 0;
        _weapon.description = "You can use the Weapon Finesse feat to apply your Dexterity modifier instead of your Strength modifier to attack rolls with a rapier sized for you, even though it isnt a light weapon for you. You cant wield a rapier in two hands in order to apply 1.5 times your Strength bonus to damage.";
    }

    function scimitar() public pure returns (weapon memory _weapon) {
        _weapon.id = 30;
        _weapon.name = "Scimitar";
        _weapon.cost = 15e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 3;
        _weapon.weight = 4;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = -2;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function trident() public pure returns (weapon memory _weapon) {
        _weapon.id = 31;
        _weapon.name = "Trident";
        _weapon.cost = 15e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 2;
        _weapon.weight = 4;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "This weapon can be thrown. If you use a ready action to set a trident against a charge, you deal double damage on a successful hit against a charging character.";
    }

    function warhammer() public pure returns (weapon memory _weapon) {
        _weapon.id = 32;
        _weapon.name = "Warhammer";
        _weapon.cost = 12e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 1;
        _weapon.weight = 5;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function falchion() public pure returns (weapon memory _weapon) {
        _weapon.id = 33;
        _weapon.name = "Falchion";
        _weapon.cost = 75e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 3;
        _weapon.weight = 8;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = -2;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function glaive() public pure returns (weapon memory _weapon) {
        _weapon.id = 34;
        _weapon.name = "Glaive";
        _weapon.cost = 8e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 3;
        _weapon.weight = 10;
        _weapon.damage = 10;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A glaive has reach. You can strike opponents 10 feet away with it, but you cant use it against an adjacent foe.";
    }

    function greataxe() public pure returns (weapon memory _weapon) {
        _weapon.id = 35;
        _weapon.name = "Greataxe";
        _weapon.cost = 20e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 3;
        _weapon.weight = 12;
        _weapon.damage = 12;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function greatclub() public pure returns (weapon memory _weapon) {
        _weapon.id = 36;
        _weapon.name = "Greatclub";
        _weapon.cost = 5e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 1;
        _weapon.weight = 8;
        _weapon.damage = 10;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function flail_heavy() public pure returns (weapon memory _weapon) {
        _weapon.id = 37;
        _weapon.name = "Flail, heavy";
        _weapon.cost = 15e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 1;
        _weapon.weight = 10;
        _weapon.damage = 10;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 0;
        _weapon.description = "With a flail, you get a +2 bonus on opposed attack rolls made to disarm an enemy (including the roll to avoid being disarmed if such an attempt fails).";
    }

    function greatsword() public pure returns (weapon memory _weapon) {
        _weapon.id = 38;
        _weapon.name = "Greatsword";
        _weapon.cost = 50e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 3;
        _weapon.weight = 8;
        _weapon.damage = 12;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 0;
        _weapon.description = "";
    }

    function guisarme() public pure returns (weapon memory _weapon) {
        _weapon.id = 39;
        _weapon.name = "Guisarme";
        _weapon.cost = 9e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 3;
        _weapon.weight = 12;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A guisarme has reach. You can strike opponents 10 feet away with it, but you cant use it against an adjacent foe.";
    }

    function halberd() public pure returns (weapon memory _weapon) {
        _weapon.id = 40;
        _weapon.name = "Halberd";
        _weapon.cost = 10e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 2;
        _weapon.weight = 12;
        _weapon.damage = 10;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "If you use a ready action to set a halberd against a charge, you deal double damage on a successful hit against a charging character.";
    }

    function lance() public pure returns (weapon memory _weapon) {
        _weapon.id = 41;
        _weapon.name = "Lance";
        _weapon.cost = 10e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 2;
        _weapon.weight = 10;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A lance deals double damage when used from the back of a charging mount. It has reach, so you can strike opponents 10 feet away with it, but you cant use it against an adjacent foe.";
    }

    function ranseur() public pure returns (weapon memory _weapon) {
        _weapon.id = 42;
        _weapon.name = "Ranseur";
        _weapon.cost = 10e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 2;
        _weapon.weight = 12;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A ranseur has reach. You can strike opponents 10 feet away with it, but you cant use it against an adjacent foe.";
    }

    function scythe() public pure returns (weapon memory _weapon) {
        _weapon.id = 43;
        _weapon.name = "Scythe";
        _weapon.cost = 18e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 3;
        _weapon.weight = 10;
        _weapon.damage = 8;
        _weapon.critical = 4;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A scythe can be used to make trip attacks. If you are tripped during your own trip attempt, you can drop the scythe to avoid being tripped.";
    }

    function longbow() public pure returns (weapon memory _weapon) {
        _weapon.id = 44;
        _weapon.name = "Longbow";
        _weapon.cost = 75e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 3;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 100;
        _weapon.description = "You need at least two hands to use a bow, regardless of its size. A longbow is too unwieldy to use while you are mounted. If you have a penalty for low Strength, apply it to damage rolls when you use a longbow. If you have a bonus for high Strength, you can apply it to damage rolls when you use a composite longbow (see below) but not a regular longbow.";
    }

    function longbow_composite() public pure returns (weapon memory _weapon) {
        _weapon.id = 45;
        _weapon.name = "Longbow, composite";
        _weapon.cost = 100e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 3;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 110;
        _weapon.description = "You need at least two hands to use a bow, regardless of its size. You can use a composite longbow while mounted. All composite bows are made with a particular strength rating (that is, each requires a minimum Strength modifier to use with proficiency). If your Strength bonus is less than the strength rating of the composite bow, you cant effectively use it, so you take a -2 penalty on attacks with it. The default composite longbow requires a Strength modifier of +0 or higher to use with proficiency. A composite longbow can be made with a high strength rating to take advantage of an above-average Strength score; this feature allows you to add your Strength bonus to damage, up to the maximum bonus indicated for the bow. Each point of Strength bonus granted by the bow adds 100 gp to its cost.";
    }

    function shortbow() public pure returns (weapon memory _weapon) {
        _weapon.id = 46;
        _weapon.name = "Shortbow";
        _weapon.cost = 30e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 60;
        _weapon.description = "You need at least two hands to use a bow, regardless of its size. You can use a shortbow while mounted. If you have a penalty for low Strength, apply it to damage rolls when you use a shortbow. If you have a bonus for high Strength, you can apply it to damage rolls when you use a composite shortbow (see below) but not a regular shortbow.";
    }

    function shortbow_composite() public pure returns (weapon memory _weapon) {
        _weapon.id = 47;
        _weapon.name = "Shortbow, composite";
        _weapon.cost = 75e18;
        _weapon.proficiency = 2;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 70;
        _weapon.description = "You need at least two hands to use a bow, regardless of its size. You can use a composite shortbow while mounted. All composite bows are made with a particular strength rating (that is, each requires a minimum Strength modifier to use with proficiency). If your Strength bonus is lower than the strength rating of the composite bow, you cant effectively use it, so you take a -2 penalty on attacks with it. The default composite shortbow requires a Strength modifier of +0 or higher to use with proficiency. A composite shortbow can be made with a high strength rating to take advantage of an above-average Strength score; this feature allows you to add your Strength bonus to damage, up to the maximum bonus indicated for the bow. Each point of Strength bonus granted by the bow adds 75 gp to its cost.";
    }

    function kama() public pure returns (weapon memory _weapon) {
        _weapon.id = 48;
        _weapon.name = "Kama";
        _weapon.cost = 2e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 3;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "The kama is a special monk weapon. This designation gives a monk wielding a kama special options.";
    }

    function nunchaku() public pure returns (weapon memory _weapon) {
        _weapon.id = 49;
        _weapon.name = "Nunchaku";
        _weapon.cost = 2e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 1;
        _weapon.weight = 2;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "The nunchaku is a special monk weapon. This designation gives a monk wielding a nunchaku special options. With a nunchaku, you get a +2 bonus on opposed attack rolls made to disarm an enemy (including the roll to avoid being disarmed if such an attempt fails).";
    }

    function sai() public pure returns (weapon memory _weapon) {
        _weapon.id = 50;
        _weapon.name = "Sai";
        _weapon.cost = 1e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 1;
        _weapon.weight = 1;
        _weapon.damage = 4;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "With a sai, you get a +4 bonus on opposed attack rolls made to disarm an enemy (including the roll to avoid being disarmed if such an attempt fails).";
    }

    function siangham() public pure returns (weapon memory _weapon) {
        _weapon.id = 51;
        _weapon.name = "Siangham";
        _weapon.cost = 3e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 2;
        _weapon.damage_type = 2;
        _weapon.weight = 1;
        _weapon.damage = 6;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "The siangham is a special monk weapon. This designation gives a monk wielding a siangham special options.";
    }

    function sword_bastard() public pure returns (weapon memory _weapon) {
        _weapon.id = 52;
        _weapon.name = "Sword, bastard";
        _weapon.cost = 35e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 3;
        _weapon.weight = 6;
        _weapon.damage = 10;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 0;
        _weapon.description = "A bastard sword is too large to use in one hand without special training; thus, it is an exotic weapon. A character can use a bastard sword two-handed as a martial weapon.";
    }

    function waraxe_dwarven() public pure returns (weapon memory _weapon) {
        _weapon.id = 53;
        _weapon.name = "Waraxe, dwarven";
        _weapon.cost = 30e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 3;
        _weapon.damage_type = 3;
        _weapon.weight = 8;
        _weapon.damage = 10;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A dwarven waraxe is too large to use in one hand without special training; thus, it is an exotic weapon. A Medium character can use a dwarven waraxe two-handed as a martial weapon, or a Large creature can use it one-handed in the same way. A dwarf treats a dwarven waraxe as a martial weapon even when using it in one hand.";
    }

    function axe_orc_double() public pure returns (weapon memory _weapon) {
        _weapon.id = 54;
        _weapon.name = "Axe, orc double";
        _weapon.cost = 60e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 3;
        _weapon.weight = 15;
        _weapon.damage = 8;
        _weapon.critical = 3;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "An orc double axe is a double weapon. You can fight with it as if fighting with two weapons, but if you do, you incur all the normal attack penalties associated with fighting with two weapons, just as if you were using a one-handed weapon and a light weapon.";
    }

    function chain_spiked() public pure returns (weapon memory _weapon) {
        _weapon.id = 55;
        _weapon.name = "Chain, spiked";
        _weapon.cost = 25e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 2;
        _weapon.weight = 10;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A spiked chain has reach, so you can strike opponents 10 feet away with it. In addition, unlike most other weapons with reach, it can be used against an adjacent foe.";
    }

    function flail_dire() public pure returns (weapon memory _weapon) {
        _weapon.id = 56;
        _weapon.name = "Flail, dire";
        _weapon.cost = 90e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 4;
        _weapon.damage_type = 1;
        _weapon.weight = 10;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = 0;
        _weapon.range_increment = 0;
        _weapon.description = "A dire flail is a double weapon. You can fight with it as if fighting with two weapons, but if you do, you incur all the normal attack penalties associated with fighting with two weapons, just as if you were using a one-handed weapon and a light weapon. A creature wielding a dire flail in one hand cant use it as a double weapon- only one end of the weapon can be used in any given round.";
    }

    function crossbow_hand() public pure returns (weapon memory _weapon) {
        _weapon.id = 57;
        _weapon.name = "Crossbow, hand";
        _weapon.cost = 100e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 2;
        _weapon.damage = 4;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 30;
        _weapon.description = "You can draw a hand crossbow back by hand. Loading a hand crossbow is a move action that provokes attacks of opportunity.";
    }

    function crossbow_repeating_heavy() public pure returns (weapon memory _weapon) {
        _weapon.id = 58;
        _weapon.name = "Crossbow, repeating heavy";
        _weapon.cost = 400e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 12;
        _weapon.damage = 10;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 120;
        _weapon.description = "The repeating crossbow (whether heavy or light) holds 5 crossbow bolts. As long as it holds bolts, you can reload it by pulling the reloading lever (a free action). Loading a new case of 5 bolts is a full-round action that provokes attacks of opportunity.";
    }

    function crossbow_repeating_light() public pure returns (weapon memory _weapon) {
        _weapon.id = 59;
        _weapon.name = "Crossbow, repeating light";
        _weapon.cost = 250e18;
        _weapon.proficiency = 3;
        _weapon.encumbrance = 5;
        _weapon.damage_type = 2;
        _weapon.weight = 6;
        _weapon.damage = 8;
        _weapon.critical = 2;
        _weapon.critical_modifier = -1;
        _weapon.range_increment = 80;
        _weapon.description = "The repeating crossbow (whether heavy or light) holds 5 crossbow bolts. As long as it holds bolts, you can reload it by pulling the reloading lever (a free action). Loading a new case of 5 bolts is a full-round action that provokes attacks of opportunity.";
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"axe","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"axe_orc_double","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"battleaxe","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"chain_spiked","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"class","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"club","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"crossbow_hand","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"crossbow_heavy","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"crossbow_light","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"crossbow_repeating_heavy","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"crossbow_repeating_light","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dagger","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dart","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"falchion","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"flail","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"flail_dire","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"flail_heavy","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"gauntlet","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"gauntlet_spiked","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"get_damage_type_by_id","outputs":[{"internalType":"string","name":"description","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"get_encumbrance_by_id","outputs":[{"internalType":"string","name":"description","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"get_proficiency_by_id","outputs":[{"internalType":"string","name":"description","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"glaive","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"greataxe","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"greatclub","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"greatsword","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"guisarme","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"halberd","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"hammer_light","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"handaxe","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"index","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"item_by_id","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"javelin","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"kama","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"kukri","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"lance","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"longbow","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"longbow_composite","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"longspear","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"longsword","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"mace_heavy","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"mace_light","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"morningstar","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"nunchaku","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pick_heavy","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pick_light","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"quarterstaff","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"ranseur","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"rapier","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sai","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sap","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"scimitar","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"scythe","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"shortbow","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"shortbow_composite","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"shortspear","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"siangham","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sickle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sling","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"spear","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sword_bastard","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sword_short","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"trident","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"waraxe_dwarven","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"warhammer","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"cost","type":"uint256"},{"internalType":"uint256","name":"proficiency","type":"uint256"},{"internalType":"uint256","name":"encumbrance","type":"uint256"},{"internalType":"uint256","name":"damage_type","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"critical","type":"uint256"},{"internalType":"int256","name":"critical_modifier","type":"int256"},{"internalType":"uint256","name":"range_increment","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct codex.weapon","name":"_weapon","type":"tuple"}],"stateMutability":"pure","type":"function"}]

608060405234801561001057600080fd5b5061526f806100206000396000f3fe608060405234801561001057600080fd5b50600436106103db5760003560e01c806376fb32a81161020a578063be635cd911610125578063e0e4eeee116100b8578063eda373be11610087578063eda373be14610649578063ef6f899014610651578063f20ec04314610659578063f435153014610661578063fbfa57471461066957600080fd5b8063e0e4eeee1461061e578063e60e3ac414610626578063e6154b691461062e578063ea4e1bfc1461064157600080fd5b8063cd948915116100f4578063cd948915146105fe578063d111e12e14610606578063d2d3b9e61461060e578063d829ed971461061657600080fd5b8063be635cd9146105c0578063bff852fa146105c8578063cabe22ea146105ee578063cc263c0e146105f657600080fd5b806398dfe4781161019d578063b06eea6c1161016c578063b06eea6c146105a0578063b4c29388146105a8578063b8091ee8146105b0578063b98ef65e146105b857600080fd5b806398dfe47814610580578063993bb7a214610588578063a5e5293b14610590578063ac8674f91461059857600080fd5b80639166cba4116101d95780639166cba414610555578063964d14b31461055d57806396a3d6ad14610570578063987dfdd71461057857600080fd5b806376fb32a8146105355780637dea18551461053d5780637f0fad891461054557806382987fab1461054d57600080fd5b80634a3d9679116102fa5780635eb09ef91161028d5780636c7cf6be1161025c5780636c7cf6be146105155780636dc5be021461051d57806371e42c72146105255780637276f1b21461052d57600080fd5b80635eb09ef9146104f557806360dafee6146104fd578063662377c11461050557806369768b6f1461050d57600080fd5b806355c22961116102c957806355c22961146104d5578063567bc062146104dd57806358fb93e6146104e55780635b7ba52e146104ed57600080fd5b80634a3d9679146104aa5780634b720b76146104b2578063509bf2bf146104c557806350c08379146104cd57600080fd5b80633768522e116103725780633c4a7827116103415780633c4a78271461048a5780633c722d1a146104925780633f1efef91461049a578063407c381f146104a257600080fd5b80633768522e1461046a57806339affdf6146104725780633b663dcd1461047a5780633c03af051461048257600080fd5b806319820c13116103ae57806319820c131461042e57806321419271146104365780632986c0e51461043e5780632f4188bd1461046257600080fd5b8063052c0092146103e05780630efd09731461040957806310b7228f1461041e57806311d9dbc814610426575b600080fd5b6103f36103ee366004613161565b610671565b60405161040091906131c7565b60405180910390f35b610411610793565b60405161040091906131e1565b610411610826565b6104116108c4565b610411610967565b610411610a0c565b6103f3604051806040016040528060058152602001644974656d7360d81b81525081565b610411610aa8565b610411610b49565b610411610bda565b610411610c85565b610411610d1d565b610411610dd3565b610411610e7d565b610411610f1b565b610411610fc1565b610411611057565b6103f36104c0366004613161565b6110f8565b610411611184565b610411611214565b6104116112b2565b610411611359565b6104116113f7565b61041161148b565b610411611541565b6104116115ea565b61041161168f565b61041161171d565b6104116117bd565b610411611854565b6104116118eb565b61041161198c565b610411611a2e565b610411611acb565b610411611b72565b610411611c19565b610411611cc6565b6103f361056b366004613161565b611d62565b610411611de6565b610411611e72565b610411611f14565b610411611fa4565b61041161203a565b6104116120ce565b61041161216e565b61041161220d565b61041161229f565b61041161233d565b6104116123e8565b6103f360405180604001604052806007815260200166576561706f6e7360c81b81525081565b610411612487565b61041161251f565b6104116125c0565b610411612654565b6104116126f4565b610411612790565b610411612834565b6104116128d4565b61041161063c366004613161565b612968565b610411612d61565b610411612df8565b610411612ea3565b610411612f37565b610411612fcc565b610411613062565b6060816001141561069f575050604080518082019091526007815266155b985c9b595960ca1b602082015290565b81600214156106d75750506040805180820190915260138152724c69676874204d656c656520576561706f6e7360681b602082015290565b816003141561071957505060408051808201909152601881527f4f6e652d48616e646564204d656c656520576561706f6e730000000000000000602082015290565b816004141561075b57505060408051808201909152601881527f54776f2d48616e646564204d656c656520576561706f6e730000000000000000602082015290565b816005141561078e57505060408051808201909152600e81526d52616e67656420576561706f6e7360901b602082015290565b919050565b61079b613100565b6006808252604080518082018252600481526321b63ab160e11b60208083019190915261014085019190915267016345785d8a0000818501526001828501819052600360608601819052608086019190915260a085015260c0840192909252600260e08401526000610100840181905261012084018190528151928301909152815261016082015290565b61082e613100565b602a815260408051808201825260078152662930b739b2bab960c91b602080830191909152610140840191909152678ac7230489e80000818401526002828401819052600460608501526080840152600c60a080850191909152600860c0850152600360e08501526000610100850181905261012085015282519081019092526070808352906136299083013961016082015290565b6108cc613100565b601d81526040805180820182526006808252652930b834b2b960d11b602080840191909152610140808601939093526801158e460913d00000818601526002848601819052600360608701526080860181905260a0860181905260c086019290925260e08501919091526001196101008501526000610120850152825191820190925261011f80825290916148299083013961016082015290565b61096f613100565b60378152604080518082018252600d81526c10da185a5b8b081cdc1a5ad959609a1b60208083019190915261014084019190915268015af1d78b58c400008184015260038284015260046060840152600260808401819052600a60a0850152600860c085015260e08085019190915260006101008501819052610120850152825190810190925260a68083529061333c9083013961016082015290565b610a14613100565b600581526040805180820182526006808252655369636b6c6560d01b6020808401919091526101408501929092526753444835ec580000828501526001838501526002606085018190526003608086015260a0850181905260c08086019290925260e0850152600061010085018190526101208501528251908101909252608b80835290614d499083013961016082015290565b610ab0613100565b6010815260408051808201825260078152662530bb32b634b760c91b602080830191909152610140840191909152670de0b6b3a7640000818401526001828401526005606084015260026080840181905260a08401819052600660c08086019190915260e08501919091526000610100850152601e6101208501528251908101909252609a8083529061478f9083013961016082015290565b610b51613100565b6015815260408051808201825260058152644b756b726960d81b602080830191909152610140840191909152676f05b59d3b200000818401526002828401819052606084018190526003608085015260a08401819052600460c085015260e084015260011961010084015260006101208401819052825191820190925290815261016082015290565b610be2613100565b600d8152604080518082018252600f81526e43726f7373626f772c20686561767960881b6020808301919091526101408401919091526802b5e3af16b18800008184015260018284015260056060840152600260808401819052600860a0850152600a60c08086019190915260e085019190915260001961010085015260786101208501528251908101909252608e808352906136999083013961016082015290565b610c8d613100565b60188152604080518082018252600c81526b14dddbdc990b081cda1bdc9d60a21b602080830191909152610140840191909152678ac7230489e80000818401526002828401819052606084018190526080840181905260a08401819052600660c085015260e084015260001961010084015260006101208401819052825191820190925290815261016082015290565b610d25613100565b603a8152604080518082018252601981527f43726f7373626f772c20726570656174696e67206865617679000000000000006020808301919091526101408401919091526815af1d78b58c4000008184015260038284015260056060840152600260808401819052600c60a0850152600a60c085015260e0840152600019610100840152607861012080850191909152825190810190925260ff80835290614dd49083013961016082015290565b610ddb613100565b602f8152604080518082018252601381527253686f7274626f772c20636f6d706f7369746560681b602080830191909152610140840191909152680410d586a20a4c0000818401526002828401819052600560608501526080840181905260a0840152600660c0840152600360e084015260006101008401526046610120840152815161036081019092526103238083529061446c9083013961016082015290565b610e85613100565b602c815260408051808201825260078152664c6f6e67626f7760c81b602080830191909152610140840191909152680410d586a20a4c0000818401526002828401819052600560608501526080840152600360a08401819052600860c085015260e08401526000610100840152606461012084015281516101a0810190925261016280835290614acd9083013961016082015290565b610f23613100565b60358152604080518082018252600f81526e2bb0b930bc329610323bb0b93b32b760891b6020808301919091526101408401919091526801a055690d9db800008184015260038284018190526060840181905260808401819052600860a0850152600a60c085015260e08401526000610100840181905261012084015281516101808101909252610143808352906134e69083013961016082015290565b610fc9613100565b60168152604080518082018252600b81526a141a58dacb081b1a59da1d60aa1b602080830191909152610140840191909152673782dace9d900000818401526002828401819052606084018190526080840152600360a0840152600460c0840181905260e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b61105f613100565b602781526040805180820182526008808252674775697361726d6560c01b602080840191909152610140850192909252677ce66c50e28400008285015260028385015260046060850152600360808501819052600c60a08087019190915260c086019290925260e0850152600061010085018190526101208501528251908101909252607180835290614f559083013961016082015290565b6060816001141561112a57505060408051808201909152600b81526a426c756467656f6e696e6760a81b602082015290565b81600214156111575750506040805180820190915260088152675069657263696e6760c01b602082015290565b816003141561078e575050604080518082019091526008815267536c617368696e6760c01b602082015290565b61118c613100565b6012815260408051808201825260038082526241786560e81b602080840191909152610140850192909252676f05b59d3b20000082850152600283850181905260608501819052608085019190915260a08401819052600660c085015260e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b61121c613100565b6030815260408051808201825260048152634b616d6160e01b602080830191909152610140840191909152671bc16d674ec80000818401526003828401819052600260608501819052608085019190915260a0808501829052600660c086015260e0850191909152600061010085018190526101208501528251908101909252606180835290613fc09083013961016082015290565b6112ba613100565b60398152604080518082018252600e81526d10dc9bdcdcd89bddcb081a185b9960921b60208083019190915261014084019190915268056bc75e2d63100000818401526003828401526005606084015260026080840181905260a0808501829052600460c086015260e0850191909152600019610100850152601e61012085015282519081019092526079808352906141279083013961016082015290565b611361613100565b60118152604080518082018252600580825264536c696e6760d81b60208084019190915261014085019290925267016345785d8a000082850152600183850181905260608501919091526080840152600060a08401819052600460c0850152600260e0850152610100840152603261012080850191909152825190810190925260f980835290614fc69083013961016082015290565b6113ff613100565b601981526040805180820182526009815268426174746c6561786560b81b602080830191909152610140840191909152678ac7230489e800008184015260028284015260036060840181905260808401819052600660a0850152600860c085015260e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b611493613100565b603b8152604080518082018252601981527f43726f7373626f772c20726570656174696e67206c6967687400000000000000602080830191909152610140840191909152680d8d726b7177a800008184015260038284015260056060840152600260808401819052600660a0850152600860c085015260e0840152600019610100840152605061012080850191909152825190810190925260ff80835290614dd49083013961016082015290565b611549613100565b602d815260408051808201825260128152714c6f6e67626f772c20636f6d706f7369746560701b60208083019190915261014084019190915268056bc75e2d63100000818401526002828401819052600560608501526080840152600360a08401819052600860c085015260e08401526000610100840152606e6101208401528151610340810190925261032080835290613ca09083013961016082015290565b6115f2613100565b600b8152604080518082018252600c81526b28bab0b93a32b939ba30b33360a11b60208083019190915261014084019190915267016345785d8a0000818401526001828401819052600460608501819052608085019190915260a0840152600660c0840152600260e08401526000610100840181905261012084015281516101c08101909252610188808352906137d29083013961016082015290565b611697613100565b60178152604080518082018252600381526205361760ec1b602080830191909152610140840191909152670de0b6b3a7640000818401526002828401819052606084018190526001608085015260a08401819052600660c085015260e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b611725613100565b600280825260408051808201825260068152652230b3b3b2b960d11b602080830191909152610140850191909152671bc16d674ec80000818501526001828501819052606085018490526080850184905260a080860191909152600460c086015260e0850193909352600019610100850152600061012085015281519283019091526073808352906151c79083013961016082015290565b6117c5613100565b60268152604080518082018252600a81526911dc99585d1cdddbdc9960b21b6020808301919091526101408401919091526802b5e3af16b18800008184015260028284018190526004606085015260036080850152600860a0850152600c60c085015260e084015260001961010084015260006101208401819052825191820190925290815261016082015290565b61185c613100565b602181526040805180820182526008808252672330b631b434b7b760c11b602080840191909152610140850192909252680410d586a20a4c0000828501526002838501819052600460608601526003608086015260a0850182905260c085019190915260e084015260011961010084015260006101208401819052825191820190925290815261016082015290565b6118f3613100565b601a8152604080518082018252600580825264119b185a5b60da1b602080840191909152610140850192909252676f05b59d3b200000828501526002838501819052600360608601526001608086015260a0850191909152600860c08086019190915260e08501919091526000610100850181905261012085015282519081019092526097808352906140219083013961016082015290565b611994613100565b6033815260408051808201825260088152675369616e6768616d60c01b6020808301919091526101408401919091526729a2241af62c00008184015260038284015260026060840181905260808401819052600160a080860191909152600660c086015260e08501919091526000610100850181905261012085015282519081019092526069808352906141a09083013961016082015290565b611a36613100565b6004808252604080518082018252600b81526a135858d94b081b1a59da1d60aa1b602080830191909152610140850191909152674563918244f40000818501526001828501819052600260608601819052608086019190915260a0850193909352600660c085015260e08401929092526000610100840181905261012084018190528151928301909152815261016082015290565b611ad3613100565b60348152604080518082018252600e81526d14dddbdc990b0818985cdd185c9960921b6020808301919091526101408401919091526801e5b8fa8fe2ac0000818401526003828401819052606084018190526080840152600660a0840152600a60c0840152600260e0808501919091526000196101008501526000610120850152825190810190925260ab808352906137279083013961016082015290565b611b7a613100565b60258152604080518082018252600c81526b466c61696c2c20686561767960a01b60208083019190915261014084019190915267d02ab486cedc00008184015260028284018190526004606085015260016080850152600a60a0850181905260c08086019190915260e0850191909152600019610100850152600061012085015282519081019092526097808352906140219083013961016082015290565b611c21613100565b60038152604080518082018252601081526f11d85d5b9d1b195d0b081cdc1a5ad95960821b602080830191909152610140840191909152674563918244f400008184015260018284018190526002606085018190526080850181905260a0850191909152600460c08086019190915260e08086019290925260006101008601819052610120860152835191820190935282815291906151079083013961016082015290565b611cce613100565b6032815260408051808201825260038082526253616960e81b602080840191909152610140850192909252670de0b6b3a7640000828501528284015260026060840181905260016080850181905260a0850152600460c08086019190915260e085019190915260006101008501819052610120850152825190810190925260958083529061395a9083013961016082015290565b60608160011415611d8f57505060408051808201909152600681526553696d706c6560d01b602082015290565b8160021415611dbb57505060408051808201909152600781526613585c9d1a585b60ca1b602082015290565b816003141561078e57505060408051808201909152600681526545786f74696360d01b602082015290565b611dee613100565b602080825260408051808201825260098152682bb0b93430b6b6b2b960b91b8184015261014084015267a688906bd8b000008383015260028184015260036060840181905260016080850152600560a0850152600860c085015260e08401526000610100840181905261012084018190528151928301909152815261016082015290565b611e7a613100565b60388152604080518082018252600b81526a466c61696c2c206469726560a81b6020808301919091526101408401919091526804e1003b28d9280000818401526003828401526004606084015260016080840152600a60a0840152600860c0840152600260e08401526000610100840181905261012084015281516101c08101909252610185808352906149489083013961016082015290565b611f1c613100565b600c8152604080518082018252600581526429b832b0b960d91b602080830191909152610140840191909152671bc16d674ec80000818401526001828401526004606084015260026080840152600660a0840152600860c0840152600360e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b611fac613100565b601c8152604080518082018252600b81526a5069636b2c20686561767960a81b602080830191909152610140840191909152676f05b59d3b200000818401526002828401819052600360608501526080840152600660a0840181905260c0840152600460e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b612042613100565b601e8152604080518082018252600881526729b1b4b6b4ba30b960c11b60208083019190915261014084019190915267d02ab486cedc00008184015260028284018190526003606085018190526080850152600460a0850152600660c085015260e084015260011961010084015260006101208401819052825191820190925290815261016082015290565b6120d6613100565b602281526040805180820182526006815265476c6169766560d01b602080830191909152610140840191909152676f05b59d3b2000008184015260028284015260046060840152600360808401819052600a60a080860182905260c086019190915260e0850191909152600061010085018190526101208501528251908101909252606f808352906140b89083013961016082015290565b612176613100565b600a81526040805180820182526009808252682637b733b9b832b0b960b91b602080840191909152610140850192909252674563918244f4000082850152600183850152600460608501526002608085015260a0840152600860c0840152600360e08401526000610100840181905261012080850191909152825190810190925260fa808352906139ef9083013961016082015290565b612215613100565b60148152604080518082018252600781526648616e6461786560c81b6020808301919091526101408401919091526753444835ec580000818401526002828401819052606084015260036080840181905260a08401819052600660c085015260e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b6122a7613100565b6031815260408051808201825260088152674e756e6368616b7560c01b60208083019190915261014080850192909252671bc16d674ec80000818501526003838501526002606085018190526001608086015260a08501819052600660c086015260e085015260006101008501819052610120850152825191820190925261010480825290916133e29083013961016082015290565b612345613100565b600e8152604080518082018252600f81526e10dc9bdcdcd89bddcb081b1a59da1d608a1b6020808301919091526101408401919091526801e5b8fa8fe2ac00008184015260018284015260056060840152600260808401819052600460a0850152600860c08086019190915260e085019190915260001961010085015260506101208501528251908101909252608280835290614ed39083013961016082015290565b6123f0613100565b602e8152604080518082018252600881526753686f7274626f7760c01b6020808301919091526101408401919091526801a055690d9db80000818401526002828401819052600560608501526080840181905260a0840152600660c0840152600360e08401526000610100840152603c61012084015281516101808101909252610153808352906143199083013961016082015290565b61248f613100565b60138152604080518082018252600d81526c12185b5b595c8b081b1a59da1d609a1b602080830191909152610140840191909152670de0b6b3a7640000818401526002828401819052606084018190526001608085015260a08401819052600460c085015260e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b612527613100565b60098152604080518082018252600a81526929b437b93a39b832b0b960b11b602080830191909152610140840191909152670de0b6b3a7640000818401526001828401526003606084018190526002608080860182905260a0860192909252600660c086015260e08501526000610100850181905261012085015282519081019092526048808352906150bf9083013961016082015290565b6125c8613100565b602381526040805180820182526008815267477265617461786560c01b6020808301919091526101408401919091526801158e460913d000008184015260028284015260046060840152600360808401819052600c60a0850181905260c085015260e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b61265c613100565b6001808252604080518082018252600881526711d85d5b9d1b195d60c21b60208083019190915261014080860192909252671bc16d674ec8000081860152828501849052606085018490526080850184905260a0850193909352600360c0850152600260e085015260006101008501819052610120850152815190810190915261011a8082529091614c2f9083013961016082015290565b6126fc613100565b6029815260408051808201825260058152644c616e636560d81b602080830191909152610140840191909152678ac7230489e80000818401526002828401819052600460608501526080840152600a60a0840152600860c0840152600360e08085019190915260006101008501819052610120850152825190810190925260b580835290613beb9083013961016082015290565b612798613100565b601f81526040805180820182526007815266151c9a59195b9d60ca1b60208083019190915261014084019190915267d02ab486cedc00008184015260028284018190526003606085015260808401819052600460a080860191909152600860c08087019190915260e0860192909252600061010086018190526101208601528351918201909352828152919061329c9083013961016082015290565b61283c613100565b602b8152604080518082018252600681526553637974686560d01b60208083019190915261014084019190915267f9ccd8a1c50800008184015260028284015260046060840181905260036080850152600a60a0850152600860c08086019190915260e0850191909152600061010085018190526101208501528251908101909252608b8083529061428e9083013961016082015290565b6128dc613100565b60248152604080518082018252600981526823b932b0ba31b63ab160b91b602080830191909152610140840191909152674563918244f400008184015260028284018190526004606085015260016080850152600860a0850152600a60c085015260e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b612970613100565b816001141561298757612981612654565b92915050565b81600214156129985761298161171d565b81600314156129a957612981611c19565b81600414156129ba57612981611a2e565b81600514156129cb57612981610a0c565b81600614156129dc57612981610793565b81600714156129ed57612981612fcc565b81600814156129fe57612981612d61565b8160091415612a0f5761298161251f565b81600a1415612a205761298161216e565b81600b1415612a31576129816115ea565b81600c1415612a4257612981611f14565b81600d1415612a5357612981610bda565b81600e1415612a645761298161233d565b81600f1415612a7557612981612ea3565b8160101415612a8657612981610aa8565b8160111415612a9757612981611359565b8160121415612aa857612981611184565b8160131415612ab957612981612487565b8160141415612aca5761298161220d565b8160151415612adb57612981610b49565b8160161415612aec57612981610fc1565b8160171415612afd5761298161168f565b8160181415612b0e57612981610c85565b8160191415612b1f576129816113f7565b81601a1415612b30576129816118eb565b81601b1415612b4157612981612f37565b81601c1415612b5257612981611fa4565b81601d1415612b63576129816108c4565b81601e1415612b745761298161203a565b81601f1415612b8557612981612790565b8160201415612b9657612981611de6565b8160211415612ba757612981611854565b8160221415612bb8576129816120ce565b8160231415612bc9576129816125c0565b8160241415612bda576129816128d4565b8160251415612beb57612981611b72565b8160261415612bfc576129816117bd565b8160271415612c0d57612981611057565b8160281415612c1e57612981613062565b8160291415612c2f576129816126f4565b81602a1415612c4057612981610826565b81602b1415612c5157612981612834565b81602c1415612c6257612981610e7d565b81602d1415612c7357612981611541565b81602e1415612c84576129816123e8565b81602f1415612c9557612981610dd3565b8160301415612ca657612981611214565b8160311415612cb75761298161229f565b8160321415612cc857612981611cc6565b8160331415612cd95761298161198c565b8160341415612cea57612981611acb565b8160351415612cfb57612981610f1b565b8160361415612d0c57612981612df8565b8160371415612d1d57612981610967565b8160381415612d2e57612981611e72565b8160391415612d3f576129816112b2565b81603a1415612d5057612981610d1d565b81603b141561078e5761298161148b565b612d69613100565b6008808252604080518082018252600b81526a26b7b93734b733b9ba30b960a91b602080830191909152610140850191909152676f05b59d3b200000818501526001828501819052600360608601526080850152600660a085015260c0840192909252600260e08401526000610100840181905261012084018190528151928301909152815261016082015290565b612e00613100565b60368152604080518082018252600f8082526e4178652c206f726320646f75626c6560881b60208084019190915261014080860193909352680340aad21b3b700000818601526003848601819052600460608701526080860181905260a0860192909252600860c086015260e08501919091526000610100850181905261012085015282519182019092526101028082529091613ae99083013961016082015290565b612eab613100565b600f815260408051808201825260048082526311185c9d60e21b6020808401919091526101408501929092526706f05b59d3b200008285015260018385018190526005606086015260026080860181905260a086019190915260c085019190915260e0840152600061010084018190526014610120850152825191820190925290815261016082015290565b612f3f613100565b601b81526040805180820182526009815268131bdb99dcdddbdc9960ba1b60208083019190915261014084019190915267d02ab486cedc00008184015260028284018190526003606085018190526080850152600460a0850152600860c085015260e084015260001961010084015260006101208401819052825191820190925290815261016082015290565b612fd4613100565b60078152604080518082018252600b81526a4d6163652c20686561767960a81b60208083019190915261014084019190915267a688906bd8b00000818401526001828401819052600360608501526080840152600860a0840181905260c0840152600260e0840152600061010084018190526101208401819052825191820190925290815261016082015290565b61306a613100565b60288152604080518082018252600781526612185b18995c9960ca1b602080830191909152610140840191909152678ac7230489e80000818401526002828401819052600460608501526080840152600c60a0840152600a60c080850191909152600360e08501526000610100850181905261012085015282519081019092526085808352906142099083013961016082015290565b6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006020828403121561317357600080fd5b5035919050565b6000815180845260005b818110156131a057602081850181015186830182015201613184565b818111156131b2576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006131da602083018461317a565b9392505050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260c082015160e0820152600060e083015161010081818501528085015191505061012081818501528085015191505061014081818501528085015191505061018061016081818601526132756101a086018461317a565b90860151858203601f190183870152909250613291838261317a565b969550505050505056fe5468697320776561706f6e2063616e206265207468726f776e2e20496620796f7520757365206120726561647920616374696f6e20746f2073657420612074726964656e7420616761696e73742061206368617267652c20796f75206465616c20646f75626c652064616d616765206f6e2061207375636365737366756c2068697420616761696e73742061206368617267696e67206368617261637465722e41207370696b656420636861696e206861732072656163682c20736f20796f752063616e20737472696b65206f70706f6e656e74732031302066656574206177617920776974682069742e20496e206164646974696f6e2c20756e6c696b65206d6f7374206f7468657220776561706f6e7320776974682072656163682c2069742063616e206265207573656420616761696e737420616e2061646a6163656e7420666f652e546865206e756e6368616b752069732061207370656369616c206d6f6e6b20776561706f6e2e20546869732064657369676e6174696f6e2067697665732061206d6f6e6b207769656c64696e672061206e756e6368616b75207370656369616c206f7074696f6e732e20576974682061206e756e6368616b752c20796f75206765742061202b3220626f6e7573206f6e206f70706f7365642061747461636b20726f6c6c73206d61646520746f2064697361726d20616e20656e656d792028696e636c7564696e672074686520726f6c6c20746f2061766f6964206265696e672064697361726d6564206966207375636820616e20617474656d7074206661696c73292e41206477617276656e2077617261786520697320746f6f206c6172676520746f2075736520696e206f6e652068616e6420776974686f7574207370656369616c20747261696e696e673b20746875732c20697420697320616e2065786f74696320776561706f6e2e2041204d656469756d206368617261637465722063616e207573652061206477617276656e207761726178652074776f2d68616e6465642061732061206d61727469616c20776561706f6e2c206f722061204c617267652063726561747572652063616e20757365206974206f6e652d68616e64656420696e207468652073616d65207761792e2041206477617266207472656174732061206477617276656e207761726178652061732061206d61727469616c20776561706f6e206576656e207768656e207573696e6720697420696e206f6e652068616e642e412072616e73657572206861732072656163682e20596f752063616e20737472696b65206f70706f6e656e74732031302066656574206177617920776974682069742c2062757420796f752063616e742075736520697420616761696e737420616e2061646a6163656e7420666f652e596f75206472617720612068656176792063726f7373626f77206261636b206279207475726e696e67206120736d616c6c2077696e63682e204c6f6164696e6720612068656176792063726f7373626f7720697320612066756c6c2d726f756e6420616374696f6e20746861742070726f766f6b65732061747461636b73206f66206f70706f7274756e6974792e4120626173746172642073776f726420697320746f6f206c6172676520746f2075736520696e206f6e652068616e6420776974686f7574207370656369616c20747261696e696e673b20746875732c20697420697320616e2065786f74696320776561706f6e2e2041206368617261637465722063616e20757365206120626173746172642073776f72642074776f2d68616e6465642061732061206d61727469616c20776561706f6e2e4120717561727465727374616666206973206120646f75626c6520776561706f6e2e20596f752063616e2066696768742077697468206974206173206966206669676874696e6720776974682074776f20776561706f6e732c2062757420696620796f7520646f2c20796f7520696e63757220616c6c20746865206e6f726d616c2061747461636b2070656e616c74696573206173736f6369617465642077697468206669676874696e6720776974682074776f20776561706f6e732c206a75737420617320696620796f752077657265207573696e672061206f6e652d68616e64656420776561706f6e20616e642061206c6967687420776561706f6e2e2041206372656174757265207769656c64696e6720612071756172746572737461666620696e206f6e652068616e642063616e7420757365206974206173206120646f75626c6520776561706f6e2d6f6e6c79206f6e6520656e64206f662074686520776561706f6e2063616e206265207573656420696e20616e7920676976656e20726f756e642e576974682061207361692c20796f75206765742061202b3420626f6e7573206f6e206f70706f7365642061747461636b20726f6c6c73206d61646520746f2064697361726d20616e20656e656d792028696e636c7564696e672074686520726f6c6c20746f2061766f6964206265696e672064697361726d6564206966207375636820616e20617474656d7074206661696c73292e41206c6f6e677370656172206861732072656163682e20596f752063616e20737472696b65206f70706f6e656e74732031302066656574206177617920776974682069742c2062757420796f752063616e742075736520697420616761696e737420616e2061646a6163656e7420666f652e20496620796f7520757365206120726561647920616374696f6e20746f207365742061206c6f6e67737065617220616761696e73742061206368617267652c20796f75206465616c20646f75626c652064616d616765206f6e2061207375636365737366756c2068697420616761696e73742061206368617267696e67206368617261637465722e416e206f726320646f75626c6520617865206973206120646f75626c6520776561706f6e2e20596f752063616e2066696768742077697468206974206173206966206669676874696e6720776974682074776f20776561706f6e732c2062757420696620796f7520646f2c20796f7520696e63757220616c6c20746865206e6f726d616c2061747461636b2070656e616c74696573206173736f6369617465642077697468206669676874696e6720776974682074776f20776561706f6e732c206a75737420617320696620796f752077657265207573696e672061206f6e652d68616e64656420776561706f6e20616e642061206c6967687420776561706f6e2e41206c616e6365206465616c7320646f75626c652064616d616765207768656e20757365642066726f6d20746865206261636b206f662061206368617267696e67206d6f756e742e204974206861732072656163682c20736f20796f752063616e20737472696b65206f70706f6e656e74732031302066656574206177617920776974682069742c2062757420796f752063616e742075736520697420616761696e737420616e2061646a6163656e7420666f652e596f75206e656564206174206c656173742074776f2068616e647320746f20757365206120626f772c207265676172646c657373206f66206974732073697a652e20596f752063616e20757365206120636f6d706f73697465206c6f6e67626f77207768696c65206d6f756e7465642e20416c6c20636f6d706f7369746520626f777320617265206d6164652077697468206120706172746963756c617220737472656e67746820726174696e672028746861742069732c20656163682072657175697265732061206d696e696d756d20537472656e677468206d6f64696669657220746f2075736520776974682070726f66696369656e6379292e20496620796f757220537472656e67746820626f6e7573206973206c657373207468616e2074686520737472656e67746820726174696e67206f662074686520636f6d706f7369746520626f772c20796f752063616e74206566666563746976656c79207573652069742c20736f20796f752074616b652061202d322070656e616c7479206f6e2061747461636b7320776974682069742e205468652064656661756c7420636f6d706f73697465206c6f6e67626f77207265717569726573206120537472656e677468206d6f646966696572206f66202b30206f722068696768657220746f2075736520776974682070726f66696369656e63792e204120636f6d706f73697465206c6f6e67626f772063616e206265206d61646520776974682061206869676820737472656e67746820726174696e6720746f2074616b6520616476616e74616765206f6620616e2061626f76652d6176657261676520537472656e6774682073636f72653b2074686973206665617475726520616c6c6f777320796f7520746f2061646420796f757220537472656e67746820626f6e757320746f2064616d6167652c20757020746f20746865206d6178696d756d20626f6e757320696e6469636174656420666f722074686520626f772e204561636820706f696e74206f6620537472656e67746820626f6e7573206772616e7465642062792074686520626f7720616464732031303020677020746f2069747320636f73742e546865206b616d612069732061207370656369616c206d6f6e6b20776561706f6e2e20546869732064657369676e6174696f6e2067697665732061206d6f6e6b207769656c64696e672061206b616d61207370656369616c206f7074696f6e732e57697468206120666c61696c2c20796f75206765742061202b3220626f6e7573206f6e206f70706f7365642061747461636b20726f6c6c73206d61646520746f2064697361726d20616e20656e656d792028696e636c7564696e672074686520726f6c6c20746f2061766f6964206265696e672064697361726d6564206966207375636820616e20617474656d7074206661696c73292e4120676c61697665206861732072656163682e20596f752063616e20737472696b65206f70706f6e656e74732031302066656574206177617920776974682069742c2062757420796f752063616e742075736520697420616761696e737420616e2061646a6163656e7420666f652e596f752063616e206472617720612068616e642063726f7373626f77206261636b2062792068616e642e204c6f6164696e6720612068616e642063726f7373626f772069732061206d6f766520616374696f6e20746861742070726f766f6b65732061747461636b73206f66206f70706f7274756e6974792e546865207369616e6768616d2069732061207370656369616c206d6f6e6b20776561706f6e2e20546869732064657369676e6174696f6e2067697665732061206d6f6e6b207769656c64696e672061207369616e6768616d207370656369616c206f7074696f6e732e496620796f7520757365206120726561647920616374696f6e20746f2073657420612068616c6265726420616761696e73742061206368617267652c20796f75206465616c20646f75626c652064616d616765206f6e2061207375636365737366756c2068697420616761696e73742061206368617267696e67206368617261637465722e41207363797468652063616e206265207573656420746f206d616b6520747269702061747461636b732e20496620796f7520617265207472697070656420647572696e6720796f7572206f776e207472697020617474656d70742c20796f752063616e2064726f70207468652073637974686520746f2061766f6964206265696e6720747269707065642e596f75206e656564206174206c656173742074776f2068616e647320746f20757365206120626f772c207265676172646c657373206f66206974732073697a652e20596f752063616e2075736520612073686f7274626f77207768696c65206d6f756e7465642e20496620796f75206861766520612070656e616c747920666f72206c6f7720537472656e6774682c206170706c7920697420746f2064616d61676520726f6c6c73207768656e20796f752075736520612073686f7274626f772e20496620796f752068617665206120626f6e757320666f72206869676820537472656e6774682c20796f752063616e206170706c7920697420746f2064616d61676520726f6c6c73207768656e20796f7520757365206120636f6d706f736974652073686f7274626f7720287365652062656c6f772920627574206e6f74206120726567756c61722073686f7274626f772e596f75206e656564206174206c656173742074776f2068616e647320746f20757365206120626f772c207265676172646c657373206f66206974732073697a652e20596f752063616e20757365206120636f6d706f736974652073686f7274626f77207768696c65206d6f756e7465642e20416c6c20636f6d706f7369746520626f777320617265206d6164652077697468206120706172746963756c617220737472656e67746820726174696e672028746861742069732c20656163682072657175697265732061206d696e696d756d20537472656e677468206d6f64696669657220746f2075736520776974682070726f66696369656e6379292e20496620796f757220537472656e67746820626f6e7573206973206c6f776572207468616e2074686520737472656e67746820726174696e67206f662074686520636f6d706f7369746520626f772c20796f752063616e74206566666563746976656c79207573652069742c20736f20796f752074616b652061202d322070656e616c7479206f6e2061747461636b7320776974682069742e205468652064656661756c7420636f6d706f736974652073686f7274626f77207265717569726573206120537472656e677468206d6f646966696572206f66202b30206f722068696768657220746f2075736520776974682070726f66696369656e63792e204120636f6d706f736974652073686f7274626f772063616e206265206d61646520776974682061206869676820737472656e67746820726174696e6720746f2074616b6520616476616e74616765206f6620616e2061626f76652d6176657261676520537472656e6774682073636f72653b2074686973206665617475726520616c6c6f777320796f7520746f2061646420796f757220537472656e67746820626f6e757320746f2064616d6167652c20757020746f20746865206d6178696d756d20626f6e757320696e6469636174656420666f722074686520626f772e204561636820706f696e74206f6620537472656e67746820626f6e7573206772616e7465642062792074686520626f77206164647320373520677020746f2069747320636f73742e53696e6365206974206973206e6f742064657369676e656420666f72206d656c65652c20796f75206172652074726561746564206173206e6f6e70726f66696369656e74207769746820697420616e642074616b652061202d342070656e616c7479206f6e2061747461636b20726f6c6c7320696620796f75207573652061206a6176656c696e2061732061206d656c656520776561706f6e2e596f752063616e207573652074686520576561706f6e2046696e65737365206665617420746f206170706c7920796f757220446578746572697479206d6f64696669657220696e7374656164206f6620796f757220537472656e677468206d6f64696669657220746f2061747461636b20726f6c6c7320776974682061207261706965722073697a656420666f7220796f752c206576656e2074686f7567682069742069736e742061206c6967687420776561706f6e20666f7220796f752e20596f752063616e74207769656c6420612072617069657220696e2074776f2068616e647320696e206f7264657220746f206170706c7920312e352074696d657320796f757220537472656e67746820626f6e757320746f2064616d6167652e41206469726520666c61696c206973206120646f75626c6520776561706f6e2e20596f752063616e2066696768742077697468206974206173206966206669676874696e6720776974682074776f20776561706f6e732c2062757420696620796f7520646f2c20796f7520696e63757220616c6c20746865206e6f726d616c2061747461636b2070656e616c74696573206173736f6369617465642077697468206669676874696e6720776974682074776f20776561706f6e732c206a75737420617320696620796f752077657265207573696e672061206f6e652d68616e64656420776561706f6e20616e642061206c6967687420776561706f6e2e2041206372656174757265207769656c64696e672061206469726520666c61696c20696e206f6e652068616e642063616e7420757365206974206173206120646f75626c6520776561706f6e2d206f6e6c79206f6e6520656e64206f662074686520776561706f6e2063616e206265207573656420696e20616e7920676976656e20726f756e642e596f75206e656564206174206c656173742074776f2068616e647320746f20757365206120626f772c207265676172646c657373206f66206974732073697a652e2041206c6f6e67626f7720697320746f6f20756e7769656c647920746f20757365207768696c6520796f7520617265206d6f756e7465642e20496620796f75206861766520612070656e616c747920666f72206c6f7720537472656e6774682c206170706c7920697420746f2064616d61676520726f6c6c73207768656e20796f75207573652061206c6f6e67626f772e20496620796f752068617665206120626f6e757320666f72206869676820537472656e6774682c20796f752063616e206170706c7920697420746f2064616d61676520726f6c6c73207768656e20796f7520757365206120636f6d706f73697465206c6f6e67626f7720287365652062656c6f772920627574206e6f74206120726567756c6172206c6f6e67626f772e54686973206d6574616c20676c6f7665206c65747320796f75206465616c206c657468616c2064616d61676520726174686572207468616e206e6f6e6c657468616c2064616d616765207769746820756e61726d656420737472696b65732e204120737472696b6520776974682061206761756e746c6574206973206f746865727769736520636f6e7369646572656420616e20756e61726d65642061747461636b2e2054686520636f737420616e642077656967687420676976656e2061726520666f7220612073696e676c65206761756e746c65742e204d656469756d20616e642068656176792061726d6f7273202865786365707420627265617374706c6174652920636f6d652077697468206761756e746c6574732e41207369636b6c652063616e206265207573656420746f206d616b6520747269702061747461636b732e20496620796f7520617265207472697070656420647572696e6720796f7572206f776e207472697020617474656d70742c20796f752063616e2064726f7020746865207369636b6c6520746f2061766f6964206265696e6720747269707065642e54686520726570656174696e672063726f7373626f77202877686574686572206865617679206f72206c696768742920686f6c647320352063726f7373626f7720626f6c74732e204173206c6f6e6720617320697420686f6c647320626f6c74732c20796f752063616e2072656c6f61642069742062792070756c6c696e67207468652072656c6f6164696e67206c65766572202861206672656520616374696f6e292e204c6f6164696e672061206e65772063617365206f66203520626f6c747320697320612066756c6c2d726f756e6420616374696f6e20746861742070726f766f6b65732061747461636b73206f66206f70706f7274756e6974792e596f7520647261772061206c696768742063726f7373626f77206261636b2062792070756c6c696e672061206c657665722e204c6f6164696e672061206c696768742063726f7373626f772069732061206d6f766520616374696f6e20746861742070726f766f6b65732061747461636b73206f66206f70706f7274756e6974792e41206775697361726d65206861732072656163682e20596f752063616e20737472696b65206f70706f6e656e74732031302066656574206177617920776974682069742c2062757420796f752063616e742075736520697420616761696e737420616e2061646a6163656e7420666f652e596f757220537472656e677468206d6f646966696572206170706c69657320746f2064616d61676520726f6c6c73207768656e20796f7520757365206120736c696e672c206a75737420617320697420646f657320666f72207468726f776e20776561706f6e732e20596f752063616e20666972652c20627574206e6f74206c6f61642c206120736c696e672077697468206f6e652068616e642e204c6f6164696e67206120736c696e672069732061206d6f766520616374696f6e20746861742072657175697265732074776f2068616e647320616e642070726f766f6b65732061747461636b73206f66206f70706f7274756e6974792e412073686f7274737065617220697320736d616c6c20656e6f75676820746f207769656c64206f6e652d68616e6465642e204974206d617920616c736f206265207468726f776e2e596f7572206f70706f6e656e742063616e6e6f742075736520612064697361726d20616374696f6e20746f2064697361726d20796f75206f66207370696b6564206761756e746c6574732e2054686520636f737420616e642077656967687420676976656e2061726520666f7220612073696e676c65206761756e746c65742e20416e2061747461636b20776974682061207370696b6564206761756e746c657420697320636f6e7369646572656420616e2061726d65642061747461636b2e596f75206765742061202b3220626f6e7573206f6e20536c6569676874206f662048616e6420636865636b73206d61646520746f20636f6e6365616c206120646167676572206f6e20796f757220626f647920287365652074686520536c6569676874206f662048616e6420736b696c6c292ea264697066735822122052aff045744502a9ef59032af2f0a4830f9b692b4a83133e3a174369879039fb64736f6c63430008070033

Deployed ByteCode Sourcemap

129:42358:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;549:469;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8778:459;;;:::i;:::-;;;;;;;:::i;28645:580::-;;;:::i;21297:753::-;;;:::i;38816:645::-;;;:::i;8168:602::-;;;:::i;151:38::-;;;;;;;;;;;;;;;-1:-1:-1;;;151:38:0;;;;;14559:621;;;:::i;17333:463::-;;;:::i;12832:628::-;;;:::i;18751:477::-;;;:::i;40953:763::-;;;:::i;32793:1294::-;;;:::i;29846:823::-;;;:::i;37253:806::-;;;:::i;17804:473::-;;;:::i;26792:582::-;;;:::i;1030:296::-;;;;;;:::i;:::-;;:::i;15908:458::-;;;:::i;34095:557::-;;;:::i;40341:604::-;;;:::i;15188:712::-;;;:::i;19236:471::-;;;:::i;41724:760::-;;;:::i;30677:1291::-;;;:::i;11486:868::-;;;:::i;18285:458::-;;;:::i;6419:579::-;;;:::i;26309:475::-;;;:::i;23650:470::-;;;:::i;19715:613::-;;;:::i;36011:573::-;;;:::i;7688:472::-;;;:::i;36592:653::-;;;:::i;25671:630::-;;;:::i;7006:674::-;;;:::i;35396:607::-;;;:::i;249:288::-;;;;;;:::i;:::-;;:::i;23171:471::-;;;:::i;39469:864::-;;;:::i;12362:462::-;;;:::i;20816:473::-;;;:::i;22058:470::-;;;:::i;24128:577::-;;;:::i;10758:720::-;;;:::i;16859:466::-;;;:::i;34660:728::-;;;:::i;13468:614::-;;;:::i;31976:809::-;;;:::i;196:40::-;;;;;;;;;;;;;;;-1:-1:-1;;;196:40:0;;;;;16374:477;;;:::i;10207:543::-;;;:::i;24713:471::-;;;:::i;5662:749::-;;;:::i;27992:645::-;;;:::i;22536:627::-;;;:::i;29233:605::-;;;:::i;25192:471::-;;;:::i;1669:3985::-;;;;;;:::i;:::-;;:::i;9726:473::-;;;:::i;38067:741::-;;;:::i;14090:461::-;;;:::i;20336:472::-;;;:::i;9245:473::-;;;:::i;27382:602::-;;;:::i;549:469::-;611:25;653:3;660:1;653:8;649:362;;;-1:-1:-1;;678:16:0;;;;;;;;;;;;-1:-1:-1;;;678:16:0;;;;;549:469::o;649:362::-;716:3;723:1;716:8;712:299;;;-1:-1:-1;;741:28:0;;;;;;;;;;;;-1:-1:-1;;;741:28:0;;;;;549:469::o;712:299::-;791:3;798:1;791:8;787:224;;;-1:-1:-1;;816:33:0;;;;;;;;;;;;;;;;;;549:469::o;787:224::-;871:3;878:1;871:8;867:144;;;-1:-1:-1;;896:33:0;;;;;;;;;;;;;;;;;;549:469::o;867:144::-;951:3;958:1;951:8;947:64;;;-1:-1:-1;;976:23:0;;;;;;;;;;;;-1:-1:-1;;;976:23:0;;;;;549:469::o;947:64::-;549:469;;;:::o;8778:459::-;8815:21;;:::i;:::-;8862:1;8849:14;;;8874:21;;;;;;;;;;;-1:-1:-1;;;8874:21:0;;;;;;;;:12;;;:21;;;;8921:4;8906:12;;;:19;8958:1;8936:19;;;:23;;;8992:1;8970:19;;;:23;;;9004:19;;;:23;;;;9038:14;;;:18;-1:-1:-1;9067:14:0;;:18;;;;9115:1;-1:-1:-1;9096:16:0;;:20;8849:10;-1:-1:-1;9127:25:0;;:29;;;-1:-1:-1;9167:23:0;;:27;;;9205:24;;;;;;;;;;:19;;;:24;8849:7;8778:459::o;28645:580::-;28685:21;;:::i;:::-;28732:2;28719:15;;28745:24;;;;;;;;;;;-1:-1:-1;;;28745:24:0;;;;;;;;:12;;;:24;;;;28795:5;28780:12;;;:20;28833:1;28811:19;;;:23;;;28867:1;28845:19;;;:23;28879:19;;;:23;28930:2;28913:14;;;;:19;;;;28960:1;-1:-1:-1;28943:14:0;;:18;28991:1;-1:-1:-1;28972:16:0;;:20;28719:10;-1:-1:-1;29003:25:0;;:29;;;-1:-1:-1;29043:23:0;;:27;29081:136;;;;;;;;;;;;;;;;;;:19;;;:136;:7;28645:580::o;21297:753::-;21336:21;;:::i;:::-;21383:2;21370:15;;21396:23;;;;;;;;;;;;-1:-1:-1;;;21396:23:0;;;;;;;;:12;;;;:23;;;;21445:5;21430:12;;;:20;21483:1;21461:19;;;:23;;;21517:1;21495:19;;;:23;21529:19;;;:23;;;21563:14;;;:18;;;-1:-1:-1;21592:14:0;;:18;;;;-1:-1:-1;21621:16:0;;:20;;;;-1:-1:-1;;;21652:25:0;;:30;21370:10;-1:-1:-1;21693:23:0;;:27;21731:311;;;;;;;;;;;;;;;;;;;:19;;;:311;:7;21297:753::o;38816:645::-;38861:21;;:::i;:::-;38908:2;38895:15;;38921:30;;;;;;;;;;;-1:-1:-1;;;38921:30:0;;;;;;;;:12;;;:30;;;;38977:5;38962:12;;;:20;39015:1;38993:19;;;:23;39049:1;39027:19;;;:23;39083:1;39061:19;;;:23;;;39112:2;39095:14;;;:19;39142:1;-1:-1:-1;39125:14:0;;:18;-1:-1:-1;39154:16:0;;;:20;;;;38895:10;-1:-1:-1;39185:25:0;;:29;;;-1:-1:-1;39225:23:0;;:27;39263:190;;;;;;;;;;;;;;;;;;:19;;;:190;:7;38816:645::o;8168:602::-;8207:21;;:::i;:::-;8254:1;8241:14;;8266:23;;;;;;;;;;;;-1:-1:-1;;;8266:23:0;;;;;;;;:12;;;:23;;;;8315:4;8300:12;;;:19;8352:1;8330:19;;;:23;8386:1;8364:19;;;:23;;;8420:1;8398:19;;;:23;8432:14;;;:18;;;-1:-1:-1;8461:14:0;;;:18;;;;-1:-1:-1;8490:16:0;;:20;8241:10;-1:-1:-1;8521:25:0;;:29;;;-1:-1:-1;8561:23:0;;:27;8599:163;;;;;;;;;;;;;;;;;;:19;;;:163;:7;8168:602::o;14559:621::-;14599:21;;:::i;:::-;14646:2;14633:15;;14659:24;;;;;;;;;;;-1:-1:-1;;;14659:24:0;;;;;;;;:12;;;:24;;;;14709:4;14694:12;;;:19;14746:1;14724:19;;;:23;14780:1;14758:19;;;:23;14814:1;14792:19;;;:23;;;14826:14;;;:18;;;14872:1;-1:-1:-1;14855:14:0;;;:18;;;;-1:-1:-1;14884:16:0;;:20;;;;14633:10;-1:-1:-1;14915:25:0;;:29;14981:2;-1:-1:-1;14955:23:0;;:28;14994:178;;;;;;;;;;;;;;;;;;:19;;;:178;:7;14559:621::o;17333:463::-;17371:21;;:::i;:::-;17418:2;17405:15;;17431:22;;;;;;;;;;;-1:-1:-1;;;17431:22:0;;;;;;;;:12;;;:22;;;;17479:4;17464:12;;;:19;17516:1;17494:19;;;:23;;;17528:19;;;:23;;;17584:1;17562:19;;;:23;17596:14;;;:18;;;17642:1;-1:-1:-1;17625:14:0;;:18;-1:-1:-1;17654:16:0;;:20;-1:-1:-1;;;17685:25:0;;:30;17405:10;-1:-1:-1;17726:23:0;;:27;;;17764:24;;;;;;;;;;;:19;;;:24;17405:7;17333:463::o;12832:628::-;12879:21;;:::i;:::-;12926:2;12913:15;;12939:32;;;;;;;;;;;-1:-1:-1;;;12939:32:0;;;;;;;;:12;;;:32;;;;12997:5;12982:12;;;:20;13035:1;13013:19;;;:23;13069:1;13047:19;;;:23;13103:1;13081:19;;;:23;;;13132:1;13115:14;;;:18;13161:2;-1:-1:-1;13144:14:0;;;:19;;;;-1:-1:-1;13174:16:0;;:20;;;;-1:-1:-1;;;13205:25:0;;:30;13272:3;-1:-1:-1;13246:23:0;;:29;13286:166;;;;;;;;;;;;;;;;;;:19;;;:166;:7;12832:628::o;18751:477::-;18795:21;;:::i;:::-;18842:2;18829:15;;18855:29;;;;;;;;;;;-1:-1:-1;;;18855:29:0;;;;;;;;:12;;;:29;;;;18910:5;18895:12;;;:20;18948:1;18926:19;;;:23;;;18960:19;;;:23;;;18994:19;;;:23;;;19028:14;;;:18;;;19074:1;-1:-1:-1;19057:14:0;;:18;-1:-1:-1;19086:16:0;;:20;-1:-1:-1;;;19117:25:0;;:30;18829:10;-1:-1:-1;19158:23:0;;:27;;;19196:24;;;;;;;;;;;:19;;;:24;18829:7;18751:477::o;40953:763::-;41010:21;;:::i;:::-;41057:2;41044:15;;41070:42;;;;;;;;;;;;;;;;;;;;:12;;;:42;;;;41138:6;41123:12;;;:21;41177:1;41155:19;;;:23;41211:1;41189:19;;;:23;41245:1;41223:19;;;:23;;;41274:2;41257:14;;;:19;41304:2;-1:-1:-1;41287:14:0;;:19;-1:-1:-1;41317:16:0;;:20;-1:-1:-1;;;41348:25:0;;:30;41415:3;-1:-1:-1;41389:23:0;;;:29;;;;41429:279;;;;;;;;;;;;;;;;;;:19;;;:279;:7;40953:763::o;32793:1294::-;32844:21;;:::i;:::-;32891:2;32878:15;;32904:36;;;;;;;;;;;-1:-1:-1;;;32904:36:0;;;;;;;;:12;;;:36;;;;32966:5;32951:12;;;:20;33004:1;32982:19;;;:23;;;33038:1;33016:19;;;:23;33050:19;;;:23;;;33084:14;;;:18;33130:1;-1:-1:-1;33113:14:0;;:18;33161:1;-1:-1:-1;33142:16:0;;:20;32878:10;-1:-1:-1;33173:25:0;;:29;33239:2;-1:-1:-1;33213:23:0;;:28;33252:827;;;;;;;;;;;;;;;;;;:19;;;:827;:7;32793:1294::o;29846:823::-;29886:21;;:::i;:::-;29933:2;29920:15;;29946:24;;;;;;;;;;;-1:-1:-1;;;29946:24:0;;;;;;;;:12;;;:24;;;;29996:5;29981:12;;;:20;30034:1;30012:19;;;:23;;;30068:1;30046:19;;;:23;30080:19;;;:23;30131:1;30114:14;;;:18;;;30160:1;-1:-1:-1;30143:14:0;;:18;-1:-1:-1;30172:16:0;;:20;29920:10;-1:-1:-1;30203:25:0;;:29;30269:3;-1:-1:-1;30243:23:0;;:29;30283:378;;;;;;;;;;;;;;;;;;:19;;;:378;:7;29846:823::o;37253:806::-;37300:21;;:::i;:::-;37347:2;37334:15;;37360:32;;;;;;;;;;;-1:-1:-1;;;37360:32:0;;;;;;;;:12;;;:32;;;;37418:5;37403:12;;;:20;37456:1;37434:19;;;:23;;;37468:19;;;:23;;;37502:19;;;:23;;;37553:1;37536:14;;;:18;37582:2;-1:-1:-1;37565:14:0;;:19;-1:-1:-1;37595:16:0;;:20;37334:10;-1:-1:-1;37626:25:0;;:29;;;-1:-1:-1;37666:23:0;;:27;37704:347;;;;;;;;;;;;;;;;;;:19;;;:347;:7;37253:806::o;17804:473::-;17847:21;;:::i;:::-;17894:2;17881:15;;17907:28;;;;;;;;;;;-1:-1:-1;;;17907:28:0;;;;;;;;:12;;;:28;;;;17961:4;17946:12;;;:19;17998:1;17976:19;;;:23;;;18010:19;;;:23;;;18044:19;;;:23;18095:1;18078:14;;;:18;18124:1;-1:-1:-1;18107:14:0;;:18;;;-1:-1:-1;18136:16:0;;:20;17881:10;-1:-1:-1;18167:25:0;;:29;;;-1:-1:-1;18207:23:0;;:27;;;18245:24;;;;;;;;;;;:19;;;:24;17881:7;17804:473::o;26792:582::-;26833:21;;:::i;:::-;26880:2;26867:15;;26893:25;;;;;;;;;;;;-1:-1:-1;;;26893:25:0;;;;;;;;:12;;;:25;;;;26944:4;26929:12;;;:19;26981:1;26959:19;;;:23;27015:1;26993:19;;;:23;27049:1;27027:19;;;:23;;;27078:2;27061:14;;;;:19;;;;-1:-1:-1;27091:14:0;;:18;;;;-1:-1:-1;27120:16:0;;:20;26867:10;-1:-1:-1;27151:25:0;;:29;;;-1:-1:-1;27191:23:0;;:27;27229:137;;;;;;;;;;;;;;;;;;:19;;;:137;:7;26792:582::o;1030:296::-;1092:25;1134:3;1141:1;1134:8;1130:189;;;-1:-1:-1;;1159:20:0;;;;;;;;;;;;-1:-1:-1;;;1159:20:0;;;;;1030:296::o;1130:189::-;1201:3;1208:1;1201:8;1197:122;;;-1:-1:-1;;1226:17:0;;;;;;;;;;;;-1:-1:-1;;;1226:17:0;;;;;1030:296::o;1197:122::-;1265:3;1272:1;1265:8;1261:58;;;-1:-1:-1;;1290:17:0;;;;;;;;;;;;-1:-1:-1;;;1290:17:0;;;;;1030:296::o;15908:458::-;15944:21;;:::i;:::-;15991:2;15978:15;;16004:20;;;;;;;;;;;;-1:-1:-1;;;16004:20:0;;;;;;;;:12;;;:20;;;;16050:4;16035:12;;;:19;16087:1;16065:19;;;:23;;;16099:19;;;:23;;;16133:19;;;:23;;;;16167:14;;;:18;;;16213:1;-1:-1:-1;16196:14:0;;:18;-1:-1:-1;16225:16:0;;:20;15978:10;-1:-1:-1;16256:25:0;;:29;;;-1:-1:-1;16296:23:0;;:27;;;16334:24;;;;;;;;;;;:19;;;:24;15978:7;15908:458::o;34095:557::-;34132:21;;:::i;:::-;34179:2;34166:15;;34192:21;;;;;;;;;;;-1:-1:-1;;;34192:21:0;;;;;;;;:12;;;:21;;;;34239:4;34224:12;;;:19;34276:1;34254:19;;;:23;;;34310:1;34288:19;;;:23;;;34322:19;;;:23;;;;34356:14;;;;:18;;;34402:1;-1:-1:-1;34385:14:0;;:18;-1:-1:-1;34414:16:0;;:20;;;;34166:10;-1:-1:-1;34445:25:0;;:29;;;-1:-1:-1;34485:23:0;;:27;34523:121;;;;;;;;;;;;;;;;;;:19;;;:121;:7;34095:557::o;40341:604::-;40387:21;;:::i;:::-;40434:2;40421:15;;40447:31;;;;;;;;;;;-1:-1:-1;;;40447:31:0;;;;;;;;:12;;;:31;;;;40504:6;40489:12;;;:21;40543:1;40521:19;;;:23;40577:1;40555:19;;;:23;40611:1;40589:19;;;:23;;;40623:14;;;;:18;;;40669:1;-1:-1:-1;40652:14:0;;:18;-1:-1:-1;40681:16:0;;:20;;;;-1:-1:-1;;;40712:25:0;;:30;40779:2;-1:-1:-1;40753:23:0;;:28;40792:145;;;;;;;;;;;;;;;;;;:19;;;:145;:7;40341:604::o;15188:712::-;15226:21;;:::i;:::-;15273:2;15260:15;;15286:22;;;;;;;;;;;;-1:-1:-1;;;15286:22:0;;;;;;;;:12;;;:22;;;;15334:4;15319:12;;;:19;15371:1;15349:19;;;:23;;;15383:19;;;:23;;;;15417:19;;;:23;15260:10;15451:14;;;:18;;;15497:1;-1:-1:-1;15480:14:0;;:18;15528:1;-1:-1:-1;15509:16:0;;:20;-1:-1:-1;15540:25:0;;:29;15606:2;-1:-1:-1;15580:23:0;;;:28;;;;15619:273;;;;;;;;;;;;;;;;;;:19;;;:273;:7;15188:712::o;19236:471::-;19278:21;;:::i;:::-;19325:2;19312:15;;19338:26;;;;;;;;;;;-1:-1:-1;;;19338:26:0;;;;;;;;:12;;;:26;;;;19390:5;19375:12;;;:20;19428:1;19406:19;;;:23;19462:1;19440:19;;;:23;;;19474:19;;;:23;;;19525:1;19508:14;;;:18;19554:1;-1:-1:-1;19537:14:0;;:18;-1:-1:-1;19566:16:0;;:20;19312:10;-1:-1:-1;19597:25:0;;:29;;;-1:-1:-1;19637:23:0;;:27;;;19675:24;;;;;;;;;;;:19;;;:24;19312:7;19236:471::o;41724:760::-;41781:21;;:::i;:::-;41828:2;41815:15;;41841:42;;;;;;;;;;;;;;;;;;;;:12;;;:42;;;;41909:6;41894:12;;;:21;41948:1;41926:19;;;:23;41982:1;41960:19;;;:23;42016:1;41994:19;;;:23;;;42045:1;42028:14;;;:18;42074:1;-1:-1:-1;42057:14:0;;:18;-1:-1:-1;42086:16:0;;:20;-1:-1:-1;;;42117:25:0;;:30;42184:2;-1:-1:-1;42158:23:0;;;:28;;;;42197:279;;;;;;;;;;;;;;;;;;:19;;;:279;:7;41724:760::o;30677:1291::-;30727:21;;:::i;:::-;30774:2;30761:15;;30787:35;;;;;;;;;;;-1:-1:-1;;;30787:35:0;;;;;;;;:12;;;:35;;;;30848:6;30833:12;;;:21;30887:1;30865:19;;;:23;;;30921:1;30899:19;;;:23;30933:19;;;:23;30984:1;30967:14;;;:18;;;31013:1;-1:-1:-1;30996:14:0;;:18;-1:-1:-1;31025:16:0;;:20;30761:10;-1:-1:-1;31056:25:0;;:29;31122:3;-1:-1:-1;31096:23:0;;:29;31136:824;;;;;;;;;;;;;;;;;;:19;;;:824;:7;30677:1291::o;11486:868::-;11531:21;;:::i;:::-;11578:2;11565:15;;11591:29;;;;;;;;;;;-1:-1:-1;;;11591:29:0;;;;;;;;:12;;;:29;;;;11646:4;11631:12;;;:19;11683:1;11661:19;;;:23;;;11717:1;11695:19;;;:23;;;11729:19;;;:23;;;;11763:14;;;:18;11809:1;-1:-1:-1;11792:14:0;;:18;11840:1;-1:-1:-1;11821:16:0;;:20;11565:10;-1:-1:-1;11852:25:0;;:29;;;-1:-1:-1;11892:23:0;;:27;11930:416;;;;;;;;;;;;;;;;;;:19;;;:416;:7;11486:868::o;18285:458::-;18321:21;;:::i;:::-;18368:2;18355:15;;18381:20;;;;;;;;;;;-1:-1:-1;;;18381:20:0;;;;;;;;:12;;;:20;;;;18427:4;18412:12;;;:19;18464:1;18442:19;;;:23;;;18476:19;;;:23;;;18532:1;18510:19;;;:23;18544:14;;;:18;;;18590:1;-1:-1:-1;18573:14:0;;:18;-1:-1:-1;18602:16:0;;:20;18355:10;-1:-1:-1;18633:25:0;;:29;;;-1:-1:-1;18673:23:0;;:27;;;18711:24;;;;;;;;;;;:19;;;:24;18355:7;18285:458::o;6419:579::-;6458:21;;:::i;:::-;6505:1;6492:14;;;6517:23;;;;;;;;;;;-1:-1:-1;;;6517:23:0;;;;;;;;:12;;;:23;;;;6566:4;6551:12;;;:19;6603:1;6581:19;;;:23;;;6615:19;;;:23;;;6649:19;;;:23;;;6683:14;;;;:18;;;;6729:1;-1:-1:-1;6712:14:0;;:18;-1:-1:-1;6741:16:0;;:20;;;;-1:-1:-1;;;6772:25:0;;:30;6492:10;-1:-1:-1;6813:23:0;;:27;6851:139;;;;;;;;;;;;;;;;;;:19;;;:139;:7;6419:579::o;26309:475::-;26352:21;;:::i;:::-;26399:2;26386:15;;26412:27;;;;;;;;;;;-1:-1:-1;;;26412:27:0;;;;;;;;:12;;;:27;;;;26465:5;26450:12;;;:20;26503:1;26481:19;;;:23;;;26537:1;26515:19;;;:23;26571:1;26549:19;;;:23;26600:1;26583:14;;;:18;26629:2;-1:-1:-1;26612:14:0;;:19;-1:-1:-1;26642:16:0;;:20;-1:-1:-1;;;26673:25:0;;:30;26386:10;-1:-1:-1;26714:23:0;;:27;;;26752:24;;;;;;;;;;;:19;;;:24;26386:7;26309:475::o;23650:470::-;23691:21;;:::i;:::-;23738:2;23725:15;;23751:25;;;;;;;;;;;;-1:-1:-1;;;23751:25:0;;;;;;;;:12;;;:25;;;;23802:5;23787:12;;;:20;23840:1;23818:19;;;:23;;;23874:1;23852:19;;;:23;23908:1;23886:19;;;:23;23920:14;;;:18;;;-1:-1:-1;23949:14:0;;:18;;;;-1:-1:-1;23978:16:0;;:20;-1:-1:-1;;;24009:25:0;;:30;23725:10;-1:-1:-1;24050:23:0;;:27;;;24088:24;;;;;;;;;;;:19;;;:24;23725:7;23650:470::o;19715:613::-;19753:21;;:::i;:::-;19800:2;19787:15;;19813:22;;;;;;;;;;;;-1:-1:-1;;;19813:22:0;;;;;;;;:12;;;:22;;;;19861:4;19846:12;;;:19;19898:1;19876:19;;;:23;;;19932:1;19910:19;;;:23;19966:1;19944:19;;;:23;19978:14;;;:18;;;;20024:1;-1:-1:-1;20007:14:0;;;:18;;;;-1:-1:-1;20036:16:0;;:20;;;;19787:10;-1:-1:-1;20067:25:0;;:29;;;-1:-1:-1;20107:23:0;;:27;20145:175;;;;;;;;;;;;;;;;;;:19;;;:175;:7;19715:613::o;36011:573::-;36052:21;;:::i;:::-;36099:2;36086:15;;36112:25;;;;;;;;;;;-1:-1:-1;;;36112:25:0;;;;;;;;:12;;;:25;;;;36163:4;36148:12;;;:19;36200:1;36178:19;;;:23;36234:1;36212:19;;;:23;;;36246:19;;;:23;;;36297:1;36280:14;;;;:18;;;;36326:1;-1:-1:-1;36309:14:0;;:18;-1:-1:-1;36338:16:0;;:20;;;;36086:10;-1:-1:-1;36369:25:0;;:29;;;-1:-1:-1;36409:23:0;;:27;36447:129;;;;;;;;;;;;;;;;;;:19;;;:129;:7;36011:573::o;7688:472::-;7731:21;;:::i;:::-;7778:1;7765:14;;;7790:28;;;;;;;;;;;-1:-1:-1;;;7790:28:0;;;;;;;;:12;;;:28;;;;7844:4;7829:12;;;:19;7881:1;7859:19;;;:23;;;7915:1;7893:19;;;:23;;;7927:19;;;:23;;;;7961:14;;;:18;;;;8007:1;-1:-1:-1;7990:14:0;;:18;-1:-1:-1;8019:16:0;;:20;;;;7765:10;-1:-1:-1;8050:25:0;;:29;;;-1:-1:-1;8090:23:0;;:27;;;8128:24;;;;;;;;;;:19;;;:24;7765:7;7688:472::o;36592:653::-;36638:21;;:::i;:::-;36685:2;36672:15;;36698:31;;;;;;;;;;;-1:-1:-1;;;36698:31:0;;;;;;;;:12;;;:31;;;;36755:5;36740:12;;;:20;36793:1;36771:19;;;:23;;;36805:19;;;:23;;;36839:19;;;:23;36890:1;36873:14;;;:18;36919:2;-1:-1:-1;36902:14:0;;:19;36951:1;-1:-1:-1;36932:16:0;;;:20;;;;-1:-1:-1;;;36963:25:0;;:30;36672:10;-1:-1:-1;37004:23:0;;:27;37042:195;;;;;;;;;;;;;;;;;;:19;;;:195;:7;36592:653::o;25671:630::-;25715:21;;:::i;:::-;25762:2;25749:15;;25775:29;;;;;;;;;;;-1:-1:-1;;;25775:29:0;;;;;;;;:12;;;:29;;;;25830:5;25815:12;;;:20;25868:1;25846:19;;;:23;;;25902:1;25880:19;;;:23;25936:1;25914:19;;;:23;25965:2;25948:14;;;:19;;;-1:-1:-1;25978:14:0;;;:19;;;;-1:-1:-1;26008:16:0;;:20;;;;-1:-1:-1;;;26039:25:0;;:30;25749:10;-1:-1:-1;26080:23:0;;:27;26118:175;;;;;;;;;;;;;;;;;;:19;;;:175;:7;25671:630::o;7006:674::-;7054:21;;:::i;:::-;7101:1;7088:14;;7113:33;;;;;;;;;;;-1:-1:-1;;;7113:33:0;;;;;;;;:12;;;:33;;;;7172:4;7157:12;;;:19;7209:1;7187:19;;;:23;;;7243:1;7221:19;;;:23;;;7255:19;;;:23;;;7289:14;;;:18;;;;7335:1;-1:-1:-1;7318:14:0;;;:18;;;;-1:-1:-1;7347:16:0;;;:20;;;;7088:10;-1:-1:-1;7378:25:0;;:29;;;-1:-1:-1;7418:23:0;;:27;7456:216;;;;;;;;;;;;-1:-1:-1;7456:216:0;;;;;:19;;;:216;:7;7006:674::o;35396:607::-;35432:21;;:::i;:::-;35479:2;35466:15;;35492:20;;;;;;;;;;;;-1:-1:-1;;;35492:20:0;;;;;;;;:12;;;:20;;;;35538:4;35523:12;;;:19;35553;;;:23;35609:1;35587:19;;;:23;;;35643:1;35621:19;;;:23;;;35655:14;;;:18;35701:1;-1:-1:-1;35684:14:0;;;:18;;;;-1:-1:-1;35713:16:0;;:20;;;;35466:10;-1:-1:-1;35744:25:0;;:29;;;-1:-1:-1;35784:23:0;;:27;35822:173;;;;;;;;;;;;;;;;;;:19;;;:173;:7;35396:607::o;249:288::-;311:25;353:3;360:1;353:8;349:181;;;-1:-1:-1;;378:15:0;;;;;;;;;;;;-1:-1:-1;;;378:15:0;;;;;249:288::o;349:181::-;415:3;422:1;415:8;411:119;;;-1:-1:-1;;440:16:0;;;;;;;;;;;;-1:-1:-1;;;440:16:0;;;;;249:288::o;411:119::-;478:3;485:1;478:8;474:56;;;-1:-1:-1;;503:15:0;;;;;;;;;;;;-1:-1:-1;;;503:15:0;;;;;249:288::o;23171:471::-;23213:21;;:::i;:::-;23260:2;23247:15;;;23273:26;;;;;;;;;;;-1:-1:-1;;;23273:26:0;;;;:12;;;:26;23325:5;23310:12;;;:20;23363:1;23341:19;;;:23;23397:1;23375:19;;;:23;;;23431:1;23409:19;;;:23;23460:1;23443:14;;;:18;23489:1;-1:-1:-1;23472:14:0;;:18;-1:-1:-1;23501:16:0;;:20;23247:10;-1:-1:-1;23532:25:0;;:29;;;-1:-1:-1;23572:23:0;;:27;;;23610:24;;;;;;;;;;:19;;;:24;23247:7;23171:471::o;39469:864::-;39512:21;;:::i;:::-;39559:2;39546:15;;39572:28;;;;;;;;;;;-1:-1:-1;;;39572:28:0;;;;;;;;:12;;;:28;;;;39626:5;39611:12;;;:20;39664:1;39642:19;;;:23;39698:1;39676:19;;;:23;39732:1;39710:19;;;:23;39761:2;39744:14;;;:19;39791:1;-1:-1:-1;39774:14:0;;:18;39822:1;-1:-1:-1;39803:16:0;;:20;39546:10;-1:-1:-1;39834:25:0;;:29;;;-1:-1:-1;39874:23:0;;:27;39912:413;;;;;;;;;;;;;;;;;;:19;;;:413;:7;39469:864::o;12362:462::-;12400:21;;:::i;:::-;12447:2;12434:15;;12460:22;;;;;;;;;;;-1:-1:-1;;;12460:22:0;;;;;;;;:12;;;:22;;;;12508:4;12493:12;;;:19;12545:1;12523:19;;;:23;12579:1;12557:19;;;:23;12613:1;12591:19;;;:23;12642:1;12625:14;;;:18;12671:1;-1:-1:-1;12654:14:0;;:18;12702:1;-1:-1:-1;12683:16:0;;:20;12434:10;-1:-1:-1;12714:25:0;;:29;;;-1:-1:-1;12754:23:0;;:27;;;12792:24;;;;;;;;;;;:19;;;:24;12434:7;12362:462::o;20816:473::-;20859:21;;:::i;:::-;20906:2;20893:15;;20919:28;;;;;;;;;;;-1:-1:-1;;;20919:28:0;;;;;;;;:12;;;:28;;;;20973:4;20958:12;;;:19;21010:1;20988:19;;;:23;;;21044:1;21022:19;;;:23;21056:19;;;:23;21107:1;21090:14;;;:18;;;-1:-1:-1;21119:14:0;;:18;21167:1;-1:-1:-1;21148:16:0;;:20;20893:10;-1:-1:-1;21179:25:0;;:29;;;-1:-1:-1;21219:23:0;;:27;;;21257:24;;;;;;;;;;;:19;;;:24;20893:7;20816:473::o;22058:470::-;22099:21;;:::i;:::-;22146:2;22133:15;;22159:25;;;;;;;;;;;-1:-1:-1;;;22159:25:0;;;;;;;;:12;;;:25;;;;22210:5;22195:12;;;:20;22248:1;22226:19;;;:23;;;22282:1;22260:19;;;:23;;;22294:19;;;:23;22345:1;22328:14;;;:18;22374:1;-1:-1:-1;22357:14:0;;:18;-1:-1:-1;22386:16:0;;:20;-1:-1:-1;;;22417:25:0;;:30;22133:10;-1:-1:-1;22458:23:0;;:27;;;22496:24;;;;;;;;;;;:19;;;:24;22133:7;22058:470::o;24128:577::-;24167:21;;:::i;:::-;24214:2;24201:15;;24227:23;;;;;;;;;;;-1:-1:-1;;;24227:23:0;;;;;;;;:12;;;:23;;;;24276:4;24261:12;;;:19;24313:1;24291:19;;;:23;24347:1;24325:19;;;:23;24381:1;24359:19;;;:23;;;24410:2;24393:14;;;;:19;;;-1:-1:-1;24423:14:0;;:19;;;;-1:-1:-1;24453:16:0;;:20;;;;24201:10;-1:-1:-1;24484:25:0;;:29;;;-1:-1:-1;24524:23:0;;:27;24562:135;;;;;;;;;;;;;;;;;;:19;;;:135;:7;24128:577::o;10758:720::-;10800:21;;:::i;:::-;10847:2;10834:15;;10860:26;;;;;;;;;;;;-1:-1:-1;;;10860:26:0;;;;;;;;:12;;;:26;;;;10912:4;10897:12;;;:19;10949:1;10927:19;;;:23;10983:1;10961:19;;;:23;11017:1;10995:19;;;:23;11029:14;;;:18;11075:1;-1:-1:-1;11058:14:0;;:18;11106:1;-1:-1:-1;11087:16:0;;:20;10834:10;-1:-1:-1;11118:25:0;;:29;;;-1:-1:-1;11158:23:0;;;:27;;;;11196:274;;;;;;;;;;;;;;;;;;:19;;;:274;:7;10758:720::o;16859:466::-;16899:21;;:::i;:::-;16946:2;16933:15;;16959:24;;;;;;;;;;;-1:-1:-1;;;16959:24:0;;;;;;;;:12;;;:24;;;;17009:4;16994:12;;;:19;17046:1;17024:19;;;:23;;;17058:19;;;:23;17114:1;17092:19;;;:23;;;17126:14;;;:18;;;17172:1;-1:-1:-1;17155:14:0;;:18;-1:-1:-1;17184:16:0;;:20;16933:10;-1:-1:-1;17215:25:0;;:29;;;-1:-1:-1;17255:23:0;;:27;;;17293:24;;;;;;;;;;;:19;;;:24;16933:7;16859:466::o;34660:728::-;34701:21;;:::i;:::-;34748:2;34735:15;;34761:25;;;;;;;;;;;-1:-1:-1;;;34761:25:0;;;;;;;;:12;;;;:25;;;;34812:4;34797:12;;;:19;34849:1;34827:19;;;:23;34883:1;34861:19;;;:23;;;34917:1;34895:19;;;:23;34929:14;;;:18;;;34975:1;-1:-1:-1;34958:14:0;;:18;-1:-1:-1;34987:16:0;;:20;34735:10;-1:-1:-1;35018:25:0;;:29;;;-1:-1:-1;35058:23:0;;:27;35096:284;;;;;;;;;;;;;;;;;;;:19;;;:284;:7;34660:728::o;13468:614::-;13515:21;;:::i;:::-;13562:2;13549:15;;13575:32;;;;;;;;;;;-1:-1:-1;;;13575:32:0;;;;;;;;:12;;;:32;;;;13633:5;13618:12;;;:20;13671:1;13649:19;;;:23;13705:1;13683:19;;;:23;13739:1;13717:19;;;:23;;;13768:1;13751:14;;;:18;13797:1;-1:-1:-1;13780:14:0;;;:18;;;;-1:-1:-1;13809:16:0;;:20;;;;-1:-1:-1;;;13840:25:0;;:30;13907:2;-1:-1:-1;13881:23:0;;:28;13920:154;;;;;;;;;;;;;;;;;;:19;;;:154;:7;13468:614::o;31976:809::-;32017:21;;:::i;:::-;32064:2;32051:15;;32077:25;;;;;;;;;;;-1:-1:-1;;;32077:25:0;;;;;;;;:12;;;:25;;;;32128:5;32113:12;;;:20;32166:1;32144:19;;;:23;;;32200:1;32178:19;;;:23;32212:19;;;:23;;;32246:14;;;:18;32292:1;-1:-1:-1;32275:14:0;;:18;32323:1;-1:-1:-1;32304:16:0;;:20;32051:10;-1:-1:-1;32335:25:0;;:29;32401:2;-1:-1:-1;32375:23:0;;:28;32414:363;;;;;;;;;;;;;;;;;;:19;;;:363;:7;31976:809::o;16374:477::-;16419:21;;:::i;:::-;16466:2;16453:15;;16479:30;;;;;;;;;;;-1:-1:-1;;;16479:30:0;;;;;;;;:12;;;:30;;;;16535:4;16520:12;;;:19;16572:1;16550:19;;;:23;;;16584:19;;;:23;;;16640:1;16618:19;;;:23;16652:14;;;:18;;;16698:1;-1:-1:-1;16681:14:0;;:18;-1:-1:-1;16710:16:0;;:20;16453:10;-1:-1:-1;16741:25:0;;:29;;;-1:-1:-1;16781:23:0;;:27;;;16819:24;;;;;;;;;;;:19;;;:24;16453:7;16374:477::o;10207:543::-;10250:21;;:::i;:::-;10297:1;10284:14;;10309:27;;;;;;;;;;;-1:-1:-1;;;10309:27:0;;;;;;;;:12;;;:27;;;;10362:4;10347:12;;;:19;10399:1;10377:19;;;:23;10433:1;10411:19;;;:23;;;10467:1;10445:19;;;;:23;;;10479:14;;;:18;;;;10525:1;-1:-1:-1;10508:14:0;;:18;-1:-1:-1;10537:16:0;;:20;10284:10;-1:-1:-1;10568:25:0;;:29;;;-1:-1:-1;10608:23:0;;:27;10646:96;;;;;;;;;;;;;;;;;;:19;;;:96;:7;10207:543::o;24713:471::-;24754:21;;:::i;:::-;24801:2;24788:15;;24814:25;;;;;;;;;;;-1:-1:-1;;;24814:25:0;;;;;;;;:12;;;:25;;;;24865:5;24850:12;;;:20;24903:1;24881:19;;;:23;24937:1;24915:19;;;:23;24971:1;24949:19;;;:23;;;25000:2;24983:14;;;:19;;;-1:-1:-1;25013:14:0;;:19;-1:-1:-1;25043:16:0;;:20;24788:10;-1:-1:-1;25074:25:0;;:29;;;-1:-1:-1;25114:23:0;;:27;;;25152:24;;;;;;;;;;;:19;;;:24;24788:7;24713:471::o;5662:749::-;5703:21;;:::i;:::-;5750:1;5737:14;;;5762:25;;;;;;;;;;;-1:-1:-1;;;5762:25:0;;;;;;;;:12;;;;:25;;;;5813:4;5798:12;;;:19;5828;;;:23;;;5862:19;;;:23;;;5896:19;;;:23;;;5930:14;;;:18;;;;5976:1;-1:-1:-1;5959:14:0;;:18;6007:1;-1:-1:-1;5988:16:0;;:20;5737:10;-1:-1:-1;6019:25:0;;:29;;;-1:-1:-1;6059:23:0;;:27;6097:306;;;;;;;;;;;;;;;;;;;:19;;;:306;:7;5662:749::o;27992:645::-;28030:21;;:::i;:::-;28077:2;28064:15;;28090:22;;;;;;;;;;;-1:-1:-1;;;28090:22:0;;;;;;;;:12;;;:22;;;;28138:5;28123:12;;;:20;28176:1;28154:19;;;:23;;;28210:1;28188:19;;;:23;28222:19;;;:23;28273:2;28256:14;;;:19;28303:1;-1:-1:-1;28286:14:0;;:18;28334:1;-1:-1:-1;28315:16:0;;;:20;;;;28064:10;-1:-1:-1;28346:25:0;;:29;;;-1:-1:-1;28386:23:0;;:27;28424:205;;;;;;;;;;;;;;;;;;:19;;;:205;:7;27992:645::o;22536:627::-;22576:21;;:::i;:::-;22623:2;22610:15;;22636:24;;;;;;;;;;;-1:-1:-1;;;22636:24:0;;;;;;;;:12;;;:24;;;;22686:5;22671:12;;;:20;22724:1;22702:19;;;:23;;;22758:1;22736:19;;;:23;22770:19;;;:23;;;22821:1;22804:14;;;;:18;;;;22850:1;-1:-1:-1;22833:14:0;;;:18;;;;-1:-1:-1;22862:16:0;;:20;;;;22610:10;-1:-1:-1;22893:25:0;;:29;;;-1:-1:-1;22933:23:0;;:27;22971:184;;;;;;;;;;;;22804:14;22971:184;;;;;:19;;;:184;:7;22536:627::o;29233:605::-;29272:21;;:::i;:::-;29319:2;29306:15;;29332:23;;;;;;;;;;;-1:-1:-1;;;29332:23:0;;;;;;;;:12;;;:23;;;;29381:5;29366:12;;;:20;29419:1;29397:19;;;:23;29453:1;29431:19;;;:23;;;29487:1;29465:19;;;:23;29516:2;29499:14;;;:19;29546:1;-1:-1:-1;29529:14:0;;;:18;;;;-1:-1:-1;29558:16:0;;:20;;;;29306:10;-1:-1:-1;29589:25:0;;:29;;;-1:-1:-1;29629:23:0;;:27;29667:163;;;;;;;;;;;;;;;;;;:19;;;:163;:7;29233:605::o;25192:471::-;25234:21;;:::i;:::-;25281:2;25268:15;;25294:26;;;;;;;;;;;-1:-1:-1;;;25294:26:0;;;;;;;;:12;;;:26;;;;25346:4;25331:12;;;:19;25383:1;25361:19;;;:23;;;25417:1;25395:19;;;:23;25451:1;25429:19;;;:23;25480:1;25463:14;;;:18;25509:2;-1:-1:-1;25492:14:0;;:19;-1:-1:-1;25522:16:0;;:20;25268:10;-1:-1:-1;25553:25:0;;:29;;;-1:-1:-1;25593:23:0;;:27;;;25631:24;;;;;;;;;;;:19;;;:24;25268:7;25192:471::o;1669:3985::-;1719:21;;:::i;:::-;1757:3;1764:1;1757:8;1753:3894;;;1789:10;:8;:10::i;:::-;1782:17;1669:3985;-1:-1:-1;;1669:3985:0:o;1753:3894::-;1821:3;1828:1;1821:8;1817:3830;;;1853:8;:6;:8::i;1817:3830::-;1883:3;1890:1;1883:8;1879:3768;;;1915:17;:15;:17::i;1879:3768::-;1954:3;1961:1;1954:8;1950:3697;;;1986:12;:10;:12::i;1950:3697::-;2020:3;2027:1;2020:8;2016:3631;;;2052:8;:6;:8::i;2016:3631::-;2082:3;2089:1;2082:8;2078:3569;;;2114:6;:4;:6::i;2078:3569::-;2142:3;2149:1;2142:8;2138:3509;;;2174:12;:10;:12::i;2138:3509::-;2208:3;2215:1;2208:8;2204:3443;;;2240:13;:11;:13::i;2204:3443::-;2275:3;2282:1;2275:8;2271:3376;;;2307:12;:10;:12::i;2271:3376::-;2341:3;2348:2;2341:9;2337:3310;;;2374:11;:9;:11::i;2337:3310::-;2407:3;2414:2;2407:9;2403:3244;;;2440:14;:12;:14::i;2403:3244::-;2476:3;2483:2;2476:9;2472:3175;;;2509:7;:5;:7::i;2472:3175::-;2538:3;2545:2;2538:9;2534:3113;;;2571:16;:14;:16::i;2534:3113::-;2609:3;2616:2;2609:9;2605:3042;;;2642:16;:14;:16::i;2605:3042::-;2680:3;2687:2;2680:9;2676:2971;;;2713:6;:4;:6::i;2676:2971::-;2741:3;2748:2;2741:9;2737:2910;;;2774:9;:7;:9::i;2737:2910::-;2805:3;2812:2;2805:9;2801:2846;;;2838:7;:5;:7::i;2801:2846::-;2867:3;2874:2;2867:9;2863:2784;;;2900:5;:3;:5::i;2863:2784::-;2927:3;2934:2;2927:9;2923:2724;;;2960:14;:12;:14::i;2923:2724::-;2996:3;3003:2;2996:9;2992:2655;;;3029:9;:7;:9::i;2992:2655::-;3060:3;3067:2;3060:9;3056:2591;;;3093:7;:5;:7::i;3056:2591::-;3122:3;3129:2;3122:9;3118:2529;;;3155:12;:10;:12::i;3118:2529::-;3189:3;3196:2;3189:9;3185:2462;;;3222:5;:3;:5::i;3185:2462::-;3249:3;3256:2;3249:9;3245:2402;;;3282:13;:11;:13::i;3245:2402::-;3317:3;3324:2;3317:9;3313:2334;;;3350:11;:9;:11::i;3313:2334::-;3383:3;3390:2;3383:9;3379:2268;;;3416:7;:5;:7::i;3379:2268::-;3445:3;3452:2;3445:9;3441:2206;;;3478:11;:9;:11::i;3441:2206::-;3511:3;3518:2;3511:9;3507:2140;;;3544:12;:10;:12::i;3507:2140::-;3578:3;3585:2;3578:9;3574:2073;;;3611:8;:6;:8::i;3574:2073::-;3641:3;3648:2;3641:9;3637:2010;;;3674:10;:8;:10::i;3637:2010::-;3706:3;3713:2;3706:9;3702:1945;;;3739:9;:7;:9::i;3702:1945::-;3770:3;3777:2;3770:9;3766:1881;;;3803:11;:9;:11::i;3766:1881::-;3836:3;3843:2;3836:9;3832:1815;;;3869:10;:8;:10::i;3832:1815::-;3901:3;3908:2;3901:9;3897:1750;;;3934:8;:6;:8::i;3897:1750::-;3964:3;3971:2;3964:9;3960:1687;;;3997:10;:8;:10::i;3960:1687::-;4029:3;4036:2;4029:9;4025:1622;;;4062:11;:9;:11::i;4025:1622::-;4095:3;4102:2;4095:9;4091:1556;;;4128:13;:11;:13::i;4091:1556::-;4163:3;4170:2;4163:9;4159:1488;;;4196:12;:10;:12::i;4159:1488::-;4230:3;4237:2;4230:9;4226:1421;;;4263:10;:8;:10::i;4226:1421::-;4295:3;4302:2;4295:9;4291:1356;;;4328:9;:7;:9::i;4291:1356::-;4359:3;4366:2;4359:9;4355:1292;;;4392:7;:5;:7::i;4355:1292::-;4421:3;4428:2;4421:9;4417:1230;;;4454:9;:7;:9::i;4417:1230::-;4485:3;4492:2;4485:9;4481:1166;;;4518:8;:6;:8::i;4481:1166::-;4548:3;4555:2;4548:9;4544:1103;;;4581:9;:7;:9::i;4544:1103::-;4612:3;4619:2;4612:9;4608:1039;;;4645:19;:17;:19::i;4608:1039::-;4686:3;4693:2;4686:9;4682:965;;;4719:10;:8;:10::i;4682:965::-;4751:3;4758:2;4751:9;4747:900;;;4784:20;:18;:20::i;4747:900::-;4826:3;4833:2;4826:9;4822:825;;;4859:6;:4;:6::i;4822:825::-;4887:3;4894:2;4887:9;4883:764;;;4920:10;:8;:10::i;4883:764::-;4952:3;4959:2;4952:9;4948:699;;;4985:5;:3;:5::i;4948:699::-;5012:3;5019:2;5012:9;5008:639;;;5045:10;:8;:10::i;5008:639::-;5077:3;5084:2;5077:9;5073:574;;;5110:15;:13;:15::i;5073:574::-;5147:3;5154:2;5147:9;5143:504;;;5180:16;:14;:16::i;5143:504::-;5218:3;5225:2;5218:9;5214:433;;;5251:16;:14;:16::i;5214:433::-;5289:3;5296:2;5289:9;5285:362;;;5322:14;:12;:14::i;5285:362::-;5358:3;5365:2;5358:9;5354:293;;;5391:12;:10;:12::i;5354:293::-;5425:3;5432:2;5425:9;5421:226;;;5458:15;:13;:15::i;5421:226::-;5495:3;5502:2;5495:9;5491:156;;;5528:26;:24;:26::i;5491:156::-;5576:3;5583:2;5576:9;5572:75;;;5609:26;:24;:26::i;9726:473::-;9770:21;;:::i;:::-;9817:1;9804:14;;;9829:28;;;;;;;;;;;-1:-1:-1;;;9829:28:0;;;;;;;;:12;;;:28;;;;9883:4;9868:12;;;:19;9920:1;9898:19;;;:23;;;9954:1;9932:19;;;:23;9966:19;;;:23;10017:1;10000:14;;;:18;-1:-1:-1;10029:14:0;;:18;;;;10077:1;-1:-1:-1;10058:16:0;;:20;9804:10;-1:-1:-1;10089:25:0;;:29;;;-1:-1:-1;10129:23:0;;:27;;;10167:24;;;;;;;;;;:19;;;:24;9804:7;9726:473::o;38067:741::-;38114:21;;:::i;:::-;38161:2;38148:15;;38174:32;;;;;;;;;;;;-1:-1:-1;;;38174:32:0;;;;;;;;:12;;;;:32;;;;38232:5;38217:12;;;:20;38270:1;38248:19;;;:23;;;38304:1;38282:19;;;:23;38316:19;;;:23;;;38350:14;;;:19;;;;38397:1;-1:-1:-1;38380:14:0;;:18;-1:-1:-1;38409:16:0;;:20;;;;38148:10;-1:-1:-1;38440:25:0;;:29;;;-1:-1:-1;38480:23:0;;:27;38518:282;;;;;;;;;;;;;;;;;;;:19;;;:282;:7;38067:741::o;14090:461::-;14127:21;;:::i;:::-;14174:2;14161:15;;14187:21;;;;;;;;;;;;-1:-1:-1;;;14187:21:0;;;;;;;;:12;;;:21;;;;14234:4;14219:12;;;:19;14271:1;14249:19;;;:23;;;14305:1;14283:19;;;:23;14339:1;14317:19;;;:23;;;14351:14;;;:18;;;;-1:-1:-1;14380:14:0;;:18;;;;-1:-1:-1;14409:16:0;;:20;14161:10;-1:-1:-1;14440:25:0;;:29;;;14506:2;-1:-1:-1;14480:23:0;;:28;14519:24;;;;;;;;;;;:19;;;:24;14161:7;14090:461::o;20336:472::-;20378:21;;:::i;:::-;20425:2;20412:15;;20438:26;;;;;;;;;;;-1:-1:-1;;;20438:26:0;;;;;;;;:12;;;:26;;;;20490:5;20475:12;;;:20;20528:1;20506:19;;;:23;;;20562:1;20540:19;;;:23;;;20574:19;;;:23;20625:1;20608:14;;;:18;20654:1;-1:-1:-1;20637:14:0;;:18;-1:-1:-1;20666:16:0;;:20;-1:-1:-1;;;20697:25:0;;:30;20412:10;-1:-1:-1;20738:23:0;;:27;;;20776:24;;;;;;;;;;;:19;;;:24;20412:7;20336:472::o;9245:473::-;9288:21;;:::i;:::-;9335:1;9322:14;;9347:28;;;;;;;;;;;-1:-1:-1;;;9347:28:0;;;;;;;;:12;;;:28;;;;9401:5;9386:12;;;:20;9439:1;9417:19;;;:23;;;9473:1;9451:19;;;:23;9485:19;;;:23;9536:1;9519:14;;;:18;;;-1:-1:-1;9548:14:0;;:18;9596:1;-1:-1:-1;9577:16:0;;:20;9322:10;-1:-1:-1;9608:25:0;;:29;;;-1:-1:-1;9648:23:0;;:27;;;9686:24;;;;;;;;;;;:19;;;:24;9322:7;9245:473::o;27382:602::-;27422:21;;:::i;:::-;27469:2;27456:15;;27482:24;;;;;;;;;;;-1:-1:-1;;;27482:24:0;;;;;;;;:12;;;:24;;;;27532:5;27517:12;;;:20;27570:1;27548:19;;;:23;;;27604:1;27582:19;;;:23;27616:19;;;:23;27667:2;27650:14;;;:19;27697:2;-1:-1:-1;27680:14:0;;;:19;;;;27729:1;-1:-1:-1;27710:16:0;;:20;27456:10;-1:-1:-1;27741:25:0;;:29;;;-1:-1:-1;27781:23:0;;:27;27819:157;;;;;;;;;;;;;;;;;;:19;;;:157;:7;27382:602::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:472::-;241:3;279:5;273:12;306:6;301:3;294:19;331:1;341:162;355:6;352:1;349:13;341:162;;;417:4;473:13;;;469:22;;463:29;445:11;;;441:20;;434:59;370:12;341:162;;;521:6;518:1;515:13;512:87;;;587:1;580:4;571:6;566:3;562:16;558:27;551:38;512:87;-1:-1:-1;653:2:1;632:15;-1:-1:-1;;628:29:1;619:39;;;;660:4;615:50;;199:472;-1:-1:-1;;199:472:1:o;676:220::-;825:2;814:9;807:21;788:4;845:45;886:2;875:9;871:18;863:6;845:45;:::i;:::-;837:53;676:220;-1:-1:-1;;;676:220:1:o;901:1298::-;1076:2;1065:9;1058:21;1121:6;1115:13;1110:2;1099:9;1095:18;1088:41;1183:2;1175:6;1171:15;1165:22;1160:2;1149:9;1145:18;1138:50;1242:2;1234:6;1230:15;1224:22;1219:2;1208:9;1204:18;1197:50;1302:2;1294:6;1290:15;1284:22;1278:3;1267:9;1263:19;1256:51;1362:3;1354:6;1350:16;1344:23;1338:3;1327:9;1323:19;1316:52;1423:3;1415:6;1411:16;1405:23;1399:3;1388:9;1384:19;1377:52;1484:3;1476:6;1472:16;1466:23;1460:3;1449:9;1445:19;1438:52;1039:4;1527:3;1519:6;1515:16;1509:23;1551:3;1590:2;1585;1574:9;1570:18;1563:30;1630:2;1622:6;1618:15;1612:22;1602:32;;;1653:3;1692:2;1687;1676:9;1672:18;1665:30;1732:2;1724:6;1720:15;1714:22;1704:32;;;1755:3;1794:2;1789;1778:9;1774:18;1767:30;1844:2;1836:6;1832:15;1826:22;1806:42;;;1867:6;1892:3;1931:2;1926;1915:9;1911:18;1904:30;1957:52;2004:3;1993:9;1989:19;1975:12;1957:52;:::i;:::-;2046:15;;;2040:22;2102;;;-1:-1:-1;;2098:36:1;2078:18;;;2071:64;1943:66;;-1:-1:-1;2152:41:1;1943:66;2040:22;2152:41;:::i;:::-;2144:49;901:1298;-1:-1:-1;;;;;;901:1298:1:o

Swarm Source

ipfs://52aff045744502a9ef59032af2f0a4830f9b692b4a83133e3a174369879039fb
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.