diff --git a/dbc_extract3/dbc/generator.py b/dbc_extract3/dbc/generator.py index 150ff4ee57a..ebead94462f 100644 --- a/dbc_extract3/dbc/generator.py +++ b/dbc_extract3/dbc/generator.py @@ -5284,3 +5284,52 @@ def generate(self, data = None): self.output_record(fields) self.output_footer() + +class AssistedCombatStepGenerator(DataGenerator): + def generate(self, data = None): + if self._options.build.patch_level() >= dbc.WowVersion( 11, 1, 7, 0 ).patch_level(): + data = sorted(self.db('AssistedCombatStep').values(), + key = lambda e: (e.ref('id_assisted_combat').id_spec, e.order_index, e.id)) + else: + data = [] + + self.output_header( + header = 'Assisted Combat Step data', + type = 'assisted_combat_step_data_t', + array = 'assisted_combat_step', + length = len(data) if data else 1) + + for entry in data: + fields = entry.field('id') + fields += entry.ref('id_assisted_combat').field('id_spec') + fields += entry.field('order_index', 'id_spell') + self.output_record(fields) + + if not data: + self.output_record('') + + self.output_footer() + +class AssistedCombatRuleGenerator(DataGenerator): + def generate(self, data = None): + if self._options.build.patch_level() >= dbc.WowVersion( 11, 1, 7, 0 ).patch_level(): + data = sorted(self.db('AssistedCombatRule').values(), key = lambda e: (e.id_parent, e.order_index, e.id)) + else: + data = [] + + self.output_header( + header = 'Assisted Combat Rule data', + type = 'assisted_combat_rule_data_t', + array = 'assisted_combat_rule', + length = len(data) if data else 1) + + for entry in data: + fields = entry.field('id') + fields += entry.field('id_parent', 'order_index', 'condition_type', + 'condition_value_1', 'condition_value_2', 'condition_value_3') + self.output_record(fields) + + if not data: + self.output_record('') + + self.output_footer() diff --git a/dbc_extract3/formats/11.1.7.60799.json b/dbc_extract3/formats/11.1.7.60799.json new file mode 100644 index 00000000000..a2a323b34af --- /dev/null +++ b/dbc_extract3/formats/11.1.7.60799.json @@ -0,0 +1,2068 @@ +{ + "ArmorLocation": { + "fields": [ + { "data_type": "f", "field": "v_1", "formats": { "cpp": "%9.3ff" } }, + { "data_type": "f", "field": "v_2", "formats": { "cpp": "%9.3ff" } }, + { "data_type": "f", "field": "v_3", "formats": { "cpp": "%9.3ff" } }, + { "data_type": "f", "field": "v_4", "formats": { "cpp": "%9.3ff" } }, + { "data_type": "f", "field": "v_5", "formats": { "cpp": "%9.3ff" } } + ] + }, + "Artifact": { + "fields": [ + { "data_type": "S", "field": "f1" }, + { "data_type": "i", "field": "id", "formats": { "cpp": "%2u" } }, + { "data_type": "H", "field": "f2" }, + { "data_type": "I", "field": "f3" }, + { "data_type": "I", "field": "unk_1" }, + { "data_type": "i", "field": "f5" }, + { "data_type": "H", "field": "id_spec", "formats": { "cpp": "%3u" }, "ref": "ChrSpecialization" }, + { "data_type": "B", "field": "f7" }, + { "data_type": "B", "field": "f8" }, + { "data_type": "I", "field": "f9" }, + { "data_type": "I", "field": "f10" } + ] + }, + "ArtifactPower": { + "parent": "Artifact", + "fields": [ + { "data_type": "f", "field": "coord", "elements": 2 }, + { "data_type": "i", "field": "id" }, + { "data_type": "B", "field": "id_artifact", "formats": { "cpp": "%3u" }, "ref": "Artifact" }, + { "data_type": "B", "field": "max_rank", "formats": { "cpp": "%3u" } }, + { "data_type": "i", "field": "index", "formats": { "cpp": "%2u" } }, + { "data_type": "B", "field": "type", "formats": { "cpp": "%3u" } }, + { "data_type": "B", "field": "unk" } + ] + }, + "ArtifactPowerLink": { + "fields": [ + { "data_type": "H", "field": "f1" }, + { "data_type": "H", "field": "f2" } + ] + }, + "ArtifactPowerRank": { + "parent": "ArtifactPower", + "fields": [ + { "data_type": "B", "field": "index", "formats": { "cpp": "%2u" } }, + { "data_type": "i", "field": "id_spell", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "H", "field": "f5" }, + { "data_type": "f", "field": "value", "formats": { "cpp": "%10.3f" } } + ] + }, + "AssistedCombat": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_spec", "ref": "ChrSpecialization" } + ] + }, + "AssistedCombatRule": { + "parent": "AssistedCombatStep", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "order_index" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "i", "field": "condition_type" }, + { "data_type": "i", "field": "condition_value_1" }, + { "data_type": "i", "field": "condition_value_2" }, + { "data_type": "i", "field": "condition_value_3" } + ] + }, + "AssistedCombatStep": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "i", "field": "id_assisted_combat", "ref": "AssistedCombat" }, + { "data_type": "i", "field": "order_index" } + ] + }, + "AzeriteEmpoweredItem": { + "fields": [ + { "data_type": "i", "field": "id_item", "formats": { "cpp": "%6u" }, "ref": "ItemSparse" }, + { "data_type": "I", "field": "id_azerite_tier_unlock" }, + { "data_type": "I", "field": "id_power_set" } + ] + }, + "AzeriteEssence": { + "fields": [ + { "data_type": "S", "field": "name", "formats": { "cpp": "%-30s" }}, + { "data_type": "S", "field": "desc" }, + { "data_type": "i", "field": "category", "formats": { "cpp": "%3u" } } + ] + }, + "AzeriteEssencePower": { + "fields": [ + { "data_type": "S", "field": "desc_alliance" }, + { "data_type": "S", "field": "desc_horde" }, + { "data_type": "i", "field": "id_essence", "formats": { "cpp": "%3u" }, "ref": "AzeriteEssence"}, + { "data_type": "B", "field": "rank", "formats": { "cpp": "%3u" }}, + { "data_type": "i", "field": "id_spell_major_upgrade", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "i", "field": "id_spell_minor_upgrade", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "i", "field": "id_spell_major_base", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "i", "field": "id_spell_minor_base", "formats": { "cpp": "%6u" }, "ref": "SpellName" } + ] + }, + "AzeriteItem": { + "fields": [ + { "data_type": "i", "field": "id_item", "formats": { "cpp": "%6u" }, "ref": "ItemSparse" } + ] + }, + "AzeriteItemMilestonePower": { + "fields": [ + { "data_type": "i", "field": "req_level" }, + { "data_type": "i", "field": "id_power", "ref": "AzeritePower" }, + { "data_type": "i", "field": "power_type" }, + { "data_type": "i", "field": "essence_type" } + ] + }, + "AzeritePower": { + "fields": [ + { "data_type": "i", "field": "id_spell", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "i", "field": "id_bonus", "formats": { "cpp": "%5u" } }, + { "data_type": "i", "field": "id_spec_set_member" }, + { "data_type": "i", "field": "unk_4" } + ] + }, + "AzeritePowerSetMember": { + "fields": [ + { "data_type": "i", "field": "unk_28366" }, + { "data_type": "i", "field": "id_power", "ref": "AzeritePower" }, + { "data_type": "i", "field": "class_id" }, + { "data_type": "b", "field": "tier" }, + { "data_type": "i", "field": "index" } + ] + }, + "AzeriteTierUnlock": { + "fields": [ + { "data_type": "B", "field": "item_creation_context" }, + { "data_type": "B", "field": "tier" }, + { "data_type": "B", "field": "azerite_level" } + ] + }, + "CharacterLoadout": { + "fields": [ + { "data_type": "q", "field": "race_mask" }, + { "data_type": "b", "field": "id_class", "ref": "ChrClasses" }, + { "data_type": "i", "field": "purpose" }, + { "data_type": "b", "field": "id_mod" } + ] + }, + "CharacterLoadoutItem": { + "fields": [ + { "data_type": "H", "field": "id_loadout", "ref": "CharacterLoadout" }, + { "data_type": "I", "field": "id_item", "ref": "Item" } + ] + }, + "ChatChannels": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "shortcut" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "b", "field": "faction" } + ] + }, + "ChrClasses": { + "fields": [ + { "data_type": "S", "field": "name_lang", "formats": { } }, + { "data_type": "S", "field": "filename", "formats": { } }, + { "data_type": "S", "field": "name_male_lang", "formats": { } }, + { "data_type": "S", "field": "name_female_lang", "formats": { } }, + { "data_type": "S", "field": "pet_name_token", "formats": { } }, + { "data_type": "S", "field": "desc", "formats": { } }, + { "data_type": "S", "field": "roles_lang", "formats": { } }, + { "data_type": "S", "field": "requirements_fail_lang", "formats": { } }, + { "data_type": "S", "field": "hyphenated_name_male_lang", "formats": { } }, + { "data_type": "S", "field": "hyphenated_name_female_lang", "formats": { } }, + { "data_type": "I", "field": "create_screen_file_data_id" }, + { "data_type": "I", "field": "select_screen_file_data_id" }, + { "data_type": "I", "field": "icon_file_data_id" }, + { "data_type": "I", "field": "low_res_screen_file_data_id" }, + { "data_type": "I", "field": "flags" }, + { "data_type": "I", "field": "spell_texture_blob_file_data_id" }, + { "data_type": "I", "field": "role_mask" }, + { "data_type": "I", "field": "armor_type_mask" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "char_start_kit_spell_visual_kit_id_fallback" }, + { "data_type": "i", "field": "char_start_kit_9_0_1_34615_004_fallback" }, + { "data_type": "i", "field": "char_start_kit_spell_visual_kit_id_female_fallback" }, + { "data_type": "i", "field": "char_start_kit_9_0_1_34615_004_female_fallback" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "i", "field": "char_start_kit_ground_spell_visual_kit_id_fallback" }, + { "data_type": "i", "field": "unk_3" }, + { "data_type": "i", "field": "unk_4" }, + { "data_type": "H", "field": "cinematic_sequence_id" }, + { "data_type": "H", "field": "default_spec" }, + { "data_type": "i", "field": "id" }, + { "data_type": "B", "field": "primary_stat_priority" }, + { "data_type": "B", "field": "display_power" }, + { "data_type": "B", "field": "ranged_attack_power_per_agility" }, + { "data_type": "B", "field": "attack_power_per_agility" }, + { "data_type": "B", "field": "attack_power_per_strength" }, + { "data_type": "B", "field": "spell_class_set" }, + { "data_type": "B", "field": "chat_color_r" }, + { "data_type": "B", "field": "chat_color_g" }, + { "data_type": "B", "field": "chat_color_b" } + ] + }, + "ChrSpecialization": { + "fields": [ + { "data_type": "S", "field": "unk_4", "formats": { } }, + { "data_type": "S", "field": "name", "formats": { "cpp": "%25s" } }, + { "data_type": "S", "field": "desc", "formats": { } }, + { "data_type": "i", "field": "id" }, + { "data_type": "b", "field": "class_id", "formats": { "cpp": "%2u" } }, + { "data_type": "b", "field": "index", "formats": { "cpp": "%-2u" } }, + { "data_type": "b", "field": "f9", "formats": { } }, + { "data_type": "b", "field": "spec_type", "formats": { "cpp": "%-2u" } }, + { "data_type": "i", "field": "flags", "formats": { } }, + { "data_type": "i", "field": "id_icon", "formats": { "cpp": "%-5u" } }, + { "data_type": "b", "field": "unk_6", "formats": { } }, + { "data_type": "i", "field": "unk_3", "formats": { } }, + { "data_type": "I", "field": "id_mastery", "elements": 2, "formats": { "cpp": "%6u" }, "ref": "SpellName" } + ] + }, + "ConditionalContentTuning": { + "parent": "ContentTuning", + "fields": [ + { "data_type": "i", "field": "index" }, + { "data_type": "i", "field": "id_content_tuning", "ref": "ContentTuning" }, + { "data_type": "i", "field": "flag" } + ] + }, + "ContentTuning": { + "fields": [ + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "id_expansion" }, + { "data_type": "i", "field": "id_health_curve" }, + { "data_type": "i", "field": "id_damage_curve" }, + { "data_type": "i", "field": "min_level" }, + { "data_type": "i", "field": "max_level" }, + { "data_type": "i", "field": "lower_bound_semantics" }, + { "data_type": "i", "field": "upper_bound_semantics" }, + { "data_type": "i", "field": "target_level_delta" }, + { "data_type": "i", "field": "target_level_delta_max" }, + { "data_type": "i", "field": "target_level_min" }, + { "data_type": "i", "field": "target_level_max" }, + { "data_type": "i", "field": "item_level_min" }, + { "data_type": "f", "field": "quest_xp_mult" } + ] + }, + "ContentTuningXExpected": { + "parent": "ContentTuning", + "fields": [ + { "data_type": "i", "field": "id_expected_stat_mod" }, + { "data_type": "i", "field": "id_mythic_plus_season", "ref": "MythicPlusSeason" }, + { "data_type": "i", "field": "unk_1" } + ] + }, + "Covenant": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "desc" }, + { "data_type": "i", "field": "id_bounty_set" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "i", "field": "unk_3" }, + { "data_type": "i", "field": "unk_4" }, + { "data_type": "i", "field": "unk_5" }, + { "data_type": "i", "field": "unk_6" }, + { "data_type": "i", "field": "unk_7" } + ] + }, + "CraftingData": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "id_crafting_difficulty" }, + { "data_type": "i", "field": "id_crafted_item" }, + { "data_type": "i", "field": "id_item_bonus_tree" }, + { "data_type": "i", "field": "difficulty" }, + { "data_type": "f", "field": "unk_2" }, + { "data_type": "f", "field": "unk_3" }, + { "data_type": "f", "field": "unk_4" }, + { "data_type": "f", "field": "unk_5" }, + { "data_type": "f", "field": "unk_6" }, + { "data_type": "f", "field": "unk_7" }, + { "data_type": "i", "field": "unk_8" }, + { "data_type": "i", "field": "unk_9" }, + { "data_type": "i", "field": "unk_10" }, + { "data_type": "i", "field": "unk_11" } + ] + }, + "CraftingDataEnchantQuality": { + "parent": "CraftingData", + "fields": [ + { "data_type": "i", "field": "rank" }, + { "data_type": "i", "field": "id_spell_item_enchantment", "ref": "SpellItemEnchantment" }, + { "data_type": "i", "field": "id_item", "ref": "ItemSparse" } + ] + }, + "CraftingDataItemQuality": { + "parent": "CraftingData", + "fields": [ + { "data_type": "i", "field": "id_item", "ref": "ItemSparse" } + ] + }, + "CraftingReagentQuality": { + "parent": "ModifiedCraftingCategory", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "order" }, + { "data_type": "i", "field": "id_item" }, + { "data_type": "f", "field": "unk_1", "formats": { "cpp": "%9.3f" } }, + { "data_type": "f", "field": "unk_2", "formats": { "cpp": "%9.3f" } } + ] + }, + "CraftingReagentRequirement": { + "fields": [ + { "data_type": "i", "field": "id_reagent" } + ] + }, + "CraftingQuality": { + "fields": [ + { "data_type": "i", "field": "tier" } + ] + }, + "CurrencyCategory": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "id_expansion" } + ] + }, + "CurrencyContainer": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "description" }, + { "data_type": "i", "field": "min_amount" }, + { "data_type": "i", "field": "max_amount" }, + { "data_type": "i", "field": "id_container_icon" }, + { "data_type": "i", "field": "containter_quality" }, + { "data_type": "i", "field": "unk_1" } + ] + }, + "CurrencyTypes": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "description" }, + { "data_type": "i", "field": "id_category" }, + { "data_type": "i", "field": "id_inventory_icon_file", "ref": "ManifestInterfaceData" }, + { "data_type": "I", "field": "spell_weight" }, + { "data_type": "B", "field": "spell_category" }, + { "data_type": "I", "field": "max_quantity" }, + { "data_type": "I", "field": "max_earnable_per_week" }, + { "data_type": "b", "field": "quality" }, + { "data_type": "i", "field": "id_faction" }, + { "data_type": "i", "field": "id_item_group_sounds" }, + { "data_type": "i", "field": "xp_quest_difficulty" }, + { "data_type": "i", "field": "id_award_condition" }, + { "data_type": "i", "field": "id_max_qty_world_state" }, + { "data_type": "I", "field": "recharing_amount_per_cycle" }, + { "data_type": "I", "field": "recharging_cycle_duration_ms" }, + { "data_type": "f", "field": "warband_transfer_pct" }, + { "data_type": "B", "field": "unk_17" }, + { "data_type": "I", "field": "flags", "elements": 2 } + ] + }, + "Curve": { + "fields": [ + { "data_type": "B", "field": "type", "formats": { "cpp": "%4u" } }, + { "data_type": "B", "field": "flags", "formats": { "cpp": "%2u" } } + ] + }, + "CurvePoint": { + "fields": [ + { "data_type": "f", "field": "val", "elements": 2, "formats": { "cpp": "%10.5ff" } }, + { "data_type": "f", "field": "level", "elements": 2, "formats": { "cpp": "%10.5ff" } }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_distribution", "formats": { "cpp": "%4u" }, "ref": "Curve" }, + { "data_type": "B", "field": "curve_index", "formats": { "cpp": "%2u" } } + ] + }, + "Difficulty": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "B", "field": "instance_type" }, + { "data_type": "B", "field": "index" }, + { "data_type": "b", "field": "unk_4" }, + { "data_type": "B", "field": "id_fallback_difficulty" }, + { "data_type": "B", "field": "min_players" }, + { "data_type": "B", "field": "max_players" }, + { "data_type": "H", "field": "flags" }, + { "data_type": "B", "field": "item_context" }, + { "data_type": "B", "field": "id_toggle_difficulty" }, + { "data_type": "I", "field": "unk_11" }, + { "data_type": "I", "field": "unk_12" }, + { "data_type": "I", "field": "unk_13" }, + { "data_type": "i", "field": "unk_14" } + ] + }, + "DisplaySeason": { + "fields": [ + { "data_type": "S", "field": "desc" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "api_season" }, + { "data_type": "i", "field": "expansion_season" }, + { "data_type": "i", "field": "id_expansion" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "i", "field": "unk_3" } + ] + }, + "ExpectedStat": { + "fields": [ + { "data_type": "i", "field": "id_expansion", "formats": { "cpp": "%13.5ff" } }, + { "data_type": "f", "field": "creature_health", "formats": { "cpp": "%13.5ff" } }, + { "data_type": "f", "field": "player_health", "formats": { "cpp": "%13.5ff" } }, + { "data_type": "f", "field": "creature_auto_attack_dps", "formats": { "cpp": "%13.5ff" } }, + { "data_type": "f", "field": "creature_armor", "formats": { "cpp": "%13.5ff" } }, + { "data_type": "f", "field": "player_mana", "formats": { "cpp": "%13.5ff" } }, + { "data_type": "f", "field": "player_primary_stat", "formats": { "cpp": "%13.5ff" } }, + { "data_type": "f", "field": "player_secondary_stat", "formats": { "cpp": "%13.5ff" } }, + { "data_type": "f", "field": "armor_constant", "formats": { "cpp": "%13.5ff" } }, + { "data_type": "f", "field": "creature_spell_damage", "formats": { "cpp": "%13.5ff" } } + ] + }, + "ExpectedStatMod": { + "fields": [ + { "data_type": "f", "field": "mod_creature_health", "formats": { "cpp": "%ff" } }, + { "data_type": "f", "field": "mod_player_health", "formats": { "cpp": "%ff" } }, + { "data_type": "f", "field": "mod_creature_auto_attack_dps", "formats": { "cpp": "%ff" } }, + { "data_type": "f", "field": "mod_creature_armor", "formats": { "cpp": "%ff" } }, + { "data_type": "f", "field": "mod_player_mana", "formats": { "cpp": "%ff" } }, + { "data_type": "f", "field": "mod_player_primary_stat", "formats": { "cpp": "%ff" } }, + { "data_type": "f", "field": "mod_player_secondary_stat", "formats": { "cpp": "%ff" } }, + { "data_type": "f", "field": "mod_armor_constant", "formats": { "cpp": "%ff" } }, + { "data_type": "f", "field": "mod_creature_spell_damage", "formats": { "cpp": "%ff" } } + ] + }, + "GarrTalent": { + "parent": "GarrTalentTree", + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "desc" }, + { "data_type": "i", "field": "id" }, + { "data_type": "I", "field": "id_garr_talent_tree", "ref": "GarrTalentTree" }, + { "data_type": "b", "field": "tier", "formats": { "cpp": "%2u" } }, + { "data_type": "b", "field": "ui_order" }, + { "data_type": "i", "field": "id_icon_file_data" }, + { "data_type": "I", "field": "unk_2" }, + { "data_type": "I", "field": "id_garr_ability" }, + { "data_type": "b", "field": "unk_3" }, + { "data_type": "i", "field": "unk_4" }, + { "data_type": "i", "field": "id_garr_talent_prereq" }, + { "data_type": "i", "field": "unk_6" }, + { "data_type": "i", "field": "unk_7" }, + { "data_type": "i", "field": "conduit_type" } + ] + }, + "GarrTalentTree": { + "fields": [ + { "data_type": "S", "field": "title" }, + { "data_type": "B", "field": "id_garr_type" }, + { "data_type": "i", "field": "id_class" }, + { "data_type": "b", "field": "max_tiers" }, + { "data_type": "b", "field": "unk_0" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "H", "field": "unk_1" }, + { "data_type": "i", "field": "garr_talent_tree_type" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "B", "field": "feature_type" }, + { "data_type": "b", "field": "feature_rank" }, + { "data_type": "i", "field": "unk_4" } + ] + }, + "GarrTalentRank": { + "parent": "GarrTalent", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "rank" }, + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "i", "field": "unk_0" }, + { "data_type": "f", "field": "unk_1" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "i", "field": "unk_3" }, + { "data_type": "i", "field": "unk_4" }, + { "data_type": "i", "field": "unk_5" }, + { "data_type": "i", "field": "unk_6" }, + { "data_type": "i", "field": "unk_7" }, + { "data_type": "i", "field": "unk_8" }, + { "data_type": "i", "field": "unk_9" }, + { "data_type": "i", "field": "unk_10" }, + { "data_type": "i", "field": "unk_11" }, + { "data_type": "i", "field": "unk_12" }, + { "data_type": "i", "field": "unk_13" } + ] + }, + "GemProperties": { + "fields": [ + { "data_type": "H", "field": "id_enchant", "formats": { "cpp": "%5u" }, "ref": "SpellItemEnchantment" }, + { "data_type": "I", "field": "color", "formats": { "cpp": "%#.8x" } } + ] + }, + "GlyphProperties": { + "fields": [ + { "data_type": "I", "field": "id_spell", "formats": { "cpp": "%-7u" }, "ref": "SpellName" }, + { "data_type": "B", "field": "type" }, + { "data_type": "B", "field": "id_exclusive_category" }, + { "data_type": "i", "field": "id_icon" } + ] + }, + "Item": { + "fields": [ + { "data_type": "B", "field": "classs" }, + { "data_type": "B", "field": "subclass" }, + { "data_type": "B", "field": "material" }, + { "data_type": "B", "field": "type_inv" }, + { "data_type": "B", "field": "sheath" }, + { "data_type": "B", "field": "unk_2" }, + { "data_type": "i", "field": "id_icon", "ref": "ManifestInterfaceData" }, + { "data_type": "B", "field": "unk_3" }, + { "data_type": "i", "field": "unk_4" }, + { "data_type": "i", "field": "unk_5" }, + { "data_type": "i", "field": "id_crafting_quality", "ref": "CraftingQuality" } + ] + }, + "ItemSparse": { + "fields": [ + { "data_type": "Q", "field": "race_mask", "formats": { "cpp": "%#.16x" } }, + { "data_type": "S", "field": "desc" }, + { "data_type": "S", "field": "pad2" }, + { "data_type": "S", "field": "pad1" }, + { "data_type": "S", "field": "pad0" }, + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "id_expansion" }, + { "data_type": "f", "field": "dmg_range", "formats": { "cpp": "%ff" } }, + { "data_type": "i", "field": "item_limit_category", "ref": "ItemLimitCategory" }, + { "data_type": "I", "field": "duration" }, + { "data_type": "f", "field": "item_damage_modifier", "formats": { "cpp": "%ff" } }, + { "data_type": "I", "field": "bag_family" }, + { "data_type": "i", "field": "start_quest" }, + { "data_type": "i", "field": "id_lang" }, + { "data_type": "f", "field": "ranged_mod_range" }, + { "data_type": "f", "field": "stat_socket_mul", "elements": 10, "formats": { "cpp": "%ff" } }, + { "data_type": "i", "field": "stat_alloc", "elements": 10 }, + { "data_type": "i", "field": "stat_type", "elements": 10 }, + { "data_type": "i", "field": "stackable" }, + { "data_type": "i", "field": "max_count" }, + { "data_type": "i", "field": "req_rep_rank" }, + { "data_type": "I", "field": "req_spell" }, + { "data_type": "I", "field": "sell_price" }, + { "data_type": "I", "field": "buy_price" }, + { "data_type": "I", "field": "vendor_stack" }, + { "data_type": "f", "field": "unk_2" }, + { "data_type": "f", "field": "unk_1" }, + { "data_type": "I", "field": "flags", "elements": 5, "formats": { "cpp": "%#.8x" } }, + { "data_type": "i", "field": "faction_conv_id" }, + { "data_type": "i", "field": "id_modified_crafting_reagent_item", "ref": "ModifiedCraftingReagentItem" }, + { "data_type": "I", "field": "id_content_tuning" }, + { "data_type": "i", "field": "id_curve" }, + { "data_type": "H", "field": "id_name_desc", "ref": "ItemNameDescription" }, + { "data_type": "H", "field": "id_xmog_holiday" }, + { "data_type": "H", "field": "id_holiday" }, + { "data_type": "H", "field": "gem_props", "ref": "GemProperties" }, + { "data_type": "H", "field": "socket_bonus" }, + { "data_type": "H", "field": "totem_category" }, + { "data_type": "H", "field": "map" }, + { "data_type": "H", "field": "area", "elements": 2 }, + { "data_type": "H", "field": "item_set" }, + { "data_type": "H", "field": "id_lock" }, + { "data_type": "H", "field": "id_page" }, + { "data_type": "H", "field": "delay" }, + { "data_type": "H", "field": "req_rep_faction" }, + { "data_type": "H", "field": "req_skill_rank" }, + { "data_type": "H", "field": "req_skill" }, + { "data_type": "H", "field": "ilevel" }, + { "data_type": "H", "field": "class_mask", "formats": { "cpp": "%#.4x" } }, + { "data_type": "B", "field": "id_artifact" }, + { "data_type": "B", "field": "unk_6" }, + { "data_type": "B", "field": "unk_7" }, + { "data_type": "B", "field": "socket_color", "elements": 3 }, + { "data_type": "B", "field": "sheath" }, + { "data_type": "B", "field": "material" }, + { "data_type": "B", "field": "page_mat" }, + { "data_type": "B", "field": "bonding" }, + { "data_type": "B", "field": "damage_type" }, + { "data_type": "B", "field": "container_slots" }, + { "data_type": "B", "field": "unk_5" }, + { "data_type": "B", "field": "unk_4" }, + { "data_type": "b", "field": "req_level" }, + { "data_type": "b", "field": "inv_type" }, + { "data_type": "b", "field": "quality" } + ] + }, + "ItemAppearance": { + "fields": [ + { "data_type": "b", "field": "f4"}, + { "data_type": "i", "field": "id_display_info"}, + { "data_type": "i", "field": "id_icon", "ref": "ManifestInterfaceData" }, + { "data_type": "i", "field": "f3"}, + { "data_type": "i", "field": "f5" } + ] + }, + "ItemArmorQuality": { + "fields": [ + { "data_type": "f", "field": "v", "elements": 7, "formats": { "cpp": "%6.3ff" } } + ] + }, + "ItemArmorShield": { + "fields": [ + { "data_type": "f", "field": "v", "elements": 7, "formats": { "cpp": "%13.5ff" } }, + { "data_type": "H", "field": "ilevel", "formats": { "cpp": "%4u" } } + ] + }, + "ItemArmorTotal": { + "fields": [ + { "data_type": "h", "field": "ilevel", "formats": { "cpp": "%4u" } }, + { "data_type": "f", "field": "v_1", "formats": { "cpp": "%14.5ff" } }, + { "data_type": "f", "field": "v_2", "formats": { "cpp": "%14.5ff" } }, + { "data_type": "f", "field": "v_3", "formats": { "cpp": "%14.5ff" } }, + { "data_type": "f", "field": "v_4", "formats": { "cpp": "%14.5ff" } } + ] + }, + "ItemBonus": { + "fields": [ + { "data_type": "i", "field": "val", "elements": 4, "formats": { "cpp": "%7d" } }, + { "data_type": "H", "field": "id_node", "formats": { "cpp": "%4u" }, "ref": "ItemBonusList" }, + { "data_type": "B", "field": "type", "formats": { "cpp": "%2u" } }, + { "data_type": "B", "field": "index", "formats": { "cpp": "%2u" } } + ] + }, + "ItemBonusList": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "flags" } + ] + }, + "ItemBonusListGroup": { + "fields": [ + { "data_type": "i", "field": "id_spell_sequence", "ref": "SpellSequence" }, + { "data_type": "i", "field": "id_player_condition", "ref": "PlayerCondition" }, + { "data_type": "i", "field": "id_item_extended_cost", "ref": "ItemExtendedCost" }, + { "data_type": "i", "field": "id_item_logical_cost_group", "ref": "ItemLogicalCostGroup" }, + { "data_type": "i", "field": "group_ilvl_scaling_type" } + ] + }, + "ItemBonusListGroupEntry": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_item_bonus_list_group", "ref": "ItemBonusListGroup" }, + { "data_type": "i", "field": "id_item_bonus_list" }, + { "data_type": "i", "field": "id_item_level_selector", "ref": "ItemLevelSelector" }, + { "data_type": "i", "field": "sequence_value" }, + { "data_type": "i", "field": "id_item_extended_cost", "ref": "ItemExtendedCost" }, + { "data_type": "i", "field": "id_player_condition", "ref": "PlayerCondition" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "id_item_logical_cost_group", "ref": "ItemLogicalCostGroup" } + ] + }, + "ItemBonusListLevelDelta": { + "fields": [ + { "data_type": "h", "field": "item_level_delta" }, + { "data_type": "i", "field": "id" } + ] + }, + "ItemBonusSeason": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_season", "ref": "DisplaySeason" } + ] + }, + "ItemBonusSeasonBonusListGroup": { + "parent": "ItemBonusSeason", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_item_bonus_list_group", "ref": "ItemBonusListGroup" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "id_item_bonus_season", "ref": "ItemBonusSeason" } + ] + }, + "ItemBonusSeasonUpgradeCost": { + "fields": [ + { "data_type": "S", "field": "description" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_item", "ref": "ItemSparse" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "i", "field": "id_item_bonus_season", "ref": "ItemBonusSeason" }, + { "data_type": "i", "field": "unk_3" }, + { "data_type": "i", "field": "unk_4" } + ] + }, + "ItemBonusTree": { + "fields": [ + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "slot_mask" } + ] + }, + "ItemBonusTreeNode": { + "parent": "ItemBonusTree", + "fields": [ + { "data_type": "B", "field": "index", "formats": { "cpp": "%2u" } }, + { "data_type": "H", "field": "id_child", "formats": { "cpp": "%4u" }, "ref": "ItemBonusTreeNode" }, + { "data_type": "H", "field": "id_node", "formats": { "cpp": "%4u" }, "ref": "ItemBonusList" }, + { "data_type": "H", "field": "id_level_selector" }, + { "data_type": "i", "field": "id_node_group" }, + { "data_type": "i", "field": "id_group_point_mod_set" }, + { "data_type": "i", "field": "min_mythic_plus_level" }, + { "data_type": "i", "field": "max_mythic_plus_level" } + ] + }, + "ItemChildEquipment": { + "parent": "ItemSparse", + "fields": [ + { "data_type": "i", "field": "id_item", "formats": { "cpp": "%6u" }, "ref": "ItemSparse" }, + { "data_type": "i", "field": "id_child", "formats": { "cpp": "%6u" }, "ref": "ItemSparse" }, + { "data_type": "B", "field": "unk_2" } + ] + }, + "ItemConversion": { + "fields": [ + { "data_type": "i", "field": "id_item_bonus_list_group" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "id_item_bonus_tree" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "i", "field": "unk_3" } + ] + }, + "ItemConversionEntry": { + "parent": "ItemConversion", + "fields": [ + { "data_type": "i", "field": "id_item" } + ] + }, + "ItemDamageOneHand": { + "fields": [ + { "data_type": "H", "field": "ilevel", "formats": { "cpp": "%4u" } }, + { "data_type": "f", "field": "v", "elements": 7, "formats": { "cpp": "%13.5ff" } } + ] + }, + "ItemDamageOneHandCaster": { + "fields": [ + { "data_type": "H", "field": "ilevel", "formats": { "cpp": "%4u" } }, + { "data_type": "f", "field": "v", "elements": 7, "formats": { "cpp": "%13.5ff" } } + ] + }, + "ItemDamageTwoHand": { + "fields": [ + { "data_type": "H", "field": "ilevel", "formats": { "cpp": "%4u" } }, + { "data_type": "f", "field": "v", "elements": 7, "formats": { "cpp": "%13.5ff" } } + ] + }, + "ItemDamageTwoHandCaster": { + "fields": [ + { "data_type": "H", "field": "ilevel", "formats": { "cpp": "%4u" } }, + { "data_type": "f", "field": "v", "elements": 7, "formats": { "cpp": "%13.5ff" } } + ] + }, + "ItemEffect": { + "fields": [ + { "data_type": "b", "field": "index", "formats": { "cpp": "%3d" } }, + { "data_type": "b", "field": "trigger_type", "formats": { "cpp": "%3d" } }, + { "data_type": "h", "field": "cooldown_charges" }, + { "data_type": "i", "field": "cooldown_duration", "formats": { "cpp": "%7d" } }, + { "data_type": "i", "field": "cooldown_group_duration", "formats": { "cpp": "%7d" } }, + { "data_type": "h", "field": "cooldown_group", "formats": { "cpp": "%4d" } }, + { "data_type": "i", "field": "id_spell", "formats": { "cpp": "%6d" }, "ref": "SpellName" }, + { "data_type": "h", "field": "id_specialization", "ref": "ChrSpecialization" } + ] + }, + "ItemExtendedCost": { + "fields": [ + { "data_type": "H", "field": "required_arena_rating" }, + { "data_type": "b", "field": "arena_bracket" }, + { "data_type": "B", "field": "flags" }, + { "data_type": "B", "field": "id_min_faction" }, + { "data_type": "i", "field": "min_reputation" }, + { "data_type": "B", "field": "required_achievement" }, + { "data_type": "i", "field": "id_item", "elements": 5, "ref": "ItemSparse" }, + { "data_type": "H", "field": "item_count", "elements": 5 }, + { "data_type": "H", "field": "id_currency", "elements": 5 }, + { "data_type": "i", "field": "currency_count", "elements": 5 } + ] + }, + "ItemGroupIlvlScalingEntry": { + "fields": [ + { "data_type": "i", "field": "id_currency_type" }, + { "data_type": "i", "field": "id_item" }, + { "data_type": "f", "field": "scaling" }, + { "data_type": "i", "field": "account_wide" }, + { "data_type": "i", "field": "id_player_condition" }, + { "data_type": "f", "field": "conditional_cost_scaling" } + ] + }, + "ItemLevelSelector": { + "fields": [ + { "data_type": "h", "field": "min_item_level" }, + { "data_type": "h", "field": "id_item_level_selector_quality_set" }, + { "data_type": "h", "field": "id_azerite_unlock_mapping_set" } + ] + }, + "ItemLimitCategory": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "b", "field": "quantity" }, + { "data_type": "B", "field": "flags" } + ] + }, + "ItemModifiedAppearance": { + "fields": [ + { "data_type": "i", "field": "id"}, + { "data_type": "i", "field": "id_item", "ref": "ItemSparse" }, + { "data_type": "i", "field": "f3"}, + { "data_type": "i", "field": "id_appearance", "ref": "ItemAppearance" }, + { "data_type": "i", "field": "f5"}, + { "data_type": "b", "field": "f6"}, + { "data_type": "i", "field": "f7"} + ] + }, + "ItemNameDescription": { + "fields": [ + { "data_type": "S", "field": "desc", "formats": { "cpp": "%-45s" } }, + { "data_type": "I", "field": "flags" } + ] + }, + "ItemNameSlotOverride": { + "fields": [ + { "data_type": "S", "field": "name", "formats": { "cpp": "%-45s" } }, + { "data_type": "I", "field": "inventory_type_mask" } + ] + }, + "ItemSet": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "I", "field": "id_req_skill" }, + { "data_type": "H", "field": "val_req_skill" }, + { "data_type": "I", "field": "id_item", "elements": 17, "ref": "ItemSparse" } + ] + }, + "ItemSetSpell": { + "parent": "ItemSet", + "fields": [ + { "data_type": "H", "field": "id_spec", "ref": "ChrSpecialization" }, + { "data_type": "I", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "B", "field": "n_req_items" } + ] + }, + "ItemSpec": { + "fields": [ + { "data_type": "B", "field": "min_level" }, + { "data_type": "B", "field": "max_level" }, + { "data_type": "B", "field": "item_type" }, + { "data_type": "B", "field": "primary_stat" }, + { "data_type": "B", "field": "secondary_stat" }, + { "data_type": "H", "field": "id_spec", "ref": "ChrSpecialization" } + ] + }, + "ItemSpecOverride": { + "parent": "Item", + "fields": [ + { "data_type": "H", "field": "id_spec", "ref": "ChrSpecialization" } + ] + }, + "ItemClass": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "b", "field": "id_class" }, + { "data_type": "f", "field": "price_modifier" }, + { "data_type": "B", "field": "flags" } + ] + }, + "ItemSubClass": { + "fields": [ + { "data_type": "S", "field": "display_name" }, + { "data_type": "S", "field": "verbose_name" }, + { "data_type": "b", "field": "id_class" }, + { "data_type": "b", "field": "id_sub_class" }, + { "data_type": "B", "field": "auction_house_sort_order" }, + { "data_type": "b", "field": "prerequisite_proficiency" }, + { "data_type": "H", "field": "flags" }, + { "data_type": "b", "field": "display_flags" }, + { "data_type": "B", "field": "weapon_swing_size" }, + { "data_type": "b", "field": "postrequisite_proficiency" } + ] + }, + "ItemCurrencyCost": { + "fields": [ + { "data_type": "i", "field": "id_item", "ref": "ItemSparse" } + ] + }, + "ItemLogicalCost": { + "parent": "ItemLogicalCostGroup", + "fields": [ + { "data_type": "i", "field": "mask_inv_type" }, + { "data_type": "B", "field": "flags" }, + { "data_type": "i", "field": "id_item_extended_cost", "ref": "ItemExtendedCost" } + ] + }, + "ItemXBonusTree": { + "parent": "Item", + "fields": [ + { "data_type": "H", "field": "id_tree", "formats": { "cpp": "%4u" }, "ref": "ItemBonusTreeNode" } + ] + }, + "ItemXItemEffect": { + "parent": "ItemSparse", + "fields": [ + { "data_type": "i", "field": "id_item_effect", "ref": "ItemEffect" } + ] + }, + "JournalEncounter": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "desc" }, + { "data_type": "f", "field": "coord", "elements": 2 }, + { "data_type": "i", "field": "id" }, + { "data_type": "H", "field": "id_journal_instance" }, + { "data_type": "H", "field": "unk_1" }, + { "data_type": "I", "field": "order_index" }, + { "data_type": "H", "field": "first_section_id" }, + { "data_type": "H", "field": "ui_map_id" }, + { "data_type": "I", "field": "map_display_condition_id" }, + { "data_type": "B", "field": "flags" }, + { "data_type": "B", "field": "difficulty_mask" } + ] + }, + "JournalEncounterCreature": { + "parent": "JournalEncounter", + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "desc" }, + { "data_type": "i", "field": "id" }, + { "data_type": "H", "field": "id_journal_encounter", "ref": "JournalEncounter" }, + { "data_type": "I", "field": "id_creature_display_info" }, + { "data_type": "i", "field": "id_data_file", "ref": "ManifestInterfaceData" }, + { "data_type": "B", "field": "order_index" }, + { "data_type": "I", "field": "id_ui_model_scene" } + ] + }, + "JournalEncounterItem": { + "parent": "JournalEncounter", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "H", "field": "id_encounter", "ref": "JournalEncounter" }, + { "data_type": "I", "field": "id_item", "ref": "ItemSparse" }, + { "data_type": "b", "field": "flags_2" }, + { "data_type": "i", "field": "flags_3" }, + { "data_type": "b", "field": "flags_1" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "unk_7" } + ] + }, + "JournalEncounterSection": { + "fields": [ + { "data_type": "S", "field": "title" }, + { "data_type": "S", "field": "body_text" }, + { "data_type": "H", "field": "id_journal_encounter", "ref": "JournalEncounter" }, + { "data_type": "B", "field": "order_index" }, + { "data_type": "H", "field": "id_parent_section", "ref": "JournalEncounterSection" }, + { "data_type": "H", "field": "id_first_child_section", "ref": "JournalEncounterSection" }, + { "data_type": "H", "field": "id_next_sibling_section", "ref": "JournalEncounterSection" }, + { "data_type": "B", "field": "type" }, + { "data_type": "I", "field": "id_icon_creature_display_info" }, + { "data_type": "i", "field": "id_ui_model_scene" }, + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "i", "field": "id_icon_file_data" }, + { "data_type": "H", "field": "flags" }, + { "data_type": "H", "field": "icon_flags" }, + { "data_type": "b", "field": "difficulty_mask" } + ] + }, + "JournalEncounterXDifficulty": { + "fields": [ + { "data_type": "B", "field": "id_difficulty", "ref": "Difficulty" } + ] + }, + "JournalInstance": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "desc" }, + { "data_type": "H", "field": "map", "ref": "Map" }, + { "data_type": "i", "field": "id_background_file_data", "ref": "ManifestInterfaceData" }, + { "data_type": "i", "field": "id_button_file_data", "ref": "ManifestInterfaceData" }, + { "data_type": "i", "field": "id_button_small_file_data", "ref": "ManifestInterfaceData" }, + { "data_type": "i", "field": "id_lore_file_data" }, + { "data_type": "b", "field": "flags" }, + { "data_type": "H", "field": "area_id" }, + { "data_type": "H", "field": "unk_9" } + ] + }, + "JournalItemXDifficulty": { + "parent": "JournalEncounterItem", + "fields": [ + { "data_type": "B", "field": "id_difficulty", "ref": "Difficulty" } + ] + }, + "JournalTier": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "player_condition_id" }, + { "data_type": "i", "field": "unk_1" } + ] + }, + "JournalTierXInstance": { + "parent": "JournalTier", + "fields": [ + { "data_type": "i", "field": "id_journal_tier" }, + { "data_type": "H", "field": "id_journal_instance", "ref": "JournalInstance" }, + { "data_type": "i", "field": "order" }, + { "data_type": "i", "field": "availability_condition" } + ] + }, + "ManifestInterfaceData": { + "fields": [ + { "data_type": "S", "field": "unk" }, + { "data_type": "S", "field": "name" } + ] + }, + "ManifestInterfaceItemIcon": { + "fields": [ + { "data_type": "i", "field": "id" } + ] + }, + "Map": { + "fields": [ + { "data_type": "S", "field": "directory" }, + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "description_1" }, + { "data_type": "S", "field": "description_2" }, + { "data_type": "S", "field": "pvp_short_description" }, + { "data_type": "S", "field": "pvp_long_description" }, + { "data_type": "f", "field": "corpse", "elements": 2 }, + { "data_type": "B", "field": "map_type" }, + { "data_type": "b", "field": "instance_type" }, + { "data_type": "B", "field": "id_expansion" }, + { "data_type": "H", "field": "id_area_table" }, + { "data_type": "h", "field": "id_loading_screen" }, + { "data_type": "h", "field": "time_of_day_override" }, + { "data_type": "h", "field": "id_parent_map", "ref": "Map" }, + { "data_type": "h", "field": "id_cosmetic_parent_map" }, + { "data_type": "B", "field": "time_offset" }, + { "data_type": "f", "field": "minimap_icon_scale" }, + { "data_type": "h", "field": "id_corpse_map" }, + { "data_type": "B", "field": "max_players" }, + { "data_type": "h", "field": "id_wind_settings" }, + { "data_type": "i", "field": "id_zmp_file_data" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "i", "field": "unk_3" }, + { "data_type": "i", "field": "flags", "elements": 3 } + ] + }, + "MapChallengeMode": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_map", "ref": "Map" }, + { "data_type": "B", "field": "flags" }, + { "data_type": "I", "field": "expansion_level" }, + { "data_type": "I", "field": "unk_1" }, + { "data_type": "H", "field": "criteria_count", "elements": 3 } + ] + }, + "MapDifficulty": { + "parent": "Map", + "fields": [ + { "data_type": "S", "field": "message" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "difficulty" }, + { "data_type": "i", "field": "id_lock" }, + { "data_type": "B", "field": "reset_interval" }, + { "data_type": "i", "field": "max_players" }, + { "data_type": "B", "field": "item_context" }, + { "data_type": "i", "field": "item_context_picker_id" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "id_content_tuning", "ref": "ContentTuning" }, + { "data_type": "i", "field": "unk_9" } + ] + }, + "MCRSlotXMCRCategory": { + "parent": "ModifiedCraftingReagentSlot", + "fields": [ + { "data_type": "i", "field": "id_modified_crafting_category", "ref": "ModifiedCraftingCategory" }, + { "data_type": "i", "field": "order" } + ] + }, + "MinorTalent": { + "fields": [ + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "i", "field": "index" } + ] + }, + "ModifiedCraftingCategory": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "description" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "f", "field": "mat_quality_weight" }, + { "data_type": "i", "field": "unk_2" } + ] + }, + "ModifiedCraftingReagentItem": { + "fields": [ + { "data_type": "S", "field": "description" }, + { "data_type": "i", "field": "id_modified_crafting_category", "ref": "ModifiedCraftingCategory" }, + { "data_type": "i", "field": "id_tree", "ref": "ItemBonusTree" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "item_context_offset" } + ] + }, + "ModifiedCraftingReagentSlot": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "id_player_condition" }, + { "data_type": "i", "field": "reagent_type" }, + { "data_type": "b", "field": "unk_2" } + ] + }, + "ModifiedCraftingSpellSlot": { + "fields": [ + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "i", "field": "slot" }, + { "data_type": "i", "field": "id_modified_crafting_reagent_slot", "ref": "ModifiedCraftingReagentSlot" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "reagent_count" }, + { "data_type": "i", "field": "reagent_recraft_count" } + ] + }, + "MythicPlusSeason": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "milestone_season" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "id_expansion" }, + { "data_type": "i", "field": "heroic_lfg_dungeon_min_gear" } + ] + }, + "MythicPlusSeasonTrackedMap": { + "parent": "DisplaySeason", + "fields": [ + { "data_type": "i", "field": "id_map_challenge_mode", "ref": "MapChallengeMode" } + ] + }, + "MythicPlusSeasonRewardLevels": { + "parent": "MythicPlusSeason", + "fields": [ + { "data_type": "i", "field": "difficulty_level" }, + { "data_type": "i", "field": "weekly_reward_level" }, + { "data_type": "i", "field": "end_of_run_reward_level" } + ] + }, + "PlayerCondition": { + "fields": [ + { "data_type": "Q", "field": "race_mask" }, + { "data_type": "S", "field": "failure_description_lang" }, + { "data_type": "i", "field": "class_mask" }, + { "data_type": "H", "field": "min_level" }, + { "data_type": "H", "field": "max_level" }, + { "data_type": "I", "field": "skill_logic" }, + { "data_type": "i", "field": "id_language" }, + { "data_type": "B", "field": "min_language" }, + { "data_type": "i", "field": "max_language" }, + { "data_type": "H", "field": "id_max_faction" }, + { "data_type": "B", "field": "max_reputation" }, + { "data_type": "I", "field": "reputation_logic" }, + { "data_type": "b", "field": "current_pvp_faction" }, + { "data_type": "B", "field": "pvp_medal" }, + { "data_type": "I", "field": "prev_quest_logic" }, + { "data_type": "I", "field": "curr_quest_logic" }, + { "data_type": "I", "field": "current_completed_quest_logic" }, + { "data_type": "I", "field": "spell_logic" }, + { "data_type": "I", "field": "item_logic" }, + { "data_type": "B", "field": "item_flags" }, + { "data_type": "I", "field": "aura_spell_logic" }, + { "data_type": "H", "field": "id_world_state_expression" }, + { "data_type": "i", "field": "id_weather" }, + { "data_type": "B", "field": "party_status" }, + { "data_type": "B", "field": "lifetime_max_pvp_rank" }, + { "data_type": "I", "field": "achievement_logic" }, + { "data_type": "b", "field": "gender" }, + { "data_type": "b", "field": "native_gender" }, + { "data_type": "I", "field": "area_logic" }, + { "data_type": "I", "field": "lfg_logic" }, + { "data_type": "I", "field": "currency_logic" }, + { "data_type": "i", "field": "id_quest_kill" }, + { "data_type": "I", "field": "quest_kill_logic" }, + { "data_type": "b", "field": "min_expansion_level" }, + { "data_type": "b", "field": "max_expansion_level" }, + { "data_type": "i", "field": "min_avg_item_level" }, + { "data_type": "i", "field": "max_avg_item_level" }, + { "data_type": "H", "field": "min_avg_equipped_item_level" }, + { "data_type": "H", "field": "max_avg_equipped_item_level" }, + { "data_type": "B", "field": "phase_use_flags" }, + { "data_type": "H", "field": "id_phase" }, + { "data_type": "I", "field": "id_phase_group" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "b", "field": "chr_specialization_index" }, + { "data_type": "b", "field": "chr_specialization_role" }, + { "data_type": "I", "field": "id_modifier_tree" }, + { "data_type": "b", "field": "power_type" }, + { "data_type": "B", "field": "power_type_comp" }, + { "data_type": "B", "field": "power_type_value" }, + { "data_type": "i", "field": "weapon_subclass_mask" }, + { "data_type": "B", "field": "max_guild_level" }, + { "data_type": "B", "field": "min_guild_level" }, + { "data_type": "b", "field": "max_expansion_tier" }, + { "data_type": "b", "field": "min_expansion_tier" }, + { "data_type": "B", "field": "min_pvp_rank" }, + { "data_type": "B", "field": "max_pvp_rank" }, + { "data_type": "i", "field": "id_content_tuning" }, + { "data_type": "i", "field": "id_covenant" }, + { "data_type": "I", "field": "unk_56" }, + { "data_type": "H", "field": "id_skill", "elements": 4 }, + { "data_type": "H", "field": "min_skill", "elements": 4 }, + { "data_type": "H", "field": "max_skill", "elements": 4 }, + { "data_type": "I", "field": "id_min_faction", "elements": 3 }, + { "data_type": "B", "field": "min_reputation", "elements": 3 }, + { "data_type": "i", "field": "id_prev_quest", "elements": 4 }, + { "data_type": "i", "field": "id_curr_quest", "elements": 4 }, + { "data_type": "i", "field": "id_current_completed_quest", "elements": 4 }, + { "data_type": "i", "field": "id_spell", "elements": 4 }, + { "data_type": "i", "field": "id_item", "elements": 4 }, + { "data_type": "I", "field": "item_count", "elements": 4 }, + { "data_type": "H", "field": "explored", "elements": 2 }, + { "data_type": "I", "field": "time", "elements": 2 }, + { "data_type": "i", "field": "id_aura_spell", "elements": 4 }, + { "data_type": "B", "field": "aura_stacks", "elements": 4 }, + { "data_type": "H", "field": "achievement", "elements": 4 }, + { "data_type": "H", "field": "id_area", "elements": 4 }, + { "data_type": "B", "field": "lfg_status", "elements": 4 }, + { "data_type": "B", "field": "lfg_compare", "elements": 4 }, + { "data_type": "I", "field": "lfg_value", "elements": 4 }, + { "data_type": "I", "field": "id_currency", "elements": 4 }, + { "data_type": "I", "field": "currency_count", "elements": 4 }, + { "data_type": "I", "field": "quest_kill_monster", "elements": 6 }, + { "data_type": "i", "field": "movement_flags", "elements": 2 }, + { "data_type": "i", "field": "unk_81", "elements": 4 }, + { "data_type": "h", "field": "unk_82", "elements": 4 }, + { "data_type": "h", "field": "unk_83", "elements": 4 } + ] + }, + "RandPropPoints": { + "fields": [ + { "data_type": "f", "field": "damage_replace_stat", "formats": { "cpp": "%#.8ff" } }, + { "data_type": "f", "field": "damage_secondary", "formats": { "cpp": "%#.8ff" } }, + { "data_type": "i", "field": "damage_replace_stat_int", "formats": { "cpp": "%8u" } }, + { "data_type": "i", "field": "damage_secondary_int", "formats": { "cpp": "%8u" } }, + { "data_type": "f", "field": "epic_points", "elements": 5, "formats": { "cpp": "%#.8ff" } }, + { "data_type": "f", "field": "rare_points", "elements": 5, "formats": { "cpp": "%#.8ff" } }, + { "data_type": "f", "field": "uncm_points", "elements": 5, "formats": { "cpp": "%#.8ff" } }, + { "data_type": "I", "field": "epic_points_int", "elements": 5, "formats": { "cpp": "%8u" } }, + { "data_type": "I", "field": "rare_points_int", "elements": 5, "formats": { "cpp": "%8u" } }, + { "data_type": "I", "field": "uncm_points_int", "elements": 5, "formats": { "cpp": "%8u" } } + ] + }, + "RelicTalent": { + "fields": [ + { "data_type": "i", "field": "row" }, + { "data_type": "H", "field": "id_power", "ref": "ArtifactPower" }, + { "data_type": "B", "field": "power_index" }, + { "data_type": "i", "field": "unk_3" }, + { "data_type": "i", "field": "unk_4" } + ] + }, + "RenownRewards": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "desc" }, + { "data_type": "S", "field": "desc2" }, + { "data_type": "i", "field": "id_covenant", "ref": "Covenant" }, + { "data_type": "i", "field": "level", "formats": { "cpp": "%3u" } }, + { "data_type": "i", "field": "icon" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "order" }, + { "data_type": "i", "field": "id_item", "ref": "ItemSparse" }, + { "data_type": "i", "field": "id_spell", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "i", "field": "id_mount" }, + { "data_type": "i", "field": "id_transmog" }, + { "data_type": "i", "field": "id_transmog_set" }, + { "data_type": "i", "field": "id_char_title" }, + { "data_type": "i", "field": "id_garr_follower" }, + { "data_type": "i", "field": "id_transmog_illusion" }, + { "data_type": "i", "field": "id_quest" }, + { "data_type": "i", "field": "id_player_cond" } + ] + }, + "RewardPack": { + "fields": [ + { "data_type": "i", "field": "id_char_title" }, + { "data_type": "i", "field": "money" }, + { "data_type": "B", "field": "artifact_xp_difficulty" }, + { "data_type": "f", "field": "artifact_xp_multiplier" }, + { "data_type": "B", "field": "id_artifact_xp_category" }, + { "data_type": "I", "field": "id_treasure_picker" } + ] + }, + "RewardPackXCurrencyType": { + "fields": [ + { "data_type": "I", "field": "id_currency_type", "ref": "ItemCurrency" }, + { "data_type": "i", "field": "quantity" } + ] + }, + "RewardPackXItem": { + "fields": [ + { "data_type": "i", "field": "id_item", "ref": "ItemSparse" }, + { "data_type": "i", "field": "quantity" } + ] + }, + "RuneforgeLegendaryAbility": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_spec_set" }, + { "data_type": "i", "field": "mask_inv_type", "formats": { "cpp": "%#.8x" } }, + { "data_type": "i", "field": "id_spell", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "i", "field": "id_bonus", "formats": { "cpp": "%4d" } }, + { "data_type": "i", "field": "id_player_cond" }, + { "data_type": "i", "field": "unk_8" }, + { "data_type": "i", "field": "id_item" }, + { "data_type": "i", "field": "id_covenant", "ref": "Covenant" }, + { "data_type": "i", "field": "unk_10" } + ] + }, + "SharedString": { + "fields": [ + { "data_type": "S", "field": "string" }, + { "data_type": "i", "field": "id" }, + { "data_type": "b", "field": "flags" } + ] + }, + "SkillLine": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "alternate_verb" }, + { "data_type": "S", "field": "description" }, + { "data_type": "S", "field": "horde_display_name" }, + { "data_type": "S", "field": "neutral_display_name" }, + { "data_type": "i", "field": "id" }, + { "data_type": "b", "field": "category" }, + { "data_type": "i", "field": "id_spell_icon_file" }, + { "data_type": "b", "field": "can_link" }, + { "data_type": "I", "field": "id_parent_skill_line" }, + { "data_type": "I", "field": "parent_tier_index" }, + { "data_type": "H", "field": "flags" }, + { "data_type": "i", "field": "id_spell_book_spell" }, + { "data_type": "i", "field": "unk_1" }, + { "data_type": "i", "field": "unk_2" } + ] + }, + "SkillLineAbility": { + "parent": "SkillLine", + "fields": [ + { "data_type": "Q", "field": "mask_race", "formats": { "cpp": "%#.16x" } }, + { "data_type": "S", "field": "unk_2" }, + { "data_type": "S", "field": "unk_3" }, + { "data_type": "i", "field": "id" }, + { "data_type": "h", "field": "id_skill", "ref": "SkillLine", "formats": { "cpp": "%4u" } }, + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "h", "field": "req_skill_level" }, + { "data_type": "I", "field": "mask_class", "formats": { "cpp": "%#.8x" } }, + { "data_type": "I", "field": "id_replace", "ref": "SpellName" }, + { "data_type": "B", "field": "unk_13" }, + { "data_type": "H", "field": "max_learn_skill" }, + { "data_type": "H", "field": "unk_7" }, + { "data_type": "i", "field": "unk_14" }, + { "data_type": "B", "field": "reward_skill_points" }, + { "data_type": "H", "field": "index" }, + { "data_type": "H", "field": "id_filter", "ref": "TradeSkillCategory" }, + { "data_type": "H", "field": "unk_15" } + ] + }, + "SkillLineXTraitTree": { + "parent": "SkillLineAbility", + "fields": [ + { "data_type": "i", "field": "id_skill_line" }, + { "data_type": "i", "field": "id_trait_tree", "ref": "TraitTree" }, + { "data_type": "i", "field": "unk_3" } + ] + }, + "Soulbind": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "id_covenant", "ref": "Covenant" }, + { "data_type": "i", "field": "id_garr_talent_tree", "ref": "GarrTalentTree" }, + { "data_type": "i", "field": "id_creature" }, + { "data_type": "i", "field": "id_garr_follower" }, + { "data_type": "i", "field": "unk_0" } + ] + }, + "SoulbindConduit": { + "fields": [ + { "data_type": "i", "field": "type", "formats": { "cpp": "%1u" } }, + { "data_type": "i", "field": "id_covenant", "ref": "Covenant" }, + { "data_type": "i", "field": "id_spec_set" }, + { "data_type": "i", "field": "unk_1" } + ] + }, + "SoulbindConduitEnhancedSocket": { + "fields": [ + { "data_type": "i", "field": "id_garr_talent", "ref": "GarrTalent" }, + { "data_type": "i", "field": "id_player_cond", "ref": "PlayerCondition" } + ] + }, + "SoulbindConduitItem": { + "fields": [ + { "data_type": "i", "field": "id_item", "formats": { "cpp": "%6u" }, "ref": "ItemSparse" }, + { "data_type": "i", "field": "id_soulbind", "formats": { "cpp": "%4u" }, "ref": "SoulbindConduit" } + ] + }, + "SoulbindConduitRank": { + "parent": "SoulbindConduit", + "fields": [ + { "data_type": "i", "field": "rank", "formats": { "cpp": "%2u" } }, + { "data_type": "i", "field": "id_spell", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "f", "field": "spell_mod" } + ] + }, + "SoulbindConduitRankProperties": { + "fields": [ + { "data_type": "i", "field": "rank" }, + { "data_type": "i", "field": "item_level" }, + { "data_type": "i", "field": "unk_1" } + ] + }, + "SpecializationSpells": { + "parent": "ChrSpecialization", + "fields": [ + { "data_type": "S", "field": "unk_1" }, + { "data_type": "i", "field": "id" }, + { "data_type": "H", "field": "spec_id", "formats": { "cpp": "%4u" }, "ref": "ChrSpecialization" }, + { "data_type": "i", "field": "spell_id", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "I", "field": "replace_spell_id", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "B", "field": "unk_2" } + ] + }, + "SpecSetMember": { + "fields": [ + { "data_type": "i", "field": "id_spec", "ref": "ChrSpecialization" } + ] + }, + "Spell": { + "fields": [ + { "data_type": "S", "field": "rank" }, + { "data_type": "S", "field": "desc" }, + { "data_type": "S", "field": "tt" } + ] + }, + "SpellAuraOptions": { + "parent": "SpellName", + "fields": [ + { "data_type": "b", "field": "unk_1" }, + { "data_type": "h", "field": "stack_amount" }, + { "data_type": "I", "field": "internal_cooldown" }, + { "data_type": "b", "field": "proc_chance" }, + { "data_type": "i", "field": "proc_charges" }, + { "data_type": "h", "field": "id_ppm", "ref": "SpellProcsPerMinute" }, + { "data_type": "I", "field": "proc_flags", "elements": 2 } + ] + }, + "SpellAuraRestrictions": { + "parent": "SpellName", + "fields": [ + { "data_type": "B", "field": "difficulty" }, + { "data_type": "B", "field": "caster_aura_state" }, + { "data_type": "B", "field": "target_aura_state" }, + { "data_type": "B", "field": "exclude_caster_aura_state" }, + { "data_type": "B", "field": "exclude_target_aura_state" }, + { "data_type": "i", "field": "id_caster_aura", "ref": "SpellName" }, + { "data_type": "i", "field": "id_target_aura", "ref": "SpellName" }, + { "data_type": "i", "field": "id_exclude_caster_aura", "ref": "SpellName" }, + { "data_type": "i", "field": "id_exclude_target_aura", "ref": "SpellName" } + ] + }, + "SpellCastTimes": { + "fields": [ + { "data_type": "i", "field": "cast_time" }, + { "data_type": "i", "field": "min_cast_time" } + ] + }, + "SpellCastingRequirements": { + "fields": [ + { "data_type": "i", "field": "id_spell" }, + { "data_type": "b", "field": "facing_flags" }, + { "data_type": "h", "field": "id_min_faction" }, + { "data_type": "b", "field": "min_reputation" }, + { "data_type": "H", "field": "id_required_area" }, + { "data_type": "B", "field": "required_aura_vision" }, + { "data_type": "H", "field": "required_spell_focus" } + ] + }, + "SpellCategories": { + "parent": "SpellName", + "fields": [ + { "data_type": "b", "field": "unk_1" }, + { "data_type": "H", "field": "id_cooldown_category", "formats": { "cpp": "%4u" }, "ref": "SpellCategory" }, + { "data_type": "b", "field": "dmg_class" }, + { "data_type": "b", "field": "dispel" }, + { "data_type": "b", "field": "id_mechanic", "ref": "SpellMechanic" }, + { "data_type": "b", "field": "type_prevention" }, + { "data_type": "H", "field": "start_recovery_category" }, + { "data_type": "H", "field": "id_charge_category", "formats": { "cpp": "%4u" }, "ref": "SpellCategory" } + ] + }, + "SpellCategory": { + "fields": [ + { "data_type": "S", "field": "category" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "B", "field": "uses_per_week" }, + { "data_type": "b", "field": "charges" }, + { "data_type": "i", "field": "charge_cooldown" }, + { "data_type": "i", "field": "type_mask" } + ] + }, + "SpellClassOptions": { + "fields": [ + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "i", "field": "modal_next_spell", "ref": "SpellName" }, + { "data_type": "B", "field": "family" }, + { "data_type": "I", "field": "flags", "elements": 4 } + ] + }, + "SpellCooldowns": { + "parent": "SpellName", + "fields": [ + { "data_type": "B", "field": "unk_1" }, + { "data_type": "I", "field": "category_cooldown" }, + { "data_type": "I", "field": "cooldown" }, + { "data_type": "I", "field": "gcd_cooldown" }, + { "data_type": "I", "field": "id_buff_spell", "ref": "SpellName" } + ] + }, + "SpellDescriptionVariables": { + "fields": [ + { "data_type": "S", "field": "desc" } + ] + }, + "SpellDuration": { + "fields": [ + { "data_type": "i", "field": "duration_1" }, + { "data_type": "i", "field": "duration_2" } + ] + }, + "SpellEffect": { + "parent": "SpellName", + "fields": [ + { "data_type": "h", "field": "sub_type", "formats": { "cpp": "%3u" } }, + { "data_type": "I", "field": "unk_3" }, + { "data_type": "i", "field": "index", "formats": { "cpp": "%2u" } }, + { "data_type": "i", "field": "type", "formats": { "cpp": "%3u" } }, + { "data_type": "f", "field": "val_mul" }, + { "data_type": "I", "field": "attribute" }, + { "data_type": "I", "field": "amplitude" }, + { "data_type": "f", "field": "sp_coefficient" }, + { "data_type": "f", "field": "dmg_multiplier" }, + { "data_type": "i", "field": "chain_target", "formats": { "cpp": "%3d" } }, + { "data_type": "I", "field": "item_type", "ref": "ItemSparse" }, + { "data_type": "I", "field": "id_mechanic", "ref": "SpellMechanic" }, + { "data_type": "f", "field": "points_per_combo_points" }, + { "data_type": "f", "field": "unk_1" }, + { "data_type": "f", "field": "real_ppl" }, + { "data_type": "i", "field": "trigger_spell", "ref": "SpellName" }, + { "data_type": "f", "field": "ap_coefficient" }, + { "data_type": "f", "field": "pvp_coefficient" }, + { "data_type": "f", "field": "coefficient" }, + { "data_type": "f", "field": "delta" }, + { "data_type": "f", "field": "bonus" }, + { "data_type": "f", "field": "unk_24" }, + { "data_type": "f", "field": "base_value", "formats": { "cpp": "%11.4f" } }, + { "data_type": "i", "field": "id_scaling_class" }, + { "data_type": "i", "field": "misc_value", "elements": 2 }, + { "data_type": "I", "field": "id_radius", "elements": 2, "ref": "SpellRadius" }, + { "data_type": "I", "field": "class_mask", "elements": 4 }, + { "data_type": "H", "field": "implicit_target", "elements": 2 } + ] + }, + "SpellEffectAutoDescription": { + "fields": [ + { "data_type": "S", "field": "desc" }, + { "data_type": "S", "field": "tt" }, + { "data_type": "I", "field": "unk_3" }, + { "data_type": "i", "field": "unk_4" }, + { "data_type": "b", "field": "unk_5" }, + { "data_type": "b", "field": "unk_6" }, + { "data_type": "b", "field": "school" }, + { "data_type": "I", "field": "type" }, + { "data_type": "i", "field": "sub_type" } + ] + }, + "SpellEquippedItems": { + "fields": [ + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "B", "field": "item_class", "formats": { "cpp": "%2u" } }, + { "data_type": "I", "field": "mask_inv_type", "formats": { "cpp": "%#.8x" } }, + { "data_type": "I", "field": "mask_sub_class", "formats": { "cpp": "%#.8x" } } + ] + }, + "SpellFocusObject": { + "fields": [ + { "data_type": "S", "field": "name" } + ] + }, + "SpellInterrupts": { + "parent": "SpellName", + "fields": [ + { "data_type": "B", "field": "difficulty" }, + { "data_type": "h", "field": "interrupt_flags" }, + { "data_type": "I", "field": "aura_interrupt_flags", "elements": 2 }, + { "data_type": "I", "field": "channel_interrupt_flags", "elements": 2 } + ] + }, + "SpellItemEnchantment": { + "fields": [ + { "data_type": "S", "field": "desc", "formats": { "cpp": "%-35s" } }, + { "data_type": "S", "field": "desc_2" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "I", "field": "id_property", "elements": 3, "formats": { "cpp": "%6u" } }, + { "data_type": "i", "field": "slot", "formats": { "cpp": "%3u" } }, + { "data_type": "f", "field": "coeff", "elements": 3, "formats": { "cpp": "%7.4ff" } }, + { "data_type": "I", "field": "unk_20" }, + { "data_type": "i", "field": "min_item_level" }, + { "data_type": "i", "field": "max_item_level" }, + { "data_type": "I", "field": "unk_5" }, + { "data_type": "I", "field": "unk_6" }, + { "data_type": "h", "field": "amount", "elements": 3, "formats": { "cpp": "%4d" } }, + { "data_type": "H", "field": "id_aura", "ref": "SpellName" }, + { "data_type": "H", "field": "req_skill", "formats": { "cpp": "%3u" } }, + { "data_type": "H", "field": "req_skill_value", "formats": { "cpp": "%3u" } }, + { "data_type": "H", "field": "item_level", "formats": { "cpp": "%3u" } }, + { "data_type": "B", "field": "charges", "formats": { "cpp": "%3u" } }, + { "data_type": "B", "field": "type", "elements": 3, "formats": { "cpp": "%3u" } }, + { "data_type": "b", "field": "scaling_type", "formats": { "cpp": "%2d" } }, + { "data_type": "b", "field": "unk_19" }, + { "data_type": "B", "field": "unk_15" }, + { "data_type": "B", "field": "min_scaling_level", "formats": { "cpp": "%3u" } }, + { "data_type": "B", "field": "max_scaling_level", "formats": { "cpp": "%3u" } } + ] + }, + "SpellLabel": { + "parent": "SpellName", + "fields": [ + { "data_type": "I", "field": "label", "formats": { "cpp": "%4d" } } + ] + }, + "SpellLevels": { + "parent": "SpellName", + "fields": [ + { "data_type": "B", "field": "unk_1" }, + { "data_type": "h", "field": "max_level" }, + { "data_type": "B", "field": "max_aura_level" }, + { "data_type": "i", "field": "base_level" }, + { "data_type": "i", "field": "spell_level" } + ] + }, + "SpellMechanic": { + "fields": [ + { "data_type": "I", "field": "mechanic", "formats": { "cpp": "%2u" } } + ] + }, + "SpellName": { + "fields": [ + { "data_type": "S", "field": "name", "formats": { "cpp": "%-36s" } } + ] + }, + "SpellMisc": { + "parent": "SpellName", + "fields": [ + { "data_type": "I", "field": "flags", "elements": 16 }, + { "data_type": "B", "field": "unk_2" }, + { "data_type": "H", "field": "id_cast_time", "ref": "SpellCastTimes" }, + { "data_type": "H", "field": "id_duration", "ref": "SpellDuration" }, + { "data_type": "H", "field": "unk_3" }, + { "data_type": "H", "field": "id_range", "ref": "SpellRange" }, + { "data_type": "B", "field": "school" }, + { "data_type": "f", "field": "proj_speed" }, + { "data_type": "f", "field": "proj_delay" }, + { "data_type": "f", "field": "proj_min_duration" }, + { "data_type": "i", "field": "id_icon", "ref": "ManifestInterfaceData" }, + { "data_type": "i", "field": "id_active_icon", "ref": "ManifestInterfaceData" }, + { "data_type": "i", "field": "unk_4" }, + { "data_type": "i", "field": "unk_901_1" }, + { "data_type": "i", "field": "unk_901_2" }, + { "data_type": "i", "field": "unk_901_3" } + ] + }, + "SpellPower": { + "parent": "SpellName", + "fields": [ + { "data_type": "i", "field": "id", "formats": { "cpp": "%5u" } }, + { "data_type": "B", "field": "unk_2", "formats": { "cpp": "%4u" } }, + { "data_type": "i", "field": "cost", "formats": { "cpp": "%5u" } }, + { "data_type": "i", "field": "unk_4" }, + { "data_type": "i", "field": "cost_per_second" }, + { "data_type": "I", "field": "unk_6" }, + { "data_type": "i", "field": "unk_7" }, + { "data_type": "f", "field": "pct_cost", "formats": { "cpp": "%7.3f" } }, + { "data_type": "f", "field": "pct_cost_max", "formats": { "cpp": "%7.3f" } }, + { "data_type": "f", "field": "unk_10" }, + { "data_type": "f", "field": "pct_cost_per_second", "formats": { "cpp": "%7.3f" } }, + { "data_type": "b", "field": "type_power", "formats": { "cpp": "%3u" } }, + { "data_type": "i", "field": "aura_id", "formats": { "cpp": "%7u" }, "ref": "SpellName" }, + { "data_type": "I", "field": "cost_max", "formats": { "cpp": "%4u" } } + ] + }, + "SpellProcsPerMinute": { + "fields": [ + { "data_type": "f", "field": "ppm" }, + { "data_type": "B", "field": "flags" } + ] + }, + "SpellProcsPerMinuteMod": { + "parent": "SpellProcsPerMinute", + "fields": [ + { "data_type": "b", "field": "unk_1" }, + { "data_type": "i", "field": "id_chr_spec" }, + { "data_type": "f", "field": "coefficient" } + ] + }, + "SpellRadius": { + "fields": [ + { "data_type": "f", "field": "radius_1" }, + { "data_type": "f", "field": "unk_1" }, + { "data_type": "f", "field": "radius_2" }, + { "data_type": "f", "field": "radius_3" } + ] + }, + "SpellRange": { + "fields": [ + { "data_type": "S", "field": "display_name" }, + { "data_type": "S", "field": "display_name_short" }, + { "data_type": "B", "field": "flag" }, + { "data_type": "f", "field": "min_range", "elements": 2 }, + { "data_type": "f", "field": "max_range", "elements": 2 } + ] + }, + "SpellScaling": { + "fields": [ + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "I", "field": "min_scaling_level" }, + { "data_type": "I", "field": "max_scaling_level" }, + { "data_type": "H", "field": "scale_from_ilevel" } + ] + }, + "SpellShapeshift": { + "fields": [ + { "data_type": "i", "field": "id_spell", "ref": "SpellName" }, + { "data_type": "B", "field": "unk" }, + { "data_type": "I", "field": "flags_not", "elements": 2 }, + { "data_type": "I", "field": "flags", "elements": 2, "formats": { "cpp": "%#.8x" } } + ] + }, + "SpellTargetRestrictions": { + "parent": "SpellName", + "fields": [ + { "data_type": "b", "field": "unk_5" }, + { "data_type": "f", "field": "cone" }, + { "data_type": "b", "field": "max_affected_targets" }, + { "data_type": "i", "field": "max_target_level" }, + { "data_type": "h", "field": "unk_4" }, + + { "data_type": "I", "field": "flags" }, + { "data_type": "f", "field": "width" } + ] + }, + "SpellXDescriptionVariables": { + "fields": [ + { "data_type": "i", "field": "id_spell", "ref": "SpellName", "formats": { "cpp": "%7u" } }, + { "data_type": "i", "field": "id_desc_var", "ref": "SpellDescriptionVariables" } + ] + }, + "TactKey": { + "fields": [ + { "data_type": "B", "field": "key", "elements": 16 } + ] + }, + "TactKeyLookup": { + "fields": [ + { "data_type": "B", "field": "key_name", "elements": 8 } + ] + }, + "Talent": { + "fields": [ + { "data_type": "S", "field": "desc" }, + { "data_type": "B", "field": "row", "formats": { "cpp": "%3u" } }, + { "data_type": "B", "field": "flags", "formats": { "cpp": "%3u" } }, + { "data_type": "B", "field": "col", "formats": { "cpp": "%3u" } }, + { "data_type": "H", "field": "unk_4" }, + { "data_type": "b", "field": "class_id" }, + { "data_type": "H", "field": "spec_id", "formats": { "cpp": "%4u" } }, + { "data_type": "I", "field": "id_spell", "formats": { "cpp": "%7u" }, "ref": "SpellName" }, + { "data_type": "I", "field": "id_replace", "formats": { "cpp": "%7u" }, "ref": "SpellName" }, + { "data_type": "I", "field": "unk_9" }, + { "data_type": "i", "field": "unk_10", "elements": 2 }, + { "data_type": "I", "field": "unk_11", "elements": 9 }, + { "data_type": "I", "field": "unk_12", "elements": 3 }, + { "data_type": "B", "field": "unk_13", "elements": 2 } + ] + }, + "TradeSkillCategory": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "horde_name" }, + { "data_type": "h", "field": "id_parent_trade_skill_category", "ref": "TradeSkillCategory" }, + { "data_type": "h", "field": "id_skill_line", "ref": "SkillLine" }, + { "data_type": "h", "field": "order" }, + { "data_type": "b", "field": "flags" } + ] + }, + "TraitCond": { + "parent": "TraitTree", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "type" }, + { "data_type": "i", "field": "id_trait_tree", "ref": "TraitTree" }, + { "data_type": "i", "field": "granted_ranks" }, + { "data_type": "i", "field": "id_quest" }, + { "data_type": "i", "field": "id_achievement" }, + { "data_type": "i", "field": "id_spec_set" }, + { "data_type": "i", "field": "id_trait_node_group", "ref": "TraitNodeGroup" }, + { "data_type": "i", "field": "id_trait_node", "ref": "TraitNode" }, + { "data_type": "i", "field": "unk_9" }, + { "data_type": "i", "field": "id_trait_currency" }, + { "data_type": "i", "field": "req_points" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "required_level" }, + { "data_type": "i", "field": "id_free_shared_string" }, + { "data_type": "i", "field": "id_spend_more_shared_string" }, + { "data_type": "i", "field": "id_trait_cond_account_element" } + ] + }, + "TraitCost": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "unk_3" }, + { "data_type": "i", "field": "id_trait_currency", "ref": "TraitCurrency" } + ] + }, + "TraitCostDefinition": { + "parent": "TraitCost", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_cost", "ref": "TraitCost" }, + { "data_type": "i", "field": "type" }, + { "data_type": "i", "field": "id_trait_currency", "ref": "TraitCurrency" } + ] + }, + "TraitCurrency": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "type" }, + { "data_type": "i", "field": "id_currency_types" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "icon" } + ] + }, + "TraitDefinition": { + "fields": [ + { "data_type": "S", "field": "override_name" }, + { "data_type": "S", "field": "override_subtext" }, + { "data_type": "S", "field": "override_description" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_spell", "ref": "SpellName", "formats": { "cpp": "%6d" } }, + { "data_type": "i", "field": "id_override_icon", "ref": "ManifestInterfaceData" }, + { "data_type": "i", "field": "id_replace_spell", "ref": "SpellName", "formats": { "cpp": "%6d" } }, + { "data_type": "i", "field": "id_override_spell", "ref": "SpellName", "formats": { "cpp": "%6d" } } + ] + }, + "TraitDefinitionEffectPoints": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_definition", "ref": "TraitDefinition", "format": { "cpp": "%5d" } }, + { "data_type": "i", "field": "effect_index", "format": { "cpp": "%2d" } }, + { "data_type": "i", "field": "operation" }, + { "data_type": "i", "field": "id_curve", "ref": "Curve", "format": { "cpp": "%5d" } } + ] + }, + "TraitEdge": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "visual_style" }, + { "data_type": "i", "field": "id_left_trait_node", "ref": "TraitNode" }, + { "data_type": "i", "field": "id_right_trait_node", "ref": "TraitNode" }, + { "data_type": "i", "field": "type" } + ] + }, + "TraitNode": { + "parent": "TraitTree", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_tree", "ref": "TraitTree" }, + { "data_type": "i", "field": "pos_x" }, + { "data_type": "i", "field": "pos_y" }, + { "data_type": "B", "field": "type" }, + { "data_type": "i", "field": "flags" }, + { "data_type": "i", "field": "id_trait_sub_tree", "ref": "TraitSubTree" } + ] + }, + "TraitNodeEntry": { + "fields": [ + { "data_type": "i", "field": "id", "formats": { "cpp": "%5d" } }, + { "data_type": "i", "field": "id_trait_definition", "ref": "TraitDefinition" }, + { "data_type": "i", "field": "max_ranks" }, + { "data_type": "B", "field": "type" }, + { "data_type": "i", "field": "id_trait_sub_tree", "ref": "TraitSubTree" } + ] + }, + "TraitNodeGroup": { + "parent": "TraitTree", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_tree", "ref": "TraitTree" }, + { "data_type": "i", "field": "flags" } + ] + }, + "TraitNodeGroupXTraitCond": { + "parent": "TraitNodeGroup", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_cond", "ref": "TraitCond" }, + { "data_type": "i", "field": "id_trait_node_group", "ref": "TraitNodeGroup" } + ] + }, + "TraitNodeGroupXTraitCost": { + "parent": "TraitNodeGroup", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_node_group", "ref": "TraitNodeGroup" }, + { "data_type": "i", "field": "id_trait_cost", "ref": "TraitCost" } + ] + }, + "TraitNodeGroupXTraitNode": { + "parent": "TraitNodeGroup", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_node_group", "ref": "TraitNodeGroup" }, + { "data_type": "i", "field": "id_trait_node", "ref": "TraitNode" }, + { "data_type": "i", "field": "index" } + ] + }, + "TraitNodeXTraitCond": { + "parent": "TraitNode", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_cond", "ref": "TraitCond" }, + { "data_type": "i", "field": "id_trait_node", "ref": "TraitNode" } + ] + }, + "TraitNodeXTraitNodeEntry": { + "parent": "TraitNode", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_node", "ref": "TraitNode" }, + { "data_type": "i", "field": "id_trait_node_entry", "ref": "TraitNodeEntry" }, + { "data_type": "i", "field": "index" } + ] + }, + "TraitSubTree": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "S", "field": "desc" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_texture", "ref": "UiTextureAtlasElement" }, + { "data_type": "i", "field": "id_trait_tree", "ref": "TraitTree" } + ] + }, + "TraitTree": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "unk_2" }, + { "data_type": "i", "field": "unk_3" }, + { "data_type": "i", "field": "unk_4" }, + { "data_type": "i", "field": "unk_5" }, + { "data_type": "i", "field": "unk_6" }, + { "data_type": "f", "field": "unk_7" }, + { "data_type": "f", "field": "unk_8" } + ] + }, + "TraitTreeLoadout": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_tree", "ref": "TraitTree" }, + { "data_type": "i", "field": "id_spec", "ref": "ChrSpecialization" } + ] + }, + "TraitTreeLoadoutEntry": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_trait_tree_loadout", "ref": "TraitTreeLoadout" }, + { "data_type": "i", "field": "id_trait_node", "ref": "TraitNode" }, + { "data_type": "i", "field": "id_trait_node_entry", "ref": "TraitNodeEntry" }, + { "data_type": "i", "field": "num_points" }, + { "data_type": "i", "field": "order_index" } + ] + }, + "TraitTreeXTraitCurrency": { + "parent": "TraitTree", + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "index" }, + { "data_type": "i", "field": "id_trait_tree", "ref": "TraitTree" }, + { "data_type": "i", "field": "id_trait_currency", "ref": "TraitCurrency" } + ] + }, + "UICovenantAbility": { + "fields": [ + { "data_type": "i", "field": "id_covenant_preview", "ref": "UICovenantPreview" }, + { "data_type": "i", "field": "id_spell", "formats": { "cpp": "%6u" }, "ref": "SpellName" }, + { "data_type": "b", "field": "ability_type" }, + { "data_type": "i", "field": "unk" } + ] + }, + "UICovenantPreview": { + "fields": [ + { "data_type": "S", "field": "unk_0" }, + { "data_type": "S", "field": "unk_1" }, + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_covenant" }, + { "data_type": "i", "field": "id_ui_map" }, + { "data_type": "i", "field": "crest" }, + { "data_type": "i", "field": "id_transmog_set_0" }, + { "data_type": "i", "field": "texture_kit" }, + { "data_type": "i", "field": "id_mount" }, + { "data_type": "i", "field": "id_player_choice_response" }, + { "data_type": "i", "field": "unk_8" }, + { "data_type": "i", "field": "unk_9" }, + { "data_type": "i", "field": "id_transmog_set_1" }, + { "data_type": "i", "field": "id_transmog_set_2" }, + { "data_type": "i", "field": "id_transmog_set_3" }, + { "data_type": "i", "field": "unk_2" } + ] + }, + "UiTextureAtlas": { + "fields": [ + { "data_type": "i", "field": "id" }, + { "data_type": "i", "field": "id_icon_file_data" }, + { "data_type": "h", "field": "width" }, + { "data_type": "h", "field": "height" }, + { "data_type": "b", "field": "id_ui_canvas" } + ] + }, + "UiTextureAtlasElement": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "id" } + ] + }, + "UiTextureAtlasMember": { + "fields": [ + { "data_type": "S", "field": "name" }, + { "data_type": "i", "field": "id" }, + { "data_type": "H", "field": "id_ui_texture_atlas" }, + { "data_type": "h", "field": "width" }, + { "data_type": "h", "field": "height" }, + { "data_type": "h", "field": "left" }, + { "data_type": "h", "field": "right" }, + { "data_type": "h", "field": "top" }, + { "data_type": "h", "field": "bottom" }, + { "data_type": "H", "field": "id_ui_texture_atlas_element" }, + { "data_type": "h", "field": "override_width" }, + { "data_type": "h", "field": "override_height" }, + { "data_type": "b", "field": "flags" }, + { "data_type": "B", "field": "id_ui_canvas" } + ] + } +} + + diff --git a/dbc_extract3/live.conf b/dbc_extract3/live.conf index 0670df47128..e76bdf387c2 100644 --- a/dbc_extract3/live.conf +++ b/dbc_extract3/live.conf @@ -111,3 +111,7 @@ generators = EmbellishmentGenerator [character_loadout.inc] generators = CharacterLoadoutGenerator TraitLoadoutGenerator + +[assisted_combat.inc] +generators = AssistedCombatStepGenerator + AssistedCombatRuleGenerator diff --git a/dbc_extract3/ptr.conf b/dbc_extract3/ptr.conf index 58fe3353e69..51fd6c6faa3 100644 --- a/dbc_extract3/ptr.conf +++ b/dbc_extract3/ptr.conf @@ -111,3 +111,7 @@ generators = EmbellishmentGenerator [character_loadout_ptr.inc] generators = CharacterLoadoutGenerator TraitLoadoutGenerator + +[assisted_combat_ptr.inc] +generators = AssistedCombatStepGenerator + AssistedCombatRuleGenerator diff --git a/engine/class_modules/sc_mage.cpp b/engine/class_modules/sc_mage.cpp index 18976d51ebd..f1fac99abc6 100644 --- a/engine/class_modules/sc_mage.cpp +++ b/engine/class_modules/sc_mage.cpp @@ -947,6 +947,9 @@ struct mage_t final : public player_t void create_buffs() override; void create_options() override; void init_action_list() override; + void init_blizzard_action_list() override; + std::string parse_assisted_combat_rule( const assisted_combat_rule_data_t& rule, + const assisted_combat_step_data_t& step ) const override; std::string default_potion() const override { return mage_apl::potion( this ); } std::string default_flask() const override { return mage_apl::flask( this ); } std::string default_food() const override { return mage_apl::food( this ); } @@ -8878,6 +8881,44 @@ void mage_t::init_action_list() player_t::init_action_list(); } +void mage_t::init_blizzard_action_list() +{ + player_t::init_blizzard_action_list(); + + action_priority_list_t* cooldowns = get_action_priority_list( "cooldowns" ); + + switch ( specialization() ) + { + case MAGE_ARCANE: + cooldowns->add_action( "arcane_surge" ); + break; + case MAGE_FIRE: + cooldowns->add_action( "combustion" ); + break; + case MAGE_FROST: + cooldowns->add_action( "icy_veins" ); + break; + default: + break; + } +} + +std::string mage_t::parse_assisted_combat_rule( const assisted_combat_rule_data_t& rule, + const assisted_combat_step_data_t& step ) const +{ + if ( rule.condition_type == TARGET_AURA_APPLICATION_GREATER && rule.condition_value_1 == 384452 ) + { + assert( rule.condition_value_3 == 0 ); + if ( bugs ) + // Right now, this will never trigger because it checks for Arcane Harmony stacks on the target. + return "0"; + + return fmt::format( "buff.arcane_harmony.stack>={}", rule.condition_value_2 ); + } + + return player_t::parse_assisted_combat_rule( rule, step ); +} + double mage_t::resource_regen_per_second( resource_e rt ) const { double reg = player_t::resource_regen_per_second( rt ); diff --git a/engine/dbc/assisted_combat.cpp b/engine/dbc/assisted_combat.cpp new file mode 100644 index 00000000000..6bc28a505f4 --- /dev/null +++ b/engine/dbc/assisted_combat.cpp @@ -0,0 +1,40 @@ +// ========================================================================== +// Dedmonwakeen's Raid DPS/TPS Simulator. +// Send questions to natehieter@gmail.com +// ========================================================================== + +#include "assisted_combat.hpp" + +#include "config.hpp" +#include "dbc/dbc.hpp" + +#include "generated/assisted_combat.inc" +#if SC_USE_PTR == 1 +#include "generated/assisted_combat_ptr.inc" +#endif + +util::span assisted_combat_step_data_t::data( bool ptr ) +{ + return SC_DBC_GET_DATA( __assisted_combat_step_data, __ptr_assisted_combat_step_data, ptr ); +} + +util::span assisted_combat_step_data_t::data( specialization_e spec, bool ptr ) +{ + auto data = assisted_combat_step_data_t::data( ptr ); + auto _class_range = range::equal_range( data, static_cast( spec ), {}, &assisted_combat_step_data_t::spec_idx ); + + return { _class_range.first, _class_range.second }; +} + +util::span assisted_combat_rule_data_t::data( bool ptr ) +{ + return SC_DBC_GET_DATA( __assisted_combat_rule_data, __ptr_assisted_combat_rule_data, ptr ); +} + +util::span assisted_combat_rule_data_t::data( unsigned assisted_combat_step_id, bool ptr ) +{ + auto data = assisted_combat_rule_data_t::data( ptr ); + auto _class_range = range::equal_range( data, assisted_combat_step_id, {}, &assisted_combat_rule_data_t::assisted_combat_step_id ); + + return { _class_range.first, _class_range.second }; +} diff --git a/engine/dbc/assisted_combat.hpp b/engine/dbc/assisted_combat.hpp new file mode 100644 index 00000000000..e36434549db --- /dev/null +++ b/engine/dbc/assisted_combat.hpp @@ -0,0 +1,39 @@ +// ========================================================================== +// Dedmonwakeen's Raid DPS/TPS Simulator. +// Send questions to natehieter@gmail.com +// ========================================================================== + +#ifndef ASSISTED_COMBAT_DATA_HPP +#define ASSISTED_COMBAT_DATA_HPP + +#include "client_data.hpp" +#include "sc_enums.hpp" +#include "specialization.hpp" +#include "util/span.hpp" + +struct assisted_combat_step_data_t +{ + unsigned id; + unsigned spec_idx; + unsigned order_index; + unsigned spell_id; + + static util::span data( bool ptr ); + static util::span data( specialization_e spec, bool ptr ); +}; + +struct assisted_combat_rule_data_t +{ + unsigned id; + unsigned assisted_combat_step_id; + unsigned order_index; + unsigned condition_type; + unsigned condition_value_1; + unsigned condition_value_2; + unsigned condition_value_3; + + static util::span data( bool ptr ); + static util::span data( unsigned assiasted_combat_step_id, bool ptr ); +}; + +#endif /* ASSISTED_COMBAT_DATA_HPP */ diff --git a/engine/dbc/data_enums.hh b/engine/dbc/data_enums.hh index ad8690c042d..2b62b0eaa6c 100644 --- a/engine/dbc/data_enums.hh +++ b/engine/dbc/data_enums.hh @@ -1412,4 +1412,78 @@ enum difficulty_e : unsigned LFR = 17, }; +enum assisted_combat_rule_e : unsigned +{ + SPELL_LEARNED = 0, + SPELL_ON_COOLDOWN = 1, + SPELL_OFF_COOLDOWN = 2, + TARGET_DISTANCE_LESS = 3, + TARGET_DISTANCE_GREATER = 4, + HOSTILE_TARGET = 5, + FRIENDLY_TARGET = 6, + HEALTH_PCT_GREATER = 7, + HEALTH_PCT_LESS = 8, + AURA_ON_PLAYER = 9, + AURA_ON_TARGET = 10, + TARGET_COUNT_NEAR_TARGET_GREATER = 11, + TARGET_COUNT_NEAR_PLAYER_GREATER = 12, + AURA_COUNT_NEAR_PLAYER_GREATER = 13, + AFFORD_COST = 14, + AURA_MISSING_TARGET = 15, + AURA_MISSING_PLAYER = 16, + AURA_DURATION_PLAYER = 17, + AURA_DURATION_TARGET = 18, + MANA_GREATER = 19, + MANA_LESS = 20, + RAGE_GREATER = 21, + RAGE_LESS = 22, + FOCUS_GREATER = 23, + FOCUS_LESS = 24, + ENERGY_GREATER = 25, + ENERGY_LESS = 26, + COMBO_POINTS_GREATER = 27, + COMBO_POINTS_LESS = 28, + RUNES_GREATER = 29, + RUNES_LESS = 30, + RUNIC_POWER_GREATER = 31, + RUNIC_POWER_LESS = 32, + SOUL_SHARDS_GREATER = 33, + SOUL_SHARDS_LESS = 34, + LUNAR_POWER_GREATER = 35, + LUNAR_POWER_LESS = 36, + HOLY_POWER_GREATER = 37, + HOLY_POWER_LESS = 38, + MAELSTROM_GREATER = 39, + MAELSTROM_LESS = 40, + CHI_GREATER = 41, + CHI_LESS = 42, + INSANITY_GREATER = 43, + INSANITY_LESS = 44, + ESSENCE_GREATER = 45, + ESSENCE_LESS = 46, + ARCANE_CHARGES_GREATER = 47, + ARCANE_CHARGES_LESS = 48, + TARGET_COUNT_NEAR_TARGET_LESS = 49, + TARGET_COUNT_NEAR_PLAYER_LESS = 50, + AURA_COUNT_NEAR_PLAYER_LESS = 51, + TARGET_AURA_APPLICATION_GREATER = 52, + TARGET_AURA_APPLICATION_LESS = 53, + PLAYER_AURA_APPLICATION_GREATER = 54, + PLAYER_AURA_APPLICATION_LESS = 55, + SPELL_IN_RANGE = 56, + HAS_PET = 57, + HAS_NO_PET = 58, + FURY_GREATER = 59, + FURY_LESS = 60, + PAIN_GREATER = 61, + PAIN_LESS = 62, + SPELL_CHARGES_GREATER = 63, + SPELL_CHARGES_LESS = 64, + COOLDOWN_REMAINING_GREATER = 65, + COOLDOWN_REMAINING_LESS = 66, + COOLDOWN_ALLOW_CASTING_SUCCESS = 67, + PLAYER_HEALTH_PCT_GREATER = 68, + PLAYER_HEALTH_PCT_LESS = 69, +}; + #endif diff --git a/engine/dbc/generated/assisted_combat.inc b/engine/dbc/generated/assisted_combat.inc new file mode 100644 index 00000000000..fb2d0128202 --- /dev/null +++ b/engine/dbc/generated/assisted_combat.inc @@ -0,0 +1,10 @@ +// Assisted Combat Step data, wow build 11.1.5.60822 +static const std::array __assisted_combat_step_data { { + { }, +} }; + +// Assisted Combat Rule data, wow build 11.1.5.60822 +static const std::array __assisted_combat_rule_data { { + { }, +} }; + diff --git a/engine/dbc/generated/assisted_combat_ptr.inc b/engine/dbc/generated/assisted_combat_ptr.inc new file mode 100644 index 00000000000..2f06de067f5 --- /dev/null +++ b/engine/dbc/generated/assisted_combat_ptr.inc @@ -0,0 +1,3340 @@ +// Assisted Combat Step data, wow build 11.1.7.61048 +static const std::array __ptr_assisted_combat_step_data { { + { 3019, 62, 0, 382440 }, + { 6453, 62, 1, 321507 }, + { 3037, 62, 2, 44425 }, + { 3002, 62, 3, 153626 }, + { 3028, 62, 4, 153626 }, + { 3046, 62, 5, 5143 }, + { 3047, 62, 6, 5143 }, + { 2995, 62, 7, 5143 }, + { 2996, 62, 8, 44425 }, + { 2997, 62, 9, 44425 }, + { 2998, 62, 10, 44425 }, + { 2999, 62, 11, 44425 }, + { 3000, 62, 12, 1449 }, + { 3001, 62, 13, 30451 }, + { 5974, 62, 14, 44425 }, + { 3057, 63, 0, 2120 }, + { 7837, 63, 1, 11366 }, + { 3053, 63, 2, 382440 }, + { 3052, 63, 3, 153561 }, + { 7838, 63, 4, 11366 }, + { 3054, 63, 5, 11366 }, + { 7865, 63, 6, 108853 }, + { 3048, 63, 7, 108853 }, + { 7864, 63, 8, 108853 }, + { 7890, 63, 9, 108853 }, + { 3050, 63, 10, 257541 }, + { 3049, 63, 11, 2120 }, + { 3051, 63, 12, 11366 }, + { 3055, 63, 13, 2948 }, + { 3059, 63, 14, 2948 }, + { 3056, 63, 15, 133 }, + { 5987, 63, 16, 133 }, + { 1156, 64, 0, 84714 }, + { 1155, 64, 1, 190356 }, + { 1157, 64, 2, 153595 }, + { 1158, 64, 3, 382440 }, + { 1159, 64, 4, 199786 }, + { 1162, 64, 5, 157997 }, + { 1161, 64, 6, 205021 }, + { 1160, 64, 7, 44614 }, + { 5728, 64, 8, 116 }, + { 1163, 64, 9, 30455 }, + { 1164, 64, 10, 30455 }, + { 1165, 64, 11, 116 }, + { 6000, 64, 12, 116 }, + { 552, 65, 0, 26573 }, + { 553, 65, 1, 275773 }, + { 554, 65, 2, 24275 }, + { 555, 65, 3, 24275 }, + { 556, 65, 4, 24275 }, + { 559, 65, 5, 24275 }, + { 557, 65, 6, 35395 }, + { 560, 65, 7, 26573 }, + { 6048, 65, 8, 275773 }, + { 4612, 66, 0, 387174 }, + { 4613, 66, 1, 378974 }, + { 4614, 66, 2, 26573 }, + { 4616, 66, 3, 31935 }, + { 4617, 66, 4, 24275 }, + { 4618, 66, 5, 275779 }, + { 4619, 66, 6, 375576 }, + { 4620, 66, 7, 375576 }, + { 4621, 66, 8, 35395 }, + { 4622, 66, 9, 26573 }, + { 6060, 66, 10, 275779 }, + { 1551, 70, 0, 198034 }, + { 1639, 70, 1, 343527 }, + { 1640, 70, 2, 343721 }, + { 1641, 70, 3, 255937 }, + { 1646, 70, 4, 85256 }, + { 1647, 70, 5, 85256 }, + { 1648, 70, 6, 85256 }, + { 1644, 70, 7, 53385 }, + { 1642, 70, 8, 85256 }, + { 3673, 70, 9, 85256 }, + { 1643, 70, 10, 184575 }, + { 1645, 70, 11, 255937 }, + { 1649, 70, 12, 375576 }, + { 1651, 70, 13, 375576 }, + { 1650, 70, 14, 53385 }, + { 1652, 70, 15, 184575 }, + { 1654, 70, 16, 35395 }, + { 1655, 70, 17, 20271 }, + { 1656, 70, 18, 24275 }, + { 4444, 70, 19, 35395 }, + { 6081, 70, 20, 20271 }, + { 299, 71, 0, 1680 }, + { 300, 71, 1, 6343 }, + { 301, 71, 2, 772 }, + { 302, 71, 3, 260708 }, + { 303, 71, 4, 384318 }, + { 304, 71, 5, 228920 }, + { 305, 71, 6, 167105 }, + { 306, 71, 7, 376079 }, + { 2530, 71, 8, 1680 }, + { 307, 71, 9, 436358 }, + { 308, 71, 10, 227847 }, + { 310, 71, 11, 7384 }, + { 6438, 71, 12, 7384 }, + { 309, 71, 13, 12294 }, + { 311, 71, 14, 260643 }, + { 312, 71, 15, 163201 }, + { 315, 71, 16, 1464 }, + { 317, 71, 17, 57755 }, + { 6316, 71, 18, 12294 }, + { 8343, 71, 19, 1464 }, + { 318, 72, 0, 184367 }, + { 319, 72, 1, 6343 }, + { 326, 72, 2, 384318 }, + { 327, 72, 3, 228920 }, + { 328, 72, 4, 385059 }, + { 329, 72, 5, 6343 }, + { 330, 72, 6, 190411 }, + { 331, 72, 7, 376079 }, + { 332, 72, 8, 227847 }, + { 333, 72, 9, 315720 }, + { 334, 72, 10, 184367 }, + { 335, 72, 11, 5308 }, + { 338, 72, 12, 6343 }, + { 339, 72, 13, 85288 }, + { 340, 72, 14, 23881 }, + { 341, 72, 15, 6343 }, + { 342, 72, 16, 1464 }, + { 344, 72, 17, 57755 }, + { 343, 72, 18, 23881 }, + { 8323, 72, 19, 1464 }, + { 252, 73, 0, 228920 }, + { 280, 73, 1, 376079 }, + { 281, 73, 2, 436358 }, + { 2592, 73, 3, 384318 }, + { 282, 73, 4, 435222 }, + { 283, 73, 5, 23922 }, + { 292, 73, 6, 6343 }, + { 293, 73, 7, 6572 }, + { 294, 73, 8, 163201 }, + { 2629, 73, 9, 6572 }, + { 297, 73, 10, 20243 }, + { 291, 73, 11, 57755 }, + { 6365, 73, 12, 23922 }, + { 2212, 102, 0, 24858 }, + { 1234, 102, 1, 93402 }, + { 1236, 102, 2, 202347 }, + { 1238, 102, 3, 205636 }, + { 1235, 102, 4, 8921 }, + { 7487, 102, 5, 190984 }, + { 1242, 102, 6, 190984 }, + { 1246, 102, 7, 190984 }, + { 7588, 102, 8, 190984 }, + { 5615, 102, 9, 202425 }, + { 7614, 102, 10, 194153 }, + { 1241, 102, 11, 194153 }, + { 2117, 102, 12, 191034 }, + { 2118, 102, 13, 78674 }, + { 1240, 102, 14, 202770 }, + { 2703, 102, 15, 391528 }, + { 2654, 102, 16, 191034 }, + { 2773, 102, 17, 78674 }, + { 1237, 102, 18, 191034 }, + { 1239, 102, 19, 78674 }, + { 1244, 102, 20, 88747 }, + { 1243, 102, 21, 274281 }, + { 5614, 102, 22, 202425 }, + { 1247, 102, 23, 194153 }, + { 5613, 102, 24, 202425 }, + { 1248, 102, 25, 194153 }, + { 1245, 102, 26, 190984 }, + { 5853, 102, 27, 8921 }, + { 1530, 103, 0, 768 }, + { 5183, 103, 1, 5217 }, + { 6717, 103, 2, 1822 }, + { 1527, 103, 3, 285381 }, + { 2004, 103, 4, 1079 }, + { 1528, 103, 5, 22568 }, + { 1529, 103, 6, 22568 }, + { 1531, 103, 7, 391888 }, + { 1533, 103, 8, 274837 }, + { 6684, 103, 9, 391528 }, + { 1534, 103, 10, 106832 }, + { 1535, 103, 11, 1822 }, + { 1536, 103, 12, 8921 }, + { 5145, 103, 13, 202028 }, + { 1537, 103, 14, 106785 }, + { 5158, 103, 15, 106832 }, + { 1538, 103, 16, 5221 }, + { 8247, 103, 17, 8921 }, + { 5869, 103, 18, 1822 }, + { 1479, 104, 0, 5487 }, + { 1478, 104, 1, 106832 }, + { 1486, 104, 2, 204066 }, + { 6729, 104, 3, 391528 }, + { 1480, 104, 4, 8921 }, + { 1487, 104, 5, 6807 }, + { 1481, 104, 6, 33917 }, + { 1483, 104, 7, 106832 }, + { 1485, 104, 8, 8921 }, + { 1482, 104, 9, 6807 }, + { 1484, 104, 10, 213771 }, + { 8228, 104, 11, 8921 }, + { 5880, 104, 12, 106832 }, + { 561, 105, 0, 1079 }, + { 562, 105, 1, 22568 }, + { 564, 105, 2, 106830 }, + { 566, 105, 3, 106785 }, + { 568, 105, 4, 1822 }, + { 567, 105, 5, 5221 }, + { 572, 105, 6, 93402 }, + { 570, 105, 7, 8921 }, + { 575, 105, 8, 197626 }, + { 574, 105, 9, 197628 }, + { 576, 105, 10, 5176 }, + { 5892, 105, 11, 8921 }, + { 6933, 250, 0, 49028 }, + { 6934, 250, 1, 194844 }, + { 1166, 250, 2, 439843 }, + { 6935, 250, 3, 195182 }, + { 6949, 250, 4, 195182 }, + { 1167, 250, 5, 195182 }, + { 1168, 250, 6, 343294 }, + { 1170, 250, 7, 43265 }, + { 1177, 250, 8, 206930 }, + { 1176, 250, 9, 206930 }, + { 1169, 250, 10, 274156 }, + { 1171, 250, 11, 343294 }, + { 1172, 250, 12, 50842 }, + { 1173, 250, 13, 49998 }, + { 1174, 250, 14, 206931 }, + { 1175, 250, 15, 206930 }, + { 6963, 250, 16, 195292 }, + { 5741, 250, 17, 316239 }, + { 5254, 251, 0, 51271 }, + { 8940, 251, 1, 279302 }, + { 186, 251, 2, 439843 }, + { 222, 251, 3, 305392 }, + { 223, 251, 4, 207230 }, + { 224, 251, 5, 43265 }, + { 225, 251, 6, 49020 }, + { 226, 251, 7, 196770 }, + { 239, 251, 8, 49184 }, + { 240, 251, 9, 49020 }, + { 241, 251, 10, 194913 }, + { 242, 251, 11, 343294 }, + { 243, 251, 12, 49143 }, + { 244, 251, 13, 49020 }, + { 2481, 251, 14, 57330 }, + { 245, 251, 15, 49143 }, + { 246, 251, 16, 49184 }, + { 5758, 251, 17, 316239 }, + { 3653, 252, 0, 46584 }, + { 1222, 252, 1, 63560 }, + { 1220, 252, 2, 77575 }, + { 1223, 252, 3, 55090 }, + { 1224, 252, 4, 207289 }, + { 2383, 252, 5, 85948 }, + { 2384, 252, 6, 85948 }, + { 1225, 252, 7, 390279 }, + { 1226, 252, 8, 275699 }, + { 1219, 252, 9, 43265 }, + { 4041, 252, 10, 55090 }, + { 1227, 252, 11, 55090 }, + { 1228, 252, 12, 47541 }, + { 1229, 252, 13, 207317 }, + { 1232, 252, 14, 343294 }, + { 4059, 252, 15, 55090 }, + { 1233, 252, 16, 55090 }, + { 1231, 252, 17, 85948 }, + { 1230, 252, 18, 47541 }, + { 4094, 252, 19, 55090 }, + { 7418, 252, 20, 316239 }, + { 5716, 253, 0, 883 }, + { 4863, 253, 1, 120679 }, + { 4850, 253, 2, 19574 }, + { 4848, 253, 3, 217200 }, + { 4851, 253, 4, 217200 }, + { 4899, 253, 5, 2643 }, + { 4853, 253, 6, 2643 }, + { 4859, 253, 7, 53351 }, + { 4860, 253, 8, 321530 }, + { 4861, 253, 9, 120679 }, + { 4856, 253, 10, 34026 }, + { 4857, 253, 11, 217200 }, + { 4862, 253, 12, 212431 }, + { 4858, 253, 13, 193455 }, + { 5933, 253, 14, 217200 }, + { 4868, 254, 0, 260243 }, + { 4969, 254, 1, 257620 }, + { 4865, 254, 2, 257620 }, + { 4866, 254, 3, 257620 }, + { 4874, 254, 4, 53351 }, + { 4867, 254, 5, 257044 }, + { 4869, 254, 6, 212431 }, + { 7692, 254, 7, 19434 }, + { 4870, 254, 8, 19434 }, + { 4871, 254, 9, 53351 }, + { 4873, 254, 10, 2643 }, + { 4875, 254, 11, 185358 }, + { 4872, 254, 12, 56641 }, + { 5946, 254, 13, 19434 }, + { 7706, 254, 14, 56641 }, + { 5025, 255, 0, 883 }, + { 4885, 255, 1, 360966 }, + { 4876, 255, 2, 259495 }, + { 4881, 255, 3, 212431 }, + { 4879, 255, 4, 203415 }, + { 4877, 255, 5, 212436 }, + { 4878, 255, 6, 269751 }, + { 4882, 255, 7, 203415 }, + { 4880, 255, 8, 259489 }, + { 4884, 255, 9, 212431 }, + { 4883, 255, 10, 186270 }, + { 4886, 255, 11, 320976 }, + { 5059, 255, 12, 203415 }, + { 5960, 255, 13, 186270 }, + { 463, 256, 0, 585 }, + { 457, 256, 1, 589 }, + { 460, 256, 2, 8092 }, + { 459, 256, 3, 47540 }, + { 461, 256, 4, 32379 }, + { 458, 256, 5, 132157 }, + { 462, 256, 6, 585 }, + { 6089, 256, 7, 47540 }, + { 447, 257, 0, 14914 }, + { 448, 257, 1, 132157 }, + { 446, 257, 2, 88625 }, + { 450, 257, 3, 14914 }, + { 451, 257, 4, 132157 }, + { 449, 257, 5, 585 }, + { 6096, 257, 6, 585 }, + { 846, 258, 0, 232698 }, + { 844, 258, 1, 457042 }, + { 845, 258, 2, 205385 }, + { 851, 258, 3, 34914 }, + { 8725, 258, 4, 34914 }, + { 8696, 258, 5, 34914 }, + { 853, 258, 6, 589 }, + { 1065, 258, 7, 335467 }, + { 8017, 258, 8, 335467 }, + { 1798, 258, 9, 15407 }, + { 1799, 258, 10, 15407 }, + { 858, 258, 11, 15407 }, + { 859, 258, 12, 15407 }, + { 849, 258, 13, 335467 }, + { 850, 258, 14, 335467 }, + { 847, 258, 15, 120644 }, + { 8041, 258, 16, 8092 }, + { 1063, 258, 17, 8092 }, + { 1062, 258, 18, 34433 }, + { 1130, 258, 19, 228260 }, + { 1066, 258, 20, 8092 }, + { 8042, 258, 21, 8092 }, + { 8043, 258, 22, 8092 }, + { 1064, 258, 23, 263165 }, + { 1067, 258, 24, 32379 }, + { 1797, 258, 25, 120644 }, + { 1068, 258, 26, 32379 }, + { 8894, 258, 27, 335467 }, + { 1069, 258, 28, 15407 }, + { 6125, 258, 29, 8092 }, + { 3587, 259, 0, 2823 }, + { 8, 259, 1, 315496 }, + { 9, 259, 2, 703 }, + { 23, 259, 3, 121411 }, + { 21, 259, 4, 1943 }, + { 29, 259, 5, 1329 }, + { 34, 259, 6, 385627 }, + { 76, 259, 7, 5938 }, + { 6755, 259, 8, 382245 }, + { 87, 259, 9, 32645 }, + { 112, 259, 10, 8676 }, + { 114, 259, 11, 51723 }, + { 101, 259, 12, 1329 }, + { 202, 259, 13, 185565 }, + { 6161, 259, 14, 1329 }, + { 6879, 260, 0, 8676 }, + { 6880, 260, 1, 8676 }, + { 4623, 260, 2, 315508 }, + { 4624, 260, 3, 13877 }, + { 6846, 260, 4, 382245 }, + { 4625, 260, 5, 51690 }, + { 4793, 260, 6, 315341 }, + { 4797, 260, 7, 315341 }, + { 4798, 260, 8, 315341 }, + { 4802, 260, 9, 315341 }, + { 4803, 260, 10, 315341 }, + { 4816, 260, 11, 196937 }, + { 4828, 260, 12, 271877 }, + { 4817, 260, 13, 2098 }, + { 4818, 260, 14, 8676 }, + { 4819, 260, 15, 185763 }, + { 4820, 260, 16, 193315 }, + { 4821, 260, 17, 185763 }, + { 6177, 260, 18, 193315 }, + { 4829, 261, 0, 315584 }, + { 4838, 261, 1, 426591 }, + { 4830, 261, 2, 384631 }, + { 4831, 261, 3, 212283 }, + { 4845, 261, 4, 212283 }, + { 4832, 261, 5, 185313 }, + { 4833, 261, 6, 382245 }, + { 4834, 261, 7, 382245 }, + { 4835, 261, 8, 382245 }, + { 4841, 261, 9, 1943 }, + { 4836, 261, 10, 280719 }, + { 4837, 261, 11, 196819 }, + { 4840, 261, 12, 319175 }, + { 4847, 261, 13, 196819 }, + { 4839, 261, 14, 277925 }, + { 4842, 261, 15, 197835 }, + { 4843, 261, 16, 185438 }, + { 4844, 261, 17, 53 }, + { 4846, 261, 18, 114014 }, + { 6197, 261, 19, 53 }, + { 9094, 262, 0, 188443 }, + { 9095, 262, 1, 188196 }, + { 730, 262, 2, 191634 }, + { 731, 262, 3, 198067 }, + { 732, 262, 4, 192249 }, + { 734, 262, 5, 192222 }, + { 740, 262, 6, 470411 }, + { 8986, 262, 7, 51505 }, + { 735, 262, 8, 375982 }, + { 724, 262, 9, 61882 }, + { 725, 262, 10, 462620 }, + { 726, 262, 11, 61882 }, + { 727, 262, 12, 462620 }, + { 5657, 262, 13, 443454 }, + { 728, 262, 14, 117014 }, + { 729, 262, 15, 8042 }, + { 733, 262, 16, 188196 }, + { 736, 262, 17, 188443 }, + { 737, 262, 18, 188196 }, + { 738, 262, 19, 196840 }, + { 739, 262, 20, 196840 }, + { 5658, 262, 21, 443454 }, + { 743, 262, 22, 188443 }, + { 5659, 262, 23, 443454 }, + { 8117, 262, 24, 51505 }, + { 742, 262, 25, 51505 }, + { 8987, 262, 26, 51505 }, + { 744, 262, 27, 188196 }, + { 6221, 262, 28, 51505 }, + { 9217, 263, 0, 33757 }, + { 9218, 263, 1, 318038 }, + { 950, 263, 2, 444995 }, + { 952, 263, 3, 51533 }, + { 9170, 263, 4, 17364 }, + { 973, 263, 5, 188196 }, + { 9119, 263, 6, 188196 }, + { 968, 263, 7, 470411 }, + { 970, 263, 8, 60103 }, + { 967, 263, 9, 375982 }, + { 9120, 263, 10, 375982 }, + { 971, 263, 11, 375982 }, + { 972, 263, 12, 384352 }, + { 975, 263, 13, 188443 }, + { 9121, 263, 14, 188443 }, + { 976, 263, 15, 117014 }, + { 9122, 263, 16, 117014 }, + { 977, 263, 17, 188196 }, + { 9123, 263, 18, 188196 }, + { 974, 263, 19, 197214 }, + { 978, 263, 20, 333974 }, + { 979, 263, 21, 187874 }, + { 980, 263, 22, 470194 }, + { 981, 263, 23, 196840 }, + { 982, 263, 24, 196840 }, + { 983, 263, 25, 60103 }, + { 984, 263, 26, 17364 }, + { 985, 263, 27, 60103 }, + { 986, 263, 28, 470411 }, + { 987, 263, 29, 196840 }, + { 6244, 263, 30, 17364 }, + { 247, 264, 0, 188443 }, + { 248, 264, 1, 470411 }, + { 8123, 264, 2, 51505 }, + { 250, 264, 3, 51505 }, + { 251, 264, 4, 188196 }, + { 6249, 264, 5, 51505 }, + { 696, 265, 0, 278350 }, + { 3455, 265, 1, 980 }, + { 697, 265, 2, 27243 }, + { 699, 265, 3, 27243 }, + { 701, 265, 4, 172 }, + { 703, 265, 5, 172 }, + { 712, 265, 6, 980 }, + { 708, 265, 7, 316099 }, + { 707, 265, 8, 316099 }, + { 711, 265, 9, 324536 }, + { 714, 265, 10, 205179 }, + { 716, 265, 11, 386997 }, + { 717, 265, 12, 48181 }, + { 6636, 265, 13, 442726 }, + { 718, 265, 14, 417537 }, + { 719, 265, 15, 324536 }, + { 8568, 265, 16, 324536 }, + { 722, 265, 17, 324536 }, + { 723, 265, 18, 686 }, + { 6267, 265, 19, 686 }, + { 4014, 266, 0, 30146 }, + { 4017, 266, 1, 264119 }, + { 4018, 266, 2, 104316 }, + { 4021, 266, 3, 267211 }, + { 4016, 266, 4, 111898 }, + { 4019, 266, 5, 386833 }, + { 4147, 266, 6, 105174 }, + { 4020, 266, 7, 267171 }, + { 4156, 266, 8, 686 }, + { 4151, 266, 9, 264178 }, + { 4152, 266, 10, 264130 }, + { 4153, 266, 11, 686 }, + { 6282, 266, 12, 104316 }, + { 829, 267, 0, 152108 }, + { 835, 267, 1, 348 }, + { 833, 267, 2, 445468 }, + { 8535, 267, 3, 686 }, + { 8466, 267, 4, 442726 }, + { 830, 267, 5, 5740 }, + { 831, 267, 6, 1214467 }, + { 838, 267, 7, 17877 }, + { 840, 267, 8, 17962 }, + { 8426, 267, 9, 116858 }, + { 832, 267, 10, 116858 }, + { 8425, 267, 11, 116858 }, + { 3520, 267, 12, 6353 }, + { 839, 267, 13, 387976 }, + { 8424, 267, 14, 686 }, + { 842, 267, 15, 17962 }, + { 843, 267, 16, 686 }, + { 6297, 267, 17, 686 }, + { 4626, 268, 0, 322109 }, + { 4627, 268, 1, 205523 }, + { 4629, 268, 2, 121253 }, + { 4628, 268, 3, 123986 }, + { 4630, 268, 4, 115181 }, + { 4631, 268, 5, 325153 }, + { 4632, 268, 6, 107428 }, + { 4633, 268, 7, 116847 }, + { 4636, 268, 8, 100780 }, + { 4634, 268, 9, 322729 }, + { 4635, 268, 10, 100780 }, + { 6012, 268, 11, 107428 }, + { 4667, 269, 0, 137639 }, + { 4639, 269, 1, 392983 }, + { 4640, 269, 2, 101546 }, + { 4756, 269, 3, 100780 }, + { 4641, 269, 4, 117952 }, + { 4644, 269, 5, 152175 }, + { 4642, 269, 6, 113656 }, + { 4643, 269, 7, 107428 }, + { 4645, 269, 8, 100784 }, + { 4648, 269, 9, 461404 }, + { 4647, 269, 10, 101546 }, + { 4689, 269, 11, 388193 }, + { 4677, 269, 12, 100784 }, + { 4678, 269, 13, 100780 }, + { 4679, 269, 14, 117952 }, + { 6039, 269, 15, 107428 }, + { 474, 270, 0, 117952 }, + { 468, 270, 1, 388193 }, + { 4174, 270, 2, 388193 }, + { 469, 270, 3, 107428 }, + { 4370, 270, 4, 467307 }, + { 471, 270, 5, 100784 }, + { 4175, 270, 6, 101546 }, + { 470, 270, 7, 101546 }, + { 472, 270, 8, 100780 }, + { 473, 270, 9, 117952 }, + { 6023, 270, 10, 107428 }, + { 5087, 577, 0, 188499 }, + { 5088, 577, 1, 162794 }, + { 5089, 577, 2, 185123 }, + { 5100, 577, 3, 204596 }, + { 5090, 577, 4, 258920 }, + { 5091, 577, 5, 258860 }, + { 5092, 577, 6, 188499 }, + { 5093, 577, 7, 390163 }, + { 5094, 577, 8, 198013 }, + { 5095, 577, 9, 188499 }, + { 5096, 577, 10, 162794 }, + { 5097, 577, 11, 204596 }, + { 5098, 577, 12, 162794 }, + { 5099, 577, 13, 185123 }, + { 8603, 577, 14, 162243 }, + { 5813, 577, 15, 162794 }, + { 5071, 581, 0, 204157 }, + { 5072, 581, 1, 263642 }, + { 5073, 581, 2, 228477 }, + { 5074, 581, 3, 207407 }, + { 5075, 581, 4, 390163 }, + { 5076, 581, 5, 204596 }, + { 5086, 581, 6, 204596 }, + { 5085, 581, 7, 204596 }, + { 5077, 581, 8, 212084 }, + { 5078, 581, 9, 258920 }, + { 5080, 581, 10, 247454 }, + { 5081, 581, 11, 263642 }, + { 5082, 581, 12, 228477 }, + { 5084, 581, 13, 204157 }, + { 5828, 581, 14, 228477 }, + { 1424, 1467, 0, 357208 }, + { 5568, 1467, 1, 361469 }, + { 5569, 1467, 2, 357211 }, + { 5570, 1467, 3, 356995 }, + { 2961, 1467, 4, 443328 }, + { 1429, 1467, 5, 370452 }, + { 1425, 1467, 6, 359073 }, + { 1426, 1467, 7, 356995 }, + { 1427, 1467, 8, 357211 }, + { 1428, 1467, 9, 361469 }, + { 2942, 1467, 10, 368847 }, + { 1430, 1467, 11, 361469 }, + { 1431, 1467, 12, 356995 }, + { 1432, 1467, 13, 361469 }, + { 5915, 1467, 14, 361469 }, + { 466, 1468, 0, 357208 }, + { 467, 1468, 1, 361469 }, + { 5918, 1468, 2, 357208 }, + { 1418, 1473, 0, 409311 }, + { 1417, 1473, 1, 395152 }, + { 1419, 1473, 2, 357208 }, + { 1420, 1473, 3, 396286 }, + { 7652, 1473, 4, 395160 }, + { 7635, 1473, 5, 395160 }, + { 1421, 1473, 6, 395160 }, + { 1422, 1473, 7, 360827 }, + { 1423, 1473, 8, 361469 }, + { 5900, 1473, 9, 361469 }, +} }; + +// Assisted Combat Rule data, wow build 11.1.7.61048 +static const std::array __ptr_assisted_combat_rule_data { { + { 28, 8, 0, 16, 315496, 0, 0 }, + { 14, 8, 1, 27, 1, 0, 0 }, + { 1475, 8, 2, 0, 0, 0, 0 }, + { 1476, 8, 3, 14, 0, 0, 0 }, + { 1477, 8, 4, 2, 0, 0, 0 }, + { 32, 9, 0, 15, 703, 0, 0 }, + { 1480, 9, 1, 0, 0, 0, 0 }, + { 1481, 9, 2, 14, 0, 0, 0 }, + { 1482, 9, 3, 2, 0, 0, 0 }, + { 19002, 9, 4, 56, 0, 0, 0 }, + { 98, 21, 0, 15, 1943, 0, 0 }, + { 99, 21, 1, 27, 5, 0, 0 }, + { 1491, 21, 2, 0, 0, 0, 0 }, + { 1492, 21, 3, 14, 0, 0, 0 }, + { 1493, 21, 4, 2, 0, 0, 0 }, + { 19008, 21, 5, 56, 0, 0, 0 }, + { 107, 23, 0, 3, 10, 0, 0 }, + { 108, 23, 1, 15, 121411, 0, 0 }, + { 109, 23, 2, 27, 5, 0, 0 }, + { 834, 23, 3, 12, 3, 10, 0 }, + { 1504, 23, 4, 0, 0, 0, 0 }, + { 1505, 23, 5, 14, 0, 0, 0 }, + { 1506, 23, 6, 2, 0, 0, 0 }, + { 133, 29, 0, 9, 421975, 0, 0 }, + { 135, 29, 1, 12, 3, 10, 0 }, + { 134, 29, 2, 15, 421976, 0, 0 }, + { 1518, 29, 3, 0, 0, 0, 0 }, + { 1519, 29, 4, 14, 0, 0, 0 }, + { 1520, 29, 5, 2, 0, 0, 0 }, + { 2646, 29, 6, 10, 1943, 0, 0 }, + { 2647, 29, 7, 10, 2818, 0, 0 }, + { 19024, 29, 8, 56, 0, 0, 0 }, + { 1522, 34, 0, 0, 0, 0, 0 }, + { 1523, 34, 1, 14, 0, 0, 0 }, + { 1524, 34, 2, 2, 0, 0, 0 }, + { 19028, 34, 3, 56, 0, 0, 0 }, + { 318, 76, 0, 15, 319504, 0, 0 }, + { 1527, 76, 1, 0, 0, 0, 0 }, + { 1528, 76, 2, 14, 0, 0, 0 }, + { 1529, 76, 3, 2, 0, 0, 0 }, + { 19033, 76, 4, 56, 0, 0, 0 }, + { 363, 87, 0, 27, 5, 0, 0 }, + { 1532, 87, 1, 0, 0, 0, 0 }, + { 1533, 87, 2, 14, 0, 0, 0 }, + { 1534, 87, 3, 2, 0, 0, 0 }, + { 19038, 87, 4, 56, 0, 0, 0 }, + { 14666, 101, 0, 0, 0, 0, 0 }, + { 14667, 101, 1, 14, 0, 0, 0 }, + { 14668, 101, 2, 2, 0, 0, 0 }, + { 19042, 101, 3, 56, 0, 0, 0 }, + { 408, 112, 0, 9, 121153, 0, 0 }, + { 1537, 112, 1, 0, 0, 0, 0 }, + { 1538, 112, 2, 14, 0, 0, 0 }, + { 1539, 112, 3, 2, 0, 0, 0 }, + { 19047, 112, 4, 56, 0, 0, 0 }, + { 413, 114, 0, 12, 3, 10, 0 }, + { 1541, 114, 1, 0, 0, 0, 0 }, + { 1542, 114, 2, 14, 0, 0, 0 }, + { 1543, 114, 3, 2, 0, 0, 0 }, + { 739, 186, 0, 56, 0, 0, 0 }, + { 1318, 186, 1, 0, 0, 0, 0 }, + { 1319, 186, 2, 14, 0, 0, 0 }, + { 1320, 186, 3, 2, 0, 0, 0 }, + { 1545, 202, 0, 0, 0, 0, 0 }, + { 1546, 202, 1, 14, 0, 0, 0 }, + { 1547, 202, 2, 2, 0, 0, 0 }, + { 19055, 202, 3, 56, 0, 0, 0 }, + { 28550, 202, 4, 16, 1784, 0, 0 }, + { 28551, 202, 5, 16, 11327, 0, 0 }, + { 28621, 202, 6, 25, 70, 0, 0 }, + { 28696, 202, 7, 4, 10, 0, 0 }, + { 1322, 222, 0, 0, 0, 0, 0 }, + { 1323, 222, 1, 14, 0, 0, 0 }, + { 1324, 222, 2, 2, 0, 0, 0 }, + { 1326, 223, 0, 0, 0, 0, 0 }, + { 1327, 223, 1, 14, 0, 0, 0 }, + { 1328, 223, 2, 2, 0, 0, 0 }, + { 17798, 223, 3, 3, 8, 0, 0 }, + { 876, 224, 0, 3, 10, 0, 0 }, + { 877, 224, 1, 12, 3, 10, 0 }, + { 878, 224, 2, 16, 188290, 0, 0 }, + { 1332, 224, 3, 0, 0, 0, 0 }, + { 1333, 224, 4, 14, 0, 0, 0 }, + { 1334, 224, 5, 2, 0, 0, 0 }, + { 881, 225, 0, 9, 51124, 0, 0 }, + { 1337, 225, 1, 0, 0, 0, 0 }, + { 1338, 225, 2, 14, 0, 0, 0 }, + { 1339, 225, 3, 2, 0, 0, 0 }, + { 17943, 225, 4, 56, 0, 0, 0 }, + { 885, 226, 0, 3, 10, 0, 0 }, + { 1341, 226, 1, 0, 0, 0, 0 }, + { 1342, 226, 2, 14, 0, 0, 0 }, + { 1343, 226, 3, 2, 0, 0, 0 }, + { 966, 239, 0, 9, 59052, 0, 0 }, + { 1435, 239, 1, 0, 0, 0, 0 }, + { 1436, 239, 2, 14, 0, 0, 0 }, + { 1437, 239, 3, 2, 0, 0, 0 }, + { 970, 240, 0, 12, 3, 10, 0 }, + { 1440, 240, 1, 0, 0, 0, 0 }, + { 1441, 240, 2, 14, 0, 0, 0 }, + { 1442, 240, 3, 2, 0, 0, 0 }, + { 17956, 240, 4, 56, 0, 0, 0 }, + { 973, 241, 0, 3, 10, 0, 0 }, + { 974, 241, 1, 12, 3, 10, 0 }, + { 975, 241, 2, 16, 152279, 0, 0 }, + { 1446, 241, 3, 0, 0, 0, 0 }, + { 1447, 241, 4, 14, 0, 0, 0 }, + { 1448, 241, 5, 2, 0, 0, 0 }, + { 1450, 242, 0, 0, 0, 0, 0 }, + { 1451, 242, 1, 14, 0, 0, 0 }, + { 1452, 242, 2, 2, 0, 0, 0 }, + { 8091, 242, 3, 8, 35, 0, 0 }, + { 17967, 242, 4, 56, 0, 0, 0 }, + { 982, 243, 0, 16, 152279, 0, 0 }, + { 983, 243, 1, 31, 80, 0, 0 }, + { 1456, 243, 2, 0, 0, 0, 0 }, + { 1457, 243, 3, 14, 0, 0, 0 }, + { 1458, 243, 4, 2, 0, 0, 0 }, + { 17973, 243, 5, 56, 0, 0, 0 }, + { 1460, 244, 0, 0, 0, 0, 0 }, + { 1461, 244, 1, 14, 0, 0, 0 }, + { 1462, 244, 2, 2, 0, 0, 0 }, + { 17977, 244, 3, 56, 0, 0, 0 }, + { 990, 245, 0, 16, 152279, 0, 0 }, + { 1465, 245, 1, 0, 0, 0, 0 }, + { 1466, 245, 2, 14, 0, 0, 0 }, + { 1467, 245, 3, 2, 0, 0, 0 }, + { 17982, 245, 4, 56, 0, 0, 0 }, + { 8107, 246, 0, 0, 0, 0, 0 }, + { 8109, 246, 1, 2, 0, 0, 0 }, + { 30497, 246, 2, 56, 0, 0, 0 }, + { 30570, 246, 3, 4, 8, 0, 0 }, + { 992, 247, 0, 11, 3, 10, 0 }, + { 1549, 247, 1, 0, 0, 0, 0 }, + { 1550, 247, 2, 14, 0, 0, 0 }, + { 1551, 247, 3, 2, 0, 0, 0 }, + { 34477, 247, 4, 67, 0, 0, 0 }, + { 996, 248, 0, 15, 188389, 0, 0 }, + { 1553, 248, 1, 0, 0, 0, 0 }, + { 1554, 248, 2, 14, 0, 0, 0 }, + { 1555, 248, 3, 2, 0, 0, 0 }, + { 1560, 250, 0, 0, 0, 0, 0 }, + { 1561, 250, 1, 14, 0, 0, 0 }, + { 1562, 250, 2, 2, 0, 0, 0 }, + { 6640, 251, 0, 0, 0, 0, 0 }, + { 6641, 251, 1, 14, 0, 0, 0 }, + { 6642, 251, 2, 2, 0, 0, 0 }, + { 34488, 251, 3, 67, 0, 0, 0 }, + { 1563, 252, 0, 0, 0, 0, 0 }, + { 1564, 252, 1, 14, 0, 0, 0 }, + { 1565, 252, 2, 2, 0, 0, 0 }, + { 1142, 280, 0, 3, 25, 0, 0 }, + { 1567, 280, 1, 0, 0, 0, 0 }, + { 1568, 280, 2, 14, 0, 0, 0 }, + { 1569, 280, 3, 2, 0, 0, 0 }, + { 1571, 281, 0, 0, 0, 0, 0 }, + { 1572, 281, 1, 14, 0, 0, 0 }, + { 1573, 281, 2, 2, 0, 0, 0 }, + { 19429, 281, 3, 56, 0, 0, 0 }, + { 1138, 282, 0, 9, 435615, 0, 0 }, + { 1144, 282, 1, 3, 8, 0, 0 }, + { 1576, 282, 2, 0, 0, 0, 0 }, + { 1577, 282, 3, 14, 0, 0, 0 }, + { 1578, 282, 4, 2, 0, 0, 0 }, + { 1580, 283, 0, 0, 0, 0, 0 }, + { 1581, 283, 1, 14, 0, 0, 0 }, + { 1582, 283, 2, 2, 0, 0, 0 }, + { 19438, 283, 3, 56, 0, 0, 0 }, + { 6555, 291, 0, 0, 0, 0, 0 }, + { 6556, 291, 1, 14, 0, 0, 0 }, + { 6557, 291, 2, 2, 0, 0, 0 }, + { 19442, 291, 3, 56, 0, 0, 0 }, + { 35661, 291, 4, 4, 10, 0, 0 }, + { 1148, 292, 0, 3, 8, 0, 0 }, + { 1584, 292, 1, 0, 0, 0, 0 }, + { 1585, 292, 2, 14, 0, 0, 0 }, + { 1586, 292, 3, 2, 0, 0, 0 }, + { 1151, 293, 0, 3, 5, 0, 0 }, + { 1152, 293, 1, 12, 3, 10, 0 }, + { 1589, 293, 2, 0, 0, 0, 0 }, + { 1590, 293, 3, 14, 0, 0, 0 }, + { 1591, 293, 4, 2, 0, 0, 0 }, + { 1594, 294, 0, 0, 0, 0, 0 }, + { 1595, 294, 1, 14, 0, 0, 0 }, + { 1596, 294, 2, 2, 0, 0, 0 }, + { 19455, 294, 3, 56, 0, 0, 0 }, + { 1170, 297, 0, 16, 236279, 0, 0 }, + { 1610, 297, 1, 0, 0, 0, 0 }, + { 1611, 297, 2, 14, 0, 0, 0 }, + { 1612, 297, 3, 2, 0, 0, 0 }, + { 19460, 297, 4, 56, 0, 0, 0 }, + { 1175, 299, 0, 12, 3, 10, 0 }, + { 1176, 299, 1, 9, 383316, 0, 0 }, + { 1177, 299, 2, 9, 260708, 0, 0 }, + { 1618, 299, 3, 0, 0, 0, 0 }, + { 1619, 299, 4, 14, 0, 0, 0 }, + { 1620, 299, 5, 2, 0, 0, 0 }, + { 1180, 300, 0, 15, 388539, 0, 0 }, + { 1181, 300, 1, 12, 3, 10, 0 }, + { 1623, 300, 2, 0, 0, 0, 0 }, + { 1624, 300, 3, 14, 0, 0, 0 }, + { 1625, 300, 4, 2, 0, 0, 0 }, + { 1628, 301, 0, 0, 0, 0, 0 }, + { 1629, 301, 1, 14, 0, 0, 0 }, + { 1630, 301, 2, 2, 0, 0, 0 }, + { 2518, 301, 3, 15, 388539, 0, 0 }, + { 19167, 301, 4, 56, 0, 0, 0 }, + { 1187, 302, 0, 12, 2, 10, 0 }, + { 1632, 302, 1, 0, 0, 0, 0 }, + { 1633, 302, 2, 14, 0, 0, 0 }, + { 1634, 302, 3, 2, 0, 0, 0 }, + { 1193, 303, 0, 3, 10, 0, 0 }, + { 1636, 303, 1, 0, 0, 0, 0 }, + { 1637, 303, 2, 14, 0, 0, 0 }, + { 1638, 303, 3, 2, 0, 0, 0 }, + { 2527, 303, 4, 10, 388539, 0, 0 }, + { 1639, 304, 0, 0, 0, 0, 0 }, + { 1640, 304, 1, 14, 0, 0, 0 }, + { 1641, 304, 2, 2, 0, 0, 0 }, + { 1196, 305, 0, 3, 5, 0, 0 }, + { 1643, 305, 1, 0, 0, 0, 0 }, + { 1644, 305, 2, 14, 0, 0, 0 }, + { 1645, 305, 3, 2, 0, 0, 0 }, + { 1199, 306, 0, 3, 25, 0, 0 }, + { 1647, 306, 1, 0, 0, 0, 0 }, + { 1648, 306, 2, 14, 0, 0, 0 }, + { 1649, 306, 3, 2, 0, 0, 0 }, + { 1651, 307, 0, 0, 0, 0, 0 }, + { 1652, 307, 1, 14, 0, 0, 0 }, + { 1653, 307, 2, 2, 0, 0, 0 }, + { 19191, 307, 3, 56, 0, 0, 0 }, + { 1205, 308, 0, 3, 10, 0, 0 }, + { 1655, 308, 1, 0, 0, 0, 0 }, + { 1656, 308, 2, 14, 0, 0, 0 }, + { 1657, 308, 3, 2, 0, 0, 0 }, + { 1659, 309, 0, 0, 0, 0, 0 }, + { 1660, 309, 1, 14, 0, 0, 0 }, + { 1661, 309, 2, 2, 0, 0, 0 }, + { 19199, 309, 3, 56, 0, 0, 0 }, + { 1663, 310, 0, 0, 0, 0, 0 }, + { 1664, 310, 1, 14, 0, 0, 0 }, + { 1665, 310, 2, 2, 0, 0, 0 }, + { 19203, 310, 3, 56, 0, 0, 0 }, + { 27230, 310, 4, 16, 7384, 0, 0 }, + { 1667, 311, 0, 0, 0, 0, 0 }, + { 1668, 311, 1, 14, 0, 0, 0 }, + { 1669, 311, 2, 2, 0, 0, 0 }, + { 19207, 311, 3, 56, 0, 0, 0 }, + { 1672, 312, 0, 0, 0, 0, 0 }, + { 1673, 312, 1, 14, 0, 0, 0 }, + { 1674, 312, 2, 2, 0, 0, 0 }, + { 19211, 312, 3, 56, 0, 0, 0 }, + { 1231, 315, 0, 21, 50, 0, 0 }, + { 1688, 315, 1, 0, 0, 0, 0 }, + { 1689, 315, 2, 14, 0, 0, 0 }, + { 1690, 315, 3, 2, 0, 0, 0 }, + { 19216, 315, 4, 56, 0, 0, 0 }, + { 1693, 317, 0, 0, 0, 0, 0 }, + { 16559, 317, 1, 14, 0, 0, 0 }, + { 16560, 317, 2, 2, 0, 0, 0 }, + { 19222, 317, 3, 56, 0, 0, 0 }, + { 35539, 317, 4, 4, 10, 0, 0 }, + { 1237, 318, 0, 16, 184362, 0, 0 }, + { 1696, 318, 1, 0, 0, 0, 0 }, + { 1697, 318, 2, 14, 0, 0, 0 }, + { 1698, 318, 3, 2, 0, 0, 0 }, + { 19335, 318, 4, 56, 0, 0, 0 }, + { 1240, 319, 0, 9, 435615, 0, 0 }, + { 1242, 319, 1, 3, 5, 0, 0 }, + { 1243, 319, 2, 9, 184362, 0, 0 }, + { 1702, 319, 3, 0, 0, 0, 0 }, + { 1703, 319, 4, 14, 0, 0, 0 }, + { 1704, 319, 5, 2, 0, 0, 0 }, + { 1246, 326, 0, 3, 5, 0, 0 }, + { 1247, 326, 1, 9, 184362, 0, 0 }, + { 1707, 326, 2, 0, 0, 0, 0 }, + { 1708, 326, 3, 14, 0, 0, 0 }, + { 1709, 326, 4, 2, 0, 0, 0 }, + { 1710, 327, 0, 0, 0, 0, 0 }, + { 1711, 327, 1, 14, 0, 0, 0 }, + { 1712, 327, 2, 2, 0, 0, 0 }, + { 1252, 328, 0, 3, 12, 0, 0 }, + { 1714, 328, 1, 0, 0, 0, 0 }, + { 1715, 328, 2, 14, 0, 0, 0 }, + { 1716, 328, 3, 2, 0, 0, 0 }, + { 1255, 329, 0, 3, 5, 0, 0 }, + { 1256, 329, 1, 9, 434969, 0, 0 }, + { 1257, 329, 2, 0, 12950, 0, 0 }, + { 1258, 329, 3, 16, 85739, 0, 0 }, + { 1721, 329, 4, 0, 0, 0, 0 }, + { 1722, 329, 5, 14, 0, 0, 0 }, + { 1723, 329, 6, 2, 0, 0, 0 }, + { 1261, 330, 0, 3, 10, 0, 0 }, + { 1262, 330, 1, 16, 434969, 0, 0 }, + { 1263, 330, 2, 0, 12950, 0, 0 }, + { 1264, 330, 3, 16, 85739, 0, 0 }, + { 1268, 330, 4, 12, 3, 0, 0 }, + { 1729, 330, 5, 0, 0, 0, 0 }, + { 1730, 330, 6, 14, 0, 0, 0 }, + { 1731, 330, 7, 2, 0, 0, 0 }, + { 1267, 331, 0, 3, 25, 0, 0 }, + { 1733, 331, 1, 0, 0, 0, 0 }, + { 1734, 331, 2, 14, 0, 0, 0 }, + { 1735, 331, 3, 2, 0, 0, 0 }, + { 1271, 332, 0, 3, 10, 0, 0 }, + { 1272, 332, 1, 9, 184362, 0, 0 }, + { 1738, 332, 2, 0, 0, 0, 0 }, + { 1739, 332, 3, 14, 0, 0, 0 }, + { 1740, 332, 4, 2, 0, 0, 0 }, + { 1742, 333, 0, 0, 0, 0, 0 }, + { 1743, 333, 1, 14, 0, 0, 0 }, + { 1744, 333, 2, 2, 0, 0, 0 }, + { 19381, 333, 3, 56, 0, 0, 0 }, + { 1746, 334, 0, 0, 0, 0, 0 }, + { 1747, 334, 1, 14, 0, 0, 0 }, + { 1748, 334, 2, 2, 0, 0, 0 }, + { 19385, 334, 3, 56, 0, 0, 0 }, + { 1751, 335, 0, 0, 0, 0, 0 }, + { 1752, 335, 1, 14, 0, 0, 0 }, + { 1753, 335, 2, 2, 0, 0, 0 }, + { 19389, 335, 3, 56, 0, 0, 0 }, + { 1294, 338, 0, 3, 5, 0, 0 }, + { 1295, 338, 1, 9, 434969, 0, 0 }, + { 1296, 338, 2, 12, 3, 0, 0 }, + { 1768, 338, 3, 0, 0, 0, 0 }, + { 1769, 338, 4, 14, 0, 0, 0 }, + { 1770, 338, 5, 2, 0, 0, 0 }, + { 1772, 339, 0, 0, 0, 0, 0 }, + { 1773, 339, 1, 14, 0, 0, 0 }, + { 1774, 339, 2, 2, 0, 0, 0 }, + { 19399, 339, 3, 56, 0, 0, 0 }, + { 1776, 340, 0, 0, 0, 0, 0 }, + { 1777, 340, 1, 14, 0, 0, 0 }, + { 1778, 340, 2, 2, 0, 0, 0 }, + { 19403, 340, 3, 56, 0, 0, 0 }, + { 1305, 341, 0, 3, 5, 0, 0 }, + { 1306, 341, 1, 9, 434969, 0, 0 }, + { 1781, 341, 2, 0, 0, 0, 0 }, + { 1782, 341, 3, 14, 0, 0, 0 }, + { 1783, 341, 4, 2, 0, 0, 0 }, + { 1785, 342, 0, 0, 0, 0, 0 }, + { 1786, 342, 1, 14, 0, 0, 0 }, + { 1787, 342, 2, 2, 0, 0, 0 }, + { 19412, 342, 3, 56, 0, 0, 0 }, + { 1790, 344, 0, 0, 0, 0, 0 }, + { 16661, 344, 1, 14, 0, 0, 0 }, + { 16662, 344, 2, 2, 0, 0, 0 }, + { 19418, 344, 3, 56, 0, 0, 0 }, + { 35636, 344, 4, 4, 10, 0, 0 }, + { 1791, 446, 0, 0, 0, 0, 0 }, + { 1792, 446, 1, 14, 0, 0, 0 }, + { 1793, 446, 2, 2, 0, 0, 0 }, + { 1794, 447, 0, 0, 0, 0, 0 }, + { 1795, 447, 1, 14, 0, 0, 0 }, + { 1796, 447, 2, 2, 0, 0, 0 }, + { 1797, 447, 3, 9, 372307, 0, 0 }, + { 1798, 448, 0, 0, 0, 0, 0 }, + { 1799, 448, 1, 14, 0, 0, 0 }, + { 1800, 448, 2, 2, 0, 0, 0 }, + { 1801, 448, 3, 16, 372307, 0, 0 }, + { 1802, 448, 4, 12, 5, 10, 0 }, + { 1803, 449, 0, 0, 0, 0, 0 }, + { 1804, 449, 1, 14, 0, 0, 0 }, + { 1805, 449, 2, 2, 0, 0, 0 }, + { 33977, 449, 3, 67, 0, 0, 0 }, + { 1806, 450, 0, 0, 0, 0, 0 }, + { 1807, 450, 1, 14, 0, 0, 0 }, + { 1808, 450, 2, 2, 0, 0, 0 }, + { 1809, 451, 0, 0, 0, 0, 0 }, + { 1810, 451, 1, 14, 0, 0, 0 }, + { 1811, 451, 2, 2, 0, 0, 0 }, + { 1812, 451, 3, 12, 5, 10, 0 }, + { 1819, 457, 0, 0, 0, 0, 0 }, + { 1820, 457, 1, 14, 0, 0, 0 }, + { 1821, 457, 2, 2, 0, 0, 0 }, + { 1822, 457, 3, 15, 589, 0, 0 }, + { 1823, 458, 0, 0, 0, 0, 0 }, + { 1824, 458, 1, 14, 0, 0, 0 }, + { 1825, 458, 2, 2, 0, 0, 0 }, + { 1826, 458, 3, 12, 12, 0, 0 }, + { 1827, 459, 0, 0, 0, 0, 0 }, + { 1828, 459, 1, 14, 0, 0, 0 }, + { 1829, 459, 2, 2, 0, 0, 0 }, + { 1830, 460, 0, 0, 0, 0, 0 }, + { 1831, 460, 1, 14, 0, 0, 0 }, + { 1832, 460, 2, 2, 0, 0, 0 }, + { 1833, 461, 0, 0, 0, 0, 0 }, + { 1834, 461, 1, 14, 0, 0, 0 }, + { 1835, 461, 2, 2, 0, 0, 0 }, + { 1836, 461, 3, 8, 20, 0, 0 }, + { 1837, 462, 0, 0, 0, 0, 0 }, + { 1838, 462, 1, 14, 0, 0, 0 }, + { 1839, 462, 2, 2, 0, 0, 0 }, + { 33931, 462, 3, 67, 0, 0, 0 }, + { 1841, 463, 0, 0, 0, 0, 0 }, + { 1842, 463, 1, 14, 0, 0, 0 }, + { 1843, 463, 2, 2, 0, 0, 0 }, + { 1844, 463, 3, 9, 450404, 0, 0 }, + { 33936, 463, 4, 67, 0, 0, 0 }, + { 1845, 466, 0, 0, 0, 0, 0 }, + { 1846, 466, 1, 14, 0, 0, 0 }, + { 1847, 466, 2, 2, 0, 0, 0 }, + { 32653, 466, 3, 67, 0, 0, 0 }, + { 1848, 467, 0, 0, 0, 0, 0 }, + { 1849, 467, 1, 14, 0, 0, 0 }, + { 1850, 467, 2, 2, 0, 0, 0 }, + { 1851, 467, 3, 5, 0, 0, 0 }, + { 32658, 467, 4, 67, 0, 0, 0 }, + { 1852, 468, 0, 0, 0, 0, 0 }, + { 1853, 468, 1, 14, 0, 0, 0 }, + { 1854, 468, 2, 2, 0, 0, 0 }, + { 1855, 468, 3, 3, 10, 0, 0 }, + { 17425, 468, 4, 16, 388026, 0, 0 }, + { 17426, 468, 5, 9, 467293, 0, 0 }, + { 1856, 469, 0, 0, 0, 0, 0 }, + { 1857, 469, 1, 14, 0, 0, 0 }, + { 1858, 469, 2, 2, 0, 0, 0 }, + { 1859, 469, 3, 56, 0, 0, 0 }, + { 1860, 470, 0, 0, 0, 0, 0 }, + { 1861, 470, 1, 14, 0, 0, 0 }, + { 1862, 470, 2, 2, 0, 0, 0 }, + { 1863, 470, 3, 12, 4, 10, 0 }, + { 1864, 470, 4, 3, 10, 0, 0 }, + { 33755, 470, 5, 67, 0, 0, 0 }, + { 1865, 471, 0, 0, 0, 0, 0 }, + { 1866, 471, 1, 14, 0, 0, 0 }, + { 1867, 471, 2, 2, 0, 0, 0 }, + { 17534, 471, 3, 54, 202090, 4, 0 }, + { 17588, 471, 4, 56, 0, 0, 0 }, + { 1869, 472, 0, 0, 0, 0, 0 }, + { 1870, 472, 1, 14, 0, 0, 0 }, + { 1871, 472, 2, 2, 0, 0, 0 }, + { 17565, 472, 3, 56, 0, 0, 0 }, + { 6664, 473, 0, 0, 0, 0, 0 }, + { 6665, 473, 1, 14, 0, 0, 0 }, + { 6666, 473, 2, 2, 0, 0, 0 }, + { 33768, 473, 3, 4, 10, 0, 0 }, + { 33818, 473, 4, 67, 0, 0, 0 }, + { 1874, 474, 0, 0, 0, 0, 0 }, + { 1875, 474, 1, 14, 0, 0, 0 }, + { 1876, 474, 2, 2, 0, 0, 0 }, + { 17450, 474, 3, 9, 467317, 0, 0 }, + { 2197, 552, 0, 0, 0, 0, 0 }, + { 2198, 552, 1, 14, 0, 0, 0 }, + { 2199, 552, 2, 2, 0, 0, 0 }, + { 2200, 552, 3, 12, 8, 10, 0 }, + { 2201, 553, 0, 0, 0, 0, 0 }, + { 2202, 553, 1, 14, 0, 0, 0 }, + { 2203, 553, 2, 2, 0, 0, 0 }, + { 2204, 554, 0, 9, 392939, 0, 0 }, + { 2205, 554, 1, 0, 0, 0, 0 }, + { 2206, 554, 2, 14, 0, 0, 0 }, + { 2207, 554, 3, 2, 0, 0, 0 }, + { 2208, 555, 0, 0, 0, 0, 0 }, + { 2209, 555, 1, 14, 0, 0, 0 }, + { 2210, 555, 2, 2, 0, 0, 0 }, + { 2211, 555, 3, 9, 31884, 0, 0 }, + { 2212, 556, 0, 0, 0, 0, 0 }, + { 2213, 556, 1, 14, 0, 0, 0 }, + { 2214, 556, 2, 2, 0, 0, 0 }, + { 2215, 556, 3, 9, 216331, 0, 0 }, + { 2216, 557, 0, 0, 0, 0, 0 }, + { 2217, 557, 1, 14, 0, 0, 0 }, + { 2218, 557, 2, 2, 0, 0, 0 }, + { 18522, 557, 3, 56, 0, 0, 0 }, + { 2221, 559, 0, 0, 0, 0, 0 }, + { 2222, 559, 1, 14, 0, 0, 0 }, + { 2223, 559, 2, 2, 0, 0, 0 }, + { 2224, 559, 3, 8, 20, 0, 0 }, + { 2225, 560, 0, 0, 0, 0, 0 }, + { 2226, 560, 1, 14, 0, 0, 0 }, + { 2227, 560, 2, 2, 0, 0, 0 }, + { 2228, 560, 3, 3, 8, 0, 0 }, + { 2229, 561, 0, 0, 0, 0, 0 }, + { 2230, 561, 1, 14, 0, 0, 0 }, + { 2231, 561, 2, 2, 0, 0, 0 }, + { 2233, 561, 3, 9, 768, 0, 0 }, + { 2234, 561, 4, 27, 5, 0, 0 }, + { 2235, 561, 5, 15, 1079, 0, 0 }, + { 18273, 561, 6, 56, 0, 0, 0 }, + { 2236, 562, 0, 0, 0, 0, 0 }, + { 2237, 562, 1, 14, 0, 0, 0 }, + { 2238, 562, 2, 2, 0, 0, 0 }, + { 2240, 562, 3, 9, 768, 0, 0 }, + { 8825, 562, 4, 27, 5, 0, 0 }, + { 18279, 562, 5, 56, 0, 0, 0 }, + { 2249, 564, 0, 0, 0, 0, 0 }, + { 2250, 564, 1, 14, 0, 0, 0 }, + { 2251, 564, 2, 2, 0, 0, 0 }, + { 2252, 564, 3, 3, 5, 0, 0 }, + { 2253, 564, 4, 9, 768, 0, 0 }, + { 2254, 564, 5, 15, 405233, 0, 0 }, + { 2255, 564, 6, 12, 3, 10, 0 }, + { 2263, 566, 0, 0, 0, 0, 0 }, + { 2264, 566, 1, 14, 0, 0, 0 }, + { 2265, 566, 2, 2, 0, 0, 0 }, + { 2266, 566, 3, 3, 5, 0, 0 }, + { 2267, 566, 4, 9, 768, 0, 0 }, + { 2268, 566, 5, 12, 3, 10, 0 }, + { 2269, 567, 0, 0, 0, 0, 0 }, + { 2270, 567, 1, 14, 0, 0, 0 }, + { 2271, 567, 2, 2, 0, 0, 0 }, + { 2273, 567, 3, 9, 768, 0, 0 }, + { 18297, 567, 4, 56, 0, 0, 0 }, + { 2274, 568, 0, 0, 0, 0, 0 }, + { 2275, 568, 1, 14, 0, 0, 0 }, + { 2276, 568, 2, 2, 0, 0, 0 }, + { 2278, 568, 3, 9, 768, 0, 0 }, + { 2279, 568, 4, 15, 155722, 0, 0 }, + { 18303, 568, 5, 56, 0, 0, 0 }, + { 2286, 570, 0, 0, 0, 0, 0 }, + { 2287, 570, 1, 14, 0, 0, 0 }, + { 2288, 570, 2, 2, 0, 0, 0 }, + { 2289, 570, 3, 15, 164812, 0, 0 }, + { 9040, 570, 4, 16, 768, 0, 0 }, + { 2294, 572, 0, 0, 0, 0, 0 }, + { 2295, 572, 1, 14, 0, 0, 0 }, + { 2296, 572, 2, 2, 0, 0, 0 }, + { 2297, 572, 3, 15, 164815, 0, 0 }, + { 9050, 572, 4, 16, 768, 0, 0 }, + { 2302, 574, 0, 0, 0, 0, 0 }, + { 2303, 574, 1, 14, 0, 0, 0 }, + { 2304, 574, 2, 2, 0, 0, 0 }, + { 2305, 574, 3, 11, 3, 10, 0 }, + { 9060, 574, 4, 16, 768, 0, 0 }, + { 32468, 574, 5, 67, 0, 0, 0 }, + { 2306, 575, 0, 0, 0, 0, 0 }, + { 2307, 575, 1, 14, 0, 0, 0 }, + { 2308, 575, 2, 2, 0, 0, 0 }, + { 9064, 575, 3, 16, 768, 0, 0 }, + { 2309, 576, 0, 0, 0, 0, 0 }, + { 2310, 576, 1, 14, 0, 0, 0 }, + { 2311, 576, 2, 2, 0, 0, 0 }, + { 9068, 576, 3, 16, 768, 0, 0 }, + { 32477, 576, 4, 67, 0, 0, 0 }, + { 2858, 696, 0, 0, 0, 0, 0 }, + { 2859, 696, 1, 14, 0, 0, 0 }, + { 2860, 696, 2, 2, 0, 0, 0 }, + { 2861, 697, 0, 0, 0, 0, 0 }, + { 2862, 697, 1, 14, 0, 0, 0 }, + { 2863, 697, 2, 2, 0, 0, 0 }, + { 2864, 697, 3, 11, 3, 10, 0 }, + { 2865, 697, 4, 15, 146739, 0, 0 }, + { 2866, 697, 5, 16, 445465, 0, 0 }, + { 2874, 699, 0, 0, 0, 0, 0 }, + { 2875, 699, 1, 14, 0, 0, 0 }, + { 2876, 699, 2, 2, 0, 0, 0 }, + { 2877, 699, 3, 11, 3, 10, 0 }, + { 2878, 699, 4, 15, 445474, 0, 0 }, + { 2879, 699, 5, 9, 445465, 0, 0 }, + { 2887, 701, 0, 0, 0, 0, 0 }, + { 2888, 701, 1, 14, 0, 0, 0 }, + { 2889, 701, 2, 2, 0, 0, 0 }, + { 2890, 701, 3, 15, 146739, 0, 0 }, + { 2891, 701, 4, 16, 445465, 0, 0 }, + { 2898, 703, 0, 0, 0, 0, 0 }, + { 2899, 703, 1, 14, 0, 0, 0 }, + { 2900, 703, 2, 2, 0, 0, 0 }, + { 2901, 703, 3, 15, 445474, 0, 0 }, + { 2902, 703, 4, 9, 445465, 0, 0 }, + { 23075, 707, 0, 0, 0, 0, 0 }, + { 23076, 707, 1, 14, 0, 0, 0 }, + { 23077, 707, 2, 2, 0, 0, 0 }, + { 23078, 707, 3, 16, 335052, 0, 0 }, + { 23331, 707, 4, 15, 316099, 0, 0 }, + { 23080, 708, 0, 0, 0, 0, 0 }, + { 23081, 708, 1, 14, 0, 0, 0 }, + { 23082, 708, 2, 2, 0, 0, 0 }, + { 23083, 708, 3, 9, 335052, 0, 0 }, + { 23085, 708, 4, 15, 342938, 0, 0 }, + { 2939, 711, 0, 0, 0, 0, 0 }, + { 2940, 711, 1, 14, 0, 0, 0 }, + { 2941, 711, 2, 2, 0, 0, 0 }, + { 2942, 711, 3, 33, 50, 0, 0 }, + { 2943, 712, 0, 0, 0, 0, 0 }, + { 2944, 712, 1, 14, 0, 0, 0 }, + { 2945, 712, 2, 2, 0, 0, 0 }, + { 2946, 712, 3, 15, 980, 0, 0 }, + { 2951, 714, 0, 0, 0, 0, 0 }, + { 2952, 714, 1, 14, 0, 0, 0 }, + { 2953, 714, 2, 2, 0, 0, 0 }, + { 2957, 716, 0, 0, 0, 0, 0 }, + { 2958, 716, 1, 14, 0, 0, 0 }, + { 2959, 716, 2, 2, 0, 0, 0 }, + { 2960, 717, 0, 0, 0, 0, 0 }, + { 2961, 717, 1, 14, 0, 0, 0 }, + { 2962, 717, 2, 2, 0, 0, 0 }, + { 2963, 718, 0, 0, 0, 0, 0 }, + { 2964, 718, 1, 14, 0, 0, 0 }, + { 2965, 718, 2, 2, 0, 0, 0 }, + { 2966, 718, 3, 50, 2, 40, 0 }, + { 2967, 719, 0, 0, 0, 0, 0 }, + { 2968, 719, 1, 14, 0, 0, 0 }, + { 2969, 719, 2, 2, 0, 0, 0 }, + { 2970, 719, 3, 9, 387079, 0, 0 }, + { 2971, 722, 0, 0, 0, 0, 0 }, + { 2972, 722, 1, 14, 0, 0, 0 }, + { 2973, 722, 2, 2, 0, 0, 0 }, + { 2974, 723, 0, 0, 0, 0, 0 }, + { 2975, 723, 1, 14, 0, 0, 0 }, + { 2976, 723, 2, 2, 0, 0, 0 }, + { 36341, 723, 3, 67, 0, 0, 0 }, + { 2977, 724, 0, 0, 0, 0, 0 }, + { 2978, 724, 1, 14, 0, 0, 0 }, + { 2979, 724, 2, 2, 0, 0, 0 }, + { 2980, 724, 3, 9, 384088, 0, 0 }, + { 2981, 725, 0, 0, 0, 0, 0 }, + { 2982, 725, 1, 14, 0, 0, 0 }, + { 2983, 725, 2, 2, 0, 0, 0 }, + { 2984, 725, 3, 9, 384088, 0, 0 }, + { 2985, 726, 0, 0, 0, 0, 0 }, + { 2986, 726, 1, 14, 0, 0, 0 }, + { 2987, 726, 2, 2, 0, 0, 0 }, + { 2988, 726, 3, 11, 3, 10, 0 }, + { 2989, 727, 0, 0, 0, 0, 0 }, + { 2990, 727, 1, 14, 0, 0, 0 }, + { 2991, 727, 2, 2, 0, 0, 0 }, + { 2992, 727, 3, 11, 3, 10, 0 }, + { 2993, 728, 0, 0, 0, 0, 0 }, + { 2994, 728, 1, 14, 0, 0, 0 }, + { 2995, 728, 2, 2, 0, 0, 0 }, + { 2996, 729, 0, 0, 0, 0, 0 }, + { 2997, 729, 1, 14, 0, 0, 0 }, + { 2998, 729, 2, 2, 0, 0, 0 }, + { 2999, 730, 0, 0, 0, 0, 0 }, + { 3000, 730, 1, 14, 0, 0, 0 }, + { 3001, 730, 2, 2, 0, 0, 0 }, + { 3002, 730, 3, 16, 191634, 0, 0 }, + { 3003, 731, 0, 0, 0, 0, 0 }, + { 3004, 731, 1, 14, 0, 0, 0 }, + { 3005, 731, 2, 2, 0, 0, 0 }, + { 3006, 732, 0, 0, 0, 0, 0 }, + { 3007, 732, 1, 14, 0, 0, 0 }, + { 3008, 732, 2, 2, 0, 0, 0 }, + { 3009, 733, 0, 0, 0, 0, 0 }, + { 3010, 733, 1, 14, 0, 0, 0 }, + { 3011, 733, 2, 2, 0, 0, 0 }, + { 3012, 733, 3, 9, 454015, 0, 0 }, + { 3013, 734, 0, 0, 0, 0, 0 }, + { 3014, 734, 1, 14, 0, 0, 0 }, + { 3015, 734, 2, 2, 0, 0, 0 }, + { 3016, 735, 0, 0, 0, 0, 0 }, + { 3017, 735, 1, 14, 0, 0, 0 }, + { 3018, 735, 2, 2, 0, 0, 0 }, + { 3019, 735, 3, 10, 188389, 0, 0 }, + { 3020, 736, 0, 0, 0, 0, 0 }, + { 3021, 736, 1, 14, 0, 0, 0 }, + { 3022, 736, 2, 2, 0, 0, 0 }, + { 3023, 736, 3, 9, 191634, 0, 0 }, + { 3024, 736, 4, 11, 3, 10, 0 }, + { 3025, 737, 0, 0, 0, 0, 0 }, + { 3026, 737, 1, 14, 0, 0, 0 }, + { 3027, 737, 2, 2, 0, 0, 0 }, + { 3028, 737, 3, 9, 191634, 0, 0 }, + { 3029, 738, 0, 9, 462818, 0, 0 }, + { 3030, 738, 1, 0, 0, 0, 0 }, + { 3031, 738, 2, 14, 0, 0, 0 }, + { 3032, 738, 3, 2, 0, 0, 0 }, + { 24165, 738, 4, 16, 1219480, 0, 0 }, + { 3033, 739, 0, 9, 210714, 0, 0 }, + { 3034, 739, 1, 0, 0, 0, 0 }, + { 3035, 739, 2, 14, 0, 0, 0 }, + { 3036, 739, 3, 2, 0, 0, 0 }, + { 3037, 740, 0, 0, 0, 0, 0 }, + { 3038, 740, 1, 14, 0, 0, 0 }, + { 3039, 740, 2, 2, 0, 0, 0 }, + { 3040, 740, 3, 15, 188389, 0, 0 }, + { 7331, 740, 4, 49, 2, 10, 0 }, + { 3045, 742, 0, 0, 0, 0, 0 }, + { 3046, 742, 1, 14, 0, 0, 0 }, + { 3047, 742, 2, 2, 0, 0, 0 }, + { 38060, 742, 3, 16, 260734, 0, 0 }, + { 38061, 742, 4, 9, 16166, 0, 0 }, + { 3049, 743, 0, 0, 0, 0, 0 }, + { 3050, 743, 1, 14, 0, 0, 0 }, + { 3051, 743, 2, 2, 0, 0, 0 }, + { 3052, 743, 3, 11, 3, 10, 0 }, + { 34449, 743, 4, 67, 0, 0, 0 }, + { 3053, 744, 0, 0, 0, 0, 0 }, + { 3054, 744, 1, 14, 0, 0, 0 }, + { 3055, 744, 2, 2, 0, 0, 0 }, + { 34453, 744, 3, 67, 0, 0, 0 }, + { 3372, 829, 0, 0, 0, 0, 0 }, + { 3373, 829, 1, 14, 0, 0, 0 }, + { 3374, 829, 2, 2, 0, 0, 0 }, + { 3375, 830, 0, 0, 0, 0, 0 }, + { 3376, 830, 1, 14, 0, 0, 0 }, + { 3377, 830, 2, 2, 0, 0, 0 }, + { 3378, 830, 3, 11, 3, 10, 0 }, + { 3379, 831, 0, 0, 0, 0, 0 }, + { 3380, 831, 1, 14, 0, 0, 0 }, + { 3381, 831, 2, 2, 0, 0, 0 }, + { 3382, 831, 3, 11, 3, 10, 0 }, + { 3383, 832, 0, 0, 0, 0, 0 }, + { 3384, 832, 1, 14, 0, 0, 0 }, + { 3385, 832, 2, 2, 0, 0, 0 }, + { 14330, 832, 3, 49, 2, 10, 0 }, + { 35760, 832, 4, 33, 20, 0, 0 }, + { 35761, 832, 5, 67, 0, 0, 0 }, + { 35762, 832, 6, 9, 387157, 0, 0 }, + { 3386, 833, 0, 0, 0, 0, 0 }, + { 3387, 833, 1, 14, 0, 0, 0 }, + { 3388, 833, 2, 2, 0, 0, 0 }, + { 3389, 833, 3, 15, 445474, 0, 0 }, + { 3390, 833, 4, 9, 445465, 0, 0 }, + { 36120, 835, 0, 0, 0, 0, 0 }, + { 3397, 835, 1, 14, 0, 0, 0 }, + { 3398, 835, 2, 2, 0, 0, 0 }, + { 3399, 835, 3, 15, 157736, 0, 0 }, + { 36052, 835, 4, 16, 445465, 0, 0 }, + { 3409, 838, 0, 0, 0, 0, 0 }, + { 3410, 838, 1, 14, 0, 0, 0 }, + { 3411, 838, 2, 2, 0, 0, 0 }, + { 14537, 838, 3, 49, 2, 10, 0 }, + { 3412, 839, 0, 0, 0, 0, 0 }, + { 3413, 839, 1, 14, 0, 0, 0 }, + { 3414, 839, 2, 2, 0, 0, 0 }, + { 3415, 840, 0, 0, 0, 0, 0 }, + { 3416, 840, 1, 14, 0, 0, 0 }, + { 3417, 840, 2, 2, 0, 0, 0 }, + { 3418, 840, 3, 16, 117828, 0, 0 }, + { 14308, 840, 4, 33, 15, 0, 0 }, + { 14309, 840, 5, 49, 2, 10, 0 }, + { 3423, 842, 0, 0, 0, 0, 0 }, + { 3424, 842, 1, 14, 0, 0, 0 }, + { 3425, 842, 2, 2, 0, 0, 0 }, + { 36204, 842, 3, 63, 2, 0, 0 }, + { 3426, 843, 0, 0, 0, 0, 0 }, + { 3427, 843, 1, 14, 0, 0, 0 }, + { 3428, 843, 2, 2, 0, 0, 0 }, + { 35792, 843, 3, 67, 0, 0, 0 }, + { 3429, 844, 0, 0, 0, 0, 0 }, + { 3430, 844, 1, 14, 0, 0, 0 }, + { 3431, 844, 2, 2, 0, 0, 0 }, + { 3433, 845, 0, 0, 0, 0, 0 }, + { 3434, 845, 1, 14, 0, 0, 0 }, + { 3435, 845, 2, 2, 0, 0, 0 }, + { 3437, 846, 0, 16, 232698, 0, 0 }, + { 3438, 846, 1, 16, 194249, 0, 0 }, + { 3470, 846, 2, 0, 0, 0, 0 }, + { 3471, 846, 3, 14, 0, 0, 0 }, + { 3472, 846, 4, 2, 0, 0, 0 }, + { 3439, 847, 0, 0, 0, 0, 0 }, + { 3440, 847, 1, 14, 0, 0, 0 }, + { 3441, 847, 2, 2, 0, 0, 0 }, + { 3442, 847, 3, 9, 453109, 0, 0 }, + { 3446, 849, 0, 0, 0, 0, 0 }, + { 3447, 849, 1, 14, 0, 0, 0 }, + { 3448, 849, 2, 2, 0, 0, 0 }, + { 6863, 849, 3, 43, 9000, 0, 0 }, + { 6864, 849, 4, 16, 407430, 0, 0 }, + { 3449, 850, 0, 0, 0, 0, 0 }, + { 3450, 850, 1, 14, 0, 0, 0 }, + { 3451, 850, 2, 2, 0, 0, 0 }, + { 6868, 850, 3, 43, 14000, 0, 0 }, + { 6869, 850, 4, 9, 407430, 0, 0 }, + { 3452, 851, 0, 0, 0, 0, 0 }, + { 3453, 851, 1, 14, 0, 0, 0 }, + { 3454, 851, 2, 2, 0, 0, 0 }, + { 3455, 851, 3, 15, 34914, 0, 0 }, + { 36911, 851, 4, 66, 457042, 18000, 0 }, + { 37032, 851, 5, 9, 406777, 0, 0 }, + { 3460, 853, 0, 0, 0, 0, 0 }, + { 3461, 853, 1, 14, 0, 0, 0 }, + { 3462, 853, 2, 2, 0, 0, 0 }, + { 3463, 853, 3, 15, 589, 0, 0 }, + { 3464, 853, 4, 16, 238558, 0, 0 }, + { 3473, 858, 0, 0, 0, 0, 0 }, + { 3474, 858, 1, 14, 0, 0, 0 }, + { 3475, 858, 2, 2, 0, 0, 0 }, + { 3476, 858, 3, 54, 391401, 4, 0 }, + { 3477, 859, 0, 0, 0, 0, 0 }, + { 3478, 859, 1, 14, 0, 0, 0 }, + { 3479, 859, 2, 2, 0, 0, 0 }, + { 3480, 859, 3, 54, 407468, 4, 0 }, + { 7348, 950, 0, 0, 0, 0, 0 }, + { 7349, 950, 1, 14, 0, 0, 0 }, + { 7350, 950, 2, 2, 0, 0, 0 }, + { 13609, 950, 3, 16, 1221347, 0, 0 }, + { 7351, 952, 0, 0, 0, 0, 0 }, + { 7352, 952, 1, 14, 0, 0, 0 }, + { 7353, 952, 2, 2, 0, 0, 0 }, + { 29213, 952, 3, 16, 469314, 0, 0 }, + { 3797, 967, 0, 0, 0, 0, 0 }, + { 3798, 967, 1, 14, 0, 0, 0 }, + { 3799, 967, 2, 2, 0, 0, 0 }, + { 3800, 967, 3, 9, 1218125, 0, 0 }, + { 3801, 967, 4, 54, 344179, 5, 0 }, + { 38544, 967, 5, 16, 384149, 0, 0 }, + { 3802, 968, 0, 0, 0, 0, 0 }, + { 3803, 968, 1, 14, 0, 0, 0 }, + { 3804, 968, 2, 2, 0, 0, 0 }, + { 3805, 968, 3, 15, 188389, 0, 0 }, + { 3810, 970, 0, 0, 0, 0, 0 }, + { 3811, 970, 1, 14, 0, 0, 0 }, + { 3812, 970, 2, 2, 0, 0, 0 }, + { 3813, 970, 3, 11, 3, 10, 0 }, + { 13893, 970, 4, 51, 2, 30, 188389 }, + { 19081, 970, 5, 56, 0, 0, 0 }, + { 3816, 971, 0, 0, 0, 0, 0 }, + { 3817, 971, 1, 14, 0, 0, 0 }, + { 3818, 971, 2, 2, 0, 0, 0 }, + { 38875, 971, 3, 16, 1218125, 0, 0 }, + { 3819, 972, 0, 0, 0, 0, 0 }, + { 3820, 972, 1, 14, 0, 0, 0 }, + { 3821, 972, 2, 2, 0, 0, 0 }, + { 19088, 972, 3, 3, 8, 0, 0 }, + { 3822, 973, 0, 9, 454015, 0, 0 }, + { 3823, 973, 1, 0, 0, 0, 0 }, + { 3824, 973, 2, 14, 0, 0, 0 }, + { 3825, 973, 3, 2, 0, 0, 0 }, + { 3826, 973, 4, 54, 344179, 5, 0 }, + { 38567, 973, 5, 16, 384149, 0, 0 }, + { 3827, 974, 0, 0, 0, 0, 0 }, + { 3828, 974, 1, 14, 0, 0, 0 }, + { 3829, 974, 2, 2, 0, 0, 0 }, + { 3830, 974, 3, 3, 5, 0, 0 }, + { 3831, 975, 0, 0, 0, 0, 0 }, + { 3832, 975, 1, 14, 0, 0, 0 }, + { 3833, 975, 2, 2, 0, 0, 0 }, + { 3834, 975, 3, 54, 344179, 5, 0 }, + { 3835, 975, 4, 11, 3, 10, 0 }, + { 38577, 975, 5, 16, 384149, 0, 0 }, + { 3836, 976, 0, 0, 0, 0, 0 }, + { 3837, 976, 1, 14, 0, 0, 0 }, + { 3838, 976, 2, 2, 0, 0, 0 }, + { 3839, 976, 3, 54, 344179, 5, 0 }, + { 38582, 976, 4, 16, 384149, 0, 0 }, + { 3840, 977, 0, 0, 0, 0, 0 }, + { 3841, 977, 1, 14, 0, 0, 0 }, + { 3842, 977, 2, 2, 0, 0, 0 }, + { 3843, 977, 3, 54, 344179, 5, 0 }, + { 38587, 977, 4, 16, 384149, 0, 0 }, + { 3844, 978, 0, 0, 0, 0, 0 }, + { 3845, 978, 1, 14, 0, 0, 0 }, + { 3846, 978, 2, 2, 0, 0, 0 }, + { 3847, 978, 3, 10, 188389, 0, 0 }, + { 3848, 979, 0, 0, 0, 0, 0 }, + { 3849, 979, 1, 14, 0, 0, 0 }, + { 3850, 979, 2, 2, 0, 0, 0 }, + { 3851, 979, 3, 12, 3, 10, 0 }, + { 19119, 979, 4, 3, 8, 0, 0 }, + { 3852, 980, 0, 0, 0, 0, 0 }, + { 3853, 980, 1, 14, 0, 0, 0 }, + { 3854, 980, 2, 2, 0, 0, 0 }, + { 19123, 980, 3, 56, 0, 0, 0 }, + { 3856, 981, 0, 0, 0, 0, 0 }, + { 3857, 981, 1, 14, 0, 0, 0 }, + { 3858, 981, 2, 2, 0, 0, 0 }, + { 3859, 981, 3, 9, 466469, 0, 0 }, + { 19128, 981, 4, 56, 0, 0, 0 }, + { 3861, 982, 0, 9, 334196, 0, 0 }, + { 3862, 982, 1, 0, 0, 0, 0 }, + { 3863, 982, 2, 14, 0, 0, 0 }, + { 3864, 982, 3, 2, 0, 0, 0 }, + { 3865, 983, 0, 9, 445034, 0, 0 }, + { 3866, 983, 1, 0, 0, 0, 0 }, + { 3867, 983, 2, 14, 0, 0, 0 }, + { 3868, 983, 3, 2, 0, 0, 0 }, + { 19137, 983, 4, 56, 0, 0, 0 }, + { 3870, 984, 0, 0, 0, 0, 0 }, + { 3871, 984, 1, 14, 0, 0, 0 }, + { 3872, 984, 2, 2, 0, 0, 0 }, + { 19141, 984, 3, 56, 0, 0, 0 }, + { 3874, 985, 0, 0, 0, 0, 0 }, + { 3875, 985, 1, 14, 0, 0, 0 }, + { 3876, 985, 2, 2, 0, 0, 0 }, + { 19145, 985, 3, 56, 0, 0, 0 }, + { 3878, 986, 0, 0, 0, 0, 0 }, + { 3879, 986, 1, 14, 0, 0, 0 }, + { 3880, 986, 2, 2, 0, 0, 0 }, + { 3881, 987, 0, 0, 0, 0, 0 }, + { 3882, 987, 1, 14, 0, 0, 0 }, + { 3883, 987, 2, 2, 0, 0, 0 }, + { 4147, 1062, 0, 0, 0, 0, 0 }, + { 4148, 1062, 1, 14, 0, 0, 0 }, + { 4149, 1062, 2, 2, 0, 0, 0 }, + { 4150, 1063, 0, 0, 0, 0, 0 }, + { 4151, 1063, 1, 14, 0, 0, 0 }, + { 4152, 1063, 2, 2, 0, 0, 0 }, + { 4153, 1063, 3, 9, 450404, 0, 0 }, + { 4154, 1064, 0, 0, 0, 0, 0 }, + { 4155, 1064, 1, 14, 0, 0, 0 }, + { 4156, 1064, 2, 2, 0, 0, 0 }, + { 4157, 1065, 0, 0, 0, 0, 0 }, + { 4158, 1065, 1, 14, 0, 0, 0 }, + { 4159, 1065, 2, 2, 0, 0, 0 }, + { 4160, 1065, 3, 15, 335467, 0, 0 }, + { 4161, 1066, 0, 0, 0, 0, 0 }, + { 4162, 1066, 1, 14, 0, 0, 0 }, + { 4163, 1066, 2, 2, 0, 0, 0 }, + { 34136, 1066, 3, 16, 450405, 0, 0 }, + { 4164, 1067, 0, 0, 0, 0, 0 }, + { 4165, 1067, 1, 14, 0, 0, 0 }, + { 4166, 1067, 2, 2, 0, 0, 0 }, + { 4167, 1067, 3, 9, 392511, 0, 0 }, + { 4168, 1068, 0, 0, 0, 0, 0 }, + { 4169, 1068, 1, 14, 0, 0, 0 }, + { 4170, 1068, 2, 2, 0, 0, 0 }, + { 4171, 1068, 3, 8, 20, 0, 0 }, + { 4172, 1069, 0, 0, 0, 0, 0 }, + { 4173, 1069, 1, 14, 0, 0, 0 }, + { 4174, 1069, 2, 2, 0, 0, 0 }, + { 34055, 1069, 3, 67, 0, 0, 0 }, + { 4411, 1130, 0, 14, 0, 0, 0 }, + { 4412, 1130, 1, 2, 0, 0, 0 }, + { 4507, 1130, 2, 0, 0, 0, 0 }, + { 4508, 1130, 3, 9, 194249, 0, 0 }, + { 4509, 1155, 0, 0, 0, 0, 0 }, + { 4510, 1155, 1, 14, 0, 0, 0 }, + { 4511, 1155, 2, 2, 0, 0, 0 }, + { 4512, 1155, 3, 11, 3, 10, 0 }, + { 4513, 1156, 0, 0, 0, 0, 0 }, + { 4514, 1156, 1, 14, 0, 0, 0 }, + { 4515, 1156, 2, 2, 0, 0, 0 }, + { 4516, 1157, 0, 0, 0, 0, 0 }, + { 4517, 1157, 1, 14, 0, 0, 0 }, + { 4518, 1157, 2, 2, 0, 0, 0 }, + { 4519, 1158, 0, 0, 0, 0, 0 }, + { 4520, 1158, 1, 14, 0, 0, 0 }, + { 4521, 1158, 2, 2, 0, 0, 0 }, + { 4522, 1159, 0, 0, 0, 0, 0 }, + { 4523, 1159, 1, 14, 0, 0, 0 }, + { 4524, 1159, 2, 2, 0, 0, 0 }, + { 4525, 1159, 3, 10, 228358, 0, 0 }, + { 4526, 1160, 0, 0, 0, 0, 0 }, + { 4527, 1160, 1, 14, 0, 0, 0 }, + { 4528, 1160, 2, 2, 0, 0, 0 }, + { 4529, 1160, 3, 15, 228358, 0, 0 }, + { 4530, 1161, 0, 0, 0, 0, 0 }, + { 4531, 1161, 1, 14, 0, 0, 0 }, + { 4532, 1161, 2, 2, 0, 0, 0 }, + { 4533, 1161, 3, 10, 228358, 0, 0 }, + { 4534, 1162, 0, 0, 0, 0, 0 }, + { 4535, 1162, 1, 14, 0, 0, 0 }, + { 4536, 1162, 2, 2, 0, 0, 0 }, + { 4537, 1163, 0, 0, 0, 0, 0 }, + { 4538, 1163, 1, 14, 0, 0, 0 }, + { 4539, 1163, 2, 2, 0, 0, 0 }, + { 4540, 1163, 3, 9, 44544, 0, 0 }, + { 4541, 1164, 0, 0, 0, 0, 0 }, + { 4542, 1164, 1, 14, 0, 0, 0 }, + { 4543, 1164, 2, 2, 0, 0, 0 }, + { 4544, 1164, 3, 10, 228358, 0, 0 }, + { 4545, 1165, 0, 0, 0, 0, 0 }, + { 4546, 1165, 1, 14, 0, 0, 0 }, + { 4547, 1165, 2, 2, 0, 0, 0 }, + { 33686, 1165, 3, 67, 0, 0, 0 }, + { 4549, 1166, 0, 0, 0, 0, 0 }, + { 4550, 1166, 1, 14, 0, 0, 0 }, + { 4551, 1166, 2, 2, 0, 0, 0 }, + { 4552, 1166, 3, 15, 434765, 0, 0 }, + { 18055, 1166, 4, 56, 0, 0, 0 }, + { 4554, 1167, 0, 0, 0, 0, 0 }, + { 4555, 1167, 1, 14, 0, 0, 0 }, + { 4556, 1167, 2, 2, 0, 0, 0 }, + { 4557, 1167, 3, 9, 441416, 0, 0 }, + { 18060, 1167, 4, 56, 0, 0, 0 }, + { 4559, 1168, 0, 0, 0, 0, 0 }, + { 4560, 1168, 1, 14, 0, 0, 0 }, + { 4561, 1168, 2, 2, 0, 0, 0 }, + { 4562, 1168, 3, 9, 469172, 0, 0 }, + { 18065, 1168, 4, 56, 0, 0, 0 }, + { 4564, 1169, 0, 0, 0, 0, 0 }, + { 4565, 1169, 1, 14, 0, 0, 0 }, + { 4566, 1169, 2, 2, 0, 0, 0 }, + { 29856, 1169, 3, 3, 5, 0, 0 }, + { 4567, 1170, 0, 3, 10, 0, 0 }, + { 4569, 1170, 1, 16, 188290, 0, 0 }, + { 4570, 1170, 2, 0, 0, 0, 0 }, + { 4571, 1170, 3, 14, 0, 0, 0 }, + { 4572, 1170, 4, 2, 0, 0, 0 }, + { 4574, 1171, 0, 0, 0, 0, 0 }, + { 4575, 1171, 1, 14, 0, 0, 0 }, + { 4576, 1171, 2, 2, 0, 0, 0 }, + { 4577, 1171, 3, 8, 35, 0, 0 }, + { 18080, 1171, 4, 56, 0, 0, 0 }, + { 4578, 1172, 0, 3, 10, 0, 0 }, + { 4579, 1172, 1, 0, 0, 0, 0 }, + { 4580, 1172, 2, 14, 0, 0, 0 }, + { 4581, 1172, 3, 2, 0, 0, 0 }, + { 4583, 1173, 0, 0, 0, 0, 0 }, + { 4584, 1173, 1, 14, 0, 0, 0 }, + { 4585, 1173, 2, 2, 0, 0, 0 }, + { 4586, 1173, 3, 31, 800, 0, 0 }, + { 18089, 1173, 4, 56, 0, 0, 0 }, + { 4588, 1174, 0, 0, 0, 0, 0 }, + { 4589, 1174, 1, 14, 0, 0, 0 }, + { 4590, 1174, 2, 2, 0, 0, 0 }, + { 18093, 1174, 3, 56, 0, 0, 0 }, + { 4592, 1175, 0, 0, 0, 0, 0 }, + { 4593, 1175, 1, 14, 0, 0, 0 }, + { 4594, 1175, 2, 2, 0, 0, 0 }, + { 18097, 1175, 3, 56, 0, 0, 0 }, + { 4596, 1176, 0, 0, 0, 0, 0 }, + { 4597, 1176, 1, 14, 0, 0, 0 }, + { 4598, 1176, 2, 2, 0, 0, 0 }, + { 4599, 1176, 3, 9, 433899, 0, 0 }, + { 18102, 1176, 4, 56, 0, 0, 0 }, + { 4601, 1177, 0, 0, 0, 0, 0 }, + { 4602, 1177, 1, 14, 0, 0, 0 }, + { 4603, 1177, 2, 2, 0, 0, 0 }, + { 4604, 1177, 3, 9, 434153, 0, 0 }, + { 18107, 1177, 4, 56, 0, 0, 0 }, + { 4763, 1219, 0, 3, 10, 0, 0 }, + { 4764, 1219, 1, 12, 3, 10, 0 }, + { 4765, 1219, 2, 16, 188290, 0, 0 }, + { 4766, 1219, 3, 0, 0, 0, 0 }, + { 4767, 1219, 4, 14, 0, 0, 0 }, + { 4768, 1219, 5, 2, 0, 0, 0 }, + { 4769, 1220, 0, 0, 0, 0, 0 }, + { 4770, 1220, 1, 14, 0, 0, 0 }, + { 4771, 1220, 2, 2, 0, 0, 0 }, + { 4772, 1220, 3, 15, 191587, 0, 0 }, + { 4777, 1222, 0, 0, 0, 0, 0 }, + { 4778, 1222, 1, 14, 0, 0, 0 }, + { 4779, 1222, 2, 2, 0, 0, 0 }, + { 21610, 1222, 3, 57, 0, 0, 0 }, + { 4780, 1223, 0, 0, 0, 0, 0 }, + { 4781, 1223, 1, 14, 0, 0, 0 }, + { 4782, 1223, 2, 2, 0, 0, 0 }, + { 4783, 1223, 3, 56, 0, 0, 0 }, + { 4784, 1223, 4, 16, 390178, 0, 0 }, + { 4785, 1223, 5, 9, 390175, 0, 0 }, + { 4786, 1224, 0, 0, 0, 0, 0 }, + { 4787, 1224, 1, 14, 0, 0, 0 }, + { 4788, 1224, 2, 2, 0, 0, 0 }, + { 17620, 1224, 3, 56, 0, 0, 0 }, + { 4790, 1225, 0, 0, 0, 0, 0 }, + { 4791, 1225, 1, 14, 0, 0, 0 }, + { 4792, 1225, 2, 2, 0, 0, 0 }, + { 4793, 1225, 3, 52, 194310, 5, 0 }, + { 4794, 1225, 4, 11, 3, 10, 0 }, + { 4795, 1226, 0, 0, 0, 0, 0 }, + { 4796, 1226, 1, 14, 0, 0, 0 }, + { 4797, 1226, 2, 2, 0, 0, 0 }, + { 4799, 1226, 3, 52, 194310, 4, 0 }, + { 17630, 1226, 4, 56, 0, 0, 0 }, + { 4800, 1227, 0, 0, 0, 0, 0 }, + { 4801, 1227, 1, 14, 0, 0, 0 }, + { 4802, 1227, 2, 2, 0, 0, 0 }, + { 4804, 1227, 3, 10, 194310, 0, 0 }, + { 4805, 1227, 4, 12, 3, 10, 0 }, + { 17636, 1227, 5, 56, 0, 0, 0 }, + { 4806, 1228, 0, 0, 0, 0, 0 }, + { 4807, 1228, 1, 14, 0, 0, 0 }, + { 4808, 1228, 2, 2, 0, 0, 0 }, + { 4809, 1228, 3, 9, 81340, 0, 0 }, + { 17252, 1228, 4, 49, 3, 10, 0 }, + { 4810, 1229, 0, 0, 0, 0, 0 }, + { 4811, 1229, 1, 14, 0, 0, 0 }, + { 4812, 1229, 2, 2, 0, 0, 0 }, + { 4813, 1229, 3, 10, 191587, 0, 0 }, + { 8161, 1229, 4, 11, 4, 10, 0 }, + { 4814, 1230, 0, 0, 0, 0, 0 }, + { 4815, 1230, 1, 14, 0, 0, 0 }, + { 4816, 1230, 2, 2, 0, 0, 0 }, + { 4817, 1231, 0, 0, 0, 0, 0 }, + { 4818, 1231, 1, 14, 0, 0, 0 }, + { 4819, 1231, 2, 2, 0, 0, 0 }, + { 17653, 1231, 3, 56, 0, 0, 0 }, + { 4820, 1232, 0, 0, 0, 0, 0 }, + { 4821, 1232, 1, 14, 0, 0, 0 }, + { 4822, 1232, 2, 2, 0, 0, 0 }, + { 4823, 1232, 3, 8, 35, 0, 0 }, + { 17658, 1232, 4, 56, 0, 0, 0 }, + { 4824, 1233, 0, 0, 0, 0, 0 }, + { 4825, 1233, 1, 14, 0, 0, 0 }, + { 4826, 1233, 2, 2, 0, 0, 0 }, + { 4828, 1233, 3, 10, 194310, 0, 0 }, + { 17663, 1233, 4, 56, 0, 0, 0 }, + { 4829, 1234, 0, 0, 0, 0, 0 }, + { 4830, 1234, 1, 14, 0, 0, 0 }, + { 4831, 1234, 2, 2, 0, 0, 0 }, + { 4832, 1234, 3, 15, 164815, 0, 0 }, + { 4833, 1235, 0, 0, 0, 0, 0 }, + { 4834, 1235, 1, 14, 0, 0, 0 }, + { 4835, 1235, 2, 2, 0, 0, 0 }, + { 4836, 1235, 3, 15, 164812, 0, 0 }, + { 9145, 1235, 4, 16, 428735, 0, 0 }, + { 4837, 1236, 0, 0, 0, 0, 0 }, + { 4838, 1236, 1, 14, 0, 0, 0 }, + { 4839, 1236, 2, 2, 0, 0, 0 }, + { 4840, 1236, 3, 15, 202347, 0, 0 }, + { 8456, 1236, 4, 49, 2, 10, 0 }, + { 4841, 1237, 0, 0, 0, 0, 0 }, + { 4842, 1237, 1, 14, 0, 0, 0 }, + { 4843, 1237, 2, 2, 0, 0, 0 }, + { 4844, 1237, 3, 12, 3, 45, 0 }, + { 4845, 1238, 0, 0, 0, 0, 0 }, + { 4846, 1238, 1, 14, 0, 0, 0 }, + { 4847, 1238, 2, 2, 0, 0, 0 }, + { 4848, 1239, 0, 0, 0, 0, 0 }, + { 4849, 1239, 1, 14, 0, 0, 0 }, + { 4850, 1239, 2, 2, 0, 0, 0 }, + { 8528, 1239, 3, 50, 2, 45, 0 }, + { 4851, 1240, 0, 0, 0, 0, 0 }, + { 4852, 1240, 1, 14, 0, 0, 0 }, + { 4853, 1240, 2, 2, 0, 0, 0 }, + { 4854, 1241, 0, 0, 0, 0, 0 }, + { 4855, 1241, 1, 14, 0, 0, 0 }, + { 4856, 1241, 2, 2, 0, 0, 0 }, + { 4857, 1241, 3, 16, 48517, 0, 0 }, + { 4858, 1241, 4, 16, 48518, 0, 0 }, + { 4859, 1242, 0, 0, 0, 0, 0 }, + { 4860, 1242, 1, 14, 0, 0, 0 }, + { 4861, 1242, 2, 2, 0, 0, 0 }, + { 4862, 1242, 3, 16, 48517, 0, 0 }, + { 4863, 1242, 4, 16, 48518, 0, 0 }, + { 4864, 1242, 5, 11, 3, 10, 0 }, + { 4865, 1243, 0, 0, 0, 0, 0 }, + { 4866, 1243, 1, 14, 0, 0, 0 }, + { 4867, 1243, 2, 2, 0, 0, 0 }, + { 4868, 1244, 0, 0, 0, 0, 0 }, + { 4869, 1244, 1, 14, 0, 0, 0 }, + { 4870, 1244, 2, 2, 0, 0, 0 }, + { 4871, 1244, 3, 15, 81281, 0, 0 }, + { 4872, 1245, 0, 0, 0, 0, 0 }, + { 4873, 1245, 1, 14, 0, 0, 0 }, + { 4874, 1245, 2, 2, 0, 0, 0 }, + { 31689, 1245, 3, 67, 0, 0, 0 }, + { 4875, 1246, 0, 0, 0, 0, 0 }, + { 4876, 1246, 1, 14, 0, 0, 0 }, + { 4877, 1246, 2, 2, 0, 0, 0 }, + { 4878, 1246, 3, 16, 48517, 0, 0 }, + { 4879, 1246, 4, 16, 48518, 0, 0 }, + { 4880, 1246, 5, 9, 429523, 0, 0 }, + { 32135, 1246, 6, 67, 0, 0, 0 }, + { 32136, 1246, 7, 54, 326055, 2, 0 }, + { 4881, 1247, 0, 11, 3, 10, 0 }, + { 4882, 1247, 1, 0, 0, 0, 0 }, + { 4883, 1247, 2, 14, 0, 0, 0 }, + { 4884, 1247, 3, 2, 0, 0, 0 }, + { 31700, 1247, 4, 67, 0, 0, 0 }, + { 4885, 1248, 0, 0, 0, 0, 0 }, + { 4886, 1248, 1, 14, 0, 0, 0 }, + { 4887, 1248, 2, 2, 0, 0, 0 }, + { 4888, 1248, 3, 9, 429523, 0, 0 }, + { 31705, 1248, 4, 67, 0, 0, 0 }, + { 5512, 1417, 0, 0, 0, 0, 0 }, + { 5513, 1417, 1, 14, 0, 0, 0 }, + { 5514, 1417, 2, 2, 0, 0, 0 }, + { 5515, 1418, 0, 0, 0, 0, 0 }, + { 5516, 1418, 1, 14, 0, 0, 0 }, + { 5517, 1418, 2, 2, 0, 0, 0 }, + { 5518, 1418, 3, 16, 410089, 0, 0 }, + { 5519, 1419, 0, 0, 0, 0, 0 }, + { 5520, 1419, 1, 14, 0, 0, 0 }, + { 5521, 1419, 2, 2, 0, 0, 0 }, + { 32517, 1419, 3, 67, 0, 0, 0 }, + { 5522, 1420, 0, 0, 0, 0, 0 }, + { 5523, 1420, 1, 14, 0, 0, 0 }, + { 5524, 1420, 2, 2, 0, 0, 0 }, + { 32573, 1420, 3, 67, 0, 0, 0 }, + { 5525, 1421, 0, 0, 0, 0, 0 }, + { 5526, 1421, 1, 14, 0, 0, 0 }, + { 5527, 1421, 2, 2, 0, 0, 0 }, + { 5528, 1422, 0, 0, 0, 0, 0 }, + { 5529, 1422, 1, 14, 0, 0, 0 }, + { 5530, 1422, 2, 2, 0, 0, 0 }, + { 5531, 1423, 0, 0, 0, 0, 0 }, + { 5532, 1423, 1, 14, 0, 0, 0 }, + { 5533, 1423, 2, 2, 0, 0, 0 }, + { 5534, 1423, 3, 5, 0, 0, 0 }, + { 32501, 1423, 4, 67, 0, 0, 0 }, + { 5535, 1424, 0, 0, 0, 0, 0 }, + { 5536, 1424, 1, 14, 0, 0, 0 }, + { 5537, 1424, 2, 2, 0, 0, 0 }, + { 32587, 1424, 3, 67, 0, 0, 0 }, + { 5539, 1425, 0, 0, 0, 0, 0 }, + { 5540, 1425, 1, 14, 0, 0, 0 }, + { 5541, 1425, 2, 2, 0, 0, 0 }, + { 32591, 1425, 3, 67, 0, 0, 0 }, + { 5543, 1426, 0, 0, 0, 0, 0 }, + { 5544, 1426, 1, 14, 0, 0, 0 }, + { 5545, 1426, 2, 2, 0, 0, 0 }, + { 5546, 1426, 3, 11, 3, 10, 0 }, + { 5547, 1426, 4, 9, 436336, 0, 0 }, + { 5548, 1427, 0, 0, 0, 0, 0 }, + { 5549, 1427, 1, 14, 0, 0, 0 }, + { 5550, 1427, 2, 2, 0, 0, 0 }, + { 5551, 1427, 3, 11, 3, 10, 0 }, + { 5552, 1428, 0, 0, 0, 0, 0 }, + { 5553, 1428, 1, 14, 0, 0, 0 }, + { 5554, 1428, 2, 2, 0, 0, 0 }, + { 5555, 1428, 3, 11, 3, 10, 0 }, + { 5556, 1428, 4, 9, 375802, 0, 0 }, + { 5557, 1428, 5, 9, 370901, 0, 0 }, + { 5558, 1429, 0, 0, 0, 0, 0 }, + { 5559, 1429, 1, 14, 0, 0, 0 }, + { 5560, 1429, 2, 2, 0, 0, 0 }, + { 23584, 1429, 3, 2, 359073, 0, 0 }, + { 5561, 1430, 0, 0, 0, 0, 0 }, + { 5562, 1430, 1, 14, 0, 0, 0 }, + { 5563, 1430, 2, 2, 0, 0, 0 }, + { 5564, 1430, 3, 11, 3, 10, 0 }, + { 32615, 1430, 4, 67, 0, 0, 0 }, + { 5565, 1431, 0, 0, 0, 0, 0 }, + { 5566, 1431, 1, 14, 0, 0, 0 }, + { 5567, 1431, 2, 2, 0, 0, 0 }, + { 5568, 1432, 0, 0, 0, 0, 0 }, + { 5569, 1432, 1, 14, 0, 0, 0 }, + { 5570, 1432, 2, 2, 0, 0, 0 }, + { 32622, 1432, 3, 67, 0, 0, 0 }, + { 5741, 1478, 0, 3, 8, 0, 0 }, + { 5742, 1478, 1, 0, 0, 0, 0 }, + { 5743, 1478, 2, 14, 0, 0, 0 }, + { 5744, 1478, 3, 2, 0, 0, 0 }, + { 5745, 1478, 4, 12, 3, 10, 0 }, + { 5746, 1479, 0, 0, 0, 0, 0 }, + { 5747, 1479, 1, 14, 0, 0, 0 }, + { 5748, 1479, 2, 2, 0, 0, 0 }, + { 5749, 1479, 3, 16, 5487, 0, 0 }, + { 5750, 1480, 0, 0, 0, 0, 0 }, + { 5751, 1480, 1, 14, 0, 0, 0 }, + { 5752, 1480, 2, 2, 0, 0, 0 }, + { 5753, 1480, 3, 15, 164812, 0, 0 }, + { 5754, 1481, 0, 0, 0, 0, 0 }, + { 5755, 1481, 1, 14, 0, 0, 0 }, + { 5756, 1481, 2, 2, 0, 0, 0 }, + { 18240, 1481, 3, 56, 0, 0, 0 }, + { 5758, 1482, 0, 0, 0, 0, 0 }, + { 5759, 1482, 1, 14, 0, 0, 0 }, + { 5760, 1482, 2, 2, 0, 0, 0 }, + { 5762, 1482, 3, 21, 80, 0, 0 }, + { 18245, 1482, 4, 56, 0, 0, 0 }, + { 5763, 1483, 0, 3, 8, 0, 0 }, + { 5764, 1483, 1, 0, 0, 0, 0 }, + { 5765, 1483, 2, 14, 0, 0, 0 }, + { 5766, 1483, 3, 2, 0, 0, 0 }, + { 5767, 1484, 0, 0, 0, 0, 0 }, + { 5768, 1484, 1, 14, 0, 0, 0 }, + { 5769, 1484, 2, 2, 0, 0, 0 }, + { 5770, 1484, 3, 3, 8, 0, 0 }, + { 5771, 1485, 0, 0, 0, 0, 0 }, + { 5772, 1485, 1, 14, 0, 0, 0 }, + { 5773, 1485, 2, 2, 0, 0, 0 }, + { 5774, 1485, 3, 9, 213708, 0, 0 }, + { 5780, 1486, 0, 3, 8, 0, 0 }, + { 5781, 1486, 1, 0, 0, 0, 0 }, + { 5782, 1486, 2, 14, 0, 0, 0 }, + { 5783, 1486, 3, 2, 0, 0, 0 }, + { 5775, 1487, 0, 0, 0, 0, 0 }, + { 5776, 1487, 1, 14, 0, 0, 0 }, + { 5777, 1487, 2, 2, 0, 0, 0 }, + { 5779, 1487, 3, 9, 135286, 0, 0 }, + { 18266, 1487, 4, 56, 0, 0, 0 }, + { 5919, 1527, 0, 3, 10, 0, 0 }, + { 5920, 1527, 1, 0, 0, 0, 0 }, + { 5921, 1527, 2, 14, 0, 0, 0 }, + { 5922, 1527, 3, 2, 0, 0, 0 }, + { 5923, 1527, 4, 12, 3, 10, 0 }, + { 5924, 1527, 5, 15, 1079, 0, 0 }, + { 5925, 1527, 6, 27, 5, 0, 0 }, + { 5927, 1528, 0, 0, 0, 0, 0 }, + { 5928, 1528, 1, 14, 0, 0, 0 }, + { 5929, 1528, 2, 2, 0, 0, 0 }, + { 5930, 1528, 3, 27, 5, 0, 0 }, + { 18176, 1528, 4, 56, 0, 0, 0 }, + { 5932, 1529, 0, 0, 0, 0, 0 }, + { 5933, 1529, 1, 14, 0, 0, 0 }, + { 5934, 1529, 2, 2, 0, 0, 0 }, + { 6746, 1529, 3, 9, 252752, 0, 0 }, + { 18181, 1529, 4, 56, 0, 0, 0 }, + { 5935, 1530, 0, 0, 0, 0, 0 }, + { 5936, 1530, 1, 14, 0, 0, 0 }, + { 5937, 1530, 2, 2, 0, 0, 0 }, + { 5938, 1530, 3, 16, 768, 0, 0 }, + { 5939, 1531, 0, 0, 0, 0, 0 }, + { 5940, 1531, 1, 14, 0, 0, 0 }, + { 5941, 1531, 2, 2, 0, 0, 0 }, + { 28192, 1531, 3, 16, 5215, 0, 0 }, + { 5947, 1533, 0, 0, 0, 0, 0 }, + { 5948, 1533, 1, 14, 0, 0, 0 }, + { 5949, 1533, 2, 2, 0, 0, 0 }, + { 6763, 1533, 3, 28, 1, 0, 0 }, + { 18193, 1533, 4, 56, 0, 0, 0 }, + { 5950, 1534, 0, 3, 8, 0, 0 }, + { 5951, 1534, 1, 0, 0, 0, 0 }, + { 5952, 1534, 2, 14, 0, 0, 0 }, + { 5953, 1534, 3, 2, 0, 0, 0 }, + { 5954, 1534, 4, 15, 405233, 0, 0 }, + { 21853, 1534, 5, 12, 3, 10, 0 }, + { 5956, 1535, 0, 0, 0, 0, 0 }, + { 5957, 1535, 1, 14, 0, 0, 0 }, + { 5958, 1535, 2, 2, 0, 0, 0 }, + { 5959, 1535, 3, 15, 155722, 0, 0 }, + { 18203, 1535, 4, 56, 0, 0, 0 }, + { 5960, 1536, 0, 0, 0, 0, 0 }, + { 5961, 1536, 1, 14, 0, 0, 0 }, + { 5962, 1536, 2, 2, 0, 0, 0 }, + { 5963, 1536, 3, 9, 155580, 0, 0 }, + { 5964, 1536, 4, 15, 155625, 0, 0 }, + { 5965, 1537, 0, 0, 0, 0, 0 }, + { 5966, 1537, 1, 14, 0, 0, 0 }, + { 5967, 1537, 2, 2, 0, 0, 0 }, + { 5968, 1537, 3, 3, 8, 0, 0 }, + { 5969, 1537, 4, 12, 3, 10, 0 }, + { 5970, 1538, 0, 0, 0, 0, 0 }, + { 5971, 1538, 1, 14, 0, 0, 0 }, + { 5972, 1538, 2, 2, 0, 0, 0 }, + { 18217, 1538, 3, 56, 0, 0, 0 }, + { 6029, 1551, 0, 3, 5, 0, 0 }, + { 6030, 1551, 1, 0, 0, 0, 0 }, + { 6031, 1551, 2, 14, 0, 0, 0 }, + { 6032, 1551, 3, 2, 0, 0, 0 }, + { 6345, 1639, 0, 0, 0, 0, 0 }, + { 6346, 1639, 1, 14, 0, 0, 0 }, + { 6347, 1639, 2, 2, 0, 0, 0 }, + { 18637, 1639, 3, 56, 0, 0, 0 }, + { 6349, 1640, 0, 0, 0, 0, 0 }, + { 6350, 1640, 1, 14, 0, 0, 0 }, + { 6351, 1640, 2, 2, 0, 0, 0 }, + { 6365, 1640, 3, 37, 3, 0, 0 }, + { 6352, 1641, 0, 0, 0, 0, 0 }, + { 6353, 1641, 1, 14, 0, 0, 0 }, + { 6354, 1641, 2, 9, 427441, 0, 0 }, + { 18645, 1641, 3, 56, 0, 0, 0 }, + { 6356, 1642, 0, 0, 383328, 0, 0 }, + { 6357, 1642, 1, 14, 0, 0, 0 }, + { 6358, 1642, 2, 2, 0, 0, 0 }, + { 15383, 1642, 3, 50, 2, 10, 0 }, + { 16071, 1642, 4, 16, 427441, 0, 0 }, + { 18651, 1642, 5, 56, 0, 0, 0 }, + { 6360, 1643, 0, 0, 0, 0, 0 }, + { 6361, 1643, 1, 14, 0, 0, 0 }, + { 6362, 1643, 2, 2, 0, 0, 0 }, + { 6363, 1643, 3, 9, 383344, 0, 0 }, + { 6364, 1643, 4, 15, 383346, 0, 0 }, + { 18657, 1643, 5, 56, 0, 0, 0 }, + { 6366, 1644, 0, 0, 0, 0, 0 }, + { 6367, 1644, 1, 14, 0, 0, 0 }, + { 6368, 1644, 2, 2, 0, 0, 0 }, + { 6369, 1644, 3, 12, 2, 10, 0 }, + { 6374, 1644, 4, 37, 3, 0, 0 }, + { 16083, 1644, 5, 16, 427441, 0, 0 }, + { 6370, 1645, 0, 0, 0, 0, 0 }, + { 6371, 1645, 1, 14, 0, 0, 0 }, + { 6372, 1645, 2, 2, 0, 0, 0 }, + { 15999, 1645, 3, 3, 10, 0, 0 }, + { 6377, 1646, 0, 0, 383328, 0, 0 }, + { 6378, 1646, 1, 14, 0, 0, 0 }, + { 6379, 1646, 2, 2, 0, 0, 0 }, + { 6380, 1646, 3, 54, 406975, 25, 0 }, + { 16092, 1646, 4, 16, 427441, 0, 0 }, + { 18673, 1646, 5, 56, 0, 0, 0 }, + { 6382, 1647, 0, 0, 383328, 0, 0 }, + { 6383, 1647, 1, 14, 0, 0, 0 }, + { 6384, 1647, 2, 2, 0, 0, 0 }, + { 6385, 1647, 3, 9, 453433, 0, 0 }, + { 6386, 1647, 4, 12, 3, 10, 0 }, + { 16099, 1647, 5, 16, 427441, 0, 0 }, + { 18680, 1647, 6, 56, 0, 0, 0 }, + { 6388, 1648, 0, 0, 383328, 0, 0 }, + { 6389, 1648, 1, 14, 0, 0, 0 }, + { 6390, 1648, 2, 2, 0, 0, 0 }, + { 6391, 1648, 3, 9, 387178, 0, 0 }, + { 6392, 1648, 4, 37, 5, 0, 0 }, + { 16106, 1648, 5, 16, 427441, 0, 0 }, + { 18687, 1648, 6, 56, 0, 0, 0 }, + { 6393, 1649, 0, 3, 30, 0, 0 }, + { 6394, 1649, 1, 0, 0, 0, 0 }, + { 6395, 1649, 2, 14, 0, 0, 0 }, + { 6396, 1649, 3, 2, 0, 0, 0 }, + { 6397, 1649, 4, 12, 3, 10, 0 }, + { 6398, 1649, 5, 38, 1, 0, 0 }, + { 6399, 1650, 0, 0, 0, 0, 0 }, + { 6400, 1650, 1, 14, 0, 0, 0 }, + { 6401, 1650, 2, 2, 0, 0, 0 }, + { 6402, 1650, 3, 9, 326733, 0, 0 }, + { 16117, 1650, 4, 16, 427441, 0, 0 }, + { 6403, 1651, 0, 3, 30, 0, 0 }, + { 6404, 1651, 1, 0, 0, 0, 0 }, + { 6405, 1651, 2, 14, 0, 0, 0 }, + { 6406, 1651, 3, 2, 0, 0, 0 }, + { 6407, 1651, 4, 38, 3, 0, 0 }, + { 15160, 1651, 5, 50, 2, 10, 0 }, + { 6409, 1652, 0, 0, 0, 0, 0 }, + { 6410, 1652, 1, 14, 0, 0, 0 }, + { 6411, 1652, 2, 2, 0, 0, 0 }, + { 6412, 1652, 3, 38, 3, 0, 0 }, + { 18709, 1652, 4, 56, 0, 0, 0 }, + { 6417, 1654, 0, 0, 406646, 0, 0 }, + { 6418, 1654, 1, 14, 0, 0, 0 }, + { 6420, 1654, 2, 2, 0, 0, 0 }, + { 18713, 1654, 3, 56, 0, 0, 0 }, + { 6422, 1655, 0, 0, 0, 0, 0 }, + { 6423, 1655, 1, 14, 0, 0, 0 }, + { 6424, 1655, 2, 2, 0, 0, 0 }, + { 6425, 1655, 3, 38, 3, 0, 0 }, + { 18718, 1655, 4, 56, 0, 0, 0 }, + { 6427, 1656, 0, 0, 0, 0, 0 }, + { 6428, 1656, 1, 14, 0, 0, 0 }, + { 6429, 1656, 2, 2, 0, 0, 0 }, + { 18722, 1656, 3, 56, 0, 0, 0 }, + { 7007, 1797, 0, 0, 0, 0, 0 }, + { 7008, 1797, 1, 14, 0, 0, 0 }, + { 7009, 1797, 2, 2, 0, 0, 0 }, + { 7010, 1798, 0, 0, 0, 0, 0 }, + { 7011, 1798, 1, 14, 0, 0, 0 }, + { 7012, 1798, 2, 2, 0, 0, 0 }, + { 7013, 1798, 3, 17, 407468, 4000, 0 }, + { 13362, 1798, 4, 9, 407468, 0, 0 }, + { 7014, 1799, 0, 0, 0, 0, 0 }, + { 7015, 1799, 1, 14, 0, 0, 0 }, + { 7016, 1799, 2, 2, 0, 0, 0 }, + { 7017, 1799, 3, 17, 391401, 4000, 0 }, + { 13025, 1799, 4, 0, 391401, 0, 0 }, + { 7847, 2004, 0, 0, 0, 0, 0 }, + { 7848, 2004, 1, 14, 0, 0, 0 }, + { 7849, 2004, 2, 2, 0, 0, 0 }, + { 7850, 2004, 3, 15, 1079, 0, 0 }, + { 7851, 2004, 4, 27, 5, 0, 0 }, + { 18223, 2004, 5, 56, 0, 0, 0 }, + { 8375, 2117, 0, 0, 0, 0, 0 }, + { 8376, 2117, 1, 14, 0, 0, 0 }, + { 8377, 2117, 2, 2, 0, 0, 0 }, + { 8378, 2117, 3, 12, 3, 45, 0 }, + { 8379, 2117, 4, 35, 900, 0, 0 }, + { 8380, 2118, 0, 0, 0, 0, 0 }, + { 8381, 2118, 1, 14, 0, 0, 0 }, + { 8382, 2118, 2, 2, 0, 0, 0 }, + { 8383, 2118, 3, 35, 900, 0, 0 }, + { 8567, 2118, 4, 50, 2, 45, 0 }, + { 8762, 2212, 0, 0, 0, 0, 0 }, + { 8763, 2212, 1, 14, 0, 0, 0 }, + { 8764, 2212, 2, 2, 0, 0, 0 }, + { 8765, 2212, 3, 16, 24858, 0, 0 }, + { 9554, 2383, 0, 0, 0, 0, 0 }, + { 9555, 2383, 1, 14, 0, 0, 0 }, + { 9556, 2383, 2, 2, 0, 0, 0 }, + { 9559, 2383, 3, 53, 194310, 4, 0 }, + { 9558, 2383, 4, 0, 390279, 0, 0 }, + { 9560, 2383, 5, 2, 390279, 0, 0 }, + { 9635, 2383, 6, 11, 3, 10, 0 }, + { 17671, 2383, 7, 56, 0, 0, 0 }, + { 9561, 2384, 0, 0, 0, 0, 0 }, + { 9562, 2384, 1, 14, 0, 0, 0 }, + { 9563, 2384, 2, 2, 0, 0, 0 }, + { 9565, 2384, 3, 53, 194310, 3, 0 }, + { 9566, 2384, 4, 0, 275699, 0, 0 }, + { 9567, 2384, 5, 2, 275699, 0, 0 }, + { 17678, 2384, 6, 56, 0, 0, 0 }, + { 10078, 2481, 0, 32, 80, 0, 0 }, + { 10079, 2481, 1, 0, 0, 0, 0 }, + { 10080, 2481, 2, 14, 0, 0, 0 }, + { 10081, 2481, 3, 2, 0, 0, 0 }, + { 10330, 2530, 0, 3, 5, 0, 0 }, + { 10331, 2530, 1, 0, 845, 0, 0 }, + { 10332, 2530, 2, 14, 0, 0, 0 }, + { 10333, 2530, 3, 2, 0, 0, 0 }, + { 27177, 2530, 4, 12, 3, 10, 0 }, + { 10639, 2592, 0, 3, 12, 0, 0 }, + { 10640, 2592, 1, 0, 0, 0, 0 }, + { 10641, 2592, 2, 14, 0, 0, 0 }, + { 10642, 2592, 3, 2, 0, 0, 0 }, + { 10802, 2629, 0, 3, 5, 0, 0 }, + { 10803, 2629, 1, 0, 0, 0, 0 }, + { 10804, 2629, 2, 14, 0, 0, 0 }, + { 10805, 2629, 3, 2, 0, 0, 0 }, + { 10911, 2654, 0, 0, 0, 0, 0 }, + { 10912, 2654, 1, 14, 0, 0, 0 }, + { 10913, 2654, 2, 2, 0, 0, 0 }, + { 10914, 2654, 3, 9, 393942, 0, 0 }, + { 11125, 2703, 0, 0, 0, 0, 0 }, + { 11126, 2703, 1, 14, 0, 0, 0 }, + { 11127, 2703, 2, 2, 0, 0, 0 }, + { 11429, 2773, 0, 0, 0, 0, 0 }, + { 11430, 2773, 1, 14, 0, 0, 0 }, + { 11431, 2773, 2, 2, 0, 0, 0 }, + { 11432, 2773, 3, 9, 393944, 0, 0 }, + { 12229, 2942, 0, 0, 0, 0, 0 }, + { 12230, 2942, 1, 14, 0, 0, 0 }, + { 12231, 2942, 2, 2, 0, 0, 0 }, + { 12232, 2942, 3, 11, 3, 10, 0 }, + { 12267, 2961, 0, 10, 357209, 0, 0 }, + { 12268, 2961, 1, 0, 0, 0, 0 }, + { 12269, 2961, 2, 14, 0, 0, 0 }, + { 12270, 2961, 3, 2, 0, 0, 0 }, + { 12388, 2995, 0, 0, 0, 0, 0 }, + { 12389, 2995, 1, 14, 0, 0, 0 }, + { 12390, 2995, 2, 2, 0, 0, 0 }, + { 12391, 2995, 3, 9, 263725, 0, 0 }, + { 12392, 2995, 4, 16, 383783, 0, 0 }, + { 12570, 2995, 5, 49, 2, 10, 0 }, + { 33241, 2995, 6, 67, 0, 0, 0 }, + { 12393, 2996, 0, 0, 0, 0, 0 }, + { 12394, 2996, 1, 14, 0, 0, 0 }, + { 12395, 2996, 2, 2, 0, 0, 0 }, + { 12396, 2996, 3, 9, 455681, 0, 0 }, + { 12397, 2997, 0, 0, 0, 0, 0 }, + { 12398, 2997, 1, 14, 0, 0, 0 }, + { 12399, 2997, 2, 2, 0, 0, 0 }, + { 12400, 2997, 3, 52, 384452, 18, 0 }, + { 12401, 2998, 0, 0, 0, 0, 0 }, + { 12402, 2998, 1, 14, 0, 0, 0 }, + { 12403, 2998, 2, 2, 0, 0, 0 }, + { 12404, 2998, 3, 2, 153626, 0, 0 }, + { 12405, 2999, 0, 0, 0, 0, 0 }, + { 12406, 2999, 1, 14, 0, 0, 0 }, + { 12407, 2999, 2, 2, 0, 0, 0 }, + { 12408, 2999, 3, 20, 100, 0, 0 }, + { 12409, 3000, 0, 0, 0, 0, 0 }, + { 12410, 3000, 1, 14, 0, 0, 0 }, + { 12411, 3000, 2, 2, 0, 0, 0 }, + { 12412, 3000, 3, 12, 3, 10, 0 }, + { 12413, 3001, 0, 0, 0, 0, 0 }, + { 12414, 3001, 1, 14, 0, 0, 0 }, + { 12415, 3001, 2, 2, 0, 0, 0 }, + { 32931, 3001, 3, 67, 0, 0, 0 }, + { 12416, 3002, 0, 0, 0, 0, 0 }, + { 12417, 3002, 1, 14, 0, 0, 0 }, + { 12418, 3002, 2, 2, 0, 0, 0 }, + { 12419, 3002, 3, 48, 1, 0, 0 }, + { 12523, 3002, 4, 11, 2, 10, 0 }, + { 12484, 3019, 0, 0, 0, 0, 0 }, + { 12485, 3019, 1, 14, 0, 0, 0 }, + { 12486, 3019, 2, 2, 0, 0, 0 }, + { 12487, 3019, 3, 1, 365350, 0, 0 }, + { 12488, 3019, 4, 16, 365362, 0, 0 }, + { 12489, 3019, 5, 16, 384267, 0, 0 }, + { 12490, 3019, 6, 15, 210824, 0, 0 }, + { 12524, 3028, 0, 0, 0, 0, 0 }, + { 12525, 3028, 1, 14, 0, 0, 0 }, + { 12526, 3028, 2, 2, 0, 0, 0 }, + { 12527, 3028, 3, 48, 1, 0, 0 }, + { 12560, 3037, 0, 0, 0, 0, 0 }, + { 12561, 3037, 1, 14, 0, 0, 0 }, + { 12562, 3037, 2, 2, 0, 0, 0 }, + { 12563, 3037, 3, 11, 3, 10, 0 }, + { 12564, 3037, 4, 47, 4, 0, 0 }, + { 12598, 3046, 0, 0, 0, 0, 0 }, + { 12599, 3046, 1, 14, 0, 0, 0 }, + { 12600, 3046, 2, 2, 0, 0, 0 }, + { 12601, 3046, 3, 9, 453601, 0, 0 }, + { 12602, 3047, 0, 0, 0, 0, 0 }, + { 12603, 3047, 1, 14, 0, 0, 0 }, + { 12604, 3047, 2, 2, 0, 0, 0 }, + { 12605, 3047, 3, 9, 263725, 0, 0 }, + { 12606, 3047, 4, 16, 383783, 0, 0 }, + { 12607, 3047, 5, 9, 461248, 0, 0 }, + { 12608, 3048, 0, 0, 0, 0, 0 }, + { 12609, 3048, 1, 14, 0, 0, 0 }, + { 12610, 3048, 2, 2, 0, 0, 0 }, + { 12611, 3048, 3, 9, 48107, 0, 0 }, + { 12658, 3048, 4, 16, 383874, 0, 0 }, + { 12612, 3049, 0, 0, 0, 0, 0 }, + { 12613, 3049, 1, 14, 0, 0, 0 }, + { 12614, 3049, 2, 2, 0, 0, 0 }, + { 12615, 3049, 3, 9, 48108, 0, 0 }, + { 12616, 3049, 4, 11, 3, 10, 0 }, + { 12617, 3050, 0, 0, 0, 0, 0 }, + { 12618, 3050, 1, 14, 0, 0, 0 }, + { 12619, 3050, 2, 2, 0, 0, 0 }, + { 12620, 3050, 3, 9, 48107, 0, 0 }, + { 12621, 3051, 0, 0, 0, 0, 0 }, + { 12622, 3051, 1, 14, 0, 0, 0 }, + { 12623, 3051, 2, 2, 0, 0, 0 }, + { 12624, 3051, 3, 9, 48108, 0, 0 }, + { 12625, 3052, 0, 0, 0, 0, 0 }, + { 12626, 3052, 1, 14, 0, 0, 0 }, + { 12627, 3052, 2, 2, 0, 0, 0 }, + { 12628, 3053, 0, 0, 0, 0, 0 }, + { 12629, 3053, 1, 14, 0, 0, 0 }, + { 12630, 3053, 2, 2, 0, 0, 0 }, + { 12631, 3053, 3, 1, 190319, 0, 0 }, + { 12632, 3053, 4, 1, 108853, 0, 0 }, + { 12644, 3053, 5, 16, 190319, 0, 0 }, + { 12633, 3054, 0, 9, 383883, 0, 0 }, + { 12634, 3054, 1, 0, 0, 0, 0 }, + { 12635, 3054, 2, 14, 0, 0, 0 }, + { 12636, 3054, 3, 2, 0, 0, 0 }, + { 12637, 3055, 0, 0, 0, 0, 0 }, + { 12638, 3055, 1, 14, 0, 0, 0 }, + { 12639, 3055, 2, 2, 0, 0, 0 }, + { 12640, 3055, 3, 8, 30, 0, 0 }, + { 33336, 3055, 4, 67, 0, 0, 0 }, + { 12641, 3056, 0, 0, 0, 0, 0 }, + { 12642, 3056, 1, 14, 0, 0, 0 }, + { 12643, 3056, 2, 2, 0, 0, 0 }, + { 33340, 3056, 3, 67, 0, 0, 0 }, + { 12645, 3057, 0, 9, 383874, 0, 0 }, + { 12646, 3057, 1, 0, 0, 0, 0 }, + { 12647, 3057, 2, 14, 0, 0, 0 }, + { 12648, 3057, 3, 2, 0, 0, 0 }, + { 12649, 3057, 4, 11, 3, 10, 0 }, + { 12654, 3059, 0, 0, 0, 0, 0 }, + { 12655, 3059, 1, 14, 0, 0, 0 }, + { 12656, 3059, 2, 2, 0, 0, 0 }, + { 12657, 3059, 3, 9, 190319, 0, 0 }, + { 33356, 3059, 4, 67, 0, 0, 0 }, + { 14220, 3455, 0, 0, 0, 0, 0 }, + { 14221, 3455, 1, 14, 0, 0, 0 }, + { 14222, 3455, 2, 2, 0, 0, 0 }, + { 14223, 3455, 3, 18, 980, 4000, 0 }, + { 14413, 3520, 0, 9, 457555, 0, 0 }, + { 14414, 3520, 1, 0, 0, 0, 0 }, + { 14415, 3520, 2, 14, 0, 0, 0 }, + { 14416, 3520, 3, 2, 0, 0, 0 }, + { 14746, 3587, 0, 0, 0, 0, 0 }, + { 14747, 3587, 1, 14, 0, 0, 0 }, + { 14748, 3587, 2, 2, 0, 0, 0 }, + { 14749, 3587, 3, 16, 2823, 0, 0 }, + { 15088, 3653, 0, 0, 0, 0, 0 }, + { 15089, 3653, 1, 14, 0, 0, 0 }, + { 15090, 3653, 2, 2, 0, 0, 0 }, + { 15091, 3653, 3, 58, 0, 0, 0 }, + { 15183, 3673, 0, 0, 0, 0, 0 }, + { 15184, 3673, 1, 14, 0, 0, 0 }, + { 15185, 3673, 2, 2, 0, 0, 0 }, + { 16141, 3673, 3, 16, 427441, 0, 0 }, + { 18727, 3673, 4, 56, 0, 0, 0 }, + { 16738, 4014, 0, 0, 0, 0, 0 }, + { 16739, 4014, 1, 14, 0, 0, 0 }, + { 16740, 4014, 2, 2, 0, 0, 0 }, + { 16741, 4014, 3, 58, 0, 0, 0 }, + { 16746, 4016, 0, 0, 0, 0, 0 }, + { 16747, 4016, 1, 14, 0, 0, 0 }, + { 16748, 4016, 2, 2, 0, 0, 0 }, + { 16749, 4017, 0, 0, 0, 0, 0 }, + { 16750, 4017, 1, 14, 0, 0, 0 }, + { 16751, 4017, 2, 2, 0, 0, 0 }, + { 16752, 4018, 0, 0, 0, 0, 0 }, + { 16753, 4018, 1, 14, 0, 0, 0 }, + { 16754, 4018, 2, 2, 0, 0, 0 }, + { 16755, 4019, 0, 0, 0, 0, 0 }, + { 16756, 4019, 1, 14, 0, 0, 0 }, + { 16757, 4019, 2, 2, 0, 0, 0 }, + { 16758, 4020, 0, 0, 0, 0, 0 }, + { 16759, 4020, 1, 14, 0, 0, 0 }, + { 16760, 4020, 2, 2, 0, 0, 0 }, + { 16761, 4021, 0, 0, 0, 0, 0 }, + { 16762, 4021, 1, 14, 0, 0, 0 }, + { 16763, 4021, 2, 2, 0, 0, 0 }, + { 16856, 4041, 0, 0, 207311, 0, 0 }, + { 16857, 4041, 1, 14, 0, 0, 0 }, + { 16858, 4041, 2, 2, 0, 0, 0 }, + { 16860, 4041, 3, 10, 194310, 0, 0 }, + { 16861, 4041, 4, 12, 3, 10, 0 }, + { 17688, 4041, 5, 56, 0, 0, 0 }, + { 16947, 4059, 0, 0, 207311, 0, 0 }, + { 16948, 4059, 1, 14, 0, 0, 0 }, + { 16949, 4059, 2, 2, 0, 0, 0 }, + { 16951, 4059, 3, 10, 194310, 0, 0 }, + { 17693, 4059, 4, 56, 0, 0, 0 }, + { 17121, 4094, 0, 0, 207311, 0, 0 }, + { 17122, 4094, 1, 14, 0, 0, 0 }, + { 17123, 4094, 2, 2, 0, 0, 0 }, + { 17697, 4094, 3, 56, 0, 0, 0 }, + { 17787, 4094, 4, 29, 2, 0, 0 }, + { 17382, 4147, 0, 0, 0, 0, 0 }, + { 17383, 4147, 1, 14, 0, 0, 0 }, + { 17384, 4147, 2, 2, 0, 0, 0 }, + { 17385, 4147, 3, 33, 30, 0, 0 }, + { 17398, 4151, 0, 0, 0, 0, 0 }, + { 17399, 4151, 1, 14, 0, 0, 0 }, + { 17400, 4151, 2, 2, 0, 0, 0 }, + { 17408, 4151, 3, 9, 264173, 0, 0 }, + { 17401, 4152, 0, 0, 0, 0, 0 }, + { 17402, 4152, 1, 14, 0, 0, 0 }, + { 17403, 4152, 2, 2, 0, 0, 0 }, + { 27608, 4153, 0, 0, 0, 0, 0 }, + { 27609, 4153, 1, 14, 0, 0, 0 }, + { 27610, 4153, 2, 2, 0, 0, 0 }, + { 36270, 4153, 3, 67, 0, 0, 0 }, + { 17413, 4156, 0, 0, 0, 0, 0 }, + { 17414, 4156, 1, 14, 0, 0, 0 }, + { 17415, 4156, 2, 2, 0, 0, 0 }, + { 17416, 4156, 3, 9, 433891, 0, 0 }, + { 17451, 4174, 0, 0, 0, 0, 0 }, + { 17452, 4174, 1, 14, 0, 0, 0 }, + { 17453, 4174, 2, 2, 0, 0, 0 }, + { 17454, 4174, 3, 3, 10, 0, 0 }, + { 17455, 4174, 4, 16, 389387, 0, 0 }, + { 17456, 4174, 5, 9, 388779, 0, 0 }, + { 17485, 4175, 0, 0, 0, 0, 0 }, + { 17486, 4175, 1, 14, 0, 0, 0 }, + { 17487, 4175, 2, 2, 0, 0, 0 }, + { 17488, 4175, 3, 3, 10, 0, 0 }, + { 17489, 4175, 4, 9, 438443, 0, 0 }, + { 33784, 4175, 5, 67, 0, 0, 0 }, + { 18369, 4370, 0, 0, 467307, 0, 0 }, + { 18370, 4370, 1, 14, 0, 0, 0 }, + { 18371, 4370, 2, 2, 0, 0, 0 }, + { 18457, 4370, 3, 3, 20, 0, 0 }, + { 18729, 4444, 0, 0, 0, 0, 0 }, + { 18730, 4444, 1, 14, 0, 0, 0 }, + { 18731, 4444, 2, 2, 0, 0, 0 }, + { 18905, 4444, 3, 16, 404542, 0, 0 }, + { 18906, 4444, 4, 56, 0, 0, 0 }, + { 19481, 4612, 0, 0, 0, 0, 0 }, + { 19482, 4612, 1, 14, 0, 0, 0 }, + { 19483, 4612, 2, 2, 0, 0, 0 }, + { 36687, 4612, 3, 3, 8, 0, 0 }, + { 19486, 4613, 0, 0, 0, 0, 0 }, + { 19487, 4613, 1, 14, 0, 0, 0 }, + { 19488, 4613, 2, 2, 0, 0, 0 }, + { 19489, 4614, 0, 0, 0, 0, 0 }, + { 19490, 4614, 1, 14, 0, 0, 0 }, + { 19491, 4614, 2, 2, 0, 0, 0 }, + { 19492, 4614, 3, 12, 1, 8, 0 }, + { 19493, 4614, 4, 16, 188370, 0, 0 }, + { 19498, 4616, 0, 0, 0, 0, 0 }, + { 19499, 4616, 1, 14, 0, 0, 0 }, + { 19500, 4616, 2, 2, 0, 0, 0 }, + { 19501, 4616, 3, 56, 0, 0, 0 }, + { 19502, 4617, 0, 0, 0, 0, 0 }, + { 19503, 4617, 1, 14, 0, 0, 0 }, + { 19504, 4617, 2, 2, 0, 0, 0 }, + { 19505, 4617, 3, 56, 0, 0, 0 }, + { 19506, 4618, 0, 0, 0, 0, 0 }, + { 19507, 4618, 1, 14, 0, 0, 0 }, + { 19508, 4618, 2, 2, 0, 0, 0 }, + { 19509, 4618, 3, 56, 0, 0, 0 }, + { 19510, 4619, 0, 0, 0, 0, 0 }, + { 19511, 4619, 1, 14, 0, 0, 0 }, + { 19512, 4619, 2, 2, 0, 0, 0 }, + { 19513, 4619, 3, 12, 3, 30, 0 }, + { 19514, 4619, 4, 38, 2, 0, 0 }, + { 19515, 4620, 0, 0, 0, 0, 0 }, + { 19516, 4620, 1, 14, 0, 0, 0 }, + { 19517, 4620, 2, 2, 0, 0, 0 }, + { 19518, 4620, 3, 50, 2, 30, 0 }, + { 19519, 4620, 4, 38, 3, 0, 0 }, + { 19520, 4621, 0, 0, 0, 0, 0 }, + { 19521, 4621, 1, 14, 0, 0, 0 }, + { 19522, 4621, 2, 2, 0, 0, 0 }, + { 19523, 4621, 3, 3, 5, 0, 0 }, + { 19524, 4622, 0, 0, 0, 0, 0 }, + { 19525, 4622, 1, 14, 0, 0, 0 }, + { 19526, 4622, 2, 2, 0, 0, 0 }, + { 19527, 4622, 3, 16, 188370, 0, 0 }, + { 19529, 4623, 0, 0, 0, 0, 0 }, + { 19530, 4623, 1, 14, 0, 0, 0 }, + { 19531, 4623, 2, 2, 0, 0, 0 }, + { 20165, 4623, 3, 16, 193356, 0, 0 }, + { 20166, 4623, 4, 16, 193357, 0, 0 }, + { 20167, 4623, 5, 16, 193358, 0, 0 }, + { 20168, 4623, 6, 16, 193359, 0, 0 }, + { 20169, 4623, 7, 16, 199600, 0, 0 }, + { 20170, 4623, 8, 16, 199603, 0, 0 }, + { 19532, 4624, 0, 0, 0, 0, 0 }, + { 19533, 4624, 1, 14, 0, 0, 0 }, + { 19534, 4624, 2, 2, 0, 0, 0 }, + { 19535, 4624, 3, 12, 2, 10, 0 }, + { 19536, 4624, 4, 16, 13877, 0, 0 }, + { 19537, 4625, 0, 0, 0, 0, 0 }, + { 19538, 4625, 1, 14, 0, 0, 0 }, + { 19539, 4625, 2, 2, 0, 0, 0 }, + { 19540, 4625, 3, 27, 5, 0, 0 }, + { 19541, 4625, 4, 56, 0, 0, 0 }, + { 19542, 4626, 0, 0, 0, 0, 0 }, + { 19543, 4626, 1, 14, 0, 0, 0 }, + { 19544, 4626, 2, 2, 0, 0, 0 }, + { 19545, 4626, 3, 56, 0, 0, 0 }, + { 19546, 4627, 0, 0, 0, 0, 0 }, + { 19547, 4627, 1, 14, 0, 0, 0 }, + { 19548, 4627, 2, 2, 0, 0, 0 }, + { 19549, 4627, 3, 56, 0, 0, 0 }, + { 19550, 4627, 4, 9, 196736, 0, 0 }, + { 19551, 4627, 5, 16, 228563, 0, 0 }, + { 19552, 4628, 0, 0, 0, 0, 0 }, + { 19553, 4628, 1, 14, 0, 0, 0 }, + { 19554, 4628, 2, 2, 0, 0, 0 }, + { 19555, 4628, 3, 3, 30, 0, 0 }, + { 19556, 4629, 0, 0, 0, 0, 0 }, + { 19557, 4629, 1, 14, 0, 0, 0 }, + { 19558, 4629, 2, 2, 0, 0, 0 }, + { 19559, 4629, 3, 56, 0, 0, 0 }, + { 19560, 4630, 0, 0, 0, 0, 0 }, + { 19561, 4630, 1, 14, 0, 0, 0 }, + { 19562, 4630, 2, 2, 0, 0, 0 }, + { 19563, 4630, 3, 3, 12, 0, 0 }, + { 19564, 4631, 0, 0, 0, 0, 0 }, + { 19565, 4631, 1, 14, 0, 0, 0 }, + { 19566, 4631, 2, 2, 0, 0, 0 }, + { 19567, 4631, 3, 3, 40, 0, 0 }, + { 19568, 4632, 0, 0, 0, 0, 0 }, + { 19569, 4632, 1, 14, 0, 0, 0 }, + { 19570, 4632, 2, 2, 0, 0, 0 }, + { 19571, 4632, 3, 56, 0, 0, 0 }, + { 19572, 4633, 0, 0, 0, 0, 0 }, + { 19573, 4633, 1, 14, 0, 0, 0 }, + { 19574, 4633, 2, 2, 0, 0, 0 }, + { 19575, 4634, 0, 0, 0, 0, 0 }, + { 19576, 4634, 1, 14, 0, 0, 0 }, + { 19577, 4634, 2, 2, 0, 0, 0 }, + { 19578, 4634, 3, 12, 3, 8, 0 }, + { 33728, 4634, 4, 67, 0, 0, 0 }, + { 19579, 4635, 0, 0, 0, 0, 0 }, + { 19580, 4635, 1, 14, 0, 0, 0 }, + { 19581, 4635, 2, 2, 0, 0, 0 }, + { 19582, 4635, 3, 56, 0, 0, 0 }, + { 19583, 4635, 4, 16, 418359, 0, 0 }, + { 19584, 4636, 0, 0, 0, 0, 0 }, + { 19585, 4636, 1, 14, 0, 0, 0 }, + { 19586, 4636, 2, 2, 0, 0, 0 }, + { 19587, 4636, 3, 56, 0, 0, 0 }, + { 19588, 4636, 4, 16, 418359, 0, 0 }, + { 19589, 4636, 5, 9, 228563, 0, 0 }, + { 19591, 4639, 0, 56, 0, 0, 0 }, + { 19592, 4639, 1, 2, 0, 0, 0 }, + { 19593, 4639, 2, 14, 0, 0, 0 }, + { 19594, 4639, 3, 0, 0, 0, 0 }, + { 19595, 4639, 4, 16, 443421, 0, 0 }, + { 19596, 4640, 0, 54, 325202, 2, 0 }, + { 19598, 4640, 1, 2, 0, 0, 0 }, + { 19599, 4640, 2, 14, 0, 0, 0 }, + { 19629, 4640, 3, 0, 0, 0, 0 }, + { 33848, 4640, 4, 67, 0, 0, 0 }, + { 19601, 4641, 0, 56, 0, 0, 0 }, + { 19602, 4641, 1, 2, 0, 0, 0 }, + { 19603, 4641, 2, 14, 0, 0, 0 }, + { 19604, 4641, 3, 0, 0, 0, 0 }, + { 19605, 4641, 4, 54, 393039, 20, 0 }, + { 19607, 4642, 0, 2, 0, 0, 0 }, + { 19608, 4642, 1, 14, 0, 0, 0 }, + { 19616, 4642, 2, 0, 0, 0, 0 }, + { 19653, 4642, 3, 3, 8, 0, 0 }, + { 19609, 4643, 0, 56, 0, 0, 0 }, + { 19610, 4643, 1, 2, 0, 0, 0 }, + { 19611, 4643, 2, 14, 0, 0, 0 }, + { 19617, 4643, 3, 0, 0, 0, 0 }, + { 19612, 4644, 0, 3, 5, 0, 0 }, + { 19613, 4644, 1, 2, 0, 0, 0 }, + { 19614, 4644, 2, 14, 0, 0, 0 }, + { 19618, 4644, 3, 16, 443421, 0, 0 }, + { 19619, 4644, 4, 0, 0, 0, 0 }, + { 19620, 4645, 0, 56, 0, 0, 0 }, + { 19621, 4645, 1, 2, 0, 0, 0 }, + { 19622, 4645, 2, 14, 0, 0, 0 }, + { 19623, 4645, 3, 0, 0, 0, 0 }, + { 19746, 4645, 4, 9, 116768, 0, 0 }, + { 19630, 4647, 0, 2, 0, 0, 0 }, + { 19631, 4647, 1, 14, 0, 0, 0 }, + { 19632, 4647, 2, 12, 3, 9, 0 }, + { 19633, 4647, 3, 0, 0, 0, 0 }, + { 33876, 4647, 4, 67, 0, 0, 0 }, + { 19671, 4648, 0, 2, 0, 0, 0 }, + { 19672, 4648, 1, 14, 0, 0, 0 }, + { 19673, 4648, 2, 0, 0, 0, 0 }, + { 19710, 4667, 0, 2, 0, 0, 0 }, + { 19711, 4667, 1, 14, 0, 0, 0 }, + { 19712, 4667, 2, 0, 0, 0, 0 }, + { 19713, 4667, 3, 16, 137639, 0, 0 }, + { 19751, 4677, 0, 56, 0, 0, 0 }, + { 19752, 4677, 1, 2, 0, 0, 0 }, + { 19753, 4677, 2, 14, 0, 0, 0 }, + { 19754, 4677, 3, 0, 0, 0, 0 }, + { 19874, 4677, 4, 50, 2, 9, 0 }, + { 19755, 4678, 0, 2, 0, 0, 0 }, + { 19756, 4678, 1, 14, 0, 0, 0 }, + { 19757, 4678, 2, 0, 0, 0, 0 }, + { 20018, 4678, 3, 56, 0, 0, 0 }, + { 19758, 4679, 0, 2, 0, 0, 0 }, + { 19759, 4679, 1, 14, 0, 0, 0 }, + { 19760, 4679, 2, 0, 0, 0, 0 }, + { 19911, 4679, 3, 25, 75, 0, 0 }, + { 33897, 4679, 4, 4, 10, 0, 0 }, + { 33898, 4679, 5, 67, 0, 0, 0 }, + { 19797, 4689, 0, 3, 20, 0, 0 }, + { 19798, 4689, 1, 2, 0, 0, 0 }, + { 19799, 4689, 2, 14, 0, 0, 0 }, + { 19800, 4689, 3, 0, 0, 0, 0 }, + { 20053, 4756, 0, 2, 0, 0, 0 }, + { 20054, 4756, 1, 14, 0, 0, 0 }, + { 20055, 4756, 2, 0, 0, 0, 0 }, + { 20056, 4756, 3, 56, 0, 0, 0 }, + { 20057, 4756, 4, 42, 4, 0, 0 }, + { 20058, 4756, 5, 25, 101, 0, 0 }, + { 20161, 4756, 6, 16, 443421, 0, 0 }, + { 20207, 4793, 0, 0, 0, 0, 0 }, + { 20208, 4793, 1, 14, 0, 0, 0 }, + { 20209, 4793, 2, 2, 0, 0, 0 }, + { 20210, 4793, 3, 56, 0, 0, 0 }, + { 20211, 4793, 4, 9, 115192, 0, 0 }, + { 20212, 4793, 5, 27, 5, 0, 0 }, + { 20213, 4793, 6, 9, 423703, 0, 0 }, + { 20227, 4797, 0, 0, 0, 0, 0 }, + { 20228, 4797, 1, 14, 0, 0, 0 }, + { 20229, 4797, 2, 2, 0, 0, 0 }, + { 20230, 4797, 3, 56, 0, 0, 0 }, + { 20231, 4797, 4, 9, 115191, 0, 0 }, + { 20232, 4797, 5, 27, 5, 0, 0 }, + { 20233, 4797, 6, 9, 423703, 0, 0 }, + { 20234, 4798, 0, 0, 0, 0, 0 }, + { 20235, 4798, 1, 14, 0, 0, 0 }, + { 20236, 4798, 2, 2, 0, 0, 0 }, + { 20237, 4798, 3, 56, 0, 0, 0 }, + { 20238, 4798, 4, 9, 11327, 0, 0 }, + { 20239, 4798, 5, 27, 5, 0, 0 }, + { 20240, 4798, 6, 9, 423703, 0, 0 }, + { 20254, 4802, 0, 0, 0, 0, 0 }, + { 20255, 4802, 1, 14, 0, 0, 0 }, + { 20256, 4802, 2, 2, 0, 0, 0 }, + { 20257, 4802, 3, 56, 0, 0, 0 }, + { 20258, 4802, 4, 9, 193357, 0, 0 }, + { 20259, 4802, 5, 27, 5, 0, 0 }, + { 20260, 4803, 0, 0, 0, 0, 0 }, + { 20261, 4803, 1, 14, 0, 0, 0 }, + { 20262, 4803, 2, 2, 0, 0, 0 }, + { 20263, 4803, 3, 56, 0, 0, 0 }, + { 20264, 4803, 4, 16, 315341, 0, 0 }, + { 20265, 4803, 5, 27, 5, 0, 0 }, + { 20279, 4816, 0, 0, 0, 0, 0 }, + { 20280, 4816, 1, 14, 0, 0, 0 }, + { 20281, 4816, 2, 2, 0, 0, 0 }, + { 20282, 4816, 3, 56, 0, 0, 0 }, + { 28999, 4816, 4, 16, 382245, 0, 0 }, + { 20283, 4817, 0, 0, 0, 0, 0 }, + { 20284, 4817, 1, 14, 0, 0, 0 }, + { 20285, 4817, 2, 2, 0, 0, 0 }, + { 20286, 4817, 3, 56, 0, 0, 0 }, + { 20287, 4817, 4, 27, 5, 0, 0 }, + { 20288, 4818, 0, 0, 0, 0, 0 }, + { 20289, 4818, 1, 14, 0, 0, 0 }, + { 20290, 4818, 2, 2, 0, 0, 0 }, + { 20291, 4818, 3, 56, 0, 0, 0 }, + { 20292, 4818, 4, 9, 383281, 0, 0 }, + { 20293, 4819, 0, 0, 0, 0, 0 }, + { 20294, 4819, 1, 14, 0, 0, 0 }, + { 20295, 4819, 2, 2, 0, 0, 0 }, + { 20296, 4819, 3, 56, 0, 0, 0 }, + { 20297, 4819, 4, 9, 195627, 0, 0 }, + { 20298, 4820, 0, 0, 0, 0, 0 }, + { 20299, 4820, 1, 14, 0, 0, 0 }, + { 20300, 4820, 2, 2, 0, 0, 0 }, + { 20301, 4820, 3, 56, 0, 0, 0 }, + { 20302, 4821, 0, 0, 0, 0, 0 }, + { 20303, 4821, 1, 14, 0, 0, 0 }, + { 20304, 4821, 2, 2, 0, 0, 0 }, + { 20305, 4821, 3, 56, 0, 0, 0 }, + { 20306, 4821, 4, 25, 99, 0, 0 }, + { 20346, 4828, 0, 0, 0, 0, 0 }, + { 20347, 4828, 1, 14, 0, 0, 0 }, + { 20348, 4828, 2, 2, 0, 0, 0 }, + { 20349, 4828, 3, 56, 0, 0, 0 }, + { 20350, 4829, 0, 0, 0, 0, 0 }, + { 20351, 4829, 1, 14, 0, 0, 0 }, + { 20352, 4829, 2, 2, 0, 0, 0 }, + { 20353, 4829, 3, 16, 315584, 0, 0 }, + { 20354, 4830, 0, 0, 0, 0, 0 }, + { 20355, 4830, 1, 14, 0, 0, 0 }, + { 20356, 4830, 2, 2, 0, 0, 0 }, + { 20357, 4830, 3, 27, 5, 0, 0 }, + { 20433, 4830, 4, 16, 382245, 0, 0 }, + { 20435, 4830, 5, 56, 0, 0, 0 }, + { 20358, 4831, 0, 14, 0, 0, 0 }, + { 20359, 4831, 1, 2, 0, 0, 0 }, + { 20360, 4831, 2, 2, 185313, 0, 0 }, + { 20361, 4831, 3, 0, 0, 0, 0 }, + { 20362, 4831, 4, 16, 212283, 0, 0 }, + { 20448, 4831, 5, 12, 1, 10, 0 }, + { 20363, 4832, 0, 14, 0, 0, 0 }, + { 20364, 4832, 1, 2, 0, 0, 0 }, + { 20365, 4832, 2, 0, 0, 0, 0 }, + { 20449, 4832, 3, 12, 1, 10, 0 }, + { 20366, 4833, 0, 14, 0, 0, 0 }, + { 20367, 4833, 1, 2, 0, 0, 0 }, + { 20368, 4833, 2, 0, 0, 0, 0 }, + { 20369, 4833, 3, 0, 280719, 0, 0 }, + { 20370, 4833, 4, 2, 280719, 0, 0 }, + { 20371, 4833, 5, 9, 185422, 0, 0 }, + { 20372, 4833, 6, 27, 5, 0, 0 }, + { 20450, 4833, 7, 12, 1, 10, 0 }, + { 20373, 4834, 0, 14, 0, 0, 0 }, + { 20374, 4834, 1, 2, 0, 0, 0 }, + { 20375, 4834, 2, 0, 0, 0, 0 }, + { 20376, 4834, 3, 12, 3, 10, 0 }, + { 20377, 4834, 4, 2, 319175, 0, 0 }, + { 20378, 4834, 5, 9, 185422, 0, 0 }, + { 20379, 4834, 6, 27, 5, 0, 0 }, + { 20451, 4834, 7, 12, 1, 10, 0 }, + { 20380, 4835, 0, 14, 0, 0, 0 }, + { 20381, 4835, 1, 2, 0, 0, 0 }, + { 20382, 4835, 2, 0, 0, 0, 0 }, + { 20384, 4835, 3, 2, 196819, 0, 0 }, + { 20385, 4835, 4, 9, 185422, 0, 0 }, + { 20386, 4835, 5, 27, 5, 0, 0 }, + { 20387, 4836, 0, 14, 0, 0, 0 }, + { 20388, 4836, 1, 2, 0, 0, 0 }, + { 20389, 4836, 2, 0, 0, 0, 0 }, + { 20390, 4836, 3, 9, 185422, 0, 0 }, + { 20391, 4836, 4, 27, 5, 0, 0 }, + { 20436, 4836, 5, 56, 0, 0, 0 }, + { 20392, 4837, 0, 14, 0, 0, 0 }, + { 20393, 4837, 1, 2, 0, 0, 0 }, + { 20394, 4837, 2, 0, 0, 0, 0 }, + { 20396, 4837, 3, 27, 5, 0, 0 }, + { 20397, 4837, 4, 9, 462128, 0, 0 }, + { 20437, 4837, 5, 56, 0, 0, 0 }, + { 20398, 4838, 0, 0, 0, 0, 0 }, + { 20399, 4838, 1, 14, 0, 0, 0 }, + { 20400, 4838, 2, 2, 0, 0, 0 }, + { 20401, 4838, 3, 28, 2, 0, 0 }, + { 20434, 4838, 4, 16, 382245, 0, 0 }, + { 20438, 4838, 5, 56, 0, 0, 0 }, + { 20402, 4839, 0, 14, 0, 0, 0 }, + { 20403, 4839, 1, 2, 0, 0, 0 }, + { 20404, 4839, 2, 0, 0, 0, 0 }, + { 20405, 4839, 3, 12, 3, 10, 0 }, + { 20406, 4840, 0, 14, 0, 0, 0 }, + { 20407, 4840, 1, 2, 0, 0, 0 }, + { 20408, 4840, 2, 0, 0, 0, 0 }, + { 20409, 4840, 3, 12, 3, 10, 0 }, + { 20410, 4840, 4, 27, 5, 0, 0 }, + { 20411, 4841, 0, 14, 0, 0, 0 }, + { 20412, 4841, 1, 2, 0, 0, 0 }, + { 20413, 4841, 2, 0, 0, 0, 0 }, + { 20414, 4841, 3, 27, 5, 0, 0 }, + { 20415, 4841, 4, 16, 185422, 0, 0 }, + { 20416, 4841, 5, 15, 1943, 0, 0 }, + { 20439, 4841, 6, 56, 0, 0, 0 }, + { 20417, 4842, 0, 14, 0, 0, 0 }, + { 20418, 4842, 1, 2, 0, 0, 0 }, + { 20419, 4842, 2, 0, 0, 0, 0 }, + { 20420, 4842, 3, 12, 3, 10, 0 }, + { 20421, 4843, 0, 14, 0, 0, 0 }, + { 20422, 4843, 1, 2, 0, 0, 0 }, + { 20423, 4843, 2, 0, 0, 0, 0 }, + { 20440, 4843, 3, 56, 0, 0, 0 }, + { 20424, 4844, 0, 14, 0, 0, 0 }, + { 20425, 4844, 1, 2, 0, 0, 0 }, + { 20426, 4844, 2, 0, 0, 0, 0 }, + { 20427, 4844, 3, 16, 185422, 0, 0 }, + { 20441, 4844, 4, 56, 0, 0, 0 }, + { 20428, 4845, 0, 14, 0, 0, 0 }, + { 20429, 4845, 1, 2, 0, 0, 0 }, + { 20430, 4845, 2, 9, 185422, 0, 0 }, + { 20431, 4845, 3, 0, 0, 0, 0 }, + { 20432, 4845, 4, 16, 212283, 0, 0 }, + { 20452, 4845, 5, 12, 1, 10, 0 }, + { 20442, 4846, 0, 14, 0, 0, 0 }, + { 20443, 4846, 1, 2, 0, 0, 0 }, + { 20444, 4846, 2, 0, 0, 0, 0 }, + { 20445, 4846, 3, 56, 0, 0, 0 }, + { 20446, 4846, 4, 16, 115191, 0, 0 }, + { 20447, 4846, 5, 16, 11327, 0, 0 }, + { 34925, 4846, 6, 4, 10, 0, 0 }, + { 20453, 4847, 0, 14, 0, 0, 0 }, + { 20454, 4847, 1, 2, 0, 0, 0 }, + { 20455, 4847, 2, 0, 0, 0, 0 }, + { 20456, 4847, 3, 27, 5, 0, 0 }, + { 20457, 4847, 4, 56, 0, 0, 0 }, + { 20458, 4848, 0, 0, 0, 0, 0 }, + { 20459, 4848, 1, 14, 0, 0, 0 }, + { 20460, 4848, 2, 2, 0, 0, 0 }, + { 20461, 4848, 3, 56, 0, 0, 0 }, + { 20462, 4848, 4, 55, 257946, 2, 0 }, + { 20463, 4850, 0, 0, 0, 0, 0 }, + { 20464, 4850, 1, 14, 0, 0, 0 }, + { 20465, 4850, 2, 2, 0, 0, 0 }, + { 20466, 4851, 0, 0, 0, 0, 0 }, + { 20467, 4851, 1, 14, 0, 0, 0 }, + { 20468, 4851, 2, 2, 0, 0, 0 }, + { 20469, 4851, 3, 56, 0, 0, 0 }, + { 20470, 4851, 4, 17, 257946, 2000, 0 }, + { 20471, 4853, 0, 0, 0, 0, 0 }, + { 20472, 4853, 1, 14, 0, 0, 0 }, + { 20473, 4853, 2, 2, 0, 0, 0 }, + { 20474, 4853, 3, 56, 0, 0, 0 }, + { 20475, 4853, 4, 17, 268877, 2000, 0 }, + { 20476, 4853, 5, 11, 3, 10, 0 }, + { 20477, 4856, 0, 0, 0, 0, 0 }, + { 20478, 4856, 1, 14, 0, 0, 0 }, + { 20479, 4856, 2, 2, 0, 0, 0 }, + { 20480, 4856, 3, 56, 0, 0, 0 }, + { 20481, 4857, 0, 0, 0, 0, 0 }, + { 20482, 4857, 1, 14, 0, 0, 0 }, + { 20483, 4857, 2, 2, 0, 0, 0 }, + { 20484, 4857, 3, 56, 0, 0, 0 }, + { 20485, 4858, 0, 0, 0, 0, 0 }, + { 20486, 4858, 1, 14, 0, 0, 0 }, + { 20487, 4858, 2, 2, 0, 0, 0 }, + { 20488, 4858, 3, 56, 0, 0, 0 }, + { 20490, 4859, 0, 9, 466932, 0, 0 }, + { 20491, 4859, 1, 0, 0, 0, 0 }, + { 20492, 4859, 2, 14, 0, 0, 0 }, + { 20493, 4859, 3, 2, 0, 0, 0 }, + { 20494, 4859, 4, 56, 0, 0, 0 }, + { 20495, 4860, 0, 0, 0, 0, 0 }, + { 20496, 4860, 1, 14, 0, 0, 0 }, + { 20497, 4860, 2, 2, 0, 0, 0 }, + { 20498, 4860, 3, 56, 0, 0, 0 }, + { 20499, 4861, 0, 0, 0, 0, 0 }, + { 20500, 4861, 1, 14, 0, 0, 0 }, + { 20501, 4861, 2, 2, 0, 0, 0 }, + { 20502, 4861, 3, 56, 0, 0, 0 }, + { 20503, 4861, 4, 11, 3, 10, 0 }, + { 20504, 4862, 0, 0, 0, 0, 0 }, + { 20505, 4862, 1, 14, 0, 0, 0 }, + { 20506, 4862, 2, 2, 0, 0, 0 }, + { 20507, 4862, 3, 56, 0, 0, 0 }, + { 20508, 4863, 0, 0, 0, 0, 0 }, + { 20509, 4863, 1, 14, 0, 0, 0 }, + { 20510, 4863, 2, 2, 0, 0, 0 }, + { 20511, 4863, 3, 56, 0, 0, 0 }, + { 20512, 4863, 4, 49, 2, 10, 0 }, + { 20513, 4865, 0, 0, 0, 0, 0 }, + { 20514, 4865, 1, 14, 0, 0, 0 }, + { 20515, 4865, 2, 2, 0, 0, 0 }, + { 20516, 4865, 3, 56, 0, 0, 0 }, + { 20517, 4865, 4, 17, 257622, 2000, 0 }, + { 20518, 4865, 5, 11, 3, 10, 0 }, + { 20519, 4866, 0, 0, 0, 0, 0 }, + { 20520, 4866, 1, 14, 0, 0, 0 }, + { 20521, 4866, 2, 2, 0, 0, 0 }, + { 20522, 4866, 3, 56, 0, 0, 0 }, + { 20523, 4866, 4, 9, 260242, 0, 0 }, + { 20524, 4866, 5, 11, 3, 10, 0 }, + { 20525, 4867, 0, 0, 0, 0, 0 }, + { 20526, 4867, 1, 14, 0, 0, 0 }, + { 20527, 4867, 2, 2, 0, 0, 0 }, + { 20528, 4867, 3, 56, 0, 0, 0 }, + { 20529, 4868, 0, 0, 0, 0, 0 }, + { 20530, 4868, 1, 14, 0, 0, 0 }, + { 20531, 4868, 2, 2, 0, 0, 0 }, + { 20532, 4868, 3, 3, 50, 0, 0 }, + { 20533, 4869, 0, 0, 0, 0, 0 }, + { 20534, 4869, 1, 14, 0, 0, 0 }, + { 20535, 4869, 2, 2, 0, 0, 0 }, + { 20536, 4869, 3, 56, 0, 0, 0 }, + { 20538, 4870, 0, 0, 0, 0, 0 }, + { 20539, 4870, 1, 14, 0, 0, 0 }, + { 20540, 4870, 2, 2, 0, 0, 0 }, + { 20541, 4870, 3, 56, 0, 0, 0 }, + { 20542, 4871, 0, 0, 0, 0, 0 }, + { 20543, 4871, 1, 14, 0, 0, 0 }, + { 20544, 4871, 2, 2, 0, 0, 0 }, + { 20545, 4871, 3, 56, 0, 0, 0 }, + { 20546, 4872, 0, 0, 0, 0, 0 }, + { 20547, 4872, 1, 14, 0, 0, 0 }, + { 20548, 4872, 2, 2, 0, 0, 0 }, + { 20549, 4872, 3, 56, 0, 0, 0 }, + { 32879, 4872, 4, 67, 0, 0, 0 }, + { 20550, 4873, 0, 0, 0, 0, 0 }, + { 20551, 4873, 1, 14, 0, 0, 0 }, + { 20552, 4873, 2, 2, 0, 0, 0 }, + { 20553, 4873, 3, 56, 0, 0, 0 }, + { 20554, 4873, 4, 11, 3, 10, 0 }, + { 20555, 4873, 5, 23, 90, 0, 0 }, + { 20556, 4874, 0, 0, 0, 0, 0 }, + { 20557, 4874, 1, 14, 0, 0, 0 }, + { 20558, 4874, 2, 2, 0, 0, 0 }, + { 20559, 4874, 3, 56, 0, 0, 0 }, + { 20560, 4874, 4, 9, 466932, 0, 0 }, + { 20561, 4875, 0, 0, 0, 0, 0 }, + { 20562, 4875, 1, 14, 0, 0, 0 }, + { 20563, 4875, 2, 2, 0, 0, 0 }, + { 20564, 4875, 3, 56, 0, 0, 0 }, + { 20565, 4875, 4, 9, 260242, 0, 0 }, + { 20566, 4876, 0, 0, 0, 0, 0 }, + { 20567, 4876, 1, 14, 0, 0, 0 }, + { 20568, 4876, 2, 2, 0, 0, 0 }, + { 20569, 4876, 3, 56, 0, 0, 0 }, + { 20570, 4877, 0, 0, 0, 0, 0 }, + { 20571, 4877, 1, 14, 0, 0, 0 }, + { 20572, 4877, 2, 2, 0, 0, 0 }, + { 21323, 4877, 3, 3, 5, 0, 0 }, + { 20574, 4878, 0, 0, 0, 0, 0 }, + { 20575, 4878, 1, 14, 0, 0, 0 }, + { 20576, 4878, 2, 2, 0, 0, 0 }, + { 20577, 4878, 3, 56, 0, 0, 0 }, + { 20578, 4879, 0, 0, 0, 0, 0 }, + { 20579, 4879, 1, 14, 0, 0, 0 }, + { 20580, 4879, 2, 2, 0, 0, 0 }, + { 20582, 4879, 3, 11, 3, 10, 0 }, + { 21286, 4879, 4, 3, 5, 0, 0 }, + { 20583, 4880, 0, 0, 0, 0, 0 }, + { 20584, 4880, 1, 14, 0, 0, 0 }, + { 20585, 4880, 2, 2, 0, 0, 0 }, + { 20586, 4880, 3, 56, 0, 0, 0 }, + { 20587, 4881, 0, 0, 0, 0, 0 }, + { 20588, 4881, 1, 14, 0, 0, 0 }, + { 20589, 4881, 2, 2, 0, 0, 0 }, + { 20590, 4881, 3, 56, 0, 0, 0 }, + { 20591, 4881, 4, 11, 3, 10, 0 }, + { 20592, 4882, 0, 0, 0, 0, 0 }, + { 20593, 4882, 1, 14, 0, 0, 0 }, + { 20594, 4882, 2, 2, 0, 0, 0 }, + { 21389, 4882, 3, 3, 5, 0, 0 }, + { 20596, 4883, 0, 0, 0, 0, 0 }, + { 20597, 4883, 1, 14, 0, 0, 0 }, + { 20598, 4883, 2, 2, 0, 0, 0 }, + { 20599, 4883, 3, 56, 0, 0, 0 }, + { 20600, 4884, 0, 0, 0, 0, 0 }, + { 20601, 4884, 1, 14, 0, 0, 0 }, + { 20602, 4884, 2, 2, 0, 0, 0 }, + { 20603, 4884, 3, 56, 0, 0, 0 }, + { 20604, 4885, 0, 0, 0, 0, 0 }, + { 20605, 4885, 1, 14, 0, 0, 0 }, + { 20606, 4885, 2, 2, 0, 0, 0 }, + { 20607, 4885, 3, 56, 0, 0, 0 }, + { 20608, 4886, 0, 0, 0, 0, 0 }, + { 20609, 4886, 1, 14, 0, 0, 0 }, + { 20610, 4886, 2, 2, 0, 0, 0 }, + { 20611, 4886, 3, 56, 0, 0, 0 }, + { 20667, 4899, 0, 0, 0, 0, 0 }, + { 20668, 4899, 1, 14, 0, 0, 0 }, + { 20669, 4899, 2, 2, 0, 0, 0 }, + { 20670, 4899, 3, 56, 0, 0, 0 }, + { 20671, 4899, 4, 11, 3, 10, 0 }, + { 20672, 4899, 5, 16, 268877, 0, 0 }, + { 21001, 4969, 0, 0, 0, 0, 0 }, + { 21002, 4969, 1, 14, 0, 0, 0 }, + { 21003, 4969, 2, 2, 0, 0, 0 }, + { 21004, 4969, 3, 56, 0, 0, 0 }, + { 21005, 4969, 4, 16, 257622, 0, 0 }, + { 21006, 4969, 5, 11, 3, 10, 0 }, + { 21266, 5025, 0, 0, 0, 0, 0 }, + { 21267, 5025, 1, 14, 0, 0, 0 }, + { 21268, 5025, 2, 2, 0, 0, 0 }, + { 21269, 5025, 3, 58, 0, 0, 0 }, + { 21449, 5071, 0, 0, 0, 0, 0 }, + { 21450, 5071, 1, 14, 0, 0, 0 }, + { 21451, 5071, 2, 2, 0, 0, 0 }, + { 21452, 5071, 3, 56, 0, 0, 0 }, + { 21453, 5071, 4, 9, 444764, 0, 0 }, + { 21454, 5072, 0, 0, 0, 0, 0 }, + { 21455, 5072, 1, 14, 0, 0, 0 }, + { 21456, 5072, 2, 2, 0, 0, 0 }, + { 21457, 5072, 3, 56, 0, 0, 0 }, + { 21462, 5072, 4, 9, 442442, 0, 0 }, + { 21458, 5073, 0, 0, 0, 0, 0 }, + { 21459, 5073, 1, 14, 0, 0, 0 }, + { 21460, 5073, 2, 2, 0, 0, 0 }, + { 21461, 5073, 3, 56, 0, 0, 0 }, + { 21463, 5073, 4, 9, 442435, 0, 0 }, + { 21464, 5074, 0, 0, 0, 0, 0 }, + { 21465, 5074, 1, 14, 0, 0, 0 }, + { 21466, 5074, 2, 2, 0, 0, 0 }, + { 21467, 5074, 3, 56, 0, 0, 0 }, + { 21469, 5075, 0, 0, 0, 0, 0 }, + { 21470, 5075, 1, 14, 0, 0, 0 }, + { 21471, 5075, 2, 2, 0, 0, 0 }, + { 21472, 5075, 3, 3, 30, 0, 0 }, + { 21473, 5076, 0, 0, 0, 0, 0 }, + { 21474, 5076, 1, 14, 0, 0, 0 }, + { 21475, 5076, 2, 2, 0, 0, 0 }, + { 21476, 5076, 3, 3, 30, 0, 0 }, + { 21477, 5076, 4, 15, 204598, 0, 0 }, + { 21514, 5076, 5, 16, 452489, 0, 0 }, + { 21478, 5077, 0, 0, 0, 0, 0 }, + { 21479, 5077, 1, 14, 0, 0, 0 }, + { 21480, 5077, 2, 2, 0, 0, 0 }, + { 21482, 5077, 3, 12, 1, 8, 0 }, + { 21483, 5078, 0, 0, 0, 0, 0 }, + { 21484, 5078, 1, 14, 0, 0, 0 }, + { 21485, 5078, 2, 2, 0, 0, 0 }, + { 21486, 5078, 3, 12, 1, 8, 0 }, + { 21491, 5080, 0, 0, 0, 0, 0 }, + { 21492, 5080, 1, 14, 0, 0, 0 }, + { 21493, 5080, 2, 2, 0, 0, 0 }, + { 21494, 5080, 3, 54, 203981, 4, 0 }, + { 21495, 5080, 4, 12, 6, 10, 0 }, + { 21498, 5081, 0, 0, 0, 0, 0 }, + { 21499, 5081, 1, 14, 0, 0, 0 }, + { 21500, 5081, 2, 2, 0, 0, 0 }, + { 21501, 5081, 3, 56, 0, 0, 0 }, + { 21502, 5082, 0, 0, 0, 0, 0 }, + { 21503, 5082, 1, 14, 0, 0, 0 }, + { 21504, 5082, 2, 2, 0, 0, 0 }, + { 21505, 5082, 3, 56, 0, 0, 0 }, + { 21510, 5084, 0, 0, 0, 0, 0 }, + { 21511, 5084, 1, 14, 0, 0, 0 }, + { 21512, 5084, 2, 2, 0, 0, 0 }, + { 21513, 5084, 3, 56, 0, 0, 0 }, + { 21515, 5085, 0, 0, 0, 0, 0 }, + { 21516, 5085, 1, 14, 0, 0, 0 }, + { 21517, 5085, 2, 2, 0, 0, 0 }, + { 21518, 5085, 3, 3, 30, 0, 0 }, + { 21519, 5085, 4, 2, 187827, 0, 0 }, + { 21520, 5085, 5, 9, 452409, 0, 0 }, + { 21521, 5086, 0, 0, 0, 0, 0 }, + { 21522, 5086, 1, 14, 0, 0, 0 }, + { 21523, 5086, 2, 2, 0, 0, 0 }, + { 21524, 5086, 3, 3, 30, 0, 0 }, + { 21525, 5086, 4, 9, 452489, 0, 0 }, + { 21526, 5086, 5, 15, 462030, 0, 0 }, + { 21527, 5087, 0, 0, 0, 0, 0 }, + { 21528, 5087, 1, 14, 0, 0, 0 }, + { 21529, 5087, 2, 2, 0, 0, 0 }, + { 21531, 5087, 3, 9, 162264, 0, 0 }, + { 21532, 5087, 4, 10, 320338, 0, 0 }, + { 21593, 5087, 5, 3, 5, 0, 0 }, + { 21533, 5088, 0, 0, 0, 0, 0 }, + { 21534, 5088, 1, 14, 0, 0, 0 }, + { 21535, 5088, 2, 2, 0, 0, 0 }, + { 21536, 5088, 3, 56, 0, 0, 0 }, + { 21537, 5088, 4, 9, 162264, 0, 0 }, + { 21538, 5088, 5, 10, 320338, 0, 0 }, + { 21539, 5089, 0, 0, 0, 0, 0 }, + { 21540, 5089, 1, 14, 0, 0, 0 }, + { 21541, 5089, 2, 2, 0, 0, 0 }, + { 21542, 5089, 3, 56, 0, 0, 0 }, + { 21543, 5089, 4, 9, 444686, 0, 0 }, + { 21544, 5090, 0, 0, 0, 0, 0 }, + { 21545, 5090, 1, 14, 0, 0, 0 }, + { 21546, 5090, 2, 2, 0, 0, 0 }, + { 21553, 5090, 3, 12, 1, 8, 0 }, + { 21548, 5091, 0, 0, 0, 0, 0 }, + { 21549, 5091, 1, 14, 0, 0, 0 }, + { 21550, 5091, 2, 2, 0, 0, 0 }, + { 21551, 5091, 3, 3, 8, 0, 0 }, + { 21552, 5091, 4, 9, 162264, 0, 0 }, + { 21596, 5091, 5, 2, 188499, 0, 0 }, + { 21554, 5092, 0, 0, 0, 0, 0 }, + { 21555, 5092, 1, 14, 0, 0, 0 }, + { 21556, 5092, 2, 2, 0, 0, 0 }, + { 21558, 5092, 3, 9, 162264, 0, 0 }, + { 21594, 5092, 4, 3, 5, 0, 0 }, + { 21559, 5093, 0, 0, 0, 0, 0 }, + { 21560, 5093, 1, 14, 0, 0, 0 }, + { 21561, 5093, 2, 2, 0, 0, 0 }, + { 21562, 5093, 3, 3, 30, 0, 0 }, + { 21563, 5094, 0, 0, 0, 0, 0 }, + { 21564, 5094, 1, 14, 0, 0, 0 }, + { 21565, 5094, 2, 2, 0, 0, 0 }, + { 21566, 5094, 3, 3, 8, 0, 0 }, + { 21567, 5095, 0, 0, 0, 0, 0 }, + { 21568, 5095, 1, 14, 0, 0, 0 }, + { 21569, 5095, 2, 2, 0, 0, 0 }, + { 21595, 5095, 3, 3, 5, 0, 0 }, + { 21571, 5096, 0, 0, 0, 0, 0 }, + { 21572, 5096, 1, 14, 0, 0, 0 }, + { 21573, 5096, 2, 2, 0, 0, 0 }, + { 21574, 5096, 3, 56, 0, 0, 0 }, + { 21575, 5096, 4, 9, 162264, 0, 0 }, + { 21576, 5097, 0, 0, 0, 0, 0 }, + { 21577, 5097, 1, 14, 0, 0, 0 }, + { 21578, 5097, 2, 2, 0, 0, 0 }, + { 21579, 5097, 3, 3, 30, 0, 0 }, + { 21580, 5098, 0, 0, 0, 0, 0 }, + { 21581, 5098, 1, 14, 0, 0, 0 }, + { 21582, 5098, 2, 2, 0, 0, 0 }, + { 21583, 5098, 3, 56, 0, 0, 0 }, + { 21584, 5099, 0, 0, 0, 0, 0 }, + { 21585, 5099, 1, 14, 0, 0, 0 }, + { 21586, 5099, 2, 2, 0, 0, 0 }, + { 21587, 5099, 3, 56, 0, 0, 0 }, + { 21588, 5100, 0, 9, 452489, 0, 0 }, + { 21589, 5100, 1, 0, 0, 0, 0 }, + { 21590, 5100, 2, 14, 0, 0, 0 }, + { 21591, 5100, 3, 2, 0, 0, 0 }, + { 21592, 5100, 4, 3, 30, 0, 0 }, + { 21814, 5145, 0, 0, 0, 0, 0 }, + { 21816, 5145, 1, 14, 0, 0, 0 }, + { 21817, 5145, 2, 2, 0, 0, 0 }, + { 21818, 5145, 3, 3, 8, 0, 0 }, + { 21879, 5158, 0, 3, 8, 0, 0 }, + { 21880, 5158, 1, 0, 0, 0, 0 }, + { 21881, 5158, 2, 14, 0, 0, 0 }, + { 21882, 5158, 3, 2, 0, 0, 0 }, + { 21883, 5158, 4, 15, 405233, 0, 0 }, + { 22002, 5183, 0, 0, 0, 0, 0 }, + { 22003, 5183, 1, 14, 0, 0, 0 }, + { 22004, 5183, 2, 2, 0, 0, 0 }, + { 22005, 5183, 3, 27, 5, 0, 0 }, + { 22006, 5183, 4, 3, 8, 0, 0 }, + { 22007, 5183, 5, 2, 1079, 0, 0 }, + { 22336, 5254, 0, 0, 0, 0, 0 }, + { 22337, 5254, 1, 14, 0, 0, 0 }, + { 22338, 5254, 2, 2, 0, 0, 0 }, + { 22339, 5254, 3, 2, 49143, 0, 0 }, + { 22340, 5254, 4, 3, 8, 0, 0 }, + { 23646, 5568, 0, 0, 0, 0, 0 }, + { 23647, 5568, 1, 14, 0, 0, 0 }, + { 23648, 5568, 2, 2, 0, 0, 0 }, + { 23649, 5568, 3, 0, 365937, 0, 0 }, + { 23650, 5568, 4, 2, 443328, 0, 0 }, + { 23651, 5568, 5, 15, 361500, 0, 0 }, + { 23652, 5569, 0, 0, 0, 0, 0 }, + { 23653, 5569, 1, 14, 0, 0, 0 }, + { 23654, 5569, 2, 2, 0, 0, 0 }, + { 23655, 5569, 3, 0, 365937, 0, 0 }, + { 23656, 5569, 4, 2, 443328, 0, 0 }, + { 23657, 5569, 5, 15, 444017, 0, 0 }, + { 23658, 5569, 6, 11, 3, 10, 0 }, + { 23659, 5570, 0, 0, 0, 0, 0 }, + { 23660, 5570, 1, 14, 0, 0, 0 }, + { 23661, 5570, 2, 2, 0, 0, 0 }, + { 23662, 5570, 3, 0, 365937, 0, 0 }, + { 23663, 5570, 4, 2, 443328, 0, 0 }, + { 23664, 5570, 5, 15, 444017, 0, 0 }, + { 23838, 5613, 0, 0, 0, 0, 0 }, + { 23839, 5613, 1, 14, 0, 0, 0 }, + { 23840, 5613, 2, 2, 0, 0, 0 }, + { 23841, 5613, 3, 9, 429523, 0, 0 }, + { 23842, 5613, 4, 2, 194153, 0, 0 }, + { 23942, 5613, 5, 3, 45, 0, 0 }, + { 23843, 5614, 0, 11, 3, 10, 0 }, + { 23844, 5614, 1, 0, 0, 0, 0 }, + { 23845, 5614, 2, 14, 0, 0, 0 }, + { 23846, 5614, 3, 2, 0, 0, 0 }, + { 23847, 5614, 4, 2, 194153, 0, 0 }, + { 23943, 5614, 5, 3, 45, 0, 0 }, + { 23848, 5615, 0, 0, 0, 0, 0 }, + { 23849, 5615, 1, 14, 0, 0, 0 }, + { 23850, 5615, 2, 2, 0, 0, 0 }, + { 23851, 5615, 3, 16, 48517, 0, 0 }, + { 23852, 5615, 4, 16, 48518, 0, 0 }, + { 23853, 5615, 5, 2, 194153, 0, 0 }, + { 23944, 5615, 6, 3, 45, 0, 0 }, + { 24020, 5657, 0, 0, 0, 0, 0 }, + { 24021, 5657, 1, 14, 0, 0, 0 }, + { 24022, 5657, 2, 2, 0, 0, 0 }, + { 24023, 5657, 3, 14, 117014, 0, 0 }, + { 24024, 5657, 4, 2, 117014, 0, 0 }, + { 24100, 5658, 0, 0, 0, 0, 0 }, + { 24101, 5658, 1, 14, 0, 0, 0 }, + { 24102, 5658, 2, 2, 0, 0, 0 }, + { 24103, 5658, 3, 11, 3, 10, 0 }, + { 24104, 5658, 4, 2, 188443, 0, 0 }, + { 24105, 5659, 0, 0, 0, 0, 0 }, + { 24106, 5659, 1, 14, 0, 0, 0 }, + { 24107, 5659, 2, 2, 0, 0, 0 }, + { 24108, 5659, 3, 2, 51505, 0, 0 }, + { 29672, 5716, 0, 58, 0, 0, 0 }, + { 29673, 5716, 1, 0, 0, 0, 0 }, + { 29674, 5716, 2, 14, 0, 0, 0 }, + { 29675, 5716, 3, 2, 0, 0, 0 }, + { 24299, 5728, 0, 0, 0, 0, 0 }, + { 24300, 5728, 1, 14, 0, 0, 0 }, + { 24301, 5728, 2, 2, 0, 0, 0 }, + { 24302, 5728, 3, 9, 431177, 0, 0 }, + { 27252, 6438, 0, 0, 0, 0, 0 }, + { 27253, 6438, 1, 14, 0, 0, 0 }, + { 27254, 6438, 2, 2, 0, 0, 0 }, + { 27255, 6438, 3, 56, 0, 0, 0 }, + { 27256, 6438, 4, 55, 7384, 1, 0 }, + { 27317, 6453, 0, 0, 0, 0, 0 }, + { 27318, 6453, 1, 14, 0, 0, 0 }, + { 27319, 6453, 2, 2, 0, 0, 0 }, + { 27321, 6453, 3, 2, 30451, 0, 0 }, + { 27975, 6636, 0, 0, 0, 0, 0 }, + { 27976, 6636, 1, 14, 0, 0, 0 }, + { 27977, 6636, 2, 2, 0, 0, 0 }, + { 28164, 6684, 0, 0, 0, 0, 0 }, + { 28165, 6684, 1, 14, 0, 0, 0 }, + { 28166, 6684, 2, 2, 0, 0, 0 }, + { 28167, 6684, 3, 3, 5, 0, 0 }, + { 28319, 6717, 0, 0, 0, 0, 0 }, + { 28320, 6717, 1, 14, 0, 0, 0 }, + { 28321, 6717, 2, 2, 0, 0, 0 }, + { 28324, 6717, 3, 9, 5215, 0, 0 }, + { 28368, 6729, 0, 0, 0, 0, 0 }, + { 28369, 6729, 1, 14, 0, 0, 0 }, + { 28370, 6729, 2, 2, 0, 0, 0 }, + { 28371, 6729, 3, 3, 5, 0, 0 }, + { 28482, 6755, 0, 27, 5, 0, 0 }, + { 28483, 6755, 1, 0, 0, 0, 0 }, + { 28484, 6755, 2, 14, 0, 0, 0 }, + { 28485, 6755, 3, 2, 0, 0, 0 }, + { 28486, 6755, 4, 2, 32645, 0, 0 }, + { 28938, 6846, 0, 27, 5, 0, 0 }, + { 28939, 6846, 1, 0, 0, 0, 0 }, + { 28940, 6846, 2, 14, 0, 0, 0 }, + { 28941, 6846, 3, 2, 0, 0, 0 }, + { 28942, 6846, 4, 2, 2098, 0, 0 }, + { 29112, 6879, 0, 0, 0, 0, 0 }, + { 29113, 6879, 1, 14, 0, 0, 0 }, + { 29114, 6879, 2, 2, 0, 0, 0 }, + { 29115, 6879, 3, 9, 115191, 0, 0 }, + { 29204, 6879, 4, 3, 40, 0, 0 }, + { 29116, 6880, 0, 0, 0, 0, 0 }, + { 29117, 6880, 1, 14, 0, 0, 0 }, + { 29118, 6880, 2, 2, 0, 0, 0 }, + { 29119, 6880, 3, 9, 11327, 0, 0 }, + { 29205, 6880, 4, 3, 40, 0, 0 }, + { 29355, 6933, 0, 0, 0, 0, 0 }, + { 29356, 6933, 1, 14, 0, 0, 0 }, + { 29357, 6933, 2, 2, 0, 0, 0 }, + { 29358, 6933, 3, 3, 15, 0, 0 }, + { 29359, 6934, 0, 0, 0, 0, 0 }, + { 29360, 6934, 1, 14, 0, 0, 0 }, + { 29361, 6934, 2, 2, 0, 0, 0 }, + { 29362, 6934, 3, 12, 1, 8, 0 }, + { 29363, 6934, 4, 54, 195181, 5, 0 }, + { 29364, 6935, 0, 0, 0, 0, 0 }, + { 29365, 6935, 1, 14, 0, 0, 0 }, + { 29366, 6935, 2, 2, 0, 0, 0 }, + { 29367, 6935, 3, 56, 0, 0, 0 }, + { 29368, 6935, 4, 55, 195181, 6, 0 }, + { 29425, 6949, 0, 0, 0, 0, 0 }, + { 29426, 6949, 1, 14, 0, 0, 0 }, + { 29427, 6949, 2, 2, 0, 0, 0 }, + { 29428, 6949, 3, 56, 0, 0, 0 }, + { 29429, 6949, 4, 16, 195181, 0, 0 }, + { 29486, 6963, 0, 0, 0, 0, 0 }, + { 29487, 6963, 1, 14, 0, 0, 0 }, + { 29488, 6963, 2, 2, 0, 0, 0 }, + { 29489, 6963, 3, 56, 0, 0, 0 }, + { 31857, 7487, 0, 0, 0, 0, 0 }, + { 31858, 7487, 1, 14, 0, 0, 0 }, + { 31859, 7487, 2, 2, 0, 0, 0 }, + { 31860, 7487, 3, 16, 48517, 0, 0 }, + { 31861, 7487, 4, 16, 48518, 0, 0 }, + { 31862, 7487, 5, 11, 3, 10, 0 }, + { 31863, 7487, 6, 67, 0, 0, 0 }, + { 31864, 7487, 7, 54, 326055, 2, 0 }, + { 32296, 7588, 0, 0, 0, 0, 0 }, + { 32297, 7588, 1, 14, 0, 0, 0 }, + { 32298, 7588, 2, 2, 0, 0, 0 }, + { 32299, 7588, 3, 16, 48517, 0, 0 }, + { 32300, 7588, 4, 16, 48518, 0, 0 }, + { 32301, 7588, 5, 9, 429523, 0, 0 }, + { 32409, 7614, 0, 0, 0, 0, 0 }, + { 32410, 7614, 1, 14, 0, 0, 0 }, + { 32411, 7614, 2, 2, 0, 0, 0 }, + { 32412, 7614, 3, 16, 48517, 0, 0 }, + { 32413, 7614, 4, 16, 48518, 0, 0 }, + { 32414, 7614, 5, 54, 326053, 2, 0 }, + { 32415, 7614, 6, 67, 0, 0, 0 }, + { 32502, 7635, 0, 0, 0, 0, 0 }, + { 32503, 7635, 1, 14, 0, 0, 0 }, + { 32504, 7635, 2, 2, 0, 0, 0 }, + { 32505, 7635, 3, 67, 0, 0, 0 }, + { 32506, 7635, 4, 45, 2, 0, 0 }, + { 32554, 7635, 5, 9, 392268, 0, 0 }, + { 32555, 7652, 0, 0, 0, 0, 0 }, + { 32556, 7652, 1, 14, 0, 0, 0 }, + { 32557, 7652, 2, 2, 0, 0, 0 }, + { 32558, 7652, 3, 67, 0, 0, 0 }, + { 32559, 7652, 4, 45, 4, 0, 0 }, + { 32719, 7692, 0, 0, 0, 0, 0 }, + { 32720, 7692, 1, 14, 0, 0, 0 }, + { 32721, 7692, 2, 2, 0, 0, 0 }, + { 32722, 7692, 3, 56, 0, 0, 0 }, + { 32723, 7692, 4, 67, 0, 0, 0 }, + { 32724, 7692, 5, 63, 2, 0, 0 }, + { 33357, 7837, 0, 9, 383874, 0, 0 }, + { 33358, 7837, 1, 0, 0, 0, 0 }, + { 33359, 7837, 2, 14, 0, 0, 0 }, + { 33360, 7837, 3, 2, 0, 0, 0 }, + { 33361, 7838, 0, 9, 383883, 0, 0 }, + { 33362, 7838, 1, 0, 0, 0, 0 }, + { 33363, 7838, 2, 14, 0, 0, 0 }, + { 33364, 7838, 3, 2, 0, 0, 0 }, + { 33365, 7838, 4, 49, 2, 10, 0 }, + { 33366, 7838, 5, 9, 48108, 0, 0 }, + { 33367, 7838, 6, 67, 0, 0, 0 }, + { 33466, 7864, 0, 0, 0, 0, 0 }, + { 33467, 7864, 1, 14, 0, 0, 0 }, + { 33468, 7864, 2, 2, 0, 0, 0 }, + { 33469, 7864, 3, 17, 451073, 3000, 0 }, + { 33470, 7865, 0, 0, 0, 0, 0 }, + { 33471, 7865, 1, 14, 0, 0, 0 }, + { 33472, 7865, 2, 2, 0, 0, 0 }, + { 33473, 7865, 3, 63, 3, 0, 0 }, + { 33474, 7865, 4, 65, 190319, 15000, 0 }, + { 33569, 7890, 0, 0, 0, 0, 0 }, + { 33570, 7890, 1, 14, 0, 0, 0 }, + { 33571, 7890, 2, 2, 0, 0, 0 }, + { 33572, 7890, 3, 17, 453207, 3000, 0 }, + { 34073, 8017, 0, 0, 0, 0, 0 }, + { 34074, 8017, 1, 14, 0, 0, 0 }, + { 34075, 8017, 2, 2, 0, 0, 0 }, + { 34076, 8017, 3, 18, 335467, 1500, 0 }, + { 34165, 8041, 0, 0, 0, 0, 0 }, + { 34166, 8041, 1, 14, 0, 0, 0 }, + { 34167, 8041, 2, 2, 0, 0, 0 }, + { 34168, 8041, 3, 9, 450404, 0, 0 }, + { 34169, 8041, 4, 63, 2, 0, 0 }, + { 34170, 8041, 5, 67, 0, 0, 0 }, + { 34171, 8042, 0, 0, 0, 0, 0 }, + { 34172, 8042, 1, 14, 0, 0, 0 }, + { 34173, 8042, 2, 2, 0, 0, 0 }, + { 34174, 8042, 3, 9, 450405, 0, 0 }, + { 34175, 8042, 4, 63, 2, 0, 0 }, + { 34176, 8042, 5, 66, 263165, 5000, 0 }, + { 34177, 8043, 0, 0, 0, 0, 0 }, + { 34178, 8043, 1, 14, 0, 0, 0 }, + { 34179, 8043, 2, 2, 0, 0, 0 }, + { 34180, 8043, 3, 9, 450405, 0, 0 }, + { 34181, 8043, 4, 65, 263165, 5000, 0 }, + { 34468, 8117, 0, 0, 0, 0, 0 }, + { 34469, 8117, 1, 14, 0, 0, 0 }, + { 34470, 8117, 2, 2, 0, 0, 0 }, + { 34471, 8117, 3, 63, 2, 0, 0 }, + { 34472, 8117, 4, 67, 0, 0, 0 }, + { 34489, 8123, 0, 0, 0, 0, 0 }, + { 34490, 8123, 1, 14, 0, 0, 0 }, + { 34491, 8123, 2, 2, 0, 0, 0 }, + { 34492, 8123, 3, 63, 2, 0, 0 }, + { 34493, 8123, 4, 67, 0, 0, 0 }, + { 34978, 8228, 0, 0, 0, 0, 0 }, + { 34979, 8228, 1, 14, 0, 0, 0 }, + { 34980, 8228, 2, 2, 0, 0, 0 }, + { 34981, 8228, 3, 56, 0, 0, 0 }, + { 34982, 8228, 4, 4, 10, 0, 0 }, + { 35068, 8247, 0, 0, 0, 0, 0 }, + { 35069, 8247, 1, 14, 0, 0, 0 }, + { 35070, 8247, 2, 2, 0, 0, 0 }, + { 35071, 8247, 3, 9, 155580, 0, 0 }, + { 35072, 8247, 4, 4, 10, 0, 0 }, + { 35797, 8424, 0, 0, 0, 0, 0 }, + { 35798, 8424, 1, 14, 0, 0, 0 }, + { 35799, 8424, 2, 2, 0, 0, 0 }, + { 35800, 8424, 3, 54, 117828, 2, 0 }, + { 35801, 8425, 0, 0, 0, 0, 0 }, + { 35802, 8425, 1, 14, 0, 0, 0 }, + { 35803, 8425, 2, 2, 0, 0, 0 }, + { 35804, 8425, 3, 49, 2, 10, 0 }, + { 35805, 8426, 0, 0, 0, 0, 0 }, + { 35806, 8426, 1, 14, 0, 0, 0 }, + { 35807, 8426, 2, 2, 0, 0, 0 }, + { 35808, 8426, 3, 49, 2, 10, 0 }, + { 35809, 8426, 4, 33, 40, 0, 0 }, + { 35810, 8426, 5, 67, 0, 0, 0 }, + { 35955, 8466, 0, 0, 0, 0, 0 }, + { 35956, 8466, 1, 14, 0, 0, 0 }, + { 35957, 8466, 2, 2, 0, 0, 0 }, + { 36230, 8535, 0, 17, 433891, 5000, 0 }, + { 36231, 8535, 1, 0, 0, 0, 0 }, + { 36232, 8535, 2, 14, 0, 0, 0 }, + { 36233, 8535, 3, 2, 0, 0, 0 }, + { 36349, 8568, 0, 0, 0, 0, 0 }, + { 36350, 8568, 1, 14, 0, 0, 0 }, + { 36351, 8568, 2, 2, 0, 0, 0 }, + { 36352, 8568, 3, 67, 0, 0, 0 }, + { 36353, 8568, 4, 33, 20, 0, 0 }, + { 36493, 8603, 0, 0, 0, 0, 0 }, + { 36494, 8603, 1, 14, 0, 0, 0 }, + { 36495, 8603, 2, 2, 0, 0, 0 }, + { 36496, 8603, 3, 56, 0, 0, 0 }, + { 36497, 8603, 4, 16, 203555, 0, 0 }, + { 36877, 8696, 0, 0, 0, 0, 0 }, + { 36878, 8696, 1, 14, 0, 0, 0 }, + { 36879, 8696, 2, 2, 0, 0, 0 }, + { 36880, 8696, 3, 15, 34914, 0, 0 }, + { 36881, 8696, 4, 16, 1243723, 0, 0 }, + { 36998, 8725, 0, 0, 0, 0, 0 }, + { 36999, 8725, 1, 14, 0, 0, 0 }, + { 37000, 8725, 2, 2, 0, 0, 0 }, + { 37001, 8725, 3, 15, 34914, 0, 0 }, + { 37002, 8725, 4, 66, 205385, 18000, 0 }, + { 37119, 8725, 5, 9, 406777, 0, 0 }, + { 37695, 8894, 0, 0, 0, 0, 0 }, + { 37696, 8894, 1, 14, 0, 0, 0 }, + { 37697, 8894, 2, 2, 0, 0, 0 }, + { 37887, 8940, 0, 0, 0, 0, 0 }, + { 37888, 8940, 1, 14, 0, 0, 0 }, + { 37889, 8940, 2, 2, 0, 0, 0 }, + { 37890, 8940, 3, 3, 30, 0, 0 }, + { 38090, 8986, 0, 0, 0, 0, 0 }, + { 38091, 8986, 1, 14, 0, 0, 0 }, + { 38092, 8986, 2, 2, 0, 0, 0 }, + { 38093, 8986, 3, 9, 16166, 0, 0 }, + { 38094, 8986, 4, 16, 260734, 0, 0 }, + { 38408, 8986, 5, 10, 188389, 0, 0 }, + { 38409, 8986, 6, 49, 2, 10, 0 }, + { 38095, 8987, 0, 0, 0, 0, 0 }, + { 38096, 8987, 1, 14, 0, 0, 0 }, + { 38097, 8987, 2, 2, 0, 0, 0 }, + { 38098, 8987, 3, 16, 16166, 0, 0 }, + { 38522, 9094, 0, 0, 0, 0, 0 }, + { 38523, 9094, 1, 14, 0, 0, 0 }, + { 38524, 9094, 2, 2, 0, 0, 0 }, + { 38525, 9094, 3, 11, 3, 10, 0 }, + { 38526, 9094, 4, 17, 191634, 3000, 0 }, + { 38527, 9095, 0, 0, 0, 0, 0 }, + { 38528, 9095, 1, 14, 0, 0, 0 }, + { 38529, 9095, 2, 2, 0, 0, 0 }, + { 38530, 9095, 3, 17, 191634, 3000, 0 }, + { 38629, 9119, 0, 9, 454015, 0, 0 }, + { 38630, 9119, 1, 0, 0, 0, 0 }, + { 38631, 9119, 2, 14, 0, 0, 0 }, + { 38632, 9119, 3, 2, 0, 0, 0 }, + { 38633, 9119, 4, 54, 344179, 10, 0 }, + { 38634, 9119, 5, 9, 384149, 0, 0 }, + { 38635, 9120, 0, 0, 0, 0, 0 }, + { 38636, 9120, 1, 14, 0, 0, 0 }, + { 38637, 9120, 2, 2, 0, 0, 0 }, + { 38638, 9120, 3, 9, 1218125, 0, 0 }, + { 38639, 9120, 4, 54, 344179, 10, 0 }, + { 38640, 9120, 5, 9, 384149, 0, 0 }, + { 38641, 9121, 0, 0, 0, 0, 0 }, + { 38642, 9121, 1, 14, 0, 0, 0 }, + { 38643, 9121, 2, 2, 0, 0, 0 }, + { 38644, 9121, 3, 54, 344179, 10, 0 }, + { 38645, 9121, 4, 11, 3, 10, 0 }, + { 38646, 9121, 5, 9, 384149, 0, 0 }, + { 38647, 9122, 0, 0, 0, 0, 0 }, + { 38648, 9122, 1, 14, 0, 0, 0 }, + { 38649, 9122, 2, 2, 0, 0, 0 }, + { 38650, 9122, 3, 54, 344179, 10, 0 }, + { 38651, 9122, 4, 9, 384149, 0, 0 }, + { 38652, 9123, 0, 0, 0, 0, 0 }, + { 38653, 9123, 1, 14, 0, 0, 0 }, + { 38654, 9123, 2, 2, 0, 0, 0 }, + { 38655, 9123, 3, 54, 344179, 10, 0 }, + { 38656, 9123, 4, 9, 384149, 0, 0 }, + { 38843, 9170, 0, 0, 0, 0, 0 }, + { 38844, 9170, 1, 14, 0, 0, 0 }, + { 38845, 9170, 2, 2, 0, 0, 0 }, + { 38846, 9170, 3, 56, 0, 0, 0 }, + { 38847, 9170, 4, 9, 114051, 0, 0 }, + { 38848, 9170, 5, 9, 384444, 0, 0 }, + { 39036, 9217, 0, 0, 0, 0, 0 }, + { 39037, 9217, 1, 14, 0, 0, 0 }, + { 39038, 9217, 2, 2, 0, 0, 0 }, + { 39039, 9217, 3, 16, 319773, 0, 0 }, + { 39040, 9218, 0, 0, 0, 0, 0 }, + { 39041, 9218, 1, 14, 0, 0, 0 }, + { 39042, 9218, 2, 2, 0, 0, 0 }, + { 39043, 9218, 3, 16, 319778, 0, 0 }, +} }; + diff --git a/engine/player/player.cpp b/engine/player/player.cpp index 291aea58b5f..85bc8dbf23c 100644 --- a/engine/player/player.cpp +++ b/engine/player/player.cpp @@ -1104,6 +1104,7 @@ player_t::player_t( sim_t* s, player_e t, util::string_view n, race_e r ) use_apl( "" ), // Actions use_default_action_list( false ), + use_blizzard_action_list( false ), precombat_action_list( 0 ), active_action_list(), default_action_list(), @@ -1395,12 +1396,15 @@ void player_t::init() pre_combat->used = true; get_action_priority_list( "default", "Executed every time the actor is available." ); - for ( auto& elem : alist_map ) + if ( !use_blizzard_action_list ) { - if ( elem.first == "default" ) - sim->error( "Ignoring action list named default." ); - else - get_action_priority_list( elem.first )->action_list_str = elem.second; + for ( auto& elem : alist_map ) + { + if ( elem.first == "default" ) + sim->error( "Ignoring action list named default." ); + else + get_action_priority_list( elem.first )->action_list_str = elem.second; + } } // If the owner is regenerating using dynamic resource regen, we need to @@ -3368,6 +3372,397 @@ void player_t::init_scaling() } } +void player_t::init_blizzard_action_list() +{ + clear_action_priority_lists(); + + action_priority_list_t* precombat = get_action_priority_list( "precombat" ); + action_priority_list_t* default_ = get_action_priority_list( "default" ); + action_priority_list_t* cooldowns = get_action_priority_list( "cooldowns", + "Major cooldowns are not used by the Assisted Combat system. " + "This simple default cooldown usage has been provided by simc." ); + action_priority_list_t* assisted_combat = get_action_priority_list( "assisted_combat", + "This is the default action priority list from the game's Assisted Combat system." ); + + precombat->add_action( "snapshot_stats" ); + + default_->add_action( "call_action_list,name=cooldowns" ); + default_->add_action( "call_action_list,name=assisted_combat" ); + + cooldowns->add_action( "use_items" ); + cooldowns->add_action( "potion" ); + cooldowns->add_action( "blood_fury" ); + cooldowns->add_action( "berserking" ); + cooldowns->add_action( "fireblood" ); + cooldowns->add_action( "ancestral_call" ); + + for ( const auto& step : assisted_combat_step_data_t::data( specialization(), is_ptr() ) ) + { + std::string options = ""; + std::string rule_str; + for ( const auto& rule : assisted_combat_rule_data_t::data( step.id, is_ptr() ) ) + { + std::string rule_str = parse_assisted_combat_rule( rule, step ); + if ( !rule_str.empty() ) + options += options.empty() ? rule_str : "&" + rule_str; + } + for ( const auto& name : action_names_from_spell_id( step.spell_id ) ) + { + if ( !name.empty() ) + { + if ( options.empty() ) + assisted_combat->add_action( name ); + else + assisted_combat->add_action( name + ",if=" + options ); + } + } + } +} + +std::vector player_t::action_names_from_spell_id( unsigned int spell_id ) const +{ + std::vector names; + const spell_data_t* spell = find_spell( spell_id ); + + if ( spell ) + names.push_back( util::tokenize_fn( spell->name_cstr() ) ); + + return names; +} + +std::string player_t::aura_expr_from_spell_id( unsigned int spell_id, bool on_self ) const +{ + const spell_data_t* spell = find_spell( spell_id ); + std::string aura_name = util::tokenize_fn( spell->name_cstr() ); + if ( aura_name.empty() ) + aura_name = fmt::format( "unknown_spell_{}", spell_id ); + + if ( on_self ) + { + if ( spell->flags( SX_PASSIVE ) ) + { + // check if this is a talent + for ( const auto& tree : { talent_tree::CLASS, talent_tree::SPECIALIZATION, talent_tree::HERO } ) + { + const auto& traits = trait_data_t::find_by_spell( tree, spell_id, util::class_id( type ), specialization(), is_ptr() ); + if ( traits.size() > 0 ) + return "talent." + aura_name; + } + } + + // use an existing buff with the spell id if available + for ( const buff_t* buff : buff_list ) + { + if ( buff->data().id() == spell_id ) + return "buff." + buff->name_str; + } + + return "buff." + aura_name; + } + + for ( auto e : spell->effects() ) + { + for ( auto a : { A_PERIODIC_DAMAGE, A_PERIODIC_LEECH } ) + { + if ( a == e.subtype() ) + return "dot." + aura_name; + } + } + + return "debuff." + aura_name; +} + +std::string player_t::parse_assisted_combat_rule( const assisted_combat_rule_data_t& rule, + const assisted_combat_step_data_t& step ) const +{ + auto tokenize_spell = [ & ] ( unsigned int spell_id ) + { + const spell_data_t* spell = find_spell( spell_id ); + if ( !spell ) + throw std::runtime_error( fmt::format( "Unable to find spell '{}' for assisted combat condition ' '.", spell_id, rule.id ) ); + std::string spell_name = util::tokenize_fn( spell->name_cstr() ); + if ( spell_name.empty() ) + return fmt::format( "unknown_spell_{}", spell_id ); + return spell_name; + }; + + auto v1 = rule.condition_value_1; + auto v2 = rule.condition_value_2; + auto v3 = rule.condition_value_3; + std::string expr_str; + // TODO: verify < vs <= and > vs >= on all condition types + switch ( rule.condition_type ) + { + case SPELL_LEARNED: + assert( v2 == 0 && v3 == 0 ); + if ( v1 ) + { + for ( const auto& tree : { talent_tree::CLASS, talent_tree::SPECIALIZATION, talent_tree::HERO } ) + { + const auto& traits = trait_data_t::find_by_spell( tree, v1, util::class_id( type ), specialization(), is_ptr() ); + if ( traits.size() > 0 ) + return fmt::format( "talent.{}", tokenize_spell( v1 ) ); + } + // TODO: Are there any other types of passives to check here? + // TODO: What happens when Blizzard uses an aura here like they did with Mind Flay: Insanity? + } + return ""; + case SPELL_ON_COOLDOWN: + assert( v2 == 0 && v3 == 0 ); + if ( v1 ) + return fmt::format( "!cooldown.{}.ready", tokenize_spell( v1 ) ); + return ""; + case SPELL_OFF_COOLDOWN: + assert( v2 == 0 && v3 == 0 ); + if ( v1 ) + return fmt::format( "cooldown.{}.ready", tokenize_spell( v1 ) ); + return ""; + case TARGET_DISTANCE_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "target.distance<{}", v1 ); + case TARGET_DISTANCE_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "target.distance>{}", v1 ); + case HOSTILE_TARGET: + case FRIENDLY_TARGET: + assert( v1 == 0 && v2 == 0 && v3 == 0 ); + return ""; + case HEALTH_PCT_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "target.health.pct>={}", v1 ); + case HEALTH_PCT_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "target.health.pct<={}", v1 ); + case AURA_ON_PLAYER: + assert( v2 == 0 && v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, true ); + // TODO: Are there any cases where a passive here would not be a talent? + if ( expr_str.find( "talent." ) == 0 ) + return expr_str; + return fmt::format( "{}.up", expr_str ); + case AURA_ON_TARGET: + assert( v2 == 0 && v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, false ); + if ( expr_str.find( "dot." ) == 0 ) + return fmt::format( "{}.ticking", expr_str ); + return fmt::format( "{}.up", expr_str ); + case TARGET_COUNT_NEAR_TARGET_GREATER: + assert( v2 == 0 && v3 == 0 ); + // TODO: add distance targeting + return fmt::format( "active_enemies>{}", v1 ); + case TARGET_COUNT_NEAR_PLAYER_GREATER: + assert( v2 == 0 && v3 == 0 ); + // TODO: add distance targeting + return fmt::format( "active_enemies>{}", v1 ); + case AURA_COUNT_NEAR_PLAYER_GREATER: + // TODO: add distance check? + // TODO: currently unused; verify condition value indices + expr_str = aura_expr_from_spell_id( v3, false ); + if ( expr_str.find( "dot." ) == 0 ) + return fmt::format( "active_{}>={}", expr_str, v1 ); // TODO: > or >=? + // TODO: support debuffs + throw std::runtime_error( "Debuffs are unsupported for assisted combat condition AURA_COUNT_NEAR_PLAYER_GREATER." ); + case AFFORD_COST: + assert( v2 == 0 && v3 == 0 ); + if ( v1 ) + // TODO: implement this expression + return fmt::format( "action.{}.cost_affordable", tokenize_spell( v1 ) ); + return ""; + case AURA_MISSING_TARGET: + assert( v2 == 0 && v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, false ); + if ( expr_str.find( "dot." ) == 0 ) + return fmt::format( "!{}.ticking", expr_str ); + return fmt::format( "{}.down", expr_str ); + case AURA_MISSING_PLAYER: + assert( v2 == 0 && v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, true ); + // TODO: Are there any cases where a passive here would not be a talent? + if ( expr_str.find( "talent." ) == 0 ) + return "!" + expr_str; + return fmt::format( "{}.down", expr_str ); + case AURA_DURATION_PLAYER: + assert( v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, true ); + // TODO: Are there any cases where these would be talents we should worry about? + if ( expr_str.find( "talent." ) == 0 ) + throw std::runtime_error( fmt::format( "Talents are unsupported for assisted combat condition AURA_DURATION_PLAYER.", rule.condition_type ) ); + return fmt::format( "{}.remains<={:g}", expr_str, v2 / 1000.0 ); + case AURA_DURATION_TARGET: + assert( v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, false ); + return fmt::format( "{}.remains<={:g}", expr_str, v2 / 1000.0 ); + case MANA_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "mana.pct>={:g}", v1 / 10.0 ); // TODO: Double check this + case MANA_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "mana.pct<={:g}", v1 / 10.0 ); // TODO: Double check this + case RAGE_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "rage>={}", v1 ); // TODO: Does this need a multiplier? + case RAGE_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "rage<={}", v1 ); // TODO: Does this need a multiplier? + case FOCUS_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "focus>={}", v1 ); + case FOCUS_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "focus<={}", v1 ); + case ENERGY_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "energy>={}", v1 ); + case ENERGY_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "energy<={}", v1 ); + case COMBO_POINTS_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "combo_points>={}", v1 ); + case COMBO_POINTS_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "combo_points<={}", v1 ); + case RUNES_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "rune>={}", v1 ); + case RUNES_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "rune<={}", v1 ); + case RUNIC_POWER_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "runic_power>={:g}", v1 / 10.0 ); + case RUNIC_POWER_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "runic_power<={:g}", v1 / 10.0 ); + case SOUL_SHARDS_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "soul_shard>={:g}", v1 / 10.0 ); + case SOUL_SHARDS_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "soul_shard<={:g}", v1 / 10.0 ); + case LUNAR_POWER_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "astral_power>={:g}", v1 / 10.0 ); + case LUNAR_POWER_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "astral_power<={:g}", v1 / 10.0 ); + case HOLY_POWER_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "holy_power>={}", v1 ); + case HOLY_POWER_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "holy_power<={}", v1 ); + case MAELSTROM_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "maelstrom>={}", v1 ); + case MAELSTROM_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "maelstrom<={}", v1 ); + case CHI_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "chi>={}", v1 ); + case CHI_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "chi<={}", v1 ); + case INSANITY_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "insanity>={:g}", v1 / 100.0 ); + case INSANITY_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "insanity<={:g}", v1 / 100.0 ); + case ESSENCE_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "essence>={}", v1 ); + case ESSENCE_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "essence<={}", v1 ); + case ARCANE_CHARGES_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "buff.arcane_charge.stack>={}", v1 ); + case ARCANE_CHARGES_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "buff.arcane_charge.stack<={}", v1 ); + case TARGET_COUNT_NEAR_TARGET_LESS: + assert( v3 == 0 ); + // TODO: add distance targeting + return fmt::format( "active_enemies<={}", v1 ); + case TARGET_COUNT_NEAR_PLAYER_LESS: + assert( v3 == 0 ); + // TODO: add distance targeting + return fmt::format( "active_enemies<={}", v1 ); + case AURA_COUNT_NEAR_PLAYER_LESS: + // TODO: add distance check? + expr_str = aura_expr_from_spell_id( v3, false ); + if ( expr_str.find( "dot." ) == 0 ) + return fmt::format( "active_{}<={}", expr_str, v1 ); // TODO: < or <=? + // TODO: support debuffs + throw std::runtime_error( "Debuffs are unsupported for assisted combat condition AURA_COUNT_NEAR_PLAYER_LESS." ); + case TARGET_AURA_APPLICATION_GREATER: + assert( v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, false ); + return fmt::format( "{}.stack>={}", expr_str, v2 ); + case TARGET_AURA_APPLICATION_LESS: + assert( v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, false ); + return fmt::format( "{}.stack<={}", expr_str, v2 ); + case PLAYER_AURA_APPLICATION_GREATER: + assert( v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, true ); + return fmt::format( "{}.stack>={}", expr_str, v2 ); + case PLAYER_AURA_APPLICATION_LESS: + assert( v3 == 0 ); + expr_str = aura_expr_from_spell_id( v1, true ); + return fmt::format( "{}.stack<={}", expr_str, v2 ); + case SPELL_IN_RANGE: + assert( v2 == 0 && v3 == 0 ); + if ( v1 ) + return fmt::format( "spell_targets.{}>0", tokenize_spell( v1 ) ); + return "spell_targets>0"; + case HAS_PET: + assert( v1 == 0 && v2 == 0 && v3 == 0 ); + return "pet.any.active"; + case HAS_NO_PET: + assert( v1 == 0 && v2 == 0 && v3 == 0 ); + return "!pet.any.active"; + case FURY_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "fury>={}", v1 ); + case FURY_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "fury<={}", v1 ); + case PAIN_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "pain>={}", v1 ); + case PAIN_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "pain<={}", v1 ); + case SPELL_CHARGES_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "charges>={}", v1 ); + case SPELL_CHARGES_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "charges<={}", v1 ); + case COOLDOWN_REMAINING_GREATER: + assert( v3 == 0 ); + return fmt::format( "cooldown.{}.remains>={:g}", tokenize_spell( v1 ), v2 / 1000.0 ); + case COOLDOWN_REMAINING_LESS: + assert( v3 == 0 ); + return fmt::format( "cooldown.{}.remains<={:g}", tokenize_spell( v1 ), v2 / 1000.0 ); + case COOLDOWN_ALLOW_CASTING_SUCCESS: + assert( v1 == 0 && v2 == 0 && v3 == 0 ); + // TODO: figure out exactly what this does and implement it if necessary + return ""; + case PLAYER_HEALTH_PCT_GREATER: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "health.pct>={}", v1 ); + case PLAYER_HEALTH_PCT_LESS: + assert( v2 == 0 && v3 == 0 ); + return fmt::format( "health.pct<={}", v1 ); + default: + throw std::runtime_error( fmt::format( "unknown assisted combat condition type '{}'", rule.condition_type ) ); + } +} + void player_t::init_background_actions() { if ( !is_enemy() ) @@ -3387,7 +3782,10 @@ void player_t::create_actions() if ( action_list_str.empty() ) no_action_list_provided = true; - init_action_list(); // virtual function which creates the action list string + if ( use_blizzard_action_list ) + init_blizzard_action_list(); + else + init_action_list(); // virtual function which creates the action list string std::string modify_action_options; @@ -3414,7 +3812,7 @@ void player_t::create_actions() if ( !use_apl.empty() ) copy_action_priority_list( "default", use_apl ); - if ( !action_list_str.empty() ) + if ( !action_list_str.empty() && !use_blizzard_action_list ) get_action_priority_list( "default" )->action_list_str = action_list_str; if ( is_player() && sim->enable_all_item_effects ) @@ -11658,6 +12056,20 @@ std::unique_ptr player_t::create_expression( util::string_view expressio // pet if ( splits.size() >= 2 && splits[ 0 ] == "pet" ) { + if ( splits[ 1 ] == "any" && splits[ 2 ] == "active" ) + { + return make_fn_expr( expression_str, [ this ] + { + for ( auto p : active_pets ) + { + if ( p->type == PLAYER_PET && !p->is_sleeping() ) + return 1.0; + } + + return 0.0; + } ); + } + pet_t* pet = find_pet( splits[ 1 ] ); spawner::base_actor_spawner_t* pet_spawner = nullptr; @@ -12222,10 +12634,10 @@ std::string player_t::create_profile( save_e stype ) if ( stype & SAVE_ACTIONS ) { - if ( !action_list_str.empty() || use_default_action_list ) + if ( !action_list_str.empty() || use_default_action_list || use_blizzard_action_list ) { // If we created a default action list, add comments - if ( no_action_list_provided ) + if ( no_action_list_provided && !use_blizzard_action_list ) profile_str += action_list_information; auto apls = sorted_action_priority_lists( this ); @@ -12646,6 +13058,7 @@ void player_t::create_options() add_option( opt_string( "skip_actions", action_list_skip ) ); add_option( opt_string( "modify_action", modify_action ) ); add_option( opt_string( "use_apl", use_apl ) ); + add_option( opt_bool( "use_blizzard_action_list", use_blizzard_action_list ) ); add_option( opt_timespan( "reaction_time_mean", reaction.mean ) ); add_option( opt_timespan( "reaction_time_stddev", reaction.stddev ) ); add_option( opt_timespan( "reaction_time_nu", reaction_nu ) ); diff --git a/engine/player/player.hpp b/engine/player/player.hpp index 23e7097b1c1..9d7de0dd86a 100644 --- a/engine/player/player.hpp +++ b/engine/player/player.hpp @@ -9,6 +9,7 @@ #include "actor.hpp" #include "assessor.hpp" +#include "dbc/assisted_combat.hpp" #include "dbc/specialization.hpp" #include "effect_callbacks.hpp" #include "gear_stats.hpp" @@ -324,6 +325,7 @@ struct player_t : public actor_t std::string modify_action; std::string use_apl; bool use_default_action_list; + bool use_blizzard_action_list; auto_dispose< std::vector > dot_list; auto_dispose< std::vector > action_priority_list; std::vector precombat_action_list; @@ -1116,6 +1118,11 @@ struct player_t : public actor_t virtual void init_special_effect( special_effect_t& effect ); virtual void init_scaling(); virtual void init_action_list() {} + virtual void init_blizzard_action_list(); + virtual std::vector action_names_from_spell_id( unsigned int spell_id ) const; + virtual std::string aura_expr_from_spell_id( unsigned int spell_id, bool on_self = true ) const; + virtual std::string parse_assisted_combat_rule( const assisted_combat_rule_data_t& rule, + const assisted_combat_step_data_t& step ) const; virtual void init_gains(); virtual void init_procs(); virtual void init_uptimes(); diff --git a/source_files/QT_engine.pri b/source_files/QT_engine.pri index dc4a28367dd..eaf4253b1c6 100644 --- a/source_files/QT_engine.pri +++ b/source_files/QT_engine.pri @@ -38,6 +38,7 @@ HEADERS += engine/class_modules/warlock/sc_warlock.hpp HEADERS += engine/class_modules/warlock/sc_warlock_pets.hpp HEADERS += engine/config.hpp HEADERS += engine/dbc/active_spells.hpp +HEADERS += engine/dbc/assisted_combat.hpp HEADERS += engine/dbc/azerite.hpp HEADERS += engine/dbc/character_loadout.hpp HEADERS += engine/dbc/client_data.hpp @@ -254,6 +255,7 @@ SOURCES += engine/class_modules/warlock/sc_warlock_actions.cpp SOURCES += engine/class_modules/warlock/sc_warlock_init.cpp SOURCES += engine/class_modules/warlock/sc_warlock_pets.cpp SOURCES += engine/dbc/active_spells.cpp +SOURCES += engine/dbc/assisted_combat.cpp SOURCES += engine/dbc/azerite.cpp SOURCES += engine/dbc/character_loadout.cpp SOURCES += engine/dbc/client_data.cpp @@ -374,3 +376,4 @@ SOURCES += engine/util/rng.cpp SOURCES += engine/util/timespan.cpp SOURCES += engine/util/util.cpp SOURCES += engine/util/xml.cpp + diff --git a/source_files/VS_engine.props b/source_files/VS_engine.props index 7b8c8951b24..1d2269c8d86 100644 --- a/source_files/VS_engine.props +++ b/source_files/VS_engine.props @@ -42,6 +42,7 @@ To change the list of source files run synchronize.py + @@ -257,6 +258,7 @@ To change the list of source files run synchronize.py + @@ -378,4 +380,4 @@ To change the list of source files run synchronize.py - + \ No newline at end of file diff --git a/source_files/cmake_engine.txt b/source_files/cmake_engine.txt index ca3f72b4e11..3d922a337e1 100644 --- a/source_files/cmake_engine.txt +++ b/source_files/cmake_engine.txt @@ -36,6 +36,7 @@ class_modules/warlock/sc_warlock.hpp class_modules/warlock/sc_warlock_pets.hpp config.hpp dbc/active_spells.hpp +dbc/assisted_combat.hpp dbc/azerite.hpp dbc/character_loadout.hpp dbc/client_data.hpp @@ -251,6 +252,7 @@ class_modules/warlock/sc_warlock_actions.cpp class_modules/warlock/sc_warlock_init.cpp class_modules/warlock/sc_warlock_pets.cpp dbc/active_spells.cpp +dbc/assisted_combat.cpp dbc/azerite.cpp dbc/character_loadout.cpp dbc/client_data.cpp @@ -371,4 +373,4 @@ util/rng.cpp util/timespan.cpp util/util.cpp util/xml.cpp -) +) \ No newline at end of file diff --git a/source_files/engine_make b/source_files/engine_make index 962da999ca1..a3b572330f2 100644 --- a/source_files/engine_make +++ b/source_files/engine_make @@ -57,6 +57,7 @@ SRC += \ class_modules$(PATHSEP)warlock$(PATHSEP)sc_warlock_init.cpp \ class_modules$(PATHSEP)warlock$(PATHSEP)sc_warlock_pets.cpp \ dbc$(PATHSEP)active_spells.cpp \ + dbc$(PATHSEP)assisted_combat.cpp \ dbc$(PATHSEP)azerite.cpp \ dbc$(PATHSEP)character_loadout.cpp \ dbc$(PATHSEP)client_data.cpp \ @@ -176,4 +177,4 @@ SRC += \ util$(PATHSEP)rng.cpp \ util$(PATHSEP)timespan.cpp \ util$(PATHSEP)util.cpp \ - util$(PATHSEP)xml.cpp \ + util$(PATHSEP)xml.cpp \ \ No newline at end of file