From acc257b8b666c881a3c6b02b7ff45ac0e32a1942 Mon Sep 17 00:00:00 2001 From: RedRafe <93430988+RedRafe@users.noreply.github.com> Date: Fri, 29 Mar 2024 00:27:27 +0100 Subject: [PATCH] April fools maps (#1404) * Upload pinguin scenario * Fix relative path * Pinguin scenario modularization * Update enemy_turrets.lua Added energy interface controls to limit power available to enemy laser turrets, with laser_shots_per_level constant for balancing. * Update floor_is_lava.lua Now spawns fire under players when level is half of max. * Explosion Scare Module Added explosion_scare module. Chooses players to randomly explode (non-damaging) a number of times before switching to new targets. Explosion intensity increases as module increases. * Update pinguin.lua Removed comment block over modules. * Added New Module: permanent_factory Has a very small chance to make an entity unminable and undestructible when placed. * MeteOres Added new module: MeteOres. Spawns a random meteor that damages entities, creates ore, and spawns biters. * Update meteOres.lua Added explosion to meteor * Added Auto Build Added auto_build module. Selects random players, and automatically builds the item in their cursor nearby for a while, before changing targets. * New module: Unorganized Recipes Added a new module to hide recipe groups and subgroups for random players. This leads to "unorganized" crafting menus. * Update auto_build.lua Fixed typo. I must have changed base targets to 0 instead of the global level when preparing this file for commit. * Add Biter Ores Module Add new module. Spawns ores on death of biters, worms, and spawners, based on difficulty of biter and level. looks for ores on the tile the biter dies on to add to, otherwise looks nearby for an ore type and uses that, otherwise decides on a new ore type to spawn. This should allow players to set up "farms" for their ores, creating reasonable ore patches. Contains a RANDOM_ORES constant that will make the search radius small and ensure random ores are placed instead. * Update biter_ores.lua Found typo. radius should be .1 not 1 for tile directly beneath biter. * Updated Existing Modules Got luacheck setup in my IDE so we don't have to wait for RedMew to run it. Fixed white-space and other linting errors. * Split AF scenarios * Add alien biomes module * Draft april-fools scenarios * Fix draft issues --------- Co-authored-by: R. Nukem --- .luacheckrc | 2 +- map_gen/data/presets/antarctica.lua | 3358 +++++++++++++++++ map_gen/data/presets/antarctica_earth.lua | 2065 ++++++++++ map_gen/maps/april_fools/2019.lua | 240 ++ map_gen/maps/april_fools/2024.lua | 322 ++ .../modules/alternative_biters.lua | 126 + .../maps/april_fools/modules/auto_build.lua | 129 + .../maps/april_fools/modules/biter_ores.lua | 115 + .../april_fools/modules/crazy_chat_colors.lua | 75 + .../april_fools/modules/crazy_toolbar.lua | 83 + .../april_fools/modules/enemy_turrets.lua | 147 + .../april_fools/modules/explosion_scare.lua | 120 + .../april_fools/modules/floor_is_lava.lua | 71 + .../maps/april_fools/modules/golden_goose.lua | 106 + .../april_fools/modules/marathon_mode.lua | 62 + map_gen/maps/april_fools/modules/meteOres.lua | 176 + .../april_fools/modules/orphan_crafting.lua | 90 + .../april_fools/modules/permanent_factory.lua | 77 + .../maps/april_fools/modules/random_ores.lua | 118 + .../april_fools/modules/rotate_entities.lua | 83 + .../april_fools/modules/rotate_inserters.lua | 92 + .../maps/april_fools/modules/rotten_egg.lua | 104 + .../modules/unorganized_recipes.lua | 95 + map_gen/maps/april_fools/scenario/camera.lua | 215 ++ .../scenario/entity-restrictions.lua | 51 + .../scenario/evolution_control.lua | 22 + map_gen/maps/april_fools/scenario/market.lua | 312 ++ .../april_fools/scenario/market_items.lua | 66 + map_gen/maps/april_fools/scenario/mines.lua | 159 + .../april_fools/scenario/restart_command.lua | 194 + .../april_fools/scenario/rocket_launched.lua | 80 + .../april_fools/scenario/rocket_waves.lua | 228 ++ .../april_fools/scenario/shared_globals.lua | 17 + map_gen/shared/alien_biomes.lua | 217 ++ resources/alien_biomes/biomes.lua | 133 + resources/alien_biomes/biomes_settings.lua | 71 + resources/alien_biomes/tile_names.lua | 49 + resources/alien_biomes/tile_presets.lua | 262 ++ resources/discord.lua | 6 +- resources/item_list.lua | 146 + .../april-fools-2019/map_selection.lua | 1 + .../april-fools-2024/map_selection.lua | 1 + utils/gui_tests.lua | 2 +- 43 files changed, 10084 insertions(+), 4 deletions(-) create mode 100644 map_gen/data/presets/antarctica.lua create mode 100644 map_gen/data/presets/antarctica_earth.lua create mode 100644 map_gen/maps/april_fools/2019.lua create mode 100644 map_gen/maps/april_fools/2024.lua create mode 100644 map_gen/maps/april_fools/modules/alternative_biters.lua create mode 100644 map_gen/maps/april_fools/modules/auto_build.lua create mode 100644 map_gen/maps/april_fools/modules/biter_ores.lua create mode 100644 map_gen/maps/april_fools/modules/crazy_chat_colors.lua create mode 100644 map_gen/maps/april_fools/modules/crazy_toolbar.lua create mode 100644 map_gen/maps/april_fools/modules/enemy_turrets.lua create mode 100644 map_gen/maps/april_fools/modules/explosion_scare.lua create mode 100644 map_gen/maps/april_fools/modules/floor_is_lava.lua create mode 100644 map_gen/maps/april_fools/modules/golden_goose.lua create mode 100644 map_gen/maps/april_fools/modules/marathon_mode.lua create mode 100644 map_gen/maps/april_fools/modules/meteOres.lua create mode 100644 map_gen/maps/april_fools/modules/orphan_crafting.lua create mode 100644 map_gen/maps/april_fools/modules/permanent_factory.lua create mode 100644 map_gen/maps/april_fools/modules/random_ores.lua create mode 100644 map_gen/maps/april_fools/modules/rotate_entities.lua create mode 100644 map_gen/maps/april_fools/modules/rotate_inserters.lua create mode 100644 map_gen/maps/april_fools/modules/rotten_egg.lua create mode 100644 map_gen/maps/april_fools/modules/unorganized_recipes.lua create mode 100644 map_gen/maps/april_fools/scenario/camera.lua create mode 100644 map_gen/maps/april_fools/scenario/entity-restrictions.lua create mode 100644 map_gen/maps/april_fools/scenario/evolution_control.lua create mode 100644 map_gen/maps/april_fools/scenario/market.lua create mode 100644 map_gen/maps/april_fools/scenario/market_items.lua create mode 100644 map_gen/maps/april_fools/scenario/mines.lua create mode 100644 map_gen/maps/april_fools/scenario/restart_command.lua create mode 100644 map_gen/maps/april_fools/scenario/rocket_launched.lua create mode 100644 map_gen/maps/april_fools/scenario/rocket_waves.lua create mode 100644 map_gen/maps/april_fools/scenario/shared_globals.lua create mode 100644 map_gen/shared/alien_biomes.lua create mode 100644 resources/alien_biomes/biomes.lua create mode 100644 resources/alien_biomes/biomes_settings.lua create mode 100644 resources/alien_biomes/tile_names.lua create mode 100644 resources/alien_biomes/tile_presets.lua create mode 100644 resources/item_list.lua create mode 100644 scenario_templates/april-fools-2019/map_selection.lua create mode 100644 scenario_templates/april-fools-2024/map_selection.lua diff --git a/.luacheckrc b/.luacheckrc index 5413ec9b..e6d53444 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -169,7 +169,7 @@ stds.factorio = { fields = { "by_pixel", "distance", "findfirstentity", "positiontostr", "formattime", "moveposition", "oppositedirection", "ismoduleavailable", "multiplystripes", "format_number", "increment", "color", "conditional_return", - "add_shift", "merge", "premul_color", "encode", "decode", "insert_safe", + "add_shift", "merge", "premul_color", "encode", "decode", "insert_safe", "list_to_map", table = { fields = { "compare", "deepcopy", "shallow_copy" diff --git a/map_gen/data/presets/antarctica.lua b/map_gen/data/presets/antarctica.lua new file mode 100644 index 00000000..f27ed406 --- /dev/null +++ b/map_gen/data/presets/antarctica.lua @@ -0,0 +1,3358 @@ +local b = require 'map_gen.shared.builders' +return b.decompress({ +height = 3351, +width = 4096, +data = { + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,480,2,10,1,3606,}, + {1,480,2,10,1,3606,}, + {1,480,2,10,1,3606,}, + {1,480,2,10,1,3606,}, + {1,480,2,10,1,3606,}, + {1,480,2,10,1,3606,}, + {1,480,2,10,1,3606,}, + {1,480,2,10,1,3606,}, + {1,480,2,10,1,3606,}, + {1,480,2,10,1,3606,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,2015,2,35,1,2046,}, + {1,2015,2,35,1,2046,}, + {1,2015,2,35,1,2046,}, + {1,2015,2,35,1,2046,}, + {1,2015,2,35,1,2046,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2005,2,50,1,2041,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,60,1,2036,}, + {1,2000,2,70,1,20,2,15,1,1991,}, + {1,2000,2,70,1,20,2,15,1,1991,}, + {1,2000,2,70,1,20,2,15,1,1991,}, + {1,2000,2,70,1,20,2,15,1,1991,}, + {1,2000,2,70,1,20,2,15,1,1991,}, + {1,2005,2,100,1,1991,}, + {1,2005,2,100,1,1991,}, + {1,2005,2,100,1,1991,}, + {1,2005,2,100,1,1991,}, + {1,2005,2,100,1,1991,}, + {1,2000,2,115,1,5,2,25,1,45,2,5,1,20,2,5,1,25,2,15,1,140,2,35,1,1661,}, + {1,2000,2,115,1,5,2,25,1,45,2,5,1,20,2,5,1,25,2,15,1,140,2,35,1,1661,}, + {1,2000,2,115,1,5,2,25,1,45,2,5,1,20,2,5,1,25,2,15,1,140,2,35,1,1661,}, + {1,2000,2,115,1,5,2,25,1,45,2,5,1,20,2,5,1,25,2,15,1,140,2,35,1,1661,}, + {1,2000,2,115,1,5,2,25,1,45,2,5,1,20,2,5,1,25,2,15,1,140,2,35,1,1661,}, + {1,1990,2,170,1,25,2,50,1,15,2,20,1,30,2,15,1,85,2,45,1,1651,}, + {1,1990,2,170,1,25,2,50,1,15,2,20,1,30,2,15,1,85,2,45,1,1651,}, + {1,1990,2,170,1,25,2,50,1,15,2,20,1,30,2,15,1,85,2,45,1,1651,}, + {1,1990,2,170,1,25,2,50,1,15,2,20,1,30,2,15,1,85,2,45,1,1651,}, + {1,1990,2,170,1,25,2,50,1,15,2,20,1,30,2,15,1,85,2,45,1,1651,}, + {1,1980,2,180,1,10,2,65,1,10,2,25,1,25,2,20,1,70,2,65,1,1646,}, + {1,1980,2,180,1,10,2,65,1,10,2,25,1,25,2,20,1,70,2,65,1,1646,}, + {1,1980,2,180,1,10,2,65,1,10,2,25,1,25,2,20,1,70,2,65,1,1646,}, + {1,1980,2,180,1,10,2,65,1,10,2,25,1,25,2,20,1,70,2,65,1,1646,}, + {1,1980,2,180,1,10,2,65,1,10,2,25,1,25,2,20,1,70,2,65,1,1646,}, + {1,1975,2,180,1,5,2,80,1,5,2,30,1,10,2,35,1,60,2,70,1,1646,}, + {1,1975,2,180,1,5,2,80,1,5,2,30,1,10,2,35,1,60,2,70,1,1646,}, + {1,1975,2,180,1,5,2,80,1,5,2,30,1,10,2,35,1,60,2,70,1,1646,}, + {1,1975,2,180,1,5,2,80,1,5,2,30,1,10,2,35,1,60,2,70,1,1646,}, + {1,1975,2,180,1,5,2,80,1,5,2,30,1,10,2,35,1,60,2,70,1,1646,}, + {1,1925,2,10,1,5,2,10,1,20,2,370,1,5,2,10,1,15,2,80,1,1646,}, + {1,1925,2,10,1,5,2,10,1,20,2,370,1,5,2,10,1,15,2,80,1,1646,}, + {1,1925,2,10,1,5,2,10,1,20,2,370,1,5,2,10,1,15,2,80,1,1646,}, + {1,1925,2,10,1,5,2,10,1,20,2,370,1,5,2,10,1,15,2,80,1,1646,}, + {1,1925,2,10,1,5,2,10,1,20,2,370,1,5,2,10,1,15,2,80,1,1646,}, + {1,1910,2,450,1,10,2,80,1,1646,}, + {1,1910,2,450,1,10,2,80,1,1646,}, + {1,1910,2,450,1,10,2,80,1,1646,}, + {1,1910,2,450,1,10,2,80,1,1646,}, + {1,1910,2,450,1,10,2,80,1,1646,}, + {1,1895,2,465,1,10,2,105,1,1621,}, + {1,1895,2,465,1,10,2,105,1,1621,}, + {1,1895,2,465,1,10,2,105,1,1621,}, + {1,1895,2,465,1,10,2,105,1,1621,}, + {1,1895,2,465,1,10,2,105,1,1621,}, + {1,1880,2,10,1,5,2,590,1,1611,}, + {1,1880,2,10,1,5,2,590,1,1611,}, + {1,1880,2,10,1,5,2,590,1,1611,}, + {1,1880,2,10,1,5,2,590,1,1611,}, + {1,1880,2,10,1,5,2,590,1,1611,}, + {1,1865,2,640,1,1591,}, + {1,1865,2,640,1,1591,}, + {1,1865,2,640,1,1591,}, + {1,1865,2,640,1,1591,}, + {1,1865,2,640,1,1591,}, + {1,1820,2,30,1,10,2,650,1,1586,}, + {1,1820,2,30,1,10,2,650,1,1586,}, + {1,1820,2,30,1,10,2,650,1,1586,}, + {1,1820,2,30,1,10,2,650,1,1586,}, + {1,1820,2,30,1,10,2,650,1,1586,}, + {1,1820,2,30,1,10,2,655,1,1581,}, + {1,1820,2,30,1,10,2,655,1,1581,}, + {1,1820,2,30,1,10,2,655,1,1581,}, + {1,1820,2,30,1,10,2,655,1,1581,}, + {1,1820,2,30,1,10,2,655,1,1581,}, + {1,1820,2,700,1,1576,}, + {1,1820,2,700,1,1576,}, + {1,1820,2,700,1,1576,}, + {1,1820,2,700,1,1576,}, + {1,1820,2,700,1,1576,}, + {1,1810,2,710,1,20,2,10,1,1546,}, + {1,1810,2,710,1,20,2,10,1,1546,}, + {1,1810,2,710,1,20,2,10,1,1546,}, + {1,1810,2,710,1,20,2,10,1,1546,}, + {1,1810,2,710,1,20,2,10,1,1546,}, + {1,1810,2,715,1,15,2,30,1,1526,}, + {1,1810,2,715,1,15,2,30,1,1526,}, + {1,1810,2,715,1,15,2,30,1,1526,}, + {1,1810,2,715,1,15,2,30,1,1526,}, + {1,1810,2,715,1,15,2,30,1,1526,}, + {1,1805,2,770,1,1521,}, + {1,1805,2,770,1,1521,}, + {1,1805,2,770,1,1521,}, + {1,1805,2,770,1,1521,}, + {1,1805,2,770,1,1521,}, + {1,1805,2,780,1,1511,}, + {1,1805,2,780,1,1511,}, + {1,1805,2,780,1,1511,}, + {1,1805,2,780,1,1511,}, + {1,1805,2,780,1,1511,}, + {1,1805,2,785,1,1506,}, + {1,1805,2,785,1,1506,}, + {1,1805,2,785,1,1506,}, + {1,1805,2,785,1,1506,}, + {1,1805,2,785,1,1506,}, + {1,1795,2,795,1,1506,}, + {1,1795,2,795,1,1506,}, + {1,1795,2,795,1,1506,}, + {1,1795,2,795,1,1506,}, + {1,1795,2,795,1,1506,}, + {1,1780,2,810,1,1506,}, + {1,1780,2,810,1,1506,}, + {1,1780,2,810,1,1506,}, + {1,1780,2,810,1,1506,}, + {1,1780,2,810,1,1506,}, + {1,1775,2,820,1,1501,}, + {1,1775,2,820,1,1501,}, + {1,1775,2,820,1,1501,}, + {1,1775,2,820,1,1501,}, + {1,1775,2,820,1,1501,}, + {1,1775,2,820,1,1501,}, + {1,1775,2,820,1,1501,}, + {1,1775,2,820,1,1501,}, + {1,1775,2,820,1,1501,}, + {1,1775,2,820,1,1501,}, + {1,1770,2,825,1,1501,}, + {1,1770,2,825,1,1501,}, + {1,1770,2,825,1,1501,}, + {1,1770,2,825,1,1501,}, + {1,1770,2,825,1,1501,}, + {1,1770,2,840,1,1486,}, + {1,1770,2,840,1,1486,}, + {1,1770,2,840,1,1486,}, + {1,1770,2,840,1,1486,}, + {1,1770,2,840,1,1486,}, + {1,1770,2,850,1,1476,}, + {1,1770,2,850,1,1476,}, + {1,1770,2,850,1,1476,}, + {1,1770,2,850,1,1476,}, + {1,1770,2,850,1,1476,}, + {1,1755,2,870,1,1471,}, + {1,1755,2,870,1,1471,}, + {1,1755,2,870,1,1471,}, + {1,1755,2,870,1,1471,}, + {1,1755,2,870,1,1471,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,880,1,25,2,5,1,1431,}, + {1,1755,2,875,1,10,2,10,1,5,2,25,1,1416,}, + {1,1755,2,875,1,10,2,10,1,5,2,25,1,1416,}, + {1,1755,2,875,1,10,2,10,1,5,2,25,1,1416,}, + {1,1755,2,875,1,10,2,10,1,5,2,25,1,1416,}, + {1,1755,2,875,1,10,2,10,1,5,2,25,1,1416,}, + {1,1760,2,885,1,5,2,35,1,15,2,10,1,75,2,55,1,1256,}, + {1,1760,2,885,1,5,2,35,1,15,2,10,1,75,2,55,1,1256,}, + {1,1760,2,885,1,5,2,35,1,15,2,10,1,75,2,55,1,1256,}, + {1,1760,2,885,1,5,2,35,1,15,2,10,1,75,2,55,1,1256,}, + {1,1760,2,885,1,5,2,35,1,15,2,10,1,75,2,55,1,1256,}, + {1,1760,2,925,1,10,2,15,1,70,2,60,1,1256,}, + {1,1760,2,925,1,10,2,15,1,70,2,60,1,1256,}, + {1,1760,2,925,1,10,2,15,1,70,2,60,1,1256,}, + {1,1760,2,925,1,10,2,15,1,70,2,60,1,1256,}, + {1,1760,2,925,1,10,2,15,1,70,2,60,1,1256,}, + {1,1760,2,925,1,5,2,35,1,25,2,10,1,15,2,75,1,30,2,30,1,1186,}, + {1,1760,2,925,1,5,2,35,1,25,2,10,1,15,2,75,1,30,2,30,1,1186,}, + {1,1760,2,925,1,5,2,35,1,25,2,10,1,15,2,75,1,30,2,30,1,1186,}, + {1,1760,2,925,1,5,2,35,1,25,2,10,1,15,2,75,1,30,2,30,1,1186,}, + {1,1760,2,925,1,5,2,35,1,25,2,10,1,15,2,75,1,30,2,30,1,1186,}, + {1,1760,2,925,1,5,2,40,1,5,2,30,1,10,2,80,1,20,2,40,1,1181,}, + {1,1760,2,925,1,5,2,40,1,5,2,30,1,10,2,80,1,20,2,40,1,1181,}, + {1,1760,2,925,1,5,2,40,1,5,2,30,1,10,2,80,1,20,2,40,1,1181,}, + {1,1760,2,925,1,5,2,40,1,5,2,30,1,10,2,80,1,20,2,40,1,1181,}, + {1,1760,2,925,1,5,2,40,1,5,2,30,1,10,2,80,1,20,2,40,1,1181,}, + {1,1755,2,925,1,5,2,175,1,10,2,50,1,1176,}, + {1,1755,2,925,1,5,2,175,1,10,2,50,1,1176,}, + {1,1755,2,925,1,5,2,175,1,10,2,50,1,1176,}, + {1,1755,2,925,1,5,2,175,1,10,2,50,1,1176,}, + {1,1755,2,925,1,5,2,175,1,10,2,50,1,1176,}, + {1,1750,2,1180,1,1166,}, + {1,1750,2,1180,1,1166,}, + {1,1750,2,1180,1,1166,}, + {1,1750,2,1180,1,1166,}, + {1,1750,2,1180,1,1166,}, + {1,1750,2,1180,1,1166,}, + {1,1750,2,1180,1,1166,}, + {1,1750,2,1180,1,1166,}, + {1,1750,2,1180,1,1166,}, + {1,1750,2,1180,1,1166,}, + {1,1735,2,1195,1,1166,}, + {1,1735,2,1195,1,1166,}, + {1,1735,2,1195,1,1166,}, + {1,1735,2,1195,1,1166,}, + {1,1735,2,1195,1,1166,}, + {1,1725,2,1215,1,1156,}, + {1,1725,2,1215,1,1156,}, + {1,1725,2,1215,1,1156,}, + {1,1725,2,1215,1,1156,}, + {1,1725,2,1215,1,1156,}, + {1,1720,2,1220,1,1156,}, + {1,1720,2,1220,1,1156,}, + {1,1720,2,1220,1,1156,}, + {1,1720,2,1220,1,1156,}, + {1,1720,2,1220,1,1156,}, + {1,1715,2,1220,1,1161,}, + {1,1715,2,1220,1,1161,}, + {1,1715,2,1220,1,1161,}, + {1,1715,2,1220,1,1161,}, + {1,1715,2,1220,1,1161,}, + {1,1705,2,1230,1,1161,}, + {1,1705,2,1230,1,1161,}, + {1,1705,2,1230,1,1161,}, + {1,1705,2,1230,1,1161,}, + {1,1705,2,1230,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,10,1,1370,2,1235,1,1161,}, + {1,320,2,15,1,1360,2,1245,1,1156,}, + {1,320,2,15,1,1360,2,1245,1,1156,}, + {1,320,2,15,1,1360,2,1245,1,1156,}, + {1,320,2,15,1,1360,2,1245,1,1156,}, + {1,320,2,15,1,1360,2,1245,1,1156,}, + {1,325,2,5,1,1360,2,1255,1,1151,}, + {1,325,2,5,1,1360,2,1255,1,1151,}, + {1,325,2,5,1,1360,2,1255,1,1151,}, + {1,325,2,5,1,1360,2,1255,1,1151,}, + {1,325,2,5,1,1360,2,1255,1,1151,}, + {1,300,2,10,1,1375,2,1265,1,1146,}, + {1,300,2,10,1,1375,2,1265,1,1146,}, + {1,300,2,10,1,1375,2,1265,1,1146,}, + {1,300,2,10,1,1375,2,1265,1,1146,}, + {1,300,2,10,1,1375,2,1265,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,295,2,15,1,1370,2,1270,1,1146,}, + {1,290,2,15,1,1365,2,1285,1,1141,}, + {1,290,2,15,1,1365,2,1285,1,1141,}, + {1,290,2,15,1,1365,2,1285,1,1141,}, + {1,290,2,15,1,1365,2,1285,1,1141,}, + {1,290,2,15,1,1365,2,1285,1,1141,}, + {1,285,2,20,1,1355,2,1295,1,1141,}, + {1,285,2,20,1,1355,2,1295,1,1141,}, + {1,285,2,20,1,1355,2,1295,1,1141,}, + {1,285,2,20,1,1355,2,1295,1,1141,}, + {1,285,2,20,1,1355,2,1295,1,1141,}, + {1,285,2,20,1,1350,2,1305,1,1136,}, + {1,285,2,20,1,1350,2,1305,1,1136,}, + {1,285,2,20,1,1350,2,1305,1,1136,}, + {1,285,2,20,1,1350,2,1305,1,1136,}, + {1,285,2,20,1,1350,2,1305,1,1136,}, + {1,295,2,10,1,1340,2,1320,1,1131,}, + {1,295,2,10,1,1340,2,1320,1,1131,}, + {1,295,2,10,1,1340,2,1320,1,1131,}, + {1,295,2,10,1,1340,2,1320,1,1131,}, + {1,295,2,10,1,1340,2,1320,1,1131,}, + {1,1635,2,1335,1,1126,}, + {1,1635,2,1335,1,1126,}, + {1,1635,2,1335,1,1126,}, + {1,1635,2,1335,1,1126,}, + {1,1635,2,1335,1,1126,}, + {1,1630,2,1355,1,1111,}, + {1,1630,2,1355,1,1111,}, + {1,1630,2,1355,1,1111,}, + {1,1630,2,1355,1,1111,}, + {1,1630,2,1355,1,1111,}, + {1,1630,2,1355,1,55,2,10,1,1046,}, + {1,1630,2,1355,1,55,2,10,1,1046,}, + {1,1630,2,1355,1,55,2,10,1,1046,}, + {1,1630,2,1355,1,55,2,10,1,1046,}, + {1,1630,2,1355,1,55,2,10,1,1046,}, + {1,1630,2,1355,1,35,2,45,1,1031,}, + {1,1630,2,1355,1,35,2,45,1,1031,}, + {1,1630,2,1355,1,35,2,45,1,1031,}, + {1,1630,2,1355,1,35,2,45,1,1031,}, + {1,1630,2,1355,1,35,2,45,1,1031,}, + {1,295,2,10,1,1320,2,1355,1,35,2,80,1,1001,}, + {1,295,2,10,1,1320,2,1355,1,35,2,80,1,1001,}, + {1,295,2,10,1,1320,2,1355,1,35,2,80,1,1001,}, + {1,295,2,10,1,1320,2,1355,1,35,2,80,1,1001,}, + {1,295,2,10,1,1320,2,1355,1,35,2,80,1,1001,}, + {1,295,2,10,1,1320,2,1350,1,40,2,25,1,1,2,74,1,5,2,35,1,941,}, + {1,295,2,10,1,1320,2,1350,1,40,2,100,1,5,2,35,1,941,}, + {1,295,2,10,1,1320,2,1350,1,40,2,100,1,5,2,35,1,941,}, + {1,295,2,10,1,1320,2,1350,1,40,2,100,1,5,2,35,1,941,}, + {1,295,2,10,1,1320,2,1350,1,40,2,100,1,5,2,35,1,941,}, + {1,1620,2,1360,1,35,2,145,1,936,}, + {1,1620,2,1360,1,35,2,145,1,936,}, + {1,1620,2,1360,1,35,2,145,1,936,}, + {1,1620,2,1360,1,35,2,145,1,936,}, + {1,1620,2,1360,1,35,2,145,1,936,}, + {1,1620,2,1360,1,35,2,145,1,936,}, + {1,1620,2,1360,1,35,2,145,1,936,}, + {1,1620,2,1360,1,35,2,145,1,936,}, + {1,1620,2,1360,1,34,2,146,1,936,}, + {1,1620,2,1360,1,33,2,147,1,936,}, + {1,1620,2,1355,1,25,2,180,1,916,}, + {1,1620,2,1355,1,25,2,180,1,916,}, + {1,1620,2,1355,1,25,2,180,1,916,}, + {1,1620,2,1355,1,25,2,180,1,916,}, + {1,1620,2,1355,1,25,2,180,1,916,}, + {1,1620,2,1345,1,35,2,205,1,891,}, + {1,1620,2,1345,1,35,2,205,1,891,}, + {1,1620,2,1345,1,35,2,205,1,891,}, + {1,1620,2,1345,1,35,2,205,1,891,}, + {1,1620,2,1345,1,35,2,205,1,891,}, + {1,1615,2,1355,1,5,2,235,1,886,}, + {1,1615,2,1355,1,5,2,235,1,886,}, + {1,1615,2,1355,1,5,2,235,1,886,}, + {1,1615,2,1355,1,5,2,235,1,886,}, + {1,1615,2,1355,1,5,2,235,1,886,}, + {1,1615,2,1355,1,5,2,240,1,5,2,5,1,15,2,20,1,836,}, + {1,1615,2,1355,1,5,2,240,1,5,2,5,1,15,2,20,1,836,}, + {1,1615,2,1355,1,5,2,240,1,5,2,5,1,15,2,20,1,836,}, + {1,1615,2,1355,1,5,2,240,1,5,2,5,1,15,2,20,1,836,}, + {1,1615,2,1355,1,5,2,240,1,5,2,5,1,15,2,20,1,836,}, + {1,1620,2,1595,1,5,2,5,1,15,2,30,1,826,}, + {1,1620,2,1595,1,5,2,5,1,15,2,30,1,826,}, + {1,1620,2,1595,1,5,2,5,1,15,2,30,1,826,}, + {1,1620,2,1595,1,5,2,5,1,15,2,30,1,826,}, + {1,1620,2,1595,1,5,2,5,1,15,2,30,1,826,}, + {1,1620,2,1655,1,40,2,15,1,766,}, + {1,1620,2,1655,1,40,2,15,1,766,}, + {1,1620,2,1655,1,40,2,15,1,766,}, + {1,1620,2,1655,1,40,2,15,1,766,}, + {1,1620,2,1655,1,40,2,15,1,766,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,425,2,35,1,1160,2,1650,1,40,2,30,1,756,}, + {1,405,2,35,1,1180,2,1650,1,35,2,15,1,5,2,10,1,761,}, + {1,405,2,35,1,1180,2,1650,1,35,2,15,1,5,2,10,1,761,}, + {1,405,2,35,1,1180,2,1650,1,35,2,15,1,5,2,10,1,761,}, + {1,405,2,35,1,1180,2,1650,1,35,2,15,1,5,2,10,1,761,}, + {1,405,2,35,1,1180,2,1650,1,35,2,15,1,5,2,10,1,761,}, + {1,395,2,45,1,1180,2,1655,1,25,2,30,1,766,}, + {1,395,2,45,1,1180,2,1655,1,25,2,30,1,766,}, + {1,395,2,45,1,1180,2,1655,1,25,2,30,1,766,}, + {1,395,2,45,1,1180,2,1655,1,25,2,30,1,766,}, + {1,395,2,45,1,1180,2,1655,1,25,2,30,1,766,}, + {1,290,2,10,1,90,2,40,1,1190,2,1645,1,5,2,5,1,20,2,10,1,5,2,30,1,756,}, + {1,290,2,10,1,90,2,40,1,1190,2,1645,1,5,2,5,1,20,2,10,1,5,2,30,1,756,}, + {1,290,2,10,1,90,2,40,1,1190,2,1645,1,5,2,5,1,20,2,10,1,5,2,30,1,756,}, + {1,290,2,10,1,90,2,40,1,1190,2,1645,1,5,2,5,1,20,2,10,1,5,2,30,1,756,}, + {1,290,2,10,1,90,2,40,1,1190,2,1645,1,5,2,5,1,20,2,10,1,5,2,30,1,756,}, + {1,290,2,15,1,85,2,40,1,1190,2,1650,1,25,2,45,1,35,2,25,1,696,}, + {1,290,2,15,1,85,2,40,1,1190,2,1650,1,25,2,45,1,35,2,25,1,696,}, + {1,290,2,15,1,85,2,40,1,1190,2,1650,1,25,2,45,1,35,2,25,1,696,}, + {1,290,2,15,1,85,2,40,1,1190,2,1650,1,25,2,45,1,35,2,25,1,696,}, + {1,290,2,15,1,85,2,40,1,1190,2,1650,1,25,2,45,1,35,2,25,1,696,}, + {1,280,2,25,1,80,2,40,1,5,2,10,1,1180,2,1650,1,25,2,45,1,25,2,35,1,696,}, + {1,280,2,25,1,80,2,40,1,5,2,10,1,1180,2,1650,1,25,2,45,1,25,2,35,1,696,}, + {1,280,2,25,1,80,2,40,1,5,2,10,1,1180,2,1650,1,25,2,45,1,25,2,35,1,696,}, + {1,280,2,25,1,80,2,40,1,5,2,10,1,1180,2,1650,1,25,2,45,1,25,2,35,1,696,}, + {1,280,2,25,1,80,2,40,1,5,2,10,1,1180,2,1650,1,25,2,45,1,25,2,35,1,696,}, + {1,280,2,25,1,75,2,60,1,1185,2,1655,1,20,2,30,1,30,2,55,1,681,}, + {1,280,2,25,1,75,2,60,1,1185,2,1655,1,20,2,30,1,30,2,55,1,681,}, + {1,280,2,25,1,75,2,60,1,1185,2,1655,1,20,2,30,1,30,2,55,1,681,}, + {1,280,2,25,1,75,2,60,1,1185,2,1655,1,20,2,30,1,30,2,55,1,681,}, + {1,280,2,25,1,75,2,60,1,1185,2,1655,1,20,2,30,1,30,2,55,1,681,}, + {1,285,2,20,1,80,2,55,1,1185,2,1710,1,20,2,80,1,661,}, + {1,285,2,20,1,80,2,55,1,1185,2,1710,1,20,2,80,1,661,}, + {1,285,2,20,1,80,2,55,1,1185,2,1710,1,20,2,80,1,661,}, + {1,285,2,20,1,80,2,55,1,1185,2,1710,1,20,2,80,1,661,}, + {1,285,2,20,1,80,2,55,1,1185,2,1710,1,20,2,80,1,661,}, + {1,280,2,25,1,85,2,50,1,1180,2,1715,1,15,2,90,1,656,}, + {1,280,2,25,1,85,2,50,1,1180,2,1715,1,15,2,90,1,656,}, + {1,280,2,25,1,85,2,50,1,1180,2,1715,1,15,2,90,1,656,}, + {1,280,2,25,1,85,2,50,1,1180,2,1715,1,15,2,90,1,656,}, + {1,280,2,25,1,85,2,50,1,1180,2,1715,1,15,2,90,1,656,}, + {1,280,2,25,1,85,2,10,1,5,2,15,1,5,2,15,1,1125,2,20,1,20,2,1730,1,15,2,95,1,651,}, + {1,280,2,25,1,85,2,10,1,5,2,15,1,5,2,15,1,1125,2,20,1,20,2,1730,1,15,2,95,1,651,}, + {1,280,2,25,1,85,2,10,1,5,2,15,1,5,2,15,1,1125,2,20,1,20,2,1730,1,15,2,95,1,651,}, + {1,280,2,25,1,85,2,10,1,5,2,15,1,5,2,15,1,1125,2,20,1,20,2,1730,1,15,2,95,1,651,}, + {1,280,2,25,1,85,2,10,1,5,2,15,1,5,2,15,1,1125,2,20,1,20,2,1730,1,15,2,95,1,651,}, + {1,280,2,25,1,110,2,15,1,1130,2,30,1,15,2,1845,1,646,}, + {1,280,2,25,1,110,2,15,1,1130,2,30,1,15,2,1845,1,646,}, + {1,280,2,25,1,110,2,15,1,1130,2,30,1,15,2,1845,1,646,}, + {1,280,2,25,1,110,2,15,1,1130,2,30,1,15,2,1845,1,646,}, + {1,280,2,25,1,110,2,15,1,1130,2,30,1,15,2,1845,1,646,}, + {1,280,2,25,1,85,2,20,1,5,2,20,1,1115,2,1905,1,641,}, + {1,280,2,25,1,85,2,20,1,5,2,20,1,1115,2,1905,1,641,}, + {1,280,2,25,1,85,2,20,1,5,2,20,1,1115,2,1905,1,641,}, + {1,280,2,25,1,85,2,20,1,5,2,20,1,1115,2,1905,1,641,}, + {1,280,2,25,1,85,2,20,1,5,2,20,1,1115,2,1905,1,641,}, + {1,285,2,20,1,75,2,55,1,1110,2,1915,1,636,}, + {1,285,2,20,1,75,2,55,1,1110,2,1915,1,636,}, + {1,285,2,20,1,75,2,55,1,1110,2,1915,1,636,}, + {1,285,2,20,1,75,2,55,1,1110,2,1915,1,636,}, + {1,285,2,20,1,75,2,55,1,1110,2,1915,1,636,}, + {1,285,2,20,1,75,2,45,1,1115,2,1930,1,626,}, + {1,285,2,20,1,75,2,45,1,1115,2,1930,1,626,}, + {1,285,2,20,1,75,2,45,1,1115,2,1930,1,626,}, + {1,285,2,20,1,75,2,45,1,1115,2,1930,1,626,}, + {1,285,2,20,1,75,2,45,1,1115,2,1930,1,626,}, + {1,285,2,20,1,75,2,40,1,1120,2,1935,1,621,}, + {1,285,2,20,1,75,2,40,1,1120,2,1935,1,621,}, + {1,285,2,20,1,75,2,40,1,1120,2,1935,1,621,}, + {1,285,2,20,1,75,2,40,1,1120,2,1935,1,621,}, + {1,285,2,20,1,75,2,40,1,1120,2,1935,1,621,}, + {1,285,2,15,1,80,2,40,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,15,1,80,2,40,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,15,1,80,2,40,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,15,1,80,2,40,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,15,1,80,2,40,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,20,1,70,2,45,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,20,1,70,2,45,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,20,1,70,2,45,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,20,1,70,2,45,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,20,1,70,2,45,1,5,2,10,1,25,2,10,1,1065,2,1945,1,616,}, + {1,285,2,15,1,80,2,60,1,15,2,20,1,1065,2,1945,1,611,}, + {1,285,2,15,1,80,2,60,1,15,2,20,1,1065,2,1945,1,611,}, + {1,285,2,15,1,80,2,60,1,15,2,20,1,1065,2,1945,1,611,}, + {1,285,2,15,1,80,2,60,1,15,2,20,1,1065,2,1945,1,611,}, + {1,285,2,15,1,80,2,60,1,15,2,20,1,1065,2,1945,1,611,}, + {1,280,2,25,1,70,2,60,1,10,2,25,1,1075,2,1945,1,606,}, + {1,280,2,25,1,70,2,60,1,10,2,25,1,1075,2,1945,1,606,}, + {1,280,2,25,1,70,2,60,1,10,2,25,1,1075,2,1945,1,606,}, + {1,280,2,25,1,70,2,60,1,10,2,25,1,1075,2,1945,1,606,}, + {1,280,2,25,1,70,2,60,1,10,2,25,1,1075,2,1945,1,606,}, + {1,280,2,25,1,70,2,95,1,1080,2,1940,1,606,}, + {1,280,2,25,1,70,2,95,1,1080,2,1940,1,606,}, + {1,280,2,25,1,70,2,95,1,1080,2,1940,1,606,}, + {1,280,2,25,1,70,2,95,1,1080,2,1940,1,606,}, + {1,280,2,25,1,70,2,95,1,1080,2,1940,1,606,}, + {1,280,2,25,1,70,2,80,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,70,2,80,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,70,2,80,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,70,2,80,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,70,2,80,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,60,2,10,1,5,2,75,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,60,2,10,1,5,2,75,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,60,2,10,1,5,2,75,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,60,2,10,1,5,2,75,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,60,2,10,1,5,2,75,1,10,2,10,1,1080,2,1940,1,601,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1080,2,1945,1,596,}, + {1,280,2,25,1,70,2,100,1,1085,2,1940,1,596,}, + {1,280,2,25,1,70,2,100,1,1085,2,1940,1,596,}, + {1,280,2,25,1,70,2,100,1,1085,2,1940,1,596,}, + {1,280,2,25,1,70,2,100,1,1085,2,1940,1,596,}, + {1,280,2,25,1,70,2,100,1,1085,2,1940,1,596,}, + {1,285,2,20,1,70,2,80,1,15,2,5,1,1085,2,1940,1,596,}, + {1,285,2,20,1,70,2,80,1,15,2,5,1,1085,2,1940,1,596,}, + {1,285,2,20,1,70,2,80,1,15,2,5,1,1085,2,1940,1,596,}, + {1,285,2,20,1,70,2,80,1,15,2,5,1,1085,2,1940,1,596,}, + {1,285,2,20,1,70,2,80,1,15,2,5,1,1085,2,1940,1,596,}, + {1,285,2,20,1,75,2,35,1,5,2,35,1,1125,2,1925,1,591,}, + {1,285,2,20,1,75,2,35,1,5,2,35,1,1125,2,1925,1,591,}, + {1,285,2,20,1,75,2,35,1,5,2,35,1,1125,2,1925,1,591,}, + {1,285,2,20,1,75,2,35,1,5,2,35,1,1125,2,1925,1,591,}, + {1,285,2,20,1,75,2,35,1,5,2,35,1,1125,2,1925,1,591,}, + {1,270,2,35,1,70,2,50,1,15,2,10,1,1125,2,1930,1,591,}, + {1,270,2,35,1,70,2,50,1,15,2,10,1,1125,2,1930,1,591,}, + {1,270,2,35,1,70,2,50,1,15,2,10,1,1125,2,1930,1,591,}, + {1,270,2,35,1,70,2,50,1,15,2,10,1,1125,2,1930,1,591,}, + {1,270,2,35,1,70,2,50,1,15,2,10,1,1125,2,1930,1,591,}, + {1,270,2,25,1,5,2,10,1,5,2,5,1,55,2,50,1,10,2,15,1,1125,2,1925,1,596,}, + {1,270,2,25,1,5,2,10,1,5,2,5,1,55,2,50,1,10,2,15,1,1125,2,1925,1,596,}, + {1,270,2,25,1,5,2,10,1,5,2,5,1,55,2,50,1,10,2,15,1,1125,2,1925,1,596,}, + {1,270,2,25,1,5,2,10,1,5,2,5,1,55,2,50,1,10,2,15,1,1125,2,1925,1,596,}, + {1,270,2,25,1,5,2,10,1,5,2,5,1,55,2,50,1,10,2,15,1,1125,2,1925,1,596,}, + {1,280,2,10,1,10,2,20,1,40,2,10,1,10,2,55,1,1140,2,1925,1,596,}, + {1,280,2,10,1,10,2,20,1,40,2,10,1,10,2,55,1,1140,2,1925,1,596,}, + {1,280,2,10,1,10,2,20,1,40,2,10,1,10,2,55,1,1140,2,1925,1,596,}, + {1,280,2,10,1,10,2,20,1,40,2,10,1,10,2,55,1,1140,2,1925,1,596,}, + {1,280,2,10,1,10,2,20,1,40,2,10,1,10,2,55,1,1140,2,1925,1,596,}, + {1,275,2,15,1,10,2,20,1,40,2,10,1,15,2,65,1,1125,2,1920,1,601,}, + {1,275,2,15,1,10,2,20,1,40,2,10,1,15,2,65,1,1125,2,1920,1,601,}, + {1,275,2,15,1,10,2,20,1,40,2,10,1,15,2,65,1,1125,2,1920,1,601,}, + {1,275,2,15,1,10,2,20,1,40,2,10,1,15,2,65,1,1125,2,1920,1,601,}, + {1,275,2,15,1,10,2,20,1,40,2,10,1,15,2,65,1,1125,2,1920,1,601,}, + {1,275,2,15,1,10,2,20,1,55,2,75,1,1125,2,1920,1,601,}, + {1,275,2,15,1,10,2,20,1,55,2,75,1,1125,2,1920,1,601,}, + {1,275,2,15,1,10,2,20,1,55,2,75,1,1125,2,1920,1,601,}, + {1,275,2,15,1,10,2,20,1,55,2,75,1,1125,2,1920,1,601,}, + {1,275,2,15,1,10,2,20,1,55,2,75,1,1125,2,1920,1,601,}, + {1,275,2,15,1,85,2,75,1,1125,2,1920,1,601,}, + {1,275,2,15,1,85,2,75,1,1125,2,1920,1,601,}, + {1,275,2,15,1,85,2,75,1,1125,2,1920,1,601,}, + {1,275,2,15,1,85,2,75,1,1125,2,1920,1,601,}, + {1,275,2,15,1,85,2,75,1,1125,2,1920,1,601,}, + {1,275,2,20,1,85,2,60,1,1130,2,1925,1,601,}, + {1,275,2,20,1,85,2,60,1,1130,2,1925,1,601,}, + {1,275,2,20,1,85,2,60,1,1130,2,1925,1,601,}, + {1,275,2,20,1,85,2,60,1,1130,2,1925,1,601,}, + {1,275,2,20,1,85,2,60,1,1130,2,1925,1,601,}, + {1,280,2,15,1,85,2,45,1,10,2,5,1,1130,2,1925,1,601,}, + {1,280,2,15,1,85,2,45,1,10,2,5,1,1130,2,1925,1,601,}, + {1,280,2,15,1,85,2,45,1,10,2,5,1,1130,2,1925,1,601,}, + {1,280,2,15,1,85,2,45,1,10,2,5,1,1130,2,1925,1,601,}, + {1,280,2,15,1,85,2,45,1,10,2,5,1,1130,2,1925,1,601,}, + {1,350,2,15,1,10,2,60,1,1135,2,1935,1,591,}, + {1,350,2,15,1,10,2,60,1,1135,2,1935,1,591,}, + {1,350,2,15,1,10,2,60,1,1135,2,1935,1,591,}, + {1,350,2,15,1,10,2,60,1,1135,2,1935,1,591,}, + {1,350,2,15,1,10,2,60,1,1135,2,1935,1,591,}, + {1,350,2,90,1,1130,2,1930,1,596,}, + {1,350,2,90,1,1130,2,1930,1,596,}, + {1,350,2,90,1,1130,2,1930,1,596,}, + {1,350,2,90,1,1130,2,1930,1,596,}, + {1,350,2,90,1,1130,2,1930,1,596,}, + {1,360,2,80,1,1125,2,1935,1,596,}, + {1,360,2,80,1,1125,2,1935,1,596,}, + {1,360,2,80,1,1125,2,1935,1,596,}, + {1,360,2,80,1,1125,2,1935,1,596,}, + {1,360,2,80,1,1125,2,1935,1,596,}, + {1,360,2,65,1,1135,2,1940,1,596,}, + {1,360,2,65,1,1135,2,1940,1,596,}, + {1,360,2,65,1,1135,2,1940,1,596,}, + {1,360,2,65,1,1135,2,1940,1,596,}, + {1,360,2,65,1,1135,2,1940,1,596,}, + {1,270,2,10,1,80,2,10,1,5,2,50,1,25,2,10,1,15,2,10,1,1070,2,1945,1,596,}, + {1,270,2,10,1,80,2,10,1,5,2,50,1,25,2,10,1,15,2,10,1,1070,2,1945,1,596,}, + {1,270,2,10,1,80,2,10,1,5,2,50,1,25,2,10,1,15,2,10,1,1070,2,1945,1,596,}, + {1,270,2,10,1,80,2,10,1,5,2,50,1,25,2,10,1,15,2,10,1,1070,2,1945,1,596,}, + {1,270,2,10,1,80,2,10,1,5,2,50,1,25,2,10,1,15,2,10,1,1070,2,1945,1,596,}, + {1,275,2,10,1,20,2,10,1,60,2,50,1,40,2,25,1,1065,2,1920,1,5,2,15,1,601,}, + {1,275,2,10,1,20,2,10,1,60,2,50,1,40,2,25,1,1065,2,1920,1,5,2,15,1,601,}, + {1,275,2,10,1,20,2,10,1,60,2,50,1,40,2,25,1,1065,2,1920,1,5,2,15,1,601,}, + {1,275,2,10,1,20,2,10,1,60,2,50,1,40,2,25,1,1065,2,1920,1,5,2,15,1,601,}, + {1,275,2,10,1,20,2,10,1,60,2,50,1,40,2,25,1,1065,2,1920,1,5,2,15,1,601,}, + {1,275,2,10,1,15,2,20,1,25,2,10,1,5,2,5,1,15,2,50,1,25,2,35,1,1070,2,1915,1,621,}, + {1,275,2,10,1,15,2,20,1,25,2,10,1,5,2,5,1,15,2,50,1,25,2,35,1,1070,2,1915,1,621,}, + {1,275,2,10,1,15,2,20,1,25,2,10,1,5,2,5,1,15,2,50,1,25,2,35,1,1070,2,1915,1,621,}, + {1,275,2,10,1,15,2,20,1,25,2,10,1,5,2,5,1,15,2,50,1,25,2,35,1,1070,2,1915,1,621,}, + {1,275,2,10,1,15,2,20,1,25,2,10,1,5,2,5,1,15,2,50,1,25,2,35,1,1070,2,1915,1,621,}, + {1,275,2,15,1,10,2,20,1,20,2,15,1,5,2,10,1,10,2,50,1,20,2,30,1,1095,2,1900,1,621,}, + {1,275,2,15,1,10,2,20,1,20,2,15,1,5,2,10,1,10,2,50,1,20,2,30,1,1095,2,1900,1,621,}, + {1,275,2,15,1,10,2,20,1,20,2,15,1,5,2,10,1,10,2,50,1,20,2,30,1,1095,2,1900,1,621,}, + {1,275,2,15,1,10,2,20,1,20,2,15,1,5,2,10,1,10,2,50,1,20,2,30,1,1095,2,1900,1,621,}, + {1,275,2,15,1,10,2,20,1,20,2,15,1,5,2,10,1,10,2,50,1,20,2,30,1,1095,2,1900,1,621,}, + {1,280,2,10,1,15,2,10,1,45,2,10,1,20,2,40,1,15,2,30,1,1115,2,1885,1,621,}, + {1,280,2,10,1,15,2,10,1,45,2,10,1,20,2,40,1,15,2,30,1,1115,2,1885,1,621,}, + {1,280,2,10,1,15,2,10,1,45,2,10,1,20,2,40,1,15,2,30,1,1115,2,1885,1,621,}, + {1,280,2,10,1,15,2,10,1,45,2,10,1,20,2,40,1,15,2,30,1,1115,2,1885,1,621,}, + {1,280,2,10,1,15,2,10,1,45,2,10,1,20,2,40,1,15,2,30,1,1115,2,1885,1,621,}, + {1,350,2,10,1,5,2,10,1,15,2,45,1,5,2,30,1,1120,2,1890,1,616,}, + {1,350,2,10,1,5,2,10,1,15,2,45,1,5,2,30,1,1120,2,1890,1,616,}, + {1,350,2,10,1,5,2,10,1,15,2,45,1,5,2,30,1,1120,2,1890,1,616,}, + {1,350,2,10,1,5,2,10,1,15,2,45,1,5,2,30,1,1120,2,1890,1,616,}, + {1,350,2,10,1,5,2,10,1,15,2,45,1,5,2,30,1,1120,2,1890,1,616,}, + {1,350,2,30,1,5,2,75,1,1130,2,1890,1,616,}, + {1,350,2,30,1,5,2,75,1,1130,2,1890,1,616,}, + {1,350,2,30,1,5,2,75,1,1130,2,1890,1,616,}, + {1,350,2,30,1,5,2,75,1,1130,2,1890,1,616,}, + {1,350,2,30,1,5,2,75,1,1130,2,1890,1,616,}, + {1,350,2,20,1,10,2,75,1,1130,2,1895,1,616,}, + {1,350,2,20,1,10,2,75,1,1130,2,1895,1,616,}, + {1,350,2,20,1,10,2,75,1,1130,2,1895,1,616,}, + {1,350,2,20,1,10,2,75,1,1130,2,1895,1,616,}, + {1,350,2,20,1,10,2,75,1,1130,2,1895,1,616,}, + {1,350,2,100,1,1125,2,1905,1,616,}, + {1,350,2,100,1,1125,2,1905,1,616,}, + {1,350,2,100,1,1125,2,1905,1,616,}, + {1,350,2,100,1,1125,2,1905,1,616,}, + {1,350,2,100,1,1125,2,1905,1,616,}, + {1,350,2,30,1,10,2,55,1,1130,2,1905,1,616,}, + {1,350,2,30,1,10,2,55,1,1130,2,1905,1,616,}, + {1,350,2,30,1,10,2,55,1,1130,2,1905,1,616,}, + {1,350,2,30,1,10,2,55,1,1130,2,1905,1,616,}, + {1,350,2,30,1,10,2,55,1,1130,2,1905,1,616,}, + {1,350,2,35,1,5,2,50,1,1135,2,1905,1,616,}, + {1,350,2,35,1,5,2,50,1,1135,2,1905,1,616,}, + {1,350,2,35,1,5,2,50,1,1135,2,1905,1,616,}, + {1,350,2,35,1,5,2,50,1,1135,2,1905,1,616,}, + {1,350,2,35,1,5,2,50,1,1135,2,1905,1,616,}, + {1,350,2,35,1,5,2,60,1,1120,2,1920,1,606,}, + {1,350,2,35,1,5,2,60,1,1120,2,1920,1,606,}, + {1,350,2,35,1,5,2,60,1,1120,2,1920,1,606,}, + {1,350,2,35,1,5,2,60,1,1120,2,1920,1,606,}, + {1,350,2,35,1,5,2,60,1,1120,2,1920,1,606,}, + {1,365,2,20,1,5,2,60,1,1115,2,1925,1,606,}, + {1,365,2,20,1,5,2,60,1,1115,2,1925,1,606,}, + {1,365,2,20,1,5,2,60,1,1115,2,1925,1,606,}, + {1,365,2,20,1,5,2,60,1,1115,2,1925,1,606,}, + {1,365,2,20,1,5,2,60,1,1115,2,1925,1,606,}, + {1,370,2,15,1,5,2,60,1,55,2,15,1,1045,2,1920,1,611,}, + {1,370,2,15,1,5,2,60,1,55,2,15,1,1045,2,1920,1,611,}, + {1,370,2,15,1,5,2,60,1,55,2,15,1,1045,2,1920,1,611,}, + {1,370,2,15,1,5,2,60,1,55,2,15,1,1045,2,1920,1,611,}, + {1,370,2,15,1,5,2,60,1,55,2,15,1,1045,2,1920,1,611,}, + {1,360,2,25,1,5,2,60,1,50,2,35,1,1030,2,15,1,1,2,1904,1,611,}, + {1,360,2,25,1,5,2,60,1,50,2,35,1,1030,2,15,1,1,2,1904,1,611,}, + {1,360,2,25,1,5,2,60,1,50,2,35,1,1030,2,1920,1,611,}, + {1,360,2,25,1,5,2,60,1,50,2,35,1,1030,2,1920,1,611,}, + {1,360,2,25,1,5,2,60,1,50,2,35,1,1030,2,1920,1,611,}, + {1,355,2,30,1,5,2,55,1,50,2,60,1,1005,2,1920,1,616,}, + {1,355,2,30,1,5,2,55,1,50,2,60,1,1005,2,1920,1,616,}, + {1,355,2,30,1,5,2,55,1,50,2,60,1,1005,2,1920,1,616,}, + {1,355,2,30,1,5,2,55,1,50,2,60,1,1005,2,1920,1,616,}, + {1,355,2,30,1,5,2,55,1,50,2,60,1,1005,2,1920,1,616,}, + {1,350,2,35,1,5,2,170,1,1000,2,1930,1,606,}, + {1,350,2,35,1,5,2,170,1,1000,2,1930,1,606,}, + {1,350,2,35,1,5,2,170,1,1000,2,1930,1,606,}, + {1,350,2,35,1,5,2,170,1,1000,2,1930,1,606,}, + {1,350,2,35,1,5,2,170,1,1000,2,1930,1,606,}, + {1,345,2,40,1,10,2,190,1,975,2,1930,1,606,}, + {1,345,2,40,1,10,2,190,1,975,2,1930,1,606,}, + {1,345,2,40,1,10,2,190,1,975,2,1930,1,606,}, + {1,345,2,40,1,10,2,190,1,975,2,1930,1,606,}, + {1,345,2,40,1,10,2,190,1,975,2,1930,1,606,}, + {1,345,2,45,1,5,2,190,1,970,2,1930,1,611,}, + {1,345,2,45,1,5,2,190,1,970,2,1930,1,611,}, + {1,345,2,45,1,5,2,190,1,970,2,1930,1,611,}, + {1,345,2,45,1,5,2,190,1,970,2,1930,1,611,}, + {1,345,2,45,1,5,2,190,1,970,2,1930,1,611,}, + {1,350,2,235,1,970,2,1935,1,606,}, + {1,350,2,235,1,970,2,1935,1,606,}, + {1,350,2,235,1,970,2,1935,1,606,}, + {1,350,2,235,1,970,2,1935,1,606,}, + {1,350,2,235,1,970,2,1935,1,606,}, + {1,355,2,230,1,965,2,1940,1,606,}, + {1,355,2,230,1,965,2,1940,1,606,}, + {1,355,2,230,1,965,2,1940,1,606,}, + {1,355,2,230,1,965,2,1940,1,606,}, + {1,355,2,230,1,965,2,1940,1,606,}, + {1,355,2,50,1,5,2,175,1,965,2,1940,1,606,}, + {1,355,2,50,1,5,2,175,1,965,2,1940,1,606,}, + {1,355,2,50,1,5,2,175,1,965,2,1940,1,606,}, + {1,355,2,50,1,5,2,175,1,965,2,1940,1,606,}, + {1,355,2,50,1,5,2,175,1,965,2,1940,1,606,}, + {1,360,2,40,1,10,2,175,1,970,2,1935,1,606,}, + {1,360,2,40,1,10,2,175,1,970,2,1935,1,606,}, + {1,360,2,40,1,10,2,175,1,970,2,1935,1,606,}, + {1,360,2,40,1,10,2,175,1,970,2,1935,1,606,}, + {1,360,2,40,1,10,2,175,1,970,2,1935,1,606,}, + {1,360,2,25,1,5,2,205,1,955,2,1945,1,601,}, + {1,360,2,25,1,5,2,205,1,955,2,1945,1,601,}, + {1,360,2,25,1,5,2,205,1,955,2,1945,1,601,}, + {1,360,2,25,1,5,2,205,1,955,2,1945,1,601,}, + {1,360,2,25,1,5,2,205,1,955,2,1945,1,601,}, + {1,360,2,255,1,935,2,1945,1,601,}, + {1,360,2,255,1,935,2,1945,1,601,}, + {1,360,2,255,1,935,2,1945,1,601,}, + {1,360,2,255,1,935,2,1945,1,601,}, + {1,360,2,255,1,935,2,1945,1,601,}, + {1,360,2,15,1,10,2,235,1,930,2,1945,1,601,}, + {1,360,2,15,1,10,2,235,1,930,2,1945,1,601,}, + {1,360,2,15,1,10,2,235,1,930,2,1945,1,601,}, + {1,360,2,15,1,10,2,235,1,930,2,1945,1,601,}, + {1,360,2,15,1,10,2,235,1,930,2,1945,1,601,}, + {1,365,2,15,1,10,2,260,1,900,2,1945,1,601,}, + {1,365,2,15,1,10,2,260,1,900,2,1945,1,601,}, + {1,365,2,15,1,10,2,260,1,900,2,1945,1,601,}, + {1,365,2,15,1,10,2,260,1,900,2,1945,1,601,}, + {1,365,2,15,1,10,2,260,1,900,2,1945,1,601,}, + {1,370,2,10,1,15,2,260,1,890,2,1955,1,596,}, + {1,370,2,10,1,15,2,260,1,890,2,1955,1,596,}, + {1,370,2,10,1,15,2,260,1,890,2,1955,1,596,}, + {1,370,2,10,1,15,2,260,1,890,2,1955,1,596,}, + {1,370,2,10,1,15,2,260,1,890,2,1955,1,596,}, + {1,405,2,255,1,885,2,1955,1,596,}, + {1,405,2,255,1,885,2,1955,1,596,}, + {1,405,2,255,1,885,2,1955,1,596,}, + {1,405,2,255,1,885,2,1955,1,596,}, + {1,405,2,255,1,885,2,1955,1,596,}, + {1,405,2,5,1,15,2,240,1,875,2,1960,1,596,}, + {1,405,2,5,1,15,2,240,1,875,2,1960,1,596,}, + {1,405,2,5,1,15,2,240,1,875,2,1960,1,596,}, + {1,405,2,5,1,15,2,240,1,875,2,1960,1,596,}, + {1,405,2,5,1,15,2,240,1,875,2,1960,1,596,}, + {1,425,2,250,1,865,2,1960,1,596,}, + {1,425,2,250,1,865,2,1960,1,596,}, + {1,425,2,250,1,865,2,1960,1,596,}, + {1,425,2,250,1,865,2,1960,1,596,}, + {1,425,2,250,1,865,2,1960,1,596,}, + {1,420,2,265,1,850,2,1970,1,591,}, + {1,420,2,265,1,850,2,1970,1,591,}, + {1,420,2,265,1,850,2,1970,1,591,}, + {1,420,2,265,1,850,2,1970,1,591,}, + {1,420,2,265,1,850,2,1970,1,591,}, + {1,395,2,10,1,20,2,260,1,850,2,1970,1,591,}, + {1,395,2,10,1,20,2,260,1,850,2,1970,1,591,}, + {1,395,2,10,1,20,2,260,1,850,2,1970,1,591,}, + {1,395,2,10,1,20,2,260,1,850,2,1970,1,591,}, + {1,395,2,10,1,20,2,260,1,850,2,1970,1,591,}, + {1,395,2,10,1,25,2,255,1,850,2,1970,1,591,}, + {1,395,2,10,1,25,2,255,1,850,2,1970,1,591,}, + {1,395,2,10,1,25,2,255,1,850,2,1970,1,591,}, + {1,395,2,10,1,25,2,255,1,850,2,1970,1,591,}, + {1,395,2,10,1,24,2,256,1,850,2,1970,1,591,}, + {1,420,2,280,1,835,2,1970,1,591,}, + {1,420,2,280,1,835,2,1970,1,591,}, + {1,420,2,280,1,835,2,1970,1,591,}, + {1,420,2,280,1,835,2,1970,1,591,}, + {1,420,2,280,1,835,2,1970,1,591,}, + {1,400,2,10,1,10,2,295,1,820,2,1970,1,591,}, + {1,400,2,10,1,10,2,295,1,820,2,1970,1,591,}, + {1,400,2,10,1,10,2,295,1,820,2,1970,1,591,}, + {1,400,2,10,1,10,2,295,1,820,2,1970,1,591,}, + {1,400,2,10,1,10,2,295,1,820,2,1970,1,591,}, + {1,400,2,15,1,5,2,295,1,815,2,1985,1,581,}, + {1,400,2,15,1,5,2,295,1,815,2,1985,1,581,}, + {1,400,2,15,1,5,2,295,1,815,2,1985,1,581,}, + {1,400,2,15,1,5,2,295,1,815,2,1985,1,581,}, + {1,400,2,15,1,5,2,295,1,815,2,1985,1,581,}, + {1,400,2,315,1,815,2,1990,1,576,}, + {1,400,2,315,1,815,2,1990,1,576,}, + {1,400,2,315,1,815,2,1990,1,576,}, + {1,400,2,315,1,815,2,1990,1,576,}, + {1,400,2,315,1,815,2,1990,1,576,}, + {1,400,2,315,1,820,2,1990,1,571,}, + {1,400,2,315,1,820,2,1990,1,571,}, + {1,400,2,315,1,820,2,1990,1,571,}, + {1,400,2,25,1,1,2,289,1,820,2,1990,1,571,}, + {1,400,2,25,1,1,2,289,1,820,2,1990,1,571,}, + {1,405,2,315,1,815,2,1990,1,571,}, + {1,405,2,315,1,815,2,1990,1,571,}, + {1,405,2,315,1,815,2,1990,1,571,}, + {1,405,2,315,1,815,2,1990,1,571,}, + {1,405,2,315,1,815,2,1990,1,571,}, + {1,405,2,320,1,805,2,2000,1,566,}, + {1,405,2,320,1,805,2,2000,1,566,}, + {1,405,2,320,1,805,2,2000,1,566,}, + {1,405,2,320,1,805,2,2000,1,566,}, + {1,405,2,320,1,805,2,2000,1,566,}, + {1,405,2,325,1,15,2,15,1,770,2,2000,1,566,}, + {1,405,2,325,1,15,2,15,1,770,2,2000,1,566,}, + {1,405,2,325,1,15,2,15,1,770,2,2000,1,566,}, + {1,405,2,325,1,15,2,15,1,770,2,2000,1,566,}, + {1,405,2,325,1,15,2,15,1,770,2,2000,1,566,}, + {1,415,2,350,1,770,2,1995,1,566,}, + {1,415,2,350,1,770,2,1995,1,566,}, + {1,415,2,350,1,770,2,1995,1,566,}, + {1,415,2,350,1,770,2,1995,1,566,}, + {1,415,2,350,1,770,2,1995,1,566,}, + {1,420,2,20,1,15,2,305,1,775,2,1995,1,566,}, + {1,420,2,20,1,15,2,305,1,775,2,1995,1,566,}, + {1,420,2,20,1,15,2,305,1,775,2,1995,1,566,}, + {1,420,2,20,1,15,2,305,1,775,2,1995,1,566,}, + {1,420,2,20,1,15,2,305,1,775,2,1995,1,566,}, + {1,455,2,335,1,745,2,1995,1,566,}, + {1,455,2,335,1,745,2,1995,1,566,}, + {1,455,2,335,1,745,2,1995,1,566,}, + {1,455,2,335,1,745,2,1995,1,566,}, + {1,455,2,335,1,745,2,1995,1,566,}, + {1,455,2,15,1,5,2,330,1,735,2,1990,1,566,}, + {1,455,2,15,1,5,2,330,1,735,2,1990,1,566,}, + {1,455,2,15,1,5,2,330,1,735,2,1990,1,566,}, + {1,455,2,15,1,5,2,330,1,735,2,1990,1,566,}, + {1,455,2,15,1,5,2,330,1,735,2,1990,1,566,}, + {1,460,2,10,1,10,2,340,1,720,2,1990,1,566,}, + {1,460,2,10,1,10,2,340,1,720,2,1990,1,566,}, + {1,460,2,10,1,10,2,340,1,720,2,1990,1,566,}, + {1,460,2,10,1,10,2,340,1,720,2,1990,1,566,}, + {1,460,2,10,1,10,2,340,1,720,2,1990,1,566,}, + {1,430,2,20,1,25,2,350,1,715,2,1995,1,561,}, + {1,430,2,20,1,25,2,350,1,715,2,1995,1,561,}, + {1,430,2,20,1,25,2,350,1,715,2,1995,1,561,}, + {1,430,2,20,1,25,2,350,1,715,2,1995,1,561,}, + {1,430,2,20,1,25,2,350,1,715,2,1995,1,561,}, + {1,435,2,20,1,15,2,360,1,700,2,2005,1,561,}, + {1,435,2,20,1,15,2,360,1,700,2,2005,1,561,}, + {1,435,2,20,1,15,2,360,1,700,2,2005,1,561,}, + {1,435,2,20,1,15,2,360,1,700,2,2005,1,561,}, + {1,435,2,20,1,15,2,360,1,700,2,2005,1,561,}, + {1,440,2,25,1,5,2,365,1,685,2,2015,1,561,}, + {1,440,2,25,1,5,2,365,1,685,2,2015,1,561,}, + {1,440,2,25,1,5,2,365,1,685,2,2015,1,561,}, + {1,440,2,25,1,5,2,365,1,685,2,2015,1,561,}, + {1,440,2,25,1,5,2,365,1,685,2,2015,1,561,}, + {1,440,2,15,1,15,2,380,1,655,2,2035,1,556,}, + {1,440,2,15,1,15,2,380,1,655,2,2035,1,556,}, + {1,440,2,15,1,15,2,380,1,655,2,2035,1,556,}, + {1,440,2,15,1,15,2,380,1,655,2,2035,1,556,}, + {1,440,2,15,1,15,2,380,1,655,2,2035,1,556,}, + {1,440,2,25,1,5,2,5,1,5,2,390,1,625,2,2045,1,556,}, + {1,440,2,25,1,5,2,5,1,5,2,390,1,625,2,2045,1,556,}, + {1,440,2,25,1,5,2,5,1,5,2,390,1,625,2,2045,1,556,}, + {1,440,2,25,1,5,2,5,1,5,2,390,1,625,2,2045,1,556,}, + {1,440,2,25,1,5,2,5,1,5,2,390,1,625,2,2045,1,556,}, + {1,445,2,20,1,20,2,385,1,590,2,25,1,5,2,2050,1,556,}, + {1,445,2,20,1,20,2,385,1,590,2,25,1,5,2,2050,1,556,}, + {1,445,2,20,1,20,2,385,1,590,2,25,1,5,2,2050,1,556,}, + {1,445,2,20,1,20,2,385,1,590,2,25,1,5,2,2050,1,556,}, + {1,445,2,20,1,20,2,385,1,590,2,25,1,5,2,2050,1,556,}, + {1,445,2,10,1,30,2,415,1,565,2,2075,1,556,}, + {1,445,2,10,1,30,2,415,1,565,2,2075,1,556,}, + {1,445,2,10,1,30,2,415,1,565,2,2075,1,556,}, + {1,445,2,10,1,30,2,415,1,565,2,2075,1,556,}, + {1,445,2,10,1,30,2,415,1,565,2,2075,1,556,}, + {1,485,2,415,1,560,2,2080,1,556,}, + {1,485,2,415,1,560,2,2080,1,556,}, + {1,485,2,415,1,560,2,2080,1,556,}, + {1,485,2,415,1,560,2,2080,1,556,}, + {1,485,2,415,1,560,2,2080,1,556,}, + {1,455,2,10,1,5,2,440,1,545,2,2090,1,551,}, + {1,455,2,10,1,5,2,440,1,545,2,2090,1,551,}, + {1,455,2,10,1,5,2,440,1,545,2,2090,1,551,}, + {1,455,2,10,1,5,2,440,1,545,2,2090,1,551,}, + {1,455,2,10,1,5,2,440,1,545,2,2090,1,551,}, + {1,455,2,460,1,5,2,10,1,525,2,2090,1,551,}, + {1,455,2,460,1,5,2,10,1,525,2,2090,1,551,}, + {1,455,2,460,1,5,2,10,1,525,2,2090,1,551,}, + {1,455,2,460,1,5,2,10,1,525,2,2090,1,551,}, + {1,455,2,460,1,5,2,10,1,525,2,2090,1,551,}, + {1,455,2,495,1,505,2,2090,1,551,}, + {1,455,2,495,1,505,2,2090,1,551,}, + {1,455,2,495,1,505,2,2090,1,551,}, + {1,455,2,495,1,505,2,2090,1,551,}, + {1,455,2,495,1,505,2,2090,1,551,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,500,1,495,2,2095,1,546,}, + {1,460,2,505,1,485,2,2100,1,546,}, + {1,460,2,505,1,485,2,2100,1,546,}, + {1,460,2,505,1,485,2,2100,1,546,}, + {1,460,2,505,1,485,2,2100,1,546,}, + {1,460,2,505,1,485,2,2100,1,546,}, + {1,465,2,505,1,480,2,2100,1,546,}, + {1,465,2,505,1,480,2,2100,1,546,}, + {1,465,2,505,1,480,2,2100,1,546,}, + {1,465,2,505,1,480,2,2100,1,546,}, + {1,465,2,505,1,480,2,2100,1,546,}, + {1,465,2,80,1,5,2,430,1,445,2,2130,1,541,}, + {1,465,2,80,1,5,2,430,1,445,2,2130,1,541,}, + {1,465,2,80,1,5,2,430,1,445,2,2130,1,541,}, + {1,465,2,80,1,5,2,430,1,445,2,2130,1,541,}, + {1,465,2,80,1,5,2,430,1,445,2,2130,1,541,}, + {1,470,2,55,1,5,2,15,1,20,2,420,1,440,2,2130,1,541,}, + {1,470,2,55,1,5,2,15,1,20,2,420,1,440,2,2130,1,541,}, + {1,470,2,55,1,5,2,15,1,20,2,420,1,440,2,2130,1,541,}, + {1,470,2,55,1,5,2,15,1,20,2,420,1,440,2,2130,1,541,}, + {1,470,2,55,1,5,2,15,1,20,2,420,1,440,2,2130,1,541,}, + {1,470,2,55,1,10,2,10,1,50,2,405,1,450,2,2105,1,541,}, + {1,470,2,55,1,10,2,10,1,50,2,405,1,450,2,2105,1,541,}, + {1,470,2,55,1,10,2,10,1,50,2,405,1,450,2,2105,1,541,}, + {1,470,2,55,1,10,2,10,1,50,2,405,1,450,2,2105,1,541,}, + {1,470,2,55,1,10,2,10,1,50,2,405,1,450,2,2105,1,541,}, + {1,480,2,45,1,90,2,380,1,400,2,5,1,55,2,2100,1,541,}, + {1,480,2,45,1,90,2,380,1,400,2,5,1,55,2,2100,1,541,}, + {1,480,2,45,1,90,2,380,1,400,2,5,1,55,2,2100,1,541,}, + {1,480,2,45,1,90,2,380,1,400,2,5,1,55,2,2100,1,541,}, + {1,480,2,45,1,90,2,380,1,400,2,5,1,55,2,2100,1,541,}, + {1,490,2,50,1,55,2,5,1,5,2,5,1,5,2,380,1,295,2,10,1,10,2,20,1,60,2,10,1,50,2,2105,1,541,}, + {1,490,2,50,1,55,2,5,1,5,2,5,1,5,2,380,1,295,2,10,1,10,2,20,1,60,2,10,1,50,2,2105,1,541,}, + {1,490,2,50,1,55,2,5,1,5,2,5,1,5,2,380,1,295,2,10,1,10,2,20,1,60,2,10,1,50,2,2105,1,541,}, + {1,490,2,50,1,55,2,5,1,5,2,5,1,5,2,380,1,295,2,10,1,10,2,20,1,60,2,10,1,50,2,2105,1,541,}, + {1,490,2,50,1,55,2,5,1,5,2,5,1,5,2,380,1,295,2,10,1,10,2,20,1,60,2,10,1,50,2,2105,1,541,}, + {1,485,2,5,1,5,2,45,1,65,2,395,1,260,2,5,1,20,2,65,1,30,2,25,1,40,2,2115,1,536,}, + {1,485,2,5,1,5,2,45,1,65,2,395,1,260,2,5,1,20,2,65,1,30,2,25,1,40,2,2115,1,536,}, + {1,485,2,5,1,5,2,45,1,65,2,395,1,260,2,5,1,20,2,65,1,30,2,25,1,40,2,2115,1,536,}, + {1,485,2,5,1,5,2,45,1,65,2,395,1,260,2,5,1,20,2,65,1,30,2,25,1,40,2,2115,1,536,}, + {1,485,2,5,1,5,2,45,1,65,2,395,1,260,2,5,1,20,2,65,1,30,2,25,1,40,2,2115,1,536,}, + {1,495,2,45,1,75,2,10,1,20,2,365,1,215,2,135,1,10,2,60,1,5,2,2125,1,536,}, + {1,495,2,45,1,75,2,10,1,20,2,365,1,215,2,135,1,10,2,60,1,5,2,2125,1,536,}, + {1,495,2,45,1,75,2,10,1,20,2,365,1,215,2,135,1,10,2,60,1,5,2,2125,1,536,}, + {1,495,2,45,1,75,2,10,1,20,2,365,1,215,2,135,1,10,2,60,1,5,2,2125,1,536,}, + {1,495,2,45,1,75,2,10,1,20,2,365,1,215,2,135,1,10,2,60,1,5,2,2125,1,536,}, + {1,500,2,40,1,110,2,360,1,180,2,5,1,5,2,2360,1,536,}, + {1,500,2,40,1,110,2,360,1,180,2,5,1,5,2,2360,1,536,}, + {1,500,2,40,1,110,2,360,1,180,2,5,1,5,2,2360,1,536,}, + {1,500,2,40,1,110,2,360,1,180,2,5,1,5,2,2360,1,536,}, + {1,500,2,40,1,110,2,360,1,180,2,5,1,5,2,2360,1,536,}, + {1,510,2,10,1,125,2,370,1,175,2,2375,1,531,}, + {1,510,2,10,1,125,2,370,1,175,2,2375,1,531,}, + {1,510,2,10,1,125,2,370,1,175,2,2375,1,531,}, + {1,510,2,10,1,125,2,370,1,175,2,2375,1,531,}, + {1,510,2,10,1,125,2,370,1,175,2,2375,1,531,}, + {1,655,2,365,1,155,2,2405,1,516,}, + {1,655,2,365,1,155,2,2405,1,516,}, + {1,655,2,365,1,155,2,2405,1,516,}, + {1,655,2,365,1,155,2,2405,1,516,}, + {1,655,2,365,1,155,2,2405,1,516,}, + {1,655,2,380,1,130,2,2415,1,516,}, + {1,655,2,380,1,130,2,2415,1,516,}, + {1,655,2,380,1,130,2,2415,1,516,}, + {1,655,2,380,1,130,2,2415,1,516,}, + {1,655,2,380,1,130,2,2415,1,516,}, + {1,645,2,400,1,105,2,2435,1,511,}, + {1,645,2,400,1,105,2,2435,1,511,}, + {1,645,2,400,1,105,2,2435,1,511,}, + {1,645,2,400,1,105,2,2435,1,511,}, + {1,645,2,400,1,105,2,2435,1,511,}, + {1,625,2,430,1,80,2,2435,1,10,2,5,1,511,}, + {1,625,2,430,1,80,2,2435,1,10,2,5,1,511,}, + {1,625,2,430,1,80,2,2435,1,10,2,5,1,511,}, + {1,625,2,430,1,80,2,2435,1,10,2,5,1,511,}, + {1,625,2,430,1,80,2,2435,1,10,2,5,1,511,}, + {1,625,2,430,1,70,2,2430,1,541,}, + {1,625,2,430,1,70,2,2430,1,541,}, + {1,625,2,430,1,70,2,2430,1,541,}, + {1,625,2,430,1,70,2,2430,1,541,}, + {1,625,2,430,1,70,2,2430,1,541,}, + {1,635,2,425,1,60,2,2430,1,546,}, + {1,635,2,425,1,60,2,2430,1,546,}, + {1,635,2,425,1,60,2,2430,1,546,}, + {1,635,2,425,1,60,2,2430,1,546,}, + {1,635,2,425,1,60,2,2430,1,546,}, + {1,640,2,425,1,40,2,2440,1,551,}, + {1,640,2,425,1,40,2,2440,1,551,}, + {1,640,2,425,1,40,2,2440,1,551,}, + {1,640,2,425,1,40,2,2440,1,551,}, + {1,640,2,425,1,40,2,2440,1,551,}, + {1,640,2,15,1,5,2,5,1,5,2,395,1,20,2,2455,1,556,}, + {1,640,2,15,1,5,2,5,1,5,2,395,1,20,2,2455,1,556,}, + {1,640,2,15,1,5,2,5,1,5,2,395,1,20,2,2455,1,556,}, + {1,640,2,15,1,5,2,5,1,5,2,395,1,20,2,2455,1,556,}, + {1,640,2,15,1,5,2,5,1,5,2,395,1,20,2,2455,1,556,}, + {1,680,2,390,1,5,2,2460,1,561,}, + {1,680,2,390,1,5,2,2460,1,561,}, + {1,680,2,390,1,5,2,2460,1,561,}, + {1,680,2,390,1,5,2,2460,1,561,}, + {1,680,2,390,1,5,2,2460,1,561,}, + {1,680,2,5,1,10,2,2840,1,561,}, + {1,680,2,5,1,10,2,2840,1,561,}, + {1,680,2,5,1,10,2,2840,1,561,}, + {1,680,2,5,1,10,2,2840,1,561,}, + {1,680,2,5,1,10,2,2840,1,561,}, + {1,585,2,20,1,20,2,10,1,5,2,20,1,30,2,2840,1,566,}, + {1,585,2,20,1,20,2,10,1,5,2,20,1,30,2,2840,1,566,}, + {1,585,2,20,1,20,2,10,1,5,2,20,1,30,2,2840,1,566,}, + {1,585,2,20,1,20,2,10,1,5,2,20,1,30,2,2840,1,566,}, + {1,585,2,20,1,20,2,10,1,5,2,20,1,30,2,2840,1,566,}, + {1,580,2,40,1,5,2,60,1,5,2,2830,1,5,2,5,1,566,}, + {1,580,2,40,1,5,2,60,1,5,2,2830,1,5,2,5,1,566,}, + {1,580,2,40,1,5,2,60,1,5,2,2830,1,5,2,5,1,566,}, + {1,580,2,40,1,5,2,60,1,5,2,2830,1,5,2,5,1,566,}, + {1,580,2,40,1,5,2,60,1,5,2,2830,1,5,2,5,1,566,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2955,1,561,}, + {1,580,2,2955,1,561,}, + {1,580,2,2955,1,561,}, + {1,580,2,2955,1,561,}, + {1,580,2,2955,1,561,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2960,1,556,}, + {1,580,2,2965,1,551,}, + {1,580,2,2965,1,551,}, + {1,580,2,2965,1,551,}, + {1,580,2,2965,1,551,}, + {1,580,2,2965,1,551,}, + {1,575,2,2970,1,551,}, + {1,575,2,2970,1,551,}, + {1,575,2,2970,1,551,}, + {1,575,2,2970,1,551,}, + {1,575,2,2970,1,551,}, + {1,575,2,2975,1,546,}, + {1,575,2,2975,1,546,}, + {1,575,2,2975,1,546,}, + {1,575,2,2975,1,546,}, + {1,575,2,2975,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2970,1,546,}, + {1,580,2,2975,1,541,}, + {1,580,2,2975,1,541,}, + {1,580,2,2975,1,541,}, + {1,580,2,2975,1,541,}, + {1,580,2,2975,1,541,}, + {1,580,2,40,1,5,2,2930,1,541,}, + {1,580,2,40,1,5,2,2930,1,541,}, + {1,580,2,40,1,5,2,2930,1,541,}, + {1,580,2,40,1,5,2,2930,1,541,}, + {1,580,2,40,1,5,2,2930,1,541,}, + {1,630,2,2925,1,541,}, + {1,630,2,2925,1,541,}, + {1,630,2,2925,1,541,}, + {1,630,2,2925,1,541,}, + {1,630,2,2925,1,541,}, + {1,615,2,2930,1,551,}, + {1,615,2,2930,1,551,}, + {1,615,2,2930,1,551,}, + {1,615,2,2930,1,551,}, + {1,615,2,2930,1,551,}, + {1,615,2,2935,1,546,}, + {1,615,2,2935,1,546,}, + {1,615,2,2935,1,546,}, + {1,615,2,2935,1,546,}, + {1,615,2,2935,1,546,}, + {1,605,2,30,1,10,2,2905,1,546,}, + {1,605,2,30,1,10,2,2905,1,546,}, + {1,605,2,30,1,10,2,2905,1,546,}, + {1,605,2,30,1,10,2,2905,1,546,}, + {1,605,2,30,1,10,2,2905,1,546,}, + {1,605,2,25,1,20,2,2895,1,551,}, + {1,605,2,25,1,20,2,2895,1,551,}, + {1,605,2,25,1,20,2,2895,1,551,}, + {1,605,2,25,1,20,2,2895,1,551,}, + {1,605,2,25,1,20,2,2895,1,551,}, + {1,605,2,15,1,30,2,2895,1,551,}, + {1,605,2,15,1,30,2,2895,1,551,}, + {1,605,2,15,1,30,2,2895,1,551,}, + {1,605,2,15,1,30,2,2895,1,551,}, + {1,605,2,15,1,30,2,2895,1,551,}, + {1,670,2,2870,1,556,}, + {1,670,2,2870,1,556,}, + {1,670,2,2870,1,556,}, + {1,670,2,2870,1,556,}, + {1,670,2,2870,1,556,}, + {1,670,2,2870,1,556,}, + {1,670,2,2870,1,556,}, + {1,670,2,2870,1,556,}, + {1,670,2,2870,1,556,}, + {1,670,2,2870,1,556,}, + {1,680,2,2850,1,566,}, + {1,680,2,2850,1,566,}, + {1,680,2,2850,1,566,}, + {1,680,2,2850,1,566,}, + {1,680,2,2850,1,566,}, + {1,680,2,2845,1,571,}, + {1,680,2,2845,1,571,}, + {1,680,2,2845,1,571,}, + {1,680,2,2845,1,571,}, + {1,680,2,2845,1,571,}, + {1,680,2,2795,1,5,2,40,1,576,}, + {1,680,2,2795,1,5,2,40,1,576,}, + {1,680,2,2795,1,5,2,40,1,576,}, + {1,680,2,2795,1,5,2,40,1,576,}, + {1,680,2,2795,1,5,2,40,1,576,}, + {1,680,2,2795,1,10,2,30,1,581,}, + {1,680,2,2795,1,10,2,30,1,581,}, + {1,680,2,2795,1,10,2,30,1,581,}, + {1,680,2,2795,1,10,2,30,1,581,}, + {1,680,2,2795,1,10,2,30,1,581,}, + {1,685,2,35,1,5,2,2755,1,15,2,15,1,586,}, + {1,685,2,35,1,5,2,2755,1,15,2,15,1,586,}, + {1,685,2,35,1,5,2,2755,1,15,2,15,1,586,}, + {1,685,2,35,1,5,2,2755,1,15,2,15,1,586,}, + {1,685,2,35,1,5,2,2755,1,15,2,15,1,586,}, + {1,630,2,10,1,40,2,25,1,5,2,10,1,15,2,2745,1,616,}, + {1,630,2,10,1,40,2,25,1,5,2,10,1,15,2,2745,1,616,}, + {1,630,2,10,1,40,2,25,1,5,2,10,1,15,2,2745,1,616,}, + {1,630,2,10,1,40,2,25,1,5,2,10,1,15,2,2745,1,616,}, + {1,630,2,10,1,40,2,25,1,5,2,10,1,15,2,2745,1,616,}, + {1,615,2,45,1,20,2,25,1,30,2,2745,1,616,}, + {1,615,2,45,1,20,2,25,1,30,2,2745,1,616,}, + {1,615,2,45,1,20,2,25,1,30,2,2745,1,616,}, + {1,615,2,45,1,20,2,25,1,30,2,2745,1,616,}, + {1,615,2,45,1,20,2,25,1,30,2,2745,1,616,}, + {1,615,2,45,1,20,2,30,1,25,2,2760,1,601,}, + {1,615,2,45,1,20,2,30,1,25,2,2760,1,601,}, + {1,615,2,45,1,20,2,30,1,25,2,2760,1,601,}, + {1,615,2,45,1,20,2,30,1,25,2,2760,1,601,}, + {1,615,2,45,1,20,2,30,1,25,2,2760,1,601,}, + {1,615,2,40,1,25,2,30,1,25,2,2765,1,596,}, + {1,615,2,40,1,25,2,30,1,25,2,2765,1,596,}, + {1,615,2,40,1,25,2,30,1,25,2,2765,1,596,}, + {1,615,2,40,1,25,2,30,1,25,2,2765,1,596,}, + {1,615,2,40,1,25,2,30,1,25,2,2765,1,596,}, + {1,615,2,35,1,30,2,30,1,30,2,10,1,10,2,40,1,15,2,25,1,10,2,15,1,15,2,2620,1,596,}, + {1,615,2,35,1,30,2,30,1,30,2,10,1,10,2,40,1,15,2,25,1,10,2,15,1,15,2,2620,1,596,}, + {1,615,2,35,1,30,2,30,1,30,2,10,1,10,2,40,1,15,2,25,1,10,2,15,1,15,2,2620,1,596,}, + {1,615,2,35,1,30,2,30,1,30,2,10,1,10,2,40,1,15,2,25,1,10,2,15,1,15,2,2620,1,596,}, + {1,615,2,35,1,30,2,30,1,30,2,10,1,10,2,40,1,15,2,25,1,10,2,15,1,15,2,2620,1,596,}, + {1,615,2,35,1,25,2,35,1,25,2,60,1,20,2,20,1,40,2,2640,1,581,}, + {1,615,2,35,1,25,2,35,1,25,2,60,1,20,2,20,1,40,2,2640,1,581,}, + {1,615,2,35,1,25,2,35,1,25,2,60,1,20,2,20,1,40,2,2640,1,581,}, + {1,615,2,35,1,25,2,35,1,25,2,60,1,20,2,20,1,40,2,2640,1,581,}, + {1,615,2,35,1,25,2,35,1,25,2,60,1,20,2,20,1,40,2,2640,1,581,}, + {1,620,2,25,1,30,2,35,1,25,2,45,1,5,2,10,1,75,2,2645,1,581,}, + {1,620,2,25,1,30,2,35,1,25,2,45,1,5,2,10,1,75,2,2645,1,581,}, + {1,620,2,25,1,30,2,35,1,25,2,45,1,5,2,10,1,75,2,2645,1,581,}, + {1,620,2,25,1,30,2,35,1,25,2,45,1,5,2,10,1,75,2,2645,1,581,}, + {1,620,2,25,1,30,2,35,1,25,2,45,1,5,2,10,1,75,2,2645,1,581,}, + {1,615,2,30,1,40,2,25,1,25,2,65,1,65,2,2655,1,576,}, + {1,615,2,30,1,40,2,25,1,25,2,65,1,65,2,2655,1,576,}, + {1,615,2,30,1,40,2,25,1,25,2,65,1,65,2,2655,1,576,}, + {1,615,2,30,1,40,2,25,1,25,2,65,1,65,2,2655,1,576,}, + {1,615,2,30,1,40,2,25,1,25,2,65,1,65,2,2655,1,576,}, + {1,615,2,5,1,5,2,15,1,50,2,20,1,40,2,15,1,10,2,25,1,65,2,2650,1,581,}, + {1,615,2,5,1,5,2,15,1,50,2,20,1,40,2,15,1,10,2,25,1,65,2,2650,1,581,}, + {1,615,2,5,1,5,2,15,1,50,2,20,1,40,2,15,1,10,2,25,1,65,2,2650,1,581,}, + {1,615,2,5,1,5,2,15,1,50,2,20,1,40,2,15,1,10,2,25,1,65,2,2650,1,581,}, + {1,615,2,5,1,5,2,15,1,50,2,20,1,40,2,15,1,10,2,25,1,65,2,2650,1,581,}, + {1,685,2,25,1,35,2,45,1,75,2,2665,1,566,}, + {1,685,2,25,1,35,2,45,1,75,2,2665,1,566,}, + {1,685,2,25,1,35,2,45,1,75,2,2665,1,566,}, + {1,685,2,25,1,35,2,45,1,75,2,2665,1,566,}, + {1,685,2,25,1,35,2,45,1,75,2,2665,1,566,}, + {1,685,2,30,1,30,2,50,1,65,2,2670,1,566,}, + {1,685,2,30,1,30,2,50,1,65,2,2670,1,566,}, + {1,685,2,30,1,30,2,50,1,65,2,2670,1,566,}, + {1,685,2,30,1,30,2,50,1,65,2,2670,1,566,}, + {1,685,2,30,1,30,2,50,1,65,2,2670,1,566,}, + {1,685,2,30,1,30,2,45,1,70,2,2675,1,561,}, + {1,685,2,30,1,30,2,45,1,70,2,2675,1,561,}, + {1,685,2,30,1,30,2,45,1,70,2,2675,1,561,}, + {1,685,2,30,1,30,2,45,1,70,2,2675,1,561,}, + {1,685,2,30,1,30,2,45,1,70,2,2675,1,561,}, + {1,685,2,25,1,40,2,30,1,65,2,2690,1,561,}, + {1,685,2,25,1,40,2,30,1,65,2,2690,1,561,}, + {1,685,2,25,1,40,2,30,1,65,2,2690,1,561,}, + {1,685,2,25,1,40,2,30,1,65,2,2690,1,561,}, + {1,685,2,25,1,40,2,30,1,65,2,2690,1,561,}, + {1,690,2,20,1,35,2,30,1,65,2,2705,1,15,2,10,1,5,2,15,1,506,}, + {1,690,2,20,1,35,2,30,1,65,2,2705,1,15,2,10,1,5,2,15,1,506,}, + {1,690,2,20,1,35,2,30,1,65,2,2705,1,15,2,10,1,5,2,15,1,506,}, + {1,690,2,20,1,35,2,30,1,65,2,2705,1,15,2,10,1,5,2,15,1,506,}, + {1,690,2,20,1,35,2,30,1,65,2,2705,1,15,2,10,1,5,2,15,1,506,}, + {1,690,2,20,1,130,2,2705,1,10,2,40,1,501,}, + {1,690,2,20,1,130,2,2705,1,10,2,40,1,501,}, + {1,690,2,20,1,130,2,2705,1,10,2,40,1,501,}, + {1,690,2,20,1,130,2,2705,1,10,2,40,1,501,}, + {1,690,2,20,1,130,2,2705,1,10,2,40,1,501,}, + {1,695,2,10,1,125,2,2770,1,496,}, + {1,695,2,10,1,125,2,2770,1,496,}, + {1,695,2,10,1,125,2,2770,1,496,}, + {1,695,2,10,1,125,2,2770,1,496,}, + {1,695,2,10,1,125,2,2770,1,496,}, + {1,830,2,2785,1,481,}, + {1,830,2,2785,1,481,}, + {1,830,2,2785,1,481,}, + {1,830,2,2785,1,481,}, + {1,830,2,2785,1,481,}, + {1,830,2,2785,1,481,}, + {1,830,2,2785,1,481,}, + {1,830,2,2785,1,481,}, + {1,830,2,2785,1,481,}, + {1,830,2,2785,1,481,}, + {1,830,2,2790,1,476,}, + {1,830,2,2790,1,476,}, + {1,830,2,2790,1,476,}, + {1,830,2,2790,1,476,}, + {1,830,2,2790,1,476,}, + {1,820,2,2805,1,471,}, + {1,820,2,2805,1,471,}, + {1,820,2,2805,1,471,}, + {1,820,2,2805,1,471,}, + {1,820,2,2805,1,471,}, + {1,805,2,2830,1,461,}, + {1,805,2,2830,1,461,}, + {1,805,2,2830,1,461,}, + {1,805,2,2830,1,461,}, + {1,805,2,2830,1,461,}, + {1,805,2,2825,1,466,}, + {1,805,2,2825,1,466,}, + {1,805,2,2825,1,466,}, + {1,805,2,2825,1,466,}, + {1,805,2,2825,1,466,}, + {1,805,2,2830,1,461,}, + {1,805,2,2830,1,461,}, + {1,805,2,2830,1,461,}, + {1,805,2,2830,1,461,}, + {1,805,2,2830,1,461,}, + {1,800,2,2840,1,456,}, + {1,800,2,2840,1,456,}, + {1,800,2,2840,1,456,}, + {1,800,2,2840,1,456,}, + {1,800,2,2840,1,456,}, + {1,790,2,2850,1,456,}, + {1,790,2,2850,1,456,}, + {1,790,2,2850,1,456,}, + {1,790,2,2850,1,456,}, + {1,790,2,2850,1,456,}, + {1,790,2,2855,1,451,}, + {1,790,2,2855,1,451,}, + {1,790,2,2855,1,451,}, + {1,790,2,2855,1,451,}, + {1,790,2,2855,1,451,}, + {1,795,2,2850,1,451,}, + {1,795,2,2850,1,451,}, + {1,795,2,2850,1,451,}, + {1,795,2,2850,1,451,}, + {1,795,2,2850,1,451,}, + {1,795,2,2855,1,75,2,15,1,15,2,20,1,321,}, + {1,795,2,2855,1,75,2,15,1,15,2,20,1,321,}, + {1,795,2,2855,1,75,2,15,1,15,2,20,1,321,}, + {1,795,2,2855,1,75,2,15,1,15,2,20,1,321,}, + {1,795,2,2855,1,75,2,15,1,15,2,20,1,321,}, + {1,780,2,15,1,5,2,2850,1,60,2,65,1,321,}, + {1,780,2,15,1,5,2,2850,1,60,2,65,1,321,}, + {1,780,2,15,1,5,2,2850,1,60,2,65,1,321,}, + {1,780,2,15,1,5,2,2850,1,60,2,65,1,321,}, + {1,780,2,15,1,5,2,2850,1,60,2,65,1,321,}, + {1,780,2,2875,1,50,2,70,1,321,}, + {1,780,2,2875,1,50,2,70,1,321,}, + {1,780,2,2875,1,50,2,70,1,321,}, + {1,780,2,2875,1,50,2,70,1,321,}, + {1,780,2,2875,1,50,2,70,1,321,}, + {1,775,2,2910,1,15,2,75,1,321,}, + {1,775,2,2910,1,15,2,75,1,321,}, + {1,775,2,2910,1,15,2,75,1,321,}, + {1,775,2,2910,1,15,2,75,1,321,}, + {1,775,2,2910,1,15,2,75,1,321,}, + {1,775,2,25,1,15,2,2960,1,321,}, + {1,775,2,25,1,15,2,2960,1,321,}, + {1,775,2,25,1,15,2,2960,1,321,}, + {1,775,2,25,1,15,2,2960,1,321,}, + {1,775,2,25,1,15,2,2960,1,321,}, + {1,775,2,20,1,20,2,2960,1,321,}, + {1,775,2,20,1,20,2,2960,1,321,}, + {1,775,2,20,1,20,2,2960,1,321,}, + {1,775,2,20,1,20,2,2960,1,321,}, + {1,775,2,20,1,20,2,2960,1,321,}, + {1,815,2,2950,1,331,}, + {1,815,2,2950,1,331,}, + {1,815,2,2950,1,331,}, + {1,815,2,2950,1,331,}, + {1,815,2,2950,1,331,}, + {1,815,2,5,1,10,2,2925,1,341,}, + {1,815,2,5,1,10,2,2925,1,341,}, + {1,815,2,5,1,10,2,2925,1,341,}, + {1,815,2,5,1,10,2,2925,1,341,}, + {1,815,2,5,1,10,2,2925,1,341,}, + {1,825,2,2925,1,346,}, + {1,825,2,2925,1,346,}, + {1,825,2,2925,1,346,}, + {1,825,2,15,1,1,2,2909,1,346,}, + {1,825,2,15,1,1,2,2909,1,346,}, + {1,825,2,2910,1,361,}, + {1,825,2,2910,1,361,}, + {1,825,2,2910,1,361,}, + {1,825,2,2910,1,361,}, + {1,825,2,2910,1,361,}, + {1,820,2,2915,1,361,}, + {1,820,2,2915,1,361,}, + {1,820,2,2915,1,361,}, + {1,820,2,2915,1,361,}, + {1,820,2,2915,1,361,}, + {1,820,2,2910,1,366,}, + {1,820,2,2910,1,366,}, + {1,820,2,2910,1,366,}, + {1,820,2,2910,1,366,}, + {1,820,2,2910,1,366,}, + {1,820,2,20,1,1,2,2884,1,371,}, + {1,820,2,20,1,1,2,2884,1,371,}, + {1,820,2,20,1,2,2,2883,1,371,}, + {1,820,2,20,1,2,2,2883,1,371,}, + {1,820,2,20,1,3,2,2882,1,371,}, + {1,820,2,10,1,10,2,2885,1,371,}, + {1,820,2,10,1,10,2,2885,1,371,}, + {1,820,2,10,1,10,2,2885,1,371,}, + {1,820,2,10,1,10,2,2885,1,371,}, + {1,820,2,10,1,10,2,2885,1,371,}, + {1,840,2,2885,1,371,}, + {1,840,2,2885,1,371,}, + {1,840,2,2885,1,371,}, + {1,840,2,2885,1,371,}, + {1,840,2,2885,1,371,}, + {1,840,2,2885,1,20,2,15,1,336,}, + {1,840,2,2885,1,20,2,15,1,336,}, + {1,840,2,2885,1,20,2,15,1,336,}, + {1,840,2,2885,1,20,2,15,1,336,}, + {1,840,2,2885,1,20,2,15,1,336,}, + {1,840,2,25,1,5,2,2855,1,15,2,20,1,336,}, + {1,840,2,25,1,5,2,2855,1,15,2,20,1,336,}, + {1,840,2,25,1,5,2,2855,1,15,2,20,1,336,}, + {1,840,2,25,1,5,2,2855,1,15,2,20,1,336,}, + {1,840,2,25,1,5,2,2855,1,15,2,20,1,336,}, + {1,875,2,2850,1,10,2,25,1,336,}, + {1,875,2,2850,1,10,2,25,1,336,}, + {1,875,2,2850,1,10,2,25,1,336,}, + {1,875,2,2850,1,10,2,25,1,336,}, + {1,875,2,2850,1,10,2,25,1,336,}, + {1,875,2,2890,1,331,}, + {1,875,2,2890,1,331,}, + {1,875,2,2890,1,331,}, + {1,875,2,2890,1,331,}, + {1,875,2,2890,1,331,}, + {1,880,2,2885,1,331,}, + {1,880,2,2885,1,331,}, + {1,880,2,2885,1,331,}, + {1,880,2,2885,1,331,}, + {1,880,2,2885,1,331,}, + {1,880,2,2885,1,331,}, + {1,880,2,2885,1,331,}, + {1,880,2,2885,1,331,}, + {1,880,2,2885,1,331,}, + {1,880,2,2885,1,331,}, + {1,870,2,2895,1,331,}, + {1,870,2,2895,1,331,}, + {1,870,2,2895,1,331,}, + {1,870,2,2895,1,331,}, + {1,870,2,2895,1,331,}, + {1,870,2,2895,1,331,}, + {1,870,2,2895,1,331,}, + {1,870,2,2895,1,331,}, + {1,870,2,2895,1,331,}, + {1,870,2,2895,1,331,}, + {1,865,2,2905,1,326,}, + {1,865,2,2905,1,326,}, + {1,865,2,2905,1,326,}, + {1,865,2,2905,1,326,}, + {1,865,2,2905,1,326,}, + {1,865,2,2910,1,321,}, + {1,865,2,2910,1,321,}, + {1,865,2,2910,1,321,}, + {1,865,2,2910,1,321,}, + {1,865,2,2910,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,855,2,2920,1,321,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,850,2,2930,1,316,}, + {1,850,2,2930,1,316,}, + {1,850,2,2930,1,316,}, + {1,850,2,2930,1,316,}, + {1,850,2,2930,1,316,}, + {1,850,2,2930,1,316,}, + {1,850,2,2930,1,316,}, + {1,850,2,2930,1,316,}, + {1,850,2,2930,1,316,}, + {1,850,2,2930,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,845,2,2935,1,316,}, + {1,825,2,2960,1,311,}, + {1,825,2,2960,1,311,}, + {1,825,2,2960,1,311,}, + {1,825,2,2960,1,311,}, + {1,825,2,2960,1,311,}, + {1,815,2,2970,1,311,}, + {1,815,2,2970,1,311,}, + {1,815,2,2970,1,311,}, + {1,815,2,2970,1,311,}, + {1,815,2,2970,1,311,}, + {1,810,2,2975,1,311,}, + {1,810,2,2975,1,311,}, + {1,810,2,2975,1,311,}, + {1,810,2,2975,1,311,}, + {1,810,2,2975,1,311,}, + {1,805,2,2980,1,311,}, + {1,805,2,2980,1,311,}, + {1,805,2,2980,1,311,}, + {1,805,2,2980,1,311,}, + {1,805,2,2980,1,311,}, + {1,805,2,2980,1,311,}, + {1,805,2,2980,1,311,}, + {1,805,2,2980,1,311,}, + {1,805,2,2980,1,311,}, + {1,805,2,2980,1,311,}, + {1,800,2,2980,1,316,}, + {1,800,2,2980,1,316,}, + {1,800,2,2980,1,316,}, + {1,800,2,2980,1,316,}, + {1,800,2,2980,1,316,}, + {1,800,2,2980,1,316,}, + {1,800,2,2980,1,316,}, + {1,800,2,2980,1,316,}, + {1,800,2,2980,1,316,}, + {1,800,2,2980,1,316,}, + {1,800,2,2975,1,321,}, + {1,800,2,2975,1,321,}, + {1,800,2,2975,1,321,}, + {1,800,2,2975,1,321,}, + {1,800,2,2975,1,321,}, + {1,800,2,2975,1,321,}, + {1,800,2,2975,1,321,}, + {1,800,2,2975,1,321,}, + {1,800,2,2975,1,321,}, + {1,800,2,2975,1,321,}, + {1,800,2,2970,1,326,}, + {1,800,2,2970,1,326,}, + {1,800,2,2970,1,326,}, + {1,800,2,2970,1,326,}, + {1,800,2,2970,1,326,}, + {1,795,2,2975,1,326,}, + {1,795,2,2975,1,326,}, + {1,795,2,2975,1,326,}, + {1,795,2,2975,1,326,}, + {1,795,2,2975,1,326,}, + {1,785,2,2985,1,326,}, + {1,785,2,2985,1,326,}, + {1,785,2,2985,1,326,}, + {1,785,2,2985,1,326,}, + {1,785,2,2985,1,326,}, + {1,785,2,2970,1,341,}, + {1,785,2,2970,1,341,}, + {1,785,2,2970,1,341,}, + {1,785,2,2970,1,341,}, + {1,785,2,2970,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2970,1,346,}, + {1,780,2,2970,1,346,}, + {1,780,2,2970,1,346,}, + {1,780,2,2970,1,346,}, + {1,780,2,2970,1,346,}, + {1,780,2,2970,1,346,}, + {1,780,2,2970,1,346,}, + {1,780,2,2970,1,346,}, + {1,780,2,2970,1,346,}, + {1,780,2,2970,1,346,}, + {1,775,2,2975,1,346,}, + {1,775,2,2975,1,346,}, + {1,775,2,2975,1,346,}, + {1,775,2,2975,1,346,}, + {1,775,2,2975,1,346,}, + {1,775,2,2980,1,341,}, + {1,775,2,2980,1,341,}, + {1,775,2,2980,1,341,}, + {1,775,2,2980,1,341,}, + {1,775,2,2980,1,341,}, + {1,770,2,2985,1,341,}, + {1,770,2,2985,1,341,}, + {1,770,2,2985,1,341,}, + {1,770,2,2985,1,341,}, + {1,770,2,2985,1,341,}, + {1,770,2,2985,1,341,}, + {1,770,2,2985,1,341,}, + {1,770,2,2985,1,341,}, + {1,770,2,2985,1,341,}, + {1,770,2,2985,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,780,2,2975,1,341,}, + {1,490,2,20,1,270,2,2980,1,336,}, + {1,490,2,20,1,270,2,2980,1,336,}, + {1,490,2,20,1,270,2,2980,1,336,}, + {1,490,2,20,1,270,2,2980,1,336,}, + {1,490,2,20,1,270,2,2980,1,336,}, + {1,490,2,20,1,265,2,2985,1,336,}, + {1,490,2,20,1,265,2,2985,1,336,}, + {1,490,2,20,1,265,2,2985,1,336,}, + {1,490,2,20,1,265,2,2985,1,336,}, + {1,490,2,20,1,265,2,2985,1,336,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2990,1,326,}, + {1,780,2,2995,1,321,}, + {1,780,2,2995,1,321,}, + {1,780,2,2995,1,321,}, + {1,780,2,2995,1,321,}, + {1,780,2,2995,1,321,}, + {1,775,2,3000,1,321,}, + {1,775,2,3000,1,321,}, + {1,775,2,3000,1,321,}, + {1,775,2,3000,1,321,}, + {1,775,2,3000,1,321,}, + {1,775,2,2995,1,50,2,15,1,261,}, + {1,775,2,2995,1,50,2,15,1,261,}, + {1,775,2,2995,1,50,2,15,1,261,}, + {1,775,2,2995,1,50,2,15,1,261,}, + {1,775,2,2995,1,50,2,15,1,261,}, + {1,775,2,2995,1,50,2,20,1,256,}, + {1,775,2,2995,1,50,2,20,1,256,}, + {1,775,2,2995,1,50,2,20,1,256,}, + {1,775,2,2995,1,50,2,20,1,256,}, + {1,775,2,2995,1,50,2,20,1,256,}, + {1,775,2,2990,1,55,2,15,1,261,}, + {1,775,2,2990,1,55,2,15,1,261,}, + {1,775,2,2990,1,55,2,15,1,261,}, + {1,775,2,2990,1,55,2,15,1,261,}, + {1,775,2,2990,1,55,2,15,1,261,}, + {1,775,2,2990,1,55,2,10,1,266,}, + {1,775,2,2990,1,55,2,10,1,266,}, + {1,775,2,2990,1,55,2,10,1,266,}, + {1,775,2,2990,1,55,2,10,1,266,}, + {1,775,2,2990,1,55,2,10,1,266,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,770,2,2995,1,331,}, + {1,770,2,2995,1,331,}, + {1,770,2,2995,1,331,}, + {1,770,2,2995,1,331,}, + {1,770,2,2995,1,331,}, + {1,765,2,3000,1,331,}, + {1,765,2,3000,1,331,}, + {1,765,2,3000,1,331,}, + {1,765,2,3000,1,331,}, + {1,765,2,3000,1,331,}, + {1,775,2,2990,1,331,}, + {1,775,2,2990,1,331,}, + {1,775,2,2990,1,331,}, + {1,775,2,2990,1,331,}, + {1,775,2,2990,1,331,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,775,2,2995,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,770,2,3000,1,326,}, + {1,750,2,3010,1,336,}, + {1,750,2,3010,1,336,}, + {1,750,2,3010,1,336,}, + {1,750,2,3010,1,336,}, + {1,750,2,3010,1,336,}, + {1,745,2,3015,1,336,}, + {1,745,2,3015,1,336,}, + {1,745,2,3015,1,336,}, + {1,745,2,3015,1,336,}, + {1,745,2,3015,1,336,}, + {1,740,2,3025,1,331,}, + {1,740,2,3025,1,331,}, + {1,740,2,3025,1,331,}, + {1,740,2,3025,1,331,}, + {1,740,2,3025,1,331,}, + {1,730,2,3040,1,326,}, + {1,730,2,3040,1,326,}, + {1,730,2,3040,1,326,}, + {1,730,2,3040,1,326,}, + {1,730,2,3040,1,326,}, + {1,730,2,3040,1,5,2,10,1,311,}, + {1,730,2,3040,1,5,2,10,1,311,}, + {1,730,2,3040,1,5,2,10,1,311,}, + {1,730,2,3040,1,5,2,10,1,311,}, + {1,730,2,3040,1,5,2,10,1,311,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,306,}, + {1,730,2,3060,1,15,2,20,1,271,}, + {1,730,2,3060,1,15,2,20,1,271,}, + {1,730,2,3060,1,15,2,20,1,271,}, + {1,730,2,3060,1,15,2,20,1,271,}, + {1,730,2,3060,1,15,2,20,1,271,}, + {1,735,2,3110,1,251,}, + {1,735,2,3110,1,251,}, + {1,735,2,3110,1,251,}, + {1,735,2,3110,1,251,}, + {1,735,2,3110,1,251,}, + {1,735,2,3125,1,236,}, + {1,735,2,3125,1,236,}, + {1,735,2,3125,1,236,}, + {1,735,2,3125,1,236,}, + {1,735,2,3125,1,236,}, + {1,735,2,3125,1,236,}, + {1,735,2,3125,1,236,}, + {1,735,2,3125,1,236,}, + {1,735,2,3125,1,236,}, + {1,735,2,3125,1,236,}, + {1,735,2,3130,1,231,}, + {1,735,2,3130,1,231,}, + {1,735,2,3130,1,231,}, + {1,735,2,3130,1,231,}, + {1,735,2,3130,1,231,}, + {1,735,2,3140,1,221,}, + {1,735,2,3140,1,221,}, + {1,735,2,3140,1,221,}, + {1,735,2,3140,1,221,}, + {1,735,2,3140,1,221,}, + {1,730,2,3145,1,221,}, + {1,730,2,3145,1,221,}, + {1,730,2,3145,1,221,}, + {1,730,2,3145,1,221,}, + {1,730,2,3145,1,221,}, + {1,730,2,3150,1,216,}, + {1,730,2,3150,1,216,}, + {1,730,2,3150,1,216,}, + {1,730,2,3150,1,216,}, + {1,730,2,3150,1,216,}, + {1,730,2,3150,1,216,}, + {1,730,2,3150,1,216,}, + {1,730,2,3150,1,216,}, + {1,730,2,3150,1,216,}, + {1,730,2,3150,1,216,}, + {1,735,2,3145,1,216,}, + {1,735,2,3145,1,216,}, + {1,735,2,3145,1,216,}, + {1,735,2,3145,1,216,}, + {1,735,2,3145,1,216,}, + {1,740,2,3140,1,216,}, + {1,740,2,3140,1,216,}, + {1,740,2,3140,1,216,}, + {1,740,2,3140,1,216,}, + {1,740,2,3140,1,216,}, + {1,745,2,3135,1,216,}, + {1,745,2,3135,1,216,}, + {1,745,2,3135,1,216,}, + {1,745,2,3135,1,216,}, + {1,745,2,3135,1,216,}, + {1,745,2,215,1,15,2,2905,1,216,}, + {1,745,2,215,1,15,2,2905,1,216,}, + {1,745,2,215,1,15,2,2905,1,216,}, + {1,745,2,215,1,15,2,2905,1,216,}, + {1,745,2,215,1,15,2,2905,1,216,}, + {1,735,2,220,1,30,2,2885,1,226,}, + {1,735,2,220,1,30,2,2885,1,226,}, + {1,735,2,220,1,30,2,2885,1,226,}, + {1,735,2,220,1,30,2,2885,1,226,}, + {1,735,2,220,1,30,2,2885,1,226,}, + {1,735,2,180,1,10,2,30,1,25,2,2885,1,231,}, + {1,735,2,180,1,10,2,30,1,25,2,2885,1,231,}, + {1,735,2,180,1,10,2,30,1,25,2,2885,1,231,}, + {1,735,2,180,1,10,2,30,1,25,2,2885,1,231,}, + {1,735,2,180,1,10,2,30,1,25,2,2885,1,231,}, + {1,740,2,170,1,25,2,20,1,30,2,2880,1,231,}, + {1,740,2,170,1,25,2,20,1,30,2,2880,1,231,}, + {1,740,2,170,1,25,2,20,1,30,2,2880,1,231,}, + {1,740,2,170,1,25,2,20,1,30,2,2880,1,231,}, + {1,740,2,170,1,25,2,20,1,30,2,2880,1,231,}, + {1,745,2,130,1,5,2,5,1,5,2,20,1,25,2,20,1,35,2,2860,1,246,}, + {1,745,2,130,1,5,2,5,1,5,2,20,1,25,2,20,1,35,2,2860,1,246,}, + {1,745,2,130,1,5,2,5,1,5,2,20,1,25,2,20,1,35,2,2860,1,246,}, + {1,745,2,130,1,5,2,5,1,5,2,20,1,25,2,20,1,35,2,2860,1,246,}, + {1,745,2,130,1,5,2,5,1,5,2,20,1,25,2,20,1,35,2,2860,1,246,}, + {1,745,2,115,1,20,2,30,1,25,2,10,1,45,2,2825,1,10,2,15,1,256,}, + {1,745,2,115,1,20,2,30,1,25,2,10,1,45,2,2825,1,10,2,15,1,256,}, + {1,745,2,115,1,20,2,30,1,25,2,10,1,45,2,2825,1,10,2,15,1,256,}, + {1,745,2,115,1,20,2,30,1,25,2,10,1,45,2,2825,1,10,2,15,1,256,}, + {1,745,2,115,1,20,2,30,1,25,2,10,1,45,2,2825,1,10,2,15,1,256,}, + {1,750,2,110,1,20,2,30,1,25,2,10,1,45,2,2820,1,5,2,10,1,271,}, + {1,750,2,110,1,20,2,30,1,25,2,10,1,45,2,2820,1,5,2,10,1,271,}, + {1,750,2,110,1,20,2,30,1,25,2,10,1,45,2,2820,1,5,2,10,1,271,}, + {1,750,2,110,1,20,2,30,1,25,2,10,1,45,2,2820,1,5,2,10,1,271,}, + {1,750,2,110,1,20,2,30,1,25,2,10,1,45,2,2820,1,5,2,10,1,271,}, + {1,750,2,115,1,15,2,30,1,80,2,2845,1,261,}, + {1,750,2,115,1,15,2,30,1,80,2,2845,1,261,}, + {1,750,2,115,1,15,2,30,1,80,2,2845,1,261,}, + {1,750,2,115,1,15,2,30,1,80,2,2845,1,261,}, + {1,750,2,115,1,15,2,30,1,80,2,2845,1,261,}, + {1,750,2,115,1,15,2,30,1,10,2,10,1,65,2,2840,1,261,}, + {1,750,2,115,1,15,2,30,1,10,2,10,1,65,2,2840,1,261,}, + {1,750,2,115,1,15,2,30,1,10,2,10,1,65,2,2840,1,261,}, + {1,750,2,115,1,15,2,30,1,10,2,10,1,65,2,2840,1,261,}, + {1,750,2,115,1,15,2,30,1,10,2,10,1,65,2,2840,1,261,}, + {1,755,2,110,1,15,2,25,1,15,2,10,1,65,2,2840,1,261,}, + {1,755,2,110,1,15,2,25,1,15,2,10,1,65,2,2840,1,261,}, + {1,755,2,110,1,15,2,25,1,15,2,10,1,65,2,2840,1,261,}, + {1,755,2,110,1,15,2,25,1,15,2,10,1,65,2,2840,1,261,}, + {1,755,2,110,1,15,2,25,1,15,2,10,1,65,2,2840,1,261,}, + {1,750,2,115,1,15,2,10,1,30,2,10,1,60,2,2845,1,261,}, + {1,750,2,115,1,15,2,10,1,30,2,10,1,60,2,2845,1,261,}, + {1,750,2,115,1,15,2,10,1,30,2,10,1,60,2,2845,1,261,}, + {1,750,2,115,1,15,2,10,1,30,2,10,1,60,2,2845,1,261,}, + {1,750,2,115,1,15,2,10,1,30,2,10,1,60,2,2845,1,261,}, + {1,750,2,5,1,5,2,100,1,130,2,2845,1,261,}, + {1,750,2,5,1,5,2,100,1,130,2,2845,1,261,}, + {1,750,2,5,1,5,2,100,1,130,2,2845,1,261,}, + {1,750,2,5,1,5,2,100,1,130,2,2845,1,261,}, + {1,750,2,5,1,5,2,100,1,130,2,2845,1,261,}, + {1,770,2,5,1,5,2,20,1,15,2,40,1,135,2,2845,1,261,}, + {1,770,2,5,1,5,2,20,1,15,2,40,1,135,2,2845,1,261,}, + {1,770,2,5,1,5,2,20,1,15,2,40,1,135,2,2845,1,261,}, + {1,770,2,5,1,5,2,20,1,15,2,40,1,135,2,2845,1,261,}, + {1,770,2,5,1,5,2,20,1,15,2,40,1,135,2,2845,1,261,}, + {1,785,2,15,1,20,2,20,1,140,2,2840,1,276,}, + {1,785,2,15,1,20,2,20,1,140,2,2840,1,276,}, + {1,785,2,15,1,20,2,20,1,140,2,2840,1,276,}, + {1,785,2,15,1,20,2,20,1,140,2,2840,1,276,}, + {1,785,2,15,1,20,2,20,1,140,2,2840,1,276,}, + {1,785,2,15,1,20,2,5,1,155,2,2820,1,296,}, + {1,785,2,15,1,20,2,5,1,155,2,2820,1,296,}, + {1,785,2,15,1,20,2,5,1,155,2,2820,1,296,}, + {1,785,2,15,1,20,2,5,1,155,2,2820,1,296,}, + {1,785,2,15,1,20,2,5,1,155,2,2820,1,296,}, + {1,785,2,10,1,185,2,2830,1,286,}, + {1,785,2,10,1,185,2,2830,1,286,}, + {1,785,2,10,1,185,2,2830,1,286,}, + {1,785,2,10,1,185,2,2830,1,286,}, + {1,785,2,10,1,185,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,855,2,10,1,55,2,10,1,50,2,2830,1,286,}, + {1,850,2,15,1,120,2,2825,1,286,}, + {1,850,2,15,1,120,2,2825,1,286,}, + {1,850,2,15,1,120,2,2825,1,286,}, + {1,850,2,15,1,120,2,2825,1,286,}, + {1,850,2,15,1,120,2,2825,1,286,}, + {1,845,2,20,1,105,2,2850,1,276,}, + {1,845,2,20,1,105,2,2850,1,276,}, + {1,845,2,20,1,105,2,2850,1,276,}, + {1,845,2,20,1,105,2,2850,1,276,}, + {1,845,2,20,1,105,2,2850,1,276,}, + {1,845,2,20,1,105,2,2855,1,271,}, + {1,845,2,20,1,105,2,2855,1,271,}, + {1,845,2,20,1,105,2,2855,1,271,}, + {1,845,2,20,1,105,2,2855,1,271,}, + {1,845,2,20,1,105,2,2855,1,271,}, + {1,975,2,2860,1,261,}, + {1,975,2,2860,1,261,}, + {1,975,2,2860,1,261,}, + {1,975,2,2860,1,261,}, + {1,975,2,2860,1,261,}, + {1,980,2,25,1,10,2,2820,1,261,}, + {1,980,2,25,1,10,2,2820,1,261,}, + {1,980,2,25,1,10,2,2820,1,261,}, + {1,980,2,25,1,10,2,2820,1,261,}, + {1,980,2,25,1,10,2,2820,1,261,}, + {1,985,2,20,1,10,2,2815,1,266,}, + {1,985,2,20,1,10,2,2815,1,266,}, + {1,985,2,20,1,10,2,2815,1,266,}, + {1,985,2,20,1,10,2,2815,1,266,}, + {1,985,2,20,1,10,2,2815,1,266,}, + {1,990,2,10,1,20,2,2805,1,271,}, + {1,990,2,10,1,20,2,2805,1,271,}, + {1,990,2,10,1,20,2,2805,1,271,}, + {1,990,2,10,1,20,2,2805,1,271,}, + {1,990,2,10,1,20,2,2805,1,271,}, + {1,1020,2,2805,1,271,}, + {1,1020,2,2805,1,271,}, + {1,1020,2,2805,1,271,}, + {1,1020,2,2805,1,271,}, + {1,1020,2,2805,1,271,}, + {1,1010,2,2805,1,5,2,5,1,271,}, + {1,1010,2,2805,1,5,2,5,1,271,}, + {1,1010,2,2805,1,5,2,5,1,271,}, + {1,1010,2,2805,1,5,2,5,1,271,}, + {1,1010,2,2805,1,5,2,5,1,271,}, + {1,1000,2,2805,1,291,}, + {1,1000,2,2805,1,291,}, + {1,1000,2,2805,1,291,}, + {1,1000,2,2805,1,291,}, + {1,1000,2,2805,1,291,}, + {1,995,2,2815,1,286,}, + {1,995,2,2815,1,286,}, + {1,995,2,2815,1,286,}, + {1,995,2,2815,1,286,}, + {1,995,2,2815,1,286,}, + {1,985,2,2805,1,306,}, + {1,985,2,2805,1,306,}, + {1,985,2,2805,1,306,}, + {1,985,2,2805,1,306,}, + {1,985,2,2805,1,306,}, + {1,990,2,2800,1,306,}, + {1,990,2,2800,1,306,}, + {1,990,2,2800,1,306,}, + {1,990,2,2800,1,306,}, + {1,990,2,2800,1,306,}, + {1,990,2,2795,1,311,}, + {1,990,2,2795,1,311,}, + {1,990,2,2795,1,311,}, + {1,990,2,2795,1,311,}, + {1,990,2,2795,1,311,}, + {1,990,2,2795,1,311,}, + {1,990,2,2795,1,311,}, + {1,990,2,2795,1,311,}, + {1,990,2,2795,1,311,}, + {1,990,2,2795,1,311,}, + {1,980,2,2805,1,311,}, + {1,980,2,2805,1,311,}, + {1,980,2,2805,1,311,}, + {1,980,2,2805,1,311,}, + {1,980,2,2805,1,311,}, + {1,975,2,2805,1,316,}, + {1,975,2,2805,1,316,}, + {1,975,2,2805,1,316,}, + {1,975,2,2805,1,316,}, + {1,975,2,2805,1,316,}, + {1,970,2,2810,1,10,2,10,1,296,}, + {1,970,2,2810,1,10,2,10,1,296,}, + {1,970,2,2810,1,10,2,10,1,296,}, + {1,970,2,2810,1,10,2,10,1,296,}, + {1,970,2,2810,1,10,2,10,1,296,}, + {1,970,2,2830,1,20,2,15,1,261,}, + {1,970,2,2830,1,20,2,15,1,261,}, + {1,970,2,2830,1,20,2,15,1,261,}, + {1,970,2,2830,1,20,2,15,1,261,}, + {1,970,2,2830,1,20,2,15,1,261,}, + {1,975,2,2860,1,261,}, + {1,975,2,2860,1,261,}, + {1,975,2,2860,1,261,}, + {1,975,2,2860,1,261,}, + {1,975,2,2860,1,261,}, + {1,975,2,2855,1,266,}, + {1,975,2,2855,1,266,}, + {1,975,2,2855,1,266,}, + {1,975,2,2855,1,266,}, + {1,975,2,2855,1,266,}, + {1,975,2,2840,1,281,}, + {1,975,2,2840,1,281,}, + {1,975,2,2840,1,281,}, + {1,975,2,2840,1,281,}, + {1,975,2,2840,1,281,}, + {1,975,2,2820,1,301,}, + {1,975,2,2820,1,301,}, + {1,975,2,2820,1,301,}, + {1,975,2,2820,1,301,}, + {1,975,2,2820,1,301,}, + {1,975,2,2785,1,5,2,20,1,311,}, + {1,975,2,2785,1,5,2,20,1,311,}, + {1,975,2,2785,1,5,2,20,1,311,}, + {1,975,2,2785,1,5,2,20,1,311,}, + {1,975,2,2785,1,5,2,20,1,311,}, + {1,980,2,2775,1,341,}, + {1,980,2,2775,1,341,}, + {1,980,2,2775,1,341,}, + {1,980,2,2775,1,341,}, + {1,980,2,2775,1,341,}, + {1,980,2,2775,1,341,}, + {1,980,2,2775,1,341,}, + {1,980,2,2775,1,341,}, + {1,980,2,2775,1,341,}, + {1,980,2,2775,1,341,}, + {1,980,2,2765,1,351,}, + {1,980,2,2765,1,351,}, + {1,980,2,2765,1,351,}, + {1,980,2,2765,1,351,}, + {1,980,2,2765,1,351,}, + {1,985,2,2760,1,351,}, + {1,985,2,2760,1,351,}, + {1,985,2,2760,1,351,}, + {1,985,2,2760,1,351,}, + {1,985,2,2760,1,351,}, + {1,980,2,2765,1,351,}, + {1,980,2,2765,1,351,}, + {1,980,2,2765,1,351,}, + {1,980,2,2765,1,351,}, + {1,980,2,2765,1,351,}, + {1,980,2,2755,1,5,2,5,1,351,}, + {1,980,2,2755,1,5,2,5,1,351,}, + {1,980,2,2755,1,5,2,5,1,351,}, + {1,980,2,2755,1,5,2,5,1,351,}, + {1,980,2,2755,1,5,2,5,1,351,}, + {1,980,2,2755,1,361,}, + {1,980,2,2755,1,361,}, + {1,980,2,2755,1,361,}, + {1,980,2,2755,1,361,}, + {1,980,2,2755,1,361,}, + {1,975,2,2755,1,366,}, + {1,975,2,2755,1,366,}, + {1,975,2,2755,1,366,}, + {1,975,2,2755,1,366,}, + {1,975,2,2755,1,366,}, + {1,975,2,2750,1,371,}, + {1,975,2,2750,1,371,}, + {1,975,2,2750,1,371,}, + {1,975,2,2750,1,371,}, + {1,975,2,2750,1,371,}, + {1,975,2,2745,1,376,}, + {1,975,2,2745,1,376,}, + {1,975,2,2745,1,376,}, + {1,975,2,2745,1,376,}, + {1,975,2,2745,1,376,}, + {1,975,2,2745,1,376,}, + {1,975,2,2745,1,376,}, + {1,975,2,2745,1,376,}, + {1,975,2,2745,1,376,}, + {1,975,2,2745,1,376,}, + {1,980,2,2735,1,381,}, + {1,980,2,2735,1,381,}, + {1,980,2,2735,1,381,}, + {1,980,2,2735,1,381,}, + {1,980,2,2735,1,381,}, + {1,985,2,2725,1,386,}, + {1,985,2,2725,1,386,}, + {1,985,2,2725,1,386,}, + {1,985,2,2725,1,386,}, + {1,985,2,2725,1,386,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2705,1,391,}, + {1,1000,2,2700,1,396,}, + {1,1000,2,2700,1,396,}, + {1,1000,2,2700,1,396,}, + {1,1000,2,2700,1,396,}, + {1,1000,2,2700,1,396,}, + {1,1000,2,2700,1,396,}, + {1,1000,2,2700,1,396,}, + {1,1000,2,2700,1,396,}, + {1,1000,2,2700,1,396,}, + {1,1000,2,2700,1,396,}, + {1,990,2,2705,1,401,}, + {1,990,2,2705,1,401,}, + {1,990,2,2705,1,401,}, + {1,990,2,2705,1,401,}, + {1,990,2,2705,1,401,}, + {1,990,2,2700,1,406,}, + {1,990,2,2700,1,406,}, + {1,990,2,2700,1,406,}, + {1,990,2,2700,1,406,}, + {1,990,2,2700,1,406,}, + {1,1000,2,2690,1,406,}, + {1,1000,2,2690,1,406,}, + {1,1000,2,2690,1,406,}, + {1,1000,2,2690,1,406,}, + {1,1000,2,2690,1,406,}, + {1,1010,2,2680,1,406,}, + {1,1010,2,2680,1,406,}, + {1,1010,2,2680,1,406,}, + {1,1010,2,2680,1,406,}, + {1,1010,2,2680,1,406,}, + {1,1015,2,2665,1,416,}, + {1,1015,2,2665,1,416,}, + {1,1015,2,2665,1,416,}, + {1,1015,2,2665,1,416,}, + {1,1015,2,2665,1,416,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1020,2,2635,1,441,}, + {1,1015,2,2645,1,436,}, + {1,1015,2,2645,1,436,}, + {1,1015,2,2645,1,436,}, + {1,1015,2,2645,1,436,}, + {1,1015,2,2645,1,436,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2650,1,431,}, + {1,1015,2,2655,1,426,}, + {1,1015,2,2655,1,426,}, + {1,1015,2,2655,1,426,}, + {1,1015,2,2655,1,426,}, + {1,1015,2,2655,1,426,}, + {1,1025,2,2635,1,436,}, + {1,1025,2,2635,1,436,}, + {1,1025,2,2635,1,436,}, + {1,1025,2,2635,1,436,}, + {1,1025,2,2635,1,436,}, + {1,1025,2,2640,1,431,}, + {1,1025,2,2640,1,431,}, + {1,1025,2,2640,1,431,}, + {1,1025,2,2640,1,431,}, + {1,1025,2,2640,1,431,}, + {1,1025,2,2645,1,426,}, + {1,1025,2,2645,1,426,}, + {1,1025,2,2645,1,426,}, + {1,1025,2,2645,1,426,}, + {1,1025,2,2645,1,426,}, + {1,1025,2,2655,1,416,}, + {1,1025,2,2655,1,416,}, + {1,1025,2,2655,1,416,}, + {1,1025,2,2655,1,416,}, + {1,1025,2,2655,1,416,}, + {1,1030,2,2660,1,406,}, + {1,1030,2,2660,1,406,}, + {1,1030,2,2660,1,406,}, + {1,1030,2,2660,1,406,}, + {1,1030,2,2660,1,406,}, + {1,1030,2,2660,1,406,}, + {1,1030,2,2660,1,406,}, + {1,1030,2,2660,1,406,}, + {1,1030,2,2660,1,406,}, + {1,1030,2,2660,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1035,2,2655,1,406,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1040,2,2655,1,401,}, + {1,1045,2,2650,1,401,}, + {1,1045,2,2650,1,401,}, + {1,1045,2,2650,1,401,}, + {1,1045,2,2650,1,401,}, + {1,1045,2,2650,1,401,}, + {1,1065,2,2630,1,401,}, + {1,1065,2,2630,1,401,}, + {1,1065,2,2630,1,401,}, + {1,1065,2,2630,1,401,}, + {1,1065,2,2630,1,401,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,5,2,5,1,396,}, + {1,1070,2,2620,1,5,2,5,1,396,}, + {1,1070,2,2620,1,5,2,5,1,396,}, + {1,1070,2,2620,1,5,2,5,1,396,}, + {1,1070,2,2620,1,5,2,5,1,396,}, + {1,1065,2,2625,1,406,}, + {1,1065,2,2625,1,406,}, + {1,1065,2,2625,1,406,}, + {1,1065,2,2625,1,406,}, + {1,1065,2,2625,1,406,}, + {1,1065,2,2625,1,406,}, + {1,1065,2,2625,1,406,}, + {1,1065,2,2625,1,406,}, + {1,1065,2,2625,1,406,}, + {1,1065,2,2625,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1070,2,2620,1,406,}, + {1,1065,2,2620,1,411,}, + {1,1065,2,2620,1,411,}, + {1,1065,2,2620,1,411,}, + {1,1065,2,2620,1,411,}, + {1,1065,2,2620,1,411,}, + {1,1065,2,2605,1,426,}, + {1,1065,2,2605,1,426,}, + {1,1065,2,2605,1,426,}, + {1,1065,2,2605,1,426,}, + {1,1065,2,2605,1,426,}, + {1,1055,2,65,1,30,2,2515,1,431,}, + {1,1055,2,65,1,30,2,2515,1,431,}, + {1,1055,2,65,1,30,2,2515,1,431,}, + {1,1055,2,65,1,30,2,2515,1,431,}, + {1,1055,2,65,1,30,2,2515,1,431,}, + {1,1055,2,50,1,55,2,2495,1,441,}, + {1,1055,2,50,1,55,2,2495,1,441,}, + {1,1055,2,50,1,55,2,2495,1,441,}, + {1,1055,2,50,1,55,2,2495,1,441,}, + {1,1055,2,50,1,55,2,2495,1,441,}, + {1,1065,2,40,1,60,2,2475,1,5,2,5,1,446,}, + {1,1065,2,40,1,60,2,2475,1,5,2,5,1,446,}, + {1,1065,2,40,1,60,2,2475,1,5,2,5,1,446,}, + {1,1065,2,40,1,60,2,2475,1,5,2,5,1,446,}, + {1,1065,2,40,1,60,2,2475,1,5,2,5,1,446,}, + {1,1070,2,30,1,65,2,2465,1,466,}, + {1,1070,2,30,1,65,2,2465,1,466,}, + {1,1070,2,30,1,65,2,2465,1,466,}, + {1,1070,2,30,1,65,2,2465,1,466,}, + {1,1070,2,30,1,65,2,2465,1,466,}, + {1,1070,2,25,1,70,2,2460,1,471,}, + {1,1070,2,25,1,70,2,2460,1,471,}, + {1,1070,2,25,1,70,2,2460,1,471,}, + {1,1070,2,25,1,70,2,2460,1,471,}, + {1,1070,2,25,1,70,2,2460,1,471,}, + {1,1075,2,10,1,5,2,10,1,70,2,2435,1,5,2,15,1,471,}, + {1,1075,2,10,1,5,2,10,1,70,2,2435,1,5,2,15,1,471,}, + {1,1075,2,10,1,5,2,10,1,70,2,2435,1,5,2,15,1,471,}, + {1,1075,2,10,1,5,2,10,1,70,2,2435,1,5,2,15,1,471,}, + {1,1075,2,10,1,5,2,10,1,70,2,2435,1,5,2,15,1,471,}, + {1,1170,2,2430,1,15,2,5,1,476,}, + {1,1170,2,2430,1,15,2,5,1,476,}, + {1,1170,2,2430,1,15,2,5,1,476,}, + {1,1170,2,2430,1,15,2,5,1,476,}, + {1,1170,2,2430,1,15,2,5,1,476,}, + {1,1190,2,2405,1,501,}, + {1,1190,2,2405,1,501,}, + {1,1190,2,2405,1,501,}, + {1,1190,2,2405,1,501,}, + {1,1190,2,2405,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2400,1,501,}, + {1,1195,2,2395,1,506,}, + {1,1195,2,2395,1,506,}, + {1,1195,2,2395,1,506,}, + {1,1195,2,2395,1,506,}, + {1,1195,2,2395,1,506,}, + {1,1205,2,2365,1,10,2,5,1,511,}, + {1,1205,2,2365,1,10,2,5,1,511,}, + {1,1205,2,2365,1,10,2,5,1,511,}, + {1,1205,2,2365,1,10,2,5,1,511,}, + {1,1205,2,2365,1,10,2,5,1,511,}, + {1,1190,2,10,1,10,2,2355,1,531,}, + {1,1190,2,10,1,10,2,2355,1,531,}, + {1,1190,2,10,1,10,2,2355,1,531,}, + {1,1190,2,10,1,10,2,2355,1,531,}, + {1,1190,2,10,1,10,2,2355,1,531,}, + {1,1190,2,10,1,15,2,2340,1,541,}, + {1,1190,2,10,1,15,2,2340,1,541,}, + {1,1190,2,10,1,15,2,2340,1,541,}, + {1,1190,2,10,1,15,2,2340,1,541,}, + {1,1190,2,10,1,15,2,2340,1,541,}, + {1,1230,2,2315,1,551,}, + {1,1230,2,2315,1,551,}, + {1,1230,2,2315,1,551,}, + {1,1230,2,2315,1,551,}, + {1,1230,2,2315,1,551,}, + {1,1235,2,2310,1,551,}, + {1,1235,2,2310,1,551,}, + {1,1235,2,2310,1,551,}, + {1,1235,2,2310,1,551,}, + {1,1235,2,2310,1,551,}, + {1,1250,2,2290,1,556,}, + {1,1250,2,2290,1,556,}, + {1,1250,2,2290,1,556,}, + {1,1250,2,2290,1,556,}, + {1,1250,2,2290,1,556,}, + {1,1255,2,550,1,10,2,10,1,5,2,1710,1,556,}, + {1,1255,2,550,1,10,2,10,1,5,2,1710,1,556,}, + {1,1255,2,550,1,10,2,10,1,5,2,1710,1,556,}, + {1,1255,2,550,1,10,2,10,1,5,2,1710,1,556,}, + {1,1255,2,550,1,10,2,10,1,5,2,1710,1,556,}, + {1,1275,2,25,1,5,2,495,1,30,2,1705,1,561,}, + {1,1275,2,25,1,5,2,495,1,30,2,1705,1,561,}, + {1,1275,2,25,1,5,2,495,1,30,2,1705,1,561,}, + {1,1275,2,25,1,5,2,495,1,30,2,1705,1,561,}, + {1,1275,2,25,1,5,2,495,1,30,2,1705,1,561,}, + {1,1280,2,15,1,25,2,460,1,60,2,1695,1,561,}, + {1,1280,2,15,1,25,2,460,1,60,2,1695,1,561,}, + {1,1280,2,15,1,25,2,460,1,60,2,1695,1,561,}, + {1,1280,2,15,1,25,2,460,1,60,2,1695,1,561,}, + {1,1280,2,15,1,25,2,460,1,60,2,1695,1,561,}, + {1,1290,2,10,1,20,2,450,1,80,2,1685,1,561,}, + {1,1290,2,10,1,20,2,450,1,80,2,1685,1,561,}, + {1,1290,2,10,1,20,2,450,1,80,2,1685,1,561,}, + {1,1290,2,10,1,20,2,450,1,80,2,1685,1,561,}, + {1,1290,2,10,1,20,2,450,1,80,2,1685,1,561,}, + {1,1330,2,430,1,100,2,1675,1,561,}, + {1,1330,2,430,1,100,2,1675,1,561,}, + {1,1330,2,430,1,100,2,1675,1,561,}, + {1,1330,2,430,1,100,2,1675,1,561,}, + {1,1330,2,430,1,100,2,1675,1,561,}, + {1,1335,2,270,1,15,2,110,1,150,2,1645,1,571,}, + {1,1335,2,270,1,15,2,110,1,150,2,1645,1,571,}, + {1,1335,2,270,1,15,2,110,1,150,2,1645,1,571,}, + {1,1335,2,270,1,15,2,110,1,150,2,1645,1,571,}, + {1,1335,2,270,1,15,2,110,1,150,2,1645,1,571,}, + {1,1340,2,270,1,10,2,105,1,165,2,1635,1,571,}, + {1,1340,2,270,1,10,2,105,1,165,2,1635,1,571,}, + {1,1340,2,270,1,10,2,105,1,165,2,1635,1,571,}, + {1,1340,2,270,1,10,2,105,1,165,2,1635,1,571,}, + {1,1340,2,270,1,10,2,105,1,165,2,1635,1,571,}, + {1,1345,2,10,1,20,2,205,1,5,2,25,1,10,2,100,1,180,2,1620,1,576,}, + {1,1345,2,10,1,20,2,205,1,5,2,25,1,10,2,100,1,180,2,1620,1,576,}, + {1,1345,2,10,1,20,2,205,1,5,2,25,1,10,2,100,1,180,2,1620,1,576,}, + {1,1345,2,10,1,20,2,205,1,5,2,25,1,10,2,100,1,180,2,1620,1,576,}, + {1,1345,2,10,1,20,2,205,1,5,2,25,1,10,2,100,1,180,2,1620,1,576,}, + {1,1375,2,205,1,40,2,95,1,220,2,1585,1,576,}, + {1,1375,2,205,1,40,2,95,1,220,2,1585,1,576,}, + {1,1375,2,205,1,40,2,95,1,220,2,1585,1,576,}, + {1,1375,2,205,1,40,2,95,1,220,2,1585,1,576,}, + {1,1375,2,205,1,40,2,95,1,220,2,1585,1,576,}, + {1,1380,2,15,1,5,2,130,1,5,2,50,1,45,2,85,1,240,2,1565,1,576,}, + {1,1380,2,15,1,5,2,130,1,5,2,50,1,45,2,85,1,240,2,1565,1,576,}, + {1,1380,2,15,1,5,2,130,1,5,2,50,1,45,2,85,1,240,2,1565,1,576,}, + {1,1380,2,15,1,5,2,130,1,5,2,50,1,45,2,85,1,240,2,1565,1,576,}, + {1,1380,2,15,1,5,2,130,1,5,2,50,1,45,2,85,1,240,2,1565,1,576,}, + {1,1400,2,175,1,60,2,75,1,260,2,1545,1,581,}, + {1,1400,2,175,1,60,2,75,1,260,2,1545,1,581,}, + {1,1400,2,175,1,60,2,75,1,260,2,1545,1,581,}, + {1,1400,2,175,1,60,2,75,1,260,2,1545,1,581,}, + {1,1400,2,175,1,60,2,75,1,260,2,1545,1,581,}, + {1,1335,2,10,1,55,2,5,1,5,2,160,1,85,2,25,1,10,2,20,1,270,2,295,1,5,2,1235,1,581,}, + {1,1335,2,10,1,55,2,5,1,5,2,160,1,85,2,25,1,10,2,20,1,270,2,295,1,5,2,1235,1,581,}, + {1,1335,2,10,1,55,2,5,1,5,2,160,1,85,2,25,1,10,2,20,1,270,2,295,1,5,2,1235,1,581,}, + {1,1335,2,10,1,55,2,5,1,5,2,160,1,85,2,25,1,10,2,20,1,270,2,295,1,5,2,1235,1,581,}, + {1,1335,2,10,1,55,2,5,1,5,2,160,1,85,2,25,1,10,2,20,1,270,2,295,1,5,2,1235,1,581,}, + {1,1335,2,10,1,70,2,140,1,100,2,25,1,10,2,20,1,285,2,280,1,10,2,1230,1,581,}, + {1,1335,2,10,1,70,2,140,1,100,2,25,1,10,2,20,1,285,2,280,1,10,2,1230,1,581,}, + {1,1335,2,10,1,70,2,140,1,100,2,25,1,10,2,20,1,285,2,280,1,10,2,1230,1,581,}, + {1,1335,2,10,1,70,2,140,1,100,2,25,1,10,2,20,1,285,2,280,1,10,2,1230,1,581,}, + {1,1335,2,10,1,70,2,140,1,100,2,25,1,10,2,20,1,285,2,280,1,10,2,1230,1,581,}, + {1,1420,2,105,1,165,2,15,1,290,2,260,1,30,2,1230,1,581,}, + {1,1420,2,105,1,165,2,15,1,290,2,260,1,30,2,1230,1,581,}, + {1,1420,2,105,1,165,2,15,1,290,2,260,1,30,2,1230,1,581,}, + {1,1420,2,105,1,165,2,15,1,290,2,260,1,30,2,1230,1,581,}, + {1,1420,2,105,1,165,2,15,1,290,2,260,1,30,2,1230,1,581,}, + {1,1425,2,90,1,175,2,15,1,295,2,265,1,35,2,1210,1,586,}, + {1,1425,2,90,1,175,2,15,1,295,2,265,1,35,2,1210,1,586,}, + {1,1425,2,90,1,175,2,15,1,295,2,265,1,35,2,1210,1,586,}, + {1,1425,2,90,1,175,2,15,1,295,2,265,1,35,2,1210,1,586,}, + {1,1425,2,90,1,175,2,15,1,295,2,265,1,35,2,1210,1,586,}, + {1,1440,2,70,1,180,2,15,1,295,2,265,1,35,2,1215,1,581,}, + {1,1440,2,70,1,180,2,15,1,295,2,265,1,35,2,1215,1,581,}, + {1,1440,2,70,1,180,2,15,1,295,2,265,1,35,2,1215,1,581,}, + {1,1440,2,70,1,180,2,15,1,295,2,265,1,35,2,1215,1,581,}, + {1,1440,2,70,1,180,2,15,1,295,2,265,1,35,2,1215,1,581,}, + {1,1475,2,5,1,10,2,20,1,495,2,260,1,35,2,1210,1,586,}, + {1,1475,2,5,1,10,2,20,1,495,2,260,1,35,2,1210,1,586,}, + {1,1475,2,5,1,10,2,20,1,495,2,260,1,35,2,1210,1,586,}, + {1,1475,2,5,1,10,2,20,1,495,2,260,1,35,2,1210,1,586,}, + {1,1475,2,5,1,10,2,20,1,495,2,260,1,35,2,1210,1,586,}, + {1,1495,2,15,1,505,2,250,1,40,2,1210,1,581,}, + {1,1495,2,15,1,505,2,250,1,40,2,1210,1,581,}, + {1,1495,2,15,1,505,2,250,1,40,2,1210,1,581,}, + {1,1495,2,15,1,505,2,250,1,40,2,1210,1,581,}, + {1,1495,2,15,1,505,2,250,1,40,2,1210,1,581,}, + {1,2030,2,20,1,5,2,210,1,45,2,1205,1,581,}, + {1,2030,2,20,1,5,2,210,1,45,2,1205,1,581,}, + {1,2030,2,20,1,5,2,210,1,45,2,1205,1,581,}, + {1,2030,2,20,1,5,2,210,1,45,2,1205,1,581,}, + {1,2030,2,20,1,5,2,210,1,45,2,1205,1,581,}, + {1,2055,2,5,1,35,2,170,1,45,2,1205,1,581,}, + {1,2055,2,5,1,35,2,170,1,45,2,1205,1,581,}, + {1,2055,2,5,1,35,2,170,1,45,2,1205,1,581,}, + {1,2055,2,5,1,35,2,170,1,45,2,1205,1,581,}, + {1,2055,2,5,1,35,2,170,1,45,2,1205,1,581,}, + {1,2105,2,135,1,10,2,20,1,40,2,1200,1,586,}, + {1,2105,2,135,1,10,2,20,1,40,2,1200,1,586,}, + {1,2105,2,135,1,10,2,20,1,40,2,1200,1,586,}, + {1,2105,2,135,1,10,2,20,1,40,2,1200,1,586,}, + {1,2105,2,135,1,10,2,20,1,40,2,1200,1,586,}, + {1,2110,2,95,1,45,2,20,1,50,2,1190,1,586,}, + {1,2110,2,95,1,45,2,20,1,50,2,1190,1,586,}, + {1,2110,2,95,1,45,2,20,1,50,2,1190,1,586,}, + {1,2110,2,95,1,45,2,20,1,50,2,1190,1,586,}, + {1,2110,2,95,1,45,2,20,1,50,2,1190,1,586,}, + {1,2255,2,10,1,55,2,5,1,5,2,1180,1,586,}, + {1,2255,2,10,1,55,2,5,1,5,2,1180,1,586,}, + {1,2255,2,10,1,55,2,5,1,5,2,1180,1,586,}, + {1,2255,2,10,1,55,2,5,1,5,2,1180,1,586,}, + {1,2255,2,10,1,55,2,5,1,5,2,1180,1,586,}, + {1,2325,2,1185,1,586,}, + {1,2325,2,1185,1,586,}, + {1,2325,2,1185,1,586,}, + {1,2325,2,1185,1,586,}, + {1,2325,2,1185,1,586,}, + {1,2325,2,1160,1,611,}, + {1,2325,2,1160,1,611,}, + {1,2325,2,1160,1,611,}, + {1,2325,2,1160,1,611,}, + {1,2325,2,1160,1,611,}, + {1,2260,2,5,1,65,2,1155,1,611,}, + {1,2260,2,5,1,65,2,1155,1,611,}, + {1,2260,2,5,1,65,2,1155,1,611,}, + {1,2260,2,5,1,65,2,1155,1,611,}, + {1,2260,2,5,1,65,2,1155,1,611,}, + {1,2260,2,5,1,70,2,1145,1,616,}, + {1,2260,2,5,1,70,2,1145,1,616,}, + {1,2260,2,5,1,70,2,1145,1,616,}, + {1,2260,2,5,1,70,2,1145,1,616,}, + {1,2260,2,5,1,70,2,1145,1,616,}, + {1,2335,2,1145,1,616,}, + {1,2335,2,1145,1,616,}, + {1,2335,2,1145,1,616,}, + {1,2335,2,1145,1,616,}, + {1,2335,2,1145,1,616,}, + {1,2335,2,1140,1,621,}, + {1,2335,2,1140,1,621,}, + {1,2335,2,1140,1,621,}, + {1,2335,2,1140,1,621,}, + {1,2335,2,1140,1,621,}, + {1,2335,2,1140,1,621,}, + {1,2335,2,1140,1,621,}, + {1,2335,2,1140,1,621,}, + {1,2335,2,1140,1,621,}, + {1,2335,2,1140,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1135,1,621,}, + {1,2340,2,1140,1,616,}, + {1,2340,2,1140,1,616,}, + {1,2340,2,1140,1,616,}, + {1,2340,2,1140,1,616,}, + {1,2340,2,1140,1,616,}, + {1,2345,2,1130,1,621,}, + {1,2345,2,1130,1,621,}, + {1,2345,2,1130,1,621,}, + {1,2345,2,1130,1,621,}, + {1,2345,2,1130,1,621,}, + {1,2345,2,1115,1,636,}, + {1,2345,2,1115,1,636,}, + {1,2345,2,1115,1,636,}, + {1,2345,2,1115,1,636,}, + {1,2345,2,1115,1,636,}, + {1,2350,2,1115,1,631,}, + {1,2350,2,1115,1,631,}, + {1,2350,2,1115,1,631,}, + {1,2350,2,1115,1,631,}, + {1,2350,2,1115,1,631,}, + {1,2245,2,10,1,85,2,1125,1,631,}, + {1,2245,2,10,1,85,2,1125,1,631,}, + {1,2245,2,10,1,85,2,1125,1,631,}, + {1,2245,2,10,1,85,2,1125,1,631,}, + {1,2245,2,10,1,85,2,1125,1,631,}, + {1,2245,2,15,1,80,2,1115,1,641,}, + {1,2245,2,15,1,80,2,1115,1,641,}, + {1,2245,2,15,1,80,2,1115,1,641,}, + {1,2245,2,15,1,80,2,1115,1,641,}, + {1,2245,2,15,1,80,2,1115,1,641,}, + {1,2350,2,1110,1,636,}, + {1,2350,2,1110,1,636,}, + {1,2350,2,1110,1,636,}, + {1,2350,2,1110,1,636,}, + {1,2350,2,1110,1,636,}, + {1,2350,2,1110,1,636,}, + {1,2350,2,1110,1,636,}, + {1,2350,2,1110,1,636,}, + {1,2350,2,1110,1,636,}, + {1,2350,2,1110,1,636,}, + {1,2355,2,1105,1,636,}, + {1,2355,2,1105,1,636,}, + {1,2355,2,1105,1,636,}, + {1,2355,2,1105,1,636,}, + {1,2355,2,1105,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2310,2,1150,1,636,}, + {1,2345,2,1110,1,641,}, + {1,2345,2,1110,1,641,}, + {1,2345,2,1110,1,641,}, + {1,2345,2,1110,1,641,}, + {1,2345,2,1110,1,641,}, + {1,2350,2,1090,1,656,}, + {1,2350,2,1090,1,656,}, + {1,2350,2,1090,1,656,}, + {1,2350,2,1090,1,656,}, + {1,2350,2,1090,1,656,}, + {1,2350,2,1045,1,5,2,25,1,671,}, + {1,2350,2,1045,1,5,2,25,1,671,}, + {1,2350,2,1045,1,5,2,25,1,671,}, + {1,2350,2,1045,1,5,2,25,1,671,}, + {1,2350,2,1045,1,5,2,25,1,671,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1020,1,726,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2350,2,1015,1,731,}, + {1,2345,2,1020,1,731,}, + {1,2345,2,1020,1,731,}, + {1,2345,2,1020,1,731,}, + {1,2345,2,1020,1,731,}, + {1,2345,2,1020,1,731,}, + {1,2325,2,10,1,10,2,1020,1,731,}, + {1,2325,2,10,1,10,2,1020,1,731,}, + {1,2325,2,10,1,10,2,1020,1,731,}, + {1,2325,2,10,1,10,2,1020,1,731,}, + {1,2325,2,10,1,10,2,1020,1,731,}, + {1,2325,2,10,1,5,2,1030,1,726,}, + {1,2325,2,10,1,5,2,1030,1,726,}, + {1,2325,2,10,1,5,2,1030,1,726,}, + {1,2325,2,10,1,5,2,1030,1,726,}, + {1,2325,2,10,1,5,2,1030,1,726,}, + {1,2325,2,1050,1,721,}, + {1,2325,2,1050,1,721,}, + {1,2325,2,1050,1,721,}, + {1,2325,2,1050,1,721,}, + {1,2325,2,1050,1,721,}, + {1,2330,2,1045,1,721,}, + {1,2330,2,1045,1,721,}, + {1,2330,2,1045,1,721,}, + {1,2330,2,1045,1,721,}, + {1,2330,2,1045,1,721,}, + {1,2335,2,1040,1,721,}, + {1,2335,2,1040,1,721,}, + {1,2335,2,1040,1,721,}, + {1,2335,2,1040,1,721,}, + {1,2335,2,1040,1,721,}, + {1,2335,2,1045,1,716,}, + {1,2335,2,1045,1,716,}, + {1,2335,2,1045,1,716,}, + {1,2335,2,1045,1,716,}, + {1,2335,2,1045,1,716,}, + {1,2335,2,1045,1,716,}, + {1,2335,2,1045,1,716,}, + {1,2335,2,1045,1,716,}, + {1,2335,2,1045,1,716,}, + {1,2335,2,1045,1,716,}, + {1,2345,2,1040,1,711,}, + {1,2345,2,1040,1,711,}, + {1,2345,2,1040,1,711,}, + {1,2345,2,1040,1,711,}, + {1,2345,2,1040,1,711,}, + {1,2340,2,1045,1,711,}, + {1,2340,2,1045,1,711,}, + {1,2340,2,1045,1,711,}, + {1,2340,2,1045,1,711,}, + {1,2340,2,1045,1,711,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2320,2,1075,1,701,}, + {1,2325,2,1070,1,701,}, + {1,2325,2,1070,1,701,}, + {1,2325,2,1070,1,701,}, + {1,2325,2,1070,1,701,}, + {1,2325,2,1070,1,701,}, + {1,2330,2,1050,1,716,}, + {1,2330,2,1050,1,716,}, + {1,2330,2,1050,1,716,}, + {1,2330,2,1050,1,716,}, + {1,2330,2,1050,1,716,}, + {1,2320,2,1050,1,726,}, + {1,2320,2,1050,1,726,}, + {1,2320,2,1050,1,726,}, + {1,2320,2,1050,1,726,}, + {1,2320,2,1050,1,726,}, + {1,2315,2,1050,1,731,}, + {1,2315,2,1050,1,731,}, + {1,2315,2,1050,1,731,}, + {1,2315,2,1050,1,731,}, + {1,2315,2,1050,1,731,}, + {1,2320,2,1040,1,736,}, + {1,2320,2,1040,1,736,}, + {1,2320,2,1040,1,736,}, + {1,2320,2,1040,1,736,}, + {1,2320,2,1040,1,736,}, + {1,2315,2,1040,1,741,}, + {1,2315,2,1040,1,741,}, + {1,2315,2,1040,1,741,}, + {1,2315,2,1040,1,741,}, + {1,2315,2,1040,1,741,}, + {1,2285,2,10,1,15,2,1040,1,746,}, + {1,2285,2,10,1,15,2,1040,1,746,}, + {1,2285,2,10,1,15,2,1040,1,746,}, + {1,2285,2,10,1,15,2,1040,1,746,}, + {1,2285,2,10,1,15,2,1040,1,746,}, + {1,2255,2,10,1,20,2,1065,1,746,}, + {1,2255,2,10,1,20,2,1065,1,746,}, + {1,2255,2,10,1,20,2,1065,1,746,}, + {1,2255,2,10,1,20,2,1065,1,746,}, + {1,2255,2,10,1,20,2,1065,1,746,}, + {1,2255,2,15,1,5,2,1070,1,751,}, + {1,2255,2,15,1,5,2,1070,1,751,}, + {1,2255,2,15,1,5,2,1070,1,751,}, + {1,2255,2,15,1,5,2,1070,1,751,}, + {1,2255,2,15,1,5,2,1070,1,751,}, + {1,2255,2,1090,1,751,}, + {1,2255,2,1090,1,751,}, + {1,2255,2,1090,1,751,}, + {1,2255,2,1090,1,751,}, + {1,2255,2,1090,1,751,}, + {1,2255,2,1080,1,761,}, + {1,2255,2,1080,1,761,}, + {1,2255,2,1080,1,761,}, + {1,2255,2,1080,1,761,}, + {1,2255,2,1080,1,761,}, + {1,2255,2,15,1,5,2,1055,1,766,}, + {1,2255,2,15,1,5,2,1055,1,766,}, + {1,2255,2,15,1,5,2,1055,1,766,}, + {1,2255,2,15,1,5,2,1055,1,766,}, + {1,2255,2,15,1,5,2,1055,1,766,}, + {1,2255,2,1075,1,766,}, + {1,2255,2,1075,1,766,}, + {1,2255,2,1075,1,766,}, + {1,2255,2,1075,1,766,}, + {1,2255,2,1075,1,766,}, + {1,2270,2,1060,1,766,}, + {1,2270,2,1060,1,766,}, + {1,2270,2,1060,1,766,}, + {1,2270,2,1060,1,766,}, + {1,2270,2,1060,1,766,}, + {1,2270,2,1055,1,771,}, + {1,2270,2,1055,1,771,}, + {1,2270,2,1055,1,771,}, + {1,2270,2,1055,1,771,}, + {1,2270,2,1055,1,771,}, + {1,2265,2,1055,1,776,}, + {1,2265,2,1055,1,776,}, + {1,2265,2,1055,1,776,}, + {1,2265,2,1055,1,776,}, + {1,2265,2,1055,1,776,}, + {1,2270,2,1035,1,5,2,10,1,776,}, + {1,2270,2,1035,1,5,2,10,1,776,}, + {1,2270,2,1035,1,5,2,10,1,776,}, + {1,2270,2,1035,1,5,2,10,1,776,}, + {1,2270,2,1035,1,5,2,10,1,776,}, + {1,2270,2,1035,1,791,}, + {1,2270,2,1035,1,791,}, + {1,2270,2,1035,1,791,}, + {1,2270,2,1035,1,791,}, + {1,2270,2,1035,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2265,2,1040,1,791,}, + {1,2260,2,1045,1,791,}, + {1,2260,2,1045,1,791,}, + {1,2260,2,1045,1,791,}, + {1,2260,2,1045,1,791,}, + {1,2260,2,1045,1,791,}, + {1,2260,2,1035,1,801,}, + {1,2260,2,1035,1,801,}, + {1,2260,2,1035,1,801,}, + {1,2260,2,1035,1,801,}, + {1,2260,2,1035,1,801,}, + {1,2260,2,1020,1,816,}, + {1,2260,2,1020,1,816,}, + {1,2260,2,1020,1,816,}, + {1,2260,2,1020,1,816,}, + {1,2260,2,1020,1,816,}, + {1,2260,2,1015,1,821,}, + {1,2260,2,1015,1,821,}, + {1,2260,2,1015,1,821,}, + {1,2260,2,1015,1,821,}, + {1,2260,2,1015,1,821,}, + {1,2260,2,980,1,856,}, + {1,2260,2,980,1,856,}, + {1,2260,2,980,1,856,}, + {1,2260,2,980,1,856,}, + {1,2260,2,980,1,856,}, + {1,2265,2,975,1,856,}, + {1,2265,2,975,1,856,}, + {1,2265,2,975,1,856,}, + {1,2265,2,975,1,856,}, + {1,2265,2,975,1,856,}, + {1,2265,2,970,1,861,}, + {1,2265,2,970,1,861,}, + {1,2265,2,970,1,861,}, + {1,2265,2,970,1,861,}, + {1,2265,2,970,1,861,}, + {1,2270,2,955,1,871,}, + {1,2270,2,955,1,871,}, + {1,2270,2,955,1,871,}, + {1,2270,2,955,1,871,}, + {1,2270,2,955,1,871,}, + {1,2270,2,955,1,871,}, + {1,2270,2,955,1,871,}, + {1,2270,2,955,1,871,}, + {1,2270,2,955,1,871,}, + {1,2270,2,955,1,871,}, + {1,2270,2,930,1,896,}, + {1,2270,2,930,1,896,}, + {1,2270,2,930,1,896,}, + {1,2270,2,930,1,896,}, + {1,2270,2,930,1,896,}, + {1,2250,2,5,1,5,2,930,1,906,}, + {1,2250,2,5,1,5,2,930,1,906,}, + {1,2250,2,5,1,5,2,930,1,906,}, + {1,2250,2,5,1,5,2,930,1,906,}, + {1,2250,2,5,1,5,2,930,1,906,}, + {1,2250,2,935,1,911,}, + {1,2250,2,935,1,911,}, + {1,2250,2,935,1,911,}, + {1,2250,2,935,1,911,}, + {1,2250,2,935,1,911,}, + {1,2250,2,925,1,921,}, + {1,2250,2,925,1,921,}, + {1,2250,2,925,1,921,}, + {1,2250,2,925,1,921,}, + {1,2250,2,925,1,921,}, + {1,2250,2,920,1,926,}, + {1,2250,2,920,1,926,}, + {1,2250,2,920,1,926,}, + {1,2250,2,920,1,926,}, + {1,2250,2,920,1,926,}, + {1,2255,2,900,1,941,}, + {1,2255,2,900,1,941,}, + {1,2255,2,900,1,941,}, + {1,2255,2,900,1,941,}, + {1,2255,2,900,1,941,}, + {1,2260,2,880,1,956,}, + {1,2260,2,880,1,956,}, + {1,2260,2,880,1,956,}, + {1,2260,2,880,1,956,}, + {1,2260,2,880,1,956,}, + {1,2260,2,870,1,966,}, + {1,2260,2,870,1,966,}, + {1,2260,2,870,1,966,}, + {1,2260,2,870,1,966,}, + {1,2260,2,870,1,966,}, + {1,2265,2,10,1,10,2,835,1,976,}, + {1,2265,2,10,1,10,2,835,1,976,}, + {1,2265,2,10,1,10,2,835,1,976,}, + {1,2265,2,10,1,10,2,835,1,976,}, + {1,2265,2,10,1,10,2,835,1,976,}, + {1,2270,2,10,1,15,2,815,1,986,}, + {1,2270,2,10,1,15,2,815,1,986,}, + {1,2270,2,10,1,15,2,815,1,986,}, + {1,2270,2,10,1,15,2,815,1,986,}, + {1,2270,2,10,1,15,2,815,1,986,}, + {1,2270,2,10,1,20,2,815,1,981,}, + {1,2270,2,10,1,20,2,815,1,981,}, + {1,2270,2,10,1,20,2,815,1,981,}, + {1,2270,2,10,1,20,2,815,1,981,}, + {1,2270,2,10,1,20,2,815,1,981,}, + {1,2270,2,20,1,20,2,765,1,15,2,10,1,996,}, + {1,2270,2,20,1,20,2,765,1,15,2,10,1,996,}, + {1,2270,2,20,1,20,2,765,1,15,2,10,1,996,}, + {1,2270,2,20,1,20,2,765,1,15,2,10,1,996,}, + {1,2270,2,20,1,20,2,765,1,15,2,10,1,996,}, + {1,2270,2,20,1,35,2,745,1,1026,}, + {1,2270,2,20,1,35,2,745,1,1026,}, + {1,2270,2,20,1,35,2,745,1,1026,}, + {1,2270,2,20,1,35,2,745,1,1026,}, + {1,2270,2,20,1,35,2,745,1,1026,}, + {1,2325,2,590,1,10,2,140,1,1031,}, + {1,2325,2,590,1,10,2,140,1,1031,}, + {1,2325,2,590,1,10,2,140,1,1031,}, + {1,2325,2,590,1,10,2,140,1,1031,}, + {1,2325,2,590,1,10,2,140,1,1031,}, + {1,2340,2,110,1,5,2,410,1,15,2,35,1,15,2,135,1,1031,}, + {1,2340,2,110,1,5,2,410,1,15,2,35,1,15,2,135,1,1031,}, + {1,2340,2,110,1,5,2,410,1,15,2,35,1,15,2,135,1,1031,}, + {1,2340,2,110,1,5,2,410,1,15,2,35,1,15,2,135,1,1031,}, + {1,2340,2,110,1,5,2,410,1,15,2,35,1,15,2,135,1,1031,}, + {1,2340,2,115,1,10,2,395,1,30,2,25,1,40,2,110,1,1031,}, + {1,2340,2,115,1,10,2,395,1,30,2,25,1,40,2,110,1,1031,}, + {1,2340,2,115,1,10,2,395,1,30,2,25,1,40,2,110,1,1031,}, + {1,2340,2,115,1,10,2,395,1,30,2,25,1,40,2,110,1,1031,}, + {1,2340,2,115,1,10,2,395,1,30,2,25,1,40,2,110,1,1031,}, + {1,2340,2,115,1,10,2,395,1,120,2,55,1,5,2,15,1,5,2,5,1,1031,}, + {1,2340,2,115,1,10,2,395,1,120,2,55,1,5,2,15,1,5,2,5,1,1031,}, + {1,2340,2,115,1,10,2,395,1,120,2,55,1,5,2,15,1,5,2,5,1,1031,}, + {1,2340,2,115,1,10,2,395,1,120,2,55,1,5,2,15,1,5,2,5,1,1031,}, + {1,2340,2,115,1,10,2,395,1,120,2,55,1,5,2,15,1,5,2,5,1,1031,}, + {1,2350,2,10,1,5,2,25,1,10,2,15,1,10,2,15,1,5,2,20,1,5,2,20,1,5,2,25,1,5,2,310,1,10,2,5,1,130,2,35,1,5,2,15,1,20,2,10,1,1031,}, + {1,2350,2,10,1,5,2,25,1,10,2,15,1,10,2,15,1,5,2,20,1,5,2,20,1,5,2,25,1,5,2,310,1,10,2,5,1,130,2,35,1,5,2,15,1,20,2,10,1,1031,}, + {1,2350,2,10,1,5,2,25,1,10,2,15,1,10,2,15,1,5,2,20,1,5,2,20,1,5,2,25,1,5,2,310,1,10,2,5,1,130,2,35,1,5,2,15,1,20,2,10,1,1031,}, + {1,2350,2,10,1,5,2,25,1,10,2,15,1,10,2,15,1,5,2,20,1,5,2,20,1,5,2,25,1,5,2,310,1,10,2,5,1,130,2,35,1,5,2,15,1,20,2,10,1,1031,}, + {1,2350,2,10,1,5,2,25,1,10,2,15,1,10,2,15,1,5,2,20,1,5,2,20,1,5,2,25,1,5,2,310,1,10,2,5,1,130,2,35,1,5,2,15,1,20,2,10,1,1031,}, + {1,2365,2,25,1,55,2,20,1,20,2,5,1,5,2,20,1,20,2,260,1,10,2,25,1,150,2,35,1,1081,}, + {1,2365,2,25,1,55,2,20,1,20,2,5,1,5,2,20,1,20,2,260,1,10,2,25,1,150,2,35,1,1081,}, + {1,2365,2,25,1,55,2,20,1,20,2,5,1,5,2,20,1,20,2,260,1,10,2,25,1,150,2,35,1,1081,}, + {1,2365,2,25,1,55,2,20,1,20,2,5,1,5,2,20,1,20,2,260,1,10,2,25,1,150,2,35,1,1081,}, + {1,2365,2,25,1,55,2,20,1,20,2,5,1,5,2,20,1,20,2,260,1,10,2,25,1,150,2,35,1,1081,}, + {1,2535,2,260,1,10,2,20,1,155,2,10,1,1106,}, + {1,2535,2,260,1,10,2,20,1,155,2,10,1,1106,}, + {1,2535,2,260,1,10,2,20,1,155,2,10,1,1106,}, + {1,2535,2,260,1,10,2,20,1,155,2,10,1,1106,}, + {1,2535,2,260,1,10,2,20,1,155,2,10,1,1106,}, + {1,2535,2,255,1,15,2,20,1,1271,}, + {1,2535,2,255,1,15,2,20,1,1271,}, + {1,2535,2,255,1,15,2,20,1,1271,}, + {1,2535,2,255,1,15,2,20,1,1271,}, + {1,2535,2,255,1,15,2,20,1,1271,}, + {1,2545,2,250,1,1301,}, + {1,2545,2,250,1,1301,}, + {1,2545,2,250,1,1301,}, + {1,2545,2,250,1,1301,}, + {1,2545,2,250,1,1301,}, + {1,2550,2,245,1,1301,}, + {1,2550,2,245,1,1301,}, + {1,2550,2,245,1,1301,}, + {1,2550,2,245,1,1301,}, + {1,2550,2,245,1,1301,}, + {1,2560,2,235,1,1301,}, + {1,2560,2,235,1,1301,}, + {1,2560,2,235,1,1301,}, + {1,2560,2,235,1,1301,}, + {1,2560,2,235,1,1301,}, + {1,2575,2,75,1,5,2,20,1,20,2,95,1,1306,}, + {1,2575,2,75,1,5,2,20,1,20,2,95,1,1306,}, + {1,2575,2,75,1,5,2,20,1,20,2,95,1,1306,}, + {1,2575,2,75,1,5,2,20,1,20,2,95,1,1306,}, + {1,2575,2,75,1,5,2,20,1,20,2,95,1,1306,}, + {1,2585,2,10,1,10,2,20,1,10,2,10,1,10,2,10,1,40,2,75,1,1316,}, + {1,2585,2,10,1,10,2,20,1,10,2,10,1,10,2,10,1,40,2,75,1,1316,}, + {1,2585,2,10,1,10,2,20,1,10,2,10,1,10,2,10,1,40,2,75,1,1316,}, + {1,2585,2,10,1,10,2,20,1,10,2,10,1,10,2,10,1,40,2,75,1,1316,}, + {1,2585,2,10,1,10,2,20,1,10,2,10,1,10,2,10,1,40,2,75,1,1316,}, + {1,2710,2,65,1,1321,}, + {1,2710,2,65,1,1321,}, + {1,2710,2,65,1,1321,}, + {1,2710,2,65,1,1321,}, + {1,2710,2,65,1,1321,}, + {1,2720,2,35,1,1341,}, + {1,2720,2,35,1,1341,}, + {1,2720,2,35,1,1341,}, + {1,2720,2,35,1,1341,}, + {1,2720,2,35,1,1341,}, + {1,2740,2,15,1,1341,}, + {1,2740,2,15,1,1341,}, + {1,2740,2,15,1,1341,}, + {1,2740,2,15,1,1341,}, + {1,2740,2,15,1,1341,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, + {1,4096,}, +} +}) \ No newline at end of file diff --git a/map_gen/data/presets/antarctica_earth.lua b/map_gen/data/presets/antarctica_earth.lua new file mode 100644 index 00000000..2fbed639 --- /dev/null +++ b/map_gen/data/presets/antarctica_earth.lua @@ -0,0 +1,2065 @@ +local b = require 'map_gen.shared.builders' +return b.decompress({ +height = 2058, +width = 2058, +data = { + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,795,2,6,1,1257,}, + {1,793,2,8,1,411,2,3,1,843,}, + {1,787,2,10,1,415,2,10,1,836,}, + {1,782,2,13,1,418,2,14,1,831,}, + {1,780,2,13,1,421,2,16,1,828,}, + {1,772,2,16,1,428,2,17,1,825,}, + {1,770,2,14,1,433,2,4,1,1,2,17,1,819,}, + {1,766,2,16,1,436,2,2,1,3,2,20,1,815,}, + {1,764,2,14,1,444,2,23,1,813,}, + {1,759,2,17,1,447,2,24,1,811,}, + {1,757,2,17,1,457,2,26,1,801,}, + {1,755,2,17,1,461,2,26,1,799,}, + {1,747,2,23,1,465,2,27,1,796,}, + {1,744,2,23,1,470,2,27,1,794,}, + {1,742,2,20,1,478,2,28,1,790,}, + {1,740,2,20,1,483,2,33,1,782,}, + {1,738,2,20,1,489,2,32,1,779,}, + {1,733,2,23,1,495,2,30,1,777,}, + {1,730,2,22,1,501,2,30,1,775,}, + {1,728,2,22,1,505,2,30,1,773,}, + {1,726,2,22,1,508,2,31,1,771,}, + {1,724,2,22,1,511,2,17,1,1,2,28,1,755,}, + {1,722,2,22,1,514,2,15,1,4,2,28,1,753,}, + {1,720,2,22,1,517,2,14,1,5,2,29,1,751,}, + {1,718,2,23,1,519,2,15,1,2,2,32,1,749,}, + {1,716,2,22,1,523,2,53,1,744,}, + {1,713,2,23,1,526,2,55,1,741,}, + {1,711,2,23,1,533,2,52,1,739,}, + {1,709,2,23,1,537,2,54,1,735,}, + {1,703,2,28,1,540,2,54,1,733,}, + {1,699,2,31,1,545,2,57,1,726,}, + {1,697,2,31,1,549,2,58,1,723,}, + {1,695,2,29,1,555,2,61,1,718,}, + {1,693,2,29,1,562,2,56,1,1,2,4,1,713,}, + {1,691,2,26,1,569,2,54,1,1,2,6,1,711,}, + {1,682,2,33,1,573,2,51,1,5,2,8,1,706,}, + {1,680,2,34,1,576,2,50,1,6,2,10,1,702,}, + {1,674,2,39,1,579,2,49,1,7,2,11,1,699,}, + {1,670,2,43,1,581,2,49,1,6,2,12,1,697,}, + {1,670,2,44,1,582,2,49,1,3,2,15,1,695,}, + {1,670,2,44,1,587,2,64,1,693,}, + {1,670,2,45,1,588,2,14,1,2,2,38,1,1,2,9,1,691,}, + {1,669,2,48,1,588,2,10,1,12,2,29,1,4,2,9,1,689,}, + {1,667,2,52,1,619,2,17,1,6,2,10,1,687,}, + {1,665,2,54,1,630,2,7,1,4,2,15,1,683,}, + {1,643,2,3,1,17,2,39,1,1,2,16,1,633,2,25,1,681,}, + {1,641,2,6,1,14,2,37,1,6,2,14,1,7,2,6,1,623,2,12,1,2,2,11,1,679,}, + {1,639,2,7,1,13,2,37,1,8,2,15,1,4,2,8,1,625,2,10,1,2,2,14,1,676,}, + {1,635,2,12,1,9,2,38,1,10,2,26,1,628,2,26,1,674,}, + {1,633,2,15,1,6,2,38,1,11,2,26,1,631,2,12,1,3,2,11,1,672,}, + {1,630,2,20,1,2,2,38,1,11,2,27,1,634,2,10,1,5,2,11,1,670,}, + {1,628,2,60,1,11,2,29,1,636,2,8,1,7,2,11,1,668,}, + {1,626,2,62,1,9,2,30,1,639,2,8,1,9,2,13,1,662,}, + {1,624,2,64,1,3,2,24,1,653,2,8,1,9,2,15,1,658,}, + {1,622,2,88,1,659,2,10,1,8,2,14,1,657,}, + {1,619,2,89,1,26,2,5,1,630,2,11,1,9,2,13,1,656,}, + {1,616,2,90,1,26,2,7,1,631,2,12,1,9,2,12,1,655,}, + {1,614,2,90,1,25,2,8,1,633,2,14,1,8,2,13,1,653,}, + {1,612,2,91,1,25,2,6,1,636,2,16,1,7,2,14,1,651,}, + {1,610,2,94,1,23,2,5,1,639,2,17,1,6,2,15,1,649,}, + {1,607,2,106,1,13,2,4,1,643,2,17,1,5,2,16,1,647,}, + {1,605,2,110,1,10,2,3,1,647,2,17,1,8,2,15,1,643,}, + {1,603,2,112,1,9,2,2,1,651,2,17,1,8,2,15,1,641,}, + {1,601,2,114,1,665,2,15,1,9,2,18,1,636,}, + {1,599,2,115,1,670,2,13,1,11,2,16,1,634,}, + {1,598,2,117,1,671,2,13,1,11,2,16,1,632,}, + {1,596,2,120,1,672,2,13,1,11,2,16,1,630,}, + {1,594,2,123,1,673,2,12,1,13,2,15,1,628,}, + {1,592,2,125,1,675,2,11,1,14,2,15,1,626,}, + {1,585,2,130,1,678,2,11,1,15,2,15,1,624,}, + {1,584,2,16,1,2,2,110,1,683,2,10,1,16,2,15,1,622,}, + {1,582,2,128,1,687,2,10,1,16,2,15,1,620,}, + {1,580,2,128,1,529,2,3,1,160,2,9,1,16,2,15,1,618,}, + {1,578,2,128,1,531,2,3,1,163,2,8,1,20,2,11,1,616,}, + {1,576,2,129,1,701,2,7,1,20,2,11,1,614,}, + {1,574,2,130,1,551,2,13,1,142,2,3,1,22,2,11,1,612,}, + {1,572,2,131,1,552,2,15,1,168,2,10,1,610,}, + {1,568,2,134,1,553,2,17,1,168,2,11,1,607,}, + {1,566,2,135,1,555,2,21,1,165,2,11,1,605,}, + {1,564,2,135,1,557,2,22,1,166,2,10,1,604,}, + {1,560,2,137,1,560,2,23,1,166,2,10,1,602,}, + {1,559,2,136,1,561,2,26,1,169,2,7,1,600,}, + {1,557,2,135,1,450,2,3,1,5,2,3,1,5,2,9,1,27,2,3,1,16,2,37,1,4,2,30,1,169,2,7,1,598,}, + {1,555,2,135,1,450,2,7,1,1,2,7,1,1,2,12,1,25,2,6,1,13,2,87,1,157,2,5,1,597,}, + {1,553,2,135,1,414,2,4,1,17,2,2,1,5,2,6,1,1,2,32,1,13,2,8,1,2,2,10,1,8,2,95,1,153,2,3,1,597,}, + {1,551,2,135,1,416,2,5,1,6,2,6,1,2,2,6,1,1,2,42,1,4,2,135,1,749,}, + {1,549,2,135,1,418,2,7,1,2,2,204,1,743,}, + {1,547,2,136,1,419,2,219,1,737,}, + {1,546,2,136,1,420,2,228,1,728,}, + {1,545,2,137,1,419,2,231,1,726,}, + {1,543,2,138,1,115,2,6,1,3,2,15,1,184,2,5,1,92,2,233,1,724,}, + {1,541,2,140,1,113,2,26,1,183,2,8,1,88,2,237,1,722,}, + {1,539,2,143,1,108,2,29,1,182,2,12,1,84,2,241,1,720,}, + {1,538,2,144,1,102,2,34,1,188,2,7,1,79,2,249,1,717,}, + {1,537,2,146,1,99,2,34,1,191,2,5,1,73,2,258,1,715,}, + {1,535,2,148,1,94,2,37,1,269,2,262,1,713,}, + {1,533,2,151,1,91,2,37,1,271,2,268,1,707,}, + {1,531,2,145,1,1,2,9,1,87,2,37,1,268,2,2,1,4,2,268,1,706,}, + {1,528,2,147,1,3,2,13,1,80,2,37,1,271,2,1,1,7,2,267,1,704,}, + {1,527,2,149,1,1,2,14,1,78,2,37,1,285,2,5,1,3,2,257,1,702,}, + {1,525,2,166,1,74,2,38,1,298,2,257,1,700,}, + {1,524,2,166,1,73,2,36,1,303,2,265,1,691,}, + {1,522,2,166,1,73,2,36,1,183,2,3,1,111,2,3,1,6,2,266,1,689,}, + {1,520,2,166,1,73,2,36,1,184,2,4,1,111,2,4,1,5,2,269,1,686,}, + {1,518,2,167,1,67,2,39,1,188,2,4,1,110,2,6,1,3,2,272,1,684,}, + {1,516,2,128,1,1,2,39,1,65,2,40,1,166,2,4,1,8,2,16,1,109,2,7,1,3,2,280,1,676,}, + {1,515,2,128,1,3,2,37,1,64,2,40,1,167,2,29,1,109,2,6,1,6,2,281,1,673,}, + {1,514,2,129,1,3,2,36,1,60,2,43,1,167,2,31,1,123,2,281,1,671,}, + {1,512,2,132,1,1,2,35,1,60,2,43,1,157,2,2,1,8,2,32,1,126,2,282,1,668,}, + {1,510,2,168,1,60,2,42,1,151,2,6,1,4,2,3,1,4,2,35,1,3,2,13,1,111,2,281,1,667,}, + {1,509,2,167,1,61,2,41,1,151,2,9,1,3,2,61,1,110,2,281,1,665,}, + {1,507,2,167,1,62,2,40,1,150,2,13,1,3,2,62,1,112,2,279,1,663,}, + {1,505,2,167,1,63,2,39,1,152,2,14,1,1,2,63,1,114,2,279,1,661,}, + {1,503,2,148,1,3,2,17,1,62,2,36,1,157,2,77,1,117,2,31,1,20,2,230,1,657,}, + {1,501,2,147,1,7,2,15,1,61,2,36,1,161,2,68,1,2,2,3,1,12,2,2,1,106,2,17,1,1,2,10,1,24,2,11,1,2,2,217,1,655,}, + {1,500,2,146,1,10,2,12,1,54,2,44,1,156,2,2,1,6,2,64,1,19,2,2,1,117,2,4,1,4,2,8,1,27,2,7,1,6,2,217,1,653,}, + {1,499,2,145,1,11,2,11,1,55,2,42,1,159,2,3,1,7,2,60,1,148,2,7,1,29,2,6,1,8,2,219,1,649,}, + {1,498,2,144,1,11,2,11,1,57,2,40,1,161,2,2,1,10,2,57,1,151,2,5,1,29,2,6,1,8,2,224,1,644,}, + {1,496,2,142,1,13,2,11,1,58,2,39,1,176,2,57,1,4,2,7,1,173,2,6,1,9,2,224,1,643,}, + {1,495,2,141,1,12,2,13,1,58,2,37,1,178,2,71,1,10,2,9,1,151,2,8,1,9,2,225,1,641,}, + {1,494,2,141,1,11,2,14,1,57,2,36,1,181,2,77,1,2,2,11,1,125,2,10,1,16,2,10,1,8,2,226,1,639,}, + {1,492,2,144,1,8,2,14,1,56,2,37,1,182,2,89,1,126,2,15,1,10,2,12,1,9,2,227,1,637,}, + {1,490,2,148,1,4,2,14,1,56,2,36,1,185,2,12,1,1,2,75,1,126,2,18,1,6,2,14,1,10,2,230,1,633,}, + {1,488,2,166,1,49,2,40,1,190,2,11,1,3,2,74,1,126,2,36,1,13,2,94,1,22,2,114,1,632,}, + {1,486,2,167,1,47,2,40,1,192,2,13,1,1,2,76,1,124,2,35,1,17,2,90,1,29,2,109,1,632,}, + {1,484,2,167,1,42,2,45,1,194,2,96,1,2,2,7,1,108,2,36,1,18,2,87,1,35,2,105,1,632,}, + {1,483,2,166,1,41,2,46,1,188,2,25,1,3,2,87,1,105,2,36,1,20,2,85,1,40,2,102,1,631,}, + {1,482,2,165,1,41,2,46,1,189,2,25,1,13,2,78,1,104,2,37,1,21,2,84,1,42,2,102,1,629,}, + {1,480,2,166,1,39,2,43,1,193,2,28,1,13,2,4,1,2,2,5,1,4,2,55,1,110,2,39,1,21,2,83,1,49,2,99,1,625,}, + {1,479,2,166,1,39,2,39,1,196,2,30,1,14,2,2,1,13,2,53,1,110,2,40,1,23,2,82,1,55,2,10,1,12,2,74,1,621,}, + {1,477,2,166,1,40,2,38,1,191,2,38,1,28,2,54,1,107,2,42,1,25,2,81,1,78,2,73,1,620,}, + {1,476,2,165,1,40,2,36,1,190,2,43,1,28,2,56,1,104,2,42,1,27,2,82,1,80,2,70,1,619,}, + {1,474,2,166,1,39,2,36,1,190,2,45,1,27,2,59,1,102,2,41,1,29,2,83,1,80,2,69,1,618,}, + {1,472,2,166,1,39,2,33,1,193,2,46,1,28,2,68,1,93,2,42,1,30,2,84,1,79,2,68,1,617,}, + {1,471,2,166,1,38,2,20,1,2,2,11,1,193,2,47,1,27,2,76,1,87,2,43,1,29,2,86,1,40,2,9,1,30,2,68,1,615,}, + {1,470,2,165,1,39,2,19,1,5,2,8,1,193,2,47,1,27,2,80,1,12,2,2,1,70,2,45,1,28,2,90,1,36,2,11,1,30,2,68,1,613,}, + {1,469,2,164,1,40,2,18,1,8,2,5,1,188,2,54,1,19,2,96,1,2,2,4,1,29,2,8,1,32,2,46,1,7,2,9,1,11,2,92,1,36,2,14,1,27,2,75,1,605,}, + {1,468,2,164,1,40,2,7,1,2,2,7,1,11,2,3,1,188,2,55,1,20,2,101,1,29,2,32,1,1,2,46,1,2,2,6,1,6,2,14,1,5,2,95,1,36,2,15,1,27,2,75,1,603,}, + {1,466,2,164,1,41,2,6,1,211,2,57,1,25,2,94,1,30,2,80,1,14,2,115,1,35,2,17,1,27,2,75,1,601,}, + {1,464,2,164,1,43,2,5,1,210,2,58,1,27,2,89,1,32,2,84,1,12,2,21,1,2,2,94,1,34,2,18,1,18,2,2,1,5,2,77,1,599,}, + {1,462,2,164,1,45,2,5,1,209,2,59,1,26,2,88,1,32,2,88,1,11,2,18,1,6,2,65,1,3,2,26,1,32,2,20,1,1,2,6,1,8,2,3,1,6,2,5,1,1,2,72,1,597,}, + {1,461,2,163,1,49,2,1,1,211,2,58,1,25,2,88,1,32,2,92,1,12,2,13,1,9,2,62,1,7,2,26,1,4,2,10,1,15,2,30,1,6,2,3,1,6,2,3,1,5,2,71,1,596,}, + {1,460,2,163,1,261,2,58,1,18,2,94,1,32,2,96,1,12,2,9,1,15,2,56,1,14,2,38,1,11,2,33,1,3,2,5,1,5,2,2,1,8,2,70,1,595,}, + {1,459,2,163,1,262,2,57,1,18,2,94,1,21,2,110,1,12,2,5,1,19,2,16,1,1,2,35,1,21,2,34,1,9,2,43,1,2,2,5,1,8,2,70,1,594,}, + {1,458,2,162,1,265,2,56,1,17,2,94,1,20,2,114,1,11,2,3,1,25,2,9,1,5,2,32,1,24,2,31,1,10,2,50,1,7,2,72,1,593,}, + {1,457,2,161,1,268,2,54,1,18,2,7,1,2,2,80,1,2,2,3,1,17,2,119,1,9,2,4,1,26,2,6,1,8,2,28,1,28,2,10,1,7,2,13,1,9,2,52,1,3,2,76,1,591,}, + {1,455,2,162,1,270,2,54,1,4,2,3,1,9,2,6,1,5,2,77,1,6,2,3,1,10,2,126,1,6,2,7,1,26,2,3,1,11,2,25,1,31,2,6,1,11,2,13,1,7,2,133,1,589,}, + {1,454,2,161,1,271,2,63,1,7,2,7,1,5,2,32,1,30,2,13,1,8,2,160,1,34,2,4,1,1,2,19,1,49,2,13,1,4,2,136,1,587,}, + {1,452,2,161,1,272,2,53,1,1,2,12,1,3,2,9,1,4,2,21,1,44,2,7,1,11,2,170,1,42,2,7,1,51,2,153,1,585,}, + {1,450,2,161,1,273,2,52,1,4,2,24,1,1,2,20,1,65,2,172,1,42,2,5,1,52,2,153,1,584,}, + {1,449,2,160,1,274,2,42,1,1,2,9,1,5,2,43,1,65,2,175,1,105,2,147,1,583,}, + {1,448,2,160,1,275,2,41,1,4,2,5,1,7,2,41,1,65,2,179,1,105,2,147,1,581,}, + {1,447,2,159,1,277,2,30,1,3,2,7,1,17,2,40,1,64,2,183,1,63,2,7,1,36,2,146,1,579,}, + {1,445,2,159,1,279,2,28,1,27,2,43,1,49,2,9,1,2,2,188,1,61,2,11,1,34,2,146,1,577,}, + {1,443,2,160,1,280,2,18,1,2,2,6,1,26,2,48,1,23,2,5,1,17,2,203,1,64,2,6,1,36,2,146,1,575,}, + {1,442,2,159,1,282,2,16,1,6,2,3,1,27,2,6,1,1,2,49,1,15,2,8,1,12,2,208,1,107,2,143,1,574,}, + {1,441,2,158,1,285,2,12,1,10,2,1,1,28,2,5,1,3,2,9,1,7,2,15,1,3,2,14,1,15,2,10,1,8,2,219,1,101,2,141,1,573,}, + {1,440,2,158,1,339,2,4,1,1,2,7,1,12,2,13,1,4,2,12,1,16,2,239,1,101,2,140,1,572,}, + {1,439,2,157,1,343,2,2,1,1,2,5,1,16,2,11,1,3,2,12,1,18,2,240,1,101,2,139,1,571,}, + {1,438,2,156,1,369,2,12,1,1,2,14,1,2,2,8,1,6,2,245,1,99,2,139,1,569,}, + {1,436,2,157,1,370,2,39,1,2,2,260,1,89,2,137,1,568,}, + {1,435,2,157,1,360,2,3,1,7,2,304,1,89,2,136,1,567,}, + {1,434,2,156,1,361,2,6,1,6,2,307,1,87,2,135,1,566,}, + {1,432,2,156,1,364,2,5,1,8,2,314,1,80,2,134,1,565,}, + {1,430,2,156,1,366,2,5,1,9,2,315,1,65,2,6,1,9,2,133,1,564,}, + {1,429,2,155,1,369,2,4,1,10,2,316,1,61,2,10,1,9,2,132,1,563,}, + {1,428,2,155,1,370,2,4,1,10,2,322,1,45,2,3,1,3,2,16,1,9,2,131,1,562,}, + {1,427,2,155,1,371,2,4,1,9,2,324,1,44,2,26,1,7,2,129,1,562,}, + {1,426,2,155,1,372,2,5,1,8,2,9,1,6,2,10,1,1,2,299,1,41,2,30,1,6,2,129,1,561,}, + {1,425,2,155,1,373,2,5,1,8,2,8,1,9,2,7,1,6,2,297,1,37,2,35,1,3,2,129,1,561,}, + {1,424,2,155,1,375,2,4,1,10,2,5,1,12,2,6,1,9,2,295,1,32,2,171,1,560,}, + {1,423,2,154,1,409,2,5,1,13,2,293,1,29,2,174,1,558,}, + {1,422,2,153,1,411,2,7,1,13,2,293,1,26,2,177,1,556,}, + {1,421,2,152,1,414,2,11,1,10,2,293,1,24,2,179,1,554,}, + {1,420,2,152,1,415,2,11,1,12,2,293,1,2,2,11,1,8,2,181,1,553,}, + {1,418,2,152,1,422,2,6,1,3,2,2,1,7,2,308,1,5,2,184,1,551,}, + {1,417,2,151,1,426,2,4,1,3,2,3,1,6,2,310,1,1,2,188,1,549,}, + {1,416,2,150,1,429,2,4,1,1,2,5,1,4,2,501,1,548,}, + {1,415,2,149,1,431,2,12,1,1,2,503,1,547,}, + {1,413,2,150,1,433,2,517,1,545,}, + {1,411,2,151,1,440,2,513,1,543,}, + {1,410,2,151,1,443,2,512,1,542,}, + {1,409,2,150,1,446,2,512,1,541,}, + {1,408,2,149,1,448,2,513,1,540,}, + {1,407,2,148,1,451,2,513,1,539,}, + {1,406,2,147,1,453,2,514,1,538,}, + {1,405,2,147,1,454,2,515,1,537,}, + {1,404,2,147,1,455,2,516,1,536,}, + {1,403,2,147,1,455,2,518,1,535,}, + {1,401,2,148,1,455,2,520,1,534,}, + {1,399,2,149,1,454,2,523,1,533,}, + {1,398,2,148,1,454,2,76,1,3,2,447,1,532,}, + {1,397,2,148,1,440,2,89,1,14,2,37,1,23,2,380,1,530,}, + {1,396,2,148,1,403,2,125,1,29,2,22,1,28,2,379,1,528,}, + {1,395,2,147,1,397,2,132,1,35,2,11,1,36,2,379,1,526,}, + {1,394,2,147,1,383,2,146,1,87,2,376,1,525,}, + {1,393,2,147,1,382,2,148,1,89,2,375,1,524,}, + {1,392,2,148,1,377,2,153,1,91,2,374,1,523,}, + {1,391,2,148,1,374,2,157,1,93,2,374,1,521,}, + {1,390,2,149,1,372,2,158,1,95,2,375,1,519,}, + {1,389,2,149,1,371,2,147,1,109,2,29,1,13,2,333,1,518,}, + {1,388,2,149,1,371,2,146,1,112,2,27,1,16,2,332,1,517,}, + {1,387,2,149,1,372,2,136,1,123,2,27,1,16,2,332,1,516,}, + {1,387,2,148,1,374,2,133,1,126,2,28,1,23,2,325,1,514,}, + {1,386,2,148,1,376,2,130,1,105,2,7,1,17,2,29,1,23,2,324,1,513,}, + {1,383,2,150,1,378,2,127,1,105,2,9,1,18,2,30,1,22,2,324,1,512,}, + {1,382,2,150,1,380,2,124,1,107,2,9,1,19,2,31,1,21,2,241,1,1,2,82,1,511,}, + {1,381,2,150,1,382,2,122,1,108,2,9,1,21,2,31,1,20,2,239,1,3,2,82,1,510,}, + {1,380,2,150,1,384,2,119,1,110,2,8,1,23,2,32,1,19,2,238,1,3,2,84,1,508,}, + {1,379,2,150,1,385,2,116,1,112,2,9,1,24,2,34,1,17,2,238,1,1,2,87,1,506,}, + {1,379,2,149,1,387,2,113,1,113,2,10,1,26,2,33,1,17,2,326,1,505,}, + {1,377,2,150,1,388,2,113,1,111,2,13,1,27,2,32,1,17,2,326,1,504,}, + {1,375,2,151,1,390,2,111,1,111,2,14,1,29,2,31,1,17,2,242,1,6,2,78,1,503,}, + {1,374,2,151,1,390,2,113,1,109,2,16,1,30,2,30,1,17,2,240,1,8,2,78,1,502,}, + {1,373,2,151,1,391,2,114,1,108,2,17,1,31,2,29,1,18,2,238,1,8,2,79,1,501,}, + {1,372,2,151,1,391,2,115,1,108,2,17,1,33,2,27,1,20,2,236,1,9,2,79,1,500,}, + {1,371,2,151,1,391,2,116,1,108,2,17,1,34,2,27,1,20,2,236,1,8,2,80,1,499,}, + {1,370,2,151,1,391,2,116,1,109,2,17,1,36,2,25,1,21,2,236,1,7,2,81,1,498,}, + {1,369,2,151,1,392,2,114,1,112,2,16,1,38,2,24,1,22,2,235,1,5,2,84,1,496,}, + {1,368,2,151,1,392,2,113,1,114,2,16,1,39,2,25,1,22,2,234,1,2,2,6,1,1,2,81,1,494,}, + {1,367,2,151,1,393,2,111,1,116,2,15,1,43,2,23,1,23,2,239,1,4,2,80,1,493,}, + {1,367,2,150,1,393,2,110,1,118,2,14,1,48,2,21,1,25,2,236,1,5,2,79,1,492,}, + {1,366,2,149,1,395,2,103,1,125,2,11,1,53,2,21,1,25,2,234,1,6,2,79,1,491,}, + {1,365,2,149,1,396,2,101,1,193,2,21,1,25,2,233,1,5,2,80,1,490,}, + {1,363,2,150,1,397,2,99,1,197,2,21,1,25,2,231,1,5,2,81,1,489,}, + {1,362,2,150,1,398,2,97,1,201,2,23,1,23,2,230,1,4,2,48,1,3,2,31,1,488,}, + {1,361,2,150,1,400,2,94,1,205,2,23,1,23,2,229,1,2,2,49,1,4,2,31,1,487,}, + {1,360,2,150,1,403,2,87,1,212,2,23,1,22,2,280,1,2,2,33,1,486,}, + {1,359,2,150,1,405,2,78,1,222,2,24,1,20,2,286,1,1,2,28,1,485,}, + {1,358,2,150,1,406,2,73,1,73,2,17,1,139,2,23,1,20,2,284,1,6,2,25,1,484,}, + {1,357,2,150,1,408,2,27,1,2,2,28,1,79,2,38,1,129,2,22,1,21,2,281,1,9,2,24,1,483,}, + {1,356,2,150,1,409,2,20,1,11,2,23,1,65,2,61,1,125,2,22,1,20,2,281,1,10,2,24,1,481,}, + {1,355,2,150,1,411,2,10,1,21,2,20,1,60,2,90,1,104,2,23,1,20,2,280,1,11,2,23,1,480,}, + {1,354,2,150,1,444,2,18,1,59,2,101,1,96,2,24,1,20,2,280,1,10,2,23,1,479,}, + {1,353,2,150,1,446,2,17,1,47,2,120,1,91,2,23,1,21,2,280,1,9,2,23,1,478,}, + {1,351,2,151,1,448,2,17,1,44,2,145,1,70,2,23,1,21,2,280,1,8,2,23,1,477,}, + {1,350,2,151,1,451,2,17,1,37,2,152,1,70,2,23,1,21,2,280,1,7,2,23,1,476,}, + {1,349,2,151,1,453,2,18,1,8,2,181,1,70,2,22,1,22,2,279,1,7,2,23,1,475,}, + {1,348,2,151,1,453,2,210,1,24,2,7,1,37,2,24,1,21,2,279,1,7,2,23,1,474,}, + {1,346,2,152,1,454,2,212,1,22,2,11,1,34,2,15,1,1,2,9,1,19,2,279,1,8,2,22,1,474,}, + {1,345,2,152,1,454,2,214,1,22,2,14,1,30,2,13,1,5,2,9,1,18,2,246,1,2,2,31,1,8,2,22,1,473,}, + {1,344,2,152,1,454,2,215,1,24,2,14,1,29,2,11,1,8,2,8,1,17,2,281,1,6,2,23,1,472,}, + {1,343,2,152,1,454,2,216,1,26,2,15,1,25,2,12,1,10,2,7,1,17,2,281,1,6,2,23,1,471,}, + {1,342,2,152,1,454,2,216,1,31,2,15,1,21,2,13,1,11,2,6,1,16,2,282,1,5,2,23,1,471,}, + {1,341,2,151,1,455,2,217,1,33,2,16,1,16,2,15,1,13,2,5,1,15,2,283,1,5,2,23,1,470,}, + {1,340,2,150,1,457,2,218,1,34,2,22,1,7,2,16,1,14,2,4,1,15,2,285,1,2,2,25,1,469,}, + {1,340,2,149,1,456,2,220,1,37,2,19,1,6,2,11,1,39,2,314,1,467,}, + {1,339,2,148,1,456,2,223,1,38,2,17,1,6,2,9,1,41,2,315,1,466,}, + {1,338,2,147,1,456,2,226,1,39,2,14,1,57,2,291,1,2,2,23,1,465,}, + {1,337,2,147,1,455,2,228,1,41,2,12,1,57,2,290,1,5,2,22,1,464,}, + {1,336,2,147,1,452,2,233,1,41,2,10,1,58,2,291,1,8,2,19,1,463,}, + {1,334,2,148,1,451,2,237,1,42,2,6,1,60,2,290,1,10,2,18,1,462,}, + {1,333,2,148,1,450,2,239,1,109,2,291,1,10,2,17,1,461,}, + {1,332,2,148,1,445,2,244,1,111,2,292,1,9,2,17,1,460,}, + {1,331,2,148,1,444,2,244,1,114,2,293,1,8,2,17,1,459,}, + {1,331,2,147,1,444,2,244,1,116,2,295,1,6,2,18,1,457,}, + {1,330,2,147,1,444,2,245,1,117,2,296,1,6,2,18,1,455,}, + {1,329,2,147,1,443,2,247,1,118,2,297,1,6,2,17,1,454,}, + {1,328,2,147,1,443,2,249,1,118,2,297,1,6,2,17,1,453,}, + {1,327,2,147,1,443,2,252,1,117,2,297,1,6,2,17,1,452,}, + {1,326,2,146,1,444,2,254,1,117,2,297,1,6,2,17,1,451,}, + {1,325,2,146,1,444,2,256,1,116,2,298,1,6,2,16,1,451,}, + {1,324,2,146,1,444,2,259,1,115,2,298,1,6,2,17,1,449,}, + {1,323,2,146,1,444,2,262,1,114,2,297,1,8,2,16,1,448,}, + {1,322,2,146,1,444,2,265,1,113,2,297,1,9,2,15,1,447,}, + {1,321,2,146,1,445,2,267,1,112,2,297,1,9,2,15,1,446,}, + {1,320,2,146,1,445,2,270,1,111,2,296,1,10,2,15,1,445,}, + {1,319,2,146,1,445,2,275,1,107,2,297,1,10,2,15,1,444,}, + {1,318,2,146,1,445,2,285,1,99,2,26,1,3,2,269,1,9,2,14,1,444,}, + {1,318,2,146,1,445,2,287,1,97,2,24,1,13,2,268,1,3,2,14,1,443,}, + {1,317,2,146,1,447,2,288,1,95,2,24,1,16,2,283,1,442,}, + {1,317,2,146,1,448,2,290,1,93,2,22,1,19,2,282,1,441,}, + {1,316,2,146,1,449,2,292,1,91,2,23,1,22,2,278,1,441,}, + {1,316,2,145,1,450,2,294,1,90,2,22,1,24,2,277,1,440,}, + {1,315,2,145,1,450,2,297,1,88,2,23,1,25,2,275,1,440,}, + {1,314,2,145,1,451,2,300,1,86,2,23,1,26,2,274,1,439,}, + {1,313,2,145,1,452,2,301,1,85,2,25,1,25,2,273,1,439,}, + {1,312,2,146,1,451,2,303,1,85,2,26,1,23,2,269,1,1,2,3,1,439,}, + {1,311,2,146,1,452,2,304,1,85,2,27,1,22,2,50,1,1,2,216,1,444,}, + {1,311,2,146,1,451,2,306,1,86,2,26,1,21,2,37,1,2,2,9,1,5,2,215,1,443,}, + {1,310,2,148,1,450,2,307,1,87,2,25,1,20,2,35,1,20,2,17,1,3,2,195,1,441,}, + {1,308,2,150,1,448,2,310,1,87,2,25,1,20,2,33,1,25,2,11,1,7,2,194,1,440,}, + {1,307,2,152,1,445,2,312,1,89,2,8,1,7,2,9,1,21,2,31,1,27,2,7,1,11,2,193,1,439,}, + {1,306,2,153,1,443,2,316,1,89,2,4,1,11,2,8,1,21,2,31,1,46,2,192,1,438,}, + {1,305,2,155,1,435,2,325,1,88,2,2,1,14,2,6,1,22,2,34,1,44,2,191,1,113,2,3,1,321,}, + {1,304,2,156,1,434,2,329,1,103,2,3,1,22,2,38,1,43,2,190,1,1,2,3,1,108,2,4,1,320,}, + {1,303,2,157,1,433,2,332,1,126,2,38,1,44,2,194,1,109,2,2,1,320,}, + {1,302,2,158,1,432,2,336,1,122,2,33,1,2,2,4,1,45,2,195,1,429,}, + {1,301,2,158,1,431,2,340,1,119,2,34,1,2,2,4,1,47,2,194,1,428,}, + {1,301,2,158,1,429,2,344,1,117,2,40,1,25,2,3,1,3,2,1,1,16,2,195,1,5,2,3,1,418,}, + {1,300,2,158,1,428,2,349,1,100,2,2,1,12,2,28,1,1,2,11,1,25,2,8,1,16,2,196,1,1,2,6,1,417,}, + {1,300,2,157,1,427,2,353,1,98,2,2,1,12,2,27,1,3,2,10,1,26,2,7,1,18,2,201,1,417,}, + {1,299,2,158,1,425,2,357,1,110,2,28,1,1,2,12,1,26,2,6,1,4,2,1,1,14,2,201,1,416,}, + {1,299,2,157,1,424,2,361,1,109,2,40,1,28,2,4,1,3,2,3,1,14,2,201,1,415,}, + {1,298,2,158,1,422,2,364,1,110,2,39,1,34,2,2,1,16,2,201,1,414,}, + {1,298,2,157,1,422,2,366,1,111,2,39,1,51,2,201,1,99,2,2,1,312,}, + {1,297,2,157,1,422,2,369,1,24,2,9,1,39,2,3,1,35,2,39,1,50,2,202,1,98,2,3,1,311,}, + {1,297,2,156,1,422,2,372,1,19,2,14,1,37,2,5,1,34,2,39,1,50,2,201,1,98,2,4,1,310,}, + {1,296,2,156,1,422,2,375,1,16,2,20,1,34,2,5,1,32,2,40,1,48,2,203,1,98,2,3,1,310,}, + {1,295,2,157,1,422,2,377,1,14,2,23,1,33,2,5,1,31,2,41,1,46,2,205,1,2,2,3,1,92,2,3,1,309,}, + {1,294,2,157,1,422,2,380,1,11,2,29,1,30,2,5,1,31,2,41,1,44,2,211,1,92,2,3,1,308,}, + {1,294,2,157,1,422,2,382,1,8,2,31,1,31,2,5,1,30,2,42,1,42,2,212,1,91,2,3,1,308,}, + {1,293,2,157,1,422,2,385,1,4,2,34,1,32,2,5,1,27,2,46,1,39,2,213,1,91,2,2,1,308,}, + {1,293,2,157,1,420,2,427,1,31,2,6,1,25,2,47,1,39,2,213,1,400,}, + {1,292,2,157,1,420,2,429,1,32,2,6,1,22,2,49,1,40,2,212,1,399,}, + {1,291,2,158,1,418,2,432,1,32,2,6,1,21,2,50,1,40,2,212,1,398,}, + {1,290,2,158,1,418,2,434,1,33,2,6,1,19,2,52,1,38,2,214,1,396,}, + {1,289,2,159,1,417,2,436,1,35,2,3,1,20,2,52,1,38,2,215,1,394,}, + {1,288,2,159,1,417,2,439,1,58,2,52,1,36,2,217,1,392,}, + {1,287,2,160,1,416,2,442,1,60,2,50,1,35,2,217,1,391,}, + {1,286,2,161,1,415,2,445,1,59,2,51,1,34,2,217,1,90,2,1,1,299,}, + {1,285,2,162,1,415,2,447,1,58,2,52,1,33,2,216,1,90,2,2,1,298,}, + {1,284,2,163,1,414,2,450,1,56,2,56,1,30,2,216,1,90,2,3,1,296,}, + {1,284,2,163,1,414,2,452,1,57,2,55,1,29,2,216,1,90,2,3,1,295,}, + {1,283,2,164,1,412,2,456,1,57,2,55,1,28,2,216,1,89,2,4,1,294,}, + {1,282,2,165,1,411,2,458,1,58,2,56,1,27,2,215,1,89,2,4,1,293,}, + {1,281,2,166,1,411,2,460,1,58,2,56,1,28,2,213,1,89,2,4,1,292,}, + {1,281,2,166,1,411,2,461,1,58,2,58,1,28,2,211,1,89,2,4,1,291,}, + {1,280,2,167,1,411,2,462,1,58,2,59,1,28,2,210,1,89,2,4,1,290,}, + {1,279,2,168,1,410,2,464,1,58,2,59,1,29,2,208,1,90,2,4,1,289,}, + {1,278,2,169,1,410,2,465,1,58,2,60,1,29,2,207,1,90,2,3,1,289,}, + {1,277,2,170,1,409,2,467,1,58,2,61,1,29,2,205,1,91,2,3,1,288,}, + {1,276,2,171,1,408,2,469,1,58,2,62,1,28,2,205,1,91,2,4,1,286,}, + {1,275,2,171,1,408,2,471,1,58,2,62,1,29,2,203,1,92,2,4,1,285,}, + {1,274,2,172,1,407,2,474,1,57,2,62,1,30,2,202,1,92,2,4,1,284,}, + {1,273,2,173,1,406,2,479,1,55,2,61,1,31,2,201,1,92,2,4,1,283,}, + {1,272,2,174,1,405,2,482,1,54,2,62,1,30,2,201,1,91,2,5,1,282,}, + {1,271,2,174,1,405,2,484,1,61,2,56,1,29,2,201,1,91,2,5,1,281,}, + {1,270,2,174,1,405,2,487,1,61,2,55,1,29,2,201,1,91,2,4,1,281,}, + {1,270,2,173,1,405,2,489,1,62,2,55,1,28,2,200,1,92,2,4,1,280,}, + {1,269,2,173,1,406,2,491,1,62,2,54,1,28,2,194,1,1,2,4,1,94,2,1,1,281,}, + {1,268,2,173,1,407,2,493,1,62,2,53,1,28,2,193,1,3,2,2,1,376,}, + {1,267,2,173,1,407,2,495,1,62,2,53,1,29,2,191,1,381,}, + {1,266,2,173,1,408,2,496,1,62,2,53,1,30,2,190,1,380,}, + {1,265,2,3,1,1,2,169,1,408,2,498,1,62,2,53,1,31,2,188,1,380,}, + {1,264,2,3,1,3,2,166,1,410,2,499,1,63,2,53,1,30,2,188,1,379,}, + {1,264,2,3,1,2,2,166,1,410,2,502,1,62,2,53,1,30,2,188,1,378,}, + {1,263,2,171,1,410,2,505,1,61,2,53,1,30,2,188,1,377,}, + {1,262,2,171,1,410,2,508,1,60,2,53,1,30,2,188,1,376,}, + {1,261,2,171,1,411,2,509,1,60,2,53,1,30,2,189,1,374,}, + {1,260,2,171,1,412,2,510,1,60,2,53,1,30,2,190,1,372,}, + {1,259,2,171,1,413,2,512,1,59,2,53,1,30,2,191,1,370,}, + {1,259,2,171,1,413,2,514,1,58,2,53,1,30,2,193,1,367,}, + {1,259,2,170,1,414,2,515,1,58,2,53,1,30,2,193,1,366,}, + {1,259,2,170,1,414,2,516,1,58,2,53,1,30,2,193,1,365,}, + {1,259,2,169,1,415,2,517,1,58,2,53,1,30,2,192,1,9,2,1,1,355,}, + {1,259,2,168,1,416,2,519,1,57,2,53,1,30,2,192,1,8,2,2,1,354,}, + {1,258,2,163,1,422,2,521,1,56,2,54,1,29,2,191,1,8,2,4,1,352,}, + {1,258,2,161,1,424,2,523,1,56,2,53,1,28,2,192,1,8,2,4,1,351,}, + {1,257,2,160,1,426,2,526,1,43,2,3,1,9,2,52,1,28,2,192,1,8,2,4,1,350,}, + {1,257,2,159,1,431,2,524,1,41,2,5,1,9,2,51,1,27,2,193,1,8,2,4,1,349,}, + {1,256,2,159,1,435,2,527,1,36,2,6,1,10,2,49,1,27,2,193,1,8,2,4,1,348,}, + {1,255,2,159,1,438,2,527,1,35,2,7,1,11,2,47,1,27,2,192,1,9,2,4,1,347,}, + {1,254,2,159,1,441,2,528,1,33,2,8,1,11,2,45,1,28,2,192,1,9,2,4,1,346,}, + {1,254,2,158,1,444,2,527,1,33,2,8,1,12,2,44,1,28,2,192,1,9,2,4,1,345,}, + {1,253,2,157,1,447,2,528,1,34,2,5,1,14,2,43,1,28,2,192,1,9,2,4,1,344,}, + {1,252,2,157,1,448,2,529,1,54,2,42,1,27,2,193,1,8,2,5,1,343,}, + {1,251,2,157,1,450,2,530,1,54,2,41,1,27,2,193,1,8,2,5,1,342,}, + {1,250,2,157,1,450,2,532,1,55,2,40,1,26,2,194,1,7,2,6,1,341,}, + {1,249,2,157,1,451,2,533,1,55,2,40,1,26,2,194,1,7,2,6,1,340,}, + {1,248,2,156,1,453,2,534,1,55,2,40,1,25,2,195,1,6,2,7,1,77,2,2,1,260,}, + {1,247,2,156,1,454,2,535,1,54,2,41,1,25,2,195,1,6,2,6,1,78,2,2,1,259,}, + {1,246,2,156,1,455,2,537,1,53,2,41,1,25,2,196,1,5,2,6,1,78,2,2,1,258,}, + {1,245,2,156,1,456,2,538,1,52,2,42,1,25,2,196,1,6,2,4,1,79,2,1,1,258,}, + {1,244,2,157,1,456,2,539,1,52,2,43,1,24,2,196,1,7,2,2,1,338,}, + {1,244,2,156,1,457,2,540,1,51,2,44,1,23,2,197,1,346,}, + {1,243,2,157,1,457,2,542,1,49,2,45,1,23,2,197,1,345,}, + {1,243,2,156,1,457,2,545,1,46,2,48,1,21,2,198,1,344,}, + {1,242,2,157,1,457,2,547,1,44,2,50,1,20,2,197,1,344,}, + {1,242,2,156,1,458,2,548,1,42,2,52,1,20,2,197,1,343,}, + {1,240,2,157,1,459,2,549,1,40,2,54,1,20,2,197,1,342,}, + {1,239,2,157,1,459,2,552,1,37,2,56,1,20,2,198,1,340,}, + {1,238,2,157,1,460,2,554,1,35,2,57,1,20,2,198,1,339,}, + {1,237,2,157,1,460,2,557,1,31,2,60,1,20,2,199,1,337,}, + {1,236,2,157,1,461,2,559,1,27,2,63,1,20,2,200,1,335,}, + {1,235,2,156,1,462,2,563,1,22,2,66,1,19,2,201,1,334,}, + {1,235,2,154,1,464,2,565,1,9,2,77,1,20,2,201,1,333,}, + {1,235,2,80,1,2,2,70,1,465,2,568,1,2,2,84,1,18,2,202,1,332,}, + {1,234,2,79,1,4,2,68,1,466,2,656,1,18,2,202,1,22,2,2,1,307,}, + {1,234,2,74,1,9,2,67,1,466,2,659,1,16,2,203,1,21,2,3,1,306,}, + {1,234,2,73,1,9,2,5,1,2,2,60,1,468,2,660,1,15,2,203,1,20,2,4,1,305,}, + {1,234,2,74,1,7,2,4,1,6,2,56,1,470,2,661,1,14,2,203,1,21,2,4,1,304,}, + {1,233,2,77,1,3,2,4,1,9,2,54,1,472,2,662,1,13,2,203,1,21,2,4,1,303,}, + {1,233,2,83,1,10,2,53,1,473,2,664,1,11,2,204,1,21,2,4,1,302,}, + {1,232,2,77,1,1,2,6,1,10,2,52,1,475,2,665,1,8,2,207,1,20,2,4,1,301,}, + {1,232,2,75,1,4,2,4,1,10,2,51,1,477,2,667,1,5,2,210,1,19,2,5,1,299,}, + {1,230,2,75,1,5,2,5,1,10,2,50,1,479,2,668,1,1,2,213,1,19,2,6,1,297,}, + {1,229,2,75,1,6,2,4,1,10,2,49,1,481,2,883,1,18,2,9,1,294,}, + {1,228,2,76,1,4,2,6,1,10,2,47,1,483,2,883,1,19,2,9,1,293,}, + {1,227,2,76,1,4,2,6,1,10,2,46,1,486,2,882,1,19,2,10,1,292,}, + {1,226,2,77,1,3,2,7,1,9,2,45,1,489,2,882,1,19,2,11,1,290,}, + {1,225,2,78,1,1,2,9,1,8,2,44,1,491,2,882,1,19,2,12,1,289,}, + {1,225,2,88,1,7,2,44,1,493,2,882,1,18,2,13,1,288,}, + {1,224,2,88,1,7,2,44,1,495,2,544,1,5,2,332,1,18,2,14,1,54,2,1,1,232,}, + {1,223,2,89,1,6,2,43,1,500,2,540,1,8,2,331,1,18,2,14,1,53,2,2,1,231,}, + {1,222,2,89,1,6,2,42,1,503,2,22,1,1,2,515,1,11,2,331,1,17,2,14,1,53,2,2,1,230,}, + {1,221,2,90,1,5,2,41,1,506,2,11,1,13,2,513,1,13,2,334,1,13,2,14,1,52,2,3,1,229,}, + {1,220,2,75,1,2,2,13,1,5,2,40,1,511,2,6,1,17,2,510,1,15,2,334,1,13,2,14,1,52,2,3,1,228,}, + {1,219,2,74,1,5,2,12,1,4,2,39,1,515,2,3,1,20,2,508,1,15,2,334,1,14,2,14,1,51,2,4,1,227,}, + {1,219,2,72,1,6,2,12,1,4,2,39,1,540,2,160,1,9,2,339,1,15,2,333,1,14,2,15,1,51,2,4,1,226,}, + {1,218,2,72,1,7,2,12,1,3,2,39,1,544,2,149,1,25,2,331,1,15,2,333,1,15,2,14,1,50,2,6,1,225,}, + {1,218,2,72,1,6,2,12,1,4,2,38,1,546,2,146,1,29,2,330,1,15,2,333,1,14,2,16,1,48,2,6,1,225,}, + {1,217,2,73,1,4,2,13,1,4,2,36,1,549,2,137,1,39,2,329,1,15,2,333,1,15,2,18,1,45,2,7,1,224,}, + {1,216,2,75,1,1,2,15,1,4,2,34,1,551,2,135,1,42,2,328,1,16,2,333,1,14,2,19,1,44,2,7,1,224,}, + {1,215,2,91,1,4,2,33,1,552,2,133,1,45,2,328,1,16,2,333,1,15,2,19,1,43,2,8,1,223,}, + {1,215,2,90,1,4,2,32,1,553,2,132,1,48,2,328,1,15,2,334,1,14,2,20,1,43,2,8,1,222,}, + {1,214,2,90,1,4,2,31,1,556,2,15,1,1,2,113,1,51,2,327,1,15,2,334,1,15,2,20,1,42,2,9,1,221,}, + {1,213,2,91,1,4,2,30,1,558,2,10,1,10,2,72,1,8,2,25,1,55,2,326,1,16,2,334,1,14,2,21,1,42,2,9,1,220,}, + {1,213,2,90,1,5,2,25,1,589,2,61,1,20,2,8,1,67,2,324,1,16,2,335,1,13,2,22,1,41,2,10,1,219,}, + {1,212,2,75,1,2,2,13,1,6,2,23,1,596,2,50,1,103,2,322,1,17,2,335,1,12,2,22,1,42,2,9,1,219,}, + {1,212,2,74,1,3,2,12,1,7,2,21,1,602,2,42,1,108,2,322,1,16,2,336,1,12,2,22,1,42,2,9,1,218,}, + {1,211,2,75,1,3,2,11,1,8,2,20,1,605,2,38,1,111,2,321,1,17,2,336,1,12,2,22,1,42,2,9,1,217,}, + {1,211,2,74,1,3,2,11,1,9,2,19,1,614,2,28,1,114,2,320,1,17,2,337,1,12,2,22,1,42,2,9,1,216,}, + {1,210,2,74,1,4,2,10,1,10,2,17,1,618,2,22,1,119,2,319,1,17,2,338,1,12,2,22,1,42,2,9,1,215,}, + {1,210,2,73,1,5,2,9,1,11,2,15,1,622,2,18,1,125,2,315,1,17,2,338,1,12,2,23,1,42,2,9,1,214,}, + {1,209,2,73,1,6,2,8,1,12,2,14,1,784,2,298,1,16,2,340,1,11,2,23,1,44,2,6,1,214,}, + {1,208,2,73,1,7,2,7,1,13,2,13,1,787,2,296,1,17,2,340,1,11,2,23,1,45,2,5,1,213,}, + {1,207,2,73,1,8,2,6,1,14,2,12,1,790,2,294,1,17,2,341,1,10,2,25,1,43,2,5,1,213,}, + {1,206,2,74,1,8,2,5,1,15,2,4,1,1,2,6,1,791,2,294,1,17,2,342,1,10,2,26,1,41,2,6,1,212,}, + {1,206,2,73,1,9,2,5,1,21,2,4,1,792,2,294,1,18,2,342,1,9,2,28,1,39,2,7,1,211,}, + {1,205,2,73,1,10,2,4,1,817,2,295,1,18,2,343,1,9,2,29,1,37,2,8,1,210,}, + {1,205,2,72,1,11,2,3,1,818,2,3,1,2,2,290,1,19,2,342,1,9,2,30,1,36,2,9,1,209,}, + {1,204,2,73,1,11,2,2,1,826,2,288,1,19,2,343,1,9,2,30,1,35,2,9,1,209,}, + {1,203,2,73,1,842,2,286,1,19,2,343,1,10,2,30,1,34,2,8,1,210,}, + {1,203,2,72,1,843,2,286,1,19,2,344,1,10,2,30,1,34,2,6,1,211,}, + {1,202,2,72,1,845,2,285,1,20,2,343,1,10,2,11,1,1,2,19,1,34,2,4,1,212,}, + {1,202,2,58,1,3,2,4,1,3,2,3,1,846,2,285,1,20,2,344,1,10,2,9,1,4,2,18,1,34,2,4,1,211,}, + {1,201,2,57,1,6,2,2,1,853,2,286,1,19,2,345,1,10,2,8,1,6,2,17,1,34,2,6,1,208,}, + {1,201,2,56,1,862,2,286,1,19,2,346,1,10,2,7,1,7,2,16,1,34,2,7,1,207,}, + {1,200,2,57,1,861,2,288,1,18,2,348,1,8,2,7,1,8,2,16,1,34,2,6,1,207,}, + {1,199,2,57,1,862,2,288,1,18,2,349,1,8,2,6,1,9,2,15,1,35,2,6,1,206,}, + {1,199,2,57,1,861,2,290,1,17,2,350,1,7,2,7,1,9,2,15,1,35,2,5,1,206,}, + {1,198,2,57,1,862,2,290,1,17,2,351,1,7,2,6,1,10,2,15,1,34,2,6,1,2,2,2,1,201,}, + {1,198,2,56,1,862,2,292,1,17,2,350,1,8,2,5,1,11,2,14,1,35,2,5,1,2,2,3,1,200,}, + {1,197,2,55,1,864,2,293,1,16,2,351,1,8,2,5,1,11,2,14,1,35,2,4,1,2,2,3,1,200,}, + {1,196,2,53,1,867,2,293,1,17,2,350,1,8,2,5,1,13,2,13,1,35,2,3,1,3,2,3,1,199,}, + {1,196,2,51,1,868,2,295,1,17,2,350,1,8,2,5,1,13,2,13,1,41,2,2,1,199,}, + {1,195,2,51,1,869,2,295,1,17,2,350,1,8,2,5,1,14,2,13,1,40,2,3,1,198,}, + {1,195,2,50,1,869,2,296,1,18,2,160,1,4,2,6,1,1,2,179,1,8,2,5,1,14,2,13,1,40,2,2,1,198,}, + {1,194,2,50,1,870,2,296,1,18,2,160,1,12,2,178,1,8,2,5,1,15,2,13,1,239,}, + {1,194,2,49,1,870,2,297,1,19,2,158,1,13,2,179,1,8,2,5,1,15,2,12,1,239,}, + {1,193,2,49,1,871,2,297,1,19,2,158,1,14,2,179,1,7,2,5,1,16,2,12,1,238,}, + {1,192,2,49,1,871,2,298,1,20,2,158,1,13,2,180,1,7,2,5,1,16,2,12,1,237,}, + {1,192,2,47,1,872,2,299,1,20,2,158,1,14,2,180,1,7,2,4,1,16,2,12,1,237,}, + {1,191,2,48,1,871,2,300,1,21,2,157,1,15,2,3,1,1,2,175,1,8,2,3,1,17,2,12,1,236,}, + {1,191,2,47,1,871,2,301,1,21,2,157,1,21,2,174,1,7,2,4,1,17,2,12,1,235,}, + {1,190,2,47,1,871,2,302,1,21,2,157,1,22,2,174,1,7,2,3,1,18,2,12,1,234,}, + {1,190,2,46,1,872,2,301,1,22,2,158,1,22,2,173,1,7,2,4,1,18,2,12,1,233,}, + {1,189,2,46,1,873,2,301,1,21,2,159,1,23,2,173,1,7,2,3,1,19,2,12,1,27,2,3,1,202,}, + {1,188,2,46,1,874,2,300,1,22,2,160,1,22,2,173,1,8,2,3,1,19,2,12,1,27,2,4,1,200,}, + {1,187,2,47,1,874,2,300,1,21,2,161,1,23,2,173,1,8,2,2,1,20,2,11,1,28,2,6,1,197,}, + {1,187,2,46,1,875,2,299,1,22,2,161,1,23,2,173,1,31,2,11,1,29,2,5,1,196,}, + {1,186,2,46,1,877,2,298,1,21,2,163,1,23,2,173,1,31,2,11,1,30,2,4,1,195,}, + {1,185,2,45,1,879,2,297,1,22,2,163,1,23,2,173,1,32,2,10,1,31,2,3,1,195,}, + {1,185,2,43,1,882,2,296,1,21,2,164,1,24,2,173,1,32,2,10,1,31,2,3,1,194,}, + {1,184,2,43,1,883,2,297,1,20,2,165,1,23,2,173,1,33,2,10,1,31,2,2,1,194,}, + {1,184,2,42,1,884,2,297,1,20,2,165,1,24,2,173,1,33,2,9,1,31,2,3,1,193,}, + {1,184,2,42,1,885,2,297,1,19,2,165,1,24,2,173,1,34,2,9,1,31,2,3,1,192,}, + {1,184,2,41,1,888,2,295,1,19,2,165,1,25,2,173,1,34,2,8,1,31,2,4,1,191,}, + {1,183,2,42,1,889,2,295,1,18,2,166,1,24,2,173,1,35,2,8,1,31,2,4,1,190,}, + {1,183,2,41,1,891,2,295,1,18,2,165,1,25,2,173,1,35,2,8,1,30,2,5,1,189,}, + {1,182,2,40,1,895,2,294,1,17,2,165,1,25,2,7,1,1,2,166,1,34,2,9,1,30,2,5,1,188,}, + {1,182,2,39,1,897,2,293,1,17,2,165,1,25,2,6,1,4,2,165,1,34,2,9,1,30,2,4,1,188,}, + {1,181,2,40,1,898,2,293,1,16,2,166,1,24,2,7,1,5,2,165,1,33,2,9,1,29,2,5,1,187,}, + {1,181,2,39,1,899,2,293,1,16,2,166,1,24,2,7,1,6,2,166,1,32,2,9,1,29,2,4,1,187,}, + {1,180,2,40,1,900,2,292,1,16,2,167,1,24,2,7,1,7,2,165,1,32,2,9,1,28,2,5,1,186,}, + {1,180,2,39,1,902,2,291,1,16,2,167,1,24,2,8,1,7,2,164,1,32,2,9,1,29,2,4,1,186,}, + {1,179,2,40,1,903,2,290,1,17,2,167,1,24,2,8,1,7,2,163,1,33,2,9,1,29,2,4,1,185,}, + {1,178,2,40,1,905,2,289,1,18,2,150,1,12,2,4,1,24,2,9,1,8,2,161,1,33,2,10,1,28,2,5,1,184,}, + {1,178,2,40,1,906,2,288,1,19,2,148,1,15,2,1,1,25,2,10,1,9,2,160,1,33,2,9,1,29,2,5,1,183,}, + {1,177,2,40,1,909,2,286,1,20,2,146,1,43,2,10,1,9,2,159,1,34,2,9,1,28,2,6,1,182,}, + {1,176,2,41,1,909,2,286,1,20,2,146,1,43,2,11,1,9,2,159,1,34,2,8,1,29,2,5,1,182,}, + {1,176,2,40,1,911,2,286,1,20,2,145,1,42,2,13,1,9,2,158,1,34,2,9,1,28,2,6,1,181,}, + {1,175,2,40,1,912,2,286,1,20,2,145,1,42,2,14,1,8,2,159,1,34,2,8,1,29,2,5,1,181,}, + {1,175,2,39,1,914,2,285,1,21,2,145,1,41,2,15,1,8,2,158,1,34,2,9,1,28,2,5,1,181,}, + {1,174,2,39,1,192,2,3,1,720,2,285,1,21,2,145,1,41,2,16,1,7,2,159,1,34,2,8,1,29,2,4,1,181,}, + {1,174,2,38,1,181,2,15,1,721,2,284,1,22,2,145,1,41,2,17,1,5,2,159,1,35,2,8,1,29,2,3,1,181,}, + {1,173,2,38,1,181,2,16,1,721,2,283,1,23,2,145,1,41,2,19,1,1,2,162,1,4,2,2,1,29,2,8,1,29,2,3,1,180,}, + {1,173,2,38,1,180,2,17,1,721,2,283,1,24,2,145,1,41,2,182,1,3,2,2,1,30,2,8,1,29,2,2,1,180,}, + {1,172,2,38,1,180,2,18,1,721,2,282,1,25,2,145,1,41,2,182,1,3,2,3,1,29,2,9,1,28,2,3,1,179,}, + {1,171,2,39,1,179,2,19,1,721,2,282,1,25,2,146,1,41,2,182,1,3,2,3,1,29,2,9,1,28,2,2,1,179,}, + {1,171,2,38,1,179,2,20,1,721,2,281,1,26,2,147,1,40,2,183,1,2,2,4,1,29,2,9,1,27,2,3,1,178,}, + {1,170,2,39,1,178,2,21,1,721,2,281,1,25,2,149,1,40,2,182,1,3,2,3,1,30,2,8,1,28,2,2,1,178,}, + {1,168,2,40,1,178,2,21,1,723,2,281,1,24,2,149,1,40,2,183,1,1,2,5,1,29,2,8,1,208,}, + {1,167,2,41,1,177,2,21,1,724,2,281,1,24,2,150,1,40,2,188,1,30,2,8,1,207,}, + {1,166,2,41,1,177,2,21,1,726,2,281,1,23,2,150,1,41,2,187,1,31,2,7,1,207,}, + {1,165,2,41,1,177,2,21,1,727,2,283,1,21,2,150,1,41,2,188,1,31,2,7,1,206,}, + {1,164,2,41,1,177,2,21,1,729,2,285,1,18,2,151,1,41,2,187,1,31,2,7,1,206,}, + {1,164,2,40,1,177,2,21,1,730,2,285,1,18,2,151,1,41,2,188,1,31,2,7,1,205,}, + {1,163,2,41,1,148,2,4,1,24,2,21,1,731,2,284,1,19,2,152,1,40,2,182,1,2,2,4,1,31,2,7,1,205,}, + {1,162,2,41,1,149,2,6,1,22,2,20,1,733,2,282,1,20,2,152,1,39,2,184,1,1,2,5,1,31,2,7,1,204,}, + {1,162,2,41,1,149,2,9,1,18,2,18,1,736,2,282,1,19,2,154,1,36,2,193,1,30,2,8,1,203,}, + {1,161,2,7,1,1,2,33,1,149,2,10,1,5,2,2,1,11,2,16,1,738,2,282,1,19,2,154,1,35,2,195,1,30,2,8,1,202,}, + {1,161,2,5,1,4,2,32,1,149,2,11,1,3,2,3,1,10,2,16,1,739,2,284,1,17,2,155,1,34,2,196,1,30,2,8,1,201,}, + {1,160,2,4,1,6,2,31,1,149,2,13,1,1,2,4,1,10,2,16,1,739,2,286,1,15,2,155,1,34,2,196,1,31,2,8,1,200,}, + {1,160,2,3,1,6,2,31,1,149,2,19,1,9,2,16,1,740,2,287,1,14,2,156,1,32,2,197,1,32,2,8,1,199,}, + {1,159,2,4,1,6,2,31,1,148,2,20,1,8,2,17,1,739,2,289,1,13,2,156,1,32,2,3,1,3,2,191,1,32,2,8,1,199,}, + {1,159,2,3,1,6,2,31,1,148,2,21,1,7,2,17,1,740,2,290,1,13,2,156,1,30,2,3,1,5,2,190,1,33,2,8,1,198,}, + {1,158,2,4,1,6,2,31,1,147,2,23,1,5,2,18,1,740,2,291,1,13,2,98,1,1,2,57,1,28,2,4,1,6,2,189,1,23,2,3,1,7,2,8,1,198,}, + {1,158,2,3,1,6,2,31,1,148,2,23,1,3,2,19,1,741,2,292,1,14,2,95,1,7,2,52,1,27,2,4,1,7,2,189,1,23,2,4,1,7,2,8,1,197,}, + {1,157,2,4,1,5,2,32,1,147,2,46,1,741,2,292,1,14,2,95,1,9,2,51,1,26,2,4,1,8,2,188,1,23,2,5,1,6,2,8,1,197,}, + {1,157,2,3,1,6,2,31,1,148,2,45,1,742,2,293,1,13,2,94,1,12,2,49,1,26,2,5,1,7,2,189,1,22,2,6,1,6,2,8,1,196,}, + {1,156,2,4,1,5,2,32,1,146,2,47,1,742,2,295,1,1,2,1,1,9,2,94,1,12,2,51,1,24,2,5,1,8,2,188,1,23,2,5,1,6,2,8,1,28,2,2,1,166,}, + {1,156,2,3,1,6,2,31,1,145,2,49,1,743,2,297,1,7,2,95,1,13,2,51,1,23,2,6,1,7,2,189,1,23,2,5,1,5,2,9,1,27,2,2,1,166,}, + {1,155,2,4,1,5,2,32,1,143,2,51,1,743,2,296,1,8,2,96,1,12,2,52,1,21,2,7,1,7,2,189,1,24,2,4,1,5,2,9,1,27,2,3,1,165,}, + {1,155,2,4,1,5,2,31,1,142,2,53,1,744,2,294,1,8,2,97,1,13,2,52,1,20,2,8,1,7,2,189,1,24,2,4,1,5,2,8,1,28,2,2,1,165,}, + {1,154,2,4,1,5,2,32,1,141,2,53,1,745,2,293,1,8,2,99,1,13,2,52,1,18,2,9,1,7,2,189,1,24,2,5,1,4,2,9,1,27,2,3,1,164,}, + {1,154,2,4,1,5,2,31,1,141,2,54,1,745,2,293,1,7,2,100,1,14,2,51,1,17,2,11,1,6,2,190,1,24,2,5,1,4,2,8,1,28,2,3,1,163,}, + {1,153,2,5,1,4,2,31,1,141,2,55,1,746,2,292,1,6,2,101,1,16,2,50,1,16,2,12,1,5,2,191,1,24,2,4,1,6,2,7,1,27,2,3,1,163,}, + {1,153,2,4,1,5,2,31,1,140,2,51,1,751,2,292,1,5,2,103,1,7,2,3,1,5,2,50,1,17,2,12,1,5,2,190,1,25,2,4,1,7,2,5,1,28,2,3,1,162,}, + {1,152,2,5,1,4,2,31,1,140,2,50,1,753,2,293,1,4,2,103,1,6,2,4,1,6,2,50,1,17,2,11,1,5,2,191,1,25,2,3,1,8,2,5,1,27,2,3,1,162,}, + {1,151,2,5,1,5,2,31,1,140,2,48,1,755,2,293,1,4,2,103,1,6,2,4,1,6,2,50,1,16,2,13,1,5,2,190,1,26,2,3,1,8,2,4,1,28,2,2,1,162,}, + {1,151,2,5,1,4,2,31,1,140,2,49,1,754,2,295,1,4,2,102,1,17,2,50,1,14,2,14,1,5,2,191,1,25,2,4,1,7,2,5,1,27,2,3,1,161,}, + {1,150,2,5,1,4,2,32,1,139,2,50,1,754,2,296,1,2,2,103,1,17,2,51,1,12,2,16,1,4,2,191,1,26,2,3,1,8,2,4,1,28,2,2,1,161,}, + {1,150,2,5,1,4,2,31,1,139,2,51,1,753,2,402,1,18,2,51,1,11,2,18,1,1,2,193,1,25,2,4,1,7,2,5,1,27,2,3,1,160,}, + {1,149,2,5,1,4,2,32,1,138,2,52,1,753,2,402,1,18,2,52,1,10,2,212,1,26,2,3,1,8,2,4,1,28,2,2,1,160,}, + {1,148,2,6,1,4,2,31,1,139,2,25,1,1,2,25,1,753,2,403,1,18,2,53,1,9,2,213,1,26,2,3,1,7,2,5,1,27,2,3,1,159,}, + {1,147,2,6,1,5,2,31,1,138,2,24,1,4,2,23,1,753,2,166,1,1,2,238,1,17,2,55,1,8,2,212,1,26,2,5,1,6,2,5,1,27,2,2,1,159,}, + {1,147,2,6,1,5,2,30,1,139,2,24,1,3,2,22,1,754,2,165,1,5,2,236,1,9,2,2,1,6,2,57,1,5,2,214,1,26,2,6,1,4,2,5,1,27,2,3,1,158,}, + {1,146,2,7,1,5,2,30,1,138,2,24,1,4,2,22,1,752,2,166,1,8,2,234,1,9,2,3,1,5,2,59,1,2,2,215,1,27,2,15,1,27,2,2,1,158,}, + {1,146,2,6,1,5,2,30,1,139,2,24,1,3,2,22,1,752,2,167,1,10,2,233,1,7,2,4,1,5,2,277,1,27,2,14,1,27,2,3,1,157,}, + {1,145,2,7,1,5,2,30,1,138,2,24,1,3,2,22,1,752,2,167,1,13,2,231,1,7,2,4,1,5,2,277,1,28,2,14,1,27,2,3,1,156,}, + {1,145,2,7,1,4,2,30,1,138,2,25,1,3,2,21,1,752,2,168,1,14,2,231,1,6,2,4,1,6,2,277,1,28,2,7,1,2,2,4,1,28,2,3,1,155,}, + {1,144,2,7,1,5,2,30,1,60,2,2,1,75,2,26,1,4,2,19,1,752,2,169,1,14,2,231,1,6,2,4,1,6,2,278,1,28,2,6,1,2,2,5,1,28,2,2,1,155,}, + {1,144,2,7,1,4,2,30,1,60,2,3,1,74,2,26,1,6,2,17,1,752,2,171,1,14,2,231,1,5,2,4,1,5,2,279,1,29,2,5,1,3,2,4,1,28,2,3,1,154,}, + {1,143,2,7,1,5,2,30,1,59,2,4,1,73,2,27,1,8,2,15,1,751,2,173,1,13,2,231,1,5,2,4,1,5,2,280,1,29,2,5,1,2,2,5,1,28,2,3,1,153,}, + {1,143,2,7,1,4,2,30,1,59,2,5,1,72,2,27,1,9,2,14,1,751,2,176,1,2,2,5,1,5,2,118,1,4,2,108,1,5,2,4,1,5,2,280,1,31,2,3,1,3,2,4,1,28,2,3,1,153,}, + {1,142,2,8,1,4,2,30,1,59,2,4,1,72,2,28,1,9,2,14,1,750,2,186,1,2,2,118,1,7,2,106,1,5,2,4,1,5,2,281,1,31,2,3,1,2,2,5,1,28,2,2,1,153,}, + {1,142,2,7,1,4,2,31,1,58,2,5,1,71,2,28,1,9,2,14,1,750,2,307,1,8,2,105,1,6,2,3,1,5,2,281,1,31,2,3,1,3,2,4,1,28,2,3,1,152,}, + {1,141,2,8,1,3,2,31,1,58,2,5,1,72,2,28,1,9,2,14,1,750,2,306,1,10,2,104,1,7,2,3,1,4,2,282,1,31,2,3,1,2,2,5,1,28,2,2,1,152,}, + {1,141,2,7,1,4,2,31,1,57,2,6,1,71,2,29,1,9,2,15,1,748,2,308,1,10,2,103,1,8,2,2,1,4,2,282,1,31,2,3,1,3,2,4,1,28,2,2,1,152,}, + {1,140,2,8,1,3,2,31,1,58,2,5,1,72,2,29,1,9,2,15,1,747,2,309,1,11,2,103,1,13,2,283,1,31,2,3,1,3,2,4,1,181,}, + {1,140,2,7,1,4,2,31,1,57,2,6,1,70,2,30,1,10,2,12,1,750,2,309,1,12,2,102,1,13,2,283,1,31,2,3,1,4,2,3,1,181,}, + {1,139,2,8,1,3,2,31,1,57,2,7,1,68,2,32,1,10,2,11,1,750,2,310,1,14,2,101,1,12,2,284,1,30,2,4,1,3,2,4,1,180,}, + {1,139,2,9,1,1,2,31,1,58,2,7,1,67,2,32,1,12,2,10,1,750,2,310,1,15,2,101,1,12,2,283,1,30,2,4,1,4,2,3,1,180,}, + {1,138,2,41,1,58,2,8,1,66,2,33,1,12,2,9,1,750,2,311,1,17,2,100,1,13,2,281,1,31,2,3,1,4,2,4,1,179,}, + {1,138,2,41,1,58,2,8,1,65,2,33,1,13,2,9,1,750,2,312,1,18,2,98,1,13,2,282,1,30,2,3,1,5,2,3,1,179,}, + {1,137,2,41,1,58,2,9,1,65,2,33,1,13,2,8,1,750,2,313,1,20,2,96,1,13,2,282,1,30,2,3,1,5,2,4,1,178,}, + {1,137,2,41,1,58,2,9,1,64,2,34,1,13,2,8,1,749,2,315,1,21,2,94,1,12,2,284,1,30,2,2,1,6,2,3,1,178,}, + {1,136,2,41,1,58,2,10,1,64,2,34,1,13,2,8,1,748,2,316,1,23,2,92,1,12,2,284,1,38,2,4,1,177,}, + {1,136,2,41,1,58,2,10,1,63,2,35,1,12,2,8,1,749,2,317,1,23,2,88,1,14,2,286,1,38,2,3,1,177,}, + {1,136,2,40,1,58,2,10,1,63,2,36,1,12,2,7,1,750,2,318,1,24,2,84,1,15,2,4,1,1,2,282,1,38,2,4,1,176,}, + {1,135,2,41,1,57,2,11,1,62,2,36,1,12,2,7,1,4,2,2,1,745,2,320,1,23,2,82,1,16,2,3,1,3,2,101,1,1,2,179,1,38,2,5,1,175,}, + {1,135,2,18,1,1,2,21,1,57,2,11,1,62,2,37,1,12,2,7,1,4,2,2,1,745,2,321,1,23,2,81,1,16,2,2,1,4,2,100,1,3,2,179,1,38,2,4,1,175,}, + {1,134,2,18,1,3,2,20,1,57,2,11,1,60,2,38,1,12,2,7,1,5,2,2,1,745,2,323,1,22,2,81,1,15,2,2,1,5,2,100,1,1,2,180,1,38,2,5,1,174,}, + {1,134,2,18,1,3,2,20,1,56,2,12,1,58,2,40,1,11,2,8,1,4,2,3,1,745,2,324,1,22,2,80,1,22,2,282,1,38,2,4,1,174,}, + {1,133,2,18,1,3,2,21,1,56,2,11,1,55,2,43,1,12,2,7,1,4,2,4,1,745,2,325,1,22,2,80,1,21,2,282,1,38,2,5,1,173,}, + {1,133,2,18,1,3,2,21,1,55,2,12,1,54,2,44,1,12,2,7,1,4,2,3,1,746,2,326,1,22,2,79,1,21,2,283,1,38,2,4,1,173,}, + {1,132,2,19,1,3,2,20,1,56,2,11,1,53,2,45,1,14,2,5,1,754,2,327,1,23,2,78,1,21,2,282,1,38,2,5,1,172,}, + {1,132,2,11,1,1,2,6,1,3,2,21,1,55,2,12,1,51,2,47,1,16,2,3,1,754,2,328,1,23,2,78,1,20,2,282,1,39,2,4,1,172,}, + {1,131,2,11,1,3,2,5,1,3,2,21,1,55,2,11,1,51,2,48,1,17,2,3,1,753,2,329,1,24,2,77,1,20,2,282,1,38,2,5,1,171,}, + {1,131,2,11,1,3,2,4,1,4,2,20,1,55,2,12,1,50,2,49,1,18,2,3,1,752,2,330,1,25,2,76,1,19,2,282,1,39,2,5,1,170,}, + {1,131,2,10,1,3,2,4,1,5,2,20,1,55,2,12,1,49,2,50,1,19,2,3,1,750,2,332,1,25,2,76,1,19,2,281,1,40,2,4,1,170,}, + {1,130,2,10,1,4,2,4,1,5,2,19,1,55,2,13,1,48,2,51,1,20,2,3,1,749,2,333,1,25,2,76,1,18,2,282,1,40,2,4,1,169,}, + {1,130,2,10,1,3,2,4,1,5,2,20,1,55,2,13,1,47,2,51,1,22,2,2,1,749,2,335,1,24,2,76,1,17,2,282,1,40,2,4,1,169,}, + {1,129,2,10,1,4,2,4,1,5,2,19,1,55,2,14,1,46,2,51,1,774,2,4,1,1,2,332,1,23,2,75,1,18,2,281,1,41,2,4,1,168,}, + {1,129,2,10,1,3,2,4,1,5,2,20,1,54,2,15,1,44,2,52,1,410,2,8,1,357,2,2,1,4,2,332,1,23,2,75,1,18,2,281,1,40,2,4,1,168,}, + {1,129,2,9,1,4,2,4,1,5,2,20,1,53,2,16,1,43,2,52,1,409,2,12,1,361,2,333,1,24,2,74,1,17,2,281,1,28,2,1,1,12,2,4,1,167,}, + {1,128,2,10,1,3,2,4,1,6,2,19,1,53,2,17,1,42,2,53,1,407,2,15,1,361,2,333,1,25,2,73,1,17,2,281,1,26,2,3,1,11,2,4,1,167,}, + {1,128,2,9,1,3,2,5,1,5,2,19,1,53,2,17,1,41,2,54,1,22,2,5,1,379,2,18,1,360,2,334,1,26,2,72,1,16,2,281,1,26,2,4,1,11,2,4,1,166,}, + {1,128,2,9,1,3,2,4,1,6,2,19,1,53,2,16,1,41,2,55,1,21,2,7,1,376,2,21,1,360,2,334,1,27,2,70,1,17,2,281,1,25,2,5,1,10,2,4,1,166,}, + {1,127,2,10,1,3,2,4,1,5,2,19,1,53,2,17,1,40,2,55,1,21,2,9,1,373,2,24,1,359,2,335,1,28,2,69,1,16,2,281,1,25,2,5,1,11,2,4,1,165,}, + {1,127,2,9,1,3,2,5,1,5,2,19,1,52,2,17,1,40,2,56,1,17,2,14,1,370,2,27,1,358,2,336,1,28,2,68,1,17,2,281,1,25,2,5,1,10,2,4,1,165,}, + {1,127,2,9,1,3,2,5,1,4,2,19,1,52,2,18,1,39,2,57,1,15,2,17,1,363,2,34,1,357,2,337,1,28,2,68,1,17,2,280,1,25,2,5,1,4,2,2,1,5,2,4,1,164,}, + {1,126,2,10,1,2,2,6,1,4,2,19,1,51,2,18,1,39,2,58,1,13,2,19,1,357,2,40,1,358,2,338,1,27,2,67,1,18,2,279,1,25,2,6,1,3,2,2,1,5,2,4,1,164,}, + {1,126,2,17,1,4,2,19,1,51,2,19,1,38,2,59,1,12,2,20,1,351,2,46,1,357,2,340,1,27,2,68,1,16,2,279,1,25,2,6,1,3,2,3,1,5,2,4,1,163,}, + {1,125,2,18,1,4,2,19,1,51,2,18,1,38,2,60,1,11,2,18,1,352,2,48,1,74,2,2,1,281,2,341,1,27,2,69,1,15,2,278,1,25,2,7,1,3,2,2,1,5,2,4,1,163,}, + {1,125,2,17,1,5,2,18,1,51,2,19,1,7,2,2,1,28,2,61,1,11,2,17,1,351,2,50,1,74,2,2,1,281,2,342,1,27,2,69,1,15,2,278,1,24,2,7,1,3,2,3,1,5,2,4,1,162,}, + {1,124,2,18,1,4,2,19,1,51,2,18,1,7,2,3,1,27,2,61,1,12,2,17,1,349,2,52,1,357,2,343,1,28,2,68,1,14,2,278,1,24,2,8,1,3,2,2,1,5,2,5,1,161,}, + {1,124,2,18,1,4,2,18,1,51,2,18,1,8,2,3,1,26,2,62,1,12,2,17,1,348,2,53,1,358,2,227,1,6,2,110,1,28,2,68,1,14,2,278,1,23,2,8,1,3,2,3,1,5,2,5,1,160,}, + {1,124,2,18,1,3,2,19,1,50,2,18,1,8,2,4,1,26,2,61,1,13,2,17,1,347,2,54,1,359,2,218,1,16,2,109,1,28,2,69,1,13,2,277,1,23,2,9,1,3,2,2,1,5,2,5,1,160,}, + {1,123,2,18,1,4,2,19,1,50,2,17,1,9,2,4,1,25,2,62,1,13,2,16,1,347,2,55,1,359,2,216,1,33,2,95,1,28,2,69,1,13,2,277,1,23,2,8,1,3,2,2,1,5,2,6,1,159,}, + {1,123,2,18,1,3,2,19,1,50,2,17,1,9,2,4,1,25,2,64,1,12,2,15,1,347,2,56,1,360,2,213,1,41,2,90,1,28,2,70,1,11,2,277,1,23,2,8,1,11,2,5,1,159,}, + {1,122,2,18,1,4,2,9,1,2,2,8,1,50,2,16,1,10,2,4,1,23,2,66,1,12,2,13,1,348,2,57,1,360,2,211,1,45,2,89,1,27,2,72,1,10,2,277,1,23,2,7,1,11,2,6,1,158,}, + {1,122,2,12,1,1,2,5,1,4,2,9,1,2,2,7,1,50,2,16,1,10,2,5,1,21,2,69,1,11,2,12,1,347,2,59,1,361,2,209,1,53,2,83,1,27,2,73,1,9,2,276,1,24,2,6,1,5,2,2,1,4,2,7,1,157,}, + {1,121,2,12,1,3,2,3,1,4,2,10,1,1,2,8,1,50,2,15,1,9,2,11,1,15,2,71,1,10,2,13,1,346,2,60,1,361,2,208,1,57,2,81,1,27,2,74,1,8,2,275,1,24,2,6,1,5,2,2,1,5,2,6,1,157,}, + {1,121,2,12,1,2,2,3,1,5,2,19,1,50,2,14,1,9,2,12,1,14,2,71,1,11,2,12,1,346,2,61,1,362,2,207,1,61,2,79,1,25,2,76,1,7,2,274,1,25,2,6,1,4,2,3,1,4,2,7,1,156,}, + {1,120,2,13,1,2,2,2,1,5,2,19,1,51,2,13,1,9,2,13,1,13,2,72,1,6,2,3,1,1,2,13,1,344,2,63,1,361,2,208,1,64,2,78,1,24,2,76,1,7,2,274,1,24,2,6,1,5,2,2,1,5,2,6,1,156,}, + {1,120,2,12,1,2,2,2,1,6,2,19,1,51,2,13,1,8,2,14,1,12,2,72,1,7,2,9,1,2,2,6,1,343,2,64,1,361,2,208,1,66,2,77,1,24,2,77,1,7,2,272,1,25,2,5,1,5,2,2,1,5,2,6,1,156,}, + {1,119,2,12,1,11,2,19,1,50,2,13,1,8,2,14,1,12,2,73,1,6,2,8,1,5,2,5,1,341,2,66,1,360,2,209,1,68,2,76,1,24,2,4,1,3,2,70,1,7,2,272,1,24,2,6,1,12,2,6,1,155,}, + {1,118,2,13,1,10,2,20,1,50,2,13,1,7,2,16,1,1,2,3,1,7,2,72,1,7,2,7,1,7,2,4,1,340,2,67,1,360,2,209,1,70,2,76,1,31,2,69,1,6,2,272,1,25,2,5,1,12,2,6,1,155,}, + {1,117,2,13,1,11,2,19,1,50,2,13,1,7,2,21,1,7,2,72,1,6,2,8,1,6,2,5,1,338,2,68,1,361,2,208,1,73,2,75,1,32,2,68,1,6,2,272,1,24,2,6,1,12,2,6,1,154,}, + {1,117,2,13,1,10,2,20,1,50,2,12,1,7,2,22,1,7,2,71,1,5,2,10,1,6,2,5,1,336,2,70,1,361,2,208,1,76,2,73,1,33,2,66,1,6,2,272,1,24,2,6,1,12,2,6,1,154,}, + {1,116,2,13,1,11,2,19,1,50,2,13,1,7,2,22,1,7,2,71,1,4,2,12,1,3,2,6,1,335,2,72,1,361,2,207,1,79,2,72,1,34,2,63,1,7,2,273,1,23,2,7,1,12,2,6,1,153,}, + {1,116,2,13,1,11,2,19,1,50,2,12,1,7,2,22,1,8,2,71,1,4,2,21,1,334,2,73,1,361,2,207,1,83,2,68,1,35,2,61,1,6,2,275,1,24,2,6,1,12,2,6,1,153,}, + {1,116,2,13,1,10,2,19,1,50,2,12,1,7,2,22,1,8,2,72,1,4,2,20,1,314,2,2,1,18,2,74,1,361,2,206,1,89,2,62,1,37,2,60,1,4,2,277,1,24,2,7,1,12,2,6,1,152,}, + {1,116,2,13,1,10,2,19,1,49,2,12,1,8,2,15,1,1,2,5,1,9,2,71,1,5,2,20,1,314,2,2,1,17,2,74,1,362,2,205,1,92,2,59,1,39,2,60,1,1,2,279,1,9,2,3,1,13,2,6,1,12,2,6,1,152,}, + {1,115,2,13,1,10,2,20,1,48,2,13,1,7,2,14,1,17,2,71,1,5,2,20,1,332,2,75,1,362,2,204,1,95,2,56,1,41,2,59,1,1,2,279,1,8,2,5,1,13,2,5,1,6,2,2,1,5,2,6,1,151,}, + {1,115,2,13,1,10,2,19,1,48,2,13,1,8,2,13,1,17,2,71,1,5,2,21,1,330,2,76,1,363,2,202,1,101,2,9,1,9,2,33,1,43,2,53,1,9,2,276,1,6,2,8,1,13,2,4,1,6,2,3,1,4,2,6,1,151,}, + {1,114,2,13,1,11,2,19,1,47,2,14,1,7,2,13,1,18,2,72,1,3,2,21,1,329,2,78,1,363,2,201,1,146,2,6,1,45,2,52,1,10,2,275,1,6,2,9,1,13,2,4,1,5,2,4,1,4,2,5,1,151,}, + {1,114,2,13,1,11,2,19,1,47,2,13,1,7,2,14,1,17,2,97,1,327,2,80,1,363,2,200,1,149,2,3,1,47,2,51,1,11,2,275,1,5,2,10,1,13,2,3,1,6,2,4,1,3,2,6,1,150,}, + {1,113,2,14,1,10,2,19,1,47,2,14,1,7,2,13,1,18,2,96,1,320,2,87,1,364,2,200,1,200,2,50,1,11,2,275,1,5,2,10,1,14,2,2,1,7,2,4,1,3,2,5,1,150,}, + {1,113,2,14,1,10,2,19,1,47,2,13,1,7,2,14,1,18,2,96,1,318,2,89,1,364,2,199,1,202,2,49,1,11,2,276,1,4,2,11,1,22,2,5,1,1,2,6,1,150,}, + {1,113,2,13,1,10,2,19,1,47,2,13,1,8,2,13,1,19,2,95,1,317,2,91,1,364,2,199,1,202,2,49,1,11,2,276,1,4,2,12,1,22,2,12,1,149,}, + {1,113,2,13,1,10,2,19,1,39,2,3,1,5,2,12,1,8,2,14,1,19,2,95,1,315,2,93,1,364,2,198,1,204,2,48,1,11,2,277,1,3,2,12,1,22,2,12,1,149,}, + {1,112,2,14,1,9,2,19,1,39,2,4,1,4,2,12,1,9,2,13,1,21,2,94,1,314,2,94,1,364,2,198,1,205,2,48,1,11,2,277,1,1,2,14,1,22,2,11,1,149,}, + {1,112,2,13,1,10,2,19,1,38,2,4,1,5,2,12,1,8,2,14,1,22,2,64,1,4,2,25,1,312,2,96,1,365,2,197,1,206,2,47,1,11,2,292,1,24,2,10,1,148,}, + {1,111,2,14,1,10,2,19,1,37,2,5,1,4,2,12,1,9,2,13,1,4,2,2,1,17,2,62,1,7,2,23,1,312,2,97,1,365,2,197,1,207,2,47,1,11,2,292,1,25,2,8,1,148,}, + {1,111,2,13,1,11,2,18,1,37,2,5,1,5,2,12,1,8,2,14,1,3,2,3,1,18,2,59,1,10,2,22,1,311,2,98,1,365,2,197,1,209,2,45,1,11,2,292,1,28,2,5,1,148,}, + {1,110,2,14,1,11,2,18,1,36,2,6,1,4,2,12,1,9,2,20,1,18,2,58,1,10,2,22,1,311,2,99,1,365,2,197,1,211,2,44,1,11,2,276,1,2,2,14,1,29,2,4,1,147,}, + {1,110,2,14,1,10,2,18,1,36,2,6,1,5,2,12,1,8,2,21,1,18,2,58,1,8,2,24,1,309,2,101,1,365,2,197,1,213,2,42,1,11,2,275,1,4,2,13,1,30,2,3,1,147,}, + {1,110,2,14,1,10,2,17,1,37,2,6,1,4,2,13,1,7,2,21,1,19,2,57,1,8,2,24,1,308,2,103,1,365,2,197,1,176,2,2,1,36,2,42,1,11,2,274,1,4,2,14,1,30,2,2,1,147,}, + {1,110,2,13,1,10,2,18,1,36,2,7,1,4,2,14,1,5,2,21,1,19,2,58,1,7,2,25,1,306,2,104,1,366,2,197,1,176,2,3,1,36,2,41,1,11,2,275,1,4,2,14,1,29,2,2,1,147,}, + {1,109,2,14,1,10,2,17,1,36,2,7,1,4,2,15,1,3,2,23,1,19,2,58,1,5,2,27,1,281,2,9,1,2,2,10,1,2,2,106,1,366,2,197,1,177,2,3,1,36,2,41,1,11,2,274,1,4,2,14,1,178,}, + {1,109,2,14,1,10,2,17,1,36,2,7,1,4,2,40,1,19,2,60,1,2,2,29,1,279,2,130,1,367,2,197,1,178,2,3,1,36,2,40,1,11,2,274,1,5,2,14,1,177,}, + {1,108,2,15,1,10,2,16,1,37,2,7,1,3,2,41,1,19,2,54,1,3,2,34,1,277,2,132,1,368,2,196,1,179,2,2,1,36,2,41,1,11,2,273,1,5,2,14,1,6,2,3,1,168,}, + {1,108,2,14,1,10,2,17,1,37,2,7,1,3,2,40,1,20,2,54,1,3,2,33,1,276,2,134,1,368,2,195,1,219,2,40,1,11,2,274,1,4,2,15,1,5,2,5,1,166,}, + {1,107,2,15,1,10,2,16,1,38,2,50,1,20,2,53,1,5,2,32,1,272,2,138,1,368,2,195,1,219,2,41,1,11,2,273,1,5,2,14,1,5,2,6,1,165,}, + {1,107,2,15,1,10,2,16,1,37,2,43,1,2,2,5,1,21,2,53,1,5,2,31,1,271,2,141,1,367,2,194,1,221,2,40,1,11,2,274,1,4,2,15,1,4,2,7,1,164,}, + {1,106,2,16,1,9,2,16,1,38,2,50,1,21,2,52,1,6,2,11,1,4,2,16,1,266,2,146,1,368,2,192,1,223,2,39,1,12,2,273,1,4,2,15,1,5,2,7,1,163,}, + {1,106,2,16,1,9,2,15,1,38,2,50,1,22,2,52,1,5,2,11,1,5,2,15,1,266,2,148,1,367,2,191,1,225,2,38,1,12,2,274,1,3,2,16,1,4,2,8,1,7,2,2,1,153,}, + {1,106,2,15,1,10,2,14,1,39,2,50,1,21,2,52,1,6,2,11,1,5,2,15,1,265,2,149,1,367,2,190,1,226,2,38,1,13,2,273,1,2,2,19,1,1,2,10,1,6,2,2,1,153,}, + {1,106,2,15,1,10,2,13,1,38,2,51,1,22,2,52,1,5,2,11,1,6,2,14,1,255,2,2,1,8,2,151,1,366,2,189,1,228,2,37,1,14,2,304,1,6,2,3,1,152,}, + {1,105,2,16,1,9,2,13,1,38,2,52,1,22,2,51,1,6,2,11,1,5,2,15,1,254,2,3,1,7,2,152,1,366,2,188,1,230,2,36,1,14,2,305,1,5,2,3,1,152,}, + {1,105,2,16,1,9,2,13,1,37,2,52,1,22,2,52,1,5,2,12,1,4,2,15,1,254,2,3,1,6,2,155,1,366,2,187,1,231,2,35,1,15,2,304,1,5,2,3,1,152,}, + {1,104,2,17,1,9,2,12,1,37,2,53,1,22,2,51,1,6,2,13,1,1,2,17,1,253,2,3,1,5,2,157,1,367,2,185,1,233,2,11,1,1,2,22,1,15,2,305,1,159,}, + {1,104,2,16,1,9,2,13,1,37,2,53,1,22,2,51,1,5,2,32,1,253,2,2,1,5,2,159,1,367,2,184,1,247,2,20,1,16,2,304,1,159,}, + {1,103,2,17,1,9,2,13,1,36,2,53,1,22,2,51,1,6,2,32,1,253,2,2,1,3,2,162,1,366,2,183,1,250,2,18,1,16,2,305,1,158,}, + {1,103,2,17,1,8,2,14,1,36,2,53,1,22,2,51,1,5,2,33,1,252,2,169,1,366,2,182,1,250,2,18,1,17,2,304,1,158,}, + {1,103,2,17,1,8,2,14,1,35,2,53,1,22,2,51,1,6,2,33,1,252,2,170,1,365,2,181,1,252,2,17,1,17,2,305,1,157,}, + {1,103,2,17,1,8,2,13,1,36,2,53,1,22,2,51,1,5,2,34,1,251,2,172,1,365,2,146,1,1,2,33,1,253,2,16,1,18,2,305,1,156,}, + {1,102,2,17,1,9,2,12,1,36,2,53,1,22,2,52,1,5,2,34,1,251,2,173,1,364,2,129,1,1,2,14,1,5,2,30,1,255,2,16,1,17,2,306,1,155,}, + {1,102,2,17,1,9,2,12,1,36,2,53,1,22,2,52,1,4,2,34,1,251,2,175,1,363,2,127,1,24,2,27,1,261,2,11,1,18,2,306,1,154,}, + {1,102,2,16,1,10,2,11,1,36,2,53,1,22,2,52,1,5,2,34,1,251,2,176,1,362,2,127,1,30,2,20,1,264,2,9,1,18,2,306,1,154,}, + {1,101,2,17,1,9,2,12,1,36,2,53,1,22,2,52,1,4,2,34,1,250,2,178,1,362,2,126,1,33,2,16,1,268,2,7,1,19,2,306,1,153,}, + {1,101,2,17,1,9,2,11,1,37,2,52,1,22,2,52,1,4,2,35,1,248,2,181,1,361,2,126,1,319,2,5,1,19,2,306,1,153,}, + {1,100,2,17,1,9,2,12,1,37,2,52,1,22,2,52,1,4,2,35,1,245,2,184,1,361,2,125,1,345,2,305,1,153,}, + {1,100,2,17,1,9,2,6,1,2,2,3,1,37,2,52,1,11,2,2,1,9,2,52,1,5,2,35,1,245,2,184,1,362,2,124,1,345,2,306,1,152,}, + {1,99,2,17,1,10,2,6,1,3,2,2,1,37,2,52,1,10,2,3,1,9,2,52,1,4,2,36,1,244,2,185,1,362,2,123,1,347,2,305,1,152,}, + {1,99,2,17,1,10,2,5,1,4,2,2,1,36,2,52,1,11,2,2,1,9,2,52,1,5,2,36,1,244,2,185,1,362,2,123,1,347,2,306,1,151,}, + {1,99,2,17,1,10,2,5,1,42,2,52,1,22,2,52,1,5,2,36,1,243,2,186,1,362,2,122,1,348,2,306,1,151,}, + {1,98,2,18,1,9,2,5,1,42,2,52,1,22,2,53,1,5,2,36,1,243,2,187,1,362,2,121,1,348,2,307,1,150,}, + {1,98,2,18,1,9,2,5,1,42,2,52,1,22,2,53,1,5,2,36,1,242,2,188,1,362,2,120,1,350,2,306,1,150,}, + {1,98,2,18,1,9,2,4,1,43,2,51,1,22,2,54,1,4,2,36,1,242,2,190,1,361,2,120,1,350,2,307,1,149,}, + {1,98,2,18,1,8,2,5,1,42,2,52,1,22,2,55,1,3,2,35,1,242,2,191,1,361,2,120,1,351,2,306,1,149,}, + {1,98,2,18,1,8,2,4,1,43,2,51,1,22,2,57,1,1,2,35,1,242,2,193,1,360,2,119,1,352,2,307,1,148,}, + {1,97,2,19,1,8,2,4,1,42,2,52,1,22,2,85,1,1,2,6,1,242,2,194,1,359,2,119,1,353,2,308,1,147,}, + {1,97,2,19,1,7,2,5,1,42,2,51,1,22,2,85,1,3,2,4,1,243,2,194,1,357,2,120,1,355,2,308,1,146,}, + {1,97,2,18,1,8,2,5,1,42,2,51,1,22,2,85,1,4,2,2,1,243,2,195,1,356,2,121,1,355,2,309,1,145,}, + {1,96,2,19,1,8,2,5,1,42,2,50,1,22,2,85,1,250,2,195,1,356,2,120,1,357,2,309,1,144,}, + {1,96,2,19,1,7,2,5,1,42,2,51,1,21,2,86,1,249,2,196,1,356,2,102,1,3,2,14,1,359,2,309,1,143,}, + {1,95,2,20,1,7,2,5,1,42,2,50,1,21,2,86,1,249,2,198,1,356,2,99,1,13,2,5,1,361,2,308,1,143,}, + {1,95,2,20,1,7,2,4,1,42,2,51,1,21,2,86,1,248,2,199,1,356,2,97,1,382,2,306,1,144,}, + {1,94,2,21,1,7,2,4,1,42,2,50,1,21,2,86,1,248,2,200,1,356,2,96,1,383,2,304,1,146,}, + {1,94,2,20,1,7,2,4,1,42,2,51,1,21,2,86,1,247,2,201,1,356,2,95,1,385,2,303,1,146,}, + {1,93,2,21,1,7,2,4,1,41,2,51,1,21,2,87,1,246,2,203,1,355,2,94,1,386,2,303,1,146,}, + {1,93,2,20,1,7,2,5,1,40,2,51,1,22,2,87,1,245,2,204,1,356,2,91,1,389,2,303,1,145,}, + {1,93,2,20,1,7,2,4,1,41,2,51,1,21,2,88,1,244,2,205,1,356,2,90,1,100,2,4,1,286,2,305,1,143,}, + {1,93,2,19,1,8,2,4,1,40,2,27,1,3,2,21,1,11,2,2,1,8,2,89,1,243,2,207,1,356,2,88,1,100,2,6,1,286,2,305,1,142,}, + {1,93,2,19,1,8,2,3,1,41,2,26,1,4,2,21,1,11,2,4,1,4,2,91,1,242,2,208,1,356,2,87,1,100,2,8,1,285,2,306,1,141,}, + {1,93,2,19,1,7,2,4,1,40,2,27,1,4,2,20,1,11,2,99,1,243,2,208,1,357,2,85,1,99,2,11,1,285,2,306,1,140,}, + {1,92,2,20,1,7,2,3,1,41,2,26,1,4,2,21,1,11,2,99,1,242,2,209,1,358,2,83,1,98,2,15,1,283,2,306,1,140,}, + {1,92,2,20,1,7,2,3,1,40,2,27,1,4,2,20,1,11,2,99,1,242,2,210,1,364,2,76,1,98,2,18,1,281,2,300,1,4,2,2,1,140,}, + {1,91,2,20,1,7,2,4,1,40,2,26,1,5,2,20,1,11,2,99,1,240,2,212,1,366,2,72,1,99,2,21,1,280,2,299,1,5,2,2,1,139,}, + {1,91,2,20,1,7,2,3,1,40,2,27,1,5,2,19,1,11,2,99,1,239,2,214,1,368,2,68,1,100,2,24,1,278,2,300,1,3,2,3,1,139,}, + {1,91,2,20,1,7,2,3,1,39,2,27,1,5,2,20,1,11,2,99,1,237,2,216,1,369,2,60,1,107,2,27,1,276,2,305,1,139,}, + {1,91,2,20,1,7,2,3,1,38,2,28,1,5,2,20,1,10,2,100,1,235,2,218,1,370,2,54,1,111,2,30,1,274,2,305,1,139,}, + {1,90,2,20,1,8,2,2,1,38,2,28,1,5,2,21,1,10,2,100,1,232,2,221,1,371,2,51,1,112,2,33,1,273,2,304,1,139,}, + {1,90,2,20,1,8,2,2,1,38,2,28,1,5,2,21,1,10,2,100,1,231,2,222,1,371,2,49,1,114,2,35,1,2,2,9,1,260,2,299,1,1,2,4,1,139,}, + {1,89,2,20,1,49,2,29,1,3,2,22,1,9,2,100,1,231,2,223,1,371,2,4,1,3,2,36,1,119,2,54,1,254,2,297,1,145,}, + {1,89,2,20,1,48,2,54,1,10,2,100,1,230,2,224,1,385,2,20,1,128,2,54,1,254,2,298,1,144,}, + {1,89,2,19,1,49,2,54,1,9,2,101,1,228,2,225,1,392,2,12,1,128,2,56,1,255,2,297,1,144,}, + {1,88,2,20,1,49,2,53,1,10,2,101,1,226,2,227,1,530,2,58,1,255,2,298,1,143,}, + {1,88,2,20,1,49,2,52,1,10,2,102,1,225,2,227,1,529,2,60,1,256,2,297,1,143,}, + {1,88,2,20,1,48,2,53,1,10,2,101,1,225,2,228,1,527,2,62,1,256,2,298,1,142,}, + {1,87,2,20,1,49,2,52,1,10,2,102,1,223,2,230,1,522,2,67,1,257,2,297,1,142,}, + {1,87,2,20,1,48,2,53,1,10,2,102,1,221,2,231,1,522,2,68,1,258,2,297,1,141,}, + {1,87,2,19,1,49,2,52,1,10,2,103,1,12,2,2,1,205,2,233,1,521,2,68,1,259,2,298,1,140,}, + {1,86,2,20,1,49,2,52,1,10,2,103,1,11,2,3,1,203,2,234,1,521,2,68,1,261,2,297,1,140,}, + {1,86,2,20,1,48,2,52,1,11,2,103,1,11,2,3,1,201,2,235,1,521,2,69,1,261,2,298,1,139,}, + {1,85,2,21,1,48,2,51,1,11,2,104,1,11,2,2,1,194,2,242,1,522,2,68,1,263,2,301,1,135,}, + {1,85,2,21,1,48,2,50,1,12,2,104,1,207,2,241,1,522,2,69,1,263,2,300,1,136,}, + {1,85,2,21,1,47,2,50,1,12,2,104,1,208,2,240,1,523,2,68,1,265,2,298,1,137,}, + {1,85,2,21,1,47,2,49,1,13,2,104,1,208,2,239,1,523,2,69,1,265,2,297,1,138,}, + {1,85,2,21,1,47,2,48,1,13,2,104,1,209,2,238,1,524,2,68,1,267,2,295,1,139,}, + {1,84,2,21,1,48,2,47,1,14,2,104,1,210,2,236,1,524,2,68,1,268,2,295,1,139,}, + {1,84,2,21,1,48,2,47,1,13,2,104,1,13,2,2,1,196,2,236,1,524,2,62,1,275,2,294,1,139,}, + {1,84,2,21,1,48,2,46,1,13,2,105,1,12,2,3,1,195,2,236,1,524,2,61,1,277,2,294,1,139,}, + {1,84,2,21,1,47,2,47,1,12,2,107,1,10,2,4,1,195,2,236,1,524,2,58,1,281,2,294,1,138,}, + {1,84,2,20,1,48,2,46,1,12,2,109,1,1,2,3,1,5,2,3,1,195,2,236,1,525,2,56,1,283,2,294,1,138,}, + {1,83,2,21,1,48,2,46,1,11,2,114,1,5,2,2,1,194,2,238,1,525,2,54,1,286,2,290,1,1,2,3,1,137,}, + {1,83,2,21,1,48,2,46,1,11,2,114,1,197,2,242,1,525,2,50,1,290,2,289,1,3,2,3,1,136,}, + {1,82,2,21,1,49,2,45,1,11,2,115,1,196,2,243,1,525,2,47,1,294,2,289,1,2,2,8,1,131,}, + {1,82,2,21,1,48,2,46,1,11,2,115,1,196,2,243,1,525,2,44,1,297,2,290,1,1,2,9,1,130,}, + {1,81,2,22,1,48,2,46,1,10,2,117,1,194,2,243,1,526,2,42,1,300,2,299,1,130,}, + {1,81,2,22,1,47,2,46,1,11,2,117,1,194,2,242,1,527,2,39,1,303,2,300,1,129,}, + {1,81,2,21,1,48,2,45,1,11,2,120,1,191,2,243,1,527,2,37,1,305,2,300,1,129,}, + {1,81,2,22,1,46,2,46,1,11,2,115,1,1,2,5,1,190,2,242,1,528,2,34,1,308,2,300,1,129,}, + {1,80,2,23,1,46,2,45,1,11,2,115,1,4,2,3,1,189,2,243,1,529,2,31,1,310,2,300,1,129,}, + {1,80,2,24,1,44,2,46,1,11,2,115,1,4,2,3,1,188,2,243,1,530,2,28,1,313,2,296,1,133,}, + {1,80,2,24,1,44,2,25,1,3,2,17,1,11,2,116,1,5,2,2,1,187,2,244,1,531,2,25,1,315,2,296,1,133,}, + {1,80,2,24,1,43,2,26,1,3,2,17,1,11,2,116,1,5,2,3,1,185,2,244,1,533,2,21,1,317,2,296,1,134,}, + {1,80,2,24,1,42,2,26,1,4,2,16,1,11,2,118,1,4,2,3,1,185,2,244,1,534,2,18,1,319,2,296,1,134,}, + {1,79,2,25,1,42,2,26,1,4,2,16,1,11,2,118,1,4,2,3,1,184,2,244,1,537,2,14,1,321,2,296,1,134,}, + {1,79,2,25,1,42,2,25,1,5,2,15,1,11,2,120,1,2,2,4,1,183,2,245,1,538,2,8,1,326,2,296,1,134,}, + {1,79,2,25,1,42,2,25,1,5,2,15,1,11,2,125,1,184,2,245,1,540,2,4,1,328,2,296,1,134,}, + {1,79,2,25,1,41,2,25,1,6,2,15,1,10,2,126,1,184,2,245,1,872,2,296,1,134,}, + {1,79,2,25,1,41,2,25,1,6,2,14,1,11,2,126,1,185,2,244,1,872,2,296,1,134,}, + {1,79,2,25,1,40,2,26,1,6,2,14,1,10,2,127,1,138,2,2,1,45,2,245,1,870,2,297,1,134,}, + {1,78,2,26,1,40,2,25,1,7,2,13,1,11,2,127,1,138,2,2,1,46,2,244,1,870,2,297,1,134,}, + {1,78,2,26,1,39,2,26,1,7,2,13,1,11,2,126,1,138,2,3,1,46,2,244,1,870,2,297,1,4,2,2,1,128,}, + {1,78,2,26,1,39,2,26,1,7,2,12,1,11,2,126,1,139,2,3,1,47,2,243,1,870,2,297,1,4,2,3,1,127,}, + {1,77,2,27,1,38,2,27,1,7,2,12,1,11,2,125,1,139,2,4,1,47,2,243,1,870,2,297,1,5,2,4,1,125,}, + {1,77,2,27,1,38,2,26,1,8,2,12,1,10,2,127,1,138,2,4,1,48,2,242,1,870,2,297,1,6,2,4,1,124,}, + {1,77,2,27,1,37,2,27,1,8,2,12,1,10,2,128,1,137,2,3,1,48,2,244,1,869,2,297,1,7,2,4,1,123,}, + {1,77,2,26,1,38,2,26,1,9,2,11,1,11,2,129,1,136,2,2,1,49,2,244,1,869,2,298,1,7,2,3,1,123,}, + {1,77,2,26,1,37,2,27,1,9,2,11,1,11,2,130,1,185,2,246,1,868,2,301,1,130,}, + {1,76,2,27,1,37,2,26,1,10,2,10,1,12,2,130,1,185,2,246,1,868,2,301,1,130,}, + {1,76,2,27,1,36,2,27,1,9,2,11,1,11,2,127,1,1,2,3,1,184,2,248,1,867,2,301,1,130,}, + {1,76,2,27,1,36,2,27,1,9,2,10,1,12,2,126,1,189,2,250,1,864,2,301,1,131,}, + {1,75,2,28,1,35,2,28,1,9,2,10,1,12,2,125,1,189,2,252,1,863,2,301,1,131,}, + {1,75,2,28,1,35,2,27,1,10,2,9,1,13,2,125,1,189,2,253,1,861,2,302,1,131,}, + {1,74,2,29,1,34,2,27,1,11,2,9,1,13,2,125,1,188,2,255,1,860,2,303,1,130,}, + {1,74,2,28,1,35,2,26,1,12,2,8,1,13,2,130,1,184,2,256,1,857,2,305,1,130,}, + {1,74,2,28,1,34,2,28,1,10,2,9,1,13,2,130,1,183,2,257,1,853,2,310,1,129,}, + {1,74,2,28,1,34,2,28,1,10,2,8,1,14,2,130,1,182,2,258,1,853,2,310,1,129,}, + {1,74,2,28,1,34,2,29,1,9,2,8,1,14,2,130,1,181,2,259,1,853,2,311,1,128,}, + {1,73,2,29,1,33,2,30,1,9,2,8,1,13,2,131,1,180,2,260,1,854,2,310,1,128,}, + {1,73,2,29,1,33,2,30,1,9,2,8,1,13,2,130,1,180,2,262,1,855,2,308,1,128,}, + {1,73,2,28,1,34,2,30,1,9,2,8,1,12,2,131,1,180,2,262,1,856,2,307,1,128,}, + {1,73,2,28,1,34,2,21,1,1,2,8,1,9,2,8,1,12,2,131,1,180,2,262,1,857,2,306,1,128,}, + {1,73,2,28,1,34,2,20,1,3,2,6,1,10,2,8,1,12,2,131,1,179,2,263,1,857,2,306,1,128,}, + {1,73,2,28,1,34,2,21,1,1,2,7,1,10,2,7,1,12,2,131,1,180,2,264,1,855,2,307,1,128,}, + {1,72,2,29,1,33,2,30,1,10,2,7,1,12,2,131,1,129,2,2,1,49,2,264,1,855,2,307,1,128,}, + {1,72,2,29,1,33,2,29,1,11,2,7,1,12,2,130,1,129,2,3,1,48,2,266,1,854,2,307,1,128,}, + {1,72,2,29,1,32,2,30,1,11,2,6,1,13,2,130,1,129,2,3,1,48,2,266,1,854,2,307,1,128,}, + {1,72,2,29,1,32,2,30,1,10,2,7,1,13,2,130,1,128,2,4,1,48,2,266,1,854,2,307,1,128,}, + {1,72,2,29,1,31,2,23,1,2,2,6,1,10,2,6,1,13,2,130,1,128,2,4,1,48,2,267,1,854,2,307,1,128,}, + {1,72,2,29,1,30,2,24,1,2,2,5,1,11,2,6,1,13,2,130,1,127,2,5,1,48,2,267,1,853,2,309,1,127,}, + {1,71,2,29,1,30,2,24,1,3,2,5,1,11,2,6,1,13,2,129,1,128,2,4,1,48,2,269,1,846,2,3,1,3,2,309,1,127,}, + {1,71,2,29,1,29,2,25,1,3,2,5,1,11,2,5,1,13,2,131,1,126,2,5,1,48,2,269,1,844,2,6,1,1,2,147,1,1,2,163,1,126,}, + {1,70,2,30,1,28,2,25,1,3,2,6,1,11,2,5,1,13,2,131,1,125,2,5,1,48,2,271,1,842,2,154,1,3,2,162,1,126,}, + {1,70,2,30,1,27,2,26,1,3,2,6,1,11,2,5,1,13,2,132,1,123,2,6,1,48,2,271,1,842,2,155,1,1,2,163,1,126,}, + {1,70,2,29,1,28,2,27,1,1,2,7,1,11,2,5,1,13,2,132,1,123,2,5,1,48,2,273,1,841,2,319,1,126,}, + {1,70,2,29,1,28,2,35,1,11,2,5,1,12,2,134,1,121,2,6,1,46,2,275,1,841,2,319,1,126,}, + {1,70,2,29,1,27,2,35,1,11,2,6,1,12,2,134,1,120,2,7,1,45,2,276,1,841,2,319,1,126,}, + {1,70,2,29,1,27,2,35,1,11,2,6,1,11,2,135,1,119,2,7,1,45,2,278,1,840,2,319,1,126,}, + {1,70,2,29,1,26,2,36,1,11,2,5,1,12,2,135,1,118,2,8,1,44,2,279,1,840,2,319,1,126,}, + {1,70,2,29,1,26,2,36,1,11,2,5,1,12,2,135,1,118,2,8,1,43,2,281,1,839,2,320,1,125,}, + {1,69,2,29,1,26,2,36,1,12,2,5,1,12,2,136,1,116,2,8,1,43,2,282,1,840,2,319,1,125,}, + {1,69,2,29,1,26,2,36,1,11,2,6,1,11,2,131,1,1,2,5,1,116,2,8,1,42,2,283,1,841,2,318,1,125,}, + {1,69,2,29,1,25,2,37,1,11,2,6,1,11,2,131,1,2,2,4,1,115,2,9,1,42,2,283,1,841,2,3,1,2,2,313,1,125,}, + {1,69,2,29,1,25,2,37,1,11,2,6,1,10,2,132,1,3,2,3,1,115,2,9,1,41,2,284,1,841,2,3,1,2,2,156,1,1,2,156,1,125,}, + {1,69,2,29,1,25,2,36,1,12,2,7,1,9,2,133,1,2,2,3,1,114,2,10,1,40,2,285,1,841,2,3,1,3,2,155,1,2,2,155,1,125,}, + {1,69,2,29,1,25,2,27,1,1,2,8,1,12,2,7,1,9,2,133,1,3,2,2,1,114,2,9,1,41,2,286,1,839,2,4,1,3,2,312,1,125,}, + {1,69,2,29,1,25,2,26,1,3,2,7,1,11,2,9,1,8,2,134,1,2,2,2,1,114,2,9,1,40,2,287,1,839,2,4,1,4,2,311,1,125,}, + {1,69,2,29,1,24,2,27,1,4,2,5,1,12,2,10,1,7,2,138,1,114,2,8,1,40,2,289,1,837,2,5,1,4,2,311,1,125,}, + {1,69,2,29,1,24,2,26,1,5,2,5,1,12,2,10,1,6,2,139,1,114,2,9,1,38,2,291,1,836,2,4,1,6,2,311,1,124,}, + {1,69,2,29,1,24,2,25,1,6,2,5,1,11,2,11,1,6,2,139,1,114,2,9,1,37,2,288,1,2,2,3,1,845,2,311,1,124,}, + {1,69,2,29,1,23,2,25,1,23,2,11,1,6,2,139,1,114,2,9,1,36,2,288,1,4,2,3,1,844,2,311,1,124,}, + {1,69,2,28,1,24,2,24,1,24,2,11,1,6,2,139,1,113,2,10,1,35,2,289,1,4,2,3,1,844,2,311,1,124,}, + {1,68,2,29,1,24,2,23,1,25,2,11,1,6,2,138,1,114,2,10,1,35,2,289,1,5,2,3,1,843,2,311,1,124,}, + {1,68,2,30,1,23,2,23,1,25,2,10,1,7,2,139,1,112,2,11,1,36,2,288,1,5,2,3,1,843,2,311,1,124,}, + {1,68,2,30,1,23,2,23,1,25,2,10,1,6,2,141,1,111,2,10,1,37,2,288,1,6,2,2,1,836,2,1,1,6,2,311,1,124,}, + {1,67,2,32,1,1,2,2,1,19,2,23,1,25,2,10,1,6,2,31,1,4,2,107,1,109,2,10,1,38,2,288,1,6,2,2,1,835,2,3,1,5,2,311,1,124,}, + {1,67,2,35,1,18,2,23,1,26,2,9,1,6,2,30,1,6,2,107,1,109,2,10,1,38,2,288,1,6,2,3,1,833,2,3,1,7,2,311,1,123,}, + {1,66,2,36,1,18,2,22,1,27,2,6,1,9,2,28,1,9,2,106,1,108,2,10,1,39,2,289,1,5,2,3,1,832,2,4,1,7,2,311,1,123,}, + {1,66,2,36,1,18,2,21,1,28,2,5,1,9,2,29,1,9,2,106,1,108,2,10,1,40,2,288,1,5,2,4,1,831,2,5,1,5,2,312,1,5,2,2,1,116,}, + {1,66,2,36,1,18,2,20,1,29,2,5,1,8,2,29,1,11,2,105,1,107,2,10,1,41,2,288,1,5,2,4,1,831,2,6,1,2,2,314,1,5,2,2,1,116,}, + {1,66,2,36,1,17,2,20,1,30,2,5,1,6,2,31,1,11,2,105,1,107,2,10,1,42,2,287,1,5,2,4,1,831,2,322,1,5,2,2,1,116,}, + {1,66,2,36,1,17,2,20,1,30,2,7,1,2,2,32,1,12,2,106,1,106,2,9,1,43,2,287,1,5,2,4,1,831,2,322,1,5,2,2,1,116,}, + {1,66,2,36,1,17,2,19,1,4,2,3,1,24,2,41,1,12,2,109,1,102,2,9,1,44,2,287,1,5,2,4,1,831,2,323,1,122,}, + {1,65,2,36,1,18,2,19,1,4,2,5,1,22,2,12,1,1,2,27,1,14,2,109,1,101,2,6,1,46,2,288,1,5,2,4,1,831,2,323,1,122,}, + {1,65,2,36,1,18,2,19,1,4,2,5,1,22,2,4,1,1,2,6,1,3,2,26,1,14,2,105,1,2,2,4,1,99,2,4,1,41,2,2,1,5,2,288,1,5,2,5,1,831,2,322,1,122,}, + {1,65,2,35,1,19,2,4,1,1,2,14,1,3,2,6,1,22,2,3,1,3,2,5,1,3,2,25,1,15,2,104,1,5,2,4,1,1,2,4,1,92,2,2,1,43,2,3,1,3,2,289,1,6,2,4,1,832,2,321,1,122,}, + {1,65,2,36,1,18,2,3,1,3,2,12,1,4,2,5,1,29,2,4,1,5,2,24,1,15,2,104,1,6,2,8,1,136,2,4,1,3,2,289,1,6,2,4,1,833,2,320,1,122,}, + {1,65,2,36,1,18,2,3,1,3,2,12,1,3,2,5,1,31,2,3,1,5,2,10,1,3,2,10,1,16,2,105,1,6,2,7,1,136,2,5,1,1,2,290,1,7,2,3,1,832,2,321,1,122,}, + {1,65,2,37,1,16,2,5,1,1,2,12,1,4,2,6,1,30,2,2,1,6,2,9,1,5,2,9,1,16,2,105,1,7,2,6,1,98,2,2,1,36,2,296,1,7,2,3,1,832,2,322,1,121,}, + {1,65,2,37,1,16,2,18,1,3,2,7,1,30,2,2,1,6,2,8,1,7,2,8,1,16,2,67,1,1,2,38,1,6,2,6,1,98,2,2,1,36,2,296,1,6,2,4,1,830,2,324,1,121,}, + {1,65,2,37,1,16,2,19,1,1,2,9,1,29,2,2,1,6,2,7,1,8,2,7,1,17,2,66,1,3,2,37,1,5,2,6,1,137,2,296,1,6,2,4,1,829,2,325,1,121,}, + {1,64,2,38,1,16,2,29,1,53,2,6,1,17,2,66,1,2,2,40,1,1,2,8,1,137,2,295,1,7,2,4,1,828,2,327,1,120,}, + {1,64,2,37,1,16,2,30,1,53,2,5,1,18,2,65,1,3,2,49,1,137,2,295,1,7,2,4,1,827,2,328,1,120,}, + {1,63,2,38,1,16,2,22,1,1,2,7,1,54,2,4,1,18,2,66,1,1,2,50,1,137,2,295,1,7,2,4,1,826,2,329,1,120,}, + {1,63,2,37,1,17,2,21,1,3,2,5,1,55,2,4,1,18,2,117,1,138,2,294,1,7,2,4,1,826,2,329,1,120,}, + {1,63,2,37,1,17,2,20,1,4,2,5,1,55,2,3,1,19,2,117,1,138,2,295,1,6,2,4,1,825,2,330,1,120,}, + {1,63,2,37,1,16,2,21,1,5,2,3,1,56,2,3,1,19,2,118,1,137,2,295,1,6,2,4,1,825,2,330,1,120,}, + {1,63,2,37,1,16,2,20,1,65,2,3,1,19,2,118,1,137,2,296,1,6,2,3,1,824,2,331,1,120,}, + {1,63,2,37,1,16,2,21,1,64,2,2,1,20,2,118,1,137,2,296,1,6,2,3,1,823,2,155,1,1,2,176,1,120,}, + {1,63,2,37,1,16,2,21,1,86,2,118,1,137,2,297,1,5,2,3,1,821,2,156,1,3,2,175,1,120,}, + {1,63,2,36,1,6,2,2,1,9,2,21,1,86,2,118,1,137,2,299,1,2,2,3,1,820,2,158,1,3,2,175,1,120,}, + {1,63,2,36,1,6,2,2,1,9,2,21,1,86,2,118,1,137,2,304,1,819,2,160,1,3,2,174,1,120,}, + {1,62,2,37,1,6,2,2,1,8,2,22,1,86,2,118,1,137,2,304,1,818,2,161,1,3,2,174,1,120,}, + {1,62,2,37,1,5,2,3,1,8,2,22,1,86,2,118,1,82,2,3,1,52,2,304,1,818,2,162,1,1,2,175,1,120,}, + {1,62,2,37,1,5,2,3,1,8,2,22,1,86,2,118,1,81,2,4,1,52,2,304,1,818,2,337,1,121,}, + {1,62,2,37,1,5,2,3,1,8,2,22,1,86,2,118,1,81,2,4,1,52,2,304,1,818,2,337,1,121,}, + {1,62,2,37,1,4,2,4,1,7,2,5,1,1,2,17,1,86,2,118,1,81,2,4,1,52,2,304,1,818,2,337,1,121,}, + {1,61,2,38,1,4,2,3,1,8,2,4,1,3,2,16,1,86,2,118,1,80,2,5,1,52,2,304,1,817,2,338,1,121,}, + {1,61,2,38,1,4,2,3,1,8,2,4,1,3,2,16,1,42,2,2,1,41,2,119,1,80,2,5,1,52,2,304,1,817,2,339,1,120,}, + {1,61,2,37,1,5,2,3,1,8,2,3,1,5,2,14,1,42,2,3,1,41,2,119,1,79,2,6,1,52,2,304,1,816,2,340,1,120,}, + {1,61,2,37,1,4,2,4,1,7,2,4,1,5,2,14,1,42,2,3,1,41,2,119,1,79,2,6,1,52,2,304,1,815,2,341,1,120,}, + {1,61,2,36,1,5,2,4,1,7,2,3,1,6,2,14,1,42,2,3,1,41,2,119,1,63,2,2,1,13,2,6,1,53,2,304,1,9,2,2,1,803,2,342,1,120,}, + {1,61,2,36,1,5,2,4,1,7,2,3,1,6,2,13,1,43,2,3,1,41,2,119,1,62,2,3,1,13,2,6,1,52,2,305,1,9,2,2,1,801,2,344,1,120,}, + {1,61,2,36,1,5,2,4,1,7,2,2,1,7,2,13,1,43,2,3,1,41,2,119,1,61,2,4,1,12,2,6,1,53,2,305,1,9,2,2,1,800,2,345,1,120,}, + {1,60,2,37,1,5,2,4,1,7,2,3,1,6,2,13,1,43,2,3,1,41,2,120,1,60,2,5,1,10,2,7,1,52,2,306,1,9,2,2,1,799,2,347,1,119,}, + {1,60,2,37,1,5,2,4,1,7,2,3,1,7,2,12,1,43,2,3,1,41,2,120,1,60,2,5,1,10,2,6,1,53,2,306,1,9,2,2,1,798,2,348,1,119,}, + {1,60,2,37,1,5,2,4,1,7,2,4,1,5,2,13,1,43,2,3,1,41,2,6,1,2,2,113,1,59,2,5,1,9,2,7,1,53,2,306,1,9,2,2,1,797,2,350,1,118,}, + {1,60,2,37,1,5,2,4,1,7,2,5,1,4,2,13,1,43,2,3,1,41,2,4,1,5,2,112,1,59,2,5,1,9,2,6,1,54,2,306,1,9,2,2,1,796,2,351,1,118,}, + {1,60,2,37,1,5,2,4,1,7,2,6,1,2,2,14,1,43,2,3,1,41,2,2,1,7,2,112,1,50,2,2,1,8,2,4,1,8,2,7,1,54,2,158,1,1,2,147,1,9,2,2,1,795,2,353,1,2,2,2,1,113,}, + {1,60,2,36,1,5,2,5,1,7,2,22,1,43,2,2,1,51,2,112,1,50,2,3,1,7,2,4,1,8,2,7,1,54,2,157,1,3,2,146,1,9,2,2,1,794,2,358,1,113,}, + {1,60,2,36,1,5,2,5,1,7,2,22,1,95,2,113,1,50,2,3,1,8,2,3,1,7,2,8,1,54,2,158,1,1,2,147,1,9,2,2,1,794,2,358,1,113,}, + {1,60,2,35,1,5,2,6,1,7,2,22,1,95,2,112,1,41,2,2,1,8,2,3,1,8,2,3,1,7,2,7,1,55,2,306,1,9,2,2,1,794,2,358,1,113,}, + {1,60,2,36,1,4,2,6,1,7,2,22,1,94,2,55,1,1,2,57,1,40,2,3,1,19,2,3,1,6,2,8,1,55,2,305,1,805,2,360,1,112,}, + {1,60,2,36,1,3,2,6,1,8,2,22,1,94,2,54,1,3,2,56,1,40,2,2,1,19,2,4,1,6,2,8,1,55,2,303,1,807,2,360,1,112,}, + {1,60,2,45,1,7,2,23,1,93,2,55,1,3,2,56,1,39,2,3,1,19,2,3,1,6,2,8,1,57,2,301,1,807,2,361,1,112,}, + {1,60,2,45,1,7,2,23,1,93,2,54,1,5,2,55,1,39,2,2,1,20,2,3,1,6,2,8,1,57,2,300,1,808,2,361,1,112,}, + {1,59,2,46,1,7,2,22,1,94,2,54,1,4,2,56,1,39,2,2,1,20,2,2,1,6,2,9,1,58,2,299,1,807,2,362,1,112,}, + {1,59,2,46,1,7,2,22,1,95,2,54,1,3,2,55,1,62,2,2,1,6,2,9,1,10,2,2,1,47,2,297,1,807,2,364,1,111,}, + {1,59,2,37,1,1,2,8,1,6,2,22,1,33,2,2,1,62,2,54,1,1,2,56,1,61,2,3,1,5,2,9,1,11,2,2,1,47,2,297,1,807,2,364,1,111,}, + {1,59,2,36,1,3,2,6,1,7,2,22,1,33,2,2,1,63,2,110,1,61,2,3,1,5,2,9,1,11,2,2,1,48,2,295,1,13,2,2,1,792,2,366,1,110,}, + {1,58,2,36,1,4,2,6,1,6,2,22,1,33,2,3,1,62,2,112,1,50,2,7,1,2,2,3,1,5,2,9,1,62,2,296,1,10,2,4,1,792,2,366,1,110,}, + {1,58,2,36,1,4,2,6,1,6,2,22,1,33,2,3,1,62,2,112,1,48,2,13,1,5,2,9,1,64,2,295,1,8,2,6,1,791,2,368,1,6,2,2,1,101,}, + {1,58,2,35,1,5,2,6,1,6,2,22,1,33,2,3,1,61,2,59,1,1,2,53,1,47,2,13,1,5,2,9,1,65,2,166,1,6,2,124,1,6,2,7,1,790,2,369,1,6,2,3,1,100,}, + {1,58,2,35,1,5,2,6,1,6,2,21,1,34,2,3,1,61,2,58,1,3,2,51,1,47,2,13,1,5,2,10,1,65,2,164,1,10,2,122,1,6,2,6,1,790,2,370,1,6,2,4,1,99,}, + {1,58,2,34,1,6,2,6,1,6,2,21,1,4,2,3,1,27,2,3,1,60,2,59,1,4,2,51,1,46,2,13,1,4,2,10,1,67,2,161,1,16,2,120,1,4,2,5,1,790,2,371,1,7,2,3,1,99,}, + {1,58,2,34,1,6,2,6,1,6,2,21,1,4,2,3,1,27,2,3,1,60,2,58,1,5,2,51,1,46,2,12,1,5,2,10,1,67,2,160,1,19,2,120,1,1,2,4,1,791,2,373,1,6,2,3,1,99,}, + {1,58,2,34,1,5,2,7,1,6,2,21,1,3,2,4,1,6,2,2,1,19,2,2,1,60,2,59,1,5,2,52,1,45,2,12,1,4,2,10,1,14,2,2,1,52,2,158,1,23,2,123,1,10,2,2,1,778,2,374,1,7,2,2,1,99,}, + {1,58,2,34,1,5,2,7,1,5,2,22,1,3,2,4,1,5,2,3,1,18,2,3,1,59,2,59,1,6,2,52,1,45,2,11,1,5,2,10,1,14,2,2,1,53,2,155,1,27,2,120,1,11,2,4,1,776,2,375,1,6,2,2,1,99,}, + {1,58,2,34,1,4,2,8,1,5,2,22,1,3,2,4,1,4,2,4,1,18,2,3,1,59,2,59,1,6,2,53,1,45,2,10,1,4,2,11,1,14,2,2,1,53,2,154,1,30,2,117,1,13,2,6,1,772,2,376,1,6,2,2,1,99,}, + {1,58,2,33,1,5,2,8,1,5,2,22,1,3,2,4,1,4,2,4,1,17,2,4,1,59,2,59,1,6,2,53,1,45,2,9,1,5,2,10,1,71,2,152,1,33,2,114,1,14,2,6,1,771,2,378,1,5,2,2,1,99,}, + {1,58,2,33,1,5,2,7,1,6,2,21,1,4,2,4,1,3,2,5,1,17,2,4,1,59,2,59,1,6,2,54,1,45,2,7,1,6,2,9,1,72,2,151,1,36,2,111,1,16,2,5,1,771,2,378,1,106,}, + {1,58,2,10,1,1,2,22,1,5,2,7,1,6,2,21,1,4,2,5,1,1,2,6,1,16,2,4,1,60,2,59,1,6,2,54,1,45,2,5,1,8,2,8,1,73,2,150,1,38,2,110,1,7,2,2,1,8,2,4,1,771,2,378,1,106,}, + {1,58,2,9,1,3,2,21,1,5,2,7,1,6,2,21,1,3,2,13,1,16,2,4,1,59,2,60,1,6,2,54,1,45,2,3,1,10,2,7,1,74,2,148,1,42,2,107,1,8,2,2,1,9,2,3,1,771,2,377,1,107,}, + {1,58,2,10,1,1,2,22,1,5,2,7,1,6,2,22,1,1,2,14,1,15,2,5,1,59,2,60,1,6,2,54,1,58,2,6,1,75,2,147,1,45,2,105,1,7,2,3,1,9,2,3,1,771,2,377,1,107,}, + {1,58,2,33,1,5,2,7,1,6,2,37,1,14,2,6,1,59,2,60,1,6,2,54,1,58,2,5,1,75,2,147,1,48,2,103,1,7,2,3,1,10,2,2,1,771,2,376,1,108,}, + {1,58,2,33,1,5,2,7,1,5,2,38,1,14,2,6,1,59,2,60,1,6,2,54,1,57,2,6,1,75,2,147,1,50,2,102,1,5,2,4,1,10,2,3,1,770,2,377,1,107,}, + {1,58,2,33,1,6,2,5,1,6,2,38,1,14,2,6,1,59,2,60,1,6,2,54,1,57,2,5,1,75,2,147,1,53,2,102,1,1,2,6,1,11,2,2,1,770,2,378,1,106,}, + {1,58,2,33,1,6,2,5,1,6,2,38,1,14,2,7,1,1,2,3,1,54,2,60,1,6,2,54,1,56,2,6,1,75,2,147,1,55,2,107,1,11,2,3,1,769,2,379,1,105,}, + {1,58,2,33,1,5,2,5,1,7,2,38,1,14,2,11,1,53,2,61,1,6,2,53,1,57,2,5,1,75,2,14,1,2,2,131,1,58,2,105,1,12,2,2,1,769,2,379,1,105,}, + {1,59,2,32,1,5,2,5,1,7,2,38,1,13,2,12,1,53,2,61,1,6,2,53,1,56,2,6,1,75,2,12,1,8,2,126,1,61,2,104,1,11,2,2,1,769,2,379,1,105,}, + {1,59,2,32,1,5,2,5,1,7,2,38,1,13,2,12,1,52,2,61,1,7,2,54,1,55,2,6,1,74,2,11,1,12,2,124,1,63,2,102,1,782,2,378,1,106,}, + {1,59,2,31,1,6,2,5,1,7,2,38,1,12,2,13,1,52,2,61,1,7,2,54,1,54,2,6,1,74,2,10,1,17,2,120,1,66,2,101,1,781,2,378,1,106,}, + {1,59,2,31,1,6,2,5,1,7,2,38,1,12,2,7,1,1,2,5,1,51,2,62,1,7,2,55,1,53,2,6,1,73,2,10,1,20,2,117,1,69,2,104,1,777,2,376,1,107,}, + {1,59,2,31,1,6,2,5,1,7,2,38,1,12,2,6,1,3,2,5,1,41,2,4,1,3,2,64,1,7,2,55,1,52,2,7,1,72,2,9,1,24,2,114,1,71,2,103,1,778,2,375,1,107,}, + {1,59,2,31,1,6,2,5,1,7,2,38,1,12,2,5,1,4,2,5,1,40,2,72,1,7,2,55,1,52,2,7,1,72,2,8,1,27,2,111,1,74,2,101,1,43,2,4,1,181,2,6,1,545,2,374,1,13,2,2,1,92,}, + {1,59,2,31,1,6,2,5,1,7,2,38,1,11,2,6,1,5,2,4,1,39,2,73,1,7,2,54,1,22,2,14,1,17,2,7,1,71,2,8,1,28,2,110,1,76,2,100,1,43,2,4,1,179,2,11,1,544,2,372,1,13,2,3,1,91,}, + {1,59,2,31,1,5,2,5,1,8,2,39,1,10,2,5,1,6,2,4,1,39,2,73,1,7,2,55,1,19,2,17,1,16,2,7,1,71,2,7,1,30,2,108,1,78,2,98,1,44,2,4,1,177,2,17,1,3,2,11,1,1,2,8,1,518,2,372,1,13,2,2,1,91,}, + {1,59,2,31,1,5,2,5,1,8,2,39,1,10,2,5,1,6,2,4,1,39,2,59,1,2,2,12,1,6,2,56,1,14,2,23,1,14,2,7,1,72,2,5,1,32,2,107,1,82,2,95,1,44,2,4,1,175,2,43,1,517,2,372,1,106,}, + {1,58,2,32,1,4,2,5,1,9,2,39,1,10,2,4,1,7,2,4,1,39,2,58,1,6,2,9,1,6,2,57,1,12,2,25,1,13,2,7,1,71,2,5,1,34,2,106,1,84,2,93,1,44,2,4,1,169,2,50,1,517,2,371,1,106,}, + {1,58,2,9,1,1,2,22,1,4,2,5,1,9,2,39,1,10,2,4,1,7,2,4,1,39,2,58,1,8,2,7,1,6,2,57,1,11,2,26,1,12,2,7,1,72,2,4,1,35,2,105,1,87,2,92,1,43,2,3,1,169,2,53,1,515,2,371,1,106,}, + {1,58,2,8,1,3,2,21,1,4,2,5,1,9,2,39,1,10,2,4,1,7,2,4,1,39,2,58,1,9,2,6,1,6,2,58,1,8,2,28,1,12,2,7,1,72,2,4,1,36,2,103,1,90,2,90,1,42,2,3,1,169,2,56,1,514,2,370,1,106,}, + {1,58,2,8,1,3,2,21,1,4,2,5,1,8,2,40,1,9,2,5,1,7,2,3,1,40,2,58,1,9,2,6,1,6,2,58,1,7,2,29,1,12,2,6,1,73,2,3,1,37,2,102,1,94,2,87,1,42,2,3,1,167,2,59,1,513,2,370,1,106,}, + {1,58,2,7,1,5,2,20,1,4,2,5,1,8,2,40,1,9,2,5,1,6,2,4,1,40,2,58,1,9,2,6,1,6,2,59,1,6,2,29,1,12,2,6,1,72,2,4,1,37,2,101,1,99,2,83,1,42,2,2,1,166,2,62,1,512,2,370,1,106,}, + {1,58,2,7,1,5,2,20,1,4,2,5,1,8,2,40,1,8,2,6,1,6,2,3,1,41,2,57,1,10,2,7,1,5,2,61,1,4,2,29,1,11,2,6,1,73,2,3,1,38,2,100,1,102,2,81,1,42,2,2,1,164,2,65,1,511,2,370,1,106,}, + {1,57,2,7,1,5,2,21,1,4,2,5,1,8,2,40,1,8,2,5,1,7,2,3,1,41,2,56,1,11,2,7,1,5,2,63,1,1,2,30,1,11,2,6,1,73,2,3,1,38,2,93,1,111,2,79,1,207,2,68,1,510,2,369,1,106,}, + {1,57,2,7,1,5,2,20,1,5,2,5,1,8,2,40,1,8,2,5,1,7,2,3,1,41,2,54,1,13,2,8,1,3,2,95,1,11,2,5,1,74,2,3,1,39,2,90,1,115,2,77,1,206,2,71,1,13,2,1,1,496,2,367,1,106,}, + {1,57,2,7,1,5,2,20,1,5,2,5,1,8,2,40,1,8,2,5,1,7,2,3,1,41,2,53,1,13,2,9,1,3,2,95,1,11,2,5,1,74,2,4,1,39,2,87,1,119,2,75,1,205,2,74,1,9,2,5,1,495,2,366,1,106,}, + {1,57,2,7,1,5,2,20,1,5,2,5,1,8,2,40,1,7,2,7,1,6,2,3,1,41,2,53,1,13,2,107,1,11,2,5,1,74,2,4,1,40,2,84,1,123,2,73,1,205,2,76,1,5,2,9,1,492,2,9,1,4,2,15,1,7,2,332,1,106,}, + {1,57,2,8,1,3,2,21,1,5,2,5,1,8,2,41,1,6,2,7,1,6,2,3,1,41,2,52,1,13,2,108,1,11,2,5,1,74,2,5,1,1,2,3,1,36,2,81,1,126,2,73,1,203,2,93,1,488,2,9,1,8,2,11,1,10,2,331,1,106,}, + {1,57,2,8,1,3,2,21,1,5,2,5,1,8,2,45,1,1,2,8,1,6,2,3,1,40,2,53,1,12,2,109,1,11,2,6,1,73,2,9,1,36,2,79,1,130,2,71,1,203,2,95,1,483,2,11,1,11,2,7,1,12,2,332,1,105,}, + {1,57,2,9,1,1,2,22,1,5,2,5,1,7,2,55,1,6,2,3,1,40,2,54,1,9,2,111,1,11,2,6,1,73,2,9,1,37,2,76,1,133,2,81,1,191,2,97,1,474,2,18,1,32,2,331,1,105,}, + {1,56,2,33,1,5,2,5,1,7,2,55,1,6,2,3,1,40,2,54,1,6,2,110,1,15,2,6,1,73,2,9,1,37,2,75,1,135,2,82,1,189,2,98,1,472,2,19,1,32,2,331,1,105,}, + {1,56,2,32,1,6,2,4,1,8,2,55,1,6,2,3,1,40,2,54,1,5,2,109,1,16,2,7,1,74,2,8,1,38,2,70,1,141,2,81,1,187,2,100,1,470,2,19,1,33,2,331,1,105,}, + {1,56,2,32,1,5,2,5,1,8,2,45,1,2,2,8,1,6,2,2,1,41,2,54,1,5,2,108,1,17,2,7,1,74,2,8,1,38,2,68,1,144,2,80,1,187,2,100,1,469,2,20,1,33,2,331,1,105,}, + {1,56,2,31,1,6,2,5,1,8,2,55,1,49,2,53,1,6,2,108,1,17,2,7,1,75,2,7,1,39,2,65,1,147,2,79,1,186,2,102,1,467,2,20,1,34,2,331,1,105,}, + {1,56,2,31,1,6,2,5,1,8,2,55,1,49,2,53,1,5,2,108,1,18,2,6,1,76,2,7,1,39,2,64,1,149,2,78,1,185,2,103,1,467,2,19,1,35,2,331,1,105,}, + {1,56,2,31,1,6,2,5,1,8,2,55,1,49,2,53,1,5,2,108,1,18,2,6,1,76,2,7,1,39,2,62,1,151,2,79,1,184,2,104,1,466,2,18,1,37,2,330,1,105,}, + {1,55,2,32,1,6,2,5,1,8,2,54,1,50,2,54,1,3,2,109,1,17,2,7,1,76,2,7,1,39,2,56,1,158,2,78,1,183,2,106,1,465,2,17,1,38,2,330,1,105,}, + {1,55,2,32,1,6,2,5,1,8,2,54,1,49,2,167,1,17,2,7,1,76,2,7,1,40,2,53,1,161,2,78,1,182,2,118,1,453,2,17,1,39,2,330,1,104,}, + {1,55,2,32,1,6,2,5,1,9,2,54,1,48,2,167,1,17,2,7,1,76,2,7,1,41,2,50,1,164,2,78,1,181,2,122,1,449,2,16,1,40,2,330,1,104,}, + {1,55,2,32,1,6,2,5,1,8,2,55,1,48,2,164,1,20,2,7,1,75,2,7,1,43,2,47,1,167,2,78,1,180,2,125,1,446,2,16,1,41,2,329,1,104,}, + {1,55,2,32,1,6,2,5,1,8,2,55,1,47,2,163,1,22,2,7,1,75,2,7,1,43,2,46,1,169,2,78,1,178,2,127,1,445,2,15,1,42,2,329,1,104,}, + {1,55,2,32,1,6,2,5,1,8,2,55,1,47,2,161,1,24,2,7,1,74,2,8,1,44,2,44,1,172,2,77,1,177,2,128,1,444,2,14,1,44,2,329,1,103,}, + {1,55,2,32,1,6,2,5,1,8,2,56,1,46,2,159,1,26,2,7,1,74,2,8,1,44,2,43,1,175,2,75,1,176,2,131,1,442,2,13,1,45,2,329,1,103,}, + {1,54,2,33,1,6,2,4,1,9,2,56,1,46,2,154,1,31,2,7,1,74,2,8,1,45,2,41,1,177,2,75,1,174,2,139,1,436,2,11,1,47,2,328,1,103,}, + {1,54,2,33,1,6,2,4,1,9,2,57,1,45,2,152,1,33,2,7,1,74,2,7,1,47,2,39,1,184,2,69,1,24,2,3,1,146,2,144,1,432,2,10,1,48,2,328,1,103,}, + {1,54,2,33,1,6,2,4,1,9,2,57,1,45,2,150,1,35,2,6,1,74,2,7,1,49,2,37,1,187,2,68,1,22,2,4,1,145,2,146,1,432,2,8,1,50,2,328,1,102,}, + {1,54,2,33,1,6,2,4,1,9,2,58,1,44,2,150,1,35,2,6,1,74,2,7,1,58,2,27,1,190,2,67,1,19,2,6,1,145,2,147,1,432,2,6,1,52,2,327,1,102,}, + {1,54,2,33,1,6,2,4,1,9,2,58,1,44,2,149,1,36,2,6,1,73,2,7,1,61,2,24,1,192,2,68,1,15,2,8,1,56,2,1,1,88,2,148,1,490,2,327,1,101,}, + {1,54,2,33,1,6,2,4,1,9,2,58,1,44,2,148,1,37,2,6,1,73,2,7,1,63,2,21,1,194,2,15,1,1,2,53,1,11,2,9,1,56,2,3,1,87,2,148,1,491,2,327,1,100,}, + {1,54,2,33,1,6,2,4,1,9,2,58,1,44,2,147,1,38,2,6,1,72,2,7,1,66,2,18,1,197,2,12,1,4,2,72,1,29,2,2,1,23,2,4,1,87,2,148,1,493,2,327,1,98,}, + {1,54,2,33,1,6,2,4,1,9,2,58,1,43,2,147,1,39,2,5,1,73,2,7,1,68,2,15,1,200,2,11,1,5,2,70,1,29,2,2,1,23,2,4,1,87,2,148,1,493,2,329,1,96,}, + {1,54,2,33,1,6,2,4,1,7,2,60,1,43,2,147,1,39,2,5,1,72,2,7,1,70,2,13,1,203,2,10,1,5,2,69,1,53,2,5,1,87,2,148,1,494,2,328,1,96,}, + {1,54,2,33,1,6,2,4,1,7,2,60,1,43,2,146,1,41,2,3,1,73,2,7,1,71,2,11,1,206,2,9,1,4,2,69,1,53,2,6,1,87,2,147,1,494,2,328,1,96,}, + {1,54,2,24,1,1,2,7,1,7,2,4,1,7,2,59,1,43,2,147,1,41,2,3,1,72,2,7,1,290,2,8,1,5,2,68,1,53,2,6,1,87,2,147,1,495,2,327,1,96,}, + {1,54,2,23,1,3,2,6,1,7,2,4,1,8,2,58,1,43,2,146,1,42,2,2,1,72,2,8,1,291,2,7,1,5,2,68,1,53,2,6,1,87,2,147,1,495,2,327,1,96,}, + {1,53,2,23,1,4,2,6,1,7,2,3,1,11,2,21,1,1,2,33,1,44,2,146,1,42,2,2,1,71,2,9,1,292,2,6,1,5,2,68,1,53,2,6,1,87,2,147,1,496,2,326,1,96,}, + {1,53,2,24,1,3,2,6,1,7,2,3,1,12,2,18,1,4,2,32,1,44,2,145,1,116,2,8,1,294,2,4,1,6,2,68,1,53,2,6,1,87,2,147,1,496,2,326,1,96,}, + {1,53,2,24,1,3,2,6,1,7,2,3,1,13,2,15,1,6,2,32,1,44,2,145,1,115,2,9,1,305,2,67,1,53,2,6,1,86,2,148,1,497,2,325,1,96,}, + {1,53,2,25,1,1,2,7,1,7,2,3,1,13,2,15,1,7,2,31,1,44,2,145,1,86,2,5,1,24,2,9,1,307,2,64,1,54,2,6,1,86,2,148,1,498,2,324,1,96,}, + {1,53,2,33,1,7,2,3,1,14,2,13,1,8,2,13,1,1,2,17,1,44,2,146,1,84,2,8,1,21,2,9,1,310,2,61,1,55,2,7,1,84,2,149,1,498,2,325,1,95,}, + {1,53,2,33,1,7,2,3,1,14,2,13,1,8,2,12,1,3,2,15,1,44,2,147,1,83,2,11,1,18,2,10,1,312,2,58,1,57,2,7,1,83,2,149,1,499,2,324,1,95,}, + {1,53,2,33,1,7,2,3,1,15,2,11,1,10,2,10,1,4,2,15,1,44,2,147,1,82,2,14,1,14,2,12,1,313,2,56,1,59,2,13,1,76,2,149,1,499,2,325,1,94,}, + {1,53,2,32,1,8,2,3,1,15,2,11,1,10,2,11,1,3,2,14,1,45,2,147,1,81,2,17,1,11,2,12,1,315,2,5,1,1,2,48,1,60,2,15,1,74,2,148,1,501,2,324,1,94,}, + {1,53,2,32,1,8,2,3,1,5,2,3,1,8,2,9,1,12,2,27,1,45,2,47,1,1,2,99,1,81,2,22,1,4,2,14,1,316,2,3,1,4,2,45,1,62,2,15,1,73,2,148,1,501,2,325,1,93,}, + {1,53,2,32,1,8,2,3,1,5,2,3,1,8,2,9,1,12,2,26,1,46,2,46,1,3,2,98,1,81,2,39,1,325,2,43,1,63,2,16,1,72,2,149,1,500,2,325,1,93,}, + {1,53,2,32,1,8,2,3,1,5,2,4,1,6,2,10,1,13,2,25,1,46,2,45,1,4,2,98,1,80,2,39,1,327,2,40,1,65,2,17,1,71,2,149,1,500,2,325,1,93,}, + {1,53,2,32,1,8,2,3,1,5,2,4,1,6,2,10,1,13,2,24,1,46,2,46,1,5,2,97,1,80,2,38,1,329,2,37,1,68,2,18,1,68,2,151,1,500,2,324,1,93,}, + {1,53,2,32,1,8,2,3,1,5,2,5,1,3,2,12,1,13,2,24,1,46,2,45,1,6,2,97,1,80,2,37,1,331,2,34,1,70,2,20,1,66,2,151,1,500,2,324,1,24,2,2,1,67,}, + {1,53,2,32,1,8,2,3,1,5,2,20,1,12,2,14,1,3,2,7,1,47,2,44,1,7,2,97,1,80,2,37,1,338,2,25,1,73,2,21,1,63,2,153,1,500,2,323,1,24,2,2,1,67,}, + {1,53,2,32,1,7,2,3,1,6,2,20,1,12,2,14,1,5,2,5,1,47,2,44,1,7,2,97,1,80,2,36,1,343,2,20,1,74,2,25,1,59,2,153,1,501,2,322,1,24,2,2,1,67,}, + {1,53,2,32,1,7,2,3,1,6,2,20,1,12,2,13,1,7,2,4,1,46,2,45,1,7,2,97,1,80,2,36,1,346,2,10,1,1,2,4,1,77,2,25,1,57,2,155,1,501,2,321,1,24,2,2,1,67,}, + {1,54,2,6,1,3,2,22,1,7,2,4,1,5,2,20,1,12,2,13,1,8,2,3,1,46,2,45,1,7,2,97,1,80,2,35,1,439,2,26,1,56,2,155,1,502,2,320,1,24,2,2,1,67,}, + {1,54,2,6,1,4,2,21,1,7,2,4,1,5,2,20,1,12,2,12,1,10,2,2,1,46,2,45,1,7,2,97,1,80,2,35,1,440,2,26,1,54,2,156,1,502,2,320,1,93,}, + {1,54,2,5,1,5,2,20,1,8,2,4,1,5,2,19,1,13,2,13,1,56,2,46,1,8,2,95,1,81,2,34,1,441,2,28,1,52,2,156,1,503,2,320,1,92,}, + {1,54,2,5,1,6,2,19,1,8,2,4,1,5,2,19,1,13,2,13,1,56,2,46,1,8,2,94,1,82,2,34,1,442,2,29,1,49,2,157,1,503,2,320,1,92,}, + {1,54,2,5,1,6,2,19,1,8,2,4,1,5,2,19,1,13,2,13,1,56,2,45,1,8,2,95,1,82,2,34,1,442,2,31,1,45,2,160,1,503,2,319,1,92,}, + {1,54,2,5,1,6,2,19,1,7,2,5,1,5,2,19,1,13,2,13,1,56,2,45,1,8,2,94,1,82,2,35,1,443,2,33,1,40,2,162,1,503,2,319,1,92,}, + {1,54,2,6,1,5,2,19,1,7,2,5,1,5,2,19,1,14,2,13,1,55,2,44,1,9,2,94,1,82,2,34,1,444,2,34,1,35,2,166,1,504,2,318,1,92,}, + {1,54,2,6,1,5,2,19,1,7,2,5,1,5,2,19,1,15,2,12,1,55,2,44,1,9,2,8,1,2,2,84,1,81,2,35,1,444,2,35,1,33,2,168,1,503,2,318,1,92,}, + {1,54,2,6,1,6,2,18,1,7,2,5,1,6,2,18,1,16,2,12,1,53,2,44,1,10,2,8,1,2,2,84,1,81,2,34,1,445,2,3,1,4,2,29,1,30,2,170,1,503,2,318,1,92,}, + {1,54,2,6,1,6,2,18,1,7,2,5,1,6,2,18,1,16,2,12,1,53,2,44,1,10,2,94,1,81,2,34,1,453,2,29,1,27,2,172,1,503,2,318,1,92,}, + {1,54,2,6,1,6,2,18,1,7,2,4,1,7,2,18,1,17,2,12,1,51,2,44,1,11,2,94,1,81,2,34,1,454,2,30,1,18,2,179,1,504,2,317,1,92,}, + {1,54,2,6,1,6,2,18,1,7,2,4,1,7,2,18,1,17,2,12,1,51,2,44,1,11,2,93,1,82,2,33,1,455,2,32,1,14,2,181,1,504,2,316,1,93,}, + {1,54,2,6,1,6,2,18,1,7,2,4,1,7,2,18,1,18,2,12,1,50,2,43,1,12,2,93,1,82,2,33,1,456,2,33,1,10,2,183,1,505,2,315,1,93,}, + {1,55,2,5,1,6,2,18,1,7,2,4,1,7,2,18,1,18,2,12,1,50,2,43,1,11,2,93,1,83,2,32,1,457,2,40,1,1,2,185,1,505,2,315,1,93,}, + {1,54,2,6,1,6,2,18,1,7,2,4,1,7,2,18,1,18,2,12,1,50,2,43,1,11,2,21,1,3,2,69,1,83,2,31,1,458,2,226,1,506,2,314,1,93,}, + {1,54,2,7,1,5,2,18,1,7,2,4,1,7,2,17,1,18,2,13,1,50,2,43,1,10,2,20,1,6,2,69,1,82,2,30,1,458,2,226,1,507,2,314,1,93,}, + {1,54,2,7,1,4,2,19,1,7,2,4,1,7,2,17,1,18,2,13,1,50,2,45,1,8,2,19,1,6,2,70,1,83,2,28,1,459,2,226,1,508,2,313,1,93,}, + {1,54,2,8,1,3,2,8,1,1,2,10,1,7,2,3,1,8,2,17,1,18,2,14,1,49,2,46,1,6,2,20,1,6,2,70,1,82,2,28,1,459,2,226,1,509,2,313,1,93,}, + {1,54,2,9,1,1,2,8,1,4,2,8,1,7,2,3,1,8,2,17,1,18,2,14,1,49,2,46,1,6,2,15,1,2,2,3,1,6,2,70,1,82,2,27,1,460,2,226,1,509,2,313,1,93,}, + {1,54,2,18,1,4,2,8,1,7,2,3,1,8,2,17,1,17,2,16,1,47,2,46,1,6,2,22,1,5,2,70,1,82,2,27,1,460,2,226,1,509,2,313,1,93,}, + {1,54,2,18,1,5,2,7,1,7,2,3,1,8,2,17,1,17,2,16,1,47,2,44,1,7,2,23,1,5,2,69,1,83,2,26,1,461,2,226,1,510,2,312,1,93,}, + {1,54,2,18,1,4,2,8,1,7,2,3,1,7,2,18,1,16,2,17,1,47,2,44,1,7,2,25,1,2,2,70,1,83,2,25,1,463,2,225,1,510,2,312,1,93,}, + {1,54,2,19,1,3,2,8,1,7,2,4,1,6,2,18,1,16,2,17,1,47,2,43,1,8,2,97,1,50,2,4,1,29,2,24,1,464,2,225,1,511,2,311,1,93,}, + {1,54,2,19,1,3,2,8,1,7,2,4,1,6,2,18,1,16,2,17,1,47,2,43,1,8,2,98,1,49,2,5,1,28,2,22,1,467,2,224,1,513,2,309,1,93,}, + {1,54,2,19,1,3,2,8,1,7,2,4,1,6,2,18,1,9,2,2,1,5,2,18,1,45,2,44,1,8,2,98,1,49,2,5,1,28,2,21,1,467,2,224,1,516,2,307,1,93,}, + {1,54,2,19,1,4,2,6,1,8,2,4,1,6,2,18,1,9,2,2,1,4,2,19,1,45,2,44,1,8,2,98,1,49,2,6,1,27,2,21,1,467,2,224,1,517,2,307,1,92,}, + {1,53,2,20,1,5,2,5,1,7,2,5,1,6,2,18,1,9,2,3,1,3,2,19,1,45,2,44,1,7,2,99,1,49,2,6,1,27,2,21,1,467,2,223,1,519,2,306,1,92,}, + {1,53,2,20,1,5,2,5,1,7,2,5,1,6,2,18,1,9,2,4,1,1,2,20,1,45,2,44,1,7,2,99,1,49,2,7,1,26,2,20,1,469,2,15,1,1,2,207,1,518,2,306,1,92,}, + {1,53,2,20,1,6,2,4,1,7,2,5,1,6,2,18,1,9,2,26,1,43,2,45,1,6,2,100,1,49,2,9,1,24,2,19,1,472,2,11,1,4,2,206,1,519,2,305,1,92,}, + {1,53,2,19,1,7,2,4,1,7,2,5,1,6,2,17,1,10,2,26,1,43,2,45,1,6,2,100,1,48,2,12,1,22,2,17,1,489,2,207,1,517,2,307,1,91,}, + {1,53,2,19,1,8,2,3,1,7,2,5,1,7,2,16,1,10,2,26,1,42,2,47,1,5,2,100,1,48,2,15,1,19,2,17,1,488,2,209,1,516,2,307,1,91,}, + {1,53,2,19,1,8,2,3,1,7,2,5,1,7,2,15,1,10,2,27,1,42,2,47,1,5,2,100,1,48,2,16,1,18,2,16,1,489,2,211,1,513,2,308,1,91,}, + {1,53,2,19,1,9,2,2,1,7,2,4,1,8,2,15,1,10,2,27,1,42,2,47,1,5,2,100,1,48,2,17,1,17,2,16,1,488,2,214,1,511,2,308,1,91,}, + {1,53,2,19,1,9,2,2,1,7,2,4,1,8,2,15,1,10,2,27,1,42,2,47,1,5,2,100,1,48,2,18,1,16,2,15,1,488,2,217,1,509,2,308,1,91,}, + {1,53,2,20,1,8,2,2,1,7,2,4,1,8,2,15,1,10,2,27,1,41,2,49,1,4,2,99,1,49,2,19,1,15,2,15,1,488,2,218,1,509,2,307,1,91,}, + {1,53,2,20,1,8,2,2,1,7,2,4,1,8,2,15,1,10,2,27,1,41,2,49,1,3,2,100,1,49,2,20,1,13,2,16,1,488,2,219,1,509,2,306,1,91,}, + {1,53,2,20,1,8,2,2,1,7,2,4,1,8,2,15,1,9,2,28,1,41,2,50,1,1,2,101,1,49,2,22,1,11,2,15,1,489,2,221,1,507,2,306,1,91,}, + {1,53,2,20,1,8,2,2,1,6,2,4,1,9,2,15,1,9,2,28,1,41,2,153,1,48,2,24,1,8,2,16,1,489,2,223,1,505,2,306,1,91,}, + {1,53,2,8,1,1,2,11,1,16,2,4,1,9,2,15,1,9,2,28,1,41,2,153,1,48,2,29,1,1,2,18,1,489,2,227,1,501,2,306,1,91,}, + {1,53,2,7,1,3,2,10,1,16,2,4,1,9,2,15,1,9,2,28,1,41,2,154,1,47,2,48,1,490,2,226,1,501,2,306,1,91,}, + {1,54,2,6,1,3,2,10,1,9,2,2,1,4,2,5,1,10,2,14,1,9,2,28,1,41,2,154,1,47,2,47,1,492,2,225,1,500,2,307,1,91,}, + {1,54,2,6,1,3,2,10,1,9,2,2,1,4,2,5,1,10,2,14,1,9,2,28,1,41,2,155,1,46,2,47,1,492,2,225,1,500,2,307,1,91,}, + {1,54,2,6,1,3,2,10,1,9,2,2,1,4,2,5,1,10,2,13,1,10,2,28,1,41,2,156,1,45,2,47,1,493,2,225,1,498,2,308,1,91,}, + {1,54,2,6,1,3,2,10,1,9,2,2,1,3,2,6,1,10,2,12,1,11,2,28,1,41,2,157,1,44,2,47,1,493,2,225,1,498,2,308,1,91,}, + {1,54,2,6,1,3,2,10,1,9,2,2,1,3,2,6,1,11,2,10,1,12,2,28,1,42,2,157,1,43,2,47,1,494,2,225,1,497,2,308,1,91,}, + {1,54,2,6,1,4,2,9,1,9,2,3,1,1,2,7,1,11,2,10,1,12,2,28,1,42,2,158,1,43,2,45,1,494,2,226,1,497,2,308,1,91,}, + {1,54,2,7,1,2,2,10,1,9,2,11,1,11,2,9,1,13,2,28,1,42,2,158,1,43,2,45,1,494,2,226,1,497,2,308,1,91,}, + {1,54,2,19,1,9,2,11,1,11,2,9,1,13,2,28,1,42,2,52,1,1,2,105,1,42,2,45,1,494,2,227,1,498,2,307,1,91,}, + {1,55,2,18,1,10,2,10,1,11,2,9,1,13,2,28,1,42,2,51,1,3,2,104,1,42,2,45,1,494,2,227,1,497,2,308,1,91,}, + {1,55,2,18,1,11,2,9,1,12,2,8,1,13,2,28,1,42,2,51,1,3,2,104,1,42,2,45,1,493,2,228,1,497,2,309,1,90,}, + {1,55,2,18,1,12,2,8,1,12,2,8,1,14,2,27,1,42,2,52,1,1,2,105,1,42,2,45,1,493,2,228,1,497,2,309,1,90,}, + {1,55,2,18,1,13,2,7,1,13,2,7,1,14,2,27,1,42,2,158,1,42,2,45,1,492,2,229,1,497,2,309,1,90,}, + {1,55,2,4,1,2,2,12,1,13,2,7,1,13,2,7,1,13,2,28,1,41,2,159,1,42,2,45,1,491,2,230,1,497,2,309,1,90,}, + {1,55,2,3,1,4,2,11,1,14,2,7,1,12,2,7,1,13,2,29,1,40,2,158,1,43,2,45,1,490,2,230,1,498,2,310,1,89,}, + {1,55,2,3,1,4,2,11,1,6,2,2,1,6,2,7,1,12,2,6,1,13,2,30,1,39,2,55,1,2,2,102,1,44,2,43,1,491,2,230,1,498,2,310,1,89,}, + {1,55,2,2,1,5,2,11,1,6,2,3,1,5,2,7,1,13,2,4,1,14,2,31,1,38,2,54,1,4,2,101,1,44,2,43,1,491,2,229,1,500,2,309,1,89,}, + {1,55,2,2,1,5,2,10,1,7,2,4,1,3,2,8,1,31,2,31,1,38,2,54,1,3,2,102,1,45,2,42,1,491,2,229,1,500,2,309,1,89,}, + {1,54,2,3,1,5,2,10,1,7,2,4,1,3,2,8,1,31,2,31,1,38,2,55,1,1,2,103,1,45,2,42,1,491,2,229,1,499,2,310,1,89,}, + {1,54,2,3,1,5,2,11,1,6,2,5,1,1,2,9,1,30,2,32,1,38,2,159,1,45,2,41,1,492,2,229,1,499,2,310,1,89,}, + {1,54,2,3,1,5,2,11,1,6,2,15,1,30,2,32,1,38,2,159,1,46,2,40,1,492,2,229,1,499,2,310,1,89,}, + {1,54,2,4,1,4,2,11,1,6,2,15,1,30,2,32,1,38,2,159,1,46,2,40,1,492,2,229,1,499,2,310,1,89,}, + {1,54,2,4,1,4,2,11,1,6,2,15,1,30,2,33,1,36,2,160,1,47,2,39,1,491,2,230,1,499,2,310,1,89,}, + {1,54,2,5,1,3,2,11,1,6,2,15,1,30,2,33,1,36,2,160,1,47,2,39,1,491,2,230,1,499,2,309,1,90,}, + {1,54,2,6,1,1,2,12,1,6,2,15,1,30,2,34,1,35,2,160,1,47,2,39,1,490,2,232,1,498,2,309,1,90,}, + {1,54,2,19,1,6,2,14,1,31,2,34,1,35,2,160,1,52,2,34,1,490,2,232,1,498,2,309,1,90,}, + {1,54,2,19,1,5,2,15,1,31,2,35,1,34,2,160,1,54,2,32,1,489,2,234,1,497,2,309,1,90,}, + {1,54,2,4,1,1,2,14,1,5,2,3,1,3,2,9,1,31,2,35,1,34,2,160,1,55,2,31,1,489,2,234,1,497,2,309,1,90,}, + {1,55,2,1,1,4,2,13,1,5,2,2,1,5,2,8,1,31,2,35,1,34,2,160,1,55,2,30,1,489,2,236,1,496,2,309,1,90,}, + {1,61,2,12,1,5,2,2,1,6,2,7,1,31,2,35,1,34,2,159,1,57,2,29,1,489,2,236,1,496,2,309,1,90,}, + {1,61,2,13,1,3,2,3,1,5,2,8,1,6,2,2,1,23,2,35,1,34,2,159,1,57,2,29,1,489,2,237,1,496,2,308,1,90,}, + {1,62,2,12,1,3,2,4,1,3,2,9,1,6,2,2,1,23,2,35,1,34,2,159,1,58,2,28,1,489,2,239,1,494,2,308,1,90,}, + {1,62,2,13,1,1,2,17,1,6,2,2,1,23,2,36,1,33,2,160,1,57,2,28,1,489,2,241,1,493,2,307,1,90,}, + {1,62,2,31,1,6,2,2,1,23,2,36,1,33,2,160,1,58,2,27,1,489,2,243,1,491,2,307,1,90,}, + {1,61,2,32,1,6,2,2,1,23,2,36,1,33,2,160,1,58,2,27,1,489,2,243,1,491,2,307,1,90,}, + {1,61,2,32,1,6,2,2,1,22,2,37,1,33,2,160,1,59,2,26,1,489,2,243,1,490,2,308,1,90,}, + {1,61,2,32,1,6,2,2,1,22,2,37,1,33,2,160,1,59,2,26,1,490,2,242,1,490,2,308,1,90,}, + {1,61,2,14,1,6,2,12,1,6,2,2,1,22,2,37,1,33,2,160,1,59,2,26,1,491,2,240,1,490,2,310,1,89,}, + {1,61,2,13,1,8,2,11,1,6,2,3,1,21,2,37,1,33,2,160,1,60,2,24,1,493,2,238,1,491,2,310,1,89,}, + {1,61,2,13,1,9,2,10,1,6,2,3,1,21,2,38,1,32,2,160,1,60,2,24,1,494,2,5,1,3,2,228,1,492,2,311,1,88,}, + {1,61,2,12,1,10,2,10,1,5,2,5,1,20,2,38,1,32,2,160,1,60,2,23,1,505,2,225,1,492,2,312,1,88,}, + {1,61,2,12,1,11,2,10,1,4,2,5,1,20,2,38,1,33,2,159,1,60,2,23,1,507,2,223,1,492,2,312,1,88,}, + {1,61,2,12,1,11,2,10,1,3,2,6,1,20,2,38,1,33,2,159,1,60,2,23,1,508,2,221,1,492,2,313,1,88,}, + {1,61,2,12,1,11,2,11,1,1,2,7,1,20,2,38,1,33,2,159,1,59,2,23,1,509,2,221,1,492,2,313,1,22,2,2,1,64,}, + {1,61,2,12,1,11,2,20,1,20,2,37,1,33,2,160,1,58,2,23,1,510,2,219,1,492,2,314,1,22,2,2,1,64,}, + {1,61,2,12,1,11,2,20,1,20,2,37,1,32,2,161,1,58,2,22,1,511,2,219,1,491,2,315,1,22,2,2,1,64,}, + {1,60,2,13,1,11,2,12,1,1,2,7,1,19,2,39,1,31,2,161,1,58,2,22,1,511,2,219,1,490,2,316,1,88,}, + {1,60,2,13,1,11,2,11,1,3,2,6,1,16,2,42,1,31,2,160,1,59,2,21,1,512,2,220,1,488,2,317,1,22,2,2,1,64,}, + {1,59,2,14,1,11,2,11,1,3,2,6,1,15,2,43,1,31,2,159,1,61,2,20,1,512,2,220,1,487,2,318,1,22,2,2,1,64,}, + {1,59,2,14,1,12,2,9,1,5,2,5,1,15,2,43,1,30,2,160,1,61,2,20,1,512,2,220,1,487,2,318,1,22,2,2,1,64,}, + {1,59,2,14,1,12,2,9,1,5,2,5,1,15,2,43,1,30,2,159,1,63,2,19,1,512,2,220,1,486,2,319,1,22,2,2,1,64,}, + {1,59,2,14,1,12,2,8,1,6,2,5,1,15,2,44,1,29,2,159,1,63,2,19,1,513,2,219,1,486,2,318,1,22,2,3,1,64,}, + {1,59,2,14,1,12,2,8,1,6,2,5,1,15,2,44,1,28,2,160,1,64,2,17,1,514,2,217,1,486,2,175,1,1,2,144,1,22,2,3,1,64,}, + {1,59,2,14,1,12,2,7,1,7,2,5,1,15,2,45,1,27,2,160,1,64,2,16,1,516,2,214,1,487,2,175,1,3,2,142,1,23,2,3,1,64,}, + {1,59,2,14,1,12,2,7,1,7,2,5,1,15,2,45,1,26,2,161,1,64,2,16,1,516,2,212,1,488,2,176,1,3,2,143,1,22,2,4,1,63,}, + {1,60,2,13,1,12,2,5,1,9,2,5,1,14,2,46,1,26,2,161,1,64,2,16,1,516,2,210,1,489,2,177,1,4,2,142,1,22,2,4,1,63,}, + {1,60,2,13,1,12,2,3,1,11,2,5,1,14,2,46,1,25,2,162,1,64,2,16,1,516,2,209,1,490,2,177,1,4,2,142,1,22,2,5,1,62,}, + {1,60,2,13,1,12,2,2,1,12,2,5,1,13,2,48,1,24,2,162,1,64,2,17,1,515,2,208,1,491,2,178,1,2,2,143,1,22,2,5,1,62,}, + {1,59,2,14,1,12,2,2,1,12,2,5,1,13,2,48,1,23,2,163,1,64,2,17,1,516,2,206,1,474,2,2,1,16,2,323,1,23,2,4,1,62,}, + {1,59,2,14,1,26,2,5,1,12,2,50,1,22,2,163,1,65,2,16,1,516,2,206,1,474,2,3,1,14,2,324,1,23,2,4,1,62,}, + {1,59,2,14,1,26,2,5,1,12,2,50,1,21,2,164,1,65,2,16,1,517,2,204,1,475,2,3,1,14,2,324,1,23,2,4,1,62,}, + {1,59,2,14,1,25,2,6,1,12,2,50,1,21,2,164,1,65,2,16,1,517,2,205,1,474,2,4,1,12,2,325,1,23,2,4,1,62,}, + {1,59,2,14,1,25,2,7,1,11,2,51,1,20,2,164,1,65,2,15,1,518,2,205,1,473,2,9,1,6,2,327,1,23,2,4,1,62,}, + {1,59,2,14,1,25,2,7,1,10,2,52,1,19,2,165,1,65,2,14,1,520,2,204,1,472,2,343,1,23,2,4,1,62,}, + {1,59,2,14,1,25,2,7,1,10,2,53,1,18,2,166,1,64,2,14,1,520,2,204,1,471,2,344,1,23,2,4,1,62,}, + {1,59,2,14,1,25,2,7,1,10,2,53,1,18,2,166,1,64,2,13,1,521,2,204,1,470,2,345,1,23,2,4,1,62,}, + {1,59,2,14,1,25,2,7,1,10,2,54,1,17,2,166,1,64,2,13,1,521,2,204,1,470,2,345,1,22,2,5,1,62,}, + {1,59,2,14,1,25,2,7,1,10,2,54,1,17,2,167,1,63,2,13,1,522,2,203,1,470,2,345,1,22,2,5,1,62,}, + {1,59,2,13,1,26,2,7,1,10,2,54,1,17,2,167,1,63,2,13,1,522,2,203,1,412,2,2,1,56,2,345,1,22,2,5,1,62,}, + {1,59,2,13,1,26,2,7,1,10,2,54,1,17,2,168,1,62,2,13,1,523,2,202,1,411,2,3,1,57,2,344,1,22,2,5,1,62,}, + {1,59,2,13,1,26,2,7,1,10,2,55,1,16,2,168,1,61,2,14,1,523,2,202,1,410,2,4,1,57,2,344,1,22,2,5,1,62,}, + {1,59,2,13,1,26,2,8,1,8,2,56,1,16,2,169,1,60,2,14,1,524,2,201,1,409,2,5,1,57,2,344,1,22,2,5,1,62,}, + {1,59,2,13,1,24,2,10,1,8,2,57,1,15,2,169,1,60,2,15,1,523,2,201,1,408,2,6,1,56,2,345,1,22,2,5,1,62,}, + {1,59,2,13,1,23,2,12,1,6,2,58,1,15,2,170,1,59,2,15,1,527,2,196,1,408,2,7,1,56,2,345,1,22,2,5,1,62,}, + {1,60,2,12,1,22,2,13,1,6,2,59,1,15,2,169,1,59,2,15,1,529,2,194,1,408,2,6,1,57,2,345,1,22,2,5,1,62,}, + {1,60,2,12,1,12,2,2,1,8,2,15,1,3,2,60,1,15,2,170,1,58,2,15,1,531,2,193,1,406,2,7,1,57,2,345,1,22,2,6,1,61,}, + {1,60,2,12,1,12,2,2,1,7,2,80,1,14,2,170,1,58,2,15,1,533,2,186,1,1,2,4,1,405,2,8,1,58,2,344,1,21,2,7,1,61,}, + {1,60,2,12,1,12,2,2,1,7,2,80,1,14,2,170,1,58,2,15,1,535,2,182,1,5,2,1,1,405,2,8,1,60,2,343,1,21,2,7,1,61,}, + {1,60,2,12,1,11,2,3,1,7,2,81,1,13,2,170,1,57,2,17,1,535,2,180,1,412,2,8,1,60,2,343,1,21,2,7,1,61,}, + {1,60,2,12,1,7,2,2,1,2,2,3,1,7,2,82,1,12,2,170,1,57,2,17,1,535,2,43,1,2,2,135,1,411,2,8,1,62,2,342,1,21,2,7,1,61,}, + {1,60,2,12,1,7,2,7,1,7,2,83,1,11,2,171,1,55,2,18,1,536,2,40,1,6,2,132,1,412,2,8,1,62,2,342,1,21,2,7,1,61,}, + {1,61,2,11,1,7,2,7,1,7,2,84,1,10,2,171,1,55,2,18,1,537,2,37,1,12,2,128,1,411,2,8,1,63,2,341,1,22,2,7,1,61,}, + {1,61,2,11,1,8,2,6,1,7,2,84,1,9,2,173,1,53,2,19,1,539,2,33,1,17,2,124,1,412,2,8,1,62,2,342,1,22,2,7,1,61,}, + {1,61,2,11,1,8,2,6,1,6,2,85,1,9,2,173,1,53,2,19,1,541,2,30,1,20,2,122,1,411,2,9,1,62,2,342,1,23,2,6,1,61,}, + {1,61,2,10,1,9,2,6,1,6,2,86,1,7,2,175,1,51,2,20,1,543,2,27,1,26,2,116,1,411,2,10,1,62,2,342,1,24,2,5,1,61,}, + {1,61,2,10,1,9,2,6,1,5,2,38,1,1,2,49,1,6,2,175,1,51,2,20,1,544,2,19,1,35,2,113,1,410,2,12,1,62,2,342,1,25,2,4,1,61,}, + {1,61,2,10,1,9,2,6,1,5,2,36,1,5,2,49,1,2,2,178,1,49,2,21,1,545,2,16,1,44,2,106,1,408,2,14,1,62,2,342,1,25,2,4,1,61,}, + {1,60,2,11,1,9,2,6,1,4,2,36,1,7,2,228,1,48,2,22,1,553,2,6,1,49,2,7,1,1,2,95,1,407,2,15,1,62,2,342,1,24,2,5,1,61,}, + {1,60,2,11,1,9,2,7,1,3,2,8,1,1,2,27,1,7,2,229,1,47,2,22,1,617,2,95,1,405,2,16,1,61,2,343,1,22,2,7,1,61,}, + {1,60,2,11,1,12,2,5,1,1,2,8,1,3,2,25,1,9,2,228,1,46,2,23,1,618,2,94,1,405,2,15,1,62,2,343,1,21,2,8,1,61,}, + {1,60,2,11,1,7,2,2,1,4,2,13,1,3,2,25,1,9,2,229,1,45,2,23,1,618,2,94,1,404,2,15,1,63,2,343,1,20,2,9,1,61,}, + {1,60,2,10,1,8,2,3,1,3,2,13,1,4,2,24,1,9,2,230,1,43,2,24,1,619,2,93,1,404,2,14,1,63,2,345,1,19,2,9,1,61,}, + {1,60,2,10,1,8,2,3,1,4,2,12,1,4,2,24,1,9,2,230,1,42,2,25,1,619,2,93,1,403,2,14,1,64,2,345,1,18,2,9,1,62,}, + {1,60,2,10,1,8,2,4,1,3,2,12,1,4,2,24,1,10,2,229,1,42,2,25,1,620,2,91,1,404,2,14,1,63,2,347,1,17,2,9,1,62,}, + {1,60,2,10,1,8,2,4,1,2,2,13,1,4,2,24,1,10,2,229,1,41,2,26,1,620,2,91,1,402,2,15,1,63,2,349,1,16,2,9,1,62,}, + {1,61,2,10,1,7,2,19,1,5,2,23,1,10,2,230,1,40,2,26,1,620,2,90,1,401,2,17,1,61,2,351,1,16,2,9,1,62,}, + {1,61,2,10,1,8,2,18,1,5,2,23,1,10,2,230,1,39,2,27,1,620,2,90,1,399,2,18,1,21,2,3,1,37,2,352,1,16,2,9,1,62,}, + {1,62,2,9,1,8,2,18,1,4,2,24,1,10,2,231,1,38,2,27,1,620,2,90,1,395,2,21,1,22,2,5,1,34,2,353,1,16,2,9,1,62,}, + {1,62,2,9,1,8,2,18,1,4,2,25,1,9,2,232,1,4,2,6,1,26,2,28,1,620,2,90,1,394,2,21,1,23,2,8,1,29,2,355,1,15,2,10,1,62,}, + {1,63,2,8,1,8,2,18,1,3,2,26,1,9,2,245,1,22,2,29,1,620,2,90,1,393,2,21,1,24,2,10,1,10,2,7,1,8,2,357,1,15,2,10,1,62,}, + {1,63,2,8,1,7,2,12,1,1,2,6,1,3,2,27,1,8,2,246,1,20,2,30,1,620,2,87,1,396,2,21,1,25,2,11,1,7,2,8,1,6,2,359,1,15,2,10,1,62,}, + {1,63,2,8,1,7,2,11,1,3,2,6,1,1,2,32,1,4,2,247,1,17,2,32,1,621,2,84,1,397,2,21,1,25,2,14,1,5,2,8,1,3,2,362,1,15,2,10,1,62,}, + {1,63,2,8,1,6,2,12,1,4,2,38,1,4,2,248,1,14,2,34,1,620,2,84,1,398,2,20,1,26,2,28,1,1,2,363,1,15,2,10,1,62,}, + {1,63,2,8,1,6,2,6,1,1,2,4,1,5,2,18,1,2,2,18,1,5,2,249,1,7,2,39,1,620,2,84,1,397,2,21,1,25,2,393,1,15,2,10,1,62,}, + {1,63,2,8,1,6,2,5,1,3,2,3,1,6,2,6,1,2,2,8,1,4,2,17,1,5,2,295,1,619,2,84,1,397,2,21,1,24,2,395,1,15,2,10,1,62,}, + {1,63,2,7,1,7,2,5,1,3,2,3,1,6,2,5,1,4,2,7,1,4,2,18,1,5,2,294,1,619,2,83,1,397,2,22,1,23,2,396,1,15,2,10,1,62,}, + {1,63,2,7,1,7,2,5,1,3,2,3,1,6,2,4,1,6,2,5,1,6,2,17,1,4,2,295,1,618,2,83,1,396,2,24,1,22,2,396,1,16,2,10,1,62,}, + {1,63,2,7,1,7,2,5,1,3,2,3,1,6,2,4,1,7,2,4,1,6,2,18,1,3,2,295,1,618,2,82,1,395,2,26,1,21,2,396,1,16,2,10,1,63,}, + {1,63,2,7,1,7,2,6,1,1,2,4,1,6,2,4,1,8,2,2,1,8,2,18,1,1,2,296,1,617,2,82,1,394,2,28,1,20,2,396,1,17,2,10,1,63,}, + {1,63,2,7,1,7,2,11,1,6,2,4,1,18,2,315,1,617,2,80,1,394,2,28,1,21,2,19,1,1,2,377,1,17,2,10,1,63,}, + {1,63,2,7,1,7,2,11,1,6,2,4,1,19,2,314,1,617,2,80,1,392,2,29,1,8,2,1,1,6,2,25,1,4,2,375,1,17,2,10,1,63,}, + {1,63,2,7,1,7,2,11,1,6,2,4,1,19,2,314,1,617,2,79,1,391,2,30,1,8,2,3,1,4,2,25,1,6,2,374,1,17,2,10,1,63,}, + {1,64,2,6,1,8,2,10,1,7,2,3,1,20,2,312,1,618,2,79,1,390,2,31,1,6,2,6,1,2,2,26,1,7,2,373,1,17,2,10,1,63,}, + {1,64,2,6,1,8,2,10,1,7,2,3,1,20,2,312,1,618,2,79,1,389,2,31,1,4,2,36,1,9,2,373,1,16,2,10,1,63,}, + {1,64,2,6,1,8,2,10,1,7,2,2,1,22,2,311,1,617,2,80,1,388,2,32,1,4,2,32,1,14,2,372,1,16,2,10,1,63,}, + {1,65,2,5,1,8,2,10,1,7,2,2,1,22,2,311,1,617,2,81,1,386,2,33,1,4,2,30,1,17,2,372,1,15,2,9,1,64,}, + {1,65,2,5,1,8,2,10,1,7,2,2,1,22,2,311,1,617,2,81,1,385,2,34,1,4,2,25,1,23,2,372,1,13,2,10,1,64,}, + {1,66,2,3,1,10,2,9,1,7,2,2,1,22,2,311,1,617,2,82,1,383,2,37,1,1,2,24,1,26,2,372,1,12,2,10,1,64,}, + {1,66,2,3,1,10,2,9,1,7,2,2,1,22,2,311,1,617,2,67,1,5,2,9,1,383,2,61,1,29,2,371,1,12,2,10,1,64,}, + {1,67,2,2,1,10,2,3,1,3,2,3,1,31,2,8,1,1,2,302,1,617,2,65,1,397,2,62,1,31,2,369,1,13,2,10,1,64,}, + {1,67,2,2,1,10,2,3,1,3,2,3,1,32,2,5,1,4,2,301,1,617,2,63,1,398,2,35,1,1,2,26,1,35,2,365,1,14,2,9,1,65,}, + {1,67,2,3,1,9,2,2,1,5,2,2,1,41,2,301,1,618,2,60,1,399,2,35,1,3,2,25,1,36,2,362,1,16,2,9,1,65,}, + {1,67,2,3,1,9,2,2,1,5,2,2,1,24,2,4,1,14,2,300,1,620,2,57,1,399,2,36,1,2,2,25,1,37,2,362,1,16,2,9,1,65,}, + {1,67,2,3,1,9,2,2,1,30,2,6,1,13,2,300,1,622,2,53,1,400,2,36,1,3,2,25,1,37,2,361,1,17,2,9,1,65,}, + {1,68,2,2,1,9,2,2,1,29,2,7,1,13,2,300,1,624,2,49,1,401,2,37,1,2,2,25,1,37,2,362,1,16,2,10,1,65,}, + {1,68,2,2,1,9,2,2,1,28,2,8,1,13,2,300,1,628,2,9,1,5,2,29,1,402,2,64,1,38,2,361,1,17,2,10,1,65,}, + {1,79,2,3,1,26,2,9,1,13,2,299,1,648,2,9,1,5,2,8,1,403,2,64,1,38,2,362,1,17,2,10,1,65,}, + {1,79,2,3,1,26,2,9,1,13,2,299,1,664,2,5,1,403,2,65,1,37,2,363,1,17,2,9,1,66,}, + {1,79,2,3,1,25,2,10,1,13,2,299,1,665,2,3,1,403,2,65,1,37,2,364,1,17,2,9,1,66,}, + {1,79,2,3,1,25,2,10,1,13,2,299,1,666,2,1,1,404,2,64,1,37,2,365,1,16,2,10,1,66,}, + {1,79,2,4,1,24,2,10,1,13,2,299,1,1070,2,64,1,38,2,365,1,16,2,10,1,66,}, + {1,79,2,4,1,24,2,10,1,13,2,299,1,1070,2,63,1,39,2,365,1,15,2,11,1,66,}, + {1,79,2,4,1,24,2,11,1,12,2,299,1,1069,2,63,1,39,2,365,1,16,2,11,1,66,}, + {1,79,2,4,1,24,2,11,1,12,2,299,1,1067,2,65,1,39,2,365,1,16,2,10,1,67,}, + {1,79,2,4,1,14,2,3,1,7,2,11,1,12,2,299,1,1066,2,65,1,39,2,365,1,17,2,10,1,67,}, + {1,79,2,4,1,15,2,2,1,7,2,11,1,12,2,299,1,1065,2,65,1,40,2,365,1,17,2,9,1,68,}, + {1,79,2,4,1,15,2,2,1,7,2,12,1,11,2,299,1,1064,2,65,1,40,2,366,1,17,2,9,1,68,}, + {1,79,2,4,1,24,2,12,1,11,2,299,1,1064,2,64,1,41,2,365,1,18,2,9,1,68,}, + {1,79,2,4,1,24,2,12,1,11,2,299,1,1063,2,64,1,41,2,366,1,18,2,9,1,68,}, + {1,79,2,3,1,25,2,12,1,11,2,299,1,1063,2,32,1,1,2,30,1,42,2,366,1,18,2,9,1,68,}, + {1,79,2,3,1,24,2,13,1,11,2,299,1,1063,2,30,1,5,2,25,1,44,2,367,1,17,2,9,1,69,}, + {1,79,2,3,1,13,2,1,1,10,2,13,1,11,2,299,1,1063,2,29,1,7,2,16,1,51,2,143,1,1,2,224,1,17,2,9,1,69,}, + {1,79,2,3,1,12,2,3,1,9,2,13,1,11,2,299,1,1062,2,31,1,7,2,13,1,53,2,142,1,3,2,222,1,18,2,8,1,70,}, + {1,79,2,3,1,11,2,5,1,8,2,14,1,11,2,298,1,1062,2,32,1,6,2,9,1,56,2,143,1,3,2,222,1,18,2,7,1,71,}, + {1,80,2,2,1,11,2,6,1,7,2,14,1,11,2,298,1,1061,2,34,1,6,2,4,1,58,2,146,1,1,2,223,1,18,2,6,1,72,}, + {1,80,2,2,1,11,2,7,1,6,2,15,1,10,2,298,1,1060,2,28,1,2,2,5,1,65,2,373,1,18,2,6,1,72,}, + {1,80,2,2,1,11,2,8,1,5,2,15,1,10,2,298,1,1055,2,32,1,5,2,3,1,64,2,374,1,18,2,5,1,73,}, + {1,80,2,2,1,11,2,9,1,5,2,15,1,10,2,297,1,1054,2,33,1,6,2,2,1,63,2,375,1,18,2,5,1,73,}, + {1,80,2,2,1,11,2,9,1,5,2,15,1,10,2,297,1,1053,2,33,1,71,2,376,1,17,2,5,1,74,}, + {1,80,2,2,1,11,2,9,1,5,2,15,1,11,2,5,1,1,2,290,1,1052,2,8,1,3,2,23,1,71,2,377,1,16,2,5,1,74,}, + {1,80,2,2,1,12,2,8,1,5,2,15,1,11,2,4,1,3,2,289,1,1051,2,8,1,7,2,19,1,70,2,379,1,16,2,5,1,74,}, + {1,80,2,2,1,12,2,8,1,5,2,15,1,12,2,3,1,4,2,288,1,1050,2,8,1,10,2,16,1,69,2,382,1,15,2,5,1,74,}, + {1,94,2,8,1,6,2,14,1,12,2,3,1,4,2,288,1,885,2,4,1,160,2,9,1,12,2,13,1,69,2,383,1,15,2,5,1,74,}, + {1,94,2,8,1,6,2,14,1,13,2,2,1,5,2,287,1,883,2,7,1,158,2,9,1,14,2,11,1,70,2,384,1,13,2,6,1,74,}, + {1,94,2,8,1,6,2,15,1,12,2,2,1,5,2,287,1,882,2,9,1,157,2,9,1,14,2,10,1,71,2,384,1,13,2,5,1,75,}, + {1,94,2,8,1,6,2,15,1,19,2,287,1,881,2,11,1,155,2,9,1,16,2,8,1,72,2,384,1,13,2,5,1,75,}, + {1,94,2,8,1,6,2,15,1,19,2,287,1,880,2,14,1,153,2,9,1,16,2,7,1,73,2,384,1,13,2,4,1,76,}, + {1,94,2,8,1,6,2,15,1,20,2,286,1,879,2,17,1,150,2,9,1,18,2,5,1,74,2,384,1,13,2,4,1,76,}, + {1,94,2,8,1,6,2,15,1,20,2,286,1,878,2,20,1,148,2,9,1,19,2,3,1,63,2,3,1,8,2,385,1,13,2,4,1,76,}, + {1,95,2,8,1,6,2,14,1,21,2,285,1,877,2,23,1,27,2,7,1,111,2,10,1,85,2,4,1,6,2,386,1,12,2,5,1,76,}, + {1,95,2,8,1,6,2,14,1,21,2,285,1,876,2,39,1,3,2,6,1,1,2,10,1,110,2,10,1,85,2,6,1,2,2,388,1,12,2,5,1,76,}, + {1,95,2,8,1,7,2,13,1,22,2,284,1,876,2,59,1,109,2,10,1,86,2,396,1,12,2,5,1,76,}, + {1,95,2,8,1,7,2,13,1,22,2,284,1,875,2,60,1,109,2,10,1,86,2,396,1,12,2,5,1,76,}, + {1,95,2,8,1,7,2,13,1,23,2,283,1,875,2,60,1,109,2,9,1,87,2,396,1,12,2,5,1,76,}, + {1,95,2,9,1,6,2,13,1,23,2,283,1,875,2,62,1,107,2,9,1,87,2,396,1,12,2,5,1,76,}, + {1,95,2,9,1,7,2,12,1,23,2,283,1,875,2,68,1,100,2,9,1,88,2,395,1,13,2,5,1,76,}, + {1,95,2,9,1,7,2,12,1,23,2,282,1,876,2,69,1,99,2,8,1,90,2,394,1,13,2,5,1,76,}, + {1,95,2,9,1,7,2,12,1,23,2,282,1,876,2,71,1,96,2,8,1,91,2,394,1,12,2,6,1,76,}, + {1,96,2,8,1,7,2,12,1,23,2,282,1,876,2,72,1,95,2,7,1,93,2,393,1,12,2,5,1,77,}, + {1,96,2,8,1,8,2,11,1,23,2,281,1,877,2,73,1,93,2,7,1,94,2,392,1,13,2,5,1,77,}, + {1,97,2,7,1,8,2,11,1,24,2,280,1,878,2,73,1,92,2,6,1,96,2,391,1,13,2,5,1,77,}, + {1,86,2,2,1,9,2,8,1,8,2,10,1,24,2,280,1,878,2,74,1,90,2,7,1,96,2,391,1,13,2,5,1,77,}, + {1,86,2,2,1,9,2,8,1,8,2,10,1,24,2,281,1,877,2,75,1,89,2,6,1,97,2,390,1,14,2,5,1,77,}, + {1,86,2,2,1,9,2,8,1,8,2,10,1,24,2,281,1,877,2,76,1,87,2,7,1,97,2,390,1,14,2,5,1,77,}, + {1,86,2,2,1,9,2,8,1,8,2,10,1,24,2,281,1,877,2,76,1,87,2,6,1,98,2,390,1,14,2,5,1,77,}, + {1,86,2,2,1,9,2,8,1,8,2,10,1,24,2,281,1,876,2,77,1,86,2,7,1,98,2,389,1,14,2,6,1,77,}, + {1,86,2,3,1,8,2,8,1,8,2,10,1,24,2,281,1,876,2,77,1,85,2,7,1,99,2,389,1,14,2,5,1,78,}, + {1,86,2,3,1,9,2,7,1,8,2,10,1,24,2,281,1,875,2,79,1,84,2,7,1,99,2,389,1,14,2,5,1,78,}, + {1,86,2,4,1,8,2,7,1,8,2,10,1,24,2,281,1,875,2,79,1,83,2,7,1,100,2,388,1,15,2,4,1,79,}, + {1,86,2,4,1,8,2,7,1,8,2,10,1,24,2,281,1,874,2,80,1,83,2,7,1,100,2,388,1,15,2,4,1,79,}, + {1,86,2,4,1,8,2,7,1,8,2,10,1,25,2,280,1,874,2,80,1,82,2,8,1,42,2,1,1,57,2,388,1,15,2,4,1,79,}, + {1,87,2,3,1,8,2,7,1,8,2,10,1,25,2,280,1,873,2,81,1,82,2,8,1,40,2,4,1,56,2,388,1,15,2,4,1,79,}, + {1,87,2,3,1,8,2,7,1,8,2,10,1,26,2,278,1,873,2,82,1,81,2,9,1,38,2,7,1,55,2,389,1,15,2,3,1,79,}, + {1,87,2,3,1,8,2,7,1,9,2,9,1,26,2,277,1,873,2,83,1,81,2,9,1,36,2,10,1,54,2,389,1,15,2,3,1,79,}, + {1,87,2,3,1,8,2,8,1,8,2,9,1,26,2,274,1,876,2,83,1,80,2,10,1,32,2,16,1,53,2,388,1,16,2,2,1,79,}, + {1,87,2,3,1,8,2,8,1,9,2,8,1,26,2,272,1,877,2,85,1,78,2,11,1,31,2,18,1,52,2,388,1,97,}, + {1,87,2,3,1,9,2,7,1,9,2,8,1,26,2,271,1,878,2,85,1,78,2,11,1,29,2,20,1,52,2,48,1,3,2,337,1,97,}, + {1,87,2,3,1,9,2,7,1,9,2,8,1,26,2,270,1,878,2,86,1,77,2,11,1,19,2,7,1,2,2,23,1,51,2,47,1,4,2,337,1,97,}, + {1,87,2,3,1,9,2,7,1,9,2,8,1,27,2,268,1,879,2,86,1,76,2,11,1,20,2,32,1,51,2,47,1,5,2,336,1,97,}, + {1,87,2,4,1,8,2,7,1,10,2,7,1,27,2,267,1,879,2,87,1,76,2,11,1,20,2,32,1,50,2,47,1,7,2,334,1,98,}, + {1,87,2,4,1,8,2,7,1,10,2,3,1,1,2,3,1,14,2,2,1,11,2,266,1,879,2,88,1,76,2,10,1,21,2,32,1,50,2,46,1,8,2,334,1,98,}, + {1,87,2,4,1,8,2,6,1,11,2,2,1,3,2,2,1,14,2,3,1,10,2,265,1,880,2,88,1,75,2,11,1,21,2,31,1,51,2,45,1,10,2,333,1,98,}, + {1,87,2,4,1,9,2,5,1,11,2,2,1,19,2,3,1,11,2,264,1,879,2,88,1,76,2,10,1,22,2,30,1,52,2,44,1,11,2,333,1,7,2,2,1,89,}, + {1,88,2,3,1,9,2,5,1,32,2,3,1,11,2,263,1,880,2,88,1,75,2,11,1,21,2,31,1,52,2,43,1,12,2,333,1,7,2,2,1,89,}, + {1,88,2,4,1,8,2,5,1,12,2,2,1,19,2,2,1,11,2,60,1,1,2,202,1,880,2,87,1,76,2,10,1,22,2,30,1,53,2,42,1,13,2,333,1,7,2,2,1,89,}, + {1,88,2,4,1,8,2,6,1,11,2,2,1,19,2,2,1,12,2,58,1,3,2,200,1,881,2,87,1,76,2,10,1,21,2,31,1,53,2,41,1,14,2,332,1,8,2,2,1,89,}, + {1,88,2,5,1,8,2,5,1,11,2,3,1,32,2,59,1,1,2,201,1,881,2,86,1,76,2,10,1,22,2,30,1,53,2,40,1,16,2,332,1,8,2,2,1,89,}, + {1,88,2,5,1,9,2,4,1,12,2,3,1,1,2,3,1,27,2,260,1,882,2,86,1,76,2,10,1,21,2,31,1,53,2,39,1,18,2,330,1,9,2,2,1,89,}, + {1,88,2,5,1,10,2,3,1,12,2,7,1,27,2,260,1,882,2,85,1,76,2,10,1,22,2,30,1,54,2,38,1,19,2,330,1,9,2,2,1,89,}, + {1,89,2,4,1,10,2,3,1,13,2,6,1,27,2,260,1,882,2,85,1,76,2,10,1,21,2,31,1,54,2,37,1,21,2,330,1,8,2,2,1,89,}, + {1,89,2,4,1,11,2,2,1,13,2,7,1,26,2,260,1,882,2,85,1,75,2,10,1,21,2,32,1,54,2,36,1,22,2,330,1,8,2,2,1,89,}, + {1,89,2,5,1,10,2,3,1,13,2,6,1,27,2,259,1,883,2,84,1,75,2,10,1,20,2,33,1,54,2,35,1,24,2,329,1,8,2,2,1,89,}, + {1,89,2,5,1,10,2,3,1,15,2,4,1,27,2,259,1,883,2,84,1,74,2,10,1,20,2,34,1,55,2,33,1,25,2,329,1,7,2,3,1,89,}, + {1,89,2,6,1,9,2,3,1,15,2,4,1,19,2,2,1,6,2,259,1,882,2,85,1,74,2,10,1,20,2,35,1,55,2,31,1,27,2,328,1,7,2,4,1,88,}, + {1,89,2,6,1,9,2,3,1,16,2,3,1,13,2,2,1,3,2,3,1,6,2,259,1,882,2,85,1,31,2,2,1,40,2,11,1,20,2,35,1,56,2,28,1,29,2,328,1,7,2,4,1,88,}, + {1,89,2,6,1,9,2,3,1,16,2,3,1,13,2,2,1,3,2,3,1,6,2,259,1,881,2,85,1,31,2,3,1,39,2,6,1,1,2,4,1,21,2,36,1,56,2,26,1,31,2,327,1,7,2,4,1,88,}, + {1,89,2,6,1,9,2,4,1,16,2,2,1,13,2,3,1,1,2,4,1,7,2,258,1,881,2,84,1,32,2,2,1,40,2,4,1,4,2,2,1,22,2,37,1,56,2,24,1,32,2,327,1,7,2,4,1,88,}, + {1,89,2,7,1,8,2,4,1,16,2,2,1,13,2,8,1,7,2,257,1,881,2,84,1,33,2,2,1,39,2,4,1,29,2,37,1,57,2,22,1,33,2,327,1,6,2,5,1,88,}, + {1,89,2,7,1,8,2,4,1,16,2,2,1,13,2,8,1,7,2,257,1,881,2,84,1,32,2,3,1,39,2,3,1,29,2,38,1,58,2,20,1,33,2,327,1,7,2,5,1,88,}, + {1,90,2,6,1,9,2,3,1,16,2,2,1,13,2,9,1,6,2,256,1,881,2,85,1,73,2,3,1,30,2,38,1,59,2,17,1,35,2,327,1,7,2,5,1,88,}, + {1,90,2,6,1,9,2,3,1,16,2,2,1,14,2,8,1,6,2,256,1,881,2,85,1,73,2,3,1,29,2,39,1,63,2,10,1,38,2,327,1,7,2,5,1,88,}, + {1,90,2,6,1,9,2,4,1,15,2,2,1,14,2,8,1,6,2,255,1,881,2,86,1,72,2,3,1,30,2,39,1,111,2,327,1,7,2,5,1,88,}, + {1,90,2,7,1,8,2,4,1,15,2,2,1,14,2,8,1,7,2,254,1,881,2,86,1,72,2,3,1,29,2,40,1,111,2,327,1,6,2,6,1,88,}, + {1,90,2,7,1,9,2,4,1,14,2,2,1,14,2,9,1,6,2,254,1,880,2,87,1,72,2,2,1,29,2,41,1,111,2,327,1,6,2,6,1,88,}, + {1,90,2,7,1,9,2,4,1,14,2,2,1,14,2,9,1,7,2,254,1,878,2,87,1,103,2,42,1,94,2,2,1,15,2,326,1,7,2,5,1,89,}, + {1,90,2,7,1,10,2,4,1,30,2,9,1,6,2,254,1,878,2,87,1,102,2,43,1,93,2,3,1,15,2,326,1,7,2,5,1,89,}, + {1,90,2,7,1,10,2,4,1,30,2,9,1,6,2,254,1,878,2,86,1,103,2,43,1,92,2,4,1,14,2,327,1,7,2,5,1,89,}, + {1,91,2,6,1,10,2,4,1,30,2,9,1,6,2,254,1,877,2,88,1,101,2,44,1,91,2,5,1,14,2,327,1,6,2,6,1,89,}, + {1,91,2,6,1,10,2,4,1,30,2,9,1,6,2,254,1,877,2,89,1,100,2,43,1,91,2,7,1,12,2,328,1,6,2,6,1,89,}, + {1,91,2,6,1,11,2,3,1,30,2,9,1,6,2,254,1,876,2,90,1,98,2,45,1,91,2,7,1,12,2,328,1,6,2,5,1,90,}, + {1,92,2,5,1,11,2,3,1,30,2,9,1,6,2,254,1,876,2,90,1,97,2,45,1,92,2,8,1,10,2,329,1,6,2,5,1,90,}, + {1,92,2,5,1,12,2,2,1,30,2,9,1,6,2,254,1,875,2,89,1,98,2,46,1,92,2,8,1,10,2,329,1,5,2,6,1,90,}, + {1,92,2,5,1,12,2,2,1,30,2,10,1,5,2,254,1,875,2,88,1,68,2,2,1,29,2,45,1,92,2,10,1,8,2,329,1,6,2,6,1,90,}, + {1,93,2,4,1,12,2,2,1,30,2,10,1,6,2,253,1,874,2,88,1,69,2,2,1,29,2,45,1,92,2,12,1,6,2,329,1,6,2,5,1,91,}, + {1,93,2,4,1,12,2,2,1,30,2,10,1,6,2,252,1,875,2,89,1,67,2,3,1,29,2,45,1,92,2,14,1,2,2,331,1,6,2,5,1,91,}, + {1,93,2,4,1,12,2,2,1,31,2,9,1,6,2,252,1,875,2,90,1,66,2,3,1,28,2,46,1,92,2,347,1,6,2,5,1,91,}, + {1,93,2,4,1,12,2,2,1,31,2,9,1,6,2,251,1,876,2,90,1,65,2,3,1,29,2,46,1,92,2,347,1,6,2,5,1,91,}, + {1,93,2,4,1,12,2,2,1,31,2,10,1,5,2,251,1,875,2,91,1,64,2,4,1,28,2,47,1,92,2,347,1,6,2,5,1,91,}, + {1,93,2,4,1,12,2,2,1,31,2,10,1,5,2,252,1,874,2,91,1,64,2,3,1,29,2,47,1,92,2,347,1,5,2,6,1,91,}, + {1,94,2,3,1,12,2,2,1,31,2,10,1,5,2,252,1,873,2,92,1,64,2,3,1,28,2,48,1,92,2,346,1,6,2,6,1,91,}, + {1,94,2,3,1,13,2,2,1,31,2,9,1,5,2,252,1,872,2,93,1,64,2,2,1,29,2,48,1,92,2,346,1,5,2,6,1,92,}, + {1,94,2,3,1,13,2,2,1,31,2,9,1,5,2,252,1,871,2,95,1,62,2,3,1,28,2,50,1,91,2,346,1,5,2,6,1,92,}, + {1,94,2,3,1,13,2,2,1,31,2,10,1,5,2,251,1,13,2,2,1,855,2,96,1,62,2,2,1,29,2,50,1,91,2,346,1,4,2,6,1,93,}, + {1,94,2,4,1,12,2,2,1,31,2,10,1,5,2,251,1,12,2,4,1,854,2,97,1,60,2,3,1,29,2,51,1,90,2,346,1,4,2,6,1,93,}, + {1,94,2,4,1,12,2,2,1,31,2,10,1,6,2,250,1,12,2,4,1,853,2,98,1,60,2,3,1,29,2,51,1,90,2,346,1,4,2,5,1,94,}, + {1,94,2,4,1,12,2,2,1,32,2,9,1,6,2,249,1,13,2,4,1,851,2,101,1,58,2,3,1,31,2,50,1,90,2,346,1,4,2,5,1,94,}, + {1,94,2,4,1,12,2,3,1,31,2,9,1,6,2,248,1,14,2,4,1,849,2,104,1,57,2,3,1,33,2,48,1,90,2,345,1,5,2,4,1,95,}, + {1,94,2,4,1,12,2,3,1,31,2,9,1,6,2,248,1,14,2,4,1,749,2,7,1,91,2,107,1,55,2,3,1,34,2,48,1,91,2,344,1,5,2,4,1,95,}, + {1,94,2,5,1,11,2,3,1,31,2,10,1,5,2,247,1,15,2,4,1,748,2,10,1,87,2,109,1,55,2,2,1,36,2,47,1,91,2,5,1,2,2,337,1,5,2,3,1,96,}, + {1,94,2,5,1,11,2,3,1,31,2,10,1,5,2,247,1,15,2,4,1,747,2,13,1,83,2,112,1,92,2,47,1,99,2,336,1,4,2,4,1,96,}, + {1,95,2,5,1,10,2,3,1,30,2,12,1,3,2,247,1,16,2,4,1,747,2,15,1,63,2,1,1,15,2,114,1,93,2,46,1,100,2,335,1,4,2,4,1,96,}, + {1,95,2,5,1,10,2,3,1,30,2,12,1,3,2,247,1,15,2,5,1,747,2,16,1,49,2,3,1,9,2,4,1,6,2,121,1,95,2,44,1,100,2,334,1,5,2,4,1,96,}, + {1,95,2,5,1,10,2,4,1,28,2,262,1,16,2,5,1,747,2,18,1,46,2,5,1,8,2,6,1,2,2,123,1,45,2,2,1,50,2,41,1,101,2,334,1,5,2,4,1,96,}, + {1,95,2,5,1,10,2,4,1,4,2,2,1,22,2,262,1,15,2,6,1,747,2,20,1,43,2,6,1,8,2,131,1,44,2,3,1,50,2,41,1,100,2,335,1,5,2,4,1,96,}, + {1,95,2,6,1,9,2,5,1,3,2,2,1,21,2,263,1,15,2,6,1,747,2,22,1,40,2,7,1,7,2,131,1,44,2,3,1,52,2,40,1,100,2,335,1,5,2,4,1,96,}, + {1,95,2,6,1,9,2,5,1,3,2,2,1,21,2,263,1,15,2,6,1,747,2,23,1,38,2,8,1,7,2,129,1,45,2,3,1,53,2,40,1,100,2,335,1,4,2,4,1,97,}, + {1,95,2,6,1,9,2,5,1,3,2,2,1,21,2,263,1,14,2,7,1,747,2,24,1,15,2,14,1,7,2,10,1,6,2,129,1,44,2,3,1,54,2,40,1,100,2,335,1,4,2,4,1,97,}, + {1,95,2,6,1,9,2,5,1,26,2,263,1,14,2,7,1,747,2,15,1,3,2,6,1,13,2,17,1,6,2,10,1,5,2,129,1,45,2,2,1,55,2,40,1,100,2,335,1,4,2,4,1,97,}, + {1,96,2,6,1,8,2,5,1,26,2,263,1,14,2,7,1,748,2,12,1,21,2,22,1,3,2,12,1,4,2,129,1,102,2,40,1,100,2,335,1,4,2,4,1,97,}, + {1,96,2,6,1,8,2,5,1,26,2,263,1,14,2,7,1,748,2,10,1,22,2,38,1,3,2,130,1,102,2,40,1,100,2,334,1,5,2,4,1,97,}, + {1,97,2,6,1,7,2,5,1,25,2,264,1,13,2,8,1,749,2,7,1,23,2,172,1,51,2,2,1,49,2,40,1,100,2,334,1,4,2,4,1,98,}, + {1,97,2,6,1,7,2,4,1,26,2,19,1,1,2,244,1,13,2,8,1,749,2,6,1,23,2,173,1,50,2,2,1,50,2,40,1,100,2,333,1,5,2,4,1,98,}, + {1,97,2,6,1,7,2,4,1,6,2,2,1,9,2,2,1,6,2,19,1,3,2,242,1,13,2,9,1,749,2,5,1,23,2,174,1,50,2,1,1,51,2,40,1,99,2,334,1,4,2,5,1,98,}, + {1,97,2,6,1,7,2,3,1,7,2,2,1,9,2,2,1,6,2,18,1,4,2,242,1,13,2,9,1,749,2,4,1,23,2,175,1,70,2,3,1,30,2,39,1,99,2,334,1,4,2,5,1,98,}, + {1,97,2,6,1,7,2,2,1,8,2,2,1,9,2,3,1,4,2,19,1,5,2,241,1,12,2,10,1,775,2,176,1,69,2,5,1,29,2,39,1,98,2,335,1,4,2,4,1,99,}, + {1,98,2,5,1,7,2,2,1,19,2,3,1,4,2,20,1,3,2,242,1,11,2,11,1,773,2,179,1,67,2,7,1,32,2,35,1,98,2,334,1,5,2,4,1,99,}, + {1,98,2,6,1,27,2,27,1,3,2,242,1,11,2,11,1,653,2,4,1,114,2,182,1,66,2,8,1,5,2,4,1,23,2,34,1,97,2,335,1,4,2,4,1,100,}, + {1,98,2,6,1,27,2,28,1,1,2,243,1,11,2,11,1,652,2,7,1,94,2,2,1,11,2,187,1,44,2,2,1,20,2,9,1,2,2,7,1,22,2,34,1,97,2,335,1,4,2,4,1,100,}, + {1,98,2,6,1,27,2,273,1,10,2,11,1,651,2,9,1,93,2,3,1,9,2,188,1,66,2,19,1,21,2,34,1,96,2,336,1,3,2,4,1,101,}, + {1,98,2,6,1,6,2,2,1,19,2,273,1,10,2,11,1,650,2,11,1,92,2,3,1,7,2,190,1,67,2,19,1,20,2,35,1,95,2,336,1,3,2,4,1,101,}, + {1,99,2,6,1,5,2,2,1,19,2,273,1,10,2,11,1,649,2,12,1,93,2,1,1,7,2,191,1,68,2,19,1,18,2,36,1,95,2,335,1,4,2,4,1,101,}, + {1,99,2,6,1,5,2,2,1,19,2,273,1,10,2,11,1,648,2,13,1,101,2,191,1,69,2,18,1,18,2,36,1,95,2,335,1,4,2,3,1,102,}, + {1,100,2,5,1,27,2,272,1,10,2,11,1,647,2,14,1,101,2,191,1,70,2,18,1,17,2,36,1,94,2,336,1,4,2,3,1,102,}, + {1,100,2,5,1,27,2,272,1,10,2,11,1,646,2,15,1,101,2,191,1,71,2,18,1,16,2,6,1,1,2,29,1,94,2,189,1,2,2,144,1,5,2,2,1,103,}, + {1,100,2,4,1,29,2,271,1,9,2,12,1,645,2,16,1,100,2,192,1,73,2,16,1,16,2,4,1,5,2,27,1,94,2,188,1,4,2,143,1,5,2,2,1,103,}, + {1,101,2,2,1,30,2,271,1,9,2,11,1,646,2,16,1,100,2,192,1,75,2,15,1,26,2,25,1,94,2,188,1,4,2,142,1,6,2,2,1,103,}, + {1,101,2,2,1,31,2,270,1,9,2,10,1,646,2,16,1,100,2,193,1,77,2,14,1,27,2,23,1,94,2,187,1,6,2,141,1,6,2,2,1,103,}, + {1,134,2,270,1,9,2,9,1,646,2,17,1,100,2,193,1,78,2,13,1,28,2,21,1,94,2,188,1,6,2,140,1,112,}, + {1,134,2,271,1,8,2,9,1,646,2,16,1,99,2,194,1,79,2,14,1,28,2,19,1,95,2,188,1,6,2,140,1,112,}, + {1,122,2,3,1,10,2,270,1,8,2,8,1,646,2,16,1,99,2,195,1,78,2,15,1,28,2,18,1,96,2,187,1,6,2,141,1,112,}, + {1,122,2,4,1,9,2,271,1,7,2,8,1,646,2,15,1,99,2,196,1,28,2,2,1,48,2,16,1,28,2,16,1,97,2,187,1,6,2,141,1,112,}, + {1,122,2,5,1,9,2,26,1,1,2,243,1,6,2,9,1,645,2,15,1,99,2,196,1,29,2,2,1,39,2,7,1,1,2,18,1,27,2,14,1,99,2,187,1,6,2,141,1,112,}, + {1,122,2,5,1,9,2,25,1,3,2,242,1,6,2,9,1,645,2,14,1,99,2,198,1,28,2,2,1,33,2,25,1,5,2,3,1,27,2,12,1,100,2,187,1,6,2,141,1,112,}, + {1,122,2,6,1,8,2,25,1,3,2,242,1,5,2,10,1,644,2,14,1,100,2,198,1,28,2,2,1,31,2,25,1,8,2,3,1,26,2,10,1,101,2,188,1,6,2,140,1,113,}, + {1,122,2,6,1,8,2,25,1,4,2,241,1,5,2,10,1,643,2,14,1,101,2,198,1,28,2,2,1,29,2,25,1,10,2,4,1,25,2,8,1,103,2,189,1,5,2,140,1,113,}, + {1,123,2,5,1,8,2,26,1,3,2,241,1,4,2,11,1,642,2,14,1,102,2,198,1,28,2,2,1,27,2,27,1,11,2,3,1,26,2,6,1,103,2,190,1,5,2,140,1,113,}, + {1,123,2,5,1,9,2,25,1,3,2,240,1,4,2,12,1,641,2,14,1,103,2,198,1,28,2,2,1,26,2,27,1,12,2,3,1,26,2,5,1,104,2,191,1,5,2,138,1,114,}, + {1,124,2,5,1,8,2,26,1,2,2,239,1,5,2,12,1,641,2,14,1,103,2,197,1,29,2,2,1,26,2,27,1,11,2,3,1,28,2,3,1,105,2,191,1,5,2,138,1,114,}, + {1,124,2,5,1,9,2,25,1,3,2,238,1,4,2,13,1,640,2,14,1,104,2,196,1,29,2,2,1,27,2,26,1,12,2,3,1,28,2,2,1,106,2,191,1,5,2,137,1,115,}, + {1,124,2,6,1,8,2,26,1,2,2,237,1,5,2,14,1,639,2,13,1,106,2,195,1,29,2,2,1,28,2,9,1,11,2,5,1,11,2,3,1,137,2,191,1,5,2,136,1,116,}, + {1,124,2,6,1,8,2,26,1,3,2,236,1,4,2,15,1,639,2,12,1,107,2,194,1,30,2,2,1,29,2,6,1,14,2,3,1,12,2,3,1,137,2,191,1,6,2,134,1,117,}, + {1,124,2,6,1,8,2,27,1,2,2,235,1,5,2,15,1,638,2,12,1,109,2,192,1,30,2,2,1,50,2,3,1,11,2,3,1,138,2,191,1,6,2,133,1,118,}, + {1,124,2,7,1,7,2,27,1,3,2,235,1,3,2,16,1,638,2,12,1,109,2,187,1,35,2,2,1,50,2,3,1,11,2,3,1,139,2,190,1,6,2,133,1,118,}, + {1,125,2,6,1,8,2,27,1,2,2,235,1,3,2,16,1,637,2,12,1,111,2,184,1,36,2,3,1,50,2,3,1,10,2,4,1,139,2,190,1,7,2,131,1,119,}, + {1,125,2,7,1,7,2,283,1,637,2,12,1,111,2,182,1,38,2,2,1,51,2,3,1,10,2,4,1,138,2,191,1,7,2,131,1,119,}, + {1,126,2,6,1,8,2,282,1,636,2,12,1,112,2,181,1,39,2,2,1,51,2,3,1,9,2,4,1,139,2,190,1,8,2,130,1,120,}, + {1,126,2,6,1,8,2,282,1,636,2,12,1,112,2,181,1,38,2,3,1,51,2,2,1,9,2,4,1,139,2,191,1,8,2,130,1,120,}, + {1,126,2,7,1,8,2,262,1,1,2,18,1,636,2,11,1,113,2,180,1,39,2,3,1,62,2,3,1,90,2,2,1,48,2,192,1,7,2,130,1,120,}, + {1,126,2,7,1,8,2,37,1,1,2,222,1,5,2,16,1,636,2,11,1,114,2,179,1,38,2,4,1,61,2,3,1,140,2,193,1,7,2,129,1,121,}, + {1,127,2,7,1,8,2,35,1,3,2,220,1,7,2,15,1,636,2,11,1,114,2,178,1,39,2,3,1,62,2,3,1,140,2,194,1,6,2,129,1,121,}, + {1,127,2,7,1,8,2,36,1,1,2,221,1,7,2,15,1,636,2,10,1,115,2,178,1,39,2,2,1,62,2,3,1,140,2,195,1,7,2,128,1,121,}, + {1,128,2,6,1,9,2,256,1,9,2,14,1,636,2,10,1,115,2,178,1,39,2,2,1,62,2,2,1,141,2,196,1,6,2,128,1,121,}, + {1,128,2,6,1,9,2,256,1,8,2,15,1,636,2,10,1,114,2,179,1,102,2,2,1,141,2,197,1,5,2,129,1,121,}, + {1,129,2,5,1,10,2,256,1,8,2,14,1,627,2,4,1,6,2,8,1,115,2,179,1,101,2,3,1,141,2,198,1,3,2,130,1,121,}, + {1,129,2,5,1,10,2,256,1,8,2,14,1,626,2,6,1,6,2,5,1,117,2,179,1,101,2,2,1,141,2,332,1,121,}, + {1,130,2,5,1,10,2,256,1,8,2,13,1,625,2,8,1,5,2,3,1,119,2,180,1,99,2,2,1,142,2,331,1,122,}, + {1,130,2,5,1,10,2,256,1,7,2,14,1,624,2,9,1,4,2,3,1,120,2,180,1,99,2,1,1,143,2,331,1,122,}, + {1,130,2,5,1,11,2,32,1,1,2,222,1,6,2,15,1,623,2,11,1,1,2,4,1,121,2,181,1,96,2,2,1,144,2,330,1,123,}, + {1,130,2,6,1,10,2,7,1,1,2,23,1,3,2,221,1,5,2,12,1,2,2,2,1,622,2,17,1,121,2,181,1,95,2,3,1,143,2,331,1,123,}, + {1,130,2,6,1,10,2,6,1,3,2,21,1,4,2,221,1,5,2,11,1,627,2,17,1,121,2,182,1,93,2,3,1,144,2,330,1,124,}, + {1,130,2,6,1,10,2,5,1,4,2,21,1,5,2,220,1,5,2,12,1,2,2,2,1,621,2,18,1,121,2,183,1,91,2,4,1,144,2,329,1,125,}, + {1,131,2,6,1,9,2,5,1,5,2,20,1,5,2,220,1,5,2,16,1,621,2,18,1,121,2,184,1,89,2,4,1,145,2,327,1,127,}, + {1,131,2,6,1,9,2,4,1,6,2,20,1,6,2,219,1,5,2,16,1,620,2,18,1,122,2,186,1,87,2,4,1,145,2,326,1,128,}, + {1,132,2,6,1,9,2,3,1,6,2,20,1,6,2,219,1,4,2,14,1,623,2,17,1,123,2,188,1,85,2,3,1,145,2,327,1,128,}, + {1,132,2,6,1,18,2,20,1,6,2,220,1,3,2,13,1,623,2,17,1,124,2,189,1,84,2,3,1,145,2,326,1,129,}, + {1,132,2,6,1,17,2,21,1,6,2,221,1,1,2,13,1,623,2,18,1,124,2,188,1,85,2,2,1,145,2,327,1,129,}, + {1,132,2,7,1,16,2,20,1,8,2,234,1,623,2,17,1,124,2,188,1,86,2,2,1,145,2,326,1,130,}, + {1,132,2,7,1,15,2,22,1,7,2,233,1,623,2,18,1,124,2,188,1,233,2,326,1,130,}, + {1,133,2,7,1,14,2,22,1,7,2,233,1,623,2,17,1,125,2,187,1,234,2,326,1,130,}, + {1,133,2,7,1,14,2,23,1,6,2,233,1,622,2,19,1,124,2,187,1,55,2,2,1,70,2,2,1,105,2,326,1,130,}, + {1,133,2,7,1,14,2,23,1,6,2,233,1,621,2,20,1,124,2,186,1,55,2,2,1,71,2,2,1,105,2,326,1,130,}, + {1,133,2,7,1,14,2,23,1,6,2,233,1,621,2,20,1,124,2,186,1,128,2,2,1,105,2,326,1,130,}, + {1,133,2,7,1,14,2,23,1,6,2,233,1,621,2,20,1,124,2,185,1,236,2,326,1,130,}, + {1,133,2,8,1,13,2,24,1,5,2,233,1,629,2,12,1,124,2,184,1,237,2,326,1,130,}, + {1,133,2,8,1,14,2,23,1,6,2,231,1,632,2,10,1,124,2,183,1,238,2,326,1,130,}, + {1,133,2,8,1,14,2,24,1,5,2,231,1,633,2,10,1,123,2,181,1,133,2,2,1,105,2,325,1,131,}, + {1,133,2,8,1,15,2,23,1,6,2,230,1,634,2,9,1,124,2,179,1,134,2,2,1,105,2,325,1,131,}, + {1,133,2,9,1,14,2,24,1,5,2,230,1,635,2,9,1,123,2,178,1,134,2,3,1,31,2,5,1,9,2,9,1,51,2,324,1,132,}, + {1,133,2,9,1,15,2,23,1,5,2,229,1,637,2,8,1,124,2,176,1,135,2,3,1,29,2,9,1,5,2,11,1,51,2,324,1,132,}, + {1,133,2,9,1,15,2,24,1,4,2,229,1,637,2,9,1,123,2,175,1,135,2,4,1,29,2,25,1,51,2,324,1,132,}, + {1,133,2,10,1,14,2,24,1,5,2,227,1,639,2,8,1,123,2,173,1,137,2,4,1,30,2,24,1,51,2,323,1,133,}, + {1,133,2,10,1,14,2,24,1,5,2,227,1,640,2,8,1,122,2,171,1,139,2,3,1,32,2,23,1,51,2,323,1,133,}, + {1,133,2,11,1,13,2,24,1,6,2,226,1,642,2,7,1,121,2,140,1,2,2,27,1,140,2,4,1,17,2,3,1,13,2,22,1,51,2,322,1,134,}, + {1,133,2,11,1,14,2,24,1,5,2,226,1,644,2,6,1,120,2,138,1,6,2,24,1,141,2,4,1,7,2,7,1,1,2,6,1,14,2,21,1,49,2,323,1,134,}, + {1,133,2,12,1,13,2,24,1,5,2,226,1,645,2,7,1,119,2,135,1,9,2,22,1,64,2,2,1,75,2,5,1,6,2,15,1,14,2,22,1,48,2,323,1,134,}, + {1,133,2,12,1,13,2,25,1,4,2,226,1,646,2,7,1,118,2,134,1,10,2,21,1,64,2,2,1,75,2,6,1,6,2,14,1,16,2,22,1,46,2,324,1,134,}, + {1,133,2,13,1,12,2,25,1,5,2,224,1,648,2,7,1,118,2,125,1,19,2,19,1,64,2,2,1,65,2,16,1,8,2,13,1,17,2,22,1,45,2,324,1,134,}, + {1,134,2,12,1,12,2,26,1,4,2,224,1,649,2,7,1,117,2,123,1,21,2,18,1,64,2,3,1,64,2,16,1,9,2,12,1,20,2,21,1,44,2,323,1,135,}, + {1,134,2,12,1,13,2,25,1,4,2,223,1,653,2,4,1,117,2,121,1,24,2,15,1,66,2,2,1,17,2,2,1,45,2,15,1,12,2,11,1,22,2,20,1,43,2,323,1,135,}, + {1,135,2,11,1,13,2,26,1,3,2,223,1,774,2,119,1,25,2,14,1,67,2,2,1,18,2,3,1,43,2,15,1,12,2,11,1,25,2,18,1,43,2,322,1,136,}, + {1,135,2,12,1,12,2,26,1,3,2,223,1,775,2,118,1,20,2,3,1,1,2,13,1,68,2,2,1,20,2,4,1,40,2,16,1,12,2,11,1,26,2,17,1,43,2,322,1,136,}, + {1,136,2,6,1,1,2,4,1,12,2,27,1,3,2,222,1,776,2,116,1,21,2,15,1,69,2,2,1,22,2,6,1,36,2,16,1,12,2,11,1,27,2,17,1,43,2,322,1,136,}, + {1,136,2,5,1,3,2,3,1,12,2,27,1,3,2,222,1,777,2,115,1,21,2,14,1,68,2,3,1,24,2,6,1,35,2,16,1,10,2,10,1,1,2,3,1,11,2,3,1,13,2,16,1,43,2,322,1,136,}, + {1,137,2,4,1,3,2,4,1,11,2,27,1,4,2,221,1,778,2,105,1,3,2,5,1,25,2,11,1,67,2,3,1,25,2,7,1,34,2,15,1,10,2,6,1,1,2,3,1,3,2,2,1,11,2,3,1,13,2,16,1,43,2,321,1,137,}, + {1,137,2,3,1,5,2,3,1,11,2,28,1,3,2,220,1,779,2,103,1,36,2,9,1,67,2,3,1,27,2,6,1,34,2,15,1,9,2,6,1,3,2,3,1,1,2,3,1,10,2,4,1,14,2,15,1,43,2,321,1,137,}, + {1,138,2,3,1,4,2,4,1,11,2,27,1,4,2,219,1,780,2,102,1,36,2,8,1,68,2,1,1,29,2,6,1,35,2,14,1,9,2,5,1,4,2,7,1,10,2,4,1,14,2,14,1,43,2,321,1,138,}, + {1,138,2,3,1,3,2,5,1,12,2,27,1,3,2,219,1,780,2,101,1,38,2,6,1,99,2,5,1,37,2,13,1,9,2,3,1,6,2,7,1,8,2,5,1,15,2,13,1,44,2,321,1,138,}, + {1,138,2,4,1,1,2,7,1,11,2,27,1,4,2,217,1,782,2,100,1,38,2,5,1,100,2,4,1,39,2,12,1,18,2,7,1,6,2,6,1,16,2,12,1,44,2,321,1,139,}, + {1,139,2,11,1,12,2,27,1,3,2,217,1,782,2,100,1,39,2,3,1,101,2,2,1,41,2,12,1,18,2,7,1,4,2,7,1,17,2,11,1,45,2,321,1,139,}, + {1,140,2,11,1,11,2,27,1,4,2,215,1,784,2,99,1,185,2,12,1,19,2,6,1,3,2,7,1,19,2,11,1,28,2,6,1,11,2,321,1,139,}, + {1,141,2,10,1,12,2,27,1,3,2,215,1,784,2,99,1,184,2,13,1,19,2,5,1,3,2,8,1,19,2,10,1,27,2,8,1,11,2,321,1,139,}, + {1,129,2,2,1,14,2,6,1,12,2,27,1,4,2,214,1,785,2,98,1,183,2,14,1,20,2,5,1,1,2,8,1,22,2,7,1,27,2,9,1,11,2,320,1,140,}, + {1,129,2,3,1,14,2,6,1,12,2,26,1,4,2,214,1,785,2,98,1,183,2,14,1,21,2,4,1,1,2,7,1,25,2,4,1,27,2,10,1,10,2,321,1,140,}, + {1,129,2,4,1,14,2,5,1,13,2,25,1,4,2,214,1,786,2,97,1,183,2,14,1,9,2,8,1,72,2,11,1,9,2,305,1,1,2,14,1,141,}, + {1,129,2,5,1,13,2,6,1,13,2,24,1,5,2,214,1,787,2,95,1,183,2,15,1,8,2,9,1,71,2,11,1,9,2,304,1,3,2,13,1,141,}, + {1,130,2,5,1,13,2,5,1,14,2,24,1,4,2,214,1,793,2,90,1,182,2,15,1,8,2,10,1,70,2,11,1,9,2,304,1,2,2,14,1,141,}, + {1,130,2,6,1,12,2,6,1,13,2,24,1,5,2,214,1,796,2,86,1,185,2,12,1,9,2,9,1,70,2,11,1,10,2,302,1,3,2,14,1,141,}, + {1,130,2,7,1,12,2,5,1,14,2,24,1,4,2,214,1,801,2,82,1,74,2,3,1,128,2,9,1,70,2,11,1,11,2,301,1,3,2,13,1,142,}, + {1,130,2,8,1,11,2,6,1,13,2,24,1,5,2,214,1,802,2,80,1,73,2,4,1,35,2,5,1,88,2,9,1,71,2,10,1,12,2,299,1,3,2,14,1,142,}, + {1,130,2,8,1,12,2,5,1,14,2,24,1,4,2,214,1,804,2,79,1,71,2,5,1,33,2,7,1,88,2,8,1,72,2,10,1,13,2,298,1,3,2,13,1,143,}, + {1,130,2,8,1,12,2,6,1,13,2,24,1,5,2,213,1,813,2,70,1,71,2,5,1,30,2,10,1,88,2,7,1,74,2,9,1,13,2,298,1,2,2,14,1,143,}, + {1,131,2,8,1,12,2,5,1,13,2,25,1,4,2,213,1,817,2,67,1,70,2,5,1,16,2,9,1,3,2,11,1,90,2,5,1,75,2,9,1,14,2,296,1,3,2,13,1,144,}, + {1,131,2,8,1,12,2,6,1,12,2,25,1,4,2,213,1,819,2,66,1,69,2,5,1,15,2,24,1,170,2,9,1,14,2,296,1,3,2,13,1,144,}, + {1,132,2,8,1,12,2,5,1,12,2,25,1,5,2,212,1,821,2,10,1,11,2,44,1,87,2,24,1,171,2,9,1,14,2,295,1,4,2,13,1,144,}, + {1,132,2,8,1,12,2,6,1,12,2,25,1,4,2,213,1,843,2,42,1,86,2,25,1,171,2,9,1,14,2,295,1,3,2,14,1,144,}, + {1,133,2,8,1,11,2,6,1,12,2,25,1,4,2,213,1,844,2,42,1,84,2,25,1,172,2,9,1,14,2,295,1,3,2,13,1,145,}, + {1,133,2,8,1,12,2,6,1,11,2,26,1,4,2,213,1,844,2,41,1,43,2,5,1,36,2,25,1,173,2,8,1,14,2,295,1,2,2,14,1,145,}, + {1,133,2,9,1,11,2,6,1,11,2,26,1,4,2,213,1,845,2,41,1,41,2,6,1,34,2,26,1,174,2,8,1,13,2,312,1,145,}, + {1,134,2,8,1,12,2,6,1,10,2,27,1,4,2,212,1,846,2,41,1,39,2,6,1,33,2,27,1,176,2,6,1,14,2,311,1,146,}, + {1,134,2,8,1,12,2,6,1,11,2,26,1,4,2,212,1,849,2,39,1,37,2,6,1,32,2,28,1,177,2,6,1,13,2,312,1,146,}, + {1,135,2,7,1,12,2,7,1,10,2,27,1,4,2,212,1,850,2,37,1,37,2,6,1,30,2,29,1,179,2,5,1,13,2,311,1,147,}, + {1,135,2,8,1,11,2,7,1,10,2,27,1,4,2,212,1,852,2,35,1,36,2,6,1,27,2,32,1,180,2,5,1,13,2,311,1,147,}, + {1,136,2,7,1,11,2,8,1,9,2,27,1,5,2,212,1,853,2,33,1,36,2,6,1,25,2,33,1,182,2,4,1,13,2,310,1,148,}, + {1,136,2,8,1,10,2,8,1,9,2,28,1,4,2,212,1,855,2,31,1,35,2,7,1,23,2,34,1,183,2,4,1,13,2,310,1,148,}, + {1,136,2,8,1,10,2,9,1,9,2,27,1,5,2,212,1,855,2,11,1,2,2,17,1,34,2,8,1,22,2,19,1,2,2,13,1,184,2,3,1,14,2,309,1,149,}, + {1,137,2,8,1,9,2,9,1,9,2,28,1,4,2,212,1,856,2,8,1,6,2,16,1,32,2,10,1,20,2,18,1,6,2,10,1,202,2,309,1,149,}, + {1,137,2,8,1,10,2,8,1,10,2,27,1,5,2,213,1,870,2,14,1,31,2,11,1,18,2,14,1,1,2,3,1,10,2,6,1,204,2,309,1,149,}, + {1,138,2,8,1,9,2,9,1,9,2,27,1,5,2,214,1,870,2,14,1,29,2,13,1,15,2,15,1,225,2,308,1,150,}, + {1,138,2,8,1,9,2,9,1,10,2,26,1,5,2,215,1,870,2,13,1,28,2,15,1,12,2,16,1,226,2,46,1,1,2,261,1,150,}, + {1,139,2,8,1,8,2,10,1,9,2,27,1,5,2,214,1,873,2,11,1,25,2,19,1,6,2,20,1,226,2,45,1,3,2,260,1,150,}, + {1,139,2,9,1,8,2,9,1,9,2,27,1,5,2,214,1,875,2,9,1,18,2,28,1,3,2,20,1,227,2,44,1,4,2,259,1,151,}, + {1,140,2,8,1,8,2,10,1,8,2,27,1,6,2,213,1,877,2,8,1,15,2,53,1,227,2,43,1,5,2,259,1,151,}, + {1,140,2,8,1,8,2,10,1,8,2,27,1,6,2,213,1,882,2,3,1,13,2,54,1,228,2,42,1,6,2,258,1,152,}, + {1,141,2,8,1,8,2,10,1,8,2,26,1,7,2,212,1,885,2,3,1,5,2,59,1,228,2,41,1,7,2,258,1,152,}, + {1,141,2,8,1,8,2,10,1,8,2,26,1,7,2,212,1,885,2,5,1,1,2,61,1,228,2,40,1,7,2,258,1,153,}, + {1,142,2,8,1,8,2,9,1,9,2,25,1,7,2,212,1,886,2,66,1,228,2,39,1,8,2,258,1,153,}, + {1,142,2,8,1,8,2,9,1,9,2,25,1,8,2,211,1,887,2,66,1,227,2,38,1,8,2,258,1,154,}, + {1,143,2,7,1,8,2,10,1,8,2,25,1,8,2,211,1,887,2,66,1,228,2,36,1,9,2,258,1,154,}, + {1,143,2,7,1,8,2,10,1,9,2,24,1,9,2,210,1,888,2,65,1,228,2,36,1,9,2,257,1,155,}, + {1,144,2,7,1,7,2,11,1,8,2,24,1,9,2,209,1,888,2,66,1,228,2,35,1,10,2,256,1,156,}, + {1,144,2,7,1,8,2,10,1,9,2,23,1,10,2,208,1,886,2,67,1,229,2,35,1,10,2,244,1,2,2,9,1,157,}, + {1,145,2,6,1,8,2,11,1,9,2,23,1,9,2,208,1,885,2,67,1,230,2,34,1,11,2,254,1,158,}, + {1,145,2,7,1,7,2,11,1,9,2,23,1,9,2,208,1,885,2,67,1,230,2,33,1,12,2,254,1,158,}, + {1,145,2,7,1,7,2,11,1,10,2,23,1,9,2,207,1,885,2,66,1,232,2,31,1,12,2,254,1,159,}, + {1,146,2,6,1,7,2,12,1,10,2,22,1,9,2,207,1,884,2,67,1,232,2,30,1,13,2,254,1,159,}, + {1,146,2,7,1,7,2,11,1,10,2,23,1,8,2,207,1,884,2,66,1,233,2,29,1,14,2,240,1,4,2,9,1,160,}, + {1,147,2,6,1,7,2,12,1,10,2,22,1,9,2,206,1,884,2,65,1,235,2,27,1,15,2,238,1,7,2,8,1,160,}, + {1,147,2,7,1,6,2,12,1,10,2,23,1,4,2,2,1,2,2,206,1,884,2,64,1,237,2,25,1,15,2,238,1,7,2,8,1,161,}, + {1,148,2,6,1,7,2,12,1,10,2,22,1,4,2,2,1,3,2,205,1,883,2,64,1,240,2,13,1,1,2,8,1,16,2,237,1,8,2,8,1,161,}, + {1,149,2,6,1,6,2,12,1,10,2,23,1,3,2,3,1,1,2,205,1,884,2,63,1,241,2,11,1,5,2,5,1,16,2,238,1,8,2,7,1,162,}, + {1,150,2,5,1,7,2,11,1,11,2,22,1,3,2,209,1,884,2,62,1,243,2,8,1,28,2,237,1,9,2,7,1,162,}, + {1,151,2,4,1,7,2,11,1,11,2,23,1,2,2,209,1,883,2,62,1,245,2,7,1,27,2,238,1,9,2,6,1,163,}, + {1,151,2,4,1,7,2,12,1,10,2,23,1,3,2,208,1,883,2,60,1,248,2,5,1,28,2,237,1,10,2,5,1,164,}, + {1,163,2,11,1,10,2,24,1,2,2,208,1,882,2,59,1,251,2,3,1,28,2,238,1,9,2,6,1,164,}, + {1,163,2,12,1,9,2,24,1,2,2,208,1,882,2,56,1,285,2,10,1,1,2,226,1,10,2,5,1,165,}, + {1,162,2,13,1,9,2,234,1,881,2,55,1,286,2,9,1,4,2,225,1,9,2,5,1,166,}, + {1,162,2,13,1,9,2,234,1,881,2,53,1,272,2,2,1,13,2,9,1,5,2,224,1,9,2,5,1,167,}, + {1,162,2,13,1,9,2,234,1,880,2,52,1,271,2,6,1,11,2,9,1,5,2,225,1,9,2,4,1,168,}, + {1,162,2,13,1,9,2,234,1,878,2,52,1,244,2,3,1,25,2,7,1,10,2,8,1,7,2,224,1,182,}, + {1,162,2,14,1,8,2,234,1,876,2,52,1,245,2,4,1,24,2,9,1,9,2,7,1,7,2,225,1,182,}, + {1,162,2,14,1,8,2,234,1,874,2,52,1,247,2,3,1,24,2,10,1,9,2,7,1,7,2,225,1,182,}, + {1,162,2,14,1,9,2,233,1,868,2,57,1,274,2,11,1,9,2,6,1,7,2,225,1,183,}, + {1,163,2,13,1,9,2,233,1,856,2,68,1,274,2,13,1,8,2,5,1,8,2,225,1,183,}, + {1,164,2,12,1,10,2,232,1,847,2,75,1,275,2,14,1,8,2,4,1,9,2,224,1,184,}, + {1,165,2,11,1,10,2,232,1,845,2,74,1,277,2,16,1,7,2,4,1,8,2,225,1,184,}, + {1,158,2,2,1,5,2,12,1,10,2,231,1,843,2,74,1,278,2,5,1,2,2,10,1,7,2,3,1,9,2,224,1,185,}, + {1,158,2,2,1,6,2,11,1,10,2,231,1,841,2,73,1,280,2,4,1,5,2,10,1,6,2,3,1,9,2,224,1,185,}, + {1,158,2,3,1,5,2,12,1,10,2,230,1,839,2,73,1,282,2,2,1,6,2,11,1,6,2,2,1,9,2,224,1,186,}, + {1,159,2,2,1,6,2,11,1,10,2,230,1,836,2,74,1,290,2,13,1,17,2,224,1,186,}, + {1,159,2,3,1,5,2,12,1,10,2,229,1,836,2,72,1,283,2,2,1,6,2,13,1,17,2,225,1,186,}, + {1,160,2,2,1,6,2,11,1,10,2,229,1,863,2,43,1,284,2,3,1,5,2,12,1,19,2,224,1,187,}, + {1,160,2,2,1,7,2,11,1,9,2,229,1,865,2,39,1,286,2,3,1,5,2,10,1,21,2,224,1,187,}, + {1,161,2,2,1,7,2,10,1,10,2,228,1,867,2,34,1,288,2,3,1,5,2,10,1,22,2,223,1,188,}, + {1,161,2,2,1,7,2,11,1,9,2,228,1,867,2,32,1,270,2,3,1,17,2,4,1,4,2,9,1,22,2,224,1,188,}, + {1,161,2,3,1,7,2,10,1,10,2,227,1,867,2,12,1,1,2,13,1,275,2,5,1,15,2,5,1,3,2,11,1,21,2,224,1,188,}, + {1,162,2,2,1,7,2,10,1,10,2,228,1,865,2,9,1,292,2,6,1,15,2,6,1,1,2,12,1,20,2,224,1,189,}, + {1,162,2,2,1,8,2,9,1,11,2,227,1,866,2,6,1,292,2,8,1,14,2,11,1,3,2,7,1,19,2,224,1,189,}, + {1,172,2,10,1,10,2,227,1,1161,2,11,1,14,2,9,1,5,2,7,1,18,2,224,1,190,}, + {1,173,2,9,1,10,2,27,1,2,2,198,1,1161,2,11,1,13,2,8,1,7,2,7,1,18,2,224,1,190,}, + {1,174,2,9,1,9,2,26,1,3,2,198,1,1161,2,11,1,13,2,6,1,8,2,7,1,18,2,225,1,190,}, + {1,174,2,9,1,9,2,27,1,3,2,197,1,1162,2,9,1,14,2,4,1,10,2,7,1,18,2,224,1,191,}, + {1,175,2,9,1,8,2,27,1,3,2,197,1,1162,2,9,1,28,2,6,1,19,2,224,1,191,}, + {1,175,2,9,1,9,2,26,1,4,2,196,1,1163,2,7,1,29,2,6,1,18,2,224,1,192,}, + {1,176,2,9,1,8,2,26,1,4,2,196,1,1163,2,7,1,30,2,5,1,16,2,226,1,192,}, + {1,176,2,9,1,8,2,27,1,4,2,195,1,1163,2,7,1,3,2,4,1,23,2,5,1,13,2,228,1,193,}, + {1,177,2,9,1,7,2,27,1,4,2,195,1,1162,2,15,1,22,2,5,1,14,2,228,1,193,}, + {1,178,2,9,1,7,2,27,1,4,2,194,1,855,2,3,1,304,2,15,1,22,2,4,1,16,2,226,1,194,}, + {1,178,2,9,1,7,2,27,1,4,2,194,1,851,2,7,1,304,2,14,1,22,2,4,1,17,2,225,1,195,}, + {1,179,2,9,1,6,2,28,1,4,2,192,1,850,2,8,1,305,2,14,1,21,2,4,1,19,2,224,1,195,}, + {1,179,2,9,1,6,2,28,1,4,2,192,1,849,2,7,1,307,2,3,1,4,2,7,1,20,2,4,1,19,2,224,1,196,}, + {1,173,2,3,1,4,2,8,1,7,2,27,1,5,2,190,1,849,2,6,1,317,2,6,1,19,2,4,1,7,2,2,1,11,2,224,1,196,}, + {1,173,2,5,1,1,2,9,1,7,2,27,1,5,2,190,1,848,2,5,1,320,2,4,1,7,2,4,1,9,2,3,1,7,2,4,1,8,2,225,1,197,}, + {1,173,2,15,1,7,2,27,1,6,2,189,1,847,2,5,1,321,2,4,1,6,2,5,1,8,2,3,1,6,2,7,1,6,2,226,1,197,}, + {1,173,2,16,1,7,2,24,1,8,2,18,1,1,2,170,1,846,2,5,1,321,2,4,1,6,2,6,1,8,2,3,1,5,2,9,1,3,2,227,1,7,2,2,1,189,}, + {1,174,2,15,1,7,2,23,1,10,2,16,1,4,2,168,1,845,2,4,1,323,2,4,1,6,2,6,1,8,2,2,1,5,2,240,1,6,2,3,1,189,}, + {1,174,2,16,1,7,2,22,1,10,2,17,1,3,2,164,1,848,2,3,1,324,2,4,1,6,2,7,1,8,2,2,1,4,2,240,1,7,2,3,1,189,}, + {1,175,2,15,1,7,2,22,1,10,2,17,1,4,2,161,1,849,2,3,1,325,2,3,1,6,2,7,1,9,2,3,1,1,2,242,1,6,2,3,1,190,}, + {1,175,2,16,1,7,2,22,1,9,2,18,1,3,2,161,1,848,2,3,1,325,2,3,1,6,2,8,1,9,2,245,1,7,2,3,1,190,}, + {1,176,2,15,1,7,2,22,1,10,2,17,1,4,2,160,1,847,2,3,1,326,2,2,1,6,2,9,1,9,2,245,1,6,2,3,1,191,}, + {1,176,2,16,1,7,2,22,1,9,2,18,1,4,2,159,1,846,2,4,1,334,2,10,1,8,2,244,1,7,2,2,1,192,}, + {1,177,2,15,1,7,2,22,1,10,2,17,1,5,2,158,1,845,2,4,1,334,2,11,1,8,2,243,1,202,}, + {1,177,2,9,1,2,2,5,1,6,2,23,1,9,2,18,1,4,2,158,1,845,2,4,1,333,2,14,1,5,2,244,1,202,}, + {1,178,2,7,1,5,2,4,1,5,2,23,1,10,2,18,1,4,2,157,1,845,2,3,1,333,2,17,1,1,2,245,1,203,}, + {1,178,2,8,1,6,2,2,1,6,2,23,1,9,2,19,1,3,2,150,1,852,2,3,1,333,2,263,1,203,}, + {1,179,2,7,1,6,2,3,1,5,2,23,1,10,2,19,1,2,2,148,1,854,2,3,1,332,2,263,1,204,}, + {1,180,2,7,1,6,2,2,1,6,2,22,1,10,2,167,1,856,2,3,1,332,2,263,1,204,}, + {1,180,2,7,1,6,2,3,1,5,2,22,1,11,2,165,1,1191,2,263,1,205,}, + {1,181,2,7,1,6,2,2,1,6,2,21,1,11,2,159,1,1,2,4,1,1191,2,264,1,205,}, + {1,182,2,7,1,5,2,3,1,5,2,21,1,11,2,159,1,1,2,4,1,1190,2,264,1,206,}, + {1,183,2,7,1,5,2,2,1,5,2,21,1,12,2,162,1,1191,2,264,1,206,}, + {1,184,2,6,1,6,2,1,1,6,2,20,1,12,2,162,1,1190,2,264,1,207,}, + {1,184,2,7,1,12,2,20,1,13,2,160,1,1190,2,265,1,207,}, + {1,185,2,6,1,13,2,19,1,13,2,153,1,4,2,2,1,1188,2,267,1,208,}, + {1,185,2,7,1,13,2,18,1,14,2,150,1,1195,2,268,1,208,}, + {1,186,2,7,1,12,2,18,1,14,2,149,1,1195,2,268,1,209,}, + {1,186,2,8,1,12,2,17,1,14,2,149,1,1194,2,269,1,209,}, + {1,187,2,8,1,11,2,18,1,14,2,22,1,1,2,124,1,1194,2,269,1,210,}, + {1,187,2,9,1,11,2,17,1,14,2,21,1,4,2,122,1,1193,2,270,1,210,}, + {1,188,2,9,1,10,2,18,1,14,2,21,1,4,2,120,1,1194,2,269,1,211,}, + {1,188,2,10,1,10,2,11,1,1,2,5,1,15,2,20,1,5,2,119,1,1193,2,269,1,212,}, + {1,188,2,11,1,9,2,10,1,4,2,3,1,15,2,20,1,6,2,118,1,1192,2,269,1,213,}, + {1,188,2,11,1,10,2,10,1,4,2,2,1,16,2,19,1,6,2,118,1,1192,2,3,1,1,2,265,1,213,}, + {1,189,2,8,1,1,2,2,1,9,2,10,1,22,2,19,1,7,2,117,1,1191,2,3,1,3,2,263,1,214,}, + {1,190,2,6,1,3,2,2,1,9,2,10,1,22,2,18,1,7,2,117,1,1173,2,10,1,8,2,4,1,1,2,264,1,214,}, + {1,191,2,6,1,2,2,3,1,9,2,9,1,22,2,18,1,8,2,116,1,1169,2,14,1,8,2,268,1,215,}, + {1,191,2,6,1,3,2,3,1,9,2,9,1,22,2,17,1,8,2,116,1,1167,2,16,1,8,2,268,1,215,}, + {1,192,2,6,1,2,2,4,1,8,2,10,1,21,2,17,1,8,2,117,1,1164,2,18,1,8,2,267,1,216,}, + {1,192,2,6,1,3,2,4,1,8,2,10,1,21,2,17,1,8,2,116,1,1162,2,20,1,8,2,267,1,216,}, + {1,193,2,6,1,1,2,6,1,7,2,11,1,20,2,17,1,9,2,116,1,1161,2,20,1,8,2,266,1,217,}, + {1,193,2,14,1,7,2,11,1,20,2,17,1,9,2,115,1,1161,2,20,1,8,2,266,1,217,}, + {1,194,2,13,1,7,2,12,1,19,2,17,1,10,2,114,1,1162,2,18,1,9,2,26,1,1,2,238,1,218,}, + {1,195,2,12,1,8,2,12,1,19,2,17,1,10,2,113,1,1162,2,18,1,9,2,23,1,6,2,236,1,218,}, + {1,195,2,12,1,8,2,13,1,18,2,17,1,10,2,114,1,1160,2,18,1,10,2,21,1,10,2,233,1,219,}, + {1,196,2,11,1,9,2,13,1,18,2,17,1,10,2,113,1,1160,2,18,1,10,2,19,1,12,2,233,1,219,}, + {1,196,2,11,1,10,2,13,1,17,2,18,1,10,2,113,1,1159,2,17,1,14,2,14,1,15,2,232,1,219,}, + {1,197,2,10,1,11,2,12,1,18,2,17,1,11,2,112,1,1159,2,17,1,16,2,10,1,17,2,231,1,220,}, + {1,197,2,10,1,11,2,13,1,17,2,18,1,11,2,111,1,1159,2,17,1,17,2,7,1,18,2,232,1,220,}, + {1,198,2,10,1,11,2,12,1,18,2,18,1,11,2,111,1,1158,2,17,1,42,2,232,1,220,}, + {1,199,2,9,1,11,2,13,1,17,2,19,1,11,2,110,1,1158,2,16,1,42,2,232,1,221,}, + {1,199,2,10,1,11,2,13,1,17,2,18,1,12,2,111,1,1156,2,16,1,42,2,232,1,221,}, + {1,200,2,9,1,11,2,15,1,15,2,19,1,12,2,111,1,1155,2,16,1,42,2,232,1,221,}, + {1,200,2,10,1,10,2,17,1,13,2,20,1,12,2,111,1,1155,2,15,1,41,2,233,1,221,}, + {1,201,2,9,1,9,2,19,1,13,2,19,1,12,2,112,1,1154,2,15,1,41,2,234,1,220,}, + {1,202,2,9,1,8,2,20,1,12,2,20,1,4,2,2,1,6,2,111,1,1157,2,12,1,40,2,234,1,221,}, + {1,203,2,8,1,8,2,21,1,12,2,20,1,2,2,3,1,6,2,111,1,1158,2,10,1,41,2,232,1,223,}, + {1,204,2,8,1,8,2,21,1,11,2,26,1,6,2,110,1,1159,2,8,1,42,2,231,1,224,}, + {1,205,2,8,1,9,2,20,1,11,2,25,1,6,2,110,1,1158,2,8,1,42,2,231,1,225,}, + {1,205,2,9,1,8,2,21,1,10,2,26,1,6,2,109,1,1156,2,9,1,43,2,225,1,3,2,3,1,225,}, + {1,206,2,8,1,9,2,21,1,10,2,26,1,6,2,109,1,1149,2,14,1,44,2,224,1,232,}, + {1,207,2,8,1,8,2,21,1,10,2,27,1,5,2,109,1,1148,2,15,1,44,2,223,1,233,}, + {1,208,2,7,1,9,2,21,1,10,2,28,1,4,2,108,1,1147,2,15,1,45,2,223,1,233,}, + {1,208,2,8,1,8,2,21,1,10,2,30,1,1,2,109,1,1146,2,16,1,45,2,222,1,234,}, + {1,209,2,7,1,9,2,21,1,10,2,139,1,1145,2,16,1,46,2,222,1,234,}, + {1,210,2,7,1,8,2,21,1,11,2,139,1,1143,2,17,1,46,2,221,1,235,}, + {1,211,2,6,1,9,2,21,1,10,2,139,1,1143,2,16,1,47,2,221,1,235,}, + {1,212,2,6,1,8,2,22,1,10,2,139,1,1142,2,16,1,47,2,220,1,236,}, + {1,212,2,6,1,9,2,21,1,11,2,138,1,1142,2,15,1,48,2,220,1,236,}, + {1,213,2,6,1,9,2,21,1,10,2,138,1,1141,2,16,1,48,2,219,1,237,}, + {1,213,2,7,1,9,2,21,1,10,2,137,1,1141,2,16,1,48,2,219,1,237,}, + {1,214,2,6,1,9,2,21,1,10,2,138,1,1139,2,16,1,49,2,218,1,238,}, + {1,215,2,6,1,9,2,21,1,10,2,137,1,1139,2,16,1,49,2,218,1,238,}, + {1,216,2,5,1,9,2,21,1,11,2,137,1,1137,2,16,1,50,2,217,1,239,}, + {1,217,2,5,1,9,2,21,1,10,2,137,1,1136,2,17,1,49,2,218,1,239,}, + {1,217,2,6,1,8,2,21,1,11,2,137,1,1134,2,17,1,50,2,217,1,240,}, + {1,218,2,6,1,7,2,22,1,10,2,137,1,1133,2,18,1,49,2,218,1,240,}, + {1,219,2,5,1,7,2,23,1,10,2,137,1,1131,2,18,1,50,2,217,1,241,}, + {1,220,2,5,1,6,2,23,1,11,2,136,1,1130,2,18,1,50,2,218,1,241,}, + {1,221,2,4,1,6,2,24,1,11,2,135,1,1129,2,18,1,51,2,217,1,242,}, + {1,222,2,4,1,6,2,24,1,11,2,135,1,1128,2,16,1,52,2,218,1,242,}, + {1,223,2,3,1,7,2,24,1,11,2,134,1,1127,2,15,1,53,2,218,1,243,}, + {1,223,2,4,1,7,2,24,1,11,2,133,1,1127,2,14,1,53,2,218,1,244,}, + {1,224,2,3,1,8,2,24,1,10,2,133,1,1127,2,13,1,54,2,217,1,245,}, + {1,224,2,3,1,9,2,24,1,10,2,128,1,1131,2,12,1,54,2,218,1,245,}, + {1,225,2,3,1,9,2,24,1,10,2,126,1,1132,2,11,1,55,2,217,1,246,}, + {1,226,2,2,1,10,2,23,1,11,2,125,1,1131,2,11,1,55,2,217,1,247,}, + {1,226,2,3,1,9,2,24,1,11,2,123,1,1130,2,12,1,56,2,216,1,248,}, + {1,227,2,2,1,10,2,23,1,12,2,122,1,1128,2,14,1,55,2,217,1,248,}, + {1,227,2,3,1,9,2,24,1,12,2,121,1,1126,2,15,1,56,2,216,1,249,}, + {1,228,2,2,1,9,2,24,1,13,2,121,1,1124,2,16,1,55,2,216,1,250,}, + {1,229,2,1,1,10,2,24,1,13,2,120,1,1123,2,16,1,55,2,217,1,250,}, + {1,240,2,24,1,13,2,121,1,1121,2,17,1,54,2,217,1,251,}, + {1,231,2,1,1,9,2,24,1,13,2,120,1,1120,2,18,1,53,2,218,1,251,}, + {1,231,2,2,1,9,2,23,1,13,2,121,1,1119,2,18,1,52,2,218,1,252,}, + {1,232,2,2,1,9,2,23,1,13,2,121,1,1117,2,19,1,51,2,219,1,252,}, + {1,233,2,2,1,9,2,22,1,13,2,122,1,1116,2,14,1,55,2,221,1,251,}, + {1,234,2,1,1,9,2,23,1,13,2,123,1,1113,2,13,1,56,2,222,1,251,}, + {1,245,2,22,1,13,2,124,1,1112,2,12,1,56,2,224,1,250,}, + {1,246,2,22,1,12,2,125,1,1110,2,12,1,56,2,224,1,251,}, + {1,247,2,21,1,12,2,126,1,1109,2,12,1,55,2,225,1,251,}, + {1,248,2,21,1,11,2,126,1,1108,2,12,1,55,2,225,1,252,}, + {1,249,2,20,1,11,2,126,1,1108,2,12,1,54,2,226,1,252,}, + {1,250,2,20,1,10,2,126,1,1107,2,12,1,54,2,226,1,253,}, + {1,251,2,19,1,11,2,125,1,1106,2,13,1,53,2,227,1,253,}, + {1,252,2,19,1,11,2,124,1,3,2,2,1,1100,2,13,1,54,2,226,1,6,2,2,1,246,}, + {1,252,2,20,1,10,2,124,1,3,2,2,1,1099,2,14,1,53,2,227,1,6,2,2,1,246,}, + {1,253,2,19,1,11,2,123,1,3,2,2,1,1099,2,14,1,52,2,227,1,255,}, + {1,253,2,20,1,11,2,122,1,1103,2,15,1,52,2,226,1,256,}, + {1,254,2,19,1,12,2,122,1,1101,2,16,1,51,2,226,1,257,}, + {1,254,2,20,1,12,2,121,1,1100,2,17,1,50,2,226,1,258,}, + {1,255,2,19,1,13,2,121,1,1098,2,18,1,49,2,227,1,258,}, + {1,255,2,20,1,13,2,120,1,1097,2,18,1,49,2,227,1,259,}, + {1,256,2,19,1,15,2,119,1,1094,2,20,1,49,2,227,1,259,}, + {1,257,2,5,1,3,2,11,1,16,2,117,1,1093,2,21,1,48,2,227,1,260,}, + {1,258,2,3,1,6,2,9,1,17,2,116,1,6,2,2,1,1084,2,22,1,47,2,228,1,260,}, + {1,268,2,9,1,17,2,115,1,6,2,3,1,1082,2,23,1,46,2,228,1,261,}, + {1,269,2,8,1,17,2,115,1,6,2,3,1,1082,2,23,1,45,2,229,1,261,}, + {1,270,2,8,1,17,2,114,1,6,2,4,1,1080,2,23,1,45,2,230,1,261,}, + {1,271,2,7,1,17,2,114,1,7,2,4,1,1079,2,18,1,49,2,230,1,262,}, + {1,273,2,6,1,17,2,114,1,7,2,4,1,1077,2,17,1,50,2,231,1,262,}, + {1,275,2,5,1,16,2,116,1,5,2,5,1,1076,2,16,1,50,2,231,1,263,}, + {1,276,2,4,1,17,2,115,1,6,2,5,1,1073,2,17,1,50,2,231,1,264,}, + {1,278,2,1,1,18,2,114,1,7,2,6,1,1071,2,18,1,50,2,230,1,265,}, + {1,298,2,113,1,8,2,5,1,1070,2,18,1,50,2,230,1,266,}, + {1,299,2,111,1,10,2,5,1,1068,2,19,1,50,2,229,1,267,}, + {1,299,2,111,1,11,2,4,1,1067,2,19,1,51,2,229,1,267,}, + {1,300,2,109,1,12,2,5,1,1065,2,20,1,51,2,228,1,268,}, + {1,300,2,110,1,5,2,3,1,4,2,4,1,1065,2,19,1,52,2,227,1,269,}, + {1,301,2,109,1,4,2,6,1,1,2,6,1,1063,2,20,1,52,2,226,1,270,}, + {1,301,2,126,1,1061,2,22,1,51,2,227,1,270,}, + {1,302,2,125,1,1060,2,24,1,50,2,226,1,271,}, + {1,302,2,126,1,1058,2,25,1,49,2,226,1,272,}, + {1,303,2,125,1,1057,2,26,1,49,2,225,1,273,}, + {1,303,2,113,1,1,2,12,1,1055,2,26,1,49,2,225,1,274,}, + {1,304,2,111,1,3,2,11,1,1054,2,25,1,51,2,224,1,275,}, + {1,304,2,111,1,3,2,11,1,1053,2,25,1,51,2,225,1,275,}, + {1,304,2,126,1,1051,2,25,1,52,2,224,1,276,}, + {1,304,2,126,1,1050,2,25,1,52,2,225,1,276,}, + {1,304,2,127,1,1049,2,25,1,52,2,225,1,276,}, + {1,305,2,126,1,1049,2,24,1,52,2,223,1,279,}, + {1,305,2,127,1,1048,2,24,1,51,2,222,1,281,}, + {1,306,2,126,1,1048,2,23,1,52,2,221,1,282,}, + {1,306,2,127,1,1046,2,24,1,52,2,220,1,283,}, + {1,307,2,126,1,1046,2,24,1,52,2,219,1,284,}, + {1,308,2,125,1,1046,2,24,1,52,2,218,1,285,}, + {1,308,2,125,1,1046,2,24,1,51,2,218,1,286,}, + {1,309,2,124,1,1047,2,23,1,51,2,218,1,286,}, + {1,309,2,124,1,1047,2,23,1,50,2,218,1,287,}, + {1,310,2,123,1,1046,2,24,1,50,2,218,1,287,}, + {1,311,2,123,1,1045,2,25,1,48,2,218,1,288,}, + {1,312,2,122,1,1044,2,26,1,47,2,218,1,8,2,3,1,278,}, + {1,313,2,122,1,1043,2,27,1,45,2,218,1,9,2,2,1,279,}, + {1,314,2,121,1,1042,2,28,1,44,2,218,1,9,2,2,1,280,}, + {1,315,2,120,1,1042,2,28,1,44,2,218,1,291,}, + {1,316,2,119,1,1042,2,28,1,44,2,217,1,292,}, + {1,317,2,118,1,1042,2,28,1,43,2,217,1,293,}, + {1,319,2,113,1,1,2,2,1,1044,2,26,1,43,2,216,1,294,}, + {1,321,2,110,1,1049,2,25,1,42,2,216,1,295,}, + {1,323,2,107,1,1051,2,24,1,42,2,215,1,296,}, + {1,324,2,106,1,1050,2,25,1,41,2,216,1,296,}, + {1,324,2,106,1,4,2,2,1,1044,2,26,1,40,2,215,1,297,}, + {1,325,2,106,1,3,2,3,1,1042,2,29,1,37,2,216,1,9,2,2,1,286,}, + {1,325,2,107,1,1,2,4,1,1042,2,32,1,34,2,215,1,9,2,3,1,286,}, + {1,326,2,112,1,1041,2,33,1,32,2,215,1,9,2,3,1,287,}, + {1,326,2,112,1,1041,2,33,1,31,2,215,1,11,2,1,1,288,}, + {1,326,2,113,1,1040,2,33,1,31,2,214,1,301,}, + {1,327,2,112,1,1040,2,33,1,30,2,215,1,301,}, + {1,327,2,113,1,1039,2,33,1,30,2,214,1,302,}, + {1,328,2,107,1,3,2,2,1,1039,2,33,1,30,2,213,1,303,}, + {1,329,2,105,1,4,2,2,1,1040,2,31,1,30,2,213,1,304,}, + {1,330,2,104,1,4,2,2,1,1041,2,16,1,1,2,13,1,30,2,213,1,304,}, + {1,331,2,103,1,3,2,4,1,1051,2,4,1,3,2,11,1,30,2,213,1,305,}, + {1,332,2,109,1,1058,2,10,1,31,2,212,1,306,}, + {1,333,2,109,1,1056,2,10,1,31,2,212,1,307,}, + {1,334,2,108,1,1055,2,10,1,32,2,211,1,308,}, + {1,335,2,108,1,1053,2,9,1,33,2,211,1,309,}, + {1,336,2,108,1,1051,2,10,1,33,2,210,1,310,}, + {1,337,2,107,1,1051,2,9,1,33,2,210,1,311,}, + {1,338,2,106,1,1050,2,10,1,33,2,209,1,312,}, + {1,339,2,105,1,1048,2,11,1,34,2,190,1,3,2,15,1,313,}, + {1,340,2,104,1,1047,2,12,1,33,2,189,1,7,2,11,1,315,}, + {1,341,2,103,1,1046,2,13,1,33,2,188,1,9,2,9,1,316,}, + {1,342,2,102,1,1044,2,14,1,33,2,63,1,1,2,124,1,10,2,8,1,317,}, + {1,343,2,102,1,1041,2,17,1,32,2,61,1,4,2,122,1,11,2,7,1,318,}, + {1,344,2,101,1,1039,2,19,1,31,2,61,1,4,2,123,1,10,2,6,1,320,}, + {1,345,2,101,1,1036,2,22,1,29,2,61,1,5,2,122,1,11,2,5,1,321,}, + {1,346,2,101,1,1031,2,26,1,28,2,61,1,5,2,122,1,11,2,5,1,322,}, + {1,348,2,100,1,1029,2,28,1,27,2,60,1,6,2,121,1,12,2,4,1,323,}, + {1,349,2,99,1,1028,2,29,1,27,2,59,1,6,2,121,1,12,2,4,1,324,}, + {1,350,2,99,1,1027,2,29,1,27,2,58,1,6,2,121,1,13,2,3,1,325,}, + {1,351,2,98,1,1027,2,29,1,26,2,58,1,6,2,122,1,12,2,2,1,327,}, + {1,352,2,98,1,1026,2,29,1,26,2,58,1,5,2,122,1,12,2,3,1,327,}, + {1,353,2,97,1,1025,2,30,1,25,2,47,1,2,2,9,1,5,2,122,1,12,2,3,1,328,}, + {1,354,2,97,1,1024,2,30,1,24,2,46,1,5,2,7,1,6,2,121,1,12,2,3,1,329,}, + {1,354,2,97,1,1023,2,32,1,22,2,46,1,6,2,6,1,6,2,122,1,12,2,2,1,330,}, + {1,355,2,97,1,1022,2,32,1,21,2,47,1,6,2,5,1,7,2,121,1,345,}, + {1,355,2,97,1,1021,2,34,1,20,2,3,1,2,2,41,1,7,2,4,1,7,2,122,1,345,}, + {1,356,2,96,1,1020,2,35,1,26,2,40,1,7,2,3,1,7,2,122,1,346,}, + {1,357,2,96,1,1018,2,27,1,3,2,7,1,25,2,39,1,17,2,123,1,346,}, + {1,358,2,95,1,1017,2,26,1,5,2,7,1,26,2,38,1,16,2,123,1,347,}, + {1,359,2,95,1,1015,2,26,1,7,2,6,1,26,2,37,1,16,2,124,1,347,}, + {1,360,2,94,1,1013,2,23,1,12,2,7,1,25,2,37,1,15,2,125,1,347,}, + {1,362,2,93,1,1011,2,23,1,12,2,8,1,26,2,35,1,16,2,125,1,347,}, + {1,363,2,92,1,1010,2,24,1,12,2,9,1,25,2,34,1,16,2,126,1,347,}, + {1,363,2,93,1,1008,2,26,1,10,2,10,1,26,2,32,1,17,2,126,1,347,}, + {1,364,2,93,1,1006,2,28,1,5,2,15,1,25,2,32,1,16,2,126,1,348,}, + {1,364,2,94,1,1004,2,18,1,1,2,12,1,1,2,17,1,25,2,31,1,16,2,127,1,348,}, + {1,365,2,94,1,1002,2,17,1,4,2,30,1,23,2,31,1,17,2,126,1,349,}, + {1,365,2,95,1,1000,2,9,1,13,2,32,1,21,2,30,1,18,2,125,1,350,}, + {1,365,2,95,1,998,2,9,1,16,2,33,1,18,2,30,1,19,2,124,1,351,}, + {1,365,2,96,1,996,2,9,1,18,2,32,1,17,2,29,1,20,2,124,1,352,}, + {1,366,2,95,1,996,2,8,1,20,2,31,1,16,2,28,1,22,2,123,1,353,}, + {1,367,2,96,1,995,2,6,1,22,2,9,1,4,2,17,1,16,2,27,1,21,2,124,1,354,}, + {1,369,2,96,1,994,2,4,1,24,2,6,1,7,2,17,1,14,2,27,1,20,2,125,1,355,}, + {1,370,2,96,1,1035,2,16,1,14,2,26,1,20,2,125,1,356,}, + {1,372,2,95,1,1035,2,16,1,12,2,25,1,21,2,125,1,357,}, + {1,374,2,94,1,1035,2,16,1,10,2,23,1,23,2,124,1,359,}, + {1,375,2,93,1,1036,2,16,1,7,2,23,1,24,2,124,1,360,}, + {1,376,2,92,1,1035,2,18,1,4,2,23,1,26,2,123,1,361,}, + {1,376,2,92,1,1035,2,43,1,27,2,123,1,362,}, + {1,377,2,91,1,1034,2,42,1,29,2,122,1,363,}, + {1,378,2,90,1,1033,2,41,1,30,2,122,1,364,}, + {1,379,2,90,1,1031,2,41,1,31,2,121,1,365,}, + {1,380,2,89,1,1029,2,41,1,32,2,121,1,366,}, + {1,381,2,89,1,974,2,3,1,49,2,43,1,32,2,120,1,367,}, + {1,381,2,90,1,973,2,3,1,48,2,43,1,32,2,120,1,368,}, + {1,382,2,90,1,972,2,3,1,46,2,45,1,31,2,120,1,369,}, + {1,382,2,90,1,972,2,3,1,45,2,45,1,31,2,120,1,370,}, + {1,383,2,90,1,971,2,2,1,45,2,45,1,32,2,118,1,372,}, + {1,383,2,91,1,969,2,3,1,45,2,44,1,33,2,117,1,373,}, + {1,384,2,92,1,967,2,2,1,46,2,44,1,32,2,117,1,374,}, + {1,384,2,93,1,965,2,2,1,53,2,37,1,33,2,117,1,374,}, + {1,384,2,94,1,963,2,2,1,56,2,35,1,32,2,117,1,375,}, + {1,385,2,94,1,961,2,2,1,59,2,32,1,31,2,118,1,376,}, + {1,386,2,93,1,960,2,2,1,62,2,29,1,31,2,119,1,376,}, + {1,389,2,91,1,958,2,2,1,65,2,26,1,31,2,119,1,377,}, + {1,391,2,89,1,957,2,2,1,68,2,23,1,31,2,120,1,377,}, + {1,391,2,90,1,956,2,1,1,71,2,20,1,31,2,120,1,378,}, + {1,392,2,89,1,1030,2,17,1,32,2,119,1,379,}, + {1,393,2,90,1,1030,2,13,1,33,2,119,1,380,}, + {1,394,2,91,1,1033,2,7,1,34,2,118,1,381,}, + {1,395,2,91,1,1034,2,4,1,34,2,118,1,382,}, + {1,396,2,91,1,1070,2,118,1,383,}, + {1,397,2,92,1,1066,2,119,1,384,}, + {1,398,2,93,1,1063,2,119,1,385,}, + {1,399,2,94,1,1060,2,120,1,385,}, + {1,400,2,94,1,1058,2,120,1,386,}, + {1,402,2,93,1,1056,2,120,1,387,}, + {1,403,2,93,1,1055,2,119,1,388,}, + {1,405,2,91,1,1055,2,118,1,21,2,2,1,366,}, + {1,407,2,90,1,1054,2,116,1,23,2,3,1,365,}, + {1,408,2,89,1,1053,2,117,1,24,2,2,1,365,}, + {1,409,2,89,1,1052,2,116,1,392,}, + {1,410,2,88,1,914,2,2,1,135,2,116,1,393,}, + {1,411,2,88,1,913,2,3,1,134,2,115,1,394,}, + {1,412,2,88,1,913,2,2,1,133,2,115,1,395,}, + {1,413,2,88,1,1047,2,113,1,39,2,3,1,355,}, + {1,415,2,87,1,1045,2,112,1,39,2,5,1,355,}, + {1,416,2,88,1,1041,2,113,1,25,2,2,1,12,2,6,1,355,}, + {1,417,2,89,1,1038,2,113,1,25,2,4,1,11,2,5,1,356,}, + {1,418,2,90,1,1035,2,113,1,25,2,5,1,10,2,6,1,356,}, + {1,419,2,90,1,1033,2,113,1,26,2,5,1,10,2,5,1,357,}, + {1,420,2,90,1,1031,2,113,1,26,2,6,1,9,2,4,1,359,}, + {1,421,2,90,1,1029,2,114,1,25,2,7,1,8,2,4,1,360,}, + {1,423,2,89,1,1027,2,114,1,25,2,8,1,8,2,3,1,361,}, + {1,428,2,85,1,1024,2,115,1,25,2,8,1,9,2,2,1,362,}, + {1,430,2,85,1,1021,2,115,1,25,2,9,1,373,}, + {1,432,2,85,1,1018,2,115,1,24,2,10,1,374,}, + {1,433,2,86,1,1015,2,115,1,24,2,10,1,375,}, + {1,434,2,86,1,1013,2,115,1,24,2,10,1,376,}, + {1,435,2,86,1,1011,2,115,1,24,2,11,1,376,}, + {1,436,2,86,1,1009,2,115,1,24,2,11,1,377,}, + {1,437,2,85,1,1007,2,116,1,23,2,13,1,377,}, + {1,438,2,85,1,1004,2,117,1,22,2,8,1,1,2,5,1,378,}, + {1,439,2,86,1,1000,2,118,1,21,2,8,1,4,2,4,1,378,}, + {1,440,2,87,1,997,2,118,1,21,2,8,1,4,2,4,1,379,}, + {1,441,2,88,1,994,2,118,1,21,2,8,1,6,2,2,1,380,}, + {1,442,2,89,1,991,2,118,1,21,2,9,1,388,}, + {1,443,2,89,1,989,2,118,1,21,2,9,1,389,}, + {1,444,2,89,1,986,2,119,1,22,2,9,1,389,}, + {1,445,2,89,1,984,2,119,1,22,2,9,1,390,}, + {1,447,2,88,1,982,2,119,1,22,2,11,1,389,}, + {1,448,2,88,1,980,2,119,1,22,2,13,1,388,}, + {1,450,2,87,1,977,2,120,1,21,2,15,1,388,}, + {1,451,2,87,1,974,2,122,1,19,2,17,1,388,}, + {1,452,2,87,1,971,2,123,1,17,2,19,1,389,}, + {1,453,2,88,1,968,2,124,1,16,2,19,1,390,}, + {1,454,2,89,1,964,2,126,1,15,2,19,1,391,}, + {1,455,2,90,1,960,2,127,1,16,2,17,1,393,}, + {1,457,2,89,1,958,2,127,1,16,2,16,1,395,}, + {1,458,2,89,1,955,2,127,1,18,2,16,1,395,}, + {1,459,2,88,1,954,2,127,1,18,2,16,1,396,}, + {1,460,2,88,1,952,2,128,1,16,2,18,1,396,}, + {1,461,2,88,1,950,2,129,1,15,2,19,1,396,}, + {1,462,2,89,1,947,2,131,1,13,2,18,1,398,}, + {1,464,2,88,1,945,2,133,1,11,2,13,1,404,}, + {1,465,2,88,1,942,2,135,1,10,2,12,1,406,}, + {1,466,2,89,1,938,2,137,1,9,2,13,1,406,}, + {1,467,2,89,1,936,2,137,1,9,2,13,1,407,}, + {1,468,2,89,1,933,2,139,1,8,2,14,1,407,}, + {1,469,2,89,1,930,2,141,1,7,2,14,1,408,}, + {1,470,2,89,1,927,2,143,1,6,2,15,1,408,}, + {1,471,2,88,1,925,2,145,1,5,2,15,1,409,}, + {1,472,2,88,1,6,2,4,1,913,2,145,1,5,2,15,1,410,}, + {1,473,2,87,1,5,2,7,1,910,2,146,1,3,2,13,1,414,}, + {1,474,2,87,1,4,2,12,1,903,2,162,1,416,}, + {1,475,2,87,1,2,2,14,1,900,2,162,1,418,}, + {1,477,2,101,1,898,2,162,1,420,}, + {1,478,2,101,1,896,2,148,1,2,2,11,1,422,}, + {1,479,2,100,1,894,2,148,1,4,2,10,1,423,}, + {1,480,2,100,1,892,2,147,1,6,2,8,1,425,}, + {1,481,2,101,1,888,2,148,1,6,2,9,1,425,}, + {1,482,2,105,1,881,2,149,1,6,2,9,1,426,}, + {1,483,2,106,1,1,2,2,1,875,2,148,1,6,2,11,1,426,}, + {1,484,2,108,1,874,2,148,1,6,2,11,1,427,}, + {1,485,2,107,1,873,2,147,1,7,2,12,1,427,}, + {1,486,2,105,1,873,2,146,1,8,2,12,1,428,}, + {1,487,2,105,1,871,2,145,1,8,2,13,1,429,}, + {1,488,2,105,1,868,2,145,1,9,2,12,1,431,}, + {1,490,2,105,1,865,2,144,1,10,2,11,1,433,}, + {1,491,2,106,1,861,2,145,1,9,2,11,1,435,}, + {1,492,2,107,1,857,2,145,1,10,2,11,1,436,}, + {1,494,2,108,1,5,2,2,1,846,2,145,1,10,2,11,1,437,}, + {1,495,2,109,1,1,2,5,1,844,2,144,1,10,2,12,1,438,}, + {1,497,2,113,1,3,2,2,1,837,2,145,1,9,2,13,1,439,}, + {1,498,2,118,1,727,2,6,1,101,2,146,1,8,2,14,1,440,}, + {1,500,2,117,1,724,2,10,1,97,2,147,1,7,2,14,1,442,}, + {1,501,2,117,1,722,2,13,1,92,2,149,1,7,2,14,1,443,}, + {1,502,2,117,1,720,2,16,1,88,2,149,1,8,2,14,1,444,}, + {1,504,2,116,1,717,2,19,1,85,2,150,1,8,2,14,1,445,}, + {1,506,2,116,1,19,2,4,1,691,2,21,1,75,2,6,1,1,2,151,1,8,2,13,1,447,}, + {1,507,2,117,1,16,2,7,1,688,2,24,1,71,2,158,1,9,2,13,1,448,}, + {1,509,2,117,1,13,2,10,1,685,2,27,1,68,2,157,1,10,2,12,1,450,}, + {1,511,2,116,1,12,2,12,1,681,2,31,1,65,2,156,1,11,2,12,1,451,}, + {1,512,2,116,1,11,2,17,1,675,2,33,1,62,2,157,1,11,2,11,1,453,}, + {1,513,2,115,1,12,2,18,1,672,2,36,1,58,2,158,1,11,2,10,1,455,}, + {1,515,2,113,1,13,2,19,1,669,2,38,1,55,2,158,1,12,2,10,1,456,}, + {1,516,2,112,1,17,2,19,1,664,2,40,1,52,2,159,1,11,2,10,1,458,}, + {1,517,2,112,1,23,2,15,1,660,2,42,1,49,2,160,1,11,2,9,1,460,}, + {1,518,2,111,1,25,2,14,1,658,2,43,1,48,2,160,1,10,2,9,1,462,}, + {1,520,2,111,1,27,2,11,1,656,2,44,1,47,2,160,1,10,2,8,1,464,}, + {1,521,2,112,1,28,2,8,1,656,2,44,1,45,2,161,1,9,2,9,1,465,}, + {1,522,2,113,1,28,2,7,1,654,2,45,1,43,2,163,1,8,2,9,1,466,}, + {1,523,2,114,1,28,2,6,1,653,2,45,1,42,2,164,1,7,2,9,1,467,}, + {1,524,2,117,1,26,2,4,1,652,2,46,1,40,2,167,1,4,2,10,1,468,}, + {1,526,2,117,1,8,2,6,1,10,2,4,1,650,2,48,1,38,2,170,1,1,2,11,1,469,}, + {1,527,2,118,1,5,2,10,1,6,2,6,1,647,2,50,1,36,2,183,1,470,}, + {1,529,2,143,1,645,2,51,1,35,2,168,1,2,2,14,1,471,}, + {1,530,2,144,1,641,2,52,1,34,2,169,1,3,2,12,1,473,}, + {1,532,2,144,1,637,2,53,1,33,2,172,1,1,2,11,1,475,}, + {1,533,2,145,1,633,2,54,1,32,2,184,1,477,}, + {1,535,2,147,1,628,2,54,1,31,2,185,1,478,}, + {1,536,2,148,1,625,2,54,1,30,2,185,1,480,}, + {1,538,2,148,1,623,2,53,1,29,2,186,1,481,}, + {1,540,2,161,1,607,2,53,1,28,2,187,1,482,}, + {1,541,2,162,1,605,2,52,1,28,2,186,1,484,}, + {1,542,2,164,1,601,2,53,1,27,2,161,1,3,2,21,1,486,}, + {1,543,2,166,1,598,2,52,1,28,2,159,1,5,2,20,1,487,}, + {1,544,2,167,1,595,2,52,1,29,2,157,1,6,2,20,1,488,}, + {1,546,2,167,1,592,2,52,1,30,2,155,1,7,2,7,1,2,2,11,1,489,}, + {1,547,2,171,1,2,2,11,1,572,2,53,1,32,2,153,1,7,2,20,1,490,}, + {1,548,2,185,1,568,2,54,1,33,2,152,1,7,2,20,1,491,}, + {1,549,2,188,1,562,2,54,1,35,2,151,1,7,2,20,1,492,}, + {1,551,2,195,1,551,2,54,1,35,2,152,1,7,2,20,1,493,}, + {1,552,2,162,1,4,2,29,1,548,2,54,1,30,2,157,1,9,2,19,1,494,}, + {1,554,2,158,1,15,2,21,1,6,2,3,1,536,2,54,1,32,2,155,1,11,2,17,1,496,}, + {1,556,2,155,1,20,2,19,1,2,2,6,1,532,2,56,1,33,2,153,1,14,2,14,1,498,}, + {1,557,2,155,1,22,2,25,1,527,2,59,1,35,2,150,1,16,2,13,1,499,}, + {1,559,2,154,1,23,2,24,1,524,2,59,1,36,2,150,1,16,2,13,1,500,}, + {1,560,2,155,1,23,2,24,1,521,2,58,1,36,2,151,1,15,2,14,1,501,}, + {1,561,2,156,1,27,2,23,1,517,2,55,1,37,2,150,1,15,2,14,1,503,}, + {1,563,2,157,1,32,2,5,1,1,2,11,1,3,2,6,1,506,2,54,1,37,2,150,1,15,2,14,1,504,}, + {1,565,2,160,1,35,2,19,1,506,2,51,1,38,2,150,1,15,2,13,1,506,}, + {1,566,2,160,1,37,2,18,1,3,2,3,1,498,2,50,1,38,2,150,1,14,2,13,1,508,}, + {1,567,2,160,1,44,2,10,1,1,2,5,1,6,2,7,1,485,2,48,1,39,2,150,1,13,2,13,1,510,}, + {1,569,2,159,1,54,2,5,1,5,2,9,1,484,2,46,1,40,2,140,1,1,2,8,1,13,2,13,1,512,}, + {1,571,2,158,1,63,2,11,1,3,2,6,1,471,2,46,1,41,2,140,1,3,2,5,1,13,2,13,1,514,}, + {1,572,2,158,1,66,2,20,1,465,2,47,1,40,2,143,1,1,2,4,1,13,2,13,1,516,}, + {1,574,2,158,1,66,2,18,1,463,2,48,1,39,2,149,1,12,2,13,1,518,}, + {1,575,2,159,1,72,2,9,1,462,2,48,1,39,2,151,1,6,2,17,1,520,}, + {1,576,2,160,1,72,2,6,1,460,2,49,1,40,2,151,1,6,2,16,1,522,}, + {1,578,2,160,1,534,2,50,1,40,2,152,1,4,2,16,1,524,}, + {1,580,2,162,1,528,2,50,1,40,2,155,1,1,2,16,1,526,}, + {1,582,2,162,1,526,2,49,1,39,2,172,1,528,}, + {1,584,2,162,1,527,2,45,1,38,2,172,1,530,}, + {1,586,2,171,1,518,2,42,1,37,2,147,1,1,2,24,1,532,}, + {1,588,2,171,1,516,2,41,1,34,2,145,1,8,2,21,1,534,}, + {1,590,2,171,1,514,2,39,1,33,2,147,1,8,2,20,1,536,}, + {1,592,2,172,1,510,2,38,1,34,2,148,1,7,2,20,1,537,}, + {1,594,2,172,1,508,2,7,1,3,2,27,1,34,2,150,1,4,2,21,1,538,}, + {1,595,2,173,1,516,2,26,1,33,2,147,1,1,2,28,1,539,}, + {1,597,2,172,1,515,2,25,1,32,2,147,1,4,2,25,1,541,}, + {1,598,2,171,1,514,2,24,1,29,2,150,1,7,2,22,1,543,}, + {1,599,2,171,1,511,2,25,1,28,2,150,1,8,2,21,1,545,}, + {1,600,2,170,1,509,2,25,1,28,2,150,1,10,2,19,1,547,}, + {1,601,2,170,1,507,2,23,1,11,2,13,1,5,2,150,1,11,2,18,1,549,}, + {1,603,2,170,1,504,2,22,1,11,2,168,1,11,2,19,1,550,}, + {1,605,2,173,1,498,2,21,1,11,2,165,1,14,2,19,1,552,}, + {1,607,2,175,1,493,2,20,1,11,2,165,1,15,2,18,1,554,}, + {1,608,2,177,1,489,2,19,1,12,2,164,1,15,2,18,1,556,}, + {1,609,2,179,1,471,2,4,1,10,2,19,1,11,2,165,1,14,2,19,1,557,}, + {1,611,2,180,1,466,2,6,1,10,2,18,1,10,2,161,1,18,2,19,1,559,}, + {1,613,2,180,1,464,2,4,1,11,2,18,1,9,2,158,1,22,2,18,1,561,}, + {1,615,2,180,1,475,2,18,1,9,2,158,1,22,2,18,1,563,}, + {1,617,2,180,1,471,2,19,1,9,2,155,1,25,2,17,1,565,}, + {1,619,2,180,1,466,2,20,1,9,2,155,1,25,2,17,1,567,}, + {1,620,2,180,1,461,2,22,1,9,2,155,1,25,2,17,1,569,}, + {1,622,2,180,1,457,2,22,1,9,2,153,1,27,2,18,1,570,}, + {1,624,2,180,1,453,2,23,1,8,2,152,1,28,2,8,1,3,2,7,1,572,}, + {1,626,2,184,1,439,2,31,1,6,2,152,1,28,2,10,1,2,2,6,1,574,}, + {1,628,2,184,1,435,2,188,1,29,2,13,1,1,2,5,1,575,}, + {1,630,2,184,1,431,2,187,1,30,2,15,1,581,}, + {1,632,2,184,1,427,2,187,1,31,2,15,1,582,}, + {1,634,2,186,1,421,2,187,1,31,2,15,1,584,}, + {1,636,2,111,1,3,2,76,1,413,2,188,1,31,2,14,1,586,}, + {1,638,2,108,1,6,2,67,1,1,2,8,1,405,2,193,1,30,2,14,1,588,}, + {1,639,2,108,1,7,2,64,1,4,2,11,1,393,2,199,1,30,2,13,1,590,}, + {1,641,2,107,1,8,2,62,1,6,2,9,1,391,2,199,1,30,2,14,1,591,}, + {1,643,2,106,1,10,2,60,1,6,2,8,1,389,2,199,1,30,2,15,1,592,}, + {1,645,2,106,1,10,2,60,1,3,2,9,1,387,2,199,1,30,2,16,1,593,}, + {1,647,2,106,1,10,2,69,1,381,2,205,1,29,2,17,1,594,}, + {1,649,2,106,1,10,2,68,1,378,2,206,1,29,2,17,1,595,}, + {1,651,2,106,1,8,2,69,1,375,2,207,1,29,2,17,1,596,}, + {1,653,2,107,1,5,2,6,1,3,2,62,1,371,2,207,1,30,2,11,1,603,}, + {1,654,2,108,1,2,2,7,1,5,2,62,1,367,2,206,1,32,2,10,1,605,}, + {1,657,2,115,1,6,2,53,1,3,2,5,1,364,2,204,1,35,2,9,1,607,}, + {1,659,2,115,1,9,2,47,1,6,2,4,1,357,2,206,1,37,2,9,1,609,}, + {1,662,2,114,1,9,2,46,1,6,2,3,1,338,2,7,1,7,2,209,1,37,2,9,1,611,}, + {1,666,2,112,1,9,2,44,1,7,2,1,1,331,2,229,1,37,2,9,1,613,}, + {1,671,2,110,1,8,2,34,1,3,2,6,1,336,2,228,1,38,2,9,1,615,}, + {1,674,2,109,1,7,2,31,1,7,2,5,1,333,2,227,1,39,2,9,1,617,}, + {1,678,2,107,1,4,2,6,1,2,2,22,1,11,2,3,1,331,2,227,1,39,2,9,1,619,}, + {1,681,2,75,1,2,2,37,1,3,2,20,1,344,2,227,1,40,2,8,1,621,}, + {1,683,2,73,1,6,2,34,1,1,2,7,1,1,2,12,1,343,2,226,1,42,2,6,1,624,}, + {1,686,2,71,1,7,2,39,1,3,2,11,1,339,2,228,1,44,2,3,1,627,}, + {1,689,2,70,1,6,2,39,1,1,2,11,1,336,2,230,1,676,}, + {1,691,2,75,1,3,2,48,1,332,2,230,1,679,}, + {1,694,2,72,1,4,2,3,1,1,2,44,1,328,2,227,1,45,2,3,1,637,}, + {1,696,2,72,1,1,2,3,1,4,2,44,1,321,2,230,1,47,2,3,1,637,}, + {1,698,2,75,1,5,2,44,1,317,2,230,1,689,}, + {1,702,2,71,1,7,2,43,1,312,2,232,1,691,}, + {1,705,2,70,1,7,2,42,1,309,2,231,1,694,}, + {1,708,2,69,1,8,2,40,1,303,2,233,1,697,}, + {1,712,2,66,1,9,2,39,1,47,2,4,1,248,2,232,1,701,}, + {1,714,2,65,1,10,2,38,1,46,2,6,1,243,2,233,1,703,}, + {1,721,2,59,1,11,2,5,1,3,2,29,1,47,2,6,1,234,2,238,1,705,}, + {1,725,2,56,1,10,2,3,1,7,2,29,1,48,2,6,1,228,2,236,1,710,}, + {1,727,2,56,1,24,2,27,1,46,2,4,1,221,2,239,1,714,}, + {1,731,2,54,1,31,2,22,1,261,2,241,1,718,}, + {1,733,2,54,1,31,2,22,1,257,2,239,1,722,}, + {1,737,2,52,1,2,2,4,1,34,2,13,1,252,2,240,1,724,}, + {1,741,2,54,1,40,2,9,1,240,2,245,1,729,}, + {1,744,2,52,1,41,2,7,1,238,2,245,1,731,}, + {1,749,2,49,1,279,2,246,1,735,}, + {1,754,2,20,1,3,2,23,1,238,2,10,1,25,2,244,1,741,}, + {1,762,2,10,1,10,2,21,1,235,2,276,1,744,}, + {1,764,2,6,1,14,2,21,1,233,2,274,1,746,}, + {1,789,2,18,1,232,2,271,1,748,}, + {1,791,2,18,1,232,2,267,1,750,}, + {1,793,2,20,1,100,2,17,1,113,2,258,1,757,}, + {1,801,2,15,1,95,2,22,1,111,2,234,1,3,2,6,1,771,}, + {1,806,2,10,1,93,2,31,1,104,2,232,1,6,2,4,1,772,}, + {1,884,2,15,1,7,2,38,1,101,2,229,1,9,2,2,1,60,2,2,1,711,}, + {1,884,2,63,1,99,2,227,1,72,2,2,1,711,}, + {1,887,2,64,1,96,2,223,1,65,2,3,1,720,}, + {1,891,2,72,1,83,2,211,1,4,2,7,1,65,2,5,1,720,}, + {1,893,2,72,1,79,2,209,1,10,2,3,1,65,2,5,1,722,}, + {1,895,2,72,1,71,2,208,1,85,2,3,1,724,}, + {1,900,2,69,1,61,2,214,1,814,}, + {1,907,2,65,1,50,2,215,1,821,}, + {1,914,2,65,1,42,2,214,1,823,}, + {1,918,2,23,1,1,2,50,1,1,2,13,1,14,2,212,1,826,}, + {1,925,2,14,1,5,2,64,1,12,2,209,1,829,}, + {1,946,2,64,1,8,2,209,1,831,}, + {1,947,2,65,1,4,2,208,1,834,}, + {1,947,2,242,1,3,2,29,1,837,}, + {1,948,2,237,1,9,2,22,1,842,}, + {1,950,2,233,1,12,2,15,1,848,}, + {1,953,2,228,1,15,2,7,1,855,}, + {1,957,2,223,1,878,}, + {1,963,2,217,1,878,}, + {1,970,2,210,1,878,}, + {1,975,2,204,1,879,}, + {1,981,2,197,1,880,}, + {1,990,2,180,1,888,}, + {1,995,2,167,1,896,}, + {1,1003,2,157,1,898,}, + {1,1009,2,132,1,917,}, + {1,1023,2,115,1,920,}, + {1,1029,2,96,1,86,2,3,1,844,}, + {1,1036,2,73,1,101,2,5,1,843,}, + {1,1083,2,16,1,100,2,8,1,2,2,6,1,843,}, + {1,1198,2,9,1,2,2,5,1,844,}, + {1,1197,2,10,1,851,}, + {1,1196,2,9,1,853,}, + {1,1184,2,1,1,3,2,16,1,854,}, + {1,1183,2,21,1,854,}, + {1,1183,2,20,1,855,}, + {1,1165,2,6,1,13,2,7,1,867,}, + {1,1164,2,9,1,885,}, + {1,1164,2,13,1,881,}, + {1,1167,2,10,1,881,}, + {1,1138,2,5,1,26,2,7,1,882,}, + {1,1019,2,10,1,89,2,7,1,13,2,5,1,915,}, + {1,1019,2,10,1,87,2,9,1,13,2,5,1,915,}, + {1,1114,2,10,1,13,2,6,1,915,}, + {1,1089,2,4,1,8,2,21,1,15,2,5,1,916,}, + {1,1089,2,25,1,22,2,6,1,916,}, + {1,1089,2,23,1,23,2,6,1,917,}, + {1,1089,2,21,1,25,2,5,1,918,}, + {1,1089,2,20,1,26,2,4,1,919,}, + {1,1090,2,8,1,1,2,9,1,27,2,4,1,919,}, + {1,1075,2,5,1,11,2,5,1,4,2,8,1,27,2,3,1,920,}, + {1,1074,2,6,1,12,2,3,1,5,2,8,1,950,}, + {1,1075,2,4,1,12,2,3,1,6,2,8,1,950,}, + {1,1075,2,3,1,10,2,6,1,5,2,8,1,951,}, + {1,1013,2,12,1,49,2,3,1,11,2,5,1,6,2,7,1,952,}, + {1,1011,2,14,1,49,2,2,1,13,2,3,1,6,2,6,1,954,}, + {1,1011,2,13,1,49,2,3,1,21,2,5,1,956,}, + {1,1010,2,12,1,36,2,7,1,6,2,4,1,21,2,5,1,957,}, + {1,1011,2,5,1,33,2,6,1,1,2,11,1,2,2,6,1,21,2,4,1,958,}, + {1,1010,2,5,1,34,2,13,1,1,2,11,1,21,2,5,1,958,}, + {1,1009,2,5,1,35,2,12,1,3,2,10,1,20,2,5,1,959,}, + {1,1009,2,4,1,18,2,10,1,9,2,12,1,1,2,3,1,1,2,6,1,11,2,4,1,6,2,4,1,960,}, + {1,1031,2,17,1,1,2,16,1,3,2,5,1,11,2,4,1,970,}, + {1,1032,2,33,1,3,2,5,1,985,}, + {1,1042,2,23,1,993,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,1031,2,2,1,1025,}, + {1,1031,2,2,1,1025,}, + {1,1031,2,2,1,1025,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, + {1,2058,}, +} +}) \ No newline at end of file diff --git a/map_gen/maps/april_fools/2019.lua b/map_gen/maps/april_fools/2019.lua new file mode 100644 index 00000000..cf271c07 --- /dev/null +++ b/map_gen/maps/april_fools/2019.lua @@ -0,0 +1,240 @@ +-- this file contains all information related to map generation and control of new features. +-- a new feature has a chance to be added or increased every time a research is completed +-- or a rocket is launched, until its max capacity +-- Setup the scenario map information because everyone gets upset if you don't +local ScenarioInfo = require 'features.gui.info' +ScenarioInfo.set_map_name('Pinguin') +ScenarioInfo.set_map_description('You are Pinguins in Antarctica!') +ScenarioInfo.set_map_extra_info('Watch out for Icebergs!') + +--- Config +local config = global.config +config.currency = nil +config.market.enabled = false +config.player_rewards.enabled = false +config.redmew_qol.set_alt_on_create = false + +local restart_command = require 'map_gen.maps.april_fools.scenario.restart_command' +restart_command({scenario_name = 'april-fools-2019'}) + +-- == MAP GEN ================================================================= + +local b = require 'map_gen.shared.builders' +local RS = require 'map_gen.shared.redmew_surface' +local MGSP = require 'resources.map_gen_settings' + +--[[ + Scale the map. + The pictures are originally quite large to preserve detail. + Will need to scale the map differently depending on which map you use. + Antarctica map at .5 scale: Antarctica is 46 chunks tall + Earth map at .5 scale: Antarctica is 4 chunks tall +]] + +local map_scale = _DEBUG and 0.1 or 20 +local pic = require 'map_gen.data.presets.antarctica' +-- local pic = require 'map_gen.data.presets.antarctica_earth' + +local shape = b.picture(pic) +shape = b.scale(shape, map_scale, map_scale) + +local map = b.change_tile(shape, false, 'deepwater') +-- Override map gen selections +RS.set_map_gen_settings({ MGSP.water_very_low }) + +-- == MODULES IMPORT ========================================================== + +local Event = require 'utils.event' + +local modules = { + require 'map_gen.maps.april_fools.modules.alternative_biters', -- Spawns a random biters on every player that has alt-mode turned on + require 'map_gen.maps.april_fools.modules.crazy_chat_colors', -- Chance to change player's color every time they send a message in chat + require 'map_gen.maps.april_fools.modules.crazy_toolbar', -- Randomly replaces quickbar slots with new items + require 'map_gen.maps.april_fools.modules.enemy_turrets', -- Chance to change turret to enemy force, and give it ammo/fuel/power + require 'map_gen.maps.april_fools.modules.floor_is_lava', -- Does minor damage to a player when afk for a few second + require 'map_gen.maps.april_fools.modules.golden_goose', -- Randomly selected players will drop coins for a time, before changing targets + require 'map_gen.maps.april_fools.modules.marathon_mode', -- Enables expensive recipes and increases technology multiplier + require 'map_gen.maps.april_fools.modules.orphan_crafting', -- Chance to give the player an additional single underground belt or pipe-to-ground + require 'map_gen.maps.april_fools.modules.random_ores', -- Chance to change an ore to a random ore when a mining drill is placed + require 'map_gen.maps.april_fools.modules.rotate_entities', -- Chance to randomly rotate an entity when rotated by a player + require 'map_gen.maps.april_fools.modules.rotate_inserters', -- Chance to randomly rotate an inserter when built + require 'map_gen.maps.april_fools.modules.rotten_egg', -- Randomly selected players will produce pollution for a time, before changing targets +} + +-- if script.active_mods['redmew-data'] then +-- local PATH_MODULES_MOD = '__redmew-data__/' +-- table.insert(modules, PATH_MODULES_MOD .. 'name_of_the_module') +-- end + +-- Activate module events +for _, mod in pairs(modules) do + if mod.on_init then + Event.on_init(mod.on_init) + end + + if mod.on_load then + Event.on_load(mod.on_load) + end + + if mod.on_configuration_changed then + Event.on_configuration_changed(mod.on_configuration_changed) + end + + if mod.events then + for id_event, callback in pairs(mod.events) do + Event.add(id_event, callback) + end + end + + if mod.on_nth_tick then + for nth_tick, callback in pairs(mod.on_nth_tick) do + Event.on_nth_tick(nth_tick, callback) + end + end +end + +-- == CONTROLLER ============================================================== + +local Toast = require 'features.gui.toast' + +local ICEBERG_ENABLE_PERCENTAGE = 0.50 +local TOAST_DURATION = 10 + +local function draw_random_effect(max_share) + local mod_index = math.random(1, #modules) + local mod = modules[mod_index] + + if mod == nil then + return + end + + local old_level, new_level, max_level = 0, 0, 0 + + if mod.level_get then + old_level = mod.level_get() + end + if mod.max_get then + max_level = mod.max_get() + end + + if old_level < (max_level * max_share) then + if mod.level_increase then + mod.level_increase() + end + end + + if mod.level_get then + new_level = mod.level_get() + end + + if new_level == old_level then + Toast.toast_all_players(TOAST_DURATION, 'Everything seems normal... for now.') + game.print('There appears to be no change to the iceberg, lucky Pinguins.') + else + if new_level == 1 then + Toast.toast_all_players(TOAST_DURATION, 'More snow has fallen! A new layer has been added to the iceberg!') + else + Toast.toast_all_players(TOAST_DURATION, 'The iceberg shifts, but you don\'t notice anything new.') + end + game.print(mod.name .. ' level: ' .. tostring(new_level)) + end +end + +-- Features can be incremented up to 50% of max level with research +local function on_research_finished() + if math.random(100) <= 100 * ICEBERG_ENABLE_PERCENTAGE then + draw_random_effect(0.5) + else + Toast.toast_all_players(TOAST_DURATION, 'Everything seems normal... for now.') + game.print('There appears to be no change to the iceberg, lucky Pinguins.') + end +end + +-- Features can be incremented up to 100% of max level with rocket launches +local function on_rocket_launched() + if math.random(100) <= 100 * 2 * ICEBERG_ENABLE_PERCENTAGE then + draw_random_effect(1) + else + Toast.toast_all_players(TOAST_DURATION, 'Everything seems normal... for now.') + game.print('There appears to be no change to the iceberg, lucky Pinguins.') + end +end + +Event.add(defines.events.on_research_finished, on_research_finished) +Event.add(defines.events.on_rocket_launched, on_rocket_launched) +require 'map_gen.maps.april_fools.scenario.rocket_launched' + +-- == COMMANDS ================================================================ + +local Command = require 'utils.command' +local Ranks = require 'resources.ranks' +local Color = require 'resources.color_presets' + +---Use "/af-reset" to reset all features's levels (admin/server only) +Command.add( + 'af-reset', + { + description = [[Reset all features]], + arguments = {}, + required_rank = Ranks.admin, + allowed_by_server = true + }, + function() + for _, mod in pairs(modules) do + if mod.level_reset then + mod.level_reset() + end + end + game.print('Scenario reset!', Color.success) + end +) + +---Use "/af-debug" to print all feature's levels, only to admin (admin/server only) +Command.add( + 'af-debug', + { + description = [[Prints all features's current levels]], + arguments = {}, + required_rank = Ranks.admin, + allowed_by_server = true + }, + function(_, player) + for _, mod in pairs(modules) do + local msg = '' + if mod.level_get and mod.max_get then + msg = msg .. 'Lvl. ' ..tostring(mod.level_get()) .. '/' .. tostring(mod.max_get()) + end + if mod.name then + msg = msg .. ' - ' .. mod.name + end + if player and player.valid then + player.print(msg, Color.info) + else + game.print(msg, Color.info) + end + end + end +) + +---Use "/af-max" to set all features to their max level (admin/server only) +Command.add( + 'af-max', + { + description = [[Sets all features to according max level]], + arguments = {}, + required_rank = Ranks.admin, + allowed_by_server = true + }, + function() + for _, mod in pairs(modules) do + if mod.level_set and mod.max_get then + mod.level_set(mod.max_get()) + end + end + game.print('Scenario maxed out!', Color.warning) + end +) + +-- ============================================================================ + +return map diff --git a/map_gen/maps/april_fools/2024.lua b/map_gen/maps/april_fools/2024.lua new file mode 100644 index 00000000..f7b164f4 --- /dev/null +++ b/map_gen/maps/april_fools/2024.lua @@ -0,0 +1,322 @@ +--[[ + Scenario info: Double Trouble + 2024 revamped version of "Pinguin" scenario from 2019 with several addons. + + Required mods: + - Alien Biomes v0.6.8 + - RedMew Data v0.2.4 +]] + +local ScenarioInfo = require 'features.gui.info' +ScenarioInfo.set_map_name('Double Trouble') +ScenarioInfo.set_map_description('You are Pinguins in Antarctica and Miners underground!') +ScenarioInfo.set_map_extra_info('Watch out for Icebergs!') + +--- Config +local Config = global.config +Config.redmew_surface.enabled = false +Config.currency = 'coin' +Config.market.enabled = false +Config.player_rewards.enabled = true +Config.redmew_qol.set_alt_on_create = false + +local restart_command = require 'map_gen.maps.april_fools.scenario.restart_command' +restart_command({scenario_name = 'april-fools-2024', mod_pack = 'april_fools_2024'}) + +if _DEBUG then + Config.player_create.starting_items = { + {name = 'tunnel', count = 10}, + {name = 'iron-plate', count = 26 }, + {name = 'steel-chest', count = 12}, + {name = 'power-armor-mk2', count = 1}, + {name = 'fusion-reactor-equipment', count = 4}, + {name = 'personal-roboport-mk2-equipment', count = 4}, + {name = 'battery-mk2-equipment', count = 4}, + {name = 'construction-robot', count = 50}, + {name = 'rocket-launcher', count = 1}, + {name = 'explosive-rocket', count = 200}, + {name = 'green-wire', count = 200}, + {name = 'red-wire', count = 200}, + } +else + Config.player_create.starting_items = { + {name = 'burner-mining-drill', count = 4 }, + {name = 'stone-furnace', count = 2}, + {name = 'iron-gear-wheel', count = 3}, + {name = 'electronic-circuit', count = 5}, + {name = 'pistol', count = 1}, + {name = 'firearm-magazine', count = 20}, + {name = 'coal', count = 34}, + } +end + +-- == MAP GEN ================================================================= + +local Event = require 'utils.event' +local ABS = require 'resources.alien_biomes.biomes_settings' +local Biomes = require 'resources.alien_biomes.biomes' +local mgs = Biomes.preset_to_mgs + +local function on_init() + local spawn = {0, 0} + + -- Above ground + local islands_preset = Biomes.presets.ice + islands_preset.water = ABS.water.max + islands_preset.enemy = ABS.enemy.high + local islands_mgs = mgs(islands_preset) + for _, resource in pairs({'iron-ore', 'copper-ore', 'stone', 'coal', 'uranium-ore', 'crude-oil'}) do + islands_mgs.autoplace_controls[resource] = { frequency = 1, richness = 1, size = 0 } + end + local islands = game.create_surface('islands', islands_mgs) + islands.request_to_generate_chunks(spawn, 5) + islands.force_generate_chunk_requests() + islands.ticks_per_day = 72000 + + -- Under ground + local mines_preset = Biomes.presets.volcano + mines_preset.water = ABS.water.none + local mines_mgs = mgs(mines_preset) + mines_mgs.seed = _DEBUG and 309111855 or nil + mines_mgs.autoplace_settings = { + tile = {} + } + for _, tile in pairs({'deepwater', 'deepwater-green', 'water', 'water-green', 'water-mud', 'water-shallow'}) do + mines_mgs.autoplace_settings.tile[tile] = { frequency = 1, size = 0, richness = 1 } + end + for _, resource in pairs({'iron-ore', 'copper-ore', 'stone', 'coal', 'uranium-ore', 'crude-oil'}) do + mines_mgs.autoplace_controls[resource] = { frequency = 12.0, size = 0.5, richness = 0.08 } + end + local mines = game.create_surface('mines', mines_mgs) + mines.request_to_generate_chunks(spawn, 2) + mines.force_generate_chunk_requests() + mines.solar_power_multiplier = 0 + mines.min_brightness = 0.11 + mines.ticks_per_day = 72000 + mines.daytime = 0.42 + mines.freeze_daytime = true + mines.show_clouds = false + mines.brightness_visual_weights = {1/0.85, 1/0.85, 1/0.85} + + game.forces.player.set_spawn_position(spawn, 'islands') + game.forces.player.manual_mining_speed_modifier = _DEBUG and 20 or 1.2 + game.difficulty_settings.technology_price_multiplier = game.difficulty_settings.technology_price_multiplier * 2 +end + +local function on_player_created(event) + local player = game.get_player(event.player_index) + if not (player and player.valid) then + return + end + + player.teleport({0,0}, 'islands') +end + +Event.on_init(on_init) +Event.add(defines.events.on_player_created, on_player_created) +require 'map_gen.maps.april_fools.scenario.camera' +require 'map_gen.maps.april_fools.scenario.entity-restrictions' +require 'map_gen.maps.april_fools.scenario.evolution_control' +require 'map_gen.maps.april_fools.scenario.market' +require 'map_gen.maps.april_fools.scenario.mines' + +-- == MODULES IMPORT ========================================================== + +local modules = { + require 'map_gen.maps.april_fools.modules.alternative_biters', -- Spawns a random biters on every player that has alt-mode turned on + require 'map_gen.maps.april_fools.modules.auto_build', -- Randomly selected players will have their cursor items automatically built nearby for a time, before changing targets + require 'map_gen.maps.april_fools.modules.biter_ores', -- Biters spawn ores on death, level determines amount + require 'map_gen.maps.april_fools.modules.crazy_chat_colors', -- Chance to change player's color every time they send a message in chat + require 'map_gen.maps.april_fools.modules.crazy_toolbar', -- Randomly replaces quickbar slots with new items + require 'map_gen.maps.april_fools.modules.enemy_turrets', -- Chance to change turret to enemy force, and give it ammo/fuel/power + require 'map_gen.maps.april_fools.modules.explosion_scare', -- Spawns random non-damaging explosions on random players as a jump-scare + require 'map_gen.maps.april_fools.modules.floor_is_lava', -- Does minor damage to a player when afk for a few second + require 'map_gen.maps.april_fools.modules.golden_goose', -- Randomly selected players will drop coins for a time, before changing targets + require 'map_gen.maps.april_fools.modules.marathon_mode', -- Enables expensive recipes and increases technology multiplier + require 'map_gen.maps.april_fools.modules.meteOres', -- Meteors fall from the sky, generating ores, and biters + require 'map_gen.maps.april_fools.modules.orphan_crafting', -- Chance to give the player an additional single underground belt or pipe-to-ground + require 'map_gen.maps.april_fools.modules.permanent_factory', -- Chance to make an entity indestructable + require 'map_gen.maps.april_fools.modules.random_ores', -- Chance to change an ore to a random ore when a mining drill is placed + require 'map_gen.maps.april_fools.modules.rotate_entities', -- Chance to randomly rotate an entity when rotated by a player + require 'map_gen.maps.april_fools.modules.rotate_inserters', -- Chance to randomly rotate an inserter when built + require 'map_gen.maps.april_fools.modules.rotten_egg', -- Randomly selected players will produce pollution for a time, before changing targets + require 'map_gen.maps.april_fools.modules.unorganized_recipes', -- Randomly selected players will have their recipe groups and subgroups disabled, unorganizing their crafting menu +} + +-- if script.active_mods['redmew-data'] then +-- local PATH_MODULES_MOD = '__redmew-data__/' +-- table.insert(modules, PATH_MODULES_MOD .. 'name_of_the_module') +-- end + +-- Activate module events +for _, mod in pairs(modules) do + if mod.on_init then + Event.on_init(mod.on_init) + end + + if mod.on_load then + Event.on_load(mod.on_load) + end + + if mod.on_configuration_changed then + Event.on_configuration_changed(mod.on_configuration_changed) + end + + if mod.events then + for id_event, callback in pairs(mod.events) do + Event.add(id_event, callback) + end + end + + if mod.on_nth_tick then + for nth_tick, callback in pairs(mod.on_nth_tick) do + Event.on_nth_tick(nth_tick, callback) + end + end +end + +-- == CONTROLLER ============================================================== + +local Toast = require 'features.gui.toast' + +local ICEBERG_ENABLE_PERCENTAGE = _DEBUG and 1 or 0.50 +local TOAST_DURATION = 10 + +local function draw_random_effect(max_share) + local mod_index = math.random(1, #modules) + local mod = modules[mod_index] + + if mod == nil then + return + end + + local old_level, new_level, max_level = 0, 0, 0 + + if mod.level_get then + old_level = mod.level_get() + end + if mod.max_get then + max_level = mod.max_get() + end + + if old_level < (max_level * max_share) then + if mod.level_increase then + mod.level_increase() + end + end + + if mod.level_get then + new_level = mod.level_get() + end + + if new_level == old_level then + Toast.toast_all_players(TOAST_DURATION, 'Everything seems normal... for now.') + game.print('There appears to be no change to the iceberg, lucky Pinguins.') + else + if new_level == 1 then + Toast.toast_all_players(TOAST_DURATION, 'More snow has fallen! A new layer has been added to the iceberg!') + else + Toast.toast_all_players(TOAST_DURATION, 'The iceberg shifts, but you don\'t notice anything new.') + end + game.print(mod.name .. ' level: ' .. tostring(new_level)) + end +end + +-- Features can be incremented up to 50% of max level with research +local function on_research_finished() + if math.random(100) <= 100 * ICEBERG_ENABLE_PERCENTAGE then + draw_random_effect(0.5) + else + Toast.toast_all_players(TOAST_DURATION, 'Everything seems normal... for now.') + game.print('There appears to be no change to the iceberg, lucky Pinguins.') + end +end + +-- Features can be incremented up to 100% of max level with rocket launches +local function on_rocket_launched() + if math.random(100) <= 100 * 2 * ICEBERG_ENABLE_PERCENTAGE then + draw_random_effect(1) + else + Toast.toast_all_players(TOAST_DURATION, 'Everything seems normal... for now.') + game.print('There appears to be no change to the iceberg, lucky Pinguins.') + end +end + +Event.add(defines.events.on_research_finished, on_research_finished) +Event.add(defines.events.on_rocket_launched, on_rocket_launched) +require 'map_gen.maps.april_fools.scenario.rocket_launched' + +-- == COMMANDS ================================================================ + +local Command = require 'utils.command' +local Ranks = require 'resources.ranks' +local Color = require 'resources.color_presets' + +---Use "/af-reset" to reset all features's levels (admin/server only) +Command.add( + 'af-reset', + { + description = [[Reset all features]], + arguments = {}, + required_rank = Ranks.admin, + allowed_by_server = true + }, + function() + for _, mod in pairs(modules) do + if mod.level_reset then + mod.level_reset() + end + end + game.print('Scenario reset!', Color.success) + end +) + +---Use "/af-debug" to print all feature's levels, only to admin (admin/server only) +Command.add( + 'af-debug', + { + description = [[Prints all features's current levels]], + arguments = {}, + required_rank = Ranks.admin, + allowed_by_server = true + }, + function(_, player) + for _, mod in pairs(modules) do + local msg = '' + if mod.level_get and mod.max_get then + msg = msg .. 'Lvl. ' ..tostring(mod.level_get()) .. '/' .. tostring(mod.max_get()) + end + if mod.name then + msg = msg .. ' - ' .. mod.name + end + if player and player.valid then + player.print(msg, Color.info) + else + game.print(msg, Color.info) + end + end + end +) + +---Use "/af-max" to set all features to their max level (admin/server only) +Command.add( + 'af-max', + { + description = [[Sets all features to according max level]], + arguments = {}, + required_rank = Ranks.admin, + allowed_by_server = true + }, + function() + for _, mod in pairs(modules) do + if mod.level_set and mod.max_get then + mod.level_set(mod.max_get()) + end + end + game.print('Scenario maxed out!', Color.warning) + end +) + +-- ============================================================================ + +--return map diff --git a/map_gen/maps/april_fools/modules/alternative_biters.lua b/map_gen/maps/april_fools/modules/alternative_biters.lua new file mode 100644 index 00000000..6d151dff --- /dev/null +++ b/map_gen/maps/april_fools/modules/alternative_biters.lua @@ -0,0 +1,126 @@ +-- Spawns biters of a level scaling with _global.level on every player that has alt_mode toggled ON +-- Complete + +local Global = require 'utils.global' +local math = require 'utils.math' + +local SPAWN_INTERVAL = 60 * 60 -- 60sec +local UNIT_COUNT = 1 -- Number of units spawned per enemy listed in each ENEMY_GROUP + +local _global = { + level = 0, --1 to enabled by defualt + max_level = 10, + alt_biters_players = {}, +} + +Global.register(_global, function(tbl) _global = tbl end) + +local ENEMY_GROUPS = { + { 'small-biter', 'small-spitter' }, + { 'small-biter', 'small-spitter', 'small-worm-turret' }, + { 'medium-biter', 'medium-spitter' }, + { 'medium-biter', 'medium-spitter', 'medium-worm-turret' }, + { 'big-biter', 'big-spitter' }, + { 'big-biter', 'big-spitter', 'big-worm-turret' }, + { 'behemoth-biter', 'behemoth-spitter' }, + { 'behemoth-biter', 'behemoth-spitter', 'behemoth-worm-turret' }, + { 'behemoth-biter', 'behemoth-spitter', 'behemoth-worm-turret', 'biter-spawner' }, + { 'behemoth-biter', 'behemoth-spitter', 'behemoth-worm-turret', 'biter-spawner', 'spitter-spawner' }, +} + +-- ============================================================================ + +local function spawn_biters_nearby_players() + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local index_from_level = math.clamp(_global.level, 1, #ENEMY_GROUPS) + local biters = ENEMY_GROUPS[index_from_level] + + for _, player in pairs(game.players) do + if (player and player.valid and _global.alt_biters_players[player.name]) then + local position = player.position + + for i=1, UNIT_COUNT do + local unit_index = math.random(1, #biters) + player.surface.create_entity{ + name = biters[unit_index], + position = position, + force = 'enemy', + target = player.character, + move_stuck_players = true, + } + end + end + end +end + +-- toggle alt-biters for the player when alt-mode is toggled +local function on_player_toggled_alt_mode(event) + local player_index = event.player_index + if player_index == nil then + return + end + + local player = game.get_player(player_index) + if (player and player.valid and player.name) then + _global.alt_biters_players[player.name] = event.alt_mode or false + end +end + +-- turn off alt-mode on game join, and set alt-biters to off +local function on_player_joined_game(event) + local player_index = event.player_index + if player_index == nil then + return + end + + local player = game.get_player(player_index) + if (player and player.valid and player.name) then + player.game_view_settings.show_entity_info = false + _global.alt_biters_players[player.name] = false + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Alternative biters' + +Public.events = { + [defines.events.on_player_toggled_alt_mode] = on_player_toggled_alt_mode, + [defines.events.on_player_joined_game] = on_player_joined_game, +} + +Public.on_nth_tick = { + [SPAWN_INTERVAL] = spawn_biters_nearby_players, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/auto_build.lua b/map_gen/maps/april_fools/modules/auto_build.lua new file mode 100644 index 00000000..861c3343 --- /dev/null +++ b/map_gen/maps/april_fools/modules/auto_build.lua @@ -0,0 +1,129 @@ +-- auto-builds the item in a random players cursor if possible +-- WIP + +local Global = require 'utils.global' + +local BASE_TARGETS = 1 -- how many targets per level +local BUILD_INTERVAL = 60 * 5 -- 5sec +local CHANGE_TARGET_INTERVAL = _DEBUG and 60 * 1 or 60 * 100 -- 100sec + +local _global = { + level = 0, -- 1 to enabled by defualt + max_level = 10, + rand_targets = {}, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function clear_targets() + for j=1, #_global.rand_targets do + _global.rand_targets[j] = nil + end +end + +local function change_targets() + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local num_targets = math.min(#game.connected_players, _global.level * BASE_TARGETS) + + for j=1, num_targets do + _global.rand_targets[j] = nil + end + + if #game.connected_players > 0 then + for j=1, num_targets do + local player_index = math.random(1, #game.connected_players) + _global.rand_targets[j] = game.connected_players[player_index] + end + end +end + +local function try_auto_build() + if not (_global and _global.rand_targets and (#_global.rand_targets > 0)) then + -- No targets + return + end +-- useful functions: +-- surface.find_non_colliding_position, surface.find_non_colliding_position_in_box +-- player.can_build_from_cursor, player.build_from_cursor +-- + local cursor_item + local surface + local build_position + for _, player in pairs(_global.rand_targets) do + if not (player and player.valid) then + goto skip + end + + surface = player.surface + if player.cursor_stack.valid_for_read then + cursor_item = player.cursor_stack.name + else + goto skip --cursor not valud to read, i.e. just before spawning + end + if cursor_item == nil then + goto skip -- no item in cursor + end + + -- randomly pick a position near the player, check for a valid nearby location + build_position = {player.position.x + math.random(-5,5),player.position.y + math.random(-5,5)} + build_position = surface.find_non_colliding_position(cursor_item,build_position, 5, .1) + if build_position == nil then + goto skip -- no valud build position + end + + -- must be extra cautious with surface & players as they may be teleported across temporary surfaces + if (surface and surface.valid and build_position) then + if player.can_build_from_cursor{position = build_position} then + player.build_from_cursor{position = build_position} + end + end + end + + ::skip:: +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Auto Build' + +Public.on_nth_tick = { + [CHANGE_TARGET_INTERVAL] = change_targets, + [BUILD_INTERVAL] = try_auto_build, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.rand_targets[_global.level] = nil + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + clear_targets() + _global.level = 0 +end + +Public.level_set = function(val) + clear_targets() + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/biter_ores.lua b/map_gen/maps/april_fools/modules/biter_ores.lua new file mode 100644 index 00000000..aa312b6e --- /dev/null +++ b/map_gen/maps/april_fools/modules/biter_ores.lua @@ -0,0 +1,115 @@ +-- Spawns ores on biter death +-- Complete + +local Global = require 'utils.global' +local math = require 'utils.math' + +local RANDOM_ORES = false +local BASE_ORE_AMOUNT = 5 -- ore spawned per small biter, per level +local BASIC_ORES = {'coal','stone','iron-ore','copper-ore'} +local URANIUM_CHANCE = 5 -- chance for uranium ore. All others will share the remaining chance +local ORE_SEARCH_RADIUS = RANDOM_ORES and 1 or 20 -- how far away do we look for ores before spawning a new one + +local _global = { + level = 0, --1 to enabled by defualt + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +local ENEMY_ORE_MULTIPLIER = { -- roughly in order of evolution percentage required to see these biters + ['small-biter'] = 1, + ['small-spitter'] = 2, + ['small-worm-turret'] = 5, + ['medium-biter'] = 2, + ['medium-spitter'] = 4, + ['medium-worm-turret'] = 10, + ['big-biter'] = 5, + ['big-spitter'] = 10, + ['big-worm-turret'] = 25, + ['behemoth-biter'] = 10, + ['behemoth-spitter'] = 20, + ['behemoth-worm-turret'] = 50, + ['biter-spawner'] = 10, + ['spitter-spawner'] = 20 +} + +-- ============================================================================ +local function spawn_ores_on_death(event) + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + -- check if entity is biter, worm, or spawner + local entity = event.entity + if entity.type ~= 'unit' and entity.type ~= 'turret' and entity.type ~= 'unit-spawner' then + return + end + local ore_amount_to_add = _global.level * ENEMY_ORE_MULTIPLIER[entity.name] * BASE_ORE_AMOUNT + local position = entity.position + local surface = entity.surface + local ore_type + + --first, look for ores on the tile the biter died, and add ores to that ore if possible + local found_ores = surface.find_entities_filtered{position = position, radius = .1, type = 'resource'} + if #found_ores == 0 then + --no ore found on biter tile + found_ores = surface.find_entities_filtered{position = position, radius = ORE_SEARCH_RADIUS, type = 'resource'} + if #found_ores == 0 then + --no ore found nearby, decide on a new ore to spawn + if math.random(1,100) < URANIUM_CHANCE then + ore_type = 'uranium-ore' + else + ore_type = BASIC_ORES[math.random(1,#BASIC_ORES)] + end + else + -- found nearby ore, use that one + ore_type = found_ores[math.random(1,#found_ores)].name + end + + if surface.get_tile(position).collides_with("ground-tile") then + surface.create_entity{name = ore_type, position = position, amount = ore_amount_to_add} + end + --return since we might have changed found_ores + return + else + -- ore on biters tile, add to that ore instead + found_ores[1].amount = found_ores[1].amount + ore_amount_to_add + end +end + +-- ============================================================================ +local Public = {} + +Public.name = 'Biter Ores' + +Public.events = { + [defines.events.on_entity_died] = spawn_ores_on_death +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/crazy_chat_colors.lua b/map_gen/maps/april_fools/modules/crazy_chat_colors.lua new file mode 100644 index 00000000..f643bce8 --- /dev/null +++ b/map_gen/maps/april_fools/modules/crazy_chat_colors.lua @@ -0,0 +1,75 @@ +-- Changes player color with every message +-- Complete + +local Global = require 'utils.global' +local Colors = require 'resources.color_presets' + +local COLORS = {} +for _, color in pairs(Colors) do + table.insert(COLORS, color) +end + +local BASE_PERCENT = 0.1 +local MAX_RAND = 100 + +local _global = { + level = 0, + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function on_console_chat(event) + local index = event.player_index + if index == nil then + return + end + + local change_percent = _global.level * BASE_PERCENT + local rand = math.random(0, MAX_RAND) + + if rand >= MAX_RAND*(1 - change_percent) then + local color = COLORS[math.random(1, #COLORS)] + local player = game.get_player(index) + player.color = color + player.chat_color = color + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Disco players' + +Public.events = { + [defines.events.on_console_chat] = on_console_chat, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/crazy_toolbar.lua b/map_gen/maps/april_fools/modules/crazy_toolbar.lua new file mode 100644 index 00000000..41b15cbc --- /dev/null +++ b/map_gen/maps/april_fools/modules/crazy_toolbar.lua @@ -0,0 +1,83 @@ +-- Randmly changes shortcut items in player's quickbar +-- Complete + +local Global = require 'utils.global' +local Item_list = require 'resources.item_list' + +local BASE_PERCENT = 0.05 +local MAX_RAND = 100 +local CHANGE_INTERVAL = 60 * 12 --12sec +local SEARCHED_QUICKBAR_SLOTS = 100 + +local _global = { + level = 0, + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function change_quickbar_item() + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local crazy_percent = _global.level * BASE_PERCENT + + for _, player in pairs(game.players) do + if (player and player.valid) then + local rand = math.random(0, MAX_RAND) + if rand >= MAX_RAND*(1 - crazy_percent) then + local valid_item, rand_item = false, false + local max_attempts = 10 + while ((max_attempts > 0) and (not valid_item)) do + rand_item = Item_list[math.random(1, #Item_list)] + valid_item = (game.item_prototypes[rand_item] ~= nil) + max_attempts = max_attempts - 1 + end + if valid_item then + local rand_position = math.random(1, SEARCHED_QUICKBAR_SLOTS) + player.set_quick_bar_slot(rand_position, rand_item) + end + end + end + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Fuzzy quickbar' + +Public.on_nth_tick = { + [CHANGE_INTERVAL] = change_quickbar_item, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/enemy_turrets.lua b/map_gen/maps/april_fools/modules/enemy_turrets.lua new file mode 100644 index 00000000..501234ac --- /dev/null +++ b/map_gen/maps/april_fools/modules/enemy_turrets.lua @@ -0,0 +1,147 @@ +-- turrets have a 90% chance of being on player force when placed +-- Be sure to adjust ammo count/amount on the enemy turrets below as needed +-- Completed + +local Global = require 'utils.global' + +local BASE_PERCENT = 0.05 +local MAX_RAND = 100 +local LASER_SHOTS_PER_LEVEL = 10 -- No idea what a good number is here balance wise. +local ENERGY_PER_SHOT = 800000 -- 1 shot of the laser turret + +local _global = { level = 0, max_level = 10 } + +Global.register(_global, function(tbl) + _global = tbl +end) + +-- ============================================================================ + +local TURRET_ACTIONS = { + ['gun-turret'] = function(entity) + entity.insert{ name = 'firearm-magazine', count = 2 * (_global.level or 1) } + end, + ['flamethrower-turret'] = function(entity) + entity.insert_fluid{ name = 'crude-oil', amount = 6 * (_global.level or 1) } + end, + ['artillery-turret'] = function(entity) + entity.insert{ name = 'artillery-shell', count = _global.level or 1 } + end, + ['laser-turret'] = function(entity) + -- TODO: change e-interface to accumulator with power + if entity.surface then + entity.surface.create_entity{ + name = 'hidden-electric-energy-interface', + force = 'enemy', + position = entity.position, + raise_built = false, + move_stuck_players = true + } + -- find that interface we just made + local entities = entity.surface.find_entities_filtered{ name = 'hidden-electric-energy-interface', position = entity.position, radius = 2 } + -- Set energy interface + local total_power = ENERGY_PER_SHOT * LASER_SHOTS_PER_LEVEL * (_global.level or 1) + for i = 1, #entities do + if (entities[i] and entities[i].valid) then + entities[i].electric_buffer_size = total_power + entities[i].power_production = 0 + entities[i].power_usage = 0 + entities[i].energy = total_power + end + end + entity.surface.create_entity{ + name = 'small-electric-pole', + force = 'enemy', + position = entity.position, + raise_built = false, + move_stuck_players = true + } + end + end, +} + +local function on_built_turret(event) + local entity = event.created_entity + if not (entity and entity.valid and entity.name) then + -- Invalid entity + return + end + + local fill_entity = TURRET_ACTIONS[entity.name] + if not fill_entity then + -- Turret not whitelisted + return + end + + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local change_percent = _global.level * BASE_PERCENT + local rand = math.random(0, MAX_RAND) + + if rand >= MAX_RAND * (1 - change_percent) then + fill_entity(entity) + entity.clone({ position = entity.position, force = 'enemy' }) + entity.destroy() + end +end + +local function remove_enemy_power_on_death(event) + local entity = event.entity + if not (entity and entity.valid) then + -- Invalid entity + return + end + + if not (entity.name == 'laser-turret' and entity.force == 'enemy') then + -- Wrong entity + return + end + + local entities = entity.surface.find_entities_filtered{ name = 'hidden-electric-energy-interface', position = entity.position, radius = 2 } + for i = 1, #entities do + if (entities[i] and entities[i].valid) then + entities[i].destroy() + end + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Rogue turrets' + +Public.events = { + [defines.events.on_robot_built_entity] = on_built_turret, + [defines.events.on_built_entity] = on_built_turret, + [defines.events.on_entity_died] = remove_enemy_power_on_death +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/explosion_scare.lua b/map_gen/maps/april_fools/modules/explosion_scare.lua new file mode 100644 index 00000000..eb7201d6 --- /dev/null +++ b/map_gen/maps/april_fools/modules/explosion_scare.lua @@ -0,0 +1,120 @@ +-- Spawns random non-damaging explosions on random players as a jump-scare +-- WIP +local Global = require 'utils.global' + +local BASE_TARGETS = 1 -- how many targets per level +local EXPLOSION_INTERVAL = _DEBUG and 60 * 5 or 60 * 60 -- 60sec +local CHANGE_TARGET_INTERVAL = _DEBUG and 60 * 10 or 60 * 180 -- 180 seconds + + +local _global = { + level = 0, -- 1 to enabled by defualt + max_level = 10, + rand_target = {}, +} + +Global.register(_global, function(tbl) _global = tbl end) + +local EXPLOSION_GROUPS = { + { 'water-splash' }, + { 'water-splash', 'explosion' }, + { 'water-splash', 'explosion', 'land-mine-explosion' }, + { 'explosion', 'land-mine-explosion', 'grenade-explosion' }, + { 'land-mine-explosion', 'grenade-explosion', 'medium-explosion' }, + { 'grenade-explosion', 'medium-explosion' }, + { 'medium-explosion', 'big-explosion' }, + { 'big-explosion', 'massive-explosion', 'big-artillery-explosion' }, + { 'massive-explosion', 'big-artillery-explosion' }, + { 'massive-explosion', 'big-artillery-explosion', 'nuke-explosion' }, +} +-- ============================================================================ + +local function clear_targets() + for j=1, #_global.rand_target do + _global.rand_target[j] = nil + end +end + +local function change_targets() + if not (_global and (_global.level > 0)) then + -- Level not enabled + return + end + -- without taking the min of connected players, and the desired targets, it's possible for 1 player to get ALL the explosions + -- The code would then randomly choose an explosion for each target, so you might get a water splash and a normal explosion at the same time. + local num_targets = math.min(_global.level * BASE_TARGETS, #game.connected_players) + + for j=1, num_targets do + _global.rand_target[j] = nil + end + + if #game.connected_players > 0 then + for j=1, num_targets do + local player_index = math.random(1, #game.connected_players) + _global.rand_target[j] = game.connected_players[player_index] + end + end +end + +local function explode_targets() + if not (_global and _global.rand_target and (#_global.rand_target > 0)) then + -- No targets + return + end + local index_from_level = math.clamp(_global.level, 1, #EXPLOSION_GROUPS) --luacheck: ignore 143 math.clamp does in fact exist + local explosions = EXPLOSION_GROUPS[index_from_level] + + for _, player in pairs(_global.rand_target) do + if (player and player.valid) then + local surface = player.surface + local position = player.position + local explosion_index = math.random(1, #explosions) + -- must be extra cautious with surface & players as they may be teleported across temporary surfaces + if (surface and surface.valid and position) then + surface.create_entity{ + name = explosions[explosion_index], + position = position, + } + end + end + end +end + +-- ============================================================================ + +local Public = {} +Public.name = 'Explosion Scare' + +Public.on_nth_tick = { + [CHANGE_TARGET_INTERVAL] = change_targets, + [EXPLOSION_INTERVAL] = explode_targets, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.rand_target[_global.level] = nil + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + clear_targets() + _global.level = 0 +end + +Public.level_set = function(val) + clear_targets() + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/floor_is_lava.lua b/map_gen/maps/april_fools/modules/floor_is_lava.lua new file mode 100644 index 00000000..c607c559 --- /dev/null +++ b/map_gen/maps/april_fools/modules/floor_is_lava.lua @@ -0,0 +1,71 @@ +-- Floor is lava, a player that is AFK for ALLOWED_AFK_TIME ticks will be damaged every DAMAGE_INTERVAL ticks +-- Complete + +local Global = require 'utils.global' + +local DAMAGE_INTERVAL = 60 * 5 -- 5sec +local ALLOWED_AFK_TIME = 60 * 7 -- 7sec +local BASE_DAMAGE = 1 + +local _global = { + level = 0, -- 1 to enabled by defualt + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function damage_afk_players() + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + for _, player in pairs(game.players) do + if (player and player.valid and player.character and player.character.valid) then + if player.afk_time > ALLOWED_AFK_TIME then + player.character.damage(BASE_DAMAGE * _global.level, 'enemy') + if _global.level >= _global.max_level/2 then + player.surface.create_entity({name = 'fire-flame', position = player.position}) + end + end + end + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'The floor is lava' + +Public.on_nth_tick = { + [DAMAGE_INTERVAL] = damage_afk_players, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/golden_goose.lua b/map_gen/maps/april_fools/modules/golden_goose.lua new file mode 100644 index 00000000..03f48171 --- /dev/null +++ b/map_gen/maps/april_fools/modules/golden_goose.lua @@ -0,0 +1,106 @@ +-- golden goose +-- SPAWN_INTERVAL and CHANGE_GEESE_INTERVAL should be set to the number of ticks between the event triggering + +local Global = require 'utils.global' + +local BASE_GEESE = 1 -- how many geese per level +local SPAWN_INTERVAL = 60 * 5 -- 5sec +local CHANGE_GEESE_INTERVAL = 60 * 100 -- 100sec +local DROP_AMOUNT = 1 + +local _global = { + level = 0, -- 1 to enabled by defualt + max_level = 10, + rand_geese = {}, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function clear_geese() + for j=1, #_global.rand_geese do + _global.rand_geese[j] = nil + end +end + +local function change_geese() + if not (_global and (_global.level > 0)) then + -- Level not enabled + return + end + + local num_geese = _global.level * BASE_GEESE + + for j=1, num_geese do + _global.rand_geese[j] = nil + end + + if #game.connected_players > 0 then + for j=1, num_geese do + local player_index = math.random(1, #game.connected_players) + _global.rand_geese[j] = game.connected_players[player_index] + end + end +end + +local function geese_spawn_coin() + if not (_global and _global.rand_geese and (#_global.rand_geese > 0)) then + -- No geese + return + end + + for _, player in pairs(_global.rand_geese) do + if (player and player.valid) then + local surface = player.surface + local position = player.position + -- must be extra cautious with surface & players as they may be teleported across temporary surfaces + if (surface and surface.valid and position) then + surface.create_entity{ + name = 'item-on-ground', + position = position, + stack = {name = 'coin', count = DROP_AMOUNT}, + } + end + end + end +end + +-- ============================================================================ + +local Public = {} +Public.name = 'Golden goose' + +Public.on_nth_tick = { + [CHANGE_GEESE_INTERVAL] = change_geese, + [SPAWN_INTERVAL] = geese_spawn_coin, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.rand_geese[_global.level] = nil + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + clear_geese() + _global.level = 0 +end + +Public.level_set = function(val) + clear_geese() + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/marathon_mode.lua b/map_gen/maps/april_fools/modules/marathon_mode.lua new file mode 100644 index 00000000..e109f96c --- /dev/null +++ b/map_gen/maps/april_fools/modules/marathon_mode.lua @@ -0,0 +1,62 @@ +-- Increases research costs and enables marathon mode +-- Complete + +local Global = require 'utils.global' + +local COST_STEP = 1.0 + +local _global = { + level = 0, + max_level = 9, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function update_price_multiplier() + local level = math.max(0, _global.level) + + -- Enable expensive recipes after lvl.3 + game.difficulty_settings.recipe_difficulty = (level > 3) and 1 or 0 + + -- Apply expensive tech cost above lvl.0 + game.difficulty_settings.technology_difficulty = (level > 0) and 1 or 0 + game.difficulty_settings.technology_price_multiplier = (level + 1) * COST_STEP +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Marathon' + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) + update_price_multiplier() +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) + update_price_multiplier() +end + +Public.level_reset = function() + _global.level = 0 + update_price_multiplier() +end + +Public.level_set = function(val) + _global.level = val + update_price_multiplier() +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/meteOres.lua b/map_gen/maps/april_fools/modules/meteOres.lua new file mode 100644 index 00000000..87db7dd3 --- /dev/null +++ b/map_gen/maps/april_fools/modules/meteOres.lua @@ -0,0 +1,176 @@ +-- Spawns "meteors" that spawn a boulder, and dense random ores, and biters, and maybe nests +-- WIP + +local Global = require 'utils.global' +local math = require 'utils.math' + +local SPAWN_INTERVAL = _DEBUG and 60 * 1 or 60 * 60 * 8 -- 8 mins +local UNIT_COUNT = 10 -- Balance Number of units spawned per enemy listed in each ENEMY_GROUP +local METEOR_COUNT = 1 -- meteors per spawn interval +local METEOR_SIZE = 7 -- radius, Balance +local METEOR_DAMAGE = 50 -- Balance +local ORE_DENSITY = 10 -- Balance, Must be at least 8? +local ORE_COMPLEXITY = 5 -- Percent chance for each of the 5 ore types to spawn, otherwise mixed ores without uranium will spawn. + +local _global = { + level = 0, --1 to enabled by defualt + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +local ENEMY_GROUPS = { + { 'small-biter'}, + { 'small-biter', 'small-spitter', 'small-worm-turret', 'biter-spawner'}, + { 'small-biter', 'small-spitter','medium-biter','small-worm-turret', 'biter-spawner', 'spitter-spawner' }, + { 'small-biter', 'small-spitter','medium-biter', 'medium-spitter','small-worm-turret', 'biter-spawner', 'spitter-spawner' }, + { 'medium-biter', 'medium-spitter', 'big-biter', 'big-spitter','small-worm-turret','medium-worm-turret', 'biter-spawner', 'spitter-spawner' }, + { 'medium-biter', 'medium-spitter', 'big-biter', 'big-spitter', 'big-worm-turret','medium-worm-turret', 'biter-spawner', 'spitter-spawner' }, + { 'big-biter', 'big-spitter','behemoth-biter', 'behemoth-spitter', 'medium-worm-turret','big-worm-turret', 'biter-spawner', 'spitter-spawner' }, + { 'big-biter', 'big-spitter','behemoth-biter', 'behemoth-spitter', 'medium-worm-turret', 'big-worm-turret', 'biter-spawner', 'spitter-spawner' }, + { 'big-biter', 'big-spitter','behemoth-biter', 'behemoth-spitter', 'big-worm-turret','behemoth-worm-turret', 'biter-spawner', 'spitter-spawner' }, + { 'behemoth-biter', 'behemoth-spitter', 'behemoth-worm-turret', 'biter-spawner', 'spitter-spawner' }, +} +local BASIC_ORES = {'coal','stone','iron-ore','copper-ore'} +local ALL_ORES = {'coal','stone','iron-ore','copper-ore','uranium-ore'} + +-- ============================================================================ + +local function drop_meteors() + --[[ Large function, lots of steps. May want to split out into several functions later + [X] Find a player to use their surface + [X] Generate a random position on the map + [X] Spawn a rock + [X] Damage Nearby Entities + [X] Spawn Ores + [X] Spawn Biters + --]] + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + local player + local surface + for _ = 1, METEOR_COUNT do + -- find a random player so we can use their surface + if #game.connected_players > 0 then + player = game.connected_players[math.random(1, #game.connected_players)] + surface = player.surface + else + return -- no connected players + end + + -- generate a random position in a random chunk + local chunk_position = surface.get_random_chunk() + local rand_x = math.random(0, 31) + local rand_y = math.random(0, 31) + local map_position = {x = chunk_position.x * 32 + rand_x, y = chunk_position.y * 32 + rand_y} + + -- Spawn Rock + if surface.get_tile(map_position).collides_with('ground-tile') then + surface.create_entity({name = 'rock-huge', position = map_position, move_stuck_players = true,}) + surface.create_entity({name = 'massive-explosion', position = map_position,}) + end + + -- Find nearby entities + local damaged_entities = surface.find_entities_filtered{position = map_position, radius = METEOR_SIZE} + -- Damage nearby entities + if damaged_entities == nil then + return + else + for _, entity in ipairs(damaged_entities) do + if entity.is_entity_with_health then + entity.damage(METEOR_DAMAGE,'enemy','impact') + end + end + end + + -- Select ores to spawn + local ore_selector = math.random(1,100) + local ores + local ore_type + local ore_amount + if ore_selector > 100 - 5 * ORE_COMPLEXITY then + ores = 'individual' + ore_type = ALL_ORES[math.random(1, #ALL_ORES)] + else + ores = 'mixed' + end + -- Spawn ores + -- Loop over x, y, check in the circle, and spawn ores in a natural density + -- aka code adapted from wube wiki console page for spawning a resource patch + for y = -METEOR_SIZE, METEOR_SIZE do + for x = -METEOR_SIZE, METEOR_SIZE do + if (x * x + y * y < METEOR_SIZE * METEOR_SIZE) then + local a = (METEOR_SIZE + 1 - math.abs(x)) * 10 + local b = (METEOR_SIZE + 1 - math.abs(y)) * 10 + if a < b then + ore_amount = math.random(a * ORE_DENSITY - a * (ORE_DENSITY - 8), a * ORE_DENSITY + a * (ORE_DENSITY - 8)) + end + if b < a then + ore_amount = math.random(b * ORE_DENSITY - b * (ORE_DENSITY - 8), b * ORE_DENSITY + b * (ORE_DENSITY - 8)) + end + if surface.get_tile(map_position.x + x, map_position.y + y).collides_with('ground-tile') then + if ores == 'mixed' then + ore_type = BASIC_ORES[math.random(1, #BASIC_ORES)] + end + surface.create_entity({name=ore_type, amount=ore_amount, position={map_position.x + x, map_position.y + y}}) + end + end + end + end + -- spawn biters + local index_from_level = math.clamp(_global.level, 1, #ENEMY_GROUPS) + local biters = ENEMY_GROUPS[index_from_level] + for i=1, UNIT_COUNT do + local unit_index = math.random(1, #biters) + local biter_position = { + map_position.x + math.random(-METEOR_SIZE, METEOR_SIZE), + map_position.y + math.random(-METEOR_SIZE, METEOR_SIZE)} + if surface.get_tile(biter_position).collides_with('ground-tile') then + surface.create_entity{ + name = biters[unit_index], + position = biter_position, + force = 'enemy', + -- target = player.character, -- try without player target? Will they behave normally? + } + end + end + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'MeteOres' + +Public.on_nth_tick = { + [SPAWN_INTERVAL] = drop_meteors, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/orphan_crafting.lua b/map_gen/maps/april_fools/modules/orphan_crafting.lua new file mode 100644 index 00000000..d55a1891 --- /dev/null +++ b/map_gen/maps/april_fools/modules/orphan_crafting.lua @@ -0,0 +1,90 @@ +-- crafting underground belt/pipes will no longer give an even number +-- Complete + +local Global = require 'utils.global' + +local BASE_PERCENT = 0.01 +local MAX_RAND = 100 + +local _global = { + level = 0, + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +local PAIR_NAMES = { + ['underground-belt'] = true, + ['fast-underground-belt'] = true, + ['express-underground-belt'] = true, + ['pipe-to-ground'] = true, +} + +-- ============================================================================ + +local function on_player_crafted_item(event) + local name = event.item_stack and event.item_stack.name + if not (name and PAIR_NAMES[name]) then + -- Invalid item + return + end + + local index = event.player_index + if not index then + return + end + + local player = game.get_player(index) + if not (player and player.valid) then + -- Invalid player + return + end + + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local extra_percent = _global.level * BASE_PERCENT + local rand = math.random(0, MAX_RAND) + + if rand >= MAX_RAND*(1 - extra_percent) then + player.insert({ name = event.item_stack.name, count = 1 }) + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Orphan crafting' + +Public.events = { + [defines.events.on_player_crafted_item] = on_player_crafted_item, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/permanent_factory.lua b/map_gen/maps/april_fools/modules/permanent_factory.lua new file mode 100644 index 00000000..a65f74c2 --- /dev/null +++ b/map_gen/maps/april_fools/modules/permanent_factory.lua @@ -0,0 +1,77 @@ +-- Any placed entity has a chance to become permanent +-- WIP + +local Global = require 'utils.global' + +local BASE_PERCENT = 0.01 +local MAX_RAND = 100 + +local _global = { + level = 0, + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function on_built_entity(event) + local entity = event.created_entity + if not (entity and entity.valid) then + -- Invalid entity + return + end + + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local permanent_percent = _global.level * BASE_PERCENT + local rand = math.random(0, MAX_RAND) + + if rand <= MAX_RAND*(1 - permanent_percent) then + -- Normal construction + return + else + entity.destructible = false + entity.minable = false + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Permanent Structures' + +Public.events = { + [defines.events.on_robot_built_entity] = on_built_entity, + [defines.events.on_built_entity] = on_built_entity, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/random_ores.lua b/map_gen/maps/april_fools/modules/random_ores.lua new file mode 100644 index 00000000..7ae5c307 --- /dev/null +++ b/map_gen/maps/april_fools/modules/random_ores.lua @@ -0,0 +1,118 @@ +-- Each ore tile has 1% chance to mutate into another ore (every patch becomes a mixed ore patch) +-- Complete + +local Global = require 'utils.global' +local table = require 'utils.table' + +local BASE_PERCENT = 0.01 +local MAX_RAND = 100 + +local _global = { + level = 0, --1 to enabled by defualt + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +local ORES = { + {'iron-ore', 10}, + {'copper-ore', 7}, + {'stone', 5}, + {'coal', 3}, + {'uranium-ore', 1}, +} + +local ALLOWED_DRILLS = { + ['burner-mining-drill'] = true, + ['electric-mining-drill'] = true, +} + +-- ============================================================================ + +local function on_built_miner(event) + local entity = event.created_entity + if not (entity and entity.valid and entity.name and ALLOWED_DRILLS[entity.name]) then + -- Invalid entity + return + end + + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local surface = entity.surface + local position = entity.position + local radius = entity.prototype.mining_drill_radius + + if not (surface and surface.valid) then + -- Invalid surface + return + end + + local ore_tiles = surface.find_entities_filtered{ + position = position, + radius = radius or 1.5, + type = 'resource', + } + + for _, ore in pairs(ore_tiles) do + if (ore and ore.valid) then + local extra_percent = _global.level * BASE_PERCENT + local rand = math.random(0, MAX_RAND) + + if rand >= MAX_RAND*(1 - extra_percent) then + local rand_ore = table.get_random_weighted(ORES) + + if (rand_ore ~= ore.name) and surface.get_tile(ore.position.x, ore.position.y).collides_with('ground-tile') then + local amount = ore.amount + local ore_position = ore.position + ore.destroy() + surface.create_entity{ + name = rand_ore, + amount = amount, + position = ore_position, + } + end + + end + end + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Magic drills' + +Public.events = { + [defines.events.on_robot_built_entity] = on_built_miner, + [defines.events.on_built_entity] = on_built_miner, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/rotate_entities.lua b/map_gen/maps/april_fools/modules/rotate_entities.lua new file mode 100644 index 00000000..e7212211 --- /dev/null +++ b/map_gen/maps/april_fools/modules/rotate_entities.lua @@ -0,0 +1,83 @@ +-- when the player rotates an object it is sometimes rotated to a random direction instead. +-- Complete +local Global = require 'utils.global' + +local ROTATE_BASE_PERCENT = 0.05 +local MAX_RAND = 100 * 3 + +local _global = { + level = 0, + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +local function on_player_rotated_entity(event) + local entity = event.entity + if not (entity and entity.valid) then + -- Invalid entity + return + end + + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local rotate_percent = _global.level * ROTATE_BASE_PERCENT + local rand = math.random(0, MAX_RAND) + + if rand <= MAX_RAND*(1 - rotate_percent) then + -- No Rotation + return + elseif rand <= MAX_RAND*(1 - rotate_percent * 2/3) then + -- Single Rotation + entity.rotate() + return + elseif rand <= MAX_RAND*(1 - rotate_percent * 1/3) then + -- Double Rotation + entity.rotate() + entity.rotate() + return + elseif rand <= MAX_RAND then + -- Reverse Rotation + entity.rotate({reverse = true}) + return + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Spinning world' + +Public.events = { + [defines.events.on_player_rotated_entity] = on_player_rotated_entity, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/rotate_inserters.lua b/map_gen/maps/april_fools/modules/rotate_inserters.lua new file mode 100644 index 00000000..583b210f --- /dev/null +++ b/map_gen/maps/april_fools/modules/rotate_inserters.lua @@ -0,0 +1,92 @@ +-- Inserters are sometimes randomly rotated when placed by player or bots +-- Complete + +local Global = require 'utils.global' + +local BASE_PERCENT = 0.05 +local MAX_RAND = 100 * 3 + +local _global = { + level = 0, + max_level = 10, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function on_built_inserter(event) + local entity = event.created_entity + if not (entity and entity.valid) then + -- Invalid entity + return + end + + if not (entity.prototype and entity.prototype.type == 'inserter') then + -- Wrong entity type + return + end + + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local rotate_percent = _global.level * BASE_PERCENT + local rand = math.random(0, MAX_RAND) + + if rand <= MAX_RAND*(1 - rotate_percent) then + -- No Rotation + return + elseif rand <= MAX_RAND*(1 - rotate_percent * 2/3) then + -- Single Rotation + entity.rotate() + return + elseif rand <= MAX_RAND*(1 - rotate_percent * 1/3) then + -- Double Rotation + entity.rotate() + entity.rotate() + return + elseif rand <= MAX_RAND then + -- Reverse Rotation + entity.rotate({reverse = true}) + return + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Dancing inserters' + +Public.events = { + [defines.events.on_robot_built_entity] = on_built_inserter, + [defines.events.on_built_entity] = on_built_inserter, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + _global.level = 0 +end + +Public.level_set = function(val) + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/rotten_egg.lua b/map_gen/maps/april_fools/modules/rotten_egg.lua new file mode 100644 index 00000000..7e8ce2b9 --- /dev/null +++ b/map_gen/maps/april_fools/modules/rotten_egg.lua @@ -0,0 +1,104 @@ +-- rotten egg, produces pollution. Similar to golden goose +-- SPAWN_INTERVAL and CHANGE_EGGS_INTERVAL should be set to the number of ticks between the event triggering + +local Global = require 'utils.global' + +local BASE_EGGS = 1 -- how many eggs per level +local SPAWN_INTERVAL = 60 * 5 -- 5sec +local CHANGE_EGGS_INTERVAL = 60 * 101 -- 100sec +local DROP_AMOUNT = 1 -- 60/m ~ 6x mining drills + +local _global = { + level = 0, -- 1 to enabled by defualt + max_level = 10, + rand_eggs = {}, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function clear_eggs() + for j=1, #_global.rand_eggs do + _global.rand_eggs[j] = nil + end +end + +local function change_eggs() + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local num_eggs = _global.level * BASE_EGGS + + for j=1, num_eggs do + _global.rand_eggs[j] = nil + end + + if #game.connected_players > 0 then + for j=1, num_eggs do + local player_index = math.random(1, #game.connected_players) + _global.rand_eggs[j] = game.connected_players[player_index] + end + end +end + +local function eggs_spawn_pollution() + if not (_global and _global.rand_eggs and (#_global.rand_eggs > 0)) then + -- No eggs + return + end + + for _, player in pairs(_global.rand_eggs) do + if (player and player.valid) then + local surface = player.surface + local position = player.position + local amount = (_global.level or 1) * DROP_AMOUNT + -- must be extra cautious with surface & players as they may be teleported across temporary surfaces + if (surface and surface.valid and position) then + surface.pollute(position, amount) + end + end + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Rotten egg' + +Public.on_nth_tick = { + [CHANGE_EGGS_INTERVAL] = change_eggs, + [SPAWN_INTERVAL] = eggs_spawn_pollution, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.rand_eggs[_global.level] = nil + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + clear_eggs() + _global.level = 0 +end + +Public.level_set = function(val) + clear_eggs() + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/modules/unorganized_recipes.lua b/map_gen/maps/april_fools/modules/unorganized_recipes.lua new file mode 100644 index 00000000..7a86d057 --- /dev/null +++ b/map_gen/maps/april_fools/modules/unorganized_recipes.lua @@ -0,0 +1,95 @@ +-- hides recipe groups from random players. If a player is targeted again, it will revert back to normal +-- only works with vanilla item-groups. +-- in future possible change to on_init to populate item_groups with all detected item groups? +-- WIP + +local Global = require 'utils.global' + +local BASE_TARGETS = 1 -- how many targets per level +local CHANGE_TARGET_INTERVAL = _DEBUG and 60 * 10 or 60 * 180 -- 180sec + +local _global = { + level = 0, -- 1 to enabled by defualt + max_level = 10, + rand_targets = {}, +} + +Global.register(_global, function(tbl) _global = tbl end) + +-- ============================================================================ + +local function clear_targets() + for j=1, #_global.rand_targets do + _global.rand_targets[j] = nil + end +end + +local function change_targets() + if not (_global and _global.level > 0) then + -- Level not enabled + return + end + + local num_targets = math.min(#game.connected_players, _global.level * BASE_TARGETS) + + if #game.connected_players > 0 then + for j=1, num_targets do + local player_index = math.random(1, #game.connected_players) + local duplicate = false + --check that randomly selected player is not in old list + for k=1, #_global.rand_targets do + if game.connected_players[player_index].name == _global.rand_targets[k].name then + duplicate = true -- target was previously targeted, so enable them and take them off the list + _global.rand_targets[k].enable_recipe_groups() + _global.rand_targets[k].enable_recipe_subgroups() + _global.rand_targets[k] = nil + end + end + + if duplicate == false then -- this is a new target + _global.rand_targets[j] = game.connected_players[player_index] + _global.rand_targets[j].disable_recipe_groups() + _global.rand_targets[j].disable_recipe_subgroups() + end + end + end +end + +-- ============================================================================ + +local Public = {} + +Public.name = 'Unorganized Recipes' + +Public.on_nth_tick = { + [CHANGE_TARGET_INTERVAL] = change_targets, +} + +Public.level_increase = function() + _global.level = math.min(_global.level + 1, _global.max_level) +end + +Public.level_decrease = function() + _global.rand_targets[_global.level] = nil + _global.level = math.max(_global.level - 1, 0) +end + +Public.level_reset = function() + clear_targets() + _global.level = 0 +end + +Public.level_set = function(val) + clear_targets() + _global.level = val +end + +Public.level_get = function() + return _global.level +end + +Public.max_get = function() + return _global.max_level +end + +return Public diff --git a/map_gen/maps/april_fools/scenario/camera.lua b/map_gen/maps/april_fools/scenario/camera.lua new file mode 100644 index 00000000..f3b68364 --- /dev/null +++ b/map_gen/maps/april_fools/scenario/camera.lua @@ -0,0 +1,215 @@ +-- from features/gui/camera +-- edited to support "opposite surface" +local Event = require 'utils.event' +local mod_gui = require 'mod-gui' +local Gui = require 'utils.gui' +local Global = require 'utils.global' + +local main_button_name = Gui.uid_name() + +local camera_users = {} +Global.register({ camera_users = camera_users }, function(tbl) + camera_users = tbl.camera_users +end) + +local camera_prototype = 'camera' +local zoomlevels = { 1.00, 0.75, 0.50, 0.40, 0.30, 0.25, 0.20, 0.15, 0.10, 0.05 } +local zoomlevellabels = { '100%', '75%', '50%', '40%', '30%', '25%', '20%', '15%', '10%', '5%' } +local sizelevels = { 0, 100, 200, 250, 300, 350, 400, 450, 500 } +local sizelevellabels = { 'hide', '100x100', '200x200', '250x250', '300x300', '350x350', '400x400', '450x450', '500x500' } + +---@param surface SurfaceIdentification union LuaSurface|string +local function get_opposite_surface(surface) + local src = game.get_surface(type(surface) == 'table' and surface.name or surface) + local mines = game.get_surface('mines') + local islands = game.get_surface('islands') + + if not islands or not mines or not src then + return + end + + if src.name == mines.name then + return islands + end + if src.name == islands.name then + return mines + end + return +end + +--- Takes args and a LuaPlayer and creates a camera GUI element +local function create_camera(args, player) + local player_index = player.index + local mainframeflow = mod_gui.get_frame_flow(player) + local mainframeid = 'mainframe_' .. player_index + local mainframe = mainframeflow[mainframeid] + + local target = game.get_player(args.target) + if not target then + player.print('Not a valid target') + return + end + + if not mainframe then + mainframe = mainframeflow.add { type = 'frame', name = mainframeid, direction = 'vertical', style = 'captionless_frame' } + mainframe.visible = true + player.set_shortcut_toggled(camera_prototype, true) + end + + local headerframe = mainframe.headerframe + if not headerframe then + mainframe.add { type = 'frame', name = 'headerframe', direction = 'horizontal', style = 'captionless_frame' } + end + + local cameraframe = mainframe.cameraframe + if not cameraframe then + mainframe.add { type = 'frame', name = 'cameraframe', style = 'captionless_frame' } + end + + mainframe.add { type = 'label', caption = 'Following: ' .. target.name .. '\'s steps on other surface' } + Gui.make_close_button(mainframe, main_button_name) + local target_index = target.index + camera_users[player_index] = target_index +end + +--- Takes table with a LuaPlayer under key player and destroys the camera of the associated player +local function destroy_camera(data) + local player = data.player + if not player then + return + end + + local player_index = player.index + local mainframeflow = mod_gui.get_frame_flow(player) + local mainframeid = 'mainframe_' .. player_index + local mainframe = mainframeflow[mainframeid] + + if mainframe then + mainframe.destroy() + player.set_shortcut_toggled(camera_prototype, false) + return true + end +end + +--- Destroys existing camera and, if applicable, creates a new one for the new target. +local function camera_command(args, player) + destroy_camera({ player = player }) + -- Once the old camera is destroyed, check to see if we need to make a new one + if global.config.camera_disabled then + player.print('The watch/camera function has been disabled for performance reasons.') + return + end + if args and args.target and player then + create_camera(args, player) + end +end + +local function update_camera_render(target, targetframe, zoom, size, visible) + local position = { x = target.position.x, y = target.position.y - 0.5 } + local surface_index = target.surface.index + local preview_size = size + local camera = targetframe.camera + + if not camera then + camera = targetframe.add { type = 'camera', name = 'camera', position = position, surface_index = surface_index, zoom = zoom } + end + + camera.position = position + camera.surface_index = get_opposite_surface(surface_index).index + camera.zoom = zoom + camera.visible = visible + camera.style.minimal_width = preview_size + camera.style.minimal_height = preview_size + camera.style.maximal_width = preview_size + camera.style.maximal_height = preview_size +end + +local function update_camera_zoom(targetframe) + local zoomselection = targetframe.zoomselection + local zoomlabels = {} + + for i = 1, #zoomlevellabels do + zoomlabels[i] = { '', '' .. zoomlevellabels[i] } + end + if zoomselection then + zoomselection.items = zoomlabels + else + zoomselection = targetframe.add { type = 'drop-down', name = 'zoomselection', items = zoomlabels, selected_index = 3 } + end + + local zoom = zoomlevels[zoomselection.selected_index] + return zoom +end + +local function update_camera_size(targetframe) + local sizeselection = targetframe.sizeselection + local sizelabels = {} + + for i = 1, #sizelevellabels do + sizelabels[i] = { '', '' .. sizelevellabels[i] } + end + if sizeselection then + sizeselection.items = sizelabels + else + sizeselection = targetframe.add { type = 'drop-down', name = 'sizeselection', items = sizelabels, selected_index = 4 } + end + + local size = sizelevels[sizeselection.selected_index] + local visible = (size ~= 0) + return size, visible +end + +local function on_tick() + if global.config.camera_disabled then + return + end + for table_key, camera_table in pairs(camera_users) do + local player = game.get_player(table_key) + local target = game.get_player(camera_table) + if not target.connected then + destroy_camera({ player = player }) + player.print('Target is offline, camera closed') + camera_users[player.index] = nil + return + end + local mainframeflow = mod_gui.get_frame_flow(player) + local mainframeid = 'mainframe_' .. table_key + local mainframe = mainframeflow[mainframeid] + if mainframe then + local headerframe = mainframe.headerframe + local cameraframe = mainframe.cameraframe + local zoom = update_camera_zoom(headerframe) + local size, visible = update_camera_size(headerframe) + update_camera_render(target, cameraframe, zoom, size, visible) + player.set_shortcut_toggled(camera_prototype, visible) + end + end +end + +local function on_lua_shortcut(event) + local player = game.get_player(event.player_index) + if not (player and player.valid) then + return + end + + local shortcut = event.prototype_name or event.input_name + if shortcut ~= camera_prototype then + return + end + + local toggled = player.is_shortcut_toggled(camera_prototype) + player.set_shortcut_toggled(camera_prototype, not toggled) + + if toggled then + destroy_camera({ player = player }) + else + camera_command({ target = player.name }, player) + end +end + +Event.on_nth_tick(61, on_tick) +Gui.on_click(main_button_name, destroy_camera) + +Event.add(defines.events.on_lua_shortcut, on_lua_shortcut) +-- luacheck: ignore script +script.on_event(camera_prototype, on_lua_shortcut) diff --git a/map_gen/maps/april_fools/scenario/entity-restrictions.lua b/map_gen/maps/april_fools/scenario/entity-restrictions.lua new file mode 100644 index 00000000..61f1258c --- /dev/null +++ b/map_gen/maps/april_fools/scenario/entity-restrictions.lua @@ -0,0 +1,51 @@ +local Event = require 'utils.event' + +local alert_message = '[color=yellow]Cannot build here![/color]' +local banned_per_surface = { + islands = { + ['furnace'] = true, + }, + mines = { + ['assembling-machine'] = true, + ['solar-panel'] = true, + ['rocket-silo'] = true, + } +} + +local function on_built(event) + local entity = event.created_entity + if not (entity and entity.valid) then + return + end + + local surface = entity.surface.name + local entity_type = entity.prototype.type + if not (banned_per_surface[surface] and banned_per_surface[surface][entity_type]) then + return + end + + local ghost = false + if entity.name == 'entity-ghost' then + ghost = true + end + + entity.destroy() + + local stack = event.stack + local player = game.get_player(event.player_index or 'none') + local robot = event.robot + if player and player.valid and not ghost and stack.valid then + if player.can_insert(stack) then + player.insert(stack) + player.print(alert_message) + end + elseif robot and robot.valid and not ghost and stack.valid then + -- FIXME: currenlty not refunding anything when using robots... + if robot.can_insert(stack) then + robot.insert(stack) + end + end +end + +Event.add(defines.events.on_built_entity, on_built) +Event.add(defines.events.on_robot_built_entity, on_built) diff --git a/map_gen/maps/april_fools/scenario/evolution_control.lua b/map_gen/maps/april_fools/scenario/evolution_control.lua new file mode 100644 index 00000000..e9f282f5 --- /dev/null +++ b/map_gen/maps/april_fools/scenario/evolution_control.lua @@ -0,0 +1,22 @@ +local Event = require 'utils.event' + +local relations = { + ['logistic-science-pack'] = 10, + ['military-science-pack'] = 20, + ['chemical-science-pack'] = 40, + ['production-science-pack'] = 50, + ['utility-science-pack'] = 90, +} + +Event.on_nth_tick(103, function() + local max = 0 + local tech = game.forces.player.technologies + for name, evo in pairs(relations) do + if tech[name] and tech[name].researched then + max = math.max(max, evo) + end + end + if game.forces.enemy.evolution_factor > 10 and max > 2 then + game.forces.enemy.evolution_factor = math.min(game.forces.enemy.evolution_factor, max - 1) + end +end) diff --git a/map_gen/maps/april_fools/scenario/market.lua b/map_gen/maps/april_fools/scenario/market.lua new file mode 100644 index 00000000..cd2449d0 --- /dev/null +++ b/map_gen/maps/april_fools/scenario/market.lua @@ -0,0 +1,312 @@ +-- dependencies +local Event = require 'utils.event' +local Token = require 'utils.token' +local Task = require 'utils.task' +local Global = require 'utils.global' +local Retailer = require 'features.retailer' +local market_items = require 'map_gen.maps.april_fools.scenario.market_items' +local fish_market_bonus_message = require 'resources.fish_messages' +local ScoreTracker = require 'utils.score_tracker' +local Color = require 'resources.color_presets' +local change_for_player = ScoreTracker.change_for_player +local get_for_player = ScoreTracker.get_for_player +local coins_earned_name = 'coins-earned' + +-- localized functions +local pairs = pairs +local round = math.round +local random = math.random +local format = string.format +local market_config = global.config.market +local currency = market_config.currency +local entity_drop_amount = market_config.entity_drop_amount +local max_coins_earned = 5 + +-- local vars + +local nth_tick_token +local running_speed_boost_messages = { + '%s found the lost Dragon Scroll and got a lv.1 speed boost!', + 'Guided by Master Oogway, %s got a lv.2 speed boost!', + 'Kung Fu Master %s defended the village and was awarded a lv.3 speed boost!', + 'Travelled at the speed of light. %s saw a black hole. Oops.', +} + +local mining_speed_boost_messages = { + '%s is going on a tree harvest!', + 'In search of a sharper axe, %s got a lv.2 mining boost!', + 'Wood fiend, %s, has picked up a massive chain saw and is awarded a lv.3 mining boost!', + 'Better learn to control that saw, %s, chopped off their legs. Oops.', +} + +-- Global registered local vars +local primitives = { event_registered = nil } +local markets = {} +local speed_records = {} +local mining_records = {} + +Global.register({ markets = markets, speed_records = speed_records, mining_records = mining_records, primitives = primitives }, function(tbl) + markets = tbl.markets + speed_records = tbl.speed_records + mining_records = tbl.mining_records + primitives = tbl.primitives +end) + +-- local functions + +local function register_event() + if not primitives.event_registered then + Event.add_removable_nth_tick(907, nth_tick_token) + primitives.event_registered = true + end +end + +local function unregister_event() + if primitives.event_registered then + Event.remove_removable_nth_tick(907, nth_tick_token) + primitives.event_registered = nil + end +end + +local function spawn_market(args, player) + if args and args.removeall == 'removeall' then + local count = 0 + for _, market in pairs(markets) do + if market.valid then + count = count + 1 + market.destroy() + end + end + player.print(count .. ' markets removed') + return + end + local surface = game.get_surface('mines') + local force = game.forces.player + local maket_spawn_pos = market_config.standard_market_location + + if args and args.surface then + surface = game.get_surface(type(args.surface) == 'table' and args.surface.name or args.surface) + end + + if player then -- If we have a player, this is coming from a player running the command + surface = player.surface + force = player.force + maket_spawn_pos = player.position + maket_spawn_pos.y = round(maket_spawn_pos.y - 4) + maket_spawn_pos.x = round(maket_spawn_pos.x) + player.print('Market added. To remove it, highlight it with your cursor and use the /destroy command, or use /market removeall to remove all markets placed.') + end + + local market = surface.create_entity({ name = 'market', position = maket_spawn_pos, force = 'neutral' }) + markets[#markets + 1] = market + market.destructible = false + + Retailer.add_market('fish_market', market) + + if table.size(Retailer.get_items('fish_market')) == 0 then + for _, prototype in pairs(market_items) do + Retailer.set_item('fish_market', prototype) + end + end + + force.add_chart_tag(surface, { icon = { type = 'item', name = currency }, position = maket_spawn_pos, text = 'Market' }) +end + +local function fish_earned(event, amount) + amount = math.random(math.min(amount, max_coins_earned)) + local player_index = event.player_index + local player = game.get_player(player_index) + + local stack = { name = currency, count = amount } + local inserted = player.insert(stack) + if amount > 0 then + player.surface.create_entity { + name = 'flying-text', + position = { player.position.x - 1, player.position.y }, + text = '+' .. amount .. ' [img=item.coin]', + color = Color.gold, + render_player_index = player.index, + } + end + + local diff = amount - inserted + if diff > 0 then + stack.count = diff + player.surface.spill_item_stack(player.position, stack, true) + end + + change_for_player(player_index, coins_earned_name, amount) + if get_for_player(player_index, coins_earned_name) % 70 == 0 and player and player.valid then + local message = fish_market_bonus_message[random(#fish_market_bonus_message)] + player.print(message) + end +end + +local function pre_player_mined_item(event) + local type = event.entity.type + if type == 'simple-entity' then -- Cheap check for rock, may have other side effects + fish_earned(event, 10) + return + end + + if type == 'tree' and random(1, 4) == 1 then + fish_earned(event, 4) + end +end + +local spill_items = Token.register(function(data) + data.surface.spill_item_stack(data.position, { name = currency, count = data.count }, true) +end) + +-- Determines how many coins to drop when enemy entity dies based upon the entity_drop_amount table in config.lua +local function fish_drop_entity_died(event) + local entity = event.entity + if not entity or not entity.valid then + return + end + + local bounds = entity_drop_amount[entity.name] + if not bounds then + return + end + + local chance = bounds.chance + + if chance == 0 then + return + end + + if chance == 1 or random() <= chance then + local count = random(bounds.low, bounds.high) + if count > 0 then + Task.set_timeout_in_ticks(1, spill_items, { count = count, surface = entity.surface, position = entity.position }) + end + end +end + +local function reset_player_running_speed(player) + local index = player.index + player.character_running_speed_modifier = speed_records[index].pre_boost_modifier + speed_records[index] = nil +end + +local function reset_player_mining_speed(player) + local index = player.index + player.character_mining_speed_modifier = mining_records[index].pre_mining_boost_modifier + mining_records[index] = nil +end + +local function boost_player_running_speed(player) + local index = player.index + local p_name = player.name + if not speed_records[index] then + speed_records[index] = { start_tick = game.tick, pre_boost_modifier = player.character_running_speed_modifier, boost_lvl = 0 } + end + speed_records[index].boost_lvl = 1 + speed_records[index].boost_lvl + + player.character_running_speed_modifier = 1 + player.character_running_speed_modifier + + if speed_records[index].boost_lvl >= 4 then + game.print(format(running_speed_boost_messages[speed_records[index].boost_lvl], p_name)) + reset_player_running_speed(player) + player.character.die(player.force, player.character) + return + end + + player.print(format(running_speed_boost_messages[speed_records[index].boost_lvl], p_name)) + register_event() +end + +local function boost_player_mining_speed(player) + local index = player.index + local p_name = player.name + if not mining_records[index] then + mining_records[index] = { start_tick = game.tick, pre_mining_boost_modifier = player.character_mining_speed_modifier, boost_lvl = 0 } + end + mining_records[index].boost_lvl = 1 + mining_records[index].boost_lvl + + player.character_mining_speed_modifier = 1 + player.character_mining_speed_modifier + + if mining_records[index].boost_lvl >= 4 then + game.print(format(mining_speed_boost_messages[mining_records[index].boost_lvl], p_name)) + reset_player_mining_speed(player) + player.character.die(player.force, player.character) + return + end + + player.print(format(mining_speed_boost_messages[mining_records[index].boost_lvl], p_name)) + register_event() +end + +local function market_item_purchased(event) + local item_name = event.item.name + if item_name == 'temporary-running-speed-bonus' then + boost_player_running_speed(event.player) + return + end + + if item_name == 'temporary-mining-speed-bonus' then + boost_player_mining_speed(event.player) + return + end +end + +nth_tick_token = Token.register(function() + local tick = game.tick + for k, v in pairs(speed_records) do + if tick - v.start_tick > 3000 then + local player = game.get_player(k) + if player and player.valid and player.connected and player.character then + reset_player_running_speed(player) + end + end + end + + for k, v in pairs(mining_records) do + if tick - v.start_tick > 6000 then + local player = game.get_player(k) + if player and player.valid and player.connected and player.character then + reset_player_mining_speed(player) + end + end + end + + if not next(speed_records) and not next(mining_records) then + unregister_event() + end +end) + +local function fish_player_crafted_item(event) + if random(1, 50) == 1 then + fish_earned(event, 1) + end +end + +local function player_created(event) + local player = game.get_player(event.player_index) + + if not player or not player.valid then + return + end + + local count = global.config.player_rewards.info_player_reward and 1 or 10 + player.insert { name = currency, count = count } +end + +Event.add(defines.events.on_pre_player_mined_item, pre_player_mined_item) +Event.add(defines.events.on_entity_died, fish_drop_entity_died) +Event.add(Retailer.events.on_market_purchase, market_item_purchased) +Event.add(defines.events.on_player_crafted_item, fish_player_crafted_item) +Event.add(defines.events.on_player_created, player_created) + +if market_config.create_standard_market then + local delay = market_config.delay or 30 + if delay then + local spawn_market_token = Token.register(spawn_market) + Event.on_init(function() + Task.set_timeout_in_ticks(delay, spawn_market_token) + end) + else + Event.on_init(spawn_market) + end +end diff --git a/map_gen/maps/april_fools/scenario/market_items.lua b/map_gen/maps/april_fools/scenario/market_items.lua new file mode 100644 index 00000000..d193583f --- /dev/null +++ b/map_gen/maps/april_fools/scenario/market_items.lua @@ -0,0 +1,66 @@ +return { + { + name = 'temporary-running-speed-bonus', + name_label = {'market_items.running_speed_bonus_name_label'}, + type = 'temporary-buff', + description = {'market_items.running_speed_bonus_description'}, + sprite = 'technology/exoskeleton-equipment', + stack_limit = 1, + price = 10, + }, + { + name = 'temporary-mining-speed-bonus', + name_label = {'market_items.mining_speed_bonus_name_label'}, + type = 'temporary-buff', + description = {'market_items.mining_speed_bonus_description'}, + sprite = 'technology/mining-productivity-1', + stack_limit = 1, + price = 10, + }, + {price = 1, name = 'firearm-magazine'}, + {price = 1, name = 'land-mine'}, + {price = 1, name = 'wood'}, + {price = 2, name = 'rocket'}, + {price = 2, name = 'shotgun-shell'}, + {price = 3, name = 'cannon-shell'}, + {price = 4, name = 'defender-capsule'}, + {price = 4, name = 'piercing-rounds-magazine'}, + {price = 5, name = 'raw-fish'}, + {price = 6, name = 'piercing-shotgun-shell'}, + {price = 7, name = 'explosive-cannon-shell'}, + {price = 7, name = 'explosive-rocket'}, + {price = 8, name = 'grenade'}, + {price = 10, name = 'artillery-shell'}, + {price = 10, name = 'light-armor'}, + {price = 25, name = 'artillery-targeting-remote'}, + {price = 25, name = 'cliff-explosives'}, + {price = 25, name = 'flamethrower-ammo'}, + {price = 30, name = 'submachine-gun'}, + {price = 32, name = 'cluster-grenade'}, + {price = 35, name = 'construction-robot'}, + {price = 40, name = 'poison-capsule'}, + {price = 50, name = 'gun-turret'}, + {price = 50, name = 'solar-panel-equipment'}, + {price = 80, name = 'car'}, + {price = 100, name = 'battery-equipment'}, + {price = 125, name = 'heavy-armor'}, + {price = 125, name = 'night-vision-equipment'}, + {price = 125, name = 'rocket-launcher'}, + {price = 175, name = 'exoskeleton-equipment'}, + {price = 200, name = 'belt-immunity-equipment'}, + {price = 200, name = 'energy-shield-equipment'}, + {price = 250, name = 'combat-shotgun'}, + {price = 250, name = 'personal-roboport-equipment'}, + {price = 300, name = 'laser-turret'}, + {price = 350, name = 'modular-armor'}, + {price = 450, name = 'artillery-turret'}, + {price = 450, name = 'flamethrower'}, + {price = 625, name = 'battery-mk2-equipment'}, + {price = 850, name = 'personal-laser-defense-equipment'}, + {price = 1000, name = 'tunnel'}, + {price = 1200, name = 'tank'}, + {price = 1500, name = 'power-armor'}, + {price = 2250, name = 'fusion-reactor-equipment'}, + {price = 7500, name = 'atomic-bomb'}, + {price = 12000, name = 'power-armor-mk2'}, +} \ No newline at end of file diff --git a/map_gen/maps/april_fools/scenario/mines.lua b/map_gen/maps/april_fools/scenario/mines.lua new file mode 100644 index 00000000..95e50bed --- /dev/null +++ b/map_gen/maps/april_fools/scenario/mines.lua @@ -0,0 +1,159 @@ +local Event = require 'utils.event' +local Perlin = require 'map_gen.shared.perlin_noise' +local AlienEvolutionProgress = require 'utils.alien_evolution_progress' + +local rock_list = { + 'rock-huge-volcanic', + 'rock-big-volcanic', + 'rock-huge-black', + 'rock-big-black', + 'rock-huge-grey', + 'rock-big-grey', + 'rock-huge-red', + 'rock-big-red', + 'rock-huge-white', + 'rock-big-white', + 'rock-huge-brown', + 'rock-big-brown', + 'rock-huge-dustyrose', + 'rock-big-dustyrose', +} +local rocks = #rock_list +local rock_map = util.list_to_map(rock_list) + +-- == MAP GEN ================================================================= + +local starting_radius = 64 +local biter_radius = 144 +local PRECISION = 10e8 + +local function inside_radius(x, y, radius) + return x*x + y*y < radius*radius + 3600 * Perlin.noise(x, y) +end + +local function worm_by_distance(x, y) + local evo = game.forces.enemy.evolution_factor or 0 + local radius = math.sqrt(x*x + y*y) + local weighted_distance = radius * (evo + 0.45) + + if weighted_distance < 1000 then + return 'small-worm-turret' + elseif weighted_distance < 1800 then + return 'medium-worm-turret' + elseif weighted_distance < 2600 then + return 'big-worm-turret' + else + return 'behemoth-worm-turret' + end +end + +Event.add(defines.events.on_chunk_generated, function(event) + local surface = event.surface + if not (surface and surface.valid and surface.name == 'mines') then + return + end + + local area = event.area + + -- remove water + local tiles = surface.find_tiles_filtered { area = area, name = { 'deepwater', 'deepwater-green', 'water', 'water-green', 'water-mud', 'water-shallow' } } + local new_tiles = {} + for _, tile in pairs(tiles) do + table.insert(new_tiles, { name = 'volcanic-orange-heat-4', position = tile.position }) + end + surface.set_tiles(new_tiles) + + -- place rocks + local tx, ty = area.left_top.x, area.left_top.y + local bx, by = area.right_bottom.x, area.right_bottom.y + for x = tx, bx do + for y = ty, by do + local c = math.random(PRECISION) + if not inside_radius(x, y, starting_radius) and c > (0.55 * PRECISION) then + surface.create_entity { name = rock_list[math.random(rocks)], position = { x, y }, raise_built = false, move_stuck_players = true, force = 'neutral'} + else + if not inside_radius(x, y, biter_radius) and c < (0.000125 * PRECISION) then + surface.create_entity { name = worm_by_distance(x, y), position = {x, y}, move_stuck_players = true } + end + end + end + end +end) + +-- == SPAWNERS ================================================================ + +Event.add(defines.events.on_player_mined_entity, function(event) + local player = game.get_player(event.player_index) + if not (player and player.valid) then + return + end + + local entity = event.entity + if not (entity and entity.valid) then + return + end + + if not rock_map[entity.name] then + return + end + + local pos = entity.position + + local c = math.random(PRECISION) + if c < (0.005 * PRECISION) and not inside_radius(pos.x, pos.y, biter_radius) then + entity.surface.create_entity { + name = math.random() > 0.40 and 'biter-spawner' or 'spitter-spawner', + position = entity.position, + force = 'enemy', + target = player.character, + move_stuck_players = true, + } + end +end) + +local function give_command(group, target) + if target and target.valid then + local command = { type = defines.command.attack, target = target, distraction = defines.distraction.by_damage } + group.set_command(command) + group.start_moving() + else + local command = { type = defines.command.attack_area, destination = {0, 0}, radius = 32, distraction = defines.distraction.by_damage } + + local members = group.members + for i = 1, #members do + local entitiy = members[i] + entitiy.set_command(command) + end + end +end + +Event.add(defines.events.on_entity_died, function(event) + local entity = event.entity + if not entity or not (entity.name == 'biter-spawner' or entity.name == 'spitter-spawner') then + return + end + + local surface = entity.surface + local position = entity.position + local spawn = entity.surface.create_entity + local evo = game.forces.enemy.evolution_factor + + local spawner = AlienEvolutionProgress.create_spawner_request(math.ceil(evo * 100 / 4)) + local aliens = AlienEvolutionProgress.get_aliens(spawner, evo) + + local group = surface.create_unit_group { position = position } + local add_member = group.add_member + + for name, count in pairs(aliens) do + for i = 1, count do + local ent = spawn{ name = name, position = position, force = 'enemy', move_stuck_players = true, } + if ent then + add_member(ent) + end + end + end + + give_command(group, event.cause) +end) + +-- ============================================================================ diff --git a/map_gen/maps/april_fools/scenario/restart_command.lua b/map_gen/maps/april_fools/scenario/restart_command.lua new file mode 100644 index 00000000..eb7f6e35 --- /dev/null +++ b/map_gen/maps/april_fools/scenario/restart_command.lua @@ -0,0 +1,194 @@ +local Discord = require 'resources.discord' +local Server = require 'features.server' +local Core = require 'utils.core' +local Restart = require 'features.restart_command' +local ShareGlobals = require 'map_gen.maps.april_fools.scenario.shared_globals' +local ScoreTracker = require 'utils.score_tracker' +local PlayerStats = require 'features.player_stats' +local format_number = require 'util'.format_number + +return function(config) + local map_promotion_channel = Discord.channel_names.map_promotion + local events_channel = Discord.channel_names.events + local map_update_role_mention = Discord.role_mentions.map_update + -- Use these settings for testing + --local map_promotion_channel = Discord.channel_names.bot_playground + --local events_channel = Discord.channel_names.bot_playground + --local map_update_role_mention = Discord.role_mentions.test + + Restart.set_start_game_data({type = Restart.game_types.scenario, name = config.scenario_name or 'April Fools', mod_pack = config.mod_pack}) + + local function can_restart(player) + if player.admin then + return true + end + + if not ShareGlobals.data.map_won then + player.print({'command_description.danger_ore_restart_condition_not_met'}) + return false + end + + return true + end + + local function restart_callback() + local start_game_data = Restart.get_start_game_data() + local new_map_name = start_game_data.name + + local time_string = Core.format_time(game.ticks_played) + + local end_epoch = Server.get_current_time() + if end_epoch == nil then + end_epoch = -1 -- end_epoch is nil if the restart command is used locally rather than on the server + end + + local player_data = {} + for _, p in pairs(game.players) do + player_data[p.index] = { + name = p.name, + total_kills = ScoreTracker.get_for_player(p.index, PlayerStats.player_total_kills_name), + spawners_killed = ScoreTracker.get_for_player(p.index, PlayerStats.player_spawners_killed_name), + worms_killed = ScoreTracker.get_for_player(p.index, PlayerStats.player_worms_killed_name), + units_killed = ScoreTracker.get_for_player(p.index, PlayerStats.player_units_killed_name), + turrets_killed = ScoreTracker.get_for_player(p.index, PlayerStats.player_turrets_killed_name), + distance_walked = ScoreTracker.get_for_player(p.index, PlayerStats.player_distance_walked_name), + player_deaths = ScoreTracker.get_for_player(p.index, PlayerStats.player_deaths_name), + entities_built = ScoreTracker.get_for_player(p.index, PlayerStats.player_entities_built_name), + entities_crafted = ScoreTracker.get_for_player(p.index, PlayerStats.player_items_crafted_name), + resources_hand_mined = ScoreTracker.get_for_player(p.index, PlayerStats.player_resources_hand_mined_name), + time_played = p.online_time + } + end + + local statistics = { + scenario = config.scenario_name or 'April Fools', + start_epoch = Server.get_start_time(), + end_epoch = end_epoch, -- stored as key already, useful to have it as part of same structure + game_ticks = game.ticks_played, + biters_killed = ScoreTracker.get_for_global(PlayerStats.aliens_killed_name), + total_players = #game.players, + entities_built = ScoreTracker.get_for_global(PlayerStats.built_by_players_name), + resources_exhausted = ScoreTracker.get_for_global(PlayerStats.resources_exhausted_name), + resources_hand_mined = ScoreTracker.get_for_global(PlayerStats.resources_hand_mined_name), + player_data = player_data + } + + local awards = { + ['total_kills'] = {value = 0, player = ""}, + ['units_killed'] = {value = 0, player = ""}, + ['spawners_killed'] = {value = 0, player = ""}, + ['worms_killed'] = {value = 0, player = ""}, + ['player_deaths'] = {value = 0, player = ""}, + ['time_played'] = {value = 0, player = ""}, + ['entities_built'] = {value = 0, player = ""}, + ['entities_crafted'] = {value = 0, player = ""}, + ['distance_walked'] = {value = 0, player = ""}, + ['resources_hand_mined'] = {value = 0, player = ""} + } + + for _, v in pairs(statistics.player_data) do + if v.total_kills > awards.total_kills.value then + awards.total_kills.value = v.total_kills + awards.total_kills.player = v.name + end + if v.units_killed > awards.units_killed.value then + awards.units_killed.value = v.units_killed + awards.units_killed.player = v.name + end + if v.spawners_killed > awards.spawners_killed.value then + awards.spawners_killed.value = v.spawners_killed + awards.spawners_killed.player = v.name + end + if v.worms_killed > awards.worms_killed.value then + awards.worms_killed.value = v.worms_killed + awards.worms_killed.player = v.name + end + if v.player_deaths > awards.player_deaths.value then + awards.player_deaths.value = v.player_deaths + awards.player_deaths.player = v.name + end + if v.time_played > awards.time_played.value then + awards.time_played.value = v.time_played + awards.time_played.player = v.name + end + if v.entities_built > awards.entities_built.value then + awards.entities_built.value = v.entities_built + awards.entities_built.player = v.name + end + if v.entities_crafted > awards.entities_crafted.value then + awards.entities_crafted.value = v.entities_crafted + awards.entities_crafted.player = v.name + end + if v.distance_walked > awards.distance_walked.value then + awards.distance_walked.value = v.distance_walked + awards.distance_walked.player = v.name + end + if v.resources_hand_mined > awards.resources_hand_mined.value then + awards.resources_hand_mined.value = v.resources_hand_mined + awards.resources_hand_mined.player = v.name + end + end + + local resource_prototypes = game.get_filtered_entity_prototypes({{filter = "type", type = "resource"}}) + local ore_products = {} + for _, ore_prototype in pairs(resource_prototypes) do + local mineable_properties = ore_prototype.mineable_properties + if mineable_properties.minable and ore_prototype.resource_category == 'basic-solid' then + for _, product in pairs(mineable_properties.products) do + ore_products[product.name] = true + end + end + end + + local total_ore = 0 + local ore_totals_message = '(' + for ore_name in pairs(ore_products) do + local count = game.forces["player"].item_production_statistics.get_input_count(ore_name) + total_ore = total_ore + count + ore_totals_message = ore_totals_message..ore_name:gsub( "-ore", "")..": "..format_number(count, true)..", " + end + ore_totals_message = ore_totals_message:sub(1, -3)..')' -- remove the last ", " and add a bracket + ore_totals_message = "Total ore mined: "..format_number(total_ore, true).. "\\n"..ore_totals_message + + local statistics_message = statistics.scenario..' completed!\\n\\n'.. + 'Statistics:\\n'.. + 'Map time: '..time_string..'\\n'.. + 'Total entities built: '..statistics.entities_built..'\\n'.. + 'Total ore mined:'..ore_totals_message..'\\n'.. + 'Total ore resources exhausted: '..statistics.resources_exhausted..'\\n'.. + 'Total ore hand mined: '..statistics.resources_hand_mined..'\\n'.. + 'Players: '..statistics.total_players..'\\n'.. + 'Enemies killed: '..statistics.biters_killed..'\\n\\n'.. + 'Awards:\\n'.. + 'Most ore hand mined:'..awards.resources_hand_mined.player..' ('..awards.resources_hand_mined.value..')\\n'.. + 'Most items crafted: '..awards.entities_crafted.player..' ('..awards.entities_crafted.value..')\\n'.. + 'Most entities built: '..awards.entities_built.player..' ('..awards.entities_built.value..')\\n'.. + 'Most time played: '..awards.time_played.player..' ('..Core.format_time(awards.time_played.value)..')\\n'.. + 'Furthest walked: '..awards.distance_walked.player..' ('..math.floor(awards.distance_walked.value)..')\\n'.. + 'Most deaths: '..awards.player_deaths.player..' ('..awards.player_deaths.value..')\\n'.. + 'Most kills overall: '..awards.total_kills.player..' ('..awards.total_kills.value..')\\n'.. + 'Most biters/spitters killed: '..awards.units_killed.player..' ('..awards.units_killed.value..')\\n'.. + 'Most spawners killed: '..awards.spawners_killed.player..' ('..awards.spawners_killed.value..')\\n'.. + 'Most worms killed: '..awards.worms_killed.player..' ('..awards.worms_killed.value..')\\n' + + Server.to_discord_named_embed(map_promotion_channel, statistics_message) + Server.to_discord_named_embed(events_channel, statistics_message) + + Server.set_data('danger_ores_data', tostring(end_epoch), statistics) + + local message = { + map_update_role_mention, + ' **April Fools has just restarted! Previous map lasted: ', + time_string, + '!\\n', + 'Next map: ', + new_map_name, + '**' + } + message = table.concat(message) + + Server.to_discord_named_raw(map_promotion_channel, message) + end + + Restart.register(can_restart, restart_callback, nil) +end \ No newline at end of file diff --git a/map_gen/maps/april_fools/scenario/rocket_launched.lua b/map_gen/maps/april_fools/scenario/rocket_launched.lua new file mode 100644 index 00000000..fa82d93a --- /dev/null +++ b/map_gen/maps/april_fools/scenario/rocket_launched.lua @@ -0,0 +1,80 @@ +local Event = require 'utils.event' +local Server = require 'features.server' +local ShareGlobals = require 'map_gen.maps.april_fools.scenario.shared_globals' + +ShareGlobals.data.map_won = false + +local win_satellite_count = 1000 + +_G.rocket_launched_win_data = { + extra_rockets = win_satellite_count +} + +local function disable_biters() + game.forces.enemy.kill_all_units() + for _, surface in pairs(game.surfaces) do + for _, enemy_entity in pairs(surface.find_entities_filtered({ force = 'enemy' })) do + enemy_entity.destroy() + end + end + + local message = 'Launching the last satellite has killed all the biters!' + game.print(message) + Server.to_discord_bold(message) +end + +local function win() + if ShareGlobals.data.map_won then + return + end + + ShareGlobals.data.map_won = true + local message = 'Congratulations! The map has been won. Restart the map with /restart' + game.print(message) + Server.to_discord_bold(message) +end + +local function print_satellite_message(count) + local remaining_count = win_satellite_count - count + if remaining_count <= 0 then + return + end + + local message = table.concat { 'Launch another ', remaining_count, ' satellites to win the map.' } + game.print(message) + Server.to_discord_bold(message) +end + +local function rocket_launched(event) + if ShareGlobals.data.map_won then + return + end + + local entity = event.rocket + if not entity or not entity.valid or not entity.force == 'player' then + return + end + + local inventory = entity.get_inventory(defines.inventory.rocket) + if not inventory or not inventory.valid then + return + end + + local satellite_count = game.forces.player.get_item_launched('satellite') + if satellite_count == 0 then + return + end + + if satellite_count == win_satellite_count then + disable_biters() + win() + return + end + + if (satellite_count % 50) == 0 then + print_satellite_message(satellite_count) + end +end + +Event.add(defines.events.on_rocket_launched, rocket_launched) + diff --git a/map_gen/maps/april_fools/scenario/rocket_waves.lua b/map_gen/maps/april_fools/scenario/rocket_waves.lua new file mode 100644 index 00000000..aa656fa4 --- /dev/null +++ b/map_gen/maps/april_fools/scenario/rocket_waves.lua @@ -0,0 +1,228 @@ +local Event = require 'utils.event' +local Generate = require 'map_gen.shared.generate' +local Global = require 'utils.global' +local Queue = require 'utils.queue' +local AlienEvolutionProgress = require 'utils.alien_evolution_progress' +local Task = require 'utils.task' +local Token = require 'utils.token' +local Server = require 'features.server' +local ShareGlobals = require 'map_gen.maps.april_fools.scenario.shared_globals' + +ShareGlobals.data.map_won = false + +local config = { + recent_chunks_max = 20, + ticks_between_waves = 60 * 30, + enemy_factor = 5, + max_enemies_per_wave_per_chunk = 60, + extra_rockets = 33 +} + +local recent_chunks = Queue.new() -- Keeps track of recently revealed chunks +local recent_chunks_max = config.recent_chunks_max or 10 -- Maximum number of chunks to track +local ticks_between_waves = config.ticks_between_waves or (60 * 30) +local enemy_factor = config.enemy_factor or 5 +local max_enemies_per_wave_per_chunk = config.max_enemies_per_wave_per_chunk or 60 + +local win_data = { evolution_rocket_maxed = -1, extra_rockets = config.extra_rockets or 100 } + +_G.rocket_launched_win_data = win_data + +Global.register({ recent_chunks = recent_chunks, win_data = win_data }, function(tbl) + recent_chunks = tbl.recent_chunks + win_data = tbl.win_data +end) + +local function give_command(group, data) + local target = data.target + + if target and target.valid then + local command = { type = defines.command.attack, target = target, distraction = defines.distraction.by_damage } + group.set_command(command) + group.start_moving() + else + local command = { type = defines.command.attack_area, destination = data.position, radius = 32, distraction = defines.distraction.by_damage } + + local members = group.members + for i = 1, #members do + local entitiy = members[i] + entitiy.set_command(command) + end + end +end + +local do_waves +local do_wave + +do_waves = Token.register(function(data) + Task.queue_task(do_wave, data, 10) +end) + +do_wave = Token.register(function(data) + local wave = data.wave + local last_wave = data.last_wave + -- game.print('wave: ' .. wave .. '/' .. last_wave) + + local chunk_index = data.chunk_index + local chunk = data.chunks[chunk_index] + + if not chunk then + data.wave = wave + 1 + data.chunk_index = 1 + Task.set_timeout_in_ticks(ticks_between_waves, do_waves, data) + return false + end + + local spawner = data.spawner + + local aliens = AlienEvolutionProgress.get_aliens(spawner, game.forces.enemy.evolution_factor) + + local left_top = chunk.area.left_top + local center = { left_top.x + 16, left_top.y + 16 } + local surface = chunk.surface + local find_non_colliding_position = surface.find_non_colliding_position + local create_entity = surface.create_entity + + local group = surface.create_unit_group { position = center } + local add_member = group.add_member + + for name, count in pairs(aliens) do + for i = 1, count do + local pos = find_non_colliding_position(name, center, 32, 1) + if pos then + local e = { name = name, position = pos, force = 'enemy', center = center, radius = 16, 1 } + local ent = create_entity(e) + + add_member(ent) + end + end + end + + give_command(group, data) + + if chunk_index < recent_chunks_max then + data.chunk_index = chunk_index + 1 + return true + end + + if wave < last_wave then + data.wave = wave + 1 + data.chunk_index = 1 + Task.set_timeout_in_ticks(ticks_between_waves, do_waves, data) + end + + return false +end) + +local function start_waves(event) + local num_enemies = enemy_factor * game.forces.player.get_item_launched('satellite') + local number_of_waves = math.ceil(num_enemies / max_enemies_per_wave_per_chunk) + local num_enemies_per_wave_per_chunk = math.ceil(num_enemies / number_of_waves) + + local target = event.rocket_silo + local position + if target and target.valid then + position = target.position + else + position = { 0, 0 } + end + + local data = { + spawner = AlienEvolutionProgress.create_spawner_request(num_enemies_per_wave_per_chunk), + wave = 1, + last_wave = number_of_waves, + chunk_index = 1, + chunks = Queue.to_array(recent_chunks), + target = target, + position = position, + } + + Task.set_timeout_in_ticks(1, do_waves, data) + + game.print('Warning incomming biter attack! Number of waves: ' .. number_of_waves) +end + +local function rocket_launched(event) + local entity = event.rocket + + if not entity or not entity.valid or not entity.force == 'player' then + return + end + + local inventory = entity.get_inventory(defines.inventory.rocket) + if not inventory or not inventory.valid then + return + end + + local satellite_count = game.forces.player.get_item_launched('satellite') + if satellite_count == 0 then + return + end + + -- Increase enemy_evolution + local current_evolution = game.forces.enemy.evolution_factor + + if (satellite_count % 5) == 0 and win_data.evolution_rocket_maxed == -1 then + local message = 'Continued launching of satellites has angered the local biter population, evolution increasing...' + game.print(message) + Server.to_discord_bold(message) + + current_evolution = current_evolution + 0.05 + game.forces.enemy.evolution_factor = current_evolution + end + + if current_evolution < 1 then + start_waves(event) + return + end + + if win_data.evolution_rocket_maxed == -1 then + win_data.evolution_rocket_maxed = satellite_count + end + + local remaining_satellites = win_data.evolution_rocket_maxed + win_data.extra_rockets - satellite_count + if remaining_satellites > 0 then + local message = 'Biters at maximum evolution! Protect the base for an additional ' .. remaining_satellites .. ' rockets to wipe them out forever.' + game.print(message) + Server.to_discord_bold(message) + + start_waves(event) + return + end + + local win_message = 'Congratulations! Biters have been wiped from the map!' + game.print(win_message) + Server.to_discord_bold(win_message) + ShareGlobals.data.map_won = true + + game.forces.enemy.kill_all_units() + for _, surface in pairs(game.surfaces) do + for _, enemy_entity in pairs(surface.find_entities_filtered({ force = 'enemy' })) do + enemy_entity.destroy() + end + end + +end + +local bad_tiles = { 'deepwater-green', 'deepwater', 'out-of-map', 'water-green', 'water' } + +local function chunk_unlocked(chunk) + if chunk.surface and chunk.surface.name == 'islands' then + -- Dont need to rule out chunks with water if biters can walk on water (Walkable Water mod) + if not script.active_mods['walkable-water'] then + local count = chunk.surface.count_tiles_filtered({ area = chunk.area, name = bad_tiles, limit = 1 }) + if count > 0 then + return + end + end + + Queue.push(recent_chunks, chunk) + + while Queue.size(recent_chunks) > recent_chunks_max do + Queue.pop(recent_chunks) + end + end +end + +Event.add(defines.events.on_rocket_launched, rocket_launched) +Event.add(Generate.events.on_chunk_generated, chunk_unlocked) diff --git a/map_gen/maps/april_fools/scenario/shared_globals.lua b/map_gen/maps/april_fools/scenario/shared_globals.lua new file mode 100644 index 00000000..e2db3663 --- /dev/null +++ b/map_gen/maps/april_fools/scenario/shared_globals.lua @@ -0,0 +1,17 @@ +local Global = require 'utils.global' + +local Public = { + data = {} +} + +_G.april_fools_shared_globals = Public.data + +Global.register( + Public.data, + function(tbl) + Public.data = tbl + _G.april_fools_shared_globals = tbl + end +) + +return Public diff --git a/map_gen/shared/alien_biomes.lua b/map_gen/shared/alien_biomes.lua new file mode 100644 index 00000000..13b482bb --- /dev/null +++ b/map_gen/shared/alien_biomes.lua @@ -0,0 +1,217 @@ +--[[ + Map gen settings generator supporting Alien Biome's noise levels & autoplace settings + + === Preset Library === + + A MGS preset is a dictionary of autoplace controls for: + - aux (Alien Biomes) + - moisture (Alien Biomes) + - temperature (Alien Biomes) + - enemy + - trees + - water + full updated list available at: resources/alien_biomes/biomes.lua + + ** AB.set_preset(data), AB.remove_preset(name), AB.clear_presets() + + === Param Customization === + + ** AB.override_vanilla_mgs(MapGenSettings) + Adds aux and moisture parameters to neg generated maps. + @usage + local AB = require 'map_gen.shared.alien_biomes' + AB.override_vanilla_mgs(game.surfaces.redmew.map_gen_settings) + + === Map Gen Settings === + + ** AB.new_from_existent(config) + 1. Generate a new random MGS based off default preset + @usage + local AB = require 'map_gen.shared.alien_biomes' + local new_mgs = AB.new_from_existent() + 2. Generate a new random MGS based on current surface + @usage + local AB = require 'map_gen.shared.alien_biomes' + local new_mgs = AB.new_from_existent({map_gen_settings = game.surfaces.redmew}) + + ** AB.new_from_preset(config) + 1. Generate a new random MGS based off a random preset from the AB library + @usage + local AB = require 'map_gen.shared.alien_biomes' + local new_mgs = AB.new_from_preset() + 2. Generate a new random MGS based on a specific preset from the AB library + @usage + local AB = require 'map_gen.shared.alien_biomes' + local new_mgs = AB.new_from_preset({preset_name = 'volcano'}) +]] + +require 'util' +require 'utils.table' +local Global = require 'utils.global' +local Biomes = require 'resources.alien_biomes.biomes' + +local Public = {} +local _this = { + presets = Biomes.presets +} + +Global.register(_this, function(tbl) _this = tbl end) + +-- === PRESET LIBRARY MANIPULATION ============================================ + +--- Adds a new preset to the global table +---@param data table<{ name: tostringing, preset: table }> +---@return bool +function Public.set_preset(data) + if not (data and data.name and data.preset) then + return false + end + + _this.presets[data.name] = data.preset + return _this.presets[data.name] ~= nil +end + +--- Remove target preset from the global presets list +---@param name tostringing +---@return bool +function Public.remove_preset(name) + if not (name and type(name) == 'tostringing') then + return false + end + + _this.presets[name] = nil + return _this.presets[name] ~= nil +end + +--- Clears the global table from all presets +---@return bool +function Public.clear_presets() + for key, _ in pairs(_this.presets) do + _this.presets[key] = nil + end + return table_size(_this.presets) == 0 +end + +-- === PARAM CUSTOMIZATION ==================================================== + +local function apply_temperature(mgs) + local hf, hs = 1, 1 + local cf, cs = 1, 1 + + if _LIFECYCLE == _STAGE.init or _LIFECYCLE == _STAGE.runtime then + hf = hf + 0.5*(math.random()-0.5) + hs = hs + 0.2*(math.random()-0.5) + + cf = cf + 0.5*(math.random()-0.5) + cs = cs + 0.2*(math.random()-0.5) + end + + mgs.autoplace_controls = mgs.autoplace_controls or {} + mgs.autoplace_controls.hot = { frequency = hf, size = hs } + mgs.autoplace_controls.cold = { frequency = cf, size = cs } +end + +--- Adds +-25% freq and +-10% bias to Aux autoplace +---@param mgs MapGenSettings +local function apply_aux(mgs) + local freq, bias = 1, 0 + + if _LIFECYCLE == _STAGE.init or _LIFECYCLE == _STAGE.runtime then + freq = freq + 0.5*(math.random()-0.5) + bias = bias + 0.2*(math.random()-0.5) + end + + mgs.property_expression_names = mgs.property_expression_names or {} + mgs.property_expression_names['control-setting:aux:bias'] = tostring(bias) + mgs.property_expression_names['control-setting:aux:frequency'] = tostring(freq) +end + +--- Adds +-25% freq and +-10% bias to Moisture autoplace +---@param mgs MapGenSettings +local function apply_moisture(mgs) + local freq, bias = 1, 0 + + if _LIFECYCLE == _STAGE.init or _LIFECYCLE == _STAGE.runtime then + freq = freq + 0.5*(math.random()-0.5) + bias = bias + 0.2*(math.random()-0.5) + end + + mgs.property_expression_names = mgs.property_expression_names or {} + mgs.property_expression_names['control-setting:moisture:bias'] = tostring(bias) + mgs.property_expression_names['control-setting:moisture:frequency'] = tostring(freq) +end + + +--- Adds random aux and moisture to default vanilla MapGenSettings +--- Is safe to call even for vanilla scenarios +---@param mgs MapGenSettings +function Public.override_vanilla_mgs(mgs) + if not script.active_mods['alien-biomes'] then + return + end + + apply_aux(mgs) + apply_moisture(mgs) + apply_temperature(mgs) +end + +-- === MAP GEN SETTINGS ======================================================= + +--- Generates a new random map_gen_setting from a given preset. If none is passed, the default one is used instead +--- Is safe to call even for vanilla scenarios +---@param config table +---@field seed? number +---@field map_gen_settings? MapGenSettings +---@return MapGenSettings +function Public.new_from_existent(config) + config = config or {} + local mgs = game.default_map_gen_settings + + if config.map_gen_settings then + mgs = config.map_gen_settings + end + + if _LIFECYCLE == _STAGE.init or _LIFECYCLE == _STAGE.runtime then + mgs.seed = config.seed or math.random(4294967295) + end + + Public.override_vanilla(mgs) + + return mgs +end + +--- Generates a random map_gen_setting from the available presets +---- Is safe to call even for vanilla scenarios +--@param config table +---@field seed? number +---@field preset_name? tostringing +---@field map_gen_settings? MapGenSetting +---@return MapGenSettings +function Public.new_from_preset(config) + config = config or {} + local mgs = game.default_map_gen_settings + mgs.seed = config.seed or mgs.seed or 4294967295 + local n_presets = table_size(_this.presets) + local index = mgs.seed % n_presets + 1 + + if config.map_gen_settings then + mgs = util.merge{mgs, config.map_gen_settings} + end + + if _LIFECYCLE == _STAGE.init or _LIFECYCLE == _STAGE.runtime then + mgs.seed = config.seed or math.random(4294967295) + index = math.random(n_presets) + end + + if script.active_mods['alien-biomes'] and n_presets > 0 then + local preset_name = config.preset_name or table.keys(_this.presets)[index] + local preset = Biomes.preset_to_mgs(_this.presets[preset_name]) + mgs = util.merge{mgs, preset} + end + + return mgs +end + +-- ============================================================================ + +return Public diff --git a/resources/alien_biomes/biomes.lua b/resources/alien_biomes/biomes.lua new file mode 100644 index 00000000..f51d201a --- /dev/null +++ b/resources/alien_biomes/biomes.lua @@ -0,0 +1,133 @@ +local b = require 'resources.alien_biomes.biomes_settings' +local str = tostring + +local Public = {} + +-- Converts a table of settings from resources/alien_biomes/biome_settings into a valid MapGenSettings +function Public.preset_to_mgs(preset) + local mgs = { + autoplace_controls = {}, + property_expression_names = {}, + cliff_settings = {}, + } + + if preset.aux then + mgs.property_expression_names['control-setting:aux:bias'] = str(preset.aux.aux.bias or 0) + mgs.property_expression_names['control-setting:aux:frequency'] = str(preset.aux.aux.frequency or 1) + end + + if preset.moisture then + mgs.property_expression_names['control-setting:moisture:bias'] = str(preset.moisture.moisture.bias or 0) + mgs.property_expression_names['control-setting:moisture:frequency'] = str(preset.moisture.moisture.frequency or 1) + end + + if preset.enemy then + mgs.autoplace_controls['enemy-base'] = preset.enemy['enemy-base'] + end + + if preset.temperature then + local t = preset.temperature + if t.cold then + mgs.autoplace_controls.cold = t.cold + end + if t.hot then + mgs.autoplace_controls.hot = t.hot + end + end + + if preset.water then + mgs.water = preset.water.water.size + if preset.water.water.frequency and preset.water.water.frequency > 0 then + mgs.terrain_segmentation = 1 / preset.water.water.frequency + end + end + + if preset.trees then + mgs.autoplace_controls.trees = preset.trees.trees + end + + for _, k in pairs({'autoplace_controls', 'property_expression_names', 'cliff_settings'}) do + if table_size(mgs[k]) == 0 then + mgs[k] = nil + end + end + + return mgs +end + +Public.presets = { + default = { + aux = b.aux.med, + enemy = b.enemy.high, + moisture = b.moisture.med, + temperature = b.temperature.balanced, + trees = b.trees.high, + water = b.water.med, + }, + cloud = { + aux = b.aux.very_low, + enemy = b.enemy.none, + moisture = b.moisture.high, + temperature = b.temperature.cool, + trees = b.trees.med, + water = b.water.high, + }, + ice = { + aux = b.aux.med, + enemy = b.enemy.none, + moisture = b.moisture.med, + temperature = b.temperature.frozen, + trees = b.trees.none, + water = b.water.low, + }, + volcano = { + aux = b.aux.very_low, + enemy = b.enemy.none, + moisture = b.moisture.none, + temperature = b.temperature.volcanic, + trees = b.trees.none, + water = b.water.none, + }, + mountain = { + aux = b.aux.low, + enemy = b.enemy.low, + moisture = b.moisture.low, + temperature = b.temperature.wild, + trees = b.trees.none, + water = b.water.low, + }, + neptune = { + aux = b.aux.very_high, + enemy = b.enemy.none, + moisture = b.moisture.high, + temperature = b.temperature.bland, + trees = b.trees.med, + water = b.water.max, + }, + jungle = { + aux = b.aux.very_low, + enemy = b.enemy.med, + moisture = b.moisture.high, + temperature = b.temperature.bland, + trees = b.trees.high, + water = b.water.med, + }, + canyon = { + aux = b.aux.low, + enemy = b.enemy.med, + moisture = b.moisture.high, + temperature = b.temperature.hot, + trees = b.trees.low, + water = b.water.none, + }, + desert = { + aux = b.aux.low, + enemy = b.enemy.med, + moisture = b.moisture.low, + temperature = b.temperature.warm, + trees = b.trees.low, + water = b.water.low, + }, +} + +return Public \ No newline at end of file diff --git a/resources/alien_biomes/biomes_settings.lua b/resources/alien_biomes/biomes_settings.lua new file mode 100644 index 00000000..c6f4d4d2 --- /dev/null +++ b/resources/alien_biomes/biomes_settings.lua @@ -0,0 +1,71 @@ +return { + -- AUX + -- range: [0, 1] + -- determines whether low-moisture tiles become sand or red desert + aux = { + very_low = { aux = { frequency = 1, bias = -0.5 } }, + low = { aux = { frequency = 1, bias = -0.3 } }, + med = { aux = { frequency = 1, bias = -0.1 } }, + high = { aux = { frequency = 1, bias = 0.2 } }, + very_high = { aux = { frequency = 1, bias = 0.5 } }, + }, + -- MOISTURE + -- range: [0, 1] + -- determines whether a tile becomes sandy (low moisture) or grassy (high moisture). + moisture = { + none = { moisture = { frequency = 2, bias = -1 } }, + low = { moisture = { frequency = 1, bias = -0.15 } }, + med = { moisture = { frequency = 1, bias = 0 } }, + high = { moisture = { frequency = 1, bias = 0.15 } }, + max = { moisture = { frequency = 2, bias = 0.5 } }, + }, + temperature = { + -- mixed + bland = { hot = { frequency = 0.5, size = 0 }, cold = { frequency = 0.5, size = 0 } }, + temperate = { hot = { frequency = 1, size = 0.25 }, cold = { frequency = 1, size = 0.25 } }, + midrange = { hot = { frequency = 1, size = 0.65 }, cold = { frequency = 1, size = 0.65 } }, + balanced = { hot = { frequency = 1, size = 1 }, cold = { frequency = 1, size = 1 } }, + wild = { hot = { frequency = 1, size = 3 }, cold = { frequency = 1, size = 3 } }, + extreme = { hot = { frequency = 1, size = 6 }, cold = { frequency = 1, size = 6 } }, + -- cold + cool = { hot = { frequency = 0.75, size = 0 }, cold = { frequency = 0.75, size = 0.5 } }, + cold = { hot = { frequency = 0.75, size = 0 }, cold = { frequency = 0.75, size = 1 } }, + very_cold = { hot = { frequency = 0.75, size = 0 }, cold = { frequency = 0.75, size = 2.2 } }, + frozen = { hot = { frequency = 0.75, size = 0 }, cold = { frequency = 0.75, size = 6 } }, + -- hot + warm = { hot = { frequency = 0.75, size = 0.5 }, cold = { frequency = 0.75, size = 0 } }, + hot = { hot = { frequency = 0.75, size = 1 }, cold = { frequency = 0.75, size = 0 } }, + very_hot = { hot = { frequency = 0.75, size = 2.2 }, cold = { frequency = 0.75, size = 0 } }, + volcanic = { hot = { frequency = 0.75, size = 6 }, cold = { frequency = 0.75, size = 0 } }, + }, + trees = { + none = { trees = { frequency = 0.25, size = 0, richness = 0 } }, + low = { trees = { frequency = 0.6, size = 0.35, richness = 0.8 } }, + med = { trees = { frequency = 0.8, size = 0.66, richness = 1 } }, + high = { trees = { frequency = 1, size = 1, richness = 1 } }, + max = { trees = { frequency = 3, size = 1, richness = 1 } }, + }, + cliff = { + none = { cliff = { frequency = 0.01, richness = 0 } }, + low = { cliff = { frequency = 0.3, richness = 0.3 } }, + med = { cliff = { frequency = 1, richness = 1 } }, + high = { cliff = { frequency = 2, richness = 2 } }, + max = { cliff = { frequency = 6, richness = 2 } }, + }, + water = { + none = { water = { frequancy = 1, size = 0 } }, + low = { water = { frequency = 0.5, size = 0.3 } }, + med = { water = { frequency = 1, size = 1 } }, + high = { water = { frequency = 1, size = 4 } }, + max = { water = { frequency = 0.5, size = 10 } }, + }, + enemy = { + none = { ['enemy-base'] = { frequency = 1e-6, size = -1, richness = -1 } }, + very_low = { ['enemy-base'] = { frequency = 0.1, size = 0.1, richness = 0.1 } }, + low = { ['enemy-base'] = { frequency = 0.2, size = 0.2, richness = 0.2 } }, + med = { ['enemy-base'] = { frequency = 0.5, size = 0.5, richness = 0.5 } }, + high = { ['enemy-base'] = { frequency = 1, size = 1, richness = 1 } }, + very_high = { ['enemy-base'] = { frequency = 1.5, size = 2, richness = 1.5 } }, + max = { ['enemy-base'] = { frequency = 2, size = 6, richness = 2 } }, + }, +} diff --git a/resources/alien_biomes/tile_names.lua b/resources/alien_biomes/tile_names.lua new file mode 100644 index 00000000..61e3162b --- /dev/null +++ b/resources/alien_biomes/tile_names.lua @@ -0,0 +1,49 @@ +local function make_variations(name, min, max) + local tiles = {} + for i=min, max do + table.insert(tiles, name .. '-' .. tostring(i)) + end + return tiles +end + +return { + ['frozen-snow'] = make_variations('frozen-snow', 0, 9), + ['mineral-aubergine-dirt'] = make_variations('mineral-aubergine-dirt', 1, 6), + ['mineral-aubergine-sand'] = make_variations('mineral-aubergine-sand', 1, 3), + ['mineral-beige-dirt'] = make_variations('mineral-beige-dirt', 1, 6), + ['mineral-beige-sand'] = make_variations('mineral-beige-sand', 1, 3), + ['mineral-black-dirt'] = make_variations('mineral-black-dirt', 1, 6), + ['mineral-black-sand'] = make_variations('mineral-black-sand', 1, 3), + ['mineral-brown-dirt'] = make_variations('mineral-brown-dirt', 1, 6), + ['mineral-brown-sand'] = make_variations('mineral-brown-sand', 1, 3), + ['mineral-cream-dirt'] = make_variations('mineral-cream-dirt', 1, 6), + ['mineral-cream-sand'] = make_variations('mineral-cream-sand', 1, 3), + ['mineral-dustyrose-dirt'] = make_variations('mineral-dustyrose-dirt', 1, 6), + ['mineral-dustyrose-sand'] = make_variations('mineral-dustyrose-sand', 1, 3), + ['mineral-grey-dirt'] = make_variations('mineral-grey-dirt', 1, 6), + ['mineral-grey-sand'] = make_variations('mineral-grey-sand', 1, 3), + ['mineral-purple-dirt'] = make_variations('mineral-purple-dirt', 1, 6), + ['mineral-purple-sand'] = make_variations('mineral-purple-sand', 1, 3), + ['mineral-red-dirt'] = make_variations('mineral-red-dirt', 1, 6), + ['mineral-red-sand'] = make_variations('mineral-red-sand', 1, 3), + ['mineral-tan-dirt'] = make_variations('mineral-tan-dirt', 1, 6), + ['mineral-tan-sand'] = make_variations('mineral-tan-sand', 1, 3), + ['mineral-violet-dirt'] = make_variations('mineral-violet-dirt', 1, 6), + ['mineral-violet-sand'] = make_variations('mineral-violet-sand', 1, 3), + ['mineral-white-dirt'] = make_variations('mineral-white-dirt', 1, 6), + ['mineral-white-sand'] = make_variations('mineral-white-sand', 1, 3), + ['vegetation-blue-grass'] = make_variations('vegetation-blue-grass', 1, 2), + ['vegetation-green-grass'] = make_variations('vegetation-green-grass', 1, 4), + ['vegetation-mauve-grass'] = make_variations('vegetation-mauve-grass', 1, 2), + ['vegetation-olive-grass'] = make_variations('vegetation-olive-grass', 1, 2), + ['vegetation-orange-grass'] = make_variations('vegetation-orange-grass', 1, 2), + ['vegetation-purple-grass'] = make_variations('vegetation-purple-grass', 1, 2), + ['vegetation-red-grass'] = make_variations('vegetation-red-grass', 1, 2), + ['vegetation-turquoise-grass'] = make_variations('vegetation-turquoise-grass', 1, 2), + ['vegetation-violet-grass'] = make_variations('vegetation-violet-grass', 1, 2), + ['vegetation-yellow-grass'] = make_variations('vegetation-yellow-grass', 1, 2), + ['volcanic-blue-heat'] = make_variations('volcanic-blue-heat', 1, 4), + ['volcanic-green-heat'] = make_variations('volcanic-green-heat', 1, 4), + ['volcanic-orange-heat'] = make_variations('volcanic-orange-heat', 1, 4), + ['volcanic-purple-heat'] = make_variations('volcanic-purple-heat', 1, 4), +} diff --git a/resources/alien_biomes/tile_presets.lua b/resources/alien_biomes/tile_presets.lua new file mode 100644 index 00000000..aff14ccb --- /dev/null +++ b/resources/alien_biomes/tile_presets.lua @@ -0,0 +1,262 @@ +--[[ + Each preset will be similar to: + + grass = autoplace_settings = { + tile = { + treat_missing_as_default = false, + settings = { + ['grass-1'] = {frequency = 1, size = 1, richness = 1}, + ['grass-2'] = {frequency = 1, size = 1, richness = 1}, + ['grass-3'] = {frequency = 1, size = 1, richness = 1}, + ['grass-4'] = {frequency = 1, size = 1, richness = 1}, + } + } + } + + - no water, you will need to add it if wanted + - tiles not listed tiles will not be placed +]] + +local Table = require 'utils.table' +local ab_tiles = require 'resources.alien_biomes.tile_names' + +local function make_default_autoplace_settings(tile_table) + local autoplace_settings = { + tile = { + treat_missing_as_default = false, + settings = {} + } + } + for _, tile_name in pairs(Table.concat_tables(tile_table)) do + autoplace_settings.tile.settings[tile_name] = {frequency = 1, size = 1, richness = 1} + end + return autoplace_settings +end + +return { + -- Color subsets + green = make_default_autoplace_settings{ + ab_tiles['vegetation-green-grass'], + ab_tiles['vegetation-olive-grass'], + ab_tiles['vegetation-turquioise-grass'] + }, + white = make_default_autoplace_settings{ + ab_tiles['mineral-white-dirt'], + ab_tiles['mineral-white-sand'], + }, + grey = make_default_autoplace_settings{ + ab_tiles['mineral-grey-dirt'], + ab_tiles['mineral-grey-sand'], + }, + black = make_default_autoplace_settings{ + ab_tiles['mineral-black-dirt'], + ab_tiles['mineral-black-sand'], + }, + aubergine = make_default_autoplace_settings{ + ab_tiles['mineral-aubergine-dirt'], + ab_tiles['mineral-aubergine-sand'], + }, + purple = make_default_autoplace_settings{ + ab_tiles['mineral-purple-dirt'], + ab_tiles['mineral-purple-sand'], + }, + red = make_default_autoplace_settings{ + ab_tiles['mineral-red-dirt'], + ab_tiles['mineral-red-sand'], + }, + beige = make_default_autoplace_settings{ + ab_tiles['mineral-beige-dirt'], + ab_tiles['mineral-beige-sand'], + }, + brown = make_default_autoplace_settings{ + ab_tiles['mineral-brown-dirt'], + ab_tiles['mineral-brown-sand'], + }, + cream = make_default_autoplace_settings{ + ab_tiles['mineral-cream-dirt'], + ab_tiles['mineral-cream-sand'], + }, + dustyrose = make_default_autoplace_settings{ + ab_tiles['mineral-dustyrose-dirt'], + ab_tiles['mineral-dustyrose-sand'], + }, + tan = make_default_autoplace_settings{ + ab_tiles['mineral-tan-dirt'], + ab_tiles['mineral-tan-sand'], + }, + violet = make_default_autoplace_settings{ + ab_tiles['mineral-violet-dirt'], + ab_tiles['mineral-violet-sand'], + }, + + -- Texture subsets + grass = make_default_autoplace_settings{ + ab_tiles['vegetation-green-grass'], + ab_tiles['vegetation-olive-grass'], + ab_tiles['vegetation-turquioise-grass'], + }, + snow = make_default_autoplace_settings{ + ab_tiles['frozen-snow'], + }, + light_sand = make_default_autoplace_settings{ + ab_tiles['mineral-tan-sand'], + ab_tiles['mineral-beige-sand'], + ab_tiles['mineral-cream-sand'], + }, + dark_sand = make_default_autoplace_settings{ + ab_tiles['mineral-black-sand'], + ab_tiles['mineral-grey-sand'], + }, + colorful_sand = make_default_autoplace_settings{ + ab_tiles['mineral-brown-sand'], + ab_tiles['mineral-aubergine-sand'], + ab_tiles['mineral-purple-sand'], + ab_tiles['mineral-dustyrose-sand'], + ab_tiles['mineral-red-sand'], + ab_tiles['mineral-violet-sand'], + }, + sand_only = make_default_autoplace_settings{ + -- light sand + ab_tiles['mineral-tan-sand'], + ab_tiles['mineral-beige-sand'], + ab_tiles['mineral-cream-sand'], + -- dark sand + ab_tiles['mineral-black-sand'], + ab_tiles['mineral-grey-sand'], + -- purple/red sand + ab_tiles['mineral-brown-sand'], + ab_tiles['mineral-aubergine-sand'], + ab_tiles['mineral-purple-sand'], + ab_tiles['mineral-dustyrose-sand'], + ab_tiles['mineral-red-sand'], + ab_tiles['mineral-violet-sand'], + }, + brown_light_dirt = make_default_autoplace_settings{ + ab_tiles['mineral-beige-dirt'], + ab_tiles['mineral-cream-dirt'], + ab_tiles['mineral-tan-dirt'], + }, + brown_dark_dirt = make_default_autoplace_settings{ + ab_tiles['mineral-brown-dirt'], + ab_tiles['mineral-dustyrose-dirt'], + ab_tiles['mineral-tan-dirt'], + }, + brown_dirt = make_default_autoplace_settings{ + ab_tiles['mineral-beige-dirt'], + ab_tiles['mineral-cream-dirt'], + ab_tiles['mineral-tan-dirt'], + ab_tiles['mineral-brown-dirt'], + ab_tiles['mineral-dustyrose-dirt'], + }, + light_grey_dirt = make_default_autoplace_settings{ + ab_tiles['mineral-grey-dirt'], + ab_tiles['mineral-white-dirt'], + }, + colorful_dirt = { + ab_tiles['mineral-brown-dirt'], + ab_tiles['mineral-aubergine-dirt'], + ab_tiles['mineral-purple-dirt'], + ab_tiles['mineral-dustyrose-dirt'], + ab_tiles['mineral-red-dirt'], + ab_tiles['mineral-violet-dirt'], + }, + dirt_only = make_default_autoplace_settings{ + -- light dirt + ab_tiles['mineral-tan-dirt'], + ab_tiles['mineral-beige-dirt'], + ab_tiles['mineral-cream-dirt'], + -- dark dirt + ab_tiles['mineral-black-dirt'], + ab_tiles['mineral-grey-dirt'], + -- purple/red dirt + ab_tiles['mineral-brown-dirt'], + ab_tiles['mineral-aubergine-dirt'], + ab_tiles['mineral-purple-dirt'], + ab_tiles['mineral-dustyrose-dirt'], + ab_tiles['mineral-red-dirt'], + ab_tiles['mineral-violet-dirt'], + }, + heat_blue = make_default_autoplace_settings{ + ab_tiles['volcaninc-blue-heat'], + }, + heat_green = make_default_autoplace_settings{ + ab_tiles['volcaninc-green-heat'], + }, + heat_orange = make_default_autoplace_settings{ + ab_tiles['volcaninc-orange-heat'], + }, + heat_purple = make_default_autoplace_settings{ + ab_tiles['volcaninc-purple-heat'], + }, + + -- Full biomes + cold = make_default_autoplace_settings{ + ab_tiles['frozen-snow'], + ab_tiles['mineral-white-dirt'], + ab_tiles['mineral-white-sand'], + ab_tiles['volcaninc-blue-heat'], + }, + hot = make_default_autoplace_settings{ + ab_tiles['mineral-red-dirt'], + ab_tiles['mineral-red-sand'], + ab_tiles['vegetation-red-grass'], + ab_tiles['volcaninc-orange-heat'], + }, + pale = make_default_autoplace_settings{ + ab_tiles['mineral-beige-dirt'], + ab_tiles['mineral-beige-sand'], + ab_tiles['mineral-grey-dirt'], + ab_tiles['mineral-grey-sand'], + ab_tiles['mineral-white-dirt'], + ab_tiles['mineral-white-sand'], + }, + temperate = make_default_autoplace_settings{ + ab_tiles['mineral-tan-dirt'], + ab_tiles['mineral-tan-sand'], + ab_tiles['mineral-brown-dirt'], + ab_tiles['mineral-brown-sand'], + ab_tiles['mineral-cream-dirt'], + ab_tiles['mineral-cream-sand'], + ab_tiles['mineral-dustyrose-dirt'], + ab_tiles['mineral-dustyrose-sand'], + ab_tiles['vegetation-green-grass'], + ab_tiles['vegetation-olive-grass'], + ab_tiles['vegetation-orange-grass'], + ab_tiles['vegetation-turquoise-grass'], + ab_tiles['vegetation-yellow-grass'], + }, + vegetation = make_default_autoplace_settings{ + ab_tiles['mineral-cream-dirt'], + ab_tiles['mineral-cream-sand'], + ab_tiles['mineral-tan-dirt'], + ab_tiles['mineral-tan-sand'], + ab_tiles['vegetation-green-grass'], + ab_tiles['vegetation-olive-grass'], + ab_tiles['vegetation-orange-grass'], + ab_tiles['vegetation-turquoise-grass'], + ab_tiles['vegetation-yellow-grass'], + ab_tiles['volcanic-green-heat'], + }, + volcano = make_default_autoplace_settings{ + ab_tiles['mineral-black-dirt'], + ab_tiles['mineral-black-sand'], + ab_tiles['mineral-red-dirt'], + ab_tiles['mineral-red-sand'], + ab_tiles['vegetation-red-grass'], + ab_tiles['volcaninc-orange-heat'], + }, + mystic_purple = make_default_autoplace_settings{ + ab_tiles['mineral-aubergine-dirt'], + ab_tiles['mineral-aubergine-sand'], + ab_tiles['mineral-purple-dirt'], + ab_tiles['mineral-purple-sand'], + ab_tiles['mineral-violet-dirt'], + ab_tiles['mineral-violet-sand'], + ab_tiles['vegetation-blue-grass'], + ab_tiles['vegetation-mauve-grass'], + ab_tiles['vegetation-purple-grass'], + ab_tiles['vegetation-violet-grass'], + ab_tiles['volcanic-blue-heat'], + ab_tiles['volcanic-purple-heat'], + }, +} diff --git a/resources/discord.lua b/resources/discord.lua index 760e2ac0..e56ae3f2 100644 --- a/resources/discord.lua +++ b/resources/discord.lua @@ -8,7 +8,8 @@ return { moderation_log = 'moderation-log', helpdesk = 'helpdesk', danger_ores = 'danger-ores', - crash_site = 'crash-site' + crash_site = 'crash-site', + events = 'events', }, --- The strings that mention the discord role. -- Has to be used with features.server.to_discord_raw variants else the mention is sanitized server side. @@ -17,6 +18,7 @@ return { crash_site = '<@&762441731194748958>', danger_ore = '<@&793231011144007730>', moderator = '<@&454192594633883658>', - diggy = '<@&921476458076061718>' + diggy = '<@&921476458076061718>', + map_update = '<@486532533220147203>', } } diff --git a/resources/item_list.lua b/resources/item_list.lua new file mode 100644 index 00000000..fd9f1427 --- /dev/null +++ b/resources/item_list.lua @@ -0,0 +1,146 @@ +return { + 'accumulator', + 'advanced-circuit', + 'arithmetic-combinator', + 'artillery-turret', + 'assembling-machine-1', + 'assembling-machine-2', + 'assembling-machine-3', + 'battery', + 'battery-equipment', + 'battery-mk2-equipment', + 'beacon', + 'belt-immunity-equipment', + 'big-electric-pole', + 'boiler', + 'burner-inserter', + 'burner-mining-drill', + 'centrifuge', + 'chemical-plant', + 'coal', + 'coin', + 'concrete', + 'constant-combinator', + 'construction-robot', + 'copper-cable', + 'copper-ore', + 'copper-plate', + 'crude-oil-barrel', + 'decider-combinator', + 'discharge-defense-equipment', + 'electric-engine-unit', + 'electric-furnace', + 'electric-mining-drill', + 'electronic-circuit', + 'empty-barrel', + 'energy-shield-equipment', + 'energy-shield-mk2-equipment', + 'engine-unit', + 'exoskeleton-equipment', + 'explosives', + 'express-loader', + 'express-splitter', + 'express-transport-belt', + 'express-underground-belt', + 'fast-inserter', + 'fast-loader', + 'fast-splitter', + 'fast-transport-belt', + 'fast-underground-belt', + 'filter-inserter', + 'flamethrower-turret', + 'flying-robot-frame', + 'fusion-reactor-equipment', + 'gate', + 'green-wire', + 'gun-turret', + 'hazard-concrete', + 'heat-exchanger', + 'heat-interface', + 'heat-pipe', + 'heavy-oil-barrel', + 'inserter', + 'iron-chest', + 'iron-gear-wheel', + 'iron-ore', + 'iron-plate', + 'iron-stick', + 'lab', + 'land-mine', + 'landfill', + 'laser-turret', + 'light-oil-barrel', + 'loader', + 'logistic-chest-active-provider', + 'logistic-chest-buffer', + 'logistic-chest-passive-provider', + 'logistic-chest-requester', + 'logistic-chest-storage', + 'logistic-robot', + 'long-handed-inserter', + 'low-density-structure', + 'lubricant-barrel', + 'medium-electric-pole', + 'night-vision-equipment', + 'nuclear-fuel', + 'nuclear-reactor', + 'offshore-pump', + 'oil-refinery', + 'personal-laser-defense-equipment', + 'personal-roboport-equipment', + 'personal-roboport-mk2-equipment', + 'petroleum-gas-barrel', + 'pipe', + 'pipe-to-ground', + 'plastic-bar', + 'player-port', + 'power-switch', + 'processing-unit', + 'programmable-speaker', + 'pump', + 'pumpjack', + 'radar', + 'rail-chain-signal', + 'rail-signal', + 'red-wire', + 'refined-concrete', + 'refined-hazard-concrete', + 'roboport', + 'rocket-control-unit', + 'rocket-fuel', + 'rocket-part', + 'rocket-silo', + 'satellite', + 'small-electric-pole', + 'small-lamp', + 'solar-panel', + 'solar-panel-equipment', + 'solid-fuel', + 'splitter', + 'stack-filter-inserter', + 'stack-inserter', + 'steam-engine', + 'steam-turbine', + 'steel-chest', + 'steel-furnace', + 'steel-plate', + 'stone', + 'stone-brick', + 'stone-furnace', + 'stone-wall', + 'storage-tank', + 'substation', + 'sulfur', + 'sulfuric-acid-barrel', + 'train-stop', + 'transport-belt', + 'underground-belt', + 'uranium-235', + 'uranium-238', + 'uranium-fuel-cell', + 'uranium-ore', + 'used-up-uranium-fuel-cell', + 'water-barrel', + 'wood', + 'wooden-chest', +} diff --git a/scenario_templates/april-fools-2019/map_selection.lua b/scenario_templates/april-fools-2019/map_selection.lua new file mode 100644 index 00000000..6b261f10 --- /dev/null +++ b/scenario_templates/april-fools-2019/map_selection.lua @@ -0,0 +1 @@ +return require 'map_gen.maps.april_fools.2019' \ No newline at end of file diff --git a/scenario_templates/april-fools-2024/map_selection.lua b/scenario_templates/april-fools-2024/map_selection.lua new file mode 100644 index 00000000..4446417e --- /dev/null +++ b/scenario_templates/april-fools-2024/map_selection.lua @@ -0,0 +1 @@ +return require 'map_gen.maps.april_fools.2024' \ No newline at end of file diff --git a/utils/gui_tests.lua b/utils/gui_tests.lua index f3391fa2..441fa013 100644 --- a/utils/gui_tests.lua +++ b/utils/gui_tests.lua @@ -10,7 +10,7 @@ Declare.module({'utils', 'Gui'}, function() end for _, name in pairs(Gui._top_elements) do - Declare.test(Gui.names[name] or name, function(context) + Declare.test(Gui.names and Gui.names[name] or name, function(context) local player = context.player local element = player.gui.top[name]