diff --git a/conftest.py b/conftest.py
new file mode 100644
index 0000000..1d64705
--- /dev/null
+++ b/conftest.py
@@ -0,0 +1,21 @@
+
+# Configuration for the tests.
+# Use `py.test` to run the tests.
+
+# (This file needs to be in or above the directory where py.test is called)
+
+import pytest
+import os
+
+def pytest_addoption(parser):
+    parser.addoption("--media-root", action="store",
+        default=None,
+        help="Root for the media files (if not specified and pokedex/data/media doesn't exist, tests are skipped)")
+    parser.addoption("--all", action="store_true", default=False,
+        help="Run all tests, even those that take a lot of time")
+
+def pytest_generate_tests(metafunc):
+    for funcargs in getattr(metafunc.function, 'funcarglist', ()):
+        metafunc.addcall(funcargs=funcargs)
+    for posargs in getattr(metafunc.function, 'posarglist', ()):
+        metafunc.addcall(funcargs=dict(zip(metafunc.funcargnames, posargs)))
diff --git a/pokedex/data/csv/evolution_chains.csv b/pokedex/data/csv/evolution_chains.csv
index 33799a4..7119143 100644
--- a/pokedex/data/csv/evolution_chains.csv
+++ b/pokedex/data/csv/evolution_chains.csv
@@ -1,330 +1,329 @@
-id,growth_rate_id,baby_trigger_item_id
-1,4,
-2,4,
-3,4,
-4,2,
-5,2,
-6,4,
-7,2,
-8,2,
-9,2,
-10,2,
-11,2,
-12,4,
-13,4,
-14,3,
-15,2,
-16,3,
-17,2,
-18,4,
-19,2,
-20,2,
-21,2,
-22,2,
-23,2,
-24,2,
-25,1,
-26,4,
-27,4,
-28,4,
-29,4,
-30,1,
-31,4,
-32,2,
-33,2,
-34,2,
-35,2,
-36,2,
-37,2,
-38,2,
-39,1,
-40,4,
-41,2,
-42,2,
-43,2,
-44,2,
-45,1,
-46,2,
-47,2,
-48,2,
-49,2,
-50,1,
-51,3,296
-52,2,
-53,2,
-54,2,
-55,2,
-56,1,
-57,2,291
-58,2,
-59,2,
-60,2,
-61,2,
-62,1,
-63,1,
-64,1,
-65,1,
-66,2,
-67,2,
-68,2,
-69,2,
-70,2,
-71,1,
-72,1,293
-73,1,
-74,1,
-75,1,
-76,1,
-77,1,
-78,4,
-79,4,
-80,4,
-81,4,
-82,2,
-83,2,
-84,3,
-85,3,
-86,1,
-87,3,
-88,2,
-89,4,
-90,3,231
-91,2,292
-92,4,
-93,3,
-94,4,
-95,2,
-96,2,
-97,4,
-98,3,
-99,2,
-100,2,232
-101,2,
-102,2,
-103,2,
-104,4,
-105,3,
-106,2,
-107,4,
-108,1,
-109,4,
-110,2,
-111,2,
-112,1,
-113,3,
-114,2,
-115,3,
-116,1,294
-117,1,
-118,1,
-119,2,
-120,1,
-121,3,
-122,1,
-123,1,
-124,1,
-125,1,
-126,1,
-127,1,
-128,1,
-129,4,
-130,4,
-131,4,
-132,4,
-133,2,
-134,2,
-135,2,
-136,4,
-137,4,
-138,4,
-139,2,
-140,1,
-141,2,
-142,6,
-143,1,
-144,5,
-145,4,
-146,6,
-147,2,
-148,3,
-149,4,
-150,3,
-151,1,
-152,2,
-153,1,
-154,2,
-155,2,
-156,5,
-157,6,
-158,4,295
-159,6,
-160,1,
-161,6,
-162,2,
-163,2,
-164,3,
-165,3,
-166,4,
-167,4,
-168,5,
-169,5,
-170,6,
-171,3,
-172,3,
-173,2,
-174,6,
-175,2,
-176,5,
-177,5,
-178,5,
-179,2,
-180,4,
-181,3,
-182,3,
-183,1,
-184,3,297
-185,4,
-186,2,
-187,4,
-188,5,
-189,1,
-190,3,
-191,1,
-192,1,
-193,1,
-194,1,
-195,1,
-196,1,
-197,1,
-198,1,
-199,1,
-200,1,
-201,1,
-202,1,
-203,4,
-204,4,
-205,4,
-206,4,
-207,2,
-208,4,
-209,4,
-211,5,
-212,5,
-213,2,
-214,4,
-215,2,
-216,2,
-217,2,
-218,2,
-219,6,
-220,2,
-221,3,
-223,2,
-224,2,
-228,4,
-229,2,
-230,1,
-232,4,
-233,1,
-234,1,
-235,2,
-236,1,
-237,5,
-239,1,
-240,2,
-241,1,
-242,1,
-243,1,
-244,1,
-245,1,
-246,1,
-247,1,
-248,1,
-249,1,
-250,1,
-251,1,
-252,1,
-253,4,
-254,1,
-255,1,
-256,4,
-257,4,
-258,4,
-259,2,
-260,4,
-261,2,
-262,2,
-263,2,
-264,2,
-265,3,
-266,4,
-267,2,
-268,4,
-269,2,
-270,2,
-271,3,
-272,4,
-273,4,
-274,2,
-275,2,
-276,4,
-277,4,
-278,2,
-279,2,
-280,2,
-281,4,
-282,4,
-283,2,
-284,2,
-285,2,
-286,2,
-287,2,
-288,2,
-289,2,
-290,2,
-291,4,
-292,3,
-293,4,
-294,4,
-295,2,
-296,1,
-297,2,
-298,2,
-299,2,
-300,2,
-301,2,
-302,3,
-303,2,
-304,2,
-305,4,
-306,1,
-307,2,
-308,4,
-309,1,
-310,2,
-311,2,
-312,2,
-313,2,
-314,4,
-315,2,
-316,2,
-317,2,
-318,2,
-319,1,
-320,1,
-321,2,
-322,2,
-323,1,
-324,1,
-325,1,
-326,1,
-327,1,
-328,1,
-329,1,
-330,1,
-331,1,
-332,1,
-333,1,
-334,1,
-335,1,
-336,1,
+id,baby_trigger_item_id
+1,
+2,
+3,
+4,
+5,
+6,
+7,
+8,
+9,
+10,
+11,
+12,
+13,
+14,
+15,
+16,
+17,
+18,
+19,
+20,
+21,
+22,
+23,
+24,
+25,
+26,
+27,
+28,
+29,
+30,
+31,
+32,
+33,
+34,
+35,
+36,
+37,
+38,
+39,
+40,
+41,
+42,
+43,
+44,
+45,
+46,
+47,
+48,
+49,
+50,
+51,296
+52,
+53,
+54,
+55,
+56,
+57,291
+58,
+59,
+60,
+61,
+62,
+63,
+64,
+65,
+66,
+67,
+68,
+69,
+70,
+71,
+72,293
+73,
+74,
+75,
+76,
+77,
+78,
+79,
+80,
+81,
+82,
+83,
+84,
+85,
+86,
+87,
+88,
+89,
+90,231
+91,292
+92,
+93,
+94,
+95,
+96,
+97,
+98,
+99,
+100,232
+101,
+102,
+103,
+104,
+105,
+106,
+107,
+108,
+109,
+110,
+111,
+112,
+113,
+114,
+115,
+116,294
+117,
+118,
+119,
+120,
+121,
+122,
+123,
+124,
+125,
+126,
+127,
+128,
+129,
+130,
+131,
+132,
+133,
+134,
+135,
+136,
+137,
+138,
+139,
+140,
+141,
+142,
+143,
+144,
+145,
+146,
+147,
+148,
+149,
+150,
+151,
+152,
+153,
+154,
+155,
+156,
+157,
+158,295
+159,
+160,
+161,
+162,
+163,
+164,
+165,
+166,
+167,
+168,
+169,
+170,
+171,
+172,
+173,
+174,
+175,
+176,
+177,
+178,
+179,
+180,
+181,
+182,
+183,
+184,297
+185,
+186,
+187,
+188,
+189,
+190,
+191,
+192,
+193,
+194,
+195,
+196,
+197,
+198,
+199,
+200,
+201,
+202,
+203,
+204,
+205,
+206,
+207,
+208,
+209,
+211,
+212,
+213,
+214,
+215,
+216,
+217,
+218,
+219,
+220,
+221,
+223,
+224,
+228,
+229,
+230,
+232,
+233,
+234,
+235,
+236,
+237,
+239,
+240,
+241,
+242,
+243,
+244,
+245,
+246,
+247,
+248,
+249,
+250,
+252,
+253,
+254,
+255,
+256,
+257,
+258,
+259,
+260,
+261,
+262,
+263,
+264,
+265,
+266,
+267,
+268,
+269,
+270,
+271,
+272,
+273,
+274,
+275,
+276,
+277,
+278,
+279,
+280,
+281,
+282,
+283,
+284,
+285,
+286,
+287,
+288,
+289,
+290,
+291,
+292,
+293,
+294,
+295,
+296,
+297,
+298,
+299,
+300,
+301,
+302,
+303,
+304,
+305,
+306,
+307,
+308,
+309,
+310,
+311,
+312,
+313,
+314,
+315,
+316,
+317,
+318,
+319,
+320,
+321,
+322,
+323,
+324,
+325,
+326,
+327,
+328,
+329,
+330,
+331,
+332,
+333,
+334,
+335,
+336,
diff --git a/pokedex/data/csv/pokemon.csv b/pokedex/data/csv/pokemon.csv
index c68a6bf..f553625 100644
--- a/pokedex/data/csv/pokemon.csv
+++ b/pokedex/data/csv/pokemon.csv
@@ -1,668 +1,668 @@
-id,identifier,generation_id,evolution_chain_id,evolves_from_pokemon_id,height,weight,color_id,pokemon_shape_id,habitat_id,gender_rate,capture_rate,base_experience,base_happiness,is_baby,hatch_counter,has_gender_differences,order
-1,bulbasaur,1,1,,7,69,5,8,3,1,45,64,70,0,20,0,1
-2,ivysaur,1,1,1,10,130,5,8,3,1,45,141,70,0,20,0,2
-3,venusaur,1,1,2,20,1000,5,8,3,1,45,208,70,0,20,1,3
-4,charmander,1,2,,6,85,8,6,4,1,45,65,70,0,20,0,4
-5,charmeleon,1,2,4,11,190,8,6,4,1,45,142,70,0,20,0,5
-6,charizard,1,2,5,17,905,8,6,4,1,45,209,70,0,20,0,6
-7,squirtle,1,3,,5,90,2,6,9,1,45,66,70,0,20,0,7
-8,wartortle,1,3,7,10,225,2,6,9,1,45,143,70,0,20,0,8
-9,blastoise,1,3,8,16,855,2,6,9,1,45,210,70,0,20,0,9
-10,caterpie,1,4,,3,29,5,2,2,4,255,53,70,0,15,0,10
-11,metapod,1,4,10,7,99,5,2,2,4,120,72,70,0,15,0,11
-12,butterfree,1,4,11,11,320,9,13,2,4,45,160,70,0,15,1,12
-13,weedle,1,5,,3,32,3,2,2,4,255,52,70,0,15,0,13
-14,kakuna,1,5,13,6,100,10,2,2,4,120,71,70,0,15,0,14
-15,beedrill,1,5,14,10,295,10,13,2,4,45,159,70,0,15,0,15
-16,pidgey,1,6,,3,18,3,9,2,4,255,55,70,0,15,0,16
-17,pidgeotto,1,6,16,11,300,3,9,2,4,120,113,70,0,15,0,17
-18,pidgeot,1,6,17,15,395,3,9,2,4,45,172,70,0,15,0,18
-19,rattata,1,7,,3,35,7,8,3,4,255,57,70,0,15,1,19
-20,raticate,1,7,19,7,185,3,8,3,4,127,116,70,0,15,1,20
-21,spearow,1,8,,3,20,3,9,6,4,255,58,70,0,15,0,21
-22,fearow,1,8,21,12,380,3,9,6,4,90,162,70,0,15,0,22
-23,ekans,1,9,,20,69,7,2,3,4,255,62,70,0,20,0,23
-24,arbok,1,9,23,35,650,7,2,3,4,90,147,70,0,20,0,24
-25,pikachu,1,10,172,4,60,10,8,2,4,190,82,70,0,10,1,26
-26,raichu,1,10,25,8,300,10,6,2,4,75,122,70,0,10,1,27
-27,sandshrew,1,11,,6,120,10,6,6,4,255,93,70,0,20,0,28
-28,sandslash,1,11,27,10,295,10,6,6,4,90,163,70,0,20,0,29
-29,nidoran-f,1,12,,4,70,2,8,3,8,235,59,70,0,20,0,30
-30,nidorina,1,12,29,8,200,2,8,3,8,120,117,70,0,20,0,31
-31,nidoqueen,1,12,30,13,600,2,6,3,8,45,194,70,0,20,0,32
-32,nidoran-m,1,13,,5,90,7,8,3,0,235,60,70,0,20,0,33
-33,nidorino,1,13,32,9,195,7,8,3,0,120,118,70,0,20,0,34
-34,nidoking,1,13,33,14,620,7,6,3,0,45,195,70,0,20,0,35
-35,clefairy,1,14,173,6,75,6,6,4,6,150,68,140,0,10,0,37
-36,clefable,1,14,35,13,400,6,6,4,6,25,129,140,0,10,0,38
-37,vulpix,1,15,,6,99,3,8,3,6,190,63,70,0,20,0,39
-38,ninetales,1,15,37,11,199,10,8,3,6,75,178,70,0,20,0,40
-39,jigglypuff,1,16,174,5,55,6,12,3,6,170,76,70,0,10,0,42
-40,wigglytuff,1,16,39,10,120,6,12,3,6,50,109,70,0,10,0,43
-41,zubat,1,17,,8,75,7,9,1,4,255,54,70,0,15,1,44
-42,golbat,1,17,41,16,550,7,9,1,4,90,171,70,0,15,1,45
-43,oddish,1,18,,5,54,2,7,3,4,255,78,70,0,20,0,47
-44,gloom,1,18,43,8,86,2,12,3,4,120,132,70,0,20,1,48
-45,vileplume,1,18,44,12,186,8,12,3,4,45,184,70,0,20,1,49
-46,paras,1,19,,3,54,8,14,2,4,190,70,70,0,20,0,51
-47,parasect,1,19,46,10,295,8,14,2,4,75,128,70,0,20,0,52
-48,venonat,1,20,,10,300,7,12,2,4,190,75,70,0,20,0,53
-49,venomoth,1,20,48,15,125,7,13,2,4,75,138,70,0,20,0,54
-50,diglett,1,21,,2,8,3,5,1,4,255,81,70,0,20,0,55
-51,dugtrio,1,21,50,7,333,3,11,1,4,50,153,70,0,20,0,56
-52,meowth,1,22,,4,42,10,8,8,4,255,69,70,0,20,0,57
-53,persian,1,22,52,10,320,10,8,8,4,90,148,70,0,20,0,58
-54,psyduck,1,23,,8,196,10,6,9,4,190,80,70,0,20,0,59
-55,golduck,1,23,54,17,766,2,6,9,4,75,174,70,0,20,0,60
-56,mankey,1,24,,5,280,3,6,4,4,190,74,70,0,20,0,61
-57,primeape,1,24,56,10,320,3,6,4,4,75,149,70,0,20,0,62
-58,growlithe,1,25,,7,190,3,8,3,2,190,91,70,0,20,0,63
-59,arcanine,1,25,58,19,1550,3,8,3,2,75,213,70,0,20,0,64
-60,poliwag,1,26,,6,124,2,7,9,4,255,77,70,0,20,0,65
-61,poliwhirl,1,26,60,10,200,2,12,9,4,120,131,70,0,20,0,66
-62,poliwrath,1,26,61,13,540,2,12,9,4,45,185,70,0,20,0,67
-63,abra,1,27,,9,195,3,6,8,2,200,75,70,0,20,0,69
-64,kadabra,1,27,63,13,565,3,6,8,2,100,145,70,0,20,1,70
-65,alakazam,1,27,64,15,480,3,12,8,2,50,186,70,0,20,1,71
-66,machop,1,28,,8,195,4,6,4,2,180,75,70,0,20,0,72
-67,machoke,1,28,66,15,705,4,12,4,2,90,146,70,0,20,0,73
-68,machamp,1,28,67,16,1300,4,12,4,2,45,193,70,0,20,0,74
-69,bellsprout,1,29,,7,40,5,12,2,4,255,84,70,0,20,0,75
-70,weepinbell,1,29,69,10,64,5,5,2,4,120,151,70,0,20,0,76
-71,victreebel,1,29,70,17,155,5,5,2,4,45,191,70,0,20,0,77
-72,tentacool,1,30,,9,455,2,10,7,4,190,105,70,0,20,0,78
-73,tentacruel,1,30,72,16,550,2,10,7,4,60,205,70,0,20,0,79
-74,geodude,1,31,,4,200,3,4,4,4,255,73,70,0,15,0,80
-75,graveler,1,31,74,10,1050,3,12,4,4,120,134,70,0,15,0,81
-76,golem,1,31,75,14,3000,3,12,4,4,45,177,70,0,15,0,82
-77,ponyta,1,32,,10,300,10,8,3,4,190,152,70,0,20,0,83
-78,rapidash,1,32,77,17,950,10,8,3,4,60,192,70,0,20,0,84
-79,slowpoke,1,33,,12,360,6,8,9,4,190,99,70,0,20,0,85
-80,slowbro,1,33,79,16,785,6,6,9,4,75,164,70,0,20,0,86
-81,magnemite,1,34,,3,60,4,4,6,-1,190,89,70,0,20,0,88
-82,magneton,1,34,81,10,600,4,11,6,-1,60,161,70,0,20,0,89
-83,farfetchd,1,35,,8,150,3,9,3,4,45,94,70,0,20,0,91
-84,doduo,1,36,,14,392,3,7,3,4,190,96,70,0,20,1,92
-85,dodrio,1,36,84,18,852,3,7,3,4,45,158,70,0,20,1,93
-86,seel,1,37,,11,900,9,3,7,4,190,100,70,0,20,0,94
-87,dewgong,1,37,86,17,1200,9,3,7,4,75,176,70,0,20,0,95
-88,grimer,1,38,,9,300,7,4,8,4,190,90,70,0,20,0,96
-89,muk,1,38,88,12,300,7,4,8,4,75,157,70,0,20,0,97
-90,shellder,1,39,,3,40,7,1,7,4,190,97,70,0,20,0,98
-91,cloyster,1,39,90,15,1325,7,1,7,4,60,203,70,0,20,0,99
-92,gastly,1,40,,13,1,7,1,1,4,190,95,70,0,20,0,100
-93,haunter,1,40,92,16,1,7,4,1,4,90,126,70,0,20,0,101
-94,gengar,1,40,93,15,405,7,6,1,4,45,190,70,0,20,0,102
-95,onix,1,41,,88,2100,4,2,1,4,45,108,70,0,25,0,103
-96,drowzee,1,42,,10,324,10,12,3,4,190,102,70,0,20,0,105
-97,hypno,1,42,96,16,756,10,12,3,4,75,165,70,0,20,1,106
-98,krabby,1,43,,4,65,8,14,9,4,225,115,70,0,20,0,107
-99,kingler,1,43,98,13,600,8,14,9,4,60,206,70,0,20,0,108
-100,voltorb,1,44,,5,104,8,1,8,-1,190,103,70,0,20,0,109
-101,electrode,1,44,100,12,666,8,1,8,-1,60,150,70,0,20,0,110
-102,exeggcute,1,45,,4,25,6,11,2,4,90,98,70,0,20,0,111
-103,exeggutor,1,45,102,20,1200,10,7,2,4,45,212,70,0,20,0,112
-104,cubone,1,46,,4,65,3,6,4,4,190,87,70,0,20,0,113
-105,marowak,1,46,104,10,450,3,6,4,4,75,124,70,0,20,0,114
-106,hitmonlee,1,47,236,15,498,3,12,8,0,45,139,70,0,25,0,116
-107,hitmonchan,1,47,236,14,502,3,12,8,0,45,140,70,0,25,0,117
-108,lickitung,1,48,,12,655,6,6,3,4,45,127,70,0,20,0,119
-109,koffing,1,49,,6,10,7,1,8,4,190,114,70,0,20,0,121
-110,weezing,1,49,109,12,95,7,11,8,4,60,173,70,0,20,0,122
-111,rhyhorn,1,50,,10,1150,4,8,6,4,120,135,70,0,20,1,123
-112,rhydon,1,50,111,19,1200,4,6,6,4,60,204,70,0,20,1,124
-113,chansey,1,51,440,11,346,6,6,8,8,30,255,140,0,40,0,127
-114,tangela,1,52,,10,350,2,7,3,4,45,166,70,0,20,0,129
-115,kangaskhan,1,53,,22,800,3,6,3,8,45,175,70,0,20,0,131
-116,horsea,1,54,,4,80,2,5,7,4,225,83,70,0,20,0,132
-117,seadra,1,54,116,12,250,2,5,7,4,75,155,70,0,20,0,133
-118,goldeen,1,55,,6,150,8,3,9,4,225,111,70,0,20,1,135
-119,seaking,1,55,118,13,390,8,3,9,4,60,170,70,0,20,1,136
-120,staryu,1,56,,8,345,3,5,7,-1,225,106,70,0,20,0,137
-121,starmie,1,56,120,11,800,7,5,7,-1,60,207,70,0,20,0,138
-122,mr-mime,1,57,439,13,545,6,12,8,4,45,136,70,0,25,0,140
-123,scyther,1,58,,15,560,5,13,3,4,45,187,70,0,25,1,141
-124,jynx,1,59,238,14,406,8,12,8,8,45,137,70,0,25,0,144
-125,electabuzz,1,60,239,11,300,10,6,3,2,45,156,70,0,25,0,146
-126,magmar,1,61,240,13,445,8,6,4,2,45,167,70,0,25,0,149
-127,pinsir,1,62,,15,550,3,12,2,4,45,200,70,0,25,0,151
-128,tauros,1,63,,14,884,3,8,3,0,45,211,70,0,20,0,152
-129,magikarp,1,64,,9,100,8,3,9,4,255,20,70,0,5,1,153
-130,gyarados,1,64,129,65,2350,2,2,9,4,45,214,70,0,5,1,154
-131,lapras,1,65,,25,2200,2,3,7,4,45,219,70,0,40,0,155
-132,ditto,1,66,,3,40,7,1,8,-1,35,61,70,0,20,0,156
-133,eevee,1,67,,3,65,3,8,8,1,45,92,70,0,35,0,157
-134,vaporeon,1,67,133,10,290,2,8,8,1,45,196,70,0,35,0,158
-135,jolteon,1,67,133,8,245,10,8,8,1,45,197,70,0,35,0,159
-136,flareon,1,67,133,9,250,8,8,8,1,45,198,70,0,35,0,160
-137,porygon,1,68,,8,365,6,7,8,-1,45,130,70,0,20,0,165
-138,omanyte,1,69,,4,75,2,10,7,1,45,99,70,0,30,0,168
-139,omastar,1,69,138,10,350,2,10,7,1,45,199,70,0,30,0,169
-140,kabuto,1,70,,5,115,3,14,7,1,45,99,70,0,30,0,170
-141,kabutops,1,70,140,13,405,3,6,7,1,45,199,70,0,30,0,171
-142,aerodactyl,1,71,,18,590,7,9,4,1,45,202,70,0,35,0,172
-143,snorlax,1,72,446,21,4600,1,12,4,1,25,154,70,0,40,0,174
-144,articuno,1,73,,17,554,2,9,5,-1,3,215,35,0,80,0,175
-145,zapdos,1,74,,16,526,10,9,5,-1,3,216,35,0,80,0,176
-146,moltres,1,75,,20,600,10,9,5,-1,3,217,35,0,80,0,177
-147,dratini,1,76,,18,33,2,2,9,4,45,67,35,0,40,0,178
-148,dragonair,1,76,147,40,165,2,2,9,4,45,144,35,0,40,0,179
-149,dragonite,1,76,148,22,2100,3,6,9,4,45,218,35,0,40,0,180
-150,mewtwo,1,77,,20,1220,7,6,5,-1,3,220,0,0,120,0,181
-151,mew,1,78,,4,40,6,6,5,-1,45,64,100,0,120,0,182
-152,chikorita,2,79,,9,64,5,8,3,1,45,64,70,0,20,0,183
-153,bayleef,2,79,152,12,158,5,8,3,1,45,141,70,0,20,0,184
-154,meganium,2,79,153,18,1005,5,8,3,1,45,208,70,0,20,1,185
-155,cyndaquil,2,80,,5,79,10,12,3,1,45,65,70,0,20,0,186
-156,quilava,2,80,155,9,190,10,8,3,1,45,142,70,0,20,0,187
-157,typhlosion,2,80,156,17,795,10,8,3,1,45,209,70,0,20,0,188
-158,totodile,2,81,,6,95,2,6,9,1,45,66,70,0,20,0,189
-159,croconaw,2,81,158,11,250,2,6,9,1,45,143,70,0,20,0,190
-160,feraligatr,2,81,159,23,888,2,6,9,1,45,210,70,0,20,0,191
-161,sentret,2,82,,8,60,3,8,3,4,255,57,70,0,15,0,192
-162,furret,2,82,161,18,325,3,8,3,4,90,116,70,0,15,0,193
-163,hoothoot,2,83,,7,212,3,9,2,4,255,58,70,0,15,0,194
-164,noctowl,2,83,163,16,408,3,9,2,4,90,162,70,0,15,0,195
-165,ledyba,2,84,,10,108,8,9,2,4,255,54,70,0,15,1,196
-166,ledian,2,84,165,14,356,8,9,2,4,90,134,70,0,15,1,197
-167,spinarak,2,85,,5,85,5,14,2,4,255,54,70,0,15,0,198
-168,ariados,2,85,167,11,335,8,14,2,4,90,134,70,0,15,0,199
-169,crobat,2,17,42,18,750,7,13,1,4,90,204,70,0,15,0,46
-170,chinchou,2,86,,5,120,2,3,7,4,190,90,70,0,20,0,200
-171,lanturn,2,86,170,12,225,2,3,7,4,75,156,70,0,20,0,201
-172,pichu,2,10,,3,20,10,8,2,4,190,42,70,1,10,0,25
-173,cleffa,2,14,,3,30,6,6,4,6,150,37,140,1,10,0,36
-174,igglybuff,2,16,,3,10,6,12,3,6,170,39,70,1,10,0,41
-175,togepi,2,87,,3,15,9,12,2,1,190,74,70,1,10,0,202
-176,togetic,2,87,175,6,32,9,12,2,1,75,114,70,0,10,0,203
-177,natu,2,88,,2,20,5,9,2,4,190,73,70,0,20,0,205
-178,xatu,2,88,177,15,150,5,9,2,4,75,171,70,0,20,1,206
-179,mareep,2,89,,6,78,9,8,3,4,235,59,70,0,20,0,207
-180,flaaffy,2,89,179,8,133,6,6,3,4,120,117,70,0,20,0,208
-181,ampharos,2,89,180,14,615,10,6,3,4,45,194,70,0,20,0,209
-182,bellossom,2,18,44,4,58,5,12,3,4,45,184,70,0,20,0,50
-183,marill,2,90,298,4,85,2,6,9,4,190,58,70,0,10,0,211
-184,azumarill,2,90,183,8,285,2,6,9,4,75,153,70,0,10,0,212
-185,sudowoodo,2,91,438,12,380,3,12,2,4,65,135,70,0,20,1,214
-186,politoed,2,26,61,11,339,5,12,9,4,45,185,70,0,20,1,68
-187,hoppip,2,92,,4,5,6,6,3,4,255,74,70,0,20,0,215
-188,skiploom,2,92,187,6,10,5,6,3,4,120,136,70,0,20,0,216
-189,jumpluff,2,92,188,8,30,2,6,3,4,45,176,70,0,20,0,217
-190,aipom,2,93,,8,115,7,6,2,4,45,94,70,0,20,1,218
-191,sunkern,2,94,,3,18,10,1,3,4,235,52,70,0,20,0,220
-192,sunflora,2,94,191,8,85,10,12,3,4,120,146,70,0,20,0,221
-193,yanma,2,95,,12,380,8,13,2,4,75,147,70,0,20,0,222
-194,wooper,2,96,,4,85,2,7,9,4,255,52,70,0,20,1,224
-195,quagsire,2,96,194,14,750,2,6,9,4,90,137,70,0,20,1,225
-196,espeon,2,67,133,9,265,7,8,8,1,45,197,70,0,35,0,161
-197,umbreon,2,67,133,10,270,1,8,8,1,45,197,35,0,35,0,162
-198,murkrow,2,97,,5,21,1,9,2,4,30,107,35,0,20,1,226
-199,slowking,2,33,79,20,795,6,6,9,4,70,164,70,0,20,0,87
-200,misdreavus,2,98,,7,10,4,1,1,4,45,147,35,0,25,0,228
-201,unown,2,99,,5,50,1,1,5,-1,225,61,70,0,40,0,230
-202,wobbuffet,2,100,360,13,285,2,5,1,4,45,177,70,0,20,1,232
-203,girafarig,2,101,,15,415,10,8,3,4,60,149,70,0,20,1,233
-204,pineco,2,102,,6,72,4,1,2,4,190,60,70,0,20,0,234
-205,forretress,2,102,204,12,1258,7,1,2,4,75,118,70,0,20,0,235
-206,dunsparce,2,103,,15,140,10,2,1,4,190,125,70,0,20,0,236
-207,gligar,2,104,,11,648,7,9,4,4,60,108,70,0,20,1,237
-208,steelix,2,41,95,92,4000,4,2,1,4,25,196,70,0,25,1,104
-209,snubbull,2,105,,6,78,6,12,8,6,190,63,70,0,20,0,239
-210,granbull,2,105,209,14,487,7,6,8,6,75,178,70,0,20,0,240
-211,qwilfish,2,106,,5,39,4,3,7,4,45,100,70,0,20,0,241
-212,scizor,2,58,123,18,1180,8,13,3,4,25,200,70,0,25,1,142
-213,shuckle,2,107,,6,205,10,14,4,4,190,80,70,0,20,0,242
-214,heracross,2,108,,15,540,2,12,2,4,45,200,70,0,25,1,243
-215,sneasel,2,109,,9,280,1,6,2,4,60,132,35,0,20,1,244
-216,teddiursa,2,110,,6,88,3,6,4,4,120,124,70,0,20,0,246
-217,ursaring,2,110,216,18,1258,3,6,4,4,60,189,70,0,20,1,247
-218,slugma,2,111,,7,350,8,2,4,4,190,78,70,0,20,0,248
-219,magcargo,2,111,218,8,550,8,2,4,4,75,154,70,0,20,0,249
-220,swinub,2,112,,4,65,3,8,1,4,225,78,70,0,20,0,250
-221,piloswine,2,112,220,11,558,3,8,1,4,75,160,70,0,20,1,251
-222,corsola,2,113,,6,50,6,14,7,6,60,113,70,0,20,0,253
-223,remoraid,2,114,,6,120,4,3,7,4,190,78,70,0,20,0,254
-224,octillery,2,114,223,9,285,8,10,7,4,75,164,70,0,20,1,255
-225,delibird,2,115,,9,160,8,9,4,4,45,183,70,0,20,0,256
-226,mantine,2,116,458,21,2200,7,9,7,4,25,168,70,0,25,0,258
-227,skarmory,2,117,,17,505,4,9,6,4,25,168,70,0,25,0,259
-228,houndour,2,118,,6,108,1,8,6,4,120,114,35,0,20,0,260
-229,houndoom,2,118,228,14,350,1,8,6,4,45,204,35,0,20,1,261
-230,kingdra,2,54,117,18,1520,2,5,7,4,45,207,70,0,20,0,134
-231,phanpy,2,119,,5,335,2,8,6,4,120,124,70,0,20,0,262
-232,donphan,2,119,231,11,1200,4,8,6,4,60,189,70,0,20,1,263
-233,porygon2,2,68,137,6,325,8,7,8,-1,45,180,70,0,20,0,166
-234,stantler,2,120,,14,712,3,8,2,4,45,165,70,0,20,0,264
-235,smeargle,2,121,,12,580,9,6,8,4,45,106,70,0,20,0,265
-236,tyrogue,2,47,,7,210,7,12,8,0,75,91,70,1,25,0,115
-237,hitmontop,2,47,236,14,480,3,6,8,0,45,138,70,0,25,0,118
-238,smoochum,2,59,,4,60,6,12,8,8,45,87,70,1,25,0,143
-239,elekid,2,60,,6,235,10,12,3,2,45,106,70,1,25,0,145
-240,magby,2,61,,7,214,8,6,4,2,45,117,70,1,25,0,148
-241,miltank,2,122,,12,755,6,6,3,8,45,200,70,0,20,0,266
-242,blissey,2,51,113,15,468,6,12,8,8,30,255,140,0,40,0,128
-243,raikou,2,123,,19,1780,10,8,3,-1,3,216,35,0,80,0,267
-244,entei,2,124,,21,1980,3,8,3,-1,3,217,35,0,80,0,268
-245,suicune,2,125,,20,1870,2,8,3,-1,3,215,35,0,80,0,269
-246,larvitar,2,126,,6,720,5,6,4,4,45,67,35,0,40,0,270
-247,pupitar,2,126,246,12,1520,4,2,4,4,45,144,35,0,40,0,271
-248,tyranitar,2,126,247,20,2020,5,6,4,4,45,218,35,0,40,0,272
-249,lugia,2,127,,52,2160,9,9,5,-1,3,220,0,0,120,0,273
-250,ho-oh,2,128,,38,1990,8,9,5,-1,3,220,0,0,120,0,274
-251,celebi,2,129,,6,50,5,12,2,-1,45,64,100,0,120,0,275
-252,treecko,3,130,,5,50,5,6,2,1,45,65,70,0,20,0,276
-253,grovyle,3,130,252,9,216,5,6,2,1,45,141,70,0,20,0,277
-254,sceptile,3,130,253,17,522,5,6,2,1,45,208,70,0,20,0,278
-255,torchic,3,131,,4,25,8,7,3,1,45,65,70,0,20,1,279
-256,combusken,3,131,255,9,195,8,6,3,1,45,142,70,0,20,1,280
-257,blaziken,3,131,256,19,520,8,6,3,1,45,209,70,0,20,1,281
-258,mudkip,3,132,,4,76,2,8,9,1,45,65,70,0,20,0,282
-259,marshtomp,3,132,258,7,280,2,6,9,1,45,143,70,0,20,0,283
-260,swampert,3,132,259,15,819,2,6,9,1,45,210,70,0,20,0,284
-261,poochyena,3,133,,5,136,4,8,3,4,255,55,70,0,15,0,285
-262,mightyena,3,133,261,10,370,4,8,3,4,127,128,70,0,15,0,286
-263,zigzagoon,3,134,,4,175,3,8,3,4,255,60,70,0,15,0,287
-264,linoone,3,134,263,5,325,9,8,3,4,90,128,70,0,15,0,288
-265,wurmple,3,135,,3,36,8,2,2,4,255,54,70,0,15,0,289
-266,silcoon,3,135,265,6,100,9,1,2,4,120,72,70,0,15,0,290
-267,beautifly,3,135,266,10,284,10,13,2,4,45,161,70,0,15,1,291
-268,cascoon,3,135,265,7,115,7,1,2,4,120,72,70,0,15,0,292
-269,dustox,3,135,268,12,316,5,13,2,4,45,161,70,0,15,1,293
-270,lotad,3,136,,5,26,5,14,9,4,255,74,70,0,15,0,294
-271,lombre,3,136,270,12,325,5,12,9,4,120,141,70,0,15,0,295
-272,ludicolo,3,136,271,15,550,5,12,9,4,45,181,70,0,15,1,296
-273,seedot,3,137,,5,40,3,7,2,4,255,74,70,0,15,0,297
-274,nuzleaf,3,137,273,10,280,3,12,2,4,120,141,70,0,15,1,298
-275,shiftry,3,137,274,13,596,3,12,2,4,45,181,70,0,15,1,299
-276,taillow,3,138,,3,23,2,9,3,4,200,59,70,0,15,0,300
-277,swellow,3,138,276,7,198,2,9,3,4,45,162,70,0,15,0,301
-278,wingull,3,139,,6,95,9,9,7,4,190,64,70,0,20,0,302
-279,pelipper,3,139,278,12,280,10,9,7,4,45,164,70,0,20,0,303
-280,ralts,3,140,,4,66,9,12,8,4,235,70,35,0,20,0,304
-281,kirlia,3,140,280,8,202,9,12,8,4,120,140,35,0,20,0,305
-282,gardevoir,3,140,281,16,484,9,12,8,4,45,208,35,0,20,0,306
-283,surskit,3,141,,5,17,2,14,9,4,200,63,70,0,15,0,308
-284,masquerain,3,141,283,8,36,2,13,9,4,75,128,70,0,15,0,309
-285,shroomish,3,142,,4,45,3,7,2,4,255,65,70,0,15,0,310
-286,breloom,3,142,285,12,392,5,6,2,4,90,165,70,0,15,0,311
-287,slakoth,3,143,,8,240,3,8,2,4,255,83,70,0,15,0,312
-288,vigoroth,3,143,287,14,465,9,6,2,4,120,126,70,0,15,0,313
-289,slaking,3,143,288,20,1305,3,12,2,4,45,210,70,0,15,0,314
-290,nincada,3,144,,5,55,4,14,2,4,255,65,70,0,15,0,315
-291,ninjask,3,144,290,8,120,10,13,2,4,120,155,70,0,15,0,316
-292,shedinja,3,144,290,8,12,3,5,2,-1,45,95,70,0,15,0,317
-293,whismur,3,145,,6,163,6,6,1,4,190,68,70,0,20,0,318
-294,loudred,3,145,293,10,405,2,6,1,4,120,126,70,0,20,0,319
-295,exploud,3,145,294,15,840,2,6,1,4,45,184,70,0,20,0,320
-296,makuhita,3,146,,10,864,10,12,4,2,180,87,70,0,20,0,321
-297,hariyama,3,146,296,23,2538,3,12,4,2,200,184,70,0,20,0,322
-298,azurill,3,90,,2,20,2,7,9,6,150,33,70,1,10,0,210
-299,nosepass,3,147,,10,970,4,12,1,4,255,108,70,0,20,0,323
-300,skitty,3,148,,6,110,6,8,2,6,255,65,70,0,15,0,325
-301,delcatty,3,148,300,11,326,7,8,2,6,60,138,70,0,15,0,326
-302,sableye,3,149,,5,110,7,12,1,4,45,98,35,0,25,0,327
-303,mawile,3,150,,6,115,1,12,1,4,45,98,70,0,20,0,328
-304,aron,3,151,,4,600,4,8,4,4,180,96,35,0,35,0,329
-305,lairon,3,151,304,9,1200,4,8,4,4,90,152,35,0,35,0,330
-306,aggron,3,151,305,21,3600,4,6,4,4,45,205,35,0,35,0,331
-307,meditite,3,152,,6,112,2,12,4,4,180,91,70,0,20,1,332
-308,medicham,3,152,307,13,315,8,12,4,4,90,153,70,0,20,1,333
-309,electrike,3,153,,6,152,5,8,3,4,120,104,70,0,20,0,334
-310,manectric,3,153,309,15,402,10,8,3,4,45,168,70,0,20,0,335
-311,plusle,3,154,,4,42,10,6,3,4,200,120,70,0,20,0,336
-312,minun,3,155,,4,42,10,6,3,4,200,120,70,0,20,0,337
-313,volbeat,3,156,,7,177,4,6,2,0,150,146,70,0,15,0,338
-314,illumise,3,157,,6,177,7,12,2,8,150,146,70,0,15,0,339
-315,roselia,3,158,406,3,20,5,12,3,4,150,152,70,0,20,1,341
-316,gulpin,3,159,,4,103,5,4,3,4,225,75,70,0,20,1,343
-317,swalot,3,159,316,17,800,7,4,3,4,75,168,70,0,20,1,344
-318,carvanha,3,160,,8,208,8,3,7,4,225,88,35,0,20,0,345
-319,sharpedo,3,160,318,18,888,2,3,7,4,60,175,35,0,20,0,346
-320,wailmer,3,161,,20,1300,2,3,7,4,125,137,70,0,40,0,347
-321,wailord,3,161,320,145,3980,2,3,7,4,60,206,70,0,40,0,348
-322,numel,3,162,,7,240,10,8,4,4,255,88,70,0,20,1,349
-323,camerupt,3,162,322,19,2200,8,8,4,4,150,175,70,0,20,1,350
-324,torkoal,3,163,,5,804,3,8,4,4,90,161,70,0,20,0,351
-325,spoink,3,164,,7,306,1,4,4,4,255,89,70,0,20,0,352
-326,grumpig,3,164,325,9,715,7,6,4,4,60,164,70,0,20,0,353
-327,spinda,3,165,,11,50,3,6,4,4,255,85,70,0,15,0,354
-328,trapinch,3,166,,7,150,3,14,6,4,255,73,70,0,20,0,355
-329,vibrava,3,166,328,11,153,5,13,6,4,120,126,70,0,20,0,356
-330,flygon,3,166,329,20,820,5,9,6,4,45,197,70,0,20,0,357
-331,cacnea,3,167,,4,513,5,12,6,4,190,97,35,0,20,0,358
-332,cacturne,3,167,331,13,774,5,12,6,4,60,177,35,0,20,1,359
-333,swablu,3,168,,4,12,2,9,2,4,255,74,70,0,20,0,360
-334,altaria,3,168,333,11,206,2,9,2,4,45,188,70,0,20,0,361
-335,zangoose,3,169,,13,403,9,6,3,4,90,165,70,0,20,0,362
-336,seviper,3,170,,27,525,1,2,3,4,90,165,70,0,20,0,363
-337,lunatone,3,171,,10,1680,10,1,1,-1,45,150,70,0,25,0,364
-338,solrock,3,172,,12,1540,8,1,1,-1,45,150,70,0,25,0,365
-339,barboach,3,173,,4,19,4,3,9,4,190,92,70,0,20,0,366
-340,whiscash,3,173,339,9,236,2,3,9,4,75,158,70,0,20,0,367
-341,corphish,3,174,,6,115,8,14,9,4,205,111,70,0,15,0,368
-342,crawdaunt,3,174,341,11,328,8,14,9,4,155,161,70,0,15,0,369
-343,baltoy,3,175,,5,215,3,4,6,-1,255,58,70,0,20,0,370
-344,claydol,3,175,343,15,1080,1,4,6,-1,90,189,70,0,20,0,371
-345,lileep,3,176,,10,238,7,5,7,1,45,99,70,0,30,0,372
-346,cradily,3,176,345,15,604,5,5,7,1,45,199,70,0,30,0,373
-347,anorith,3,177,,7,125,4,14,9,1,45,99,70,0,30,0,374
-348,armaldo,3,177,347,15,682,4,6,9,1,45,199,70,0,30,0,375
-349,feebas,3,178,,6,74,3,3,9,4,255,61,70,0,20,0,376
-350,milotic,3,178,349,62,1620,6,2,9,4,60,213,70,0,20,1,377
-351,castform,3,179,,3,8,9,1,3,4,45,145,70,0,25,0,378
-352,kecleon,3,180,,10,220,5,6,2,4,200,132,70,0,20,0,382
-353,shuppet,3,181,,6,23,1,1,8,4,225,97,35,0,25,0,383
-354,banette,3,181,353,11,125,1,6,8,4,45,179,35,0,25,0,384
-355,duskull,3,182,,8,150,1,4,2,4,190,97,35,0,25,0,385
-356,dusclops,3,182,355,16,306,1,12,2,4,90,179,35,0,25,0,386
-357,tropius,3,183,,20,1000,5,8,2,4,200,169,70,0,25,0,388
-358,chimecho,3,184,433,6,10,2,4,3,4,45,147,70,0,25,0,390
-359,absol,3,185,,12,470,9,8,4,4,30,174,35,0,25,0,391
-360,wynaut,3,100,,6,140,2,6,1,4,125,44,70,1,20,0,231
-361,snorunt,3,186,,7,168,4,12,1,4,190,74,70,0,20,0,392
-362,glalie,3,186,361,15,2565,4,1,1,4,75,187,70,0,20,0,393
-363,spheal,3,187,,8,395,2,3,7,4,255,75,70,0,20,0,395
-364,sealeo,3,187,363,11,876,2,3,7,4,120,128,70,0,20,0,396
-365,walrein,3,187,364,14,1506,2,8,7,4,45,192,70,0,20,0,397
-366,clamperl,3,188,,4,525,2,1,7,4,255,142,70,0,20,0,398
-367,huntail,3,188,366,17,270,2,2,7,4,60,178,70,0,20,0,399
-368,gorebyss,3,188,366,18,226,6,2,7,4,60,178,70,0,20,0,400
-369,relicanth,3,189,,10,234,4,3,7,1,25,198,70,0,40,1,401
-370,luvdisc,3,190,,6,87,6,3,7,6,225,110,70,0,20,0,402
-371,bagon,3,191,,6,421,2,12,6,4,45,89,35,0,40,0,403
-372,shelgon,3,191,371,11,1105,9,8,6,4,45,144,35,0,40,0,404
-373,salamence,3,191,372,15,1026,2,8,6,4,45,218,35,0,40,0,405
-374,beldum,3,192,,6,952,2,5,6,-1,3,103,35,0,40,0,406
-375,metang,3,192,374,12,2025,2,4,6,-1,3,153,35,0,40,0,407
-376,metagross,3,192,375,16,5500,2,11,6,-1,3,210,35,0,40,0,408
-377,regirock,3,193,,17,2300,3,12,1,-1,3,217,35,0,80,0,409
-378,regice,3,194,,18,1750,2,12,1,-1,3,216,35,0,80,0,410
-379,registeel,3,195,,19,2050,4,12,1,-1,3,215,35,0,80,0,411
-380,latias,3,196,,14,400,8,9,9,8,3,211,90,0,120,0,412
-381,latios,3,197,,20,600,2,9,9,0,3,211,90,0,120,0,413
-382,kyogre,3,198,,45,3520,2,3,7,-1,5,218,0,0,120,0,414
-383,groudon,3,199,,35,9500,8,6,6,-1,5,218,0,0,120,0,415
-384,rayquaza,3,200,,70,2065,5,2,5,-1,3,220,0,0,120,0,416
-385,jirachi,3,201,,3,11,10,12,4,-1,3,215,100,0,120,0,417
-386,deoxys,3,202,,17,608,8,12,5,-1,3,215,0,0,120,0,418
-387,turtwig,4,203,,4,102,5,8,,1,45,64,70,0,20,0,422
-388,grotle,4,203,387,11,970,5,8,,1,45,141,70,0,20,0,423
-389,torterra,4,203,388,22,3100,5,8,,1,45,208,70,0,20,0,424
-390,chimchar,4,204,,5,62,3,6,,1,45,65,70,0,20,0,425
-391,monferno,4,204,390,9,220,3,6,,1,45,142,70,0,20,0,426
-392,infernape,4,204,391,12,550,3,6,,1,45,209,70,0,20,0,427
-393,piplup,4,205,,4,52,2,12,,1,45,66,70,0,20,0,428
-394,prinplup,4,205,393,8,230,2,6,,1,45,143,70,0,20,0,429
-395,empoleon,4,205,394,17,845,2,6,,1,45,210,70,0,20,0,430
-396,starly,4,206,,3,20,3,9,,4,255,56,70,0,15,1,431
-397,staravia,4,206,396,6,155,3,9,,4,120,113,70,0,15,1,432
-398,staraptor,4,206,397,12,249,3,9,,4,45,172,70,0,15,1,433
-399,bidoof,4,207,,5,200,3,8,,4,255,58,70,0,15,1,434
-400,bibarel,4,207,399,10,315,3,6,,4,127,116,70,0,15,1,435
-401,kricketot,4,208,,3,22,8,12,,4,255,54,70,0,15,1,436
-402,kricketune,4,208,401,10,255,8,13,,4,45,159,70,0,15,1,437
-403,shinx,4,209,,5,95,2,8,,4,235,60,70,0,20,1,438
-404,luxio,4,209,403,9,305,2,8,,4,120,117,100,0,20,1,439
-405,luxray,4,209,404,14,420,2,8,,4,45,194,70,0,20,1,440
-406,budew,4,158,,2,12,5,12,,4,255,68,70,1,20,0,340
-407,roserade,4,158,315,9,145,5,12,,4,75,204,70,0,20,1,342
-408,cranidos,4,211,,9,315,2,6,,1,45,99,70,0,30,0,441
-409,rampardos,4,211,408,16,1025,2,6,,1,45,199,70,0,30,0,442
-410,shieldon,4,212,,5,570,4,8,,1,45,99,70,0,30,0,443
-411,bastiodon,4,212,410,13,1495,4,8,,1,45,199,70,0,30,0,444
-412,burmy,4,213,,2,34,4,2,,4,120,61,70,0,15,0,445
-413,wormadam,4,213,412,5,65,4,2,,8,45,159,70,0,15,0,446
-414,mothim,4,213,412,9,233,10,13,,0,45,159,70,0,15,0,449
-415,combee,4,214,,3,55,10,11,,1,120,63,70,0,15,1,450
-416,vespiquen,4,214,415,12,385,10,9,,8,45,188,70,0,15,0,451
-417,pachirisu,4,215,,4,39,9,8,,4,200,120,100,0,10,1,452
-418,buizel,4,216,,7,295,3,8,,4,190,75,70,0,20,1,453
-419,floatzel,4,216,418,11,335,3,8,,4,75,178,70,0,20,1,454
-420,cherubi,4,217,,4,33,6,11,,4,190,68,70,0,20,0,455
-421,cherrim,4,217,420,5,93,6,7,,4,75,133,70,0,20,0,456
-422,shellos,4,218,,3,63,7,14,,4,190,73,70,0,20,0,457
-423,gastrodon,4,218,422,9,299,7,14,,4,75,176,70,0,20,0,458
-424,ambipom,4,93,190,12,203,7,6,,4,45,186,100,0,20,1,219
-425,drifloon,4,219,,4,12,7,4,,4,125,127,70,0,30,0,459
-426,drifblim,4,219,425,12,150,7,4,,4,60,204,70,0,30,0,460
-427,buneary,4,220,,4,55,3,6,,4,190,84,0,0,20,0,461
-428,lopunny,4,220,427,12,333,3,6,,4,60,178,140,0,20,0,462
-429,mismagius,4,98,200,9,44,7,1,,4,45,187,35,0,25,0,229
-430,honchkrow,4,97,198,9,273,1,9,,4,30,187,35,0,20,0,227
-431,glameow,4,221,,5,39,4,8,,6,190,71,70,0,20,0,463
-432,purugly,4,221,431,10,438,4,8,,6,75,183,70,0,20,0,464
-433,chingling,4,184,,2,6,10,12,,4,120,74,70,1,25,0,389
-434,stunky,4,223,,4,192,7,8,,4,225,79,70,0,20,0,465
-435,skuntank,4,223,434,10,380,7,8,,4,60,209,70,0,20,0,466
-436,bronzor,4,224,,5,605,5,1,,-1,255,72,70,0,20,0,467
-437,bronzong,4,224,436,13,1870,5,4,,-1,90,188,70,0,20,0,468
-438,bonsly,4,91,,5,150,3,7,,4,255,68,70,1,20,0,213
-439,mime-jr,4,57,,6,130,6,12,,4,145,78,70,1,25,0,139
-440,happiny,4,51,,6,244,6,12,,8,130,255,140,1,40,0,126
-441,chatot,4,228,,5,19,1,9,,4,30,107,35,0,20,0,469
-442,spiritomb,4,229,,10,1080,7,5,,4,100,168,70,0,30,0,470
-443,gible,4,230,,7,205,2,6,,4,45,67,70,0,40,1,471
-444,gabite,4,230,443,14,560,2,6,,4,45,144,70,0,40,1,472
-445,garchomp,4,230,444,19,950,2,6,,4,45,218,70,0,40,1,473
-446,munchlax,4,72,,6,1050,1,12,,1,50,94,70,1,40,0,173
-447,riolu,4,232,,7,202,2,6,,1,75,72,70,1,25,0,474
-448,lucario,4,232,447,12,540,2,6,,1,45,204,70,0,25,0,475
-449,hippopotas,4,233,,8,495,3,8,,4,140,95,70,0,30,1,476
-450,hippowdon,4,233,449,20,3000,3,8,,4,60,198,70,0,30,1,477
-451,skorupi,4,234,,8,120,7,14,,4,120,114,70,0,20,0,478
-452,drapion,4,234,451,13,615,7,14,,4,45,204,70,0,20,0,479
-453,croagunk,4,235,,7,230,2,12,,4,140,83,100,0,10,1,480
-454,toxicroak,4,235,453,13,444,2,12,,4,75,181,70,0,20,1,481
-455,carnivine,4,236,,14,270,5,10,,4,200,164,70,0,25,0,482
-456,finneon,4,237,,4,70,2,3,,4,190,90,70,0,20,1,483
-457,lumineon,4,237,456,12,240,2,3,,4,75,156,70,0,20,1,484
-458,mantyke,4,116,,10,650,2,9,,4,25,108,70,1,25,0,257
-459,snover,4,239,,10,505,9,6,,4,120,131,70,0,20,1,485
-460,abomasnow,4,239,459,22,1355,9,6,,4,60,214,70,0,20,1,486
-461,weavile,4,109,215,11,340,1,6,,4,45,199,35,0,20,1,245
-462,magnezone,4,34,82,12,1800,4,4,,-1,30,211,70,0,20,0,90
-463,lickilicky,4,48,108,17,1400,6,12,,4,30,193,70,0,20,0,120
-464,rhyperior,4,50,112,24,2828,4,6,,4,30,217,70,0,20,1,125
-465,tangrowth,4,52,114,20,1286,2,12,,4,30,211,70,0,20,1,130
-466,electivire,4,60,125,18,1386,10,6,,2,30,199,70,0,25,0,147
-467,magmortar,4,61,126,16,680,8,6,,2,30,199,70,0,25,0,150
-468,togekiss,4,87,176,15,380,9,9,,1,30,220,70,0,10,0,204
-469,yanmega,4,95,193,19,515,5,13,,4,30,198,70,0,20,0,223
-470,leafeon,4,67,133,10,255,5,8,,1,45,196,35,0,35,0,163
-471,glaceon,4,67,133,8,259,2,8,,1,45,196,35,0,35,0,164
-472,gliscor,4,104,207,20,425,7,9,,4,30,192,70,0,20,0,238
-473,mamoswine,4,112,221,25,2910,3,8,,4,50,207,70,0,20,1,252
-474,porygon-z,4,68,233,9,340,8,4,,-1,30,185,70,0,20,0,167
-475,gallade,4,140,281,16,520,9,12,,0,45,208,35,0,20,0,307
-476,probopass,4,147,299,14,3400,4,11,,4,60,198,70,0,20,0,324
-477,dusknoir,4,182,356,22,1066,1,4,,4,45,210,35,0,25,0,387
-478,froslass,4,186,361,13,266,9,4,,8,75,187,70,0,20,0,394
-479,rotom,4,240,,3,3,8,1,,-1,45,132,70,0,20,0,487
-480,uxie,4,241,,3,3,10,6,,-1,3,210,140,0,80,0,493
-481,mesprit,4,242,,3,3,6,6,,-1,3,210,140,0,80,0,494
-482,azelf,4,243,,3,3,2,6,,-1,3,210,140,0,80,0,495
-483,dialga,4,244,,54,6830,9,8,,-1,30,220,0,0,120,0,496
-484,palkia,4,245,,42,3360,7,6,,-1,30,220,0,0,120,0,497
-485,heatran,4,246,,17,4300,3,8,,4,3,215,100,0,10,0,498
-486,regigigas,4,247,,37,4200,9,12,,-1,3,220,0,0,120,0,499
-487,giratina,4,248,,45,7500,1,10,,-1,3,220,0,0,120,0,500
-488,cresselia,4,249,,15,856,10,14,,8,3,210,100,0,120,0,502
-489,phione,4,250,,4,31,2,4,,-1,30,165,70,0,40,0,503
-490,manaphy,4,250,,3,14,2,12,,-1,3,215,70,0,10,0,504
-491,darkrai,4,252,,15,505,1,12,,-1,3,210,0,0,120,0,505
-492,shaymin,4,253,,2,21,5,8,,-1,45,64,100,0,120,0,506
-493,arceus,4,254,,32,3200,4,8,,-1,3,255,0,0,120,0,508
-494,victini,5,255,,4,40,10,12,,-1,3,270,100,0,120,0,509
-495,snivy,5,256,,6,81,5,6,,1,45,28,70,0,20,0,510
-496,servine,5,256,495,8,160,5,6,,1,45,145,70,0,20,0,511
-497,serperior,5,256,496,33,630,5,2,,1,45,238,70,0,20,0,512
-498,tepig,5,257,,5,99,8,8,,1,45,28,70,0,20,0,513
-499,pignite,5,257,498,10,555,8,6,,1,45,146,70,0,20,0,514
-500,emboar,5,257,499,16,1500,8,6,,1,45,238,70,0,20,0,515
-501,oshawott,5,258,,5,59,2,6,,1,45,28,70,0,20,0,516
-502,dewott,5,258,501,8,245,2,6,,1,45,145,70,0,20,0,517
-503,samurott,5,258,502,15,946,2,8,,1,45,238,70,0,20,0,518
-504,patrat,5,259,,5,116,3,8,,4,255,51,70,0,15,0,519
-505,watchog,5,259,504,11,270,3,6,,4,255,147,70,0,20,0,520
-506,lillipup,5,260,,4,41,3,8,,4,255,55,70,0,15,0,521
-507,herdier,5,260,506,9,147,4,8,,4,120,130,70,0,15,0,522
-508,stoutland,5,260,507,12,610,4,8,,4,45,221,70,0,15,0,523
-509,purrloin,5,261,,4,101,7,8,,4,255,56,70,0,20,0,524
-510,liepard,5,261,509,11,375,7,8,,4,90,156,70,0,20,0,525
-511,pansage,5,262,,6,105,5,6,,1,190,63,70,0,20,0,526
-512,simisage,5,262,511,11,305,5,6,,1,75,174,70,0,20,0,527
-513,pansear,5,263,,6,110,8,6,,1,190,63,70,0,20,0,528
-514,simisear,5,263,513,10,280,8,6,,1,75,174,70,0,20,0,529
-515,panpour,5,264,,6,135,2,6,,1,190,63,70,0,20,0,530
-516,simipour,5,264,515,10,290,2,6,,1,75,174,70,0,20,0,531
-517,munna,5,265,,6,233,6,8,,4,190,58,70,0,10,0,532
-518,musharna,5,265,517,11,605,6,12,,4,75,170,70,0,10,0,533
-519,pidove,5,266,,3,21,4,9,,4,255,53,70,0,15,0,534
-520,tranquill,5,266,519,6,150,4,9,,4,120,125,70,0,15,0,535
-521,unfezant,5,266,520,12,290,4,9,,4,45,215,70,0,15,1,536
-522,blitzle,5,267,,8,298,1,8,,4,190,59,70,0,20,0,537
-523,zebstrika,5,267,522,16,795,1,8,,4,75,174,70,0,20,0,538
-524,roggenrola,5,268,,4,180,2,7,,4,255,56,70,0,15,0,539
-525,boldore,5,268,524,9,1020,2,10,,4,120,137,70,0,15,0,540
-526,gigalith,5,268,525,17,2600,2,10,,4,45,227,70,0,15,0,541
-527,woobat,5,269,,4,21,2,9,,4,190,63,70,0,15,0,542
-528,swoobat,5,269,527,9,105,2,9,,4,45,149,70,0,15,0,543
-529,drilbur,5,270,,3,85,4,6,,4,120,66,70,0,20,0,544
-530,excadrill,5,270,529,7,404,4,12,,4,60,178,70,0,20,0,545
-531,audino,5,271,,11,310,6,6,,4,255,390,70,0,20,0,546
-532,timburr,5,272,,6,125,4,12,,2,180,61,70,0,20,0,547
-533,gurdurr,5,272,532,12,400,4,12,,2,90,142,70,0,20,0,548
-534,conkeldurr,5,272,533,14,870,3,12,,2,45,227,70,0,20,0,549
-535,tympole,5,273,,5,45,2,3,,4,255,59,70,0,20,0,550
-536,palpitoad,5,273,535,8,170,2,6,,4,120,134,70,0,20,0,551
-537,seismitoad,5,273,536,15,620,2,12,,4,45,225,70,0,20,0,552
-538,throh,5,274,,13,555,8,12,,0,45,163,70,0,20,0,553
-539,sawk,5,275,,14,510,2,12,,0,45,163,70,0,20,0,554
-540,sewaddle,5,276,,3,25,10,14,,4,255,62,70,0,15,0,555
-541,swadloon,5,276,540,5,73,5,4,,4,120,133,70,0,15,0,556
-542,leavanny,5,276,541,12,205,10,12,,4,45,221,70,0,15,0,557
-543,venipede,5,277,,4,53,8,14,,4,255,52,70,0,15,0,558
-544,whirlipede,5,277,543,12,585,4,1,,4,120,126,70,0,15,0,559
-545,scolipede,5,277,544,25,2005,8,14,,4,45,214,70,0,20,0,560
-546,cottonee,5,278,,3,6,5,1,,4,190,56,70,0,20,0,561
-547,whimsicott,5,278,546,7,66,5,12,,4,75,168,70,0,20,0,562
-548,petilil,5,279,,5,66,5,5,,8,190,56,70,0,20,0,563
-549,lilligant,5,279,548,11,163,5,5,,8,75,168,70,0,20,0,564
-550,basculin,5,280,,10,180,5,3,,4,25,161,70,0,40,0,565
-551,sandile,5,281,,7,152,3,8,,4,180,58,70,0,20,0,567
-552,krokorok,5,281,551,10,334,3,8,,4,90,123,70,0,20,0,568
-553,krookodile,5,281,552,15,963,8,6,,4,45,229,70,0,20,0,569
-554,darumaka,5,282,,6,375,8,12,,4,120,63,70,0,20,0,570
-555,darmanitan,5,282,554,13,929,8,8,,4,60,168,70,0,20,0,571
-556,maractus,5,283,,10,280,5,5,,4,255,161,70,0,20,0,573
-557,dwebble,5,284,,3,145,8,14,,4,190,65,70,0,20,0,574
-558,crustle,5,284,557,14,2000,8,14,,4,75,166,70,0,20,0,575
-559,scraggy,5,285,,6,118,10,6,,4,180,70,35,0,15,0,576
-560,scrafty,5,285,559,11,300,8,6,,4,90,171,70,0,15,0,577
-561,sigilyph,5,286,,14,140,1,9,,4,45,172,70,0,20,0,578
-562,yamask,5,287,,5,15,1,4,,4,190,61,70,0,25,0,579
-563,cofagrigus,5,287,562,17,765,10,5,,4,90,169,70,0,25,0,580
-564,tirtouga,5,288,,7,165,2,8,,1,45,71,70,0,30,0,581
-565,carracosta,5,288,564,12,810,2,6,,1,45,173,70,0,30,0,582
-566,archen,5,289,,5,95,10,9,,1,45,71,70,0,30,0,583
-567,archeops,5,289,566,14,320,10,9,,1,45,177,70,0,30,0,584
-568,trubbish,5,290,,6,310,5,12,,4,190,66,70,0,20,0,585
-569,garbodor,5,290,568,19,1073,5,12,,4,60,166,70,0,20,0,586
-570,zorua,5,291,,7,125,4,8,,1,75,66,70,0,25,0,587
-571,zoroark,5,291,570,16,811,4,6,,1,45,179,70,0,20,0,588
-572,minccino,5,292,,4,58,4,8,,6,255,60,70,0,15,0,589
-573,cinccino,5,292,572,5,75,4,8,,6,60,165,70,0,15,0,590
-574,gothita,5,293,,4,58,7,12,,6,200,58,70,0,20,0,591
-575,gothorita,5,293,574,7,180,7,12,,6,100,137,70,0,20,0,592
-576,gothitelle,5,293,575,15,440,7,12,,6,50,221,70,0,20,0,593
-577,solosis,5,294,,3,10,5,1,,4,200,58,70,0,20,0,594
-578,duosion,5,294,577,6,80,5,1,,4,100,130,70,0,20,0,595
-579,reuniclus,5,294,578,10,201,5,4,,4,50,221,70,0,20,0,596
-580,ducklett,5,295,,5,55,2,9,,4,190,61,70,0,20,0,597
-581,swanna,5,295,580,13,242,9,9,,4,45,166,70,0,20,0,598
-582,vanillite,5,296,,4,57,9,5,,4,255,61,70,0,20,0,599
-583,vanillish,5,296,582,11,410,9,5,,4,120,138,70,0,20,0,600
-584,vanilluxe,5,296,583,13,575,9,11,,4,45,241,70,0,20,0,601
-585,deerling,5,297,,6,195,10,8,,4,190,67,70,0,20,0,602
-586,sawsbuck,5,297,585,19,925,3,8,,4,75,166,70,0,20,0,603
-587,emolga,5,298,,4,50,9,8,,4,200,150,70,0,20,0,604
-588,karrablast,5,299,,5,59,2,12,,4,200,63,70,0,15,0,605
-589,escavalier,5,299,588,10,330,4,4,,4,75,173,70,0,15,0,606
-590,foongus,5,300,,2,10,9,4,,4,190,59,70,0,20,0,607
-591,amoonguss,5,300,590,6,105,9,4,,4,75,162,70,0,20,0,608
-592,frillish,5,301,,12,330,9,10,,4,190,67,70,0,20,1,609
-593,jellicent,5,301,592,22,1350,9,10,,4,60,168,70,0,20,1,610
-594,alomomola,5,302,,12,316,6,3,,4,75,165,70,0,40,0,611
-595,joltik,5,303,,1,6,10,14,,4,190,64,70,0,20,0,612
-596,galvantula,5,303,595,8,143,10,14,,4,75,165,70,0,20,0,613
-597,ferroseed,5,304,,6,188,4,1,,4,255,61,70,0,20,0,614
-598,ferrothorn,5,304,597,10,1100,4,10,,4,90,171,70,0,20,0,615
-599,klink,5,305,,3,210,4,11,,-1,130,60,70,0,20,0,616
-600,klang,5,305,599,6,510,4,11,,-1,60,154,70,0,20,0,617
-601,klinklang,5,305,600,6,810,4,11,,-1,30,234,70,0,20,0,618
-602,tynamo,5,306,,2,3,9,3,,4,190,55,70,0,20,0,619
-603,eelektrik,5,306,602,12,220,2,3,,4,60,142,70,0,20,0,620
-604,eelektross,5,306,603,21,805,2,3,,4,30,232,70,0,20,0,621
-605,elgyem,5,307,,5,90,2,6,,4,255,67,70,0,20,0,622
-606,beheeyem,5,307,605,10,345,3,12,,4,90,170,70,0,20,0,623
-607,litwick,5,308,,3,31,9,5,,4,190,55,70,0,20,0,624
-608,lampent,5,308,607,6,130,1,4,,4,90,130,70,0,20,0,625
-609,chandelure,5,308,608,10,343,1,4,,4,45,234,70,0,20,0,626
-610,axew,5,309,,6,180,5,6,,4,75,64,35,0,40,0,627
-611,fraxure,5,309,610,10,360,5,6,,4,60,144,35,0,40,0,628
-612,haxorus,5,309,611,18,1055,10,6,,4,45,243,35,0,40,0,629
-613,cubchoo,5,310,,5,85,9,6,,4,120,61,70,0,20,0,630
-614,beartic,5,310,613,26,2600,9,8,,4,60,170,70,0,20,0,631
-615,cryogonal,5,311,,11,1480,2,1,,-1,25,170,70,0,25,0,632
-616,shelmet,5,312,,4,77,8,1,,4,200,61,70,0,15,0,633
-617,accelgor,5,312,616,8,253,8,4,,4,75,173,70,0,15,0,634
-618,stunfisk,5,313,,7,110,3,3,,4,75,165,70,0,20,0,635
-619,mienfoo,5,314,,9,200,10,6,,4,180,70,70,0,25,0,636
-620,mienshao,5,314,619,14,355,7,6,,4,45,179,70,0,25,0,637
-621,druddigon,5,315,,16,1390,8,6,,4,45,170,70,0,30,0,638
-622,golett,5,316,,10,920,5,12,,-1,190,61,70,0,25,0,639
-623,golurk,5,316,622,28,3300,5,12,,-1,90,169,70,0,25,0,640
-624,pawniard,5,317,,5,102,8,12,,4,120,68,35,0,20,0,641
-625,bisharp,5,317,624,16,700,8,12,,4,45,172,35,0,20,0,642
-626,bouffalant,5,318,,16,946,3,8,,4,45,172,70,0,20,0,643
-627,rufflet,5,319,,5,105,9,9,,0,190,70,70,0,20,0,644
-628,braviary,5,319,627,15,410,8,9,,0,60,179,70,0,20,0,645
-629,vullaby,5,320,,5,90,3,9,,8,190,74,35,0,20,0,646
-630,mandibuzz,5,320,629,12,395,3,9,,8,60,179,35,0,20,0,647
-631,heatmor,5,321,,14,580,8,6,,4,90,169,70,0,20,0,648
-632,durant,5,322,,3,330,4,14,,4,90,169,70,0,20,0,649
-633,deino,5,323,,8,173,2,8,,4,45,60,35,0,40,0,650
-634,zweilous,5,323,633,14,500,2,8,,4,45,147,35,0,40,0,651
-635,hydreigon,5,323,634,18,1600,2,6,,4,45,270,35,0,40,0,652
-636,larvesta,5,324,,11,288,9,14,,4,45,72,70,0,40,0,653
-637,volcarona,5,324,636,16,460,9,13,,4,15,248,70,0,40,0,654
-638,cobalion,5,325,,21,2500,2,8,,-1,3,261,35,0,80,0,655
-639,terrakion,5,326,,19,2600,4,8,,-1,3,261,35,0,80,0,656
-640,virizion,5,327,,20,2000,5,8,,-1,3,261,35,0,80,0,657
-641,tornadus,5,328,,15,630,5,4,,0,3,261,90,0,120,0,658
-642,thundurus,5,329,,15,610,2,4,,0,3,261,90,0,120,0,659
-643,reshiram,5,330,,32,3300,9,9,,-1,45,306,0,0,120,0,660
-644,zekrom,5,331,,29,3450,1,6,,-1,45,306,0,0,120,0,661
-645,landorus,5,332,,15,680,3,4,,0,3,270,90,0,120,0,662
-646,kyurem,5,333,,30,3250,4,6,,-1,3,297,0,0,120,0,663
-647,keldeo,5,334,,14,485,10,8,,-1,3,261,35,0,80,0,664
-648,meloetta,5,335,,6,65,9,12,,-1,3,270,100,0,120,0,665
-649,genesect,5,336,,15,825,7,12,,-1,3,270,0,0,120,0,667
-10001,deoxys,3,202,,17,608,8,12,5,-1,3,215,0,0,120,0,419
-10002,deoxys,3,202,,17,608,8,12,5,-1,3,215,0,0,120,0,420
-10003,deoxys,3,202,,17,608,8,12,5,-1,3,215,0,0,120,0,421
-10004,wormadam,4,213,,5,65,4,2,,8,45,159,70,0,15,0,447
-10005,wormadam,4,213,,5,65,4,2,,8,45,159,70,0,15,0,448
-10006,shaymin,4,253,,4,52,5,8,,-1,45,64,100,0,120,0,507
-10007,giratina,4,248,,69,6500,1,10,,-1,3,220,0,0,120,0,501
-10008,rotom,4,240,,3,3,8,1,,-1,45,132,70,0,20,0,488
-10009,rotom,4,240,,3,3,8,1,,-1,45,132,70,0,20,0,489
-10010,rotom,4,240,,3,3,8,1,,-1,45,132,70,0,20,0,490
-10011,rotom,4,240,,3,3,8,1,,-1,45,132,70,0,20,0,491
-10012,rotom,4,240,,3,3,8,1,,-1,45,132,70,0,20,0,492
-10013,castform,3,179,,3,8,9,1,3,4,45,147,70,0,25,0,379
-10014,castform,3,179,,3,8,9,1,3,4,45,147,70,0,25,0,380
-10015,castform,3,179,,3,8,9,1,3,4,45,147,70,0,25,0,381
-10016,basculin,5,280,,10,180,5,3,,4,25,161,70,0,40,0,566
-10017,darmanitan,5,282,,13,929,8,8,,4,60,189,70,0,20,0,572
-10018,meloetta,5,335,,6,65,9,12,,-1,3,270,100,0,120,0,666
+id,species_id,height,weight,base_experience,order,is_default
+1,1,7,69,64,1,1
+2,2,10,130,141,2,1
+3,3,20,1000,208,3,1
+4,4,6,85,65,4,1
+5,5,11,190,142,5,1
+6,6,17,905,209,6,1
+7,7,5,90,66,7,1
+8,8,10,225,143,8,1
+9,9,16,855,210,9,1
+10,10,3,29,53,10,1
+11,11,7,99,72,11,1
+12,12,11,320,160,12,1
+13,13,3,32,52,13,1
+14,14,6,100,71,14,1
+15,15,10,295,159,15,1
+16,16,3,18,55,16,1
+17,17,11,300,113,17,1
+18,18,15,395,172,18,1
+19,19,3,35,57,19,1
+20,20,7,185,116,20,1
+21,21,3,20,58,21,1
+22,22,12,380,162,22,1
+23,23,20,69,62,23,1
+24,24,35,650,147,24,1
+25,25,4,60,82,26,1
+26,26,8,300,122,27,1
+27,27,6,120,93,28,1
+28,28,10,295,163,29,1
+29,29,4,70,59,30,1
+30,30,8,200,117,31,1
+31,31,13,600,194,32,1
+32,32,5,90,60,33,1
+33,33,9,195,118,34,1
+34,34,14,620,195,35,1
+35,35,6,75,68,37,1
+36,36,13,400,129,38,1
+37,37,6,99,63,39,1
+38,38,11,199,178,40,1
+39,39,5,55,76,42,1
+40,40,10,120,109,43,1
+41,41,8,75,54,44,1
+42,42,16,550,171,45,1
+43,43,5,54,78,47,1
+44,44,8,86,132,48,1
+45,45,12,186,184,49,1
+46,46,3,54,70,51,1
+47,47,10,295,128,52,1
+48,48,10,300,75,53,1
+49,49,15,125,138,54,1
+50,50,2,8,81,55,1
+51,51,7,333,153,56,1
+52,52,4,42,69,57,1
+53,53,10,320,148,58,1
+54,54,8,196,80,59,1
+55,55,17,766,174,60,1
+56,56,5,280,74,61,1
+57,57,10,320,149,62,1
+58,58,7,190,91,63,1
+59,59,19,1550,213,64,1
+60,60,6,124,77,65,1
+61,61,10,200,131,66,1
+62,62,13,540,185,67,1
+63,63,9,195,75,69,1
+64,64,13,565,145,70,1
+65,65,15,480,186,71,1
+66,66,8,195,75,72,1
+67,67,15,705,146,73,1
+68,68,16,1300,193,74,1
+69,69,7,40,84,75,1
+70,70,10,64,151,76,1
+71,71,17,155,191,77,1
+72,72,9,455,105,78,1
+73,73,16,550,205,79,1
+74,74,4,200,73,80,1
+75,75,10,1050,134,81,1
+76,76,14,3000,177,82,1
+77,77,10,300,152,83,1
+78,78,17,950,192,84,1
+79,79,12,360,99,85,1
+80,80,16,785,164,86,1
+81,81,3,60,89,88,1
+82,82,10,600,161,89,1
+83,83,8,150,94,91,1
+84,84,14,392,96,92,1
+85,85,18,852,158,93,1
+86,86,11,900,100,94,1
+87,87,17,1200,176,95,1
+88,88,9,300,90,96,1
+89,89,12,300,157,97,1
+90,90,3,40,97,98,1
+91,91,15,1325,203,99,1
+92,92,13,1,95,100,1
+93,93,16,1,126,101,1
+94,94,15,405,190,102,1
+95,95,88,2100,108,103,1
+96,96,10,324,102,105,1
+97,97,16,756,165,106,1
+98,98,4,65,115,107,1
+99,99,13,600,206,108,1
+100,100,5,104,103,109,1
+101,101,12,666,150,110,1
+102,102,4,25,98,111,1
+103,103,20,1200,212,112,1
+104,104,4,65,87,113,1
+105,105,10,450,124,114,1
+106,106,15,498,139,116,1
+107,107,14,502,140,117,1
+108,108,12,655,127,119,1
+109,109,6,10,114,121,1
+110,110,12,95,173,122,1
+111,111,10,1150,135,123,1
+112,112,19,1200,204,124,1
+113,113,11,346,255,127,1
+114,114,10,350,166,129,1
+115,115,22,800,175,131,1
+116,116,4,80,83,132,1
+117,117,12,250,155,133,1
+118,118,6,150,111,135,1
+119,119,13,390,170,136,1
+120,120,8,345,106,137,1
+121,121,11,800,207,138,1
+122,122,13,545,136,140,1
+123,123,15,560,187,141,1
+124,124,14,406,137,144,1
+125,125,11,300,156,146,1
+126,126,13,445,167,149,1
+127,127,15,550,200,151,1
+128,128,14,884,211,152,1
+129,129,9,100,20,153,1
+130,130,65,2350,214,154,1
+131,131,25,2200,219,155,1
+132,132,3,40,61,156,1
+133,133,3,65,92,157,1
+134,134,10,290,196,158,1
+135,135,8,245,197,159,1
+136,136,9,250,198,160,1
+137,137,8,365,130,165,1
+138,138,4,75,99,168,1
+139,139,10,350,199,169,1
+140,140,5,115,99,170,1
+141,141,13,405,199,171,1
+142,142,18,590,202,172,1
+143,143,21,4600,154,174,1
+144,144,17,554,215,175,1
+145,145,16,526,216,176,1
+146,146,20,600,217,177,1
+147,147,18,33,67,178,1
+148,148,40,165,144,179,1
+149,149,22,2100,218,180,1
+150,150,20,1220,220,181,1
+151,151,4,40,64,182,1
+152,152,9,64,64,183,1
+153,153,12,158,141,184,1
+154,154,18,1005,208,185,1
+155,155,5,79,65,186,1
+156,156,9,190,142,187,1
+157,157,17,795,209,188,1
+158,158,6,95,66,189,1
+159,159,11,250,143,190,1
+160,160,23,888,210,191,1
+161,161,8,60,57,192,1
+162,162,18,325,116,193,1
+163,163,7,212,58,194,1
+164,164,16,408,162,195,1
+165,165,10,108,54,196,1
+166,166,14,356,134,197,1
+167,167,5,85,54,198,1
+168,168,11,335,134,199,1
+169,169,18,750,204,46,1
+170,170,5,120,90,200,1
+171,171,12,225,156,201,1
+172,172,3,20,42,25,1
+173,173,3,30,37,36,1
+174,174,3,10,39,41,1
+175,175,3,15,74,202,1
+176,176,6,32,114,203,1
+177,177,2,20,73,205,1
+178,178,15,150,171,206,1
+179,179,6,78,59,207,1
+180,180,8,133,117,208,1
+181,181,14,615,194,209,1
+182,182,4,58,184,50,1
+183,183,4,85,58,211,1
+184,184,8,285,153,212,1
+185,185,12,380,135,214,1
+186,186,11,339,185,68,1
+187,187,4,5,74,215,1
+188,188,6,10,136,216,1
+189,189,8,30,176,217,1
+190,190,8,115,94,218,1
+191,191,3,18,52,220,1
+192,192,8,85,146,221,1
+193,193,12,380,147,222,1
+194,194,4,85,52,224,1
+195,195,14,750,137,225,1
+196,196,9,265,197,161,1
+197,197,10,270,197,162,1
+198,198,5,21,107,226,1
+199,199,20,795,164,87,1
+200,200,7,10,147,228,1
+201,201,5,50,61,230,1
+202,202,13,285,177,232,1
+203,203,15,415,149,233,1
+204,204,6,72,60,234,1
+205,205,12,1258,118,235,1
+206,206,15,140,125,236,1
+207,207,11,648,108,237,1
+208,208,92,4000,196,104,1
+209,209,6,78,63,239,1
+210,210,14,487,178,240,1
+211,211,5,39,100,241,1
+212,212,18,1180,200,142,1
+213,213,6,205,80,242,1
+214,214,15,540,200,243,1
+215,215,9,280,132,244,1
+216,216,6,88,124,246,1
+217,217,18,1258,189,247,1
+218,218,7,350,78,248,1
+219,219,8,550,154,249,1
+220,220,4,65,78,250,1
+221,221,11,558,160,251,1
+222,222,6,50,113,253,1
+223,223,6,120,78,254,1
+224,224,9,285,164,255,1
+225,225,9,160,183,256,1
+226,226,21,2200,168,258,1
+227,227,17,505,168,259,1
+228,228,6,108,114,260,1
+229,229,14,350,204,261,1
+230,230,18,1520,207,134,1
+231,231,5,335,124,262,1
+232,232,11,1200,189,263,1
+233,233,6,325,180,166,1
+234,234,14,712,165,264,1
+235,235,12,580,106,265,1
+236,236,7,210,91,115,1
+237,237,14,480,138,118,1
+238,238,4,60,87,143,1
+239,239,6,235,106,145,1
+240,240,7,214,117,148,1
+241,241,12,755,200,266,1
+242,242,15,468,255,128,1
+243,243,19,1780,216,267,1
+244,244,21,1980,217,268,1
+245,245,20,1870,215,269,1
+246,246,6,720,67,270,1
+247,247,12,1520,144,271,1
+248,248,20,2020,218,272,1
+249,249,52,2160,220,273,1
+250,250,38,1990,220,274,1
+251,251,6,50,64,275,1
+252,252,5,50,65,276,1
+253,253,9,216,141,277,1
+254,254,17,522,208,278,1
+255,255,4,25,65,279,1
+256,256,9,195,142,280,1
+257,257,19,520,209,281,1
+258,258,4,76,65,282,1
+259,259,7,280,143,283,1
+260,260,15,819,210,284,1
+261,261,5,136,55,285,1
+262,262,10,370,128,286,1
+263,263,4,175,60,287,1
+264,264,5,325,128,288,1
+265,265,3,36,54,289,1
+266,266,6,100,72,290,1
+267,267,10,284,161,291,1
+268,268,7,115,72,292,1
+269,269,12,316,161,293,1
+270,270,5,26,74,294,1
+271,271,12,325,141,295,1
+272,272,15,550,181,296,1
+273,273,5,40,74,297,1
+274,274,10,280,141,298,1
+275,275,13,596,181,299,1
+276,276,3,23,59,300,1
+277,277,7,198,162,301,1
+278,278,6,95,64,302,1
+279,279,12,280,164,303,1
+280,280,4,66,70,304,1
+281,281,8,202,140,305,1
+282,282,16,484,208,306,1
+283,283,5,17,63,308,1
+284,284,8,36,128,309,1
+285,285,4,45,65,310,1
+286,286,12,392,165,311,1
+287,287,8,240,83,312,1
+288,288,14,465,126,313,1
+289,289,20,1305,210,314,1
+290,290,5,55,65,315,1
+291,291,8,120,155,316,1
+292,292,8,12,95,317,1
+293,293,6,163,68,318,1
+294,294,10,405,126,319,1
+295,295,15,840,184,320,1
+296,296,10,864,87,321,1
+297,297,23,2538,184,322,1
+298,298,2,20,33,210,1
+299,299,10,970,108,323,1
+300,300,6,110,65,325,1
+301,301,11,326,138,326,1
+302,302,5,110,98,327,1
+303,303,6,115,98,328,1
+304,304,4,600,96,329,1
+305,305,9,1200,152,330,1
+306,306,21,3600,205,331,1
+307,307,6,112,91,332,1
+308,308,13,315,153,333,1
+309,309,6,152,104,334,1
+310,310,15,402,168,335,1
+311,311,4,42,120,336,1
+312,312,4,42,120,337,1
+313,313,7,177,146,338,1
+314,314,6,177,146,339,1
+315,315,3,20,152,341,1
+316,316,4,103,75,343,1
+317,317,17,800,168,344,1
+318,318,8,208,88,345,1
+319,319,18,888,175,346,1
+320,320,20,1300,137,347,1
+321,321,145,3980,206,348,1
+322,322,7,240,88,349,1
+323,323,19,2200,175,350,1
+324,324,5,804,161,351,1
+325,325,7,306,89,352,1
+326,326,9,715,164,353,1
+327,327,11,50,85,354,1
+328,328,7,150,73,355,1
+329,329,11,153,126,356,1
+330,330,20,820,197,357,1
+331,331,4,513,97,358,1
+332,332,13,774,177,359,1
+333,333,4,12,74,360,1
+334,334,11,206,188,361,1
+335,335,13,403,165,362,1
+336,336,27,525,165,363,1
+337,337,10,1680,150,364,1
+338,338,12,1540,150,365,1
+339,339,4,19,92,366,1
+340,340,9,236,158,367,1
+341,341,6,115,111,368,1
+342,342,11,328,161,369,1
+343,343,5,215,58,370,1
+344,344,15,1080,189,371,1
+345,345,10,238,99,372,1
+346,346,15,604,199,373,1
+347,347,7,125,99,374,1
+348,348,15,682,199,375,1
+349,349,6,74,61,376,1
+350,350,62,1620,213,377,1
+351,351,3,8,145,378,1
+352,352,10,220,132,382,1
+353,353,6,23,97,383,1
+354,354,11,125,179,384,1
+355,355,8,150,97,385,1
+356,356,16,306,179,386,1
+357,357,20,1000,169,388,1
+358,358,6,10,147,390,1
+359,359,12,470,174,391,1
+360,360,6,140,44,231,1
+361,361,7,168,74,392,1
+362,362,15,2565,187,393,1
+363,363,8,395,75,395,1
+364,364,11,876,128,396,1
+365,365,14,1506,192,397,1
+366,366,4,525,142,398,1
+367,367,17,270,178,399,1
+368,368,18,226,178,400,1
+369,369,10,234,198,401,1
+370,370,6,87,110,402,1
+371,371,6,421,89,403,1
+372,372,11,1105,144,404,1
+373,373,15,1026,218,405,1
+374,374,6,952,103,406,1
+375,375,12,2025,153,407,1
+376,376,16,5500,210,408,1
+377,377,17,2300,217,409,1
+378,378,18,1750,216,410,1
+379,379,19,2050,215,411,1
+380,380,14,400,211,412,1
+381,381,20,600,211,413,1
+382,382,45,3520,218,414,1
+383,383,35,9500,218,415,1
+384,384,70,2065,220,416,1
+385,385,3,11,215,417,1
+386,386,17,608,215,418,1
+387,387,4,102,64,422,1
+388,388,11,970,141,423,1
+389,389,22,3100,208,424,1
+390,390,5,62,65,425,1
+391,391,9,220,142,426,1
+392,392,12,550,209,427,1
+393,393,4,52,66,428,1
+394,394,8,230,143,429,1
+395,395,17,845,210,430,1
+396,396,3,20,56,431,1
+397,397,6,155,113,432,1
+398,398,12,249,172,433,1
+399,399,5,200,58,434,1
+400,400,10,315,116,435,1
+401,401,3,22,54,436,1
+402,402,10,255,159,437,1
+403,403,5,95,60,438,1
+404,404,9,305,117,439,1
+405,405,14,420,194,440,1
+406,406,2,12,68,340,1
+407,407,9,145,204,342,1
+408,408,9,315,99,441,1
+409,409,16,1025,199,442,1
+410,410,5,570,99,443,1
+411,411,13,1495,199,444,1
+412,412,2,34,61,445,1
+413,413,5,65,159,446,1
+414,414,9,233,159,449,1
+415,415,3,55,63,450,1
+416,416,12,385,188,451,1
+417,417,4,39,120,452,1
+418,418,7,295,75,453,1
+419,419,11,335,178,454,1
+420,420,4,33,68,455,1
+421,421,5,93,133,456,1
+422,422,3,63,73,457,1
+423,423,9,299,176,458,1
+424,424,12,203,186,219,1
+425,425,4,12,127,459,1
+426,426,12,150,204,460,1
+427,427,4,55,84,461,1
+428,428,12,333,178,462,1
+429,429,9,44,187,229,1
+430,430,9,273,187,227,1
+431,431,5,39,71,463,1
+432,432,10,438,183,464,1
+433,433,2,6,74,389,1
+434,434,4,192,79,465,1
+435,435,10,380,209,466,1
+436,436,5,605,72,467,1
+437,437,13,1870,188,468,1
+438,438,5,150,68,213,1
+439,439,6,130,78,139,1
+440,440,6,244,255,126,1
+441,441,5,19,107,469,1
+442,442,10,1080,168,470,1
+443,443,7,205,67,471,1
+444,444,14,560,144,472,1
+445,445,19,950,218,473,1
+446,446,6,1050,94,173,1
+447,447,7,202,72,474,1
+448,448,12,540,204,475,1
+449,449,8,495,95,476,1
+450,450,20,3000,198,477,1
+451,451,8,120,114,478,1
+452,452,13,615,204,479,1
+453,453,7,230,83,480,1
+454,454,13,444,181,481,1
+455,455,14,270,164,482,1
+456,456,4,70,90,483,1
+457,457,12,240,156,484,1
+458,458,10,650,108,257,1
+459,459,10,505,131,485,1
+460,460,22,1355,214,486,1
+461,461,11,340,199,245,1
+462,462,12,1800,211,90,1
+463,463,17,1400,193,120,1
+464,464,24,2828,217,125,1
+465,465,20,1286,211,130,1
+466,466,18,1386,199,147,1
+467,467,16,680,199,150,1
+468,468,15,380,220,204,1
+469,469,19,515,198,223,1
+470,470,10,255,196,163,1
+471,471,8,259,196,164,1
+472,472,20,425,192,238,1
+473,473,25,2910,207,252,1
+474,474,9,340,185,167,1
+475,475,16,520,208,307,1
+476,476,14,3400,198,324,1
+477,477,22,1066,210,387,1
+478,478,13,266,187,394,1
+479,479,3,3,132,487,1
+480,480,3,3,210,493,1
+481,481,3,3,210,494,1
+482,482,3,3,210,495,1
+483,483,54,6830,220,496,1
+484,484,42,3360,220,497,1
+485,485,17,4300,215,498,1
+486,486,37,4200,220,499,1
+487,487,45,7500,220,500,1
+488,488,15,856,210,502,1
+489,489,4,31,165,503,1
+490,490,3,14,215,504,1
+491,491,15,505,210,505,1
+492,492,2,21,64,506,1
+493,493,32,3200,255,508,1
+494,494,4,40,270,509,1
+495,495,6,81,28,510,1
+496,496,8,160,145,511,1
+497,497,33,630,238,512,1
+498,498,5,99,28,513,1
+499,499,10,555,146,514,1
+500,500,16,1500,238,515,1
+501,501,5,59,28,516,1
+502,502,8,245,145,517,1
+503,503,15,946,238,518,1
+504,504,5,116,51,519,1
+505,505,11,270,147,520,1
+506,506,4,41,55,521,1
+507,507,9,147,130,522,1
+508,508,12,610,221,523,1
+509,509,4,101,56,524,1
+510,510,11,375,156,525,1
+511,511,6,105,63,526,1
+512,512,11,305,174,527,1
+513,513,6,110,63,528,1
+514,514,10,280,174,529,1
+515,515,6,135,63,530,1
+516,516,10,290,174,531,1
+517,517,6,233,58,532,1
+518,518,11,605,170,533,1
+519,519,3,21,53,534,1
+520,520,6,150,125,535,1
+521,521,12,290,215,536,1
+522,522,8,298,59,537,1
+523,523,16,795,174,538,1
+524,524,4,180,56,539,1
+525,525,9,1020,137,540,1
+526,526,17,2600,227,541,1
+527,527,4,21,63,542,1
+528,528,9,105,149,543,1
+529,529,3,85,66,544,1
+530,530,7,404,178,545,1
+531,531,11,310,390,546,1
+532,532,6,125,61,547,1
+533,533,12,400,142,548,1
+534,534,14,870,227,549,1
+535,535,5,45,59,550,1
+536,536,8,170,134,551,1
+537,537,15,620,225,552,1
+538,538,13,555,163,553,1
+539,539,14,510,163,554,1
+540,540,3,25,62,555,1
+541,541,5,73,133,556,1
+542,542,12,205,221,557,1
+543,543,4,53,52,558,1
+544,544,12,585,126,559,1
+545,545,25,2005,214,560,1
+546,546,3,6,56,561,1
+547,547,7,66,168,562,1
+548,548,5,66,56,563,1
+549,549,11,163,168,564,1
+550,550,10,180,161,565,1
+551,551,7,152,58,567,1
+552,552,10,334,123,568,1
+553,553,15,963,229,569,1
+554,554,6,375,63,570,1
+555,555,13,929,168,571,1
+556,556,10,280,161,573,1
+557,557,3,145,65,574,1
+558,558,14,2000,166,575,1
+559,559,6,118,70,576,1
+560,560,11,300,171,577,1
+561,561,14,140,172,578,1
+562,562,5,15,61,579,1
+563,563,17,765,169,580,1
+564,564,7,165,71,581,1
+565,565,12,810,173,582,1
+566,566,5,95,71,583,1
+567,567,14,320,177,584,1
+568,568,6,310,66,585,1
+569,569,19,1073,166,586,1
+570,570,7,125,66,587,1
+571,571,16,811,179,588,1
+572,572,4,58,60,589,1
+573,573,5,75,165,590,1
+574,574,4,58,58,591,1
+575,575,7,180,137,592,1
+576,576,15,440,221,593,1
+577,577,3,10,58,594,1
+578,578,6,80,130,595,1
+579,579,10,201,221,596,1
+580,580,5,55,61,597,1
+581,581,13,242,166,598,1
+582,582,4,57,61,599,1
+583,583,11,410,138,600,1
+584,584,13,575,241,601,1
+585,585,6,195,67,602,1
+586,586,19,925,166,603,1
+587,587,4,50,150,604,1
+588,588,5,59,63,605,1
+589,589,10,330,173,606,1
+590,590,2,10,59,607,1
+591,591,6,105,162,608,1
+592,592,12,330,67,609,1
+593,593,22,1350,168,610,1
+594,594,12,316,165,611,1
+595,595,1,6,64,612,1
+596,596,8,143,165,613,1
+597,597,6,188,61,614,1
+598,598,10,1100,171,615,1
+599,599,3,210,60,616,1
+600,600,6,510,154,617,1
+601,601,6,810,234,618,1
+602,602,2,3,55,619,1
+603,603,12,220,142,620,1
+604,604,21,805,232,621,1
+605,605,5,90,67,622,1
+606,606,10,345,170,623,1
+607,607,3,31,55,624,1
+608,608,6,130,130,625,1
+609,609,10,343,234,626,1
+610,610,6,180,64,627,1
+611,611,10,360,144,628,1
+612,612,18,1055,243,629,1
+613,613,5,85,61,630,1
+614,614,26,2600,170,631,1
+615,615,11,1480,170,632,1
+616,616,4,77,61,633,1
+617,617,8,253,173,634,1
+618,618,7,110,165,635,1
+619,619,9,200,70,636,1
+620,620,14,355,179,637,1
+621,621,16,1390,170,638,1
+622,622,10,920,61,639,1
+623,623,28,3300,169,640,1
+624,624,5,102,68,641,1
+625,625,16,700,172,642,1
+626,626,16,946,172,643,1
+627,627,5,105,70,644,1
+628,628,15,410,179,645,1
+629,629,5,90,74,646,1
+630,630,12,395,179,647,1
+631,631,14,580,169,648,1
+632,632,3,330,169,649,1
+633,633,8,173,60,650,1
+634,634,14,500,147,651,1
+635,635,18,1600,270,652,1
+636,636,11,288,72,653,1
+637,637,16,460,248,654,1
+638,638,21,2500,261,655,1
+639,639,19,2600,261,656,1
+640,640,20,2000,261,657,1
+641,641,15,630,261,658,1
+642,642,15,610,261,659,1
+643,643,32,3300,306,660,1
+644,644,29,3450,306,661,1
+645,645,15,680,270,662,1
+646,646,30,3250,297,663,1
+647,647,14,485,261,664,1
+648,648,6,65,270,665,1
+649,649,15,825,270,667,1
+650,386,17,608,215,419,0
+651,386,17,608,215,420,0
+652,386,17,608,215,421,0
+653,413,5,65,159,447,0
+654,413,5,65,159,448,0
+655,492,4,52,64,507,0
+656,487,69,6500,220,501,0
+657,479,3,3,132,488,0
+658,479,3,3,132,489,0
+659,479,3,3,132,490,0
+660,479,3,3,132,491,0
+661,479,3,3,132,492,0
+662,351,3,8,147,379,0
+663,351,3,8,147,380,0
+664,351,3,8,147,381,0
+665,550,10,180,161,566,0
+666,555,13,929,189,572,0
+667,648,6,65,270,666,0
diff --git a/pokedex/data/csv/pokemon_abilities.csv b/pokedex/data/csv/pokemon_abilities.csv
index 84c259e..68dff9d 100644
--- a/pokedex/data/csv/pokemon_abilities.csv
+++ b/pokedex/data/csv/pokemon_abilities.csv
@@ -1601,27 +1601,27 @@ pokemon_id,ability_id,is_dream,slot
 647,154,0,1
 648,32,0,1
 649,88,0,1
-10001,46,0,1
-10002,46,0,1
-10003,46,0,1
-10004,107,0,1
-10004,142,1,3
-10005,107,0,1
-10005,142,1,3
-10006,32,0,1
-10007,26,0,1
-10007,26,1,3
-10008,26,0,1
-10009,26,0,1
-10010,26,0,1
-10011,26,0,1
-10012,26,0,1
-10013,59,0,1
-10014,59,0,1
-10015,59,0,1
-10016,69,0,1
-10016,91,0,2
-10016,104,1,3
-10017,125,0,1
-10017,161,1,3
-10018,32,0,1
+650,46,0,1
+651,46,0,1
+652,46,0,1
+653,107,0,1
+653,142,1,3
+654,107,0,1
+654,142,1,3
+655,32,0,1
+656,26,0,1
+656,26,1,3
+657,26,0,1
+658,26,0,1
+659,26,0,1
+660,26,0,1
+661,26,0,1
+662,59,0,1
+663,59,0,1
+664,59,0,1
+665,69,0,1
+665,91,0,2
+665,104,1,3
+666,125,0,1
+666,161,1,3
+667,32,0,1
diff --git a/pokedex/data/csv/pokemon_dex_numbers.csv b/pokedex/data/csv/pokemon_dex_numbers.csv
index 78b2506..6a67d4d 100644
--- a/pokedex/data/csv/pokemon_dex_numbers.csv
+++ b/pokedex/data/csv/pokemon_dex_numbers.csv
@@ -1,4 +1,4 @@
-pokemon_id,pokedex_id,pokedex_number
+species_id,pokedex_id,pokedex_number
 1,1,1
 1,2,1
 1,3,226
diff --git a/pokedex/data/csv/pokemon_egg_groups.csv b/pokedex/data/csv/pokemon_egg_groups.csv
index 8c71ea6..6a55334 100644
--- a/pokedex/data/csv/pokemon_egg_groups.csv
+++ b/pokedex/data/csv/pokemon_egg_groups.csv
@@ -1,4 +1,4 @@
-pokemon_id,egg_group_id
+species_id,egg_group_id
 1,1
 1,7
 2,1
@@ -823,24 +823,3 @@ pokemon_id,egg_group_id
 647,15
 648,15
 649,15
-10001,15
-10002,15
-10003,15
-10004,3
-10005,3
-10006,15
-10007,15
-10008,11
-10009,11
-10010,11
-10011,11
-10012,11
-10013,6
-10013,11
-10014,6
-10014,11
-10015,6
-10015,11
-10016,12
-10017,5
-10018,15
diff --git a/pokedex/data/csv/pokemon_evolution.csv b/pokedex/data/csv/pokemon_evolution.csv
index 3983e02..c9b1b64 100644
--- a/pokedex/data/csv/pokemon_evolution.csv
+++ b/pokedex/data/csv/pokemon_evolution.csv
@@ -1,4 +1,4 @@
-id,evolved_pokemon_id,evolution_trigger_id,trigger_item_id,minimum_level,gender,location_id,held_item_id,time_of_day,known_move_id,minimum_happiness,minimum_beauty,relative_physical_stats,party_pokemon_id,trade_pokemon_id
+id,evolved_species_id,evolution_trigger_id,trigger_item_id,minimum_level,gender,location_id,held_item_id,time_of_day,known_move_id,minimum_happiness,minimum_beauty,relative_physical_stats,party_species_id,trade_species_id
 1,2,1,,16,,,,,,,,,,
 2,3,1,,32,,,,,,,,,,
 3,5,1,,16,,,,,,,,,,
diff --git a/pokedex/data/csv/pokemon_flavor_summaries.csv b/pokedex/data/csv/pokemon_flavor_summaries.csv
deleted file mode 100644
index 9385607..0000000
--- a/pokedex/data/csv/pokemon_flavor_summaries.csv
+++ /dev/null
@@ -1 +0,0 @@
-pokemon_id,local_language_id,flavor_summary
diff --git a/pokedex/data/csv/pokemon_form_group_prose.csv b/pokedex/data/csv/pokemon_form_group_prose.csv
deleted file mode 100644
index 5afc717..0000000
--- a/pokedex/data/csv/pokemon_form_group_prose.csv
+++ /dev/null
@@ -1,20 +0,0 @@
-pokemon_form_group_id,local_language_id,term,description
-172,9,,"Spiky-eared Pichu can only be received by taking the shiny Pichu from an official promotion to []{pokemon:celebi}'s shrine in []{location:ilex-forest}.  Spiky-eared Pichu is always female, cannot evolve, and cannot be taken into the Wi-Fi Club or the Union Room, but is otherwise a normal Pichu."
-201,9,,Forms only affect appearance.  A form is determined at random before a wild encounter and cannot be changed.
-351,9,Form,"Form changes along with type to match the [weather]{mechanic:weather} in battle, due to []{ability:forecast}.  Castform is always in its normal form outside of battle, regardless of weather."
-386,9,Forme,"Forms have different stats and movepools.  In Generation III, Deoxys's form depends on the game: Normal Forme in Ruby and Sapphire, Attack Forme in FireRed, Defense Forme in LeafGreen, and Speed Forme in Emerald.  In Generation IV, every form exists: form is preserved when transferring via []{location:pal-park}, and meteorites in the southeast corner of []{location:veilstone-city} or at the west end of []{location:unova-route-3} can be used to switch between forms."
-412,9,Cloak,"Forms only affect appearance, although they become permanent upon evolution.  Wild and newly-hatched Burmy are always in a Plant Cloak.  Burmy's cloak changes to match the terrain after a battle it participated in: Plant Cloak by default; Sandy Cloak in sandy or rocky areas, such as beaches, caves, and trails; and Trash Cloak in buildings."
-413,9,Cloak,"Forms have different stats and movepools.  During evolution, Burmy's current cloak becomes Wormadam's form, and can no longer be changed."
-421,9,Form,"Sunshine form is active during [strong sunlight]{mechanic:strong-sunlight}.  Otherwise, Cherrim defaults to its Overcast form."
-422,9,Sea,"Forms only affect appearance.  A form is determined before a wild encounter based on whether the battle is in western or eastern Sinnoh, or inherited from the mother when breeding, and cannot be changed."
-423,9,Sea,Forms only affect appearance.  A form is determined before a wild encounter based on whether the battle is in western or eastern Sinnoh and cannot be changed.
-479,9,Form,"Forms have different signature moves, and the appliance forms' stats are different from the normal form's.  When switching forms, the old signature move (if any) is removed and the new one must be learned, overwriting another move if need be, or the switch will be cancelled; however, it can be forgotten while in the new form.  There are appliances for switching forms in a secret room in the Team Galactic Eterna Building or the Silph Co. Office Building; the room in the Galactic Building requires a []{item:secret-key}, but the room in Silph Co. is freely accessible when walking with Rotom.  Rotom can be returned to its normal form by checking the space its appliance occupied.  It also reverts to its normal form upon entering the Wi-Fi Club or the Union Room."
-487,9,Forme,"Forms have different stats.  Giratina transforms into Origin Forme in the []{location:distortion-world} or while holding a []{item:griseous-orb}.  Otherwise, it assumes its Altered Forme.  The Griseous Orb returns to the bag upon entering the Wi-Fi Club or the Union Room."
-492,9,Forme,"Forms have different stats and movepools.  Shaymin transforms into Sky Forme with the use of a []{item:gracidea}.  It is limited to Land Forme at night, when [frozen]{mechanic:frozen}, in the storage system boxes, in the Wi-Fi Club, and in the Union Room; under these conditions, Sky Shaymin reverts to Land Forme, and the Gracidea has no effect.  The Gracidea must be used again to return to Sky Forme.  A Gracidea may be received by showing a woman in southwest []{location:floaroma-town} or the []{location:goldenrod-city} flower shop a Shaymin met in a fateful encounter."
-493,9,Type,"Form changes along with type to match a held Plate, due to []{ability:multitype}."
-550,9,Form,"Forms have one different ability and different wild held items. Blue-Striped Basculin are rarer in Black Version, and Red-Striped Basculin in White Version."
-555,9,Mode,"Forms have different stats and types.  Darmanitan changes to Zen Mode below 50% HP if it has []{ability:zen-mode} as its ability, and back to Standard Mode above 50% HP."
-585,9,Form,"Form changes to match the season.  To switch forms, Deerling must be in the party when loading the game."
-586,9,Form,"Form changes to match the season.  To switch forms, Sawsbuck must be in the party when loading the game."
-648,9,Forme,"Forms have different stats and types.  Meloetta changes form upon using []{move:relic-song} in battle, and reverts to Aria Forme outside of battle."
-649,9,Drive,Form changes to match Genesect's held Drive.  The only differences are the color of its weapon and []{move:techno-blast}'s type.
diff --git a/pokedex/data/csv/pokemon_form_names.csv b/pokedex/data/csv/pokemon_form_names.csv
index e51e486..e3d4d73 100644
--- a/pokedex/data/csv/pokemon_form_names.csv
+++ b/pokedex/data/csv/pokemon_form_names.csv
@@ -1,728 +1,728 @@
-pokemon_form_id,local_language_id,name
-1,9,
-2,9,
-3,9,
-4,9,
-5,9,
-6,9,
-7,9,
-8,9,
-9,9,
-10,9,
-11,9,
-12,9,
-13,9,
-14,9,
-15,9,
-16,9,
-17,9,
-18,9,
-19,9,
-20,9,
-21,9,
-22,9,
-23,9,
-24,9,
-25,9,
-26,9,
-27,9,
-28,9,
-29,9,
-30,9,
-31,9,
-32,9,
-33,9,
-34,9,
-35,9,
-36,9,
-37,9,
-38,9,
-39,9,
-40,9,
-41,9,
-42,9,
-43,9,
-44,9,
-45,9,
-46,9,
-47,9,
-48,9,
-49,9,
-50,9,
-51,9,
-52,9,
-53,9,
-54,9,
-55,9,
-56,9,
-57,9,
-58,9,
-59,9,
-60,9,
-61,9,
-62,9,
-63,9,
-64,9,
-65,9,
-66,9,
-67,9,
-68,9,
-69,9,
-70,9,
-71,9,
-72,9,
-73,9,
-74,9,
-75,9,
-76,9,
-77,9,
-78,9,
-79,9,
-80,9,
-81,9,
-82,9,
-83,9,
-84,9,
-85,9,
-86,9,
-87,9,
-88,9,
-89,9,
-90,9,
-91,9,
-92,9,
-93,9,
-94,9,
-95,9,
-96,9,
-97,9,
-98,9,
-99,9,
-100,9,
-101,9,
-102,9,
-103,9,
-104,9,
-105,9,
-106,9,
-107,9,
-108,9,
-109,9,
-110,9,
-111,9,
-112,9,
-113,9,
-114,9,
-115,9,
-116,9,
-117,9,
-118,9,
-119,9,
-120,9,
-121,9,
-122,9,
-123,9,
-124,9,
-125,9,
-126,9,
-127,9,
-128,9,
-129,9,
-130,9,
-131,9,
-132,9,
-133,9,
-134,9,
-135,9,
-136,9,
-137,9,
-138,9,
-139,9,
-140,9,
-141,9,
-142,9,
-143,9,
-144,9,
-145,9,
-146,9,
-147,9,
-148,9,
-149,9,
-150,9,
-151,9,
-152,9,
-153,9,
-154,9,
-155,9,
-156,9,
-157,9,
-158,9,
-159,9,
-160,9,
-161,9,
-162,9,
-163,9,
-164,9,
-165,9,
-166,9,
-167,9,
-168,9,
-169,9,
-170,9,
-171,9,
-172,9,
-173,9,
-174,9,
-175,9,
-176,9,
-177,9,
-178,9,
-179,9,
-180,9,
-181,9,
-182,9,
-183,9,
-184,9,
-185,9,
-186,9,
-187,9,
-188,9,
-189,9,
-190,9,
-191,9,
-192,9,
-193,9,
-194,9,
-195,9,
-196,9,
-197,9,
-198,9,
-199,9,
-200,9,
-201,9,A
-202,9,
-203,9,
-204,9,
-205,9,
-206,9,
-207,9,
-208,9,
-209,9,
-210,9,
-211,9,
-212,9,
-213,9,
-214,9,
-215,9,
-216,9,
-217,9,
-218,9,
-219,9,
-220,9,
-221,9,
-222,9,
-223,9,
-224,9,
-225,9,
-226,9,
-227,9,
-228,9,
-229,9,
-230,9,
-231,9,
-232,9,
-233,9,
-234,9,
-235,9,
-236,9,
-237,9,
-238,9,
-239,9,
-240,9,
-241,9,
-242,9,
-243,9,
-244,9,
-245,9,
-246,9,
-247,9,
-248,9,
-249,9,
-250,9,
-251,9,
-252,9,
-253,9,
-254,9,
-255,9,
-256,9,
-257,9,
-258,9,
-259,9,
-260,9,
-261,9,
-262,9,
-263,9,
-264,9,
-265,9,
-266,9,
-267,9,
-268,9,
-269,9,
-270,9,
-271,9,
-272,9,
-273,9,
-274,9,
-275,9,
-276,9,
-277,9,
-278,9,
-279,9,
-280,9,
-281,9,
-282,9,
-283,9,
-284,9,
-285,9,
-286,9,
-287,9,
-288,9,
-289,9,
-290,9,
-291,9,
-292,9,
-293,9,
-294,9,
-295,9,
-296,9,
-297,9,
-298,9,
-299,9,
-300,9,
-301,9,
-302,9,
-303,9,
-304,9,
-305,9,
-306,9,
-307,9,
-308,9,
-309,9,
-310,9,
-311,9,
-312,9,
-313,9,
-314,9,
-315,9,
-316,9,
-317,9,
-318,9,
-319,9,
-320,9,
-321,9,
-322,9,
-323,9,
-324,9,
-325,9,
-326,9,
-327,9,
-328,9,
-329,9,
-330,9,
-331,9,
-332,9,
-333,9,
-334,9,
-335,9,
-336,9,
-337,9,
-338,9,
-339,9,
-340,9,
-341,9,
-342,9,
-343,9,
-344,9,
-345,9,
-346,9,
-347,9,
-348,9,
-349,9,
-350,9,
-351,9,
-352,9,
-353,9,
-354,9,
-355,9,
-356,9,
-357,9,
-358,9,
-359,9,
-360,9,
-361,9,
-362,9,
-363,9,
-364,9,
-365,9,
-366,9,
-367,9,
-368,9,
-369,9,
-370,9,
-371,9,
-372,9,
-373,9,
-374,9,
-375,9,
-376,9,
-377,9,
-378,9,
-379,9,
-380,9,
-381,9,
-382,9,
-383,9,
-384,9,
-385,9,
-386,9,Normal
-387,9,
-388,9,
-389,9,
-390,9,
-391,9,
-392,9,
-393,9,
-394,9,
-395,9,
-396,9,
-397,9,
-398,9,
-399,9,
-400,9,
-401,9,
-402,9,
-403,9,
-404,9,
-405,9,
-406,9,
-407,9,
-408,9,
-409,9,
-410,9,
-411,9,
-412,9,Plant
-413,9,Plant
-414,9,
-415,9,
-416,9,
-417,9,
-418,9,
-419,9,
-420,9,
-421,9,Overcast
-422,9,West
-423,9,West
-424,9,
-425,9,
-426,9,
-427,9,
-428,9,
-429,9,
-430,9,
-431,9,
-432,9,
-433,9,
-434,9,
-435,9,
-436,9,
-437,9,
-438,9,
-439,9,
-440,9,
-441,9,
-442,9,
-443,9,
-444,9,
-445,9,
-446,9,
-447,9,
-448,9,
-449,9,
-450,9,
-451,9,
-452,9,
-453,9,
-454,9,
-455,9,
-456,9,
-457,9,
-458,9,
-459,9,
-460,9,
-461,9,
-462,9,
-463,9,
-464,9,
-465,9,
-466,9,
-467,9,
-468,9,
-469,9,
-470,9,
-471,9,
-472,9,
-473,9,
-474,9,
-475,9,
-476,9,
-477,9,
-478,9,
-479,9,
-480,9,
-481,9,
-482,9,
-483,9,
-484,9,
-485,9,
-486,9,
-487,9,Altered
-488,9,
-489,9,
-490,9,
-491,9,
-492,9,Land
-493,9,Normal
-494,9,
-495,9,
-496,9,
-497,9,
-498,9,
-499,9,
-500,9,
-501,9,
-502,9,
-503,9,
-504,9,
-505,9,
-506,9,
-507,9,
-508,9,
-509,9,
-510,9,
-511,9,
-512,9,
-513,9,
-514,9,
-515,9,
-516,9,
-517,9,
-518,9,
-519,9,
-520,9,
-521,9,
-522,9,
-523,9,
-524,9,
-525,9,
-526,9,
-527,9,
-528,9,
-529,9,
-530,9,
-531,9,
-532,9,
-533,9,
-534,9,
-535,9,
-536,9,
-537,9,
-538,9,
-539,9,
-540,9,
-541,9,
-542,9,
-543,9,
-544,9,
-545,9,
-546,9,
-547,9,
-548,9,
-549,9,
-550,9,Red-Striped
-551,9,
-552,9,
-553,9,
-554,9,
-555,9,Standard
-556,9,
-557,9,
-558,9,
-559,9,
-560,9,
-561,9,
-562,9,
-563,9,
-564,9,
-565,9,
-566,9,
-567,9,
-568,9,
-569,9,
-570,9,
-571,9,
-572,9,
-573,9,
-574,9,
-575,9,
-576,9,
-577,9,
-578,9,
-579,9,
-580,9,
-581,9,
-582,9,
-583,9,
-584,9,
-585,9,Spring
-586,9,Spring
-587,9,
-588,9,
-589,9,
-590,9,
-591,9,
-592,9,
-593,9,
-594,9,
-595,9,
-596,9,
-597,9,
-598,9,
-599,9,
-600,9,
-601,9,
-602,9,
-603,9,
-604,9,
-605,9,
-606,9,
-607,9,
-608,9,
-609,9,
-610,9,
-611,9,
-612,9,
-613,9,
-614,9,
-615,9,
-616,9,
-617,9,
-618,9,
-619,9,
-620,9,
-621,9,
-622,9,
-623,9,
-624,9,
-625,9,
-626,9,
-627,9,
-628,9,
-629,9,
-630,9,
-631,9,
-632,9,
-633,9,
-634,9,
-635,9,
-636,9,
-637,9,
-638,9,
-639,9,
-640,9,
-641,9,
-642,9,
-643,9,
-644,9,
-645,9,
-646,9,
-647,9,
-648,9,Aria
-649,9,
-10001,9,B
-10002,9,C
-10003,9,D
-10004,9,E
-10005,9,F
-10006,9,G
-10007,9,H
-10008,9,I
-10009,9,J
-10010,9,K
-10011,9,L
-10012,9,M
-10013,9,N
-10014,9,O
-10015,9,P
-10016,9,Q
-10017,9,R
-10018,9,S
-10019,9,T
-10020,9,U
-10021,9,V
-10022,9,W
-10023,9,X
-10024,9,Y
-10025,9,Z
-10026,9,!
-10027,9,?
-10028,9,Sunny
-10029,9,Rainy
-10030,9,Snowy
-10031,9,Attack
-10032,9,Defense
-10033,9,Speed
-10034,9,Sandy
-10035,9,Trash
-10036,9,Sandy
-10037,9,Trash
-10038,9,Sunshine
-10039,9,East
-10040,9,East
-10041,9,Bug
-10042,9,Dark
-10043,9,Dragon
-10044,9,Electric
-10045,9,Fighting
-10046,9,Fire
-10047,9,Flying
-10048,9,Ghost
-10049,9,Grass
-10050,9,Ground
-10051,9,Ice
-10052,9,Poison
-10053,9,Psychic
-10054,9,Rock
-10055,9,Steel
-10056,9,Water
-10057,9,???
-10058,9,Heat
-10059,9,Wash
-10060,9,Frost
-10061,9,Fan
-10062,9,Mow
-10063,9,Origin
-10064,9,Sky
-10065,9,Spiky-eared
-10066,9,Blue-Striped
-10067,9,Zen
-10068,9,Summer
-10069,9,Autumn
-10070,9,Winter
-10071,9,Summer
-10072,9,Autumn
-10073,9,Winter
-10074,9,Pirouette
-10075,9,Douse
-10076,9,Shock
-10077,9,Burn
-10078,9,Chill
+pokemon_form_id,local_language_id,form_name,pokemon_name
+1,9,,
+2,9,,
+3,9,,
+4,9,,
+5,9,,
+6,9,,
+7,9,,
+8,9,,
+9,9,,
+10,9,,
+11,9,,
+12,9,,
+13,9,,
+14,9,,
+15,9,,
+16,9,,
+17,9,,
+18,9,,
+19,9,,
+20,9,,
+21,9,,
+22,9,,
+23,9,,
+24,9,,
+25,9,,
+26,9,,
+27,9,,
+28,9,,
+29,9,,
+30,9,,
+31,9,,
+32,9,,
+33,9,,
+34,9,,
+35,9,,
+36,9,,
+37,9,,
+38,9,,
+39,9,,
+40,9,,
+41,9,,
+42,9,,
+43,9,,
+44,9,,
+45,9,,
+46,9,,
+47,9,,
+48,9,,
+49,9,,
+50,9,,
+51,9,,
+52,9,,
+53,9,,
+54,9,,
+55,9,,
+56,9,,
+57,9,,
+58,9,,
+59,9,,
+60,9,,
+61,9,,
+62,9,,
+63,9,,
+64,9,,
+65,9,,
+66,9,,
+67,9,,
+68,9,,
+69,9,,
+70,9,,
+71,9,,
+72,9,,
+73,9,,
+74,9,,
+75,9,,
+76,9,,
+77,9,,
+78,9,,
+79,9,,
+80,9,,
+81,9,,
+82,9,,
+83,9,,
+84,9,,
+85,9,,
+86,9,,
+87,9,,
+88,9,,
+89,9,,
+90,9,,
+91,9,,
+92,9,,
+93,9,,
+94,9,,
+95,9,,
+96,9,,
+97,9,,
+98,9,,
+99,9,,
+100,9,,
+101,9,,
+102,9,,
+103,9,,
+104,9,,
+105,9,,
+106,9,,
+107,9,,
+108,9,,
+109,9,,
+110,9,,
+111,9,,
+112,9,,
+113,9,,
+114,9,,
+115,9,,
+116,9,,
+117,9,,
+118,9,,
+119,9,,
+120,9,,
+121,9,,
+122,9,,
+123,9,,
+124,9,,
+125,9,,
+126,9,,
+127,9,,
+128,9,,
+129,9,,
+130,9,,
+131,9,,
+132,9,,
+133,9,,
+134,9,,
+135,9,,
+136,9,,
+137,9,,
+138,9,,
+139,9,,
+140,9,,
+141,9,,
+142,9,,
+143,9,,
+144,9,,
+145,9,,
+146,9,,
+147,9,,
+148,9,,
+149,9,,
+150,9,,
+151,9,,
+152,9,,
+153,9,,
+154,9,,
+155,9,,
+156,9,,
+157,9,,
+158,9,,
+159,9,,
+160,9,,
+161,9,,
+162,9,,
+163,9,,
+164,9,,
+165,9,,
+166,9,,
+167,9,,
+168,9,,
+169,9,,
+170,9,,
+171,9,,
+172,9,,
+173,9,,
+174,9,,
+175,9,,
+176,9,,
+177,9,,
+178,9,,
+179,9,,
+180,9,,
+181,9,,
+182,9,,
+183,9,,
+184,9,,
+185,9,,
+186,9,,
+187,9,,
+188,9,,
+189,9,,
+190,9,,
+191,9,,
+192,9,,
+193,9,,
+194,9,,
+195,9,,
+196,9,,
+197,9,,
+198,9,,
+199,9,,
+200,9,,
+201,9,Letter A,Unown A
+202,9,,
+203,9,,
+204,9,,
+205,9,,
+206,9,,
+207,9,,
+208,9,,
+209,9,,
+210,9,,
+211,9,,
+212,9,,
+213,9,,
+214,9,,
+215,9,,
+216,9,,
+217,9,,
+218,9,,
+219,9,,
+220,9,,
+221,9,,
+222,9,,
+223,9,,
+224,9,,
+225,9,,
+226,9,,
+227,9,,
+228,9,,
+229,9,,
+230,9,,
+231,9,,
+232,9,,
+233,9,,
+234,9,,
+235,9,,
+236,9,,
+237,9,,
+238,9,,
+239,9,,
+240,9,,
+241,9,,
+242,9,,
+243,9,,
+244,9,,
+245,9,,
+246,9,,
+247,9,,
+248,9,,
+249,9,,
+250,9,,
+251,9,,
+252,9,,
+253,9,,
+254,9,,
+255,9,,
+256,9,,
+257,9,,
+258,9,,
+259,9,,
+260,9,,
+261,9,,
+262,9,,
+263,9,,
+264,9,,
+265,9,,
+266,9,,
+267,9,,
+268,9,,
+269,9,,
+270,9,,
+271,9,,
+272,9,,
+273,9,,
+274,9,,
+275,9,,
+276,9,,
+277,9,,
+278,9,,
+279,9,,
+280,9,,
+281,9,,
+282,9,,
+283,9,,
+284,9,,
+285,9,,
+286,9,,
+287,9,,
+288,9,,
+289,9,,
+290,9,,
+291,9,,
+292,9,,
+293,9,,
+294,9,,
+295,9,,
+296,9,,
+297,9,,
+298,9,,
+299,9,,
+300,9,,
+301,9,,
+302,9,,
+303,9,,
+304,9,,
+305,9,,
+306,9,,
+307,9,,
+308,9,,
+309,9,,
+310,9,,
+311,9,,
+312,9,,
+313,9,,
+314,9,,
+315,9,,
+316,9,,
+317,9,,
+318,9,,
+319,9,,
+320,9,,
+321,9,,
+322,9,,
+323,9,,
+324,9,,
+325,9,,
+326,9,,
+327,9,,
+328,9,,
+329,9,,
+330,9,,
+331,9,,
+332,9,,
+333,9,,
+334,9,,
+335,9,,
+336,9,,
+337,9,,
+338,9,,
+339,9,,
+340,9,,
+341,9,,
+342,9,,
+343,9,,
+344,9,,
+345,9,,
+346,9,,
+347,9,,
+348,9,,
+349,9,,
+350,9,,
+351,9,,
+352,9,,
+353,9,,
+354,9,,
+355,9,,
+356,9,,
+357,9,,
+358,9,,
+359,9,,
+360,9,,
+361,9,,
+362,9,,
+363,9,,
+364,9,,
+365,9,,
+366,9,,
+367,9,,
+368,9,,
+369,9,,
+370,9,,
+371,9,,
+372,9,,
+373,9,,
+374,9,,
+375,9,,
+376,9,,
+377,9,,
+378,9,,
+379,9,,
+380,9,,
+381,9,,
+382,9,,
+383,9,,
+384,9,,
+385,9,,
+386,9,Normal Forme,Normal Deoxys
+387,9,,
+388,9,,
+389,9,,
+390,9,,
+391,9,,
+392,9,,
+393,9,,
+394,9,,
+395,9,,
+396,9,,
+397,9,,
+398,9,,
+399,9,,
+400,9,,
+401,9,,
+402,9,,
+403,9,,
+404,9,,
+405,9,,
+406,9,,
+407,9,,
+408,9,,
+409,9,,
+410,9,,
+411,9,,
+412,9,Plant Cloak,Plant Burmy
+413,9,Plant Cloak,Plant Wormadam
+414,9,,
+415,9,,
+416,9,,
+417,9,,
+418,9,,
+419,9,,
+420,9,,
+421,9,Overcast Form,Overcast Cherrim
+422,9,West Sea,Western Shellos
+423,9,West Sea,Western Gastrodon
+424,9,,
+425,9,,
+426,9,,
+427,9,,
+428,9,,
+429,9,,
+430,9,,
+431,9,,
+432,9,,
+433,9,,
+434,9,,
+435,9,,
+436,9,,
+437,9,,
+438,9,,
+439,9,,
+440,9,,
+441,9,,
+442,9,,
+443,9,,
+444,9,,
+445,9,,
+446,9,,
+447,9,,
+448,9,,
+449,9,,
+450,9,,
+451,9,,
+452,9,,
+453,9,,
+454,9,,
+455,9,,
+456,9,,
+457,9,,
+458,9,,
+459,9,,
+460,9,,
+461,9,,
+462,9,,
+463,9,,
+464,9,,
+465,9,,
+466,9,,
+467,9,,
+468,9,,
+469,9,,
+470,9,,
+471,9,,
+472,9,,
+473,9,,
+474,9,,
+475,9,,
+476,9,,
+477,9,,
+478,9,,
+479,9,,
+480,9,,
+481,9,,
+482,9,,
+483,9,,
+484,9,,
+485,9,,
+486,9,,
+487,9,Altered Forme,Altered Giratina
+488,9,,
+489,9,,
+490,9,,
+491,9,,
+492,9,Land Forme,Land Shaymin
+493,9,Normal Type,Normal Arceus
+494,9,,
+495,9,,
+496,9,,
+497,9,,
+498,9,,
+499,9,,
+500,9,,
+501,9,,
+502,9,,
+503,9,,
+504,9,,
+505,9,,
+506,9,,
+507,9,,
+508,9,,
+509,9,,
+510,9,,
+511,9,,
+512,9,,
+513,9,,
+514,9,,
+515,9,,
+516,9,,
+517,9,,
+518,9,,
+519,9,,
+520,9,,
+521,9,,
+522,9,,
+523,9,,
+524,9,,
+525,9,,
+526,9,,
+527,9,,
+528,9,,
+529,9,,
+530,9,,
+531,9,,
+532,9,,
+533,9,,
+534,9,,
+535,9,,
+536,9,,
+537,9,,
+538,9,,
+539,9,,
+540,9,,
+541,9,,
+542,9,,
+543,9,,
+544,9,,
+545,9,,
+546,9,,
+547,9,,
+548,9,,
+549,9,,
+550,9,Red-Striped Form,Red-Striped Basculin
+551,9,,
+552,9,,
+553,9,,
+554,9,,
+555,9,Standard Mode,Standard Darmanitan
+556,9,,
+557,9,,
+558,9,,
+559,9,,
+560,9,,
+561,9,,
+562,9,,
+563,9,,
+564,9,,
+565,9,,
+566,9,,
+567,9,,
+568,9,,
+569,9,,
+570,9,,
+571,9,,
+572,9,,
+573,9,,
+574,9,,
+575,9,,
+576,9,,
+577,9,,
+578,9,,
+579,9,,
+580,9,,
+581,9,,
+582,9,,
+583,9,,
+584,9,,
+585,9,Spring Form,Spring Deerling
+586,9,Spring Form,Spring Sawsbuck
+587,9,,
+588,9,,
+589,9,,
+590,9,,
+591,9,,
+592,9,,
+593,9,,
+594,9,,
+595,9,,
+596,9,,
+597,9,,
+598,9,,
+599,9,,
+600,9,,
+601,9,,
+602,9,,
+603,9,,
+604,9,,
+605,9,,
+606,9,,
+607,9,,
+608,9,,
+609,9,,
+610,9,,
+611,9,,
+612,9,,
+613,9,,
+614,9,,
+615,9,,
+616,9,,
+617,9,,
+618,9,,
+619,9,,
+620,9,,
+621,9,,
+622,9,,
+623,9,,
+624,9,,
+625,9,,
+626,9,,
+627,9,,
+628,9,,
+629,9,,
+630,9,,
+631,9,,
+632,9,,
+633,9,,
+634,9,,
+635,9,,
+636,9,,
+637,9,,
+638,9,,
+639,9,,
+640,9,,
+641,9,,
+642,9,,
+643,9,,
+644,9,,
+645,9,,
+646,9,,
+647,9,,
+648,9,Aria Forme,Aria Meloetta
+649,9,,
+650,9,Letter B,Unown B
+651,9,Letter C,Unown C
+652,9,Letter D,Unown D
+653,9,Letter E,Unown E
+654,9,Letter F,Unown F
+655,9,Letter G,Unown G
+656,9,Letter H,Unown H
+657,9,Letter I,Unown I
+658,9,Letter J,Unown J
+659,9,Letter K,Unown K
+660,9,Letter L,Unown L
+661,9,Letter M,Unown M
+662,9,Letter N,Unown N
+663,9,Letter O,Unown O
+664,9,Letter P,Unown P
+665,9,Letter Q,Unown Q
+666,9,Letter R,Unown R
+667,9,Letter S,Unown S
+668,9,Letter T,Unown T
+669,9,Letter U,Unown U
+670,9,Letter V,Unown V
+671,9,Letter W,Unown W
+672,9,Letter X,Unown X
+673,9,Letter Y,Unown Y
+674,9,Letter Z,Unown Z
+675,9,Exclamation Mark,Unown !
+676,9,Question Mark,Unown ?
+677,9,Sunny Form,Sunny Castform
+678,9,Rainy Form,Rainy Castform
+679,9,Snowy Form,Snowy Castform
+680,9,Attack Form,Attack Deoxys
+681,9,Defense Form,Defense Deoxys
+682,9,Speed Form,Speed Deoxys
+683,9,Sandy Cloak,Sandy Burmy
+684,9,Trash Cloak,Trash Burmy
+685,9,Sandy Cloak,Sandy Wormadam
+686,9,Trash Cloak,Trash Wormadam
+687,9,Sunshine Form,sunshine Cherrim
+688,9,East Sea,East Shellos
+689,9,East Sea,East Gastrodon
+690,9,Bug Type,Bug Arceus
+691,9,Dark Type,Dark Arceus
+692,9,Dragon Type,Dragon Arceus
+693,9,Electric Type,Electric Arceus
+694,9,Fighting Type,Fighting Arceus
+695,9,Fire Type,Fire Arceus
+696,9,Flying Type,Flying Arceus
+697,9,Ghost Type,Ghost Arceus
+698,9,Grass Type,Grass Arceus
+699,9,Ground Type,Ground Arceus
+700,9,Ice Type,Ice Arceus
+701,9,Poison Type,Poison Arceus
+702,9,Psychic Type,Psychic Arceus
+703,9,Rock Type,Rock Arceus
+704,9,Steel Type,Steel Arceus
+705,9,Water Type,Water Arceus
+706,9,??? Type,??? Arceus
+707,9,Heat Form,Heat Rotom
+708,9,Wash Form,Wash Rotom
+709,9,Frost Form,Frost Rotom
+710,9,Fan Form,Fan Rotom
+711,9,Mow Form,Mow Rotom
+712,9,Origin Forme,Origin Giratina
+713,9,Sky Forme,Sky Shaymin
+714,9,Spiky-eared Form,Spiky-eared Pichu
+715,9,Blue-Striped Form,Blue-Striped Basculin
+716,9,Zen Mode,Zen Darmanitan
+717,9,Summer Form,Summer Deerling
+718,9,Autumn Form,Autumn Deerling
+719,9,Winter Form,Winter Deerling
+720,9,Summer Form,Summer Sawsbuck
+721,9,Autumn Form,Autumn Sawsbuck
+722,9,Winter Form,Winter Sawsbuck
+723,9,Pirouette Forme,Pirouette Meloetta
+724,9,Douse Drive,Douse Genesect
+725,9,Shock Drive,Shock Genesect
+726,9,Burn Drive,Burn Genesect
+727,9,Chill Drive,Chill Genesect
diff --git a/pokedex/data/csv/pokemon_form_pokeathlon_stats.csv b/pokedex/data/csv/pokemon_form_pokeathlon_stats.csv
index 2ecdf0c..0ebb485 100644
--- a/pokedex/data/csv/pokemon_form_pokeathlon_stats.csv
+++ b/pokedex/data/csv/pokemon_form_pokeathlon_stats.csv
@@ -2464,308 +2464,308 @@ pokemon_form_id,pokeathlon_stat_id,minimum_stat,base_stat,maximum_stat
 493,3,1,4,5
 493,4,1,5,5
 493,5,2,4,5
-10001,1,1,2,4
-10001,2,1,2,3
-10001,3,1,2,4
-10001,4,1,2,4
-10001,5,2,2,5
-10002,1,1,2,4
-10002,2,1,2,3
-10002,3,1,2,4
-10002,4,1,2,4
-10002,5,2,2,5
-10003,1,1,2,4
-10003,2,1,2,3
-10003,3,1,2,4
-10003,4,1,2,4
-10003,5,2,2,5
-10004,1,1,2,4
-10004,2,1,2,3
-10004,3,1,2,4
-10004,4,1,2,4
-10004,5,2,2,5
-10005,1,1,2,4
-10005,2,1,2,3
-10005,3,1,2,4
-10005,4,1,2,4
-10005,5,2,2,5
-10006,1,1,2,4
-10006,2,1,2,3
-10006,3,1,2,4
-10006,4,1,2,4
-10006,5,2,2,5
-10007,1,1,2,4
-10007,2,1,2,3
-10007,3,1,2,4
-10007,4,1,2,4
-10007,5,2,2,5
-10008,1,1,2,4
-10008,2,1,2,3
-10008,3,1,2,4
-10008,4,1,2,4
-10008,5,2,2,5
-10009,1,1,2,4
-10009,2,1,2,3
-10009,3,1,2,4
-10009,4,1,2,4
-10009,5,2,2,5
-10010,1,1,2,4
-10010,2,1,2,3
-10010,3,1,2,4
-10010,4,1,2,4
-10010,5,2,2,5
-10011,1,1,2,4
-10011,2,1,2,3
-10011,3,1,2,4
-10011,4,1,2,4
-10011,5,2,2,5
-10012,1,1,2,4
-10012,2,1,2,3
-10012,3,1,2,4
-10012,4,1,2,4
-10012,5,2,2,5
-10013,1,1,2,4
-10013,2,1,2,3
-10013,3,1,2,4
-10013,4,1,2,4
-10013,5,2,2,5
-10014,1,1,2,4
-10014,2,1,2,3
-10014,3,1,2,4
-10014,4,1,2,4
-10014,5,2,2,5
-10015,1,1,2,4
-10015,2,1,2,3
-10015,3,1,2,4
-10015,4,1,2,4
-10015,5,2,2,5
-10016,1,1,2,4
-10016,2,1,2,3
-10016,3,1,2,4
-10016,4,1,2,4
-10016,5,2,2,5
-10017,1,1,2,4
-10017,2,1,2,3
-10017,3,1,2,4
-10017,4,1,2,4
-10017,5,2,2,5
-10018,1,1,2,4
-10018,2,1,2,3
-10018,3,1,2,4
-10018,4,1,2,4
-10018,5,2,2,5
-10019,1,1,2,4
-10019,2,1,2,3
-10019,3,1,2,4
-10019,4,1,2,4
-10019,5,2,2,5
-10020,1,1,2,4
-10020,2,1,2,3
-10020,3,1,2,4
-10020,4,1,2,4
-10020,5,2,2,5
-10021,1,1,2,4
-10021,2,1,2,3
-10021,3,1,2,4
-10021,4,1,2,4
-10021,5,2,2,5
-10022,1,1,2,4
-10022,2,1,2,3
-10022,3,1,2,4
-10022,4,1,2,4
-10022,5,2,2,5
-10023,1,1,2,4
-10023,2,1,2,3
-10023,3,1,2,4
-10023,4,1,2,4
-10023,5,2,2,5
-10024,1,1,2,4
-10024,2,1,2,3
-10024,3,1,2,4
-10024,4,1,2,4
-10024,5,2,2,5
-10025,1,1,2,4
-10025,2,1,2,3
-10025,3,1,2,4
-10025,4,1,2,4
-10025,5,2,2,5
-10026,1,1,2,4
-10026,2,1,2,3
-10026,3,1,2,5
-10026,4,1,2,4
-10026,5,2,2,5
-10027,1,1,2,4
-10027,2,1,2,3
-10027,3,1,2,5
-10027,4,1,2,4
-10027,5,2,2,5
-10031,1,2,4,5
-10031,2,4,5,5
-10031,3,1,4,5
-10031,4,1,2,3
-10031,5,2,3,4
-10032,1,1,3,3
-10032,2,1,3,4
-10032,3,2,4,5
-10032,4,4,5,5
-10032,5,2,2,3
-10033,1,4,5,5
-10033,2,1,2,3
-10033,3,2,4,5
-10033,4,1,3,4
-10033,5,2,4,4
-10034,1,1,1,4
-10034,2,1,1,4
-10034,3,1,1,4
-10034,4,1,1,5
-10034,5,2,2,3
-10035,1,1,1,4
-10035,2,1,1,5
-10035,3,1,1,3
-10035,4,1,1,5
-10035,5,2,2,3
-10036,1,1,2,3
-10036,2,3,4,5
-10036,3,1,2,2
-10036,4,1,4,5
-10036,5,2,2,3
-10037,1,1,1,3
-10037,2,1,3,5
-10037,3,1,2,3
-10037,4,5,5,5
-10037,5,2,2,2
-10039,1,1,1,3
-10039,2,1,1,4
-10039,3,1,1,3
-10039,4,1,3,5
-10039,5,2,2,2
-10040,1,1,1,2
-10040,2,3,4,5
-10040,3,1,3,3
-10040,4,4,5,5
-10040,5,2,2,2
-10041,1,5,5,5
-10041,2,1,4,5
-10041,3,1,4,5
-10041,4,1,4,5
-10041,5,2,5,5
-10042,1,1,4,5
-10042,2,5,5,5
-10042,3,1,5,5
-10042,4,1,4,5
-10042,5,2,4,5
-10043,1,1,3,5
-10043,2,1,5,5
-10043,3,1,5,5
-10043,4,1,5,5
-10043,5,2,5,5
-10044,1,5,5,5
-10044,2,1,4,5
-10044,3,1,5,5
-10044,4,1,4,5
-10044,5,2,4,5
-10045,1,1,4,5
-10045,2,1,5,5
-10045,3,5,5,5
-10045,4,1,4,5
-10045,5,2,4,5
-10046,1,1,4,5
-10046,2,5,5,5
-10046,3,1,4,5
-10046,4,1,5,5
-10046,5,2,4,5
-10047,1,1,5,5
-10047,2,1,4,5
-10047,3,1,4,5
-10047,4,1,4,5
-10047,5,5,5,5
-10048,1,1,4,5
-10048,2,1,4,5
-10048,3,1,5,5
-10048,4,1,4,5
-10048,5,5,5,5
-10049,1,1,4,5
-10049,2,1,4,5
-10049,3,1,4,5
-10049,4,5,5,5
-10049,5,2,5,5
-10050,1,1,4,5
-10050,2,1,5,5
-10050,3,1,4,5
-10050,4,5,5,5
-10050,5,2,4,5
-10051,1,5,5,5
-10051,2,1,5,5
-10051,3,1,4,5
-10051,4,1,4,5
-10051,5,2,4,5
-10052,1,1,4,5
-10052,2,1,4,5
-10052,3,5,5,5
-10052,4,1,5,5
-10052,5,2,4,5
-10053,1,1,5,5
-10053,2,1,4,5
-10053,3,5,5,5
-10053,4,1,4,5
-10053,5,2,4,5
-10054,1,1,4,5
-10054,2,5,5,5
-10054,3,1,4,5
-10054,4,1,5,5
-10054,5,2,4,5
-10055,1,1,4,5
-10055,2,1,4,5
-10055,3,1,5,5
-10055,4,5,5,5
-10055,5,2,4,5
-10056,1,1,5,5
-10056,2,1,4,5
-10056,3,5,5,5
-10056,4,1,4,5
-10056,5,2,4,5
-10057,1,1,5,5
-10057,2,1,5,5
-10057,3,1,5,5
-10057,4,1,5,5
-10057,5,2,5,5
-10058,1,2,3,4
-10058,2,2,4,4
-10058,3,1,3,4
-10058,4,1,3,4
-10058,5,2,4,4
-10059,1,1,3,3
-10059,2,1,3,3
-10059,3,1,3,4
-10059,4,1,4,4
-10059,5,2,2,4
-10060,1,1,3,4
-10060,2,1,2,3
-10060,3,3,4,5
-10060,4,1,3,3
-10060,5,3,3,4
-10061,1,3,3,5
-10061,2,1,3,5
-10061,3,1,3,3
-10061,4,1,2,3
-10061,5,4,5,5
-10062,1,1,3,3
-10062,2,1,3,3
-10062,3,3,5,5
-10062,4,3,3,4
-10062,5,2,2,4
-10063,1,1,3,5
-10063,2,1,3,5
-10063,3,1,3,5
-10063,4,1,3,5
-10063,5,2,3,5
-10064,1,3,3,5
-10064,2,1,4,4
-10064,3,1,3,4
-10064,4,1,3,3
-10064,5,3,5,5
-10065,1,3,5,5
-10065,2,1,1,1
-10065,3,1,3,5
-10065,4,1,1,3
-10065,5,2,3,4
+650,1,1,2,4
+650,2,1,2,3
+650,3,1,2,4
+650,4,1,2,4
+650,5,2,2,5
+651,1,1,2,4
+651,2,1,2,3
+651,3,1,2,4
+651,4,1,2,4
+651,5,2,2,5
+652,1,1,2,4
+652,2,1,2,3
+652,3,1,2,4
+652,4,1,2,4
+652,5,2,2,5
+653,1,1,2,4
+653,2,1,2,3
+653,3,1,2,4
+653,4,1,2,4
+653,5,2,2,5
+654,1,1,2,4
+654,2,1,2,3
+654,3,1,2,4
+654,4,1,2,4
+654,5,2,2,5
+655,1,1,2,4
+655,2,1,2,3
+655,3,1,2,4
+655,4,1,2,4
+655,5,2,2,5
+656,1,1,2,4
+656,2,1,2,3
+656,3,1,2,4
+656,4,1,2,4
+656,5,2,2,5
+657,1,1,2,4
+657,2,1,2,3
+657,3,1,2,4
+657,4,1,2,4
+657,5,2,2,5
+658,1,1,2,4
+658,2,1,2,3
+658,3,1,2,4
+658,4,1,2,4
+658,5,2,2,5
+659,1,1,2,4
+659,2,1,2,3
+659,3,1,2,4
+659,4,1,2,4
+659,5,2,2,5
+660,1,1,2,4
+660,2,1,2,3
+660,3,1,2,4
+660,4,1,2,4
+660,5,2,2,5
+661,1,1,2,4
+661,2,1,2,3
+661,3,1,2,4
+661,4,1,2,4
+661,5,2,2,5
+662,1,1,2,4
+662,2,1,2,3
+662,3,1,2,4
+662,4,1,2,4
+662,5,2,2,5
+663,1,1,2,4
+663,2,1,2,3
+663,3,1,2,4
+663,4,1,2,4
+663,5,2,2,5
+664,1,1,2,4
+664,2,1,2,3
+664,3,1,2,4
+664,4,1,2,4
+664,5,2,2,5
+665,1,1,2,4
+665,2,1,2,3
+665,3,1,2,4
+665,4,1,2,4
+665,5,2,2,5
+666,1,1,2,4
+666,2,1,2,3
+666,3,1,2,4
+666,4,1,2,4
+666,5,2,2,5
+667,1,1,2,4
+667,2,1,2,3
+667,3,1,2,4
+667,4,1,2,4
+667,5,2,2,5
+668,1,1,2,4
+668,2,1,2,3
+668,3,1,2,4
+668,4,1,2,4
+668,5,2,2,5
+669,1,1,2,4
+669,2,1,2,3
+669,3,1,2,4
+669,4,1,2,4
+669,5,2,2,5
+670,1,1,2,4
+670,2,1,2,3
+670,3,1,2,4
+670,4,1,2,4
+670,5,2,2,5
+671,1,1,2,4
+671,2,1,2,3
+671,3,1,2,4
+671,4,1,2,4
+671,5,2,2,5
+672,1,1,2,4
+672,2,1,2,3
+672,3,1,2,4
+672,4,1,2,4
+672,5,2,2,5
+673,1,1,2,4
+673,2,1,2,3
+673,3,1,2,4
+673,4,1,2,4
+673,5,2,2,5
+674,1,1,2,4
+674,2,1,2,3
+674,3,1,2,4
+674,4,1,2,4
+674,5,2,2,5
+675,1,1,2,4
+675,2,1,2,3
+675,3,1,2,5
+675,4,1,2,4
+675,5,2,2,5
+676,1,1,2,4
+676,2,1,2,3
+676,3,1,2,5
+676,4,1,2,4
+676,5,2,2,5
+680,1,2,4,5
+680,2,4,5,5
+680,3,1,4,5
+680,4,1,2,3
+680,5,2,3,4
+681,1,1,3,3
+681,2,1,3,4
+681,3,2,4,5
+681,4,4,5,5
+681,5,2,2,3
+682,1,4,5,5
+682,2,1,2,3
+682,3,2,4,5
+682,4,1,3,4
+682,5,2,4,4
+683,1,1,1,4
+683,2,1,1,4
+683,3,1,1,4
+683,4,1,1,5
+683,5,2,2,3
+684,1,1,1,4
+684,2,1,1,5
+684,3,1,1,3
+684,4,1,1,5
+684,5,2,2,3
+685,1,1,2,3
+685,2,3,4,5
+685,3,1,2,2
+685,4,1,4,5
+685,5,2,2,3
+686,1,1,1,3
+686,2,1,3,5
+686,3,1,2,3
+686,4,5,5,5
+686,5,2,2,2
+688,1,1,1,3
+688,2,1,1,4
+688,3,1,1,3
+688,4,1,3,5
+688,5,2,2,2
+689,1,1,1,2
+689,2,3,4,5
+689,3,1,3,3
+689,4,4,5,5
+689,5,2,2,2
+690,1,5,5,5
+690,2,1,4,5
+690,3,1,4,5
+690,4,1,4,5
+690,5,2,5,5
+691,1,1,4,5
+691,2,5,5,5
+691,3,1,5,5
+691,4,1,4,5
+691,5,2,4,5
+692,1,1,3,5
+692,2,1,5,5
+692,3,1,5,5
+692,4,1,5,5
+692,5,2,5,5
+693,1,5,5,5
+693,2,1,4,5
+693,3,1,5,5
+693,4,1,4,5
+693,5,2,4,5
+694,1,1,4,5
+694,2,1,5,5
+694,3,5,5,5
+694,4,1,4,5
+694,5,2,4,5
+695,1,1,4,5
+695,2,5,5,5
+695,3,1,4,5
+695,4,1,5,5
+695,5,2,4,5
+696,1,1,5,5
+696,2,1,4,5
+696,3,1,4,5
+696,4,1,4,5
+696,5,5,5,5
+697,1,1,4,5
+697,2,1,4,5
+697,3,1,5,5
+697,4,1,4,5
+697,5,5,5,5
+698,1,1,4,5
+698,2,1,4,5
+698,3,1,4,5
+698,4,5,5,5
+698,5,2,5,5
+699,1,1,4,5
+699,2,1,5,5
+699,3,1,4,5
+699,4,5,5,5
+699,5,2,4,5
+700,1,5,5,5
+700,2,1,5,5
+700,3,1,4,5
+700,4,1,4,5
+700,5,2,4,5
+701,1,1,4,5
+701,2,1,4,5
+701,3,5,5,5
+701,4,1,5,5
+701,5,2,4,5
+702,1,1,5,5
+702,2,1,4,5
+702,3,5,5,5
+702,4,1,4,5
+702,5,2,4,5
+703,1,1,4,5
+703,2,5,5,5
+703,3,1,4,5
+703,4,1,5,5
+703,5,2,4,5
+704,1,1,4,5
+704,2,1,4,5
+704,3,1,5,5
+704,4,5,5,5
+704,5,2,4,5
+705,1,1,5,5
+705,2,1,4,5
+705,3,5,5,5
+705,4,1,4,5
+705,5,2,4,5
+706,1,1,5,5
+706,2,1,5,5
+706,3,1,5,5
+706,4,1,5,5
+706,5,2,5,5
+707,1,2,3,4
+707,2,2,4,4
+707,3,1,3,4
+707,4,1,3,4
+707,5,2,4,4
+708,1,1,3,3
+708,2,1,3,3
+708,3,1,3,4
+708,4,1,4,4
+708,5,2,2,4
+709,1,1,3,4
+709,2,1,2,3
+709,3,3,4,5
+709,4,1,3,3
+709,5,3,3,4
+710,1,3,3,5
+710,2,1,3,5
+710,3,1,3,3
+710,4,1,2,3
+710,5,4,5,5
+711,1,1,3,3
+711,2,1,3,3
+711,3,3,5,5
+711,4,3,3,4
+711,5,2,2,4
+712,1,1,3,5
+712,2,1,3,5
+712,3,1,3,5
+712,4,1,3,5
+712,5,2,3,5
+713,1,3,3,5
+713,2,1,4,4
+713,3,1,3,4
+713,4,1,3,3
+713,5,3,5,5
+714,1,3,5,5
+714,2,1,1,1
+714,3,1,3,5
+714,4,1,1,3
+714,5,2,3,4
diff --git a/pokedex/data/csv/pokemon_forms.csv b/pokedex/data/csv/pokemon_forms.csv
index e34db6e..c609936 100644
--- a/pokedex/data/csv/pokemon_forms.csv
+++ b/pokedex/data/csv/pokemon_forms.csv
@@ -1,728 +1,728 @@
-id,identifier,form_base_pokemon_id,unique_pokemon_id,introduced_in_version_group_id,is_default,order
-1,,1,,1,1,1
-2,,2,,1,1,1
-3,,3,,1,1,1
-4,,4,,1,1,1
-5,,5,,1,1,1
-6,,6,,1,1,1
-7,,7,,1,1,1
-8,,8,,1,1,1
-9,,9,,1,1,1
-10,,10,,1,1,1
-11,,11,,1,1,1
-12,,12,,1,1,1
-13,,13,,1,1,1
-14,,14,,1,1,1
-15,,15,,1,1,1
-16,,16,,1,1,1
-17,,17,,1,1,1
-18,,18,,1,1,1
-19,,19,,1,1,1
-20,,20,,1,1,1
-21,,21,,1,1,1
-22,,22,,1,1,1
-23,,23,,1,1,1
-24,,24,,1,1,1
-25,,25,,1,1,1
-26,,26,,1,1,1
-27,,27,,1,1,1
-28,,28,,1,1,1
-29,,29,,1,1,1
-30,,30,,1,1,1
-31,,31,,1,1,1
-32,,32,,1,1,1
-33,,33,,1,1,1
-34,,34,,1,1,1
-35,,35,,1,1,1
-36,,36,,1,1,1
-37,,37,,1,1,1
-38,,38,,1,1,1
-39,,39,,1,1,1
-40,,40,,1,1,1
-41,,41,,1,1,1
-42,,42,,1,1,1
-43,,43,,1,1,1
-44,,44,,1,1,1
-45,,45,,1,1,1
-46,,46,,1,1,1
-47,,47,,1,1,1
-48,,48,,1,1,1
-49,,49,,1,1,1
-50,,50,,1,1,1
-51,,51,,1,1,1
-52,,52,,1,1,1
-53,,53,,1,1,1
-54,,54,,1,1,1
-55,,55,,1,1,1
-56,,56,,1,1,1
-57,,57,,1,1,1
-58,,58,,1,1,1
-59,,59,,1,1,1
-60,,60,,1,1,1
-61,,61,,1,1,1
-62,,62,,1,1,1
-63,,63,,1,1,1
-64,,64,,1,1,1
-65,,65,,1,1,1
-66,,66,,1,1,1
-67,,67,,1,1,1
-68,,68,,1,1,1
-69,,69,,1,1,1
-70,,70,,1,1,1
-71,,71,,1,1,1
-72,,72,,1,1,1
-73,,73,,1,1,1
-74,,74,,1,1,1
-75,,75,,1,1,1
-76,,76,,1,1,1
-77,,77,,1,1,1
-78,,78,,1,1,1
-79,,79,,1,1,1
-80,,80,,1,1,1
-81,,81,,1,1,1
-82,,82,,1,1,1
-83,,83,,1,1,1
-84,,84,,1,1,1
-85,,85,,1,1,1
-86,,86,,1,1,1
-87,,87,,1,1,1
-88,,88,,1,1,1
-89,,89,,1,1,1
-90,,90,,1,1,1
-91,,91,,1,1,1
-92,,92,,1,1,1
-93,,93,,1,1,1
-94,,94,,1,1,1
-95,,95,,1,1,1
-96,,96,,1,1,1
-97,,97,,1,1,1
-98,,98,,1,1,1
-99,,99,,1,1,1
-100,,100,,1,1,1
-101,,101,,1,1,1
-102,,102,,1,1,1
-103,,103,,1,1,1
-104,,104,,1,1,1
-105,,105,,1,1,1
-106,,106,,1,1,1
-107,,107,,1,1,1
-108,,108,,1,1,1
-109,,109,,1,1,1
-110,,110,,1,1,1
-111,,111,,1,1,1
-112,,112,,1,1,1
-113,,113,,1,1,1
-114,,114,,1,1,1
-115,,115,,1,1,1
-116,,116,,1,1,1
-117,,117,,1,1,1
-118,,118,,1,1,1
-119,,119,,1,1,1
-120,,120,,1,1,1
-121,,121,,1,1,1
-122,,122,,1,1,1
-123,,123,,1,1,1
-124,,124,,1,1,1
-125,,125,,1,1,1
-126,,126,,1,1,1
-127,,127,,1,1,1
-128,,128,,1,1,1
-129,,129,,1,1,1
-130,,130,,1,1,1
-131,,131,,1,1,1
-132,,132,,1,1,1
-133,,133,,1,1,1
-134,,134,,1,1,1
-135,,135,,1,1,1
-136,,136,,1,1,1
-137,,137,,1,1,1
-138,,138,,1,1,1
-139,,139,,1,1,1
-140,,140,,1,1,1
-141,,141,,1,1,1
-142,,142,,1,1,1
-143,,143,,1,1,1
-144,,144,,1,1,1
-145,,145,,1,1,1
-146,,146,,1,1,1
-147,,147,,1,1,1
-148,,148,,1,1,1
-149,,149,,1,1,1
-150,,150,,1,1,1
-151,,151,,1,1,1
-152,,152,,3,1,1
-153,,153,,3,1,1
-154,,154,,3,1,1
-155,,155,,3,1,1
-156,,156,,3,1,1
-157,,157,,3,1,1
-158,,158,,3,1,1
-159,,159,,3,1,1
-160,,160,,3,1,1
-161,,161,,3,1,1
-162,,162,,3,1,1
-163,,163,,3,1,1
-164,,164,,3,1,1
-165,,165,,3,1,1
-166,,166,,3,1,1
-167,,167,,3,1,1
-168,,168,,3,1,1
-169,,169,,3,1,1
-170,,170,,3,1,1
-171,,171,,3,1,1
-172,,172,,3,1,1
-173,,173,,3,1,1
-174,,174,,3,1,1
-175,,175,,3,1,1
-176,,176,,3,1,1
-177,,177,,3,1,1
-178,,178,,3,1,1
-179,,179,,3,1,1
-180,,180,,3,1,1
-181,,181,,3,1,1
-182,,182,,3,1,1
-183,,183,,3,1,1
-184,,184,,3,1,1
-185,,185,,3,1,1
-186,,186,,3,1,1
-187,,187,,3,1,1
-188,,188,,3,1,1
-189,,189,,3,1,1
-190,,190,,3,1,1
-191,,191,,3,1,1
-192,,192,,3,1,1
-193,,193,,3,1,1
-194,,194,,3,1,1
-195,,195,,3,1,1
-196,,196,,3,1,1
-197,,197,,3,1,1
-198,,198,,3,1,1
-199,,199,,3,1,1
-200,,200,,3,1,1
-201,a,201,,3,1,1
-202,,202,,3,1,1
-203,,203,,3,1,1
-204,,204,,3,1,1
-205,,205,,3,1,1
-206,,206,,3,1,1
-207,,207,,3,1,1
-208,,208,,3,1,1
-209,,209,,3,1,1
-210,,210,,3,1,1
-211,,211,,3,1,1
-212,,212,,3,1,1
-213,,213,,3,1,1
-214,,214,,3,1,1
-215,,215,,3,1,1
-216,,216,,3,1,1
-217,,217,,3,1,1
-218,,218,,3,1,1
-219,,219,,3,1,1
-220,,220,,3,1,1
-221,,221,,3,1,1
-222,,222,,3,1,1
-223,,223,,3,1,1
-224,,224,,3,1,1
-225,,225,,3,1,1
-226,,226,,3,1,1
-227,,227,,3,1,1
-228,,228,,3,1,1
-229,,229,,3,1,1
-230,,230,,3,1,1
-231,,231,,3,1,1
-232,,232,,3,1,1
-233,,233,,3,1,1
-234,,234,,3,1,1
-235,,235,,3,1,1
-236,,236,,3,1,1
-237,,237,,3,1,1
-238,,238,,3,1,1
-239,,239,,3,1,1
-240,,240,,3,1,1
-241,,241,,3,1,1
-242,,242,,3,1,1
-243,,243,,3,1,1
-244,,244,,3,1,1
-245,,245,,3,1,1
-246,,246,,3,1,1
-247,,247,,3,1,1
-248,,248,,3,1,1
-249,,249,,3,1,1
-250,,250,,3,1,1
-251,,251,,3,1,1
-252,,252,,5,1,1
-253,,253,,5,1,1
-254,,254,,5,1,1
-255,,255,,5,1,1
-256,,256,,5,1,1
-257,,257,,5,1,1
-258,,258,,5,1,1
-259,,259,,5,1,1
-260,,260,,5,1,1
-261,,261,,5,1,1
-262,,262,,5,1,1
-263,,263,,5,1,1
-264,,264,,5,1,1
-265,,265,,5,1,1
-266,,266,,5,1,1
-267,,267,,5,1,1
-268,,268,,5,1,1
-269,,269,,5,1,1
-270,,270,,5,1,1
-271,,271,,5,1,1
-272,,272,,5,1,1
-273,,273,,5,1,1
-274,,274,,5,1,1
-275,,275,,5,1,1
-276,,276,,5,1,1
-277,,277,,5,1,1
-278,,278,,5,1,1
-279,,279,,5,1,1
-280,,280,,5,1,1
-281,,281,,5,1,1
-282,,282,,5,1,1
-283,,283,,5,1,1
-284,,284,,5,1,1
-285,,285,,5,1,1
-286,,286,,5,1,1
-287,,287,,5,1,1
-288,,288,,5,1,1
-289,,289,,5,1,1
-290,,290,,5,1,1
-291,,291,,5,1,1
-292,,292,,5,1,1
-293,,293,,5,1,1
-294,,294,,5,1,1
-295,,295,,5,1,1
-296,,296,,5,1,1
-297,,297,,5,1,1
-298,,298,,5,1,1
-299,,299,,5,1,1
-300,,300,,5,1,1
-301,,301,,5,1,1
-302,,302,,5,1,1
-303,,303,,5,1,1
-304,,304,,5,1,1
-305,,305,,5,1,1
-306,,306,,5,1,1
-307,,307,,5,1,1
-308,,308,,5,1,1
-309,,309,,5,1,1
-310,,310,,5,1,1
-311,,311,,5,1,1
-312,,312,,5,1,1
-313,,313,,5,1,1
-314,,314,,5,1,1
-315,,315,,5,1,1
-316,,316,,5,1,1
-317,,317,,5,1,1
-318,,318,,5,1,1
-319,,319,,5,1,1
-320,,320,,5,1,1
-321,,321,,5,1,1
-322,,322,,5,1,1
-323,,323,,5,1,1
-324,,324,,5,1,1
-325,,325,,5,1,1
-326,,326,,5,1,1
-327,,327,,5,1,1
-328,,328,,5,1,1
-329,,329,,5,1,1
-330,,330,,5,1,1
-331,,331,,5,1,1
-332,,332,,5,1,1
-333,,333,,5,1,1
-334,,334,,5,1,1
-335,,335,,5,1,1
-336,,336,,5,1,1
-337,,337,,5,1,1
-338,,338,,5,1,1
-339,,339,,5,1,1
-340,,340,,5,1,1
-341,,341,,5,1,1
-342,,342,,5,1,1
-343,,343,,5,1,1
-344,,344,,5,1,1
-345,,345,,5,1,1
-346,,346,,5,1,1
-347,,347,,5,1,1
-348,,348,,5,1,1
-349,,349,,5,1,1
-350,,350,,5,1,1
-351,,351,351,5,1,1
-352,,352,,5,1,1
-353,,353,,5,1,1
-354,,354,,5,1,1
-355,,355,,5,1,1
-356,,356,,5,1,1
-357,,357,,5,1,1
-358,,358,,5,1,1
-359,,359,,5,1,1
-360,,360,,5,1,1
-361,,361,,5,1,1
-362,,362,,5,1,1
-363,,363,,5,1,1
-364,,364,,5,1,1
-365,,365,,5,1,1
-366,,366,,5,1,1
-367,,367,,5,1,1
-368,,368,,5,1,1
-369,,369,,5,1,1
-370,,370,,5,1,1
-371,,371,,5,1,1
-372,,372,,5,1,1
-373,,373,,5,1,1
-374,,374,,5,1,1
-375,,375,,5,1,1
-376,,376,,5,1,1
-377,,377,,5,1,1
-378,,378,,5,1,1
-379,,379,,5,1,1
-380,,380,,5,1,1
-381,,381,,5,1,1
-382,,382,,5,1,1
-383,,383,,5,1,1
-384,,384,,5,1,1
-385,,385,,5,1,1
-386,normal,386,386,5,1,1
-387,,387,,8,1,1
-388,,388,,8,1,1
-389,,389,,8,1,1
-390,,390,,8,1,1
-391,,391,,8,1,1
-392,,392,,8,1,1
-393,,393,,8,1,1
-394,,394,,8,1,1
-395,,395,,8,1,1
-396,,396,,8,1,1
-397,,397,,8,1,1
-398,,398,,8,1,1
-399,,399,,8,1,1
-400,,400,,8,1,1
-401,,401,,8,1,1
-402,,402,,8,1,1
-403,,403,,8,1,1
-404,,404,,8,1,1
-405,,405,,8,1,1
-406,,406,,8,1,1
-407,,407,,8,1,1
-408,,408,,8,1,1
-409,,409,,8,1,1
-410,,410,,8,1,1
-411,,411,,8,1,1
-412,plant,412,,8,1,1
-413,plant,413,413,8,1,1
-414,,414,,8,1,1
-415,,415,,8,1,1
-416,,416,,8,1,1
-417,,417,,8,1,1
-418,,418,,8,1,1
-419,,419,,8,1,1
-420,,420,,8,1,1
-421,overcast,421,,8,1,1
-422,west,422,,8,1,1
-423,west,423,,8,1,1
-424,,424,,8,1,1
-425,,425,,8,1,1
-426,,426,,8,1,1
-427,,427,,8,1,1
-428,,428,,8,1,1
-429,,429,,8,1,1
-430,,430,,8,1,1
-431,,431,,8,1,1
-432,,432,,8,1,1
-433,,433,,8,1,1
-434,,434,,8,1,1
-435,,435,,8,1,1
-436,,436,,8,1,1
-437,,437,,8,1,1
-438,,438,,8,1,1
-439,,439,,8,1,1
-440,,440,,8,1,1
-441,,441,,8,1,1
-442,,442,,8,1,1
-443,,443,,8,1,1
-444,,444,,8,1,1
-445,,445,,8,1,1
-446,,446,,8,1,1
-447,,447,,8,1,1
-448,,448,,8,1,1
-449,,449,,8,1,1
-450,,450,,8,1,1
-451,,451,,8,1,1
-452,,452,,8,1,1
-453,,453,,8,1,1
-454,,454,,8,1,1
-455,,455,,8,1,1
-456,,456,,8,1,1
-457,,457,,8,1,1
-458,,458,,8,1,1
-459,,459,,8,1,1
-460,,460,,8,1,1
-461,,461,,8,1,1
-462,,462,,8,1,1
-463,,463,,8,1,1
-464,,464,,8,1,1
-465,,465,,8,1,1
-466,,466,,8,1,1
-467,,467,,8,1,1
-468,,468,,8,1,1
-469,,469,,8,1,1
-470,,470,,8,1,1
-471,,471,,8,1,1
-472,,472,,8,1,1
-473,,473,,8,1,1
-474,,474,,8,1,1
-475,,475,,8,1,1
-476,,476,,8,1,1
-477,,477,,8,1,1
-478,,478,,8,1,1
-479,,479,479,8,1,1
-480,,480,,8,1,1
-481,,481,,8,1,1
-482,,482,,8,1,1
-483,,483,,8,1,1
-484,,484,,8,1,1
-485,,485,,8,1,1
-486,,486,,8,1,1
-487,altered,487,487,8,1,1
-488,,488,,8,1,1
-489,,489,,8,1,1
-490,,490,,8,1,1
-491,,491,,8,1,1
-492,land,492,492,8,1,1
-493,normal,493,,8,1,1
-494,,494,,11,1,1
-495,,495,,11,1,1
-496,,496,,11,1,1
-497,,497,,11,1,1
-498,,498,,11,1,1
-499,,499,,11,1,1
-500,,500,,11,1,1
-501,,501,,11,1,1
-502,,502,,11,1,1
-503,,503,,11,1,1
-504,,504,,11,1,1
-505,,505,,11,1,1
-506,,506,,11,1,1
-507,,507,,11,1,1
-508,,508,,11,1,1
-509,,509,,11,1,1
-510,,510,,11,1,1
-511,,511,,11,1,1
-512,,512,,11,1,1
-513,,513,,11,1,1
-514,,514,,11,1,1
-515,,515,,11,1,1
-516,,516,,11,1,1
-517,,517,,11,1,1
-518,,518,,11,1,1
-519,,519,,11,1,1
-520,,520,,11,1,1
-521,,521,,11,1,1
-522,,522,,11,1,1
-523,,523,,11,1,1
-524,,524,,11,1,1
-525,,525,,11,1,1
-526,,526,,11,1,1
-527,,527,,11,1,1
-528,,528,,11,1,1
-529,,529,,11,1,1
-530,,530,,11,1,1
-531,,531,,11,1,1
-532,,532,,11,1,1
-533,,533,,11,1,1
-534,,534,,11,1,1
-535,,535,,11,1,1
-536,,536,,11,1,1
-537,,537,,11,1,1
-538,,538,,11,1,1
-539,,539,,11,1,1
-540,,540,,11,1,1
-541,,541,,11,1,1
-542,,542,,11,1,1
-543,,543,,11,1,1
-544,,544,,11,1,1
-545,,545,,11,1,1
-546,,546,,11,1,1
-547,,547,,11,1,1
-548,,548,,11,1,1
-549,,549,,11,1,1
-550,red-striped,550,550,11,1,1
-551,,551,,11,1,1
-552,,552,,11,1,1
-553,,553,,11,1,1
-554,,554,,11,1,1
-555,standard,555,555,11,1,1
-556,,556,,11,1,1
-557,,557,,11,1,1
-558,,558,,11,1,1
-559,,559,,11,1,1
-560,,560,,11,1,1
-561,,561,,11,1,1
-562,,562,,11,1,1
-563,,563,,11,1,1
-564,,564,,11,1,1
-565,,565,,11,1,1
-566,,566,,11,1,1
-567,,567,,11,1,1
-568,,568,,11,1,1
-569,,569,,11,1,1
-570,,570,,11,1,1
-571,,571,,11,1,1
-572,,572,,11,1,1
-573,,573,,11,1,1
-574,,574,,11,1,1
-575,,575,,11,1,1
-576,,576,,11,1,1
-577,,577,,11,1,1
-578,,578,,11,1,1
-579,,579,,11,1,1
-580,,580,,11,1,1
-581,,581,,11,1,1
-582,,582,,11,1,1
-583,,583,,11,1,1
-584,,584,,11,1,1
-585,spring,585,,11,1,1
-586,spring,586,,11,1,1
-587,,587,,11,1,1
-588,,588,,11,1,1
-589,,589,,11,1,1
-590,,590,,11,1,1
-591,,591,,11,1,1
-592,,592,,11,1,1
-593,,593,,11,1,1
-594,,594,,11,1,1
-595,,595,,11,1,1
-596,,596,,11,1,1
-597,,597,,11,1,1
-598,,598,,11,1,1
-599,,599,,11,1,1
-600,,600,,11,1,1
-601,,601,,11,1,1
-602,,602,,11,1,1
-603,,603,,11,1,1
-604,,604,,11,1,1
-605,,605,,11,1,1
-606,,606,,11,1,1
-607,,607,,11,1,1
-608,,608,,11,1,1
-609,,609,,11,1,1
-610,,610,,11,1,1
-611,,611,,11,1,1
-612,,612,,11,1,1
-613,,613,,11,1,1
-614,,614,,11,1,1
-615,,615,,11,1,1
-616,,616,,11,1,1
-617,,617,,11,1,1
-618,,618,,11,1,1
-619,,619,,11,1,1
-620,,620,,11,1,1
-621,,621,,11,1,1
-622,,622,,11,1,1
-623,,623,,11,1,1
-624,,624,,11,1,1
-625,,625,,11,1,1
-626,,626,,11,1,1
-627,,627,,11,1,1
-628,,628,,11,1,1
-629,,629,,11,1,1
-630,,630,,11,1,1
-631,,631,,11,1,1
-632,,632,,11,1,1
-633,,633,,11,1,1
-634,,634,,11,1,1
-635,,635,,11,1,1
-636,,636,,11,1,1
-637,,637,,11,1,1
-638,,638,,11,1,1
-639,,639,,11,1,1
-640,,640,,11,1,1
-641,,641,,11,1,1
-642,,642,,11,1,1
-643,,643,,11,1,1
-644,,644,,11,1,1
-645,,645,,11,1,1
-646,,646,,11,1,1
-647,,647,,11,1,1
-648,aria,648,648,11,1,1
-649,,649,,11,1,1
-10001,b,201,,3,0,2
-10002,c,201,,3,0,3
-10003,d,201,,3,0,4
-10004,e,201,,3,0,5
-10005,f,201,,3,0,6
-10006,g,201,,3,0,7
-10007,h,201,,3,0,8
-10008,i,201,,3,0,9
-10009,j,201,,3,0,10
-10010,k,201,,3,0,11
-10011,l,201,,3,0,12
-10012,m,201,,3,0,13
-10013,n,201,,3,0,14
-10014,o,201,,3,0,15
-10015,p,201,,3,0,16
-10016,q,201,,3,0,17
-10017,r,201,,3,0,18
-10018,s,201,,3,0,19
-10019,t,201,,3,0,20
-10020,u,201,,3,0,21
-10021,v,201,,3,0,22
-10022,w,201,,3,0,23
-10023,x,201,,3,0,24
-10024,y,201,,3,0,25
-10025,z,201,,3,0,26
-10026,exclamation,201,,5,0,27
-10027,question,201,,5,0,27
-10028,sunny,351,10013,5,0,2
-10029,rainy,351,10014,5,0,3
-10030,snowy,351,10015,5,0,4
-10031,attack,386,10001,7,0,2
-10032,defense,386,10002,7,0,3
-10033,speed,386,10003,6,0,4
-10034,sandy,412,,8,0,2
-10035,trash,412,,8,0,3
-10036,sandy,413,10004,8,0,2
-10037,trash,413,10005,8,0,3
-10038,sunshine,421,,8,0,2
-10039,east,422,,8,0,2
-10040,east,423,,8,0,2
-10041,bug,493,,8,0,2
-10042,dark,493,,8,0,2
-10043,dragon,493,,8,0,2
-10044,electric,493,,8,0,2
-10045,fighting,493,,8,0,2
-10046,fire,493,,8,0,2
-10047,flying,493,,8,0,2
-10048,ghost,493,,8,0,2
-10049,grass,493,,8,0,2
-10050,ground,493,,8,0,2
-10051,ice,493,,8,0,2
-10052,poison,493,,8,0,2
-10053,psychic,493,,8,0,2
-10054,rock,493,,8,0,2
-10055,steel,493,,8,0,2
-10056,water,493,,8,0,2
-10057,unknown,493,,8,0,3
-10058,heat,479,10008,9,0,2
-10059,wash,479,10009,9,0,3
-10060,frost,479,10010,9,0,4
-10061,fan,479,10011,9,0,5
-10062,mow,479,10012,9,0,6
-10063,origin,487,10007,9,0,2
-10064,sky,492,10006,9,0,2
-10065,spiky-eared,172,,10,0,2
-10066,blue-striped,550,10016,11,0,2
-10067,zen,555,10017,11,0,2
-10068,summer,585,,11,0,2
-10069,autumn,585,,11,0,3
-10070,winter,585,,11,0,4
-10071,summer,586,,11,0,2
-10072,autumn,586,,11,0,3
-10073,winter,586,,11,0,4
-10074,pirouette,648,10018,11,0,2
-10075,douse,649,,11,0,2
-10076,shock,649,,11,0,2
-10077,burn,649,,11,0,2
-10078,chill,649,,11,0,2
+id,form_identifier,pokemon_id,introduced_in_version_group_id,is_default,is_battle_only,order
+1,,1,1,1,0,1
+2,,2,1,1,0,2
+3,,3,1,1,0,3
+4,,4,1,1,0,4
+5,,5,1,1,0,5
+6,,6,1,1,0,6
+7,,7,1,1,0,7
+8,,8,1,1,0,8
+9,,9,1,1,0,9
+10,,10,1,1,0,10
+11,,11,1,1,0,11
+12,,12,1,1,0,12
+13,,13,1,1,0,13
+14,,14,1,1,0,14
+15,,15,1,1,0,15
+16,,16,1,1,0,16
+17,,17,1,1,0,17
+18,,18,1,1,0,18
+19,,19,1,1,0,19
+20,,20,1,1,0,20
+21,,21,1,1,0,21
+22,,22,1,1,0,22
+23,,23,1,1,0,23
+24,,24,1,1,0,24
+25,,25,1,1,0,26
+26,,26,1,1,0,27
+27,,27,1,1,0,28
+28,,28,1,1,0,29
+29,,29,1,1,0,30
+30,,30,1,1,0,31
+31,,31,1,1,0,32
+32,,32,1,1,0,33
+33,,33,1,1,0,34
+34,,34,1,1,0,35
+35,,35,1,1,0,37
+36,,36,1,1,0,38
+37,,37,1,1,0,39
+38,,38,1,1,0,40
+39,,39,1,1,0,42
+40,,40,1,1,0,43
+41,,41,1,1,0,44
+42,,42,1,1,0,45
+43,,43,1,1,0,47
+44,,44,1,1,0,48
+45,,45,1,1,0,49
+46,,46,1,1,0,51
+47,,47,1,1,0,52
+48,,48,1,1,0,53
+49,,49,1,1,0,54
+50,,50,1,1,0,55
+51,,51,1,1,0,56
+52,,52,1,1,0,57
+53,,53,1,1,0,58
+54,,54,1,1,0,59
+55,,55,1,1,0,60
+56,,56,1,1,0,61
+57,,57,1,1,0,62
+58,,58,1,1,0,63
+59,,59,1,1,0,64
+60,,60,1,1,0,65
+61,,61,1,1,0,66
+62,,62,1,1,0,67
+63,,63,1,1,0,69
+64,,64,1,1,0,70
+65,,65,1,1,0,71
+66,,66,1,1,0,72
+67,,67,1,1,0,73
+68,,68,1,1,0,74
+69,,69,1,1,0,75
+70,,70,1,1,0,76
+71,,71,1,1,0,77
+72,,72,1,1,0,78
+73,,73,1,1,0,79
+74,,74,1,1,0,80
+75,,75,1,1,0,81
+76,,76,1,1,0,82
+77,,77,1,1,0,83
+78,,78,1,1,0,84
+79,,79,1,1,0,85
+80,,80,1,1,0,86
+81,,81,1,1,0,88
+82,,82,1,1,0,89
+83,,83,1,1,0,91
+84,,84,1,1,0,92
+85,,85,1,1,0,93
+86,,86,1,1,0,94
+87,,87,1,1,0,95
+88,,88,1,1,0,96
+89,,89,1,1,0,97
+90,,90,1,1,0,98
+91,,91,1,1,0,99
+92,,92,1,1,0,100
+93,,93,1,1,0,101
+94,,94,1,1,0,102
+95,,95,1,1,0,103
+96,,96,1,1,0,105
+97,,97,1,1,0,106
+98,,98,1,1,0,107
+99,,99,1,1,0,108
+100,,100,1,1,0,109
+101,,101,1,1,0,110
+102,,102,1,1,0,111
+103,,103,1,1,0,112
+104,,104,1,1,0,113
+105,,105,1,1,0,114
+106,,106,1,1,0,116
+107,,107,1,1,0,117
+108,,108,1,1,0,119
+109,,109,1,1,0,121
+110,,110,1,1,0,122
+111,,111,1,1,0,123
+112,,112,1,1,0,124
+113,,113,1,1,0,127
+114,,114,1,1,0,129
+115,,115,1,1,0,131
+116,,116,1,1,0,132
+117,,117,1,1,0,133
+118,,118,1,1,0,135
+119,,119,1,1,0,136
+120,,120,1,1,0,137
+121,,121,1,1,0,138
+122,,122,1,1,0,140
+123,,123,1,1,0,141
+124,,124,1,1,0,144
+125,,125,1,1,0,146
+126,,126,1,1,0,149
+127,,127,1,1,0,151
+128,,128,1,1,0,152
+129,,129,1,1,0,153
+130,,130,1,1,0,154
+131,,131,1,1,0,155
+132,,132,1,1,0,156
+133,,133,1,1,0,157
+134,,134,1,1,0,158
+135,,135,1,1,0,159
+136,,136,1,1,0,160
+137,,137,1,1,0,165
+138,,138,1,1,0,168
+139,,139,1,1,0,169
+140,,140,1,1,0,170
+141,,141,1,1,0,171
+142,,142,1,1,0,172
+143,,143,1,1,0,174
+144,,144,1,1,0,175
+145,,145,1,1,0,176
+146,,146,1,1,0,177
+147,,147,1,1,0,178
+148,,148,1,1,0,179
+149,,149,1,1,0,180
+150,,150,1,1,0,181
+151,,151,1,1,0,182
+152,,152,3,1,0,183
+153,,153,3,1,0,184
+154,,154,3,1,0,185
+155,,155,3,1,0,186
+156,,156,3,1,0,187
+157,,157,3,1,0,188
+158,,158,3,1,0,189
+159,,159,3,1,0,190
+160,,160,3,1,0,191
+161,,161,3,1,0,192
+162,,162,3,1,0,193
+163,,163,3,1,0,194
+164,,164,3,1,0,195
+165,,165,3,1,0,196
+166,,166,3,1,0,197
+167,,167,3,1,0,198
+168,,168,3,1,0,199
+169,,169,3,1,0,46
+170,,170,3,1,0,200
+171,,171,3,1,0,201
+172,,172,3,1,0,25
+173,,173,3,1,0,36
+174,,174,3,1,0,41
+175,,175,3,1,0,202
+176,,176,3,1,0,203
+177,,177,3,1,0,205
+178,,178,3,1,0,206
+179,,179,3,1,0,207
+180,,180,3,1,0,208
+181,,181,3,1,0,209
+182,,182,3,1,0,50
+183,,183,3,1,0,211
+184,,184,3,1,0,212
+185,,185,3,1,0,214
+186,,186,3,1,0,68
+187,,187,3,1,0,215
+188,,188,3,1,0,216
+189,,189,3,1,0,217
+190,,190,3,1,0,218
+191,,191,3,1,0,220
+192,,192,3,1,0,221
+193,,193,3,1,0,222
+194,,194,3,1,0,224
+195,,195,3,1,0,225
+196,,196,3,1,0,161
+197,,197,3,1,0,162
+198,,198,3,1,0,226
+199,,199,3,1,0,87
+200,,200,3,1,0,228
+201,a,201,3,1,0,230
+202,,202,3,1,0,232
+203,,203,3,1,0,233
+204,,204,3,1,0,234
+205,,205,3,1,0,235
+206,,206,3,1,0,236
+207,,207,3,1,0,237
+208,,208,3,1,0,104
+209,,209,3,1,0,239
+210,,210,3,1,0,240
+211,,211,3,1,0,241
+212,,212,3,1,0,142
+213,,213,3,1,0,242
+214,,214,3,1,0,243
+215,,215,3,1,0,244
+216,,216,3,1,0,246
+217,,217,3,1,0,247
+218,,218,3,1,0,248
+219,,219,3,1,0,249
+220,,220,3,1,0,250
+221,,221,3,1,0,251
+222,,222,3,1,0,253
+223,,223,3,1,0,254
+224,,224,3,1,0,255
+225,,225,3,1,0,256
+226,,226,3,1,0,258
+227,,227,3,1,0,259
+228,,228,3,1,0,260
+229,,229,3,1,0,261
+230,,230,3,1,0,134
+231,,231,3,1,0,262
+232,,232,3,1,0,263
+233,,233,3,1,0,166
+234,,234,3,1,0,264
+235,,235,3,1,0,265
+236,,236,3,1,0,115
+237,,237,3,1,0,118
+238,,238,3,1,0,143
+239,,239,3,1,0,145
+240,,240,3,1,0,148
+241,,241,3,1,0,266
+242,,242,3,1,0,128
+243,,243,3,1,0,267
+244,,244,3,1,0,268
+245,,245,3,1,0,269
+246,,246,3,1,0,270
+247,,247,3,1,0,271
+248,,248,3,1,0,272
+249,,249,3,1,0,273
+250,,250,3,1,0,274
+251,,251,3,1,0,275
+252,,252,5,1,0,276
+253,,253,5,1,0,277
+254,,254,5,1,0,278
+255,,255,5,1,0,279
+256,,256,5,1,0,280
+257,,257,5,1,0,281
+258,,258,5,1,0,282
+259,,259,5,1,0,283
+260,,260,5,1,0,284
+261,,261,5,1,0,285
+262,,262,5,1,0,286
+263,,263,5,1,0,287
+264,,264,5,1,0,288
+265,,265,5,1,0,289
+266,,266,5,1,0,290
+267,,267,5,1,0,291
+268,,268,5,1,0,292
+269,,269,5,1,0,293
+270,,270,5,1,0,294
+271,,271,5,1,0,295
+272,,272,5,1,0,296
+273,,273,5,1,0,297
+274,,274,5,1,0,298
+275,,275,5,1,0,299
+276,,276,5,1,0,300
+277,,277,5,1,0,301
+278,,278,5,1,0,302
+279,,279,5,1,0,303
+280,,280,5,1,0,304
+281,,281,5,1,0,305
+282,,282,5,1,0,306
+283,,283,5,1,0,308
+284,,284,5,1,0,309
+285,,285,5,1,0,310
+286,,286,5,1,0,311
+287,,287,5,1,0,312
+288,,288,5,1,0,313
+289,,289,5,1,0,314
+290,,290,5,1,0,315
+291,,291,5,1,0,316
+292,,292,5,1,0,317
+293,,293,5,1,0,318
+294,,294,5,1,0,319
+295,,295,5,1,0,320
+296,,296,5,1,0,321
+297,,297,5,1,0,322
+298,,298,5,1,0,210
+299,,299,5,1,0,323
+300,,300,5,1,0,325
+301,,301,5,1,0,326
+302,,302,5,1,0,327
+303,,303,5,1,0,328
+304,,304,5,1,0,329
+305,,305,5,1,0,330
+306,,306,5,1,0,331
+307,,307,5,1,0,332
+308,,308,5,1,0,333
+309,,309,5,1,0,334
+310,,310,5,1,0,335
+311,,311,5,1,0,336
+312,,312,5,1,0,337
+313,,313,5,1,0,338
+314,,314,5,1,0,339
+315,,315,5,1,0,341
+316,,316,5,1,0,343
+317,,317,5,1,0,344
+318,,318,5,1,0,345
+319,,319,5,1,0,346
+320,,320,5,1,0,347
+321,,321,5,1,0,348
+322,,322,5,1,0,349
+323,,323,5,1,0,350
+324,,324,5,1,0,351
+325,,325,5,1,0,352
+326,,326,5,1,0,353
+327,,327,5,1,0,354
+328,,328,5,1,0,355
+329,,329,5,1,0,356
+330,,330,5,1,0,357
+331,,331,5,1,0,358
+332,,332,5,1,0,359
+333,,333,5,1,0,360
+334,,334,5,1,0,361
+335,,335,5,1,0,362
+336,,336,5,1,0,363
+337,,337,5,1,0,364
+338,,338,5,1,0,365
+339,,339,5,1,0,366
+340,,340,5,1,0,367
+341,,341,5,1,0,368
+342,,342,5,1,0,369
+343,,343,5,1,0,370
+344,,344,5,1,0,371
+345,,345,5,1,0,372
+346,,346,5,1,0,373
+347,,347,5,1,0,374
+348,,348,5,1,0,375
+349,,349,5,1,0,376
+350,,350,5,1,0,377
+351,,351,5,1,0,378
+352,,352,5,1,0,382
+353,,353,5,1,0,383
+354,,354,5,1,0,384
+355,,355,5,1,0,385
+356,,356,5,1,0,386
+357,,357,5,1,0,388
+358,,358,5,1,0,390
+359,,359,5,1,0,391
+360,,360,5,1,0,231
+361,,361,5,1,0,392
+362,,362,5,1,0,393
+363,,363,5,1,0,395
+364,,364,5,1,0,396
+365,,365,5,1,0,397
+366,,366,5,1,0,398
+367,,367,5,1,0,399
+368,,368,5,1,0,400
+369,,369,5,1,0,401
+370,,370,5,1,0,402
+371,,371,5,1,0,403
+372,,372,5,1,0,404
+373,,373,5,1,0,405
+374,,374,5,1,0,406
+375,,375,5,1,0,407
+376,,376,5,1,0,408
+377,,377,5,1,0,409
+378,,378,5,1,0,410
+379,,379,5,1,0,411
+380,,380,5,1,0,412
+381,,381,5,1,0,413
+382,,382,5,1,0,414
+383,,383,5,1,0,415
+384,,384,5,1,0,416
+385,,385,5,1,0,417
+386,normal,386,5,1,0,418
+387,,387,8,1,0,422
+388,,388,8,1,0,423
+389,,389,8,1,0,424
+390,,390,8,1,0,425
+391,,391,8,1,0,426
+392,,392,8,1,0,427
+393,,393,8,1,0,428
+394,,394,8,1,0,429
+395,,395,8,1,0,430
+396,,396,8,1,0,431
+397,,397,8,1,0,432
+398,,398,8,1,0,433
+399,,399,8,1,0,434
+400,,400,8,1,0,435
+401,,401,8,1,0,436
+402,,402,8,1,0,437
+403,,403,8,1,0,438
+404,,404,8,1,0,439
+405,,405,8,1,0,440
+406,,406,8,1,0,340
+407,,407,8,1,0,342
+408,,408,8,1,0,441
+409,,409,8,1,0,442
+410,,410,8,1,0,443
+411,,411,8,1,0,444
+412,plant,412,8,1,0,445
+413,plant,413,8,1,0,446
+414,,414,8,1,0,449
+415,,415,8,1,0,450
+416,,416,8,1,0,451
+417,,417,8,1,0,452
+418,,418,8,1,0,453
+419,,419,8,1,0,454
+420,,420,8,1,0,455
+421,overcast,421,8,1,1,456
+422,west,422,8,1,0,457
+423,west,423,8,1,0,458
+424,,424,8,1,0,219
+425,,425,8,1,0,459
+426,,426,8,1,0,460
+427,,427,8,1,0,461
+428,,428,8,1,0,462
+429,,429,8,1,0,229
+430,,430,8,1,0,227
+431,,431,8,1,0,463
+432,,432,8,1,0,464
+433,,433,8,1,0,389
+434,,434,8,1,0,465
+435,,435,8,1,0,466
+436,,436,8,1,0,467
+437,,437,8,1,0,468
+438,,438,8,1,0,213
+439,,439,8,1,0,139
+440,,440,8,1,0,126
+441,,441,8,1,0,469
+442,,442,8,1,0,470
+443,,443,8,1,0,471
+444,,444,8,1,0,472
+445,,445,8,1,0,473
+446,,446,8,1,0,173
+447,,447,8,1,0,474
+448,,448,8,1,0,475
+449,,449,8,1,0,476
+450,,450,8,1,0,477
+451,,451,8,1,0,478
+452,,452,8,1,0,479
+453,,453,8,1,0,480
+454,,454,8,1,0,481
+455,,455,8,1,0,482
+456,,456,8,1,0,483
+457,,457,8,1,0,484
+458,,458,8,1,0,257
+459,,459,8,1,0,485
+460,,460,8,1,0,486
+461,,461,8,1,0,245
+462,,462,8,1,0,90
+463,,463,8,1,0,120
+464,,464,8,1,0,125
+465,,465,8,1,0,130
+466,,466,8,1,0,147
+467,,467,8,1,0,150
+468,,468,8,1,0,204
+469,,469,8,1,0,223
+470,,470,8,1,0,163
+471,,471,8,1,0,164
+472,,472,8,1,0,238
+473,,473,8,1,0,252
+474,,474,8,1,0,167
+475,,475,8,1,0,307
+476,,476,8,1,0,324
+477,,477,8,1,0,387
+478,,478,8,1,0,394
+479,,479,8,1,0,487
+480,,480,8,1,0,493
+481,,481,8,1,0,494
+482,,482,8,1,0,495
+483,,483,8,1,0,496
+484,,484,8,1,0,497
+485,,485,8,1,0,498
+486,,486,8,1,0,499
+487,altered,487,8,1,0,500
+488,,488,8,1,0,502
+489,,489,8,1,0,503
+490,,490,8,1,0,504
+491,,491,8,1,0,505
+492,land,492,8,1,0,506
+493,normal,493,8,1,0,508
+494,,494,11,1,0,509
+495,,495,11,1,0,510
+496,,496,11,1,0,511
+497,,497,11,1,0,512
+498,,498,11,1,0,513
+499,,499,11,1,0,514
+500,,500,11,1,0,515
+501,,501,11,1,0,516
+502,,502,11,1,0,517
+503,,503,11,1,0,518
+504,,504,11,1,0,519
+505,,505,11,1,0,520
+506,,506,11,1,0,521
+507,,507,11,1,0,522
+508,,508,11,1,0,523
+509,,509,11,1,0,524
+510,,510,11,1,0,525
+511,,511,11,1,0,526
+512,,512,11,1,0,527
+513,,513,11,1,0,528
+514,,514,11,1,0,529
+515,,515,11,1,0,530
+516,,516,11,1,0,531
+517,,517,11,1,0,532
+518,,518,11,1,0,533
+519,,519,11,1,0,534
+520,,520,11,1,0,535
+521,,521,11,1,0,536
+522,,522,11,1,0,537
+523,,523,11,1,0,538
+524,,524,11,1,0,539
+525,,525,11,1,0,540
+526,,526,11,1,0,541
+527,,527,11,1,0,542
+528,,528,11,1,0,543
+529,,529,11,1,0,544
+530,,530,11,1,0,545
+531,,531,11,1,0,546
+532,,532,11,1,0,547
+533,,533,11,1,0,548
+534,,534,11,1,0,549
+535,,535,11,1,0,550
+536,,536,11,1,0,551
+537,,537,11,1,0,552
+538,,538,11,1,0,553
+539,,539,11,1,0,554
+540,,540,11,1,0,555
+541,,541,11,1,0,556
+542,,542,11,1,0,557
+543,,543,11,1,0,558
+544,,544,11,1,0,559
+545,,545,11,1,0,560
+546,,546,11,1,0,561
+547,,547,11,1,0,562
+548,,548,11,1,0,563
+549,,549,11,1,0,564
+550,red-striped,550,11,1,0,565
+551,,551,11,1,0,567
+552,,552,11,1,0,568
+553,,553,11,1,0,569
+554,,554,11,1,0,570
+555,standard,555,11,1,0,571
+556,,556,11,1,0,573
+557,,557,11,1,0,574
+558,,558,11,1,0,575
+559,,559,11,1,0,576
+560,,560,11,1,0,577
+561,,561,11,1,0,578
+562,,562,11,1,0,579
+563,,563,11,1,0,580
+564,,564,11,1,0,581
+565,,565,11,1,0,582
+566,,566,11,1,0,583
+567,,567,11,1,0,584
+568,,568,11,1,0,585
+569,,569,11,1,0,586
+570,,570,11,1,0,587
+571,,571,11,1,0,588
+572,,572,11,1,0,589
+573,,573,11,1,0,590
+574,,574,11,1,0,591
+575,,575,11,1,0,592
+576,,576,11,1,0,593
+577,,577,11,1,0,594
+578,,578,11,1,0,595
+579,,579,11,1,0,596
+580,,580,11,1,0,597
+581,,581,11,1,0,598
+582,,582,11,1,0,599
+583,,583,11,1,0,600
+584,,584,11,1,0,601
+585,spring,585,11,1,0,602
+586,spring,586,11,1,0,603
+587,,587,11,1,0,604
+588,,588,11,1,0,605
+589,,589,11,1,0,606
+590,,590,11,1,0,607
+591,,591,11,1,0,608
+592,,592,11,1,0,609
+593,,593,11,1,0,610
+594,,594,11,1,0,611
+595,,595,11,1,0,612
+596,,596,11,1,0,613
+597,,597,11,1,0,614
+598,,598,11,1,0,615
+599,,599,11,1,0,616
+600,,600,11,1,0,617
+601,,601,11,1,0,618
+602,,602,11,1,0,619
+603,,603,11,1,0,620
+604,,604,11,1,0,621
+605,,605,11,1,0,622
+606,,606,11,1,0,623
+607,,607,11,1,0,624
+608,,608,11,1,0,625
+609,,609,11,1,0,626
+610,,610,11,1,0,627
+611,,611,11,1,0,628
+612,,612,11,1,0,629
+613,,613,11,1,0,630
+614,,614,11,1,0,631
+615,,615,11,1,0,632
+616,,616,11,1,0,633
+617,,617,11,1,0,634
+618,,618,11,1,0,635
+619,,619,11,1,0,636
+620,,620,11,1,0,637
+621,,621,11,1,0,638
+622,,622,11,1,0,639
+623,,623,11,1,0,640
+624,,624,11,1,0,641
+625,,625,11,1,0,642
+626,,626,11,1,0,643
+627,,627,11,1,0,644
+628,,628,11,1,0,645
+629,,629,11,1,0,646
+630,,630,11,1,0,647
+631,,631,11,1,0,648
+632,,632,11,1,0,649
+633,,633,11,1,0,650
+634,,634,11,1,0,651
+635,,635,11,1,0,652
+636,,636,11,1,0,653
+637,,637,11,1,0,654
+638,,638,11,1,0,655
+639,,639,11,1,0,656
+640,,640,11,1,0,657
+641,,641,11,1,0,658
+642,,642,11,1,0,659
+643,,643,11,1,0,660
+644,,644,11,1,0,661
+645,,645,11,1,0,662
+646,,646,11,1,0,663
+647,,647,11,1,0,664
+648,aria,648,11,1,0,665
+649,,649,11,1,0,667
+650,b,201,3,0,0,230
+651,c,201,3,0,0,230
+652,d,201,3,0,0,230
+653,e,201,3,0,0,230
+654,f,201,3,0,0,230
+655,g,201,3,0,0,230
+656,h,201,3,0,0,230
+657,i,201,3,0,0,230
+658,j,201,3,0,0,230
+659,k,201,3,0,0,230
+660,l,201,3,0,0,230
+661,m,201,3,0,0,230
+662,n,201,3,0,0,230
+663,o,201,3,0,0,230
+664,p,201,3,0,0,230
+665,q,201,3,0,0,230
+666,r,201,3,0,0,230
+667,s,201,3,0,0,230
+668,t,201,3,0,0,230
+669,u,201,3,0,0,230
+670,v,201,3,0,0,230
+671,w,201,3,0,0,230
+672,x,201,3,0,0,230
+673,y,201,3,0,0,230
+674,z,201,3,0,0,230
+675,exclamation,201,5,0,0,230
+676,question,201,5,0,0,230
+677,sunny,662,5,1,1,379
+678,rainy,663,5,1,1,380
+679,snowy,664,5,1,1,381
+680,attack,650,7,1,0,419
+681,defense,651,7,1,0,420
+682,speed,652,6,1,0,421
+683,sandy,412,8,0,0,445
+684,trash,412,8,0,0,445
+685,sandy,653,8,1,0,447
+686,trash,654,8,1,0,448
+687,sunshine,421,8,0,1,456
+688,east,422,8,0,0,457
+689,east,423,8,0,0,458
+690,bug,493,8,0,0,508
+691,dark,493,8,0,0,508
+692,dragon,493,8,0,0,508
+693,electric,493,8,0,0,508
+694,fighting,493,8,0,0,508
+695,fire,493,8,0,0,508
+696,flying,493,8,0,0,508
+697,ghost,493,8,0,0,508
+698,grass,493,8,0,0,508
+699,ground,493,8,0,0,508
+700,ice,493,8,0,0,508
+701,poison,493,8,0,0,508
+702,psychic,493,8,0,0,508
+703,rock,493,8,0,0,508
+704,steel,493,8,0,0,508
+705,water,493,8,0,0,508
+706,unknown,493,8,0,0,508
+707,heat,657,9,1,0,488
+708,wash,658,9,1,0,489
+709,frost,659,9,1,0,490
+710,fan,660,9,1,0,491
+711,mow,661,9,1,0,492
+712,origin,656,9,1,0,501
+713,sky,655,9,1,0,507
+714,spiky-eared,172,10,0,0,25
+715,blue-striped,665,11,1,0,566
+716,zen,666,11,1,0,572
+717,summer,585,11,0,0,602
+718,autumn,585,11,0,0,602
+719,winter,585,11,0,0,602
+720,summer,586,11,0,0,603
+721,autumn,586,11,0,0,603
+722,winter,586,11,0,0,603
+723,pirouette,667,11,1,0,666
+724,douse,649,11,0,0,667
+725,shock,649,11,0,0,667
+726,burn,649,11,0,0,667
+727,chill,649,11,0,0,667
diff --git a/pokedex/data/csv/pokemon_game_indices.csv b/pokedex/data/csv/pokemon_game_indices.csv
index 3c4032a..c91a7a6 100644
--- a/pokedex/data/csv/pokemon_game_indices.csv
+++ b/pokedex/data/csv/pokemon_game_indices.csv
@@ -1929,33 +1929,33 @@ pokemon_id,generation_id,game_index
 647,5,647
 648,5,648
 649,5,649
-10001,4,496
-10001,5,650
-10002,4,497
-10002,5,651
-10003,4,498
-10003,5,652
-10004,4,499
-10004,5,653
-10005,4,500
-10005,5,654
-10006,4,502
-10006,5,655
-10007,4,501
-10007,5,656
-10008,4,503
-10008,5,657
-10009,4,504
-10009,5,658
-10010,4,505
-10010,5,659
-10011,4,506
-10011,5,660
-10012,4,507
-10012,5,661
-10013,5,662
-10014,5,663
-10015,5,664
-10016,5,665
-10017,5,666
-10018,5,667
+650,4,496
+650,5,650
+651,4,497
+651,5,651
+652,4,498
+652,5,652
+653,4,499
+653,5,653
+654,4,500
+654,5,654
+655,4,502
+655,5,655
+656,4,501
+656,5,656
+657,4,503
+657,5,657
+658,4,504
+658,5,658
+659,4,505
+659,5,659
+660,4,506
+660,5,660
+661,4,507
+661,5,661
+662,5,662
+663,5,663
+664,5,664
+665,5,665
+666,5,666
+667,5,667
diff --git a/pokedex/data/csv/pokemon_items.csv b/pokedex/data/csv/pokemon_items.csv
index 17fbec1..f1e22a9 100644
--- a/pokedex/data/csv/pokemon_items.csv
+++ b/pokedex/data/csv/pokemon_items.csv
@@ -2343,34 +2343,34 @@ pokemon_id,version_id,item_id,rarity
 637,18,199,100
 648,17,91,100
 648,18,91,100
-10004,12,199,5
-10004,13,199,5
-10004,14,199,5
-10004,15,199,5
-10004,16,199,5
-10004,17,199,5
-10004,18,199,5
-10005,12,199,5
-10005,13,199,5
-10005,14,199,5
-10005,15,199,5
-10005,16,199,5
-10005,17,199,5
-10005,18,199,5
-10006,14,134,100
-10006,15,134,100
-10006,16,134,100
-10006,17,134,100
-10006,18,134,100
-10013,17,220,100
-10013,18,220,100
-10014,17,220,100
-10014,18,220,100
-10015,17,220,100
-10015,18,220,100
-10016,17,204,5
-10016,18,204,5
-10017,17,129,50
-10017,18,129,50
-10018,17,91,100
-10018,18,91,100
+653,12,199,5
+653,13,199,5
+653,14,199,5
+653,15,199,5
+653,16,199,5
+653,17,199,5
+653,18,199,5
+654,12,199,5
+654,13,199,5
+654,14,199,5
+654,15,199,5
+654,16,199,5
+654,17,199,5
+654,18,199,5
+655,14,134,100
+655,15,134,100
+655,16,134,100
+655,17,134,100
+655,18,134,100
+662,17,220,100
+662,18,220,100
+663,17,220,100
+663,18,220,100
+664,17,220,100
+664,18,220,100
+665,17,204,5
+665,18,204,5
+666,17,129,50
+666,18,129,50
+667,17,91,100
+667,18,91,100
diff --git a/pokedex/data/csv/pokemon_moves.csv b/pokedex/data/csv/pokemon_moves.csv
index 98ae489..1d3557f 100644
--- a/pokedex/data/csv/pokemon_moves.csv
+++ b/pokedex/data/csv/pokemon_moves.csv
@@ -80937,6 +80937,7 @@ pokemon_id,version_group_id,move_id,pokemon_move_method_id,level,order
 172,11,268,2,0,
 172,11,273,2,0,
 172,11,321,2,0,
+172,11,344,6,0,
 172,11,374,4,0,
 172,11,381,2,0,
 172,11,417,1,18,
@@ -184222,6 +184223,7 @@ pokemon_id,version_group_id,move_id,pokemon_move_method_id,level,order
 479,10,466,1,29,
 479,10,466,3,0,
 479,11,84,1,1,4
+479,11,84,10,0,
 479,11,85,4,0,
 479,11,86,1,1,3
 479,11,86,4,0,
@@ -195674,2837 +195676,2842 @@ pokemon_id,version_group_id,move_id,pokemon_move_method_id,level,order
 649,11,496,4,0,
 649,11,522,4,0,
 649,11,546,1,1,1
-10001,7,15,4,0,
-10001,7,35,1,1,2
-10001,7,43,1,1,1
-10001,7,58,4,0,
-10001,7,63,1,50,
-10001,7,63,4,0,
-10001,7,70,4,0,
-10001,7,76,4,0,
-10001,7,85,4,0,
-10001,7,87,4,0,
-10001,7,92,4,0,
-10001,7,94,1,25,
-10001,7,94,4,0,
-10001,7,100,1,10,
-10001,7,101,1,5,
-10001,7,104,4,0,
-10001,7,113,4,0,
-10001,7,115,4,0,
-10001,7,148,4,0,
-10001,7,156,4,0,
-10001,7,182,4,0,
-10001,7,192,1,40,
-10001,7,216,4,0,
-10001,7,218,4,0,
-10001,7,219,4,0,
-10001,7,228,1,20,
-10001,7,237,4,0,
-10001,7,240,4,0,
-10001,7,241,4,0,
-10001,7,247,4,0,
-10001,7,249,4,0,
-10001,7,259,4,0,
-10001,7,263,4,0,
-10001,7,264,4,0,
-10001,7,269,1,15,
-10001,7,269,4,0,
-10001,7,276,1,30,
-10001,7,280,4,0,
-10001,7,285,4,0,
-10001,7,289,4,0,
-10001,7,290,4,0,
-10001,7,317,4,0,
-10001,7,322,1,35,
-10001,7,332,4,0,
-10001,7,347,4,0,
-10001,7,351,4,0,
-10001,7,352,4,0,
-10001,7,354,1,45,
-10001,8,15,4,0,
-10001,8,35,1,1,2
-10001,8,43,1,1,1
-10001,8,58,4,0,
-10001,8,63,1,97,
-10001,8,63,4,0,
-10001,8,70,4,0,
-10001,8,76,4,0,
-10001,8,85,4,0,
-10001,8,86,4,0,
-10001,8,87,4,0,
-10001,8,92,4,0,
-10001,8,94,1,41,
-10001,8,94,4,0,
-10001,8,100,1,17,
-10001,8,101,1,9,
-10001,8,104,4,0,
-10001,8,113,4,0,
-10001,8,115,4,0,
-10001,8,138,4,0,
-10001,8,148,4,0,
-10001,8,156,4,0,
-10001,8,157,4,0,
-10001,8,164,4,0,
-10001,8,182,4,0,
-10001,8,192,1,81,
-10001,8,203,4,0,
-10001,8,207,4,0,
-10001,8,214,4,0,
-10001,8,216,4,0,
-10001,8,218,4,0,
-10001,8,219,4,0,
-10001,8,228,1,33,
-10001,8,237,4,0,
-10001,8,240,4,0,
-10001,8,241,4,0,
-10001,8,244,4,0,
-10001,8,247,4,0,
-10001,8,249,4,0,
-10001,8,259,4,0,
-10001,8,263,4,0,
-10001,8,264,4,0,
-10001,8,269,1,25,
-10001,8,269,4,0,
-10001,8,276,1,49,
-10001,8,278,4,0,
-10001,8,280,4,0,
-10001,8,285,4,0,
-10001,8,289,4,0,
-10001,8,290,4,0,
-10001,8,317,4,0,
-10001,8,322,1,73,
-10001,8,332,4,0,
-10001,8,347,4,0,
-10001,8,351,4,0,
-10001,8,352,4,0,
-10001,8,354,1,89,
-10001,8,363,4,0,
-10001,8,374,4,0,
-10001,8,375,1,57,
-10001,8,398,4,0,
-10001,8,409,4,0,
-10001,8,411,4,0,
-10001,8,412,4,0,
-10001,8,416,4,0,
-10001,8,419,4,0,
-10001,8,428,1,65,
-10001,8,430,4,0,
-10001,8,433,4,0,
-10001,8,446,4,0,
-10001,8,447,4,0,
-10001,8,451,4,0,
-10001,9,7,3,0,
-10001,9,8,3,0,
-10001,9,9,3,0,
-10001,9,15,4,0,
-10001,9,35,1,1,2
-10001,9,43,1,1,1
-10001,9,58,4,0,
-10001,9,63,1,97,
-10001,9,63,4,0,
-10001,9,70,4,0,
-10001,9,76,4,0,
-10001,9,85,4,0,
-10001,9,86,4,0,
-10001,9,87,4,0,
-10001,9,92,4,0,
-10001,9,94,1,41,
-10001,9,94,4,0,
-10001,9,100,1,17,
-10001,9,101,1,9,
-10001,9,104,4,0,
-10001,9,113,4,0,
-10001,9,115,4,0,
-10001,9,129,3,0,
-10001,9,138,4,0,
-10001,9,148,4,0,
-10001,9,156,4,0,
-10001,9,157,4,0,
-10001,9,164,4,0,
-10001,9,173,3,0,
-10001,9,182,4,0,
-10001,9,189,3,0,
-10001,9,192,1,81,
-10001,9,196,3,0,
-10001,9,203,4,0,
-10001,9,207,4,0,
-10001,9,214,4,0,
-10001,9,216,4,0,
-10001,9,218,4,0,
-10001,9,219,4,0,
-10001,9,228,1,33,
-10001,9,237,4,0,
-10001,9,240,4,0,
-10001,9,241,4,0,
-10001,9,244,4,0,
-10001,9,247,4,0,
-10001,9,249,4,0,
-10001,9,259,4,0,
-10001,9,263,4,0,
-10001,9,264,4,0,
-10001,9,269,1,25,
-10001,9,269,4,0,
-10001,9,271,3,0,
-10001,9,276,1,49,
-10001,9,278,4,0,
-10001,9,280,4,0,
-10001,9,282,3,0,
-10001,9,285,4,0,
-10001,9,289,4,0,
-10001,9,290,4,0,
-10001,9,317,4,0,
-10001,9,322,1,73,
-10001,9,324,3,0,
-10001,9,332,4,0,
-10001,9,347,4,0,
-10001,9,351,4,0,
-10001,9,352,4,0,
-10001,9,354,1,89,
-10001,9,363,4,0,
-10001,9,374,4,0,
-10001,9,375,1,57,
-10001,9,398,4,0,
-10001,9,409,4,0,
-10001,9,411,4,0,
-10001,9,412,4,0,
-10001,9,416,4,0,
-10001,9,419,4,0,
-10001,9,428,1,65,
-10001,9,428,3,0,
-10001,9,430,4,0,
-10001,9,433,4,0,
-10001,9,446,4,0,
-10001,9,447,4,0,
-10001,9,451,4,0,
-10001,10,7,3,0,
-10001,10,8,3,0,
-10001,10,9,3,0,
-10001,10,15,4,0,
-10001,10,29,3,0,
-10001,10,35,1,1,2
-10001,10,43,1,1,1
-10001,10,58,4,0,
-10001,10,63,1,97,
-10001,10,63,4,0,
-10001,10,67,3,0,
-10001,10,70,4,0,
-10001,10,76,4,0,
-10001,10,85,4,0,
-10001,10,86,4,0,
-10001,10,87,4,0,
-10001,10,92,4,0,
-10001,10,94,1,41,
-10001,10,94,4,0,
-10001,10,100,1,17,
-10001,10,101,1,9,
-10001,10,104,4,0,
-10001,10,113,4,0,
-10001,10,115,4,0,
-10001,10,129,3,0,
-10001,10,138,4,0,
-10001,10,148,4,0,
-10001,10,156,4,0,
-10001,10,157,4,0,
-10001,10,164,4,0,
-10001,10,173,3,0,
-10001,10,182,4,0,
-10001,10,189,3,0,
-10001,10,192,1,81,
-10001,10,196,3,0,
-10001,10,203,4,0,
-10001,10,207,4,0,
-10001,10,214,4,0,
-10001,10,216,4,0,
-10001,10,218,4,0,
-10001,10,219,4,0,
-10001,10,228,1,33,
-10001,10,237,4,0,
-10001,10,240,4,0,
-10001,10,241,4,0,
-10001,10,244,4,0,
-10001,10,247,4,0,
-10001,10,249,4,0,
-10001,10,259,4,0,
-10001,10,263,4,0,
-10001,10,264,4,0,
-10001,10,269,1,25,
-10001,10,269,4,0,
-10001,10,271,3,0,
-10001,10,272,3,0,
-10001,10,276,1,49,
-10001,10,278,4,0,
-10001,10,280,4,0,
-10001,10,282,3,0,
-10001,10,285,4,0,
-10001,10,289,4,0,
-10001,10,290,4,0,
-10001,10,317,4,0,
-10001,10,322,1,73,
-10001,10,324,3,0,
-10001,10,332,4,0,
-10001,10,347,4,0,
-10001,10,351,4,0,
-10001,10,352,4,0,
-10001,10,354,1,89,
-10001,10,356,3,0,
-10001,10,363,4,0,
-10001,10,374,4,0,
-10001,10,375,1,57,
-10001,10,398,4,0,
-10001,10,409,4,0,
-10001,10,411,4,0,
-10001,10,412,4,0,
-10001,10,416,4,0,
-10001,10,419,4,0,
-10001,10,428,1,65,
-10001,10,428,3,0,
-10001,10,430,4,0,
-10001,10,433,4,0,
-10001,10,446,4,0,
-10001,10,447,4,0,
-10001,10,451,4,0,
-10001,11,15,4,0,
-10001,11,35,1,1,2
-10001,11,43,1,1,1
-10001,11,58,4,0,
-10001,11,63,1,97,
-10001,11,63,4,0,
-10001,11,70,4,0,
-10001,11,76,4,0,
-10001,11,85,4,0,
-10001,11,86,4,0,
-10001,11,87,4,0,
-10001,11,92,4,0,
-10001,11,94,1,41,
-10001,11,94,4,0,
-10001,11,100,1,17,
-10001,11,101,1,9,
-10001,11,104,4,0,
-10001,11,113,4,0,
-10001,11,115,4,0,
-10001,11,138,4,0,
-10001,11,148,4,0,
-10001,11,156,4,0,
-10001,11,157,4,0,
-10001,11,164,4,0,
-10001,11,182,4,0,
-10001,11,192,1,81,
-10001,11,207,4,0,
-10001,11,216,4,0,
-10001,11,218,4,0,
-10001,11,219,4,0,
-10001,11,228,1,33,
-10001,11,237,4,0,
-10001,11,240,4,0,
-10001,11,241,4,0,
-10001,11,244,4,0,
-10001,11,247,4,0,
-10001,11,249,4,0,
-10001,11,259,4,0,
-10001,11,263,4,0,
-10001,11,269,1,25,
-10001,11,269,4,0,
-10001,11,276,1,49,
-10001,11,280,4,0,
-10001,11,317,4,0,
-10001,11,322,1,73,
-10001,11,332,4,0,
-10001,11,347,4,0,
-10001,11,354,1,89,
-10001,11,374,4,0,
-10001,11,375,1,57,
-10001,11,398,4,0,
-10001,11,411,4,0,
-10001,11,412,4,0,
-10001,11,416,4,0,
-10001,11,428,1,65,
-10001,11,430,4,0,
-10001,11,433,4,0,
-10001,11,447,4,0,
-10001,11,451,4,0,
-10001,11,473,4,0,
-10001,11,477,4,0,
-10001,11,490,4,0,
-10001,11,496,4,0,
-10001,11,502,4,0,
-10002,7,15,4,0,
-10002,7,35,1,1,2
-10002,7,43,1,1,1
-10002,7,58,4,0,
-10002,7,63,4,0,
-10002,7,68,1,50,1
-10002,7,70,4,0,
-10002,7,76,4,0,
-10002,7,85,4,0,
-10002,7,87,4,0,
-10002,7,92,4,0,
-10002,7,94,1,25,
-10002,7,94,4,0,
-10002,7,100,1,10,
-10002,7,101,1,5,
-10002,7,104,4,0,
-10002,7,105,1,40,
-10002,7,113,4,0,
-10002,7,115,4,0,
-10002,7,133,1,35,2
-10002,7,148,4,0,
-10002,7,156,4,0,
-10002,7,182,4,0,
-10002,7,191,1,20,
-10002,7,216,4,0,
-10002,7,218,4,0,
-10002,7,219,4,0,
-10002,7,237,4,0,
-10002,7,240,4,0,
-10002,7,241,4,0,
-10002,7,243,1,50,2
-10002,7,247,4,0,
-10002,7,249,4,0,
-10002,7,259,4,0,
-10002,7,263,4,0,
-10002,7,264,4,0,
-10002,7,269,4,0,
-10002,7,280,4,0,
-10002,7,282,1,15,
-10002,7,285,4,0,
-10002,7,289,1,30,
-10002,7,289,4,0,
-10002,7,290,4,0,
-10002,7,317,4,0,
-10002,7,332,4,0,
-10002,7,334,1,35,1
-10002,7,347,4,0,
-10002,7,351,4,0,
-10002,7,352,4,0,
-10002,7,354,1,45,
-10002,8,15,4,0,
-10002,8,35,1,1,2
-10002,8,43,1,1,1
-10002,8,58,4,0,
-10002,8,63,4,0,
-10002,8,68,1,97,1
-10002,8,70,4,0,
-10002,8,76,4,0,
-10002,8,85,4,0,
-10002,8,86,4,0,
-10002,8,87,4,0,
-10002,8,92,4,0,
-10002,8,94,1,41,
-10002,8,94,4,0,
-10002,8,100,1,17,
-10002,8,101,1,9,
-10002,8,104,4,0,
-10002,8,105,1,81,
-10002,8,113,4,0,
-10002,8,115,4,0,
-10002,8,133,1,73,2
-10002,8,138,4,0,
-10002,8,148,4,0,
-10002,8,156,4,0,
-10002,8,157,4,0,
-10002,8,164,4,0,
-10002,8,182,4,0,
-10002,8,191,1,33,
-10002,8,203,4,0,
-10002,8,207,4,0,
-10002,8,214,4,0,
-10002,8,216,4,0,
-10002,8,218,4,0,
-10002,8,219,4,0,
-10002,8,237,4,0,
-10002,8,240,4,0,
-10002,8,241,4,0,
-10002,8,243,1,97,2
-10002,8,244,4,0,
-10002,8,247,4,0,
-10002,8,249,4,0,
-10002,8,259,4,0,
-10002,8,263,4,0,
-10002,8,264,4,0,
-10002,8,269,4,0,
-10002,8,278,4,0,
-10002,8,280,4,0,
-10002,8,282,1,25,
-10002,8,285,4,0,
-10002,8,289,1,49,
-10002,8,289,4,0,
-10002,8,290,4,0,
-10002,8,317,4,0,
-10002,8,332,4,0,
-10002,8,334,1,73,1
-10002,8,347,4,0,
-10002,8,351,4,0,
-10002,8,352,4,0,
-10002,8,354,1,89,
-10002,8,363,4,0,
-10002,8,374,4,0,
-10002,8,375,1,57,
-10002,8,398,4,0,
-10002,8,409,4,0,
-10002,8,411,4,0,
-10002,8,412,4,0,
-10002,8,416,4,0,
-10002,8,419,4,0,
-10002,8,428,1,65,
-10002,8,430,4,0,
-10002,8,433,4,0,
-10002,8,446,4,0,
-10002,8,447,4,0,
-10002,8,451,4,0,
-10002,9,7,3,0,
-10002,9,8,3,0,
-10002,9,9,3,0,
-10002,9,15,4,0,
-10002,9,35,1,1,2
-10002,9,43,1,1,1
-10002,9,58,4,0,
-10002,9,63,4,0,
-10002,9,68,1,97,1
-10002,9,70,4,0,
-10002,9,76,4,0,
-10002,9,85,4,0,
-10002,9,86,4,0,
-10002,9,87,4,0,
-10002,9,92,4,0,
-10002,9,94,1,41,
-10002,9,94,4,0,
-10002,9,100,1,17,
-10002,9,101,1,9,
-10002,9,104,4,0,
-10002,9,105,1,81,
-10002,9,113,4,0,
-10002,9,115,4,0,
-10002,9,129,3,0,
-10002,9,133,1,73,2
-10002,9,138,4,0,
-10002,9,148,4,0,
-10002,9,156,4,0,
-10002,9,157,4,0,
-10002,9,164,4,0,
-10002,9,173,3,0,
-10002,9,182,4,0,
-10002,9,189,3,0,
-10002,9,191,1,33,
-10002,9,196,3,0,
-10002,9,203,4,0,
-10002,9,207,4,0,
-10002,9,214,4,0,
-10002,9,216,4,0,
-10002,9,218,4,0,
-10002,9,219,4,0,
-10002,9,237,4,0,
-10002,9,240,4,0,
-10002,9,241,4,0,
-10002,9,243,1,97,2
-10002,9,244,4,0,
-10002,9,247,4,0,
-10002,9,249,4,0,
-10002,9,259,4,0,
-10002,9,263,4,0,
-10002,9,264,4,0,
-10002,9,269,4,0,
-10002,9,271,3,0,
-10002,9,278,4,0,
-10002,9,280,4,0,
-10002,9,282,1,25,
-10002,9,282,3,0,
-10002,9,285,4,0,
-10002,9,289,1,49,
-10002,9,289,4,0,
-10002,9,290,4,0,
-10002,9,317,4,0,
-10002,9,324,3,0,
-10002,9,332,4,0,
-10002,9,334,1,73,1
-10002,9,347,4,0,
-10002,9,351,4,0,
-10002,9,352,4,0,
-10002,9,354,1,89,
-10002,9,363,4,0,
-10002,9,374,4,0,
-10002,9,375,1,57,
-10002,9,398,4,0,
-10002,9,409,4,0,
-10002,9,411,4,0,
-10002,9,412,4,0,
-10002,9,416,4,0,
-10002,9,419,4,0,
-10002,9,428,1,65,
-10002,9,428,3,0,
-10002,9,430,4,0,
-10002,9,433,4,0,
-10002,9,446,4,0,
-10002,9,447,4,0,
-10002,9,451,4,0,
-10002,10,7,3,0,
-10002,10,8,3,0,
-10002,10,9,3,0,
-10002,10,15,4,0,
-10002,10,29,3,0,
-10002,10,35,1,1,2
-10002,10,43,1,1,1
-10002,10,58,4,0,
-10002,10,63,4,0,
-10002,10,67,3,0,
-10002,10,68,1,97,1
-10002,10,70,4,0,
-10002,10,76,4,0,
-10002,10,85,4,0,
-10002,10,86,4,0,
-10002,10,87,4,0,
-10002,10,92,4,0,
-10002,10,94,1,41,
-10002,10,94,4,0,
-10002,10,100,1,17,
-10002,10,101,1,9,
-10002,10,104,4,0,
-10002,10,105,1,81,
-10002,10,113,4,0,
-10002,10,115,4,0,
-10002,10,129,3,0,
-10002,10,133,1,73,2
-10002,10,138,4,0,
-10002,10,148,4,0,
-10002,10,156,4,0,
-10002,10,157,4,0,
-10002,10,164,4,0,
-10002,10,173,3,0,
-10002,10,182,4,0,
-10002,10,189,3,0,
-10002,10,191,1,33,
-10002,10,196,3,0,
-10002,10,203,4,0,
-10002,10,207,4,0,
-10002,10,214,4,0,
-10002,10,216,4,0,
-10002,10,218,4,0,
-10002,10,219,4,0,
-10002,10,237,4,0,
-10002,10,240,4,0,
-10002,10,241,4,0,
-10002,10,243,1,97,2
-10002,10,244,4,0,
-10002,10,247,4,0,
-10002,10,249,4,0,
-10002,10,259,4,0,
-10002,10,263,4,0,
-10002,10,264,4,0,
-10002,10,269,4,0,
-10002,10,271,3,0,
-10002,10,272,3,0,
-10002,10,278,4,0,
-10002,10,280,4,0,
-10002,10,282,1,25,
-10002,10,282,3,0,
-10002,10,285,4,0,
-10002,10,289,1,49,
-10002,10,289,4,0,
-10002,10,290,4,0,
-10002,10,317,4,0,
-10002,10,324,3,0,
-10002,10,332,4,0,
-10002,10,334,1,73,1
-10002,10,347,4,0,
-10002,10,351,4,0,
-10002,10,352,4,0,
-10002,10,354,1,89,
-10002,10,356,3,0,
-10002,10,363,4,0,
-10002,10,374,4,0,
-10002,10,375,1,57,
-10002,10,398,4,0,
-10002,10,409,4,0,
-10002,10,411,4,0,
-10002,10,412,4,0,
-10002,10,416,4,0,
-10002,10,419,4,0,
-10002,10,428,1,65,
-10002,10,428,3,0,
-10002,10,430,4,0,
-10002,10,433,4,0,
-10002,10,446,4,0,
-10002,10,447,4,0,
-10002,10,451,4,0,
-10002,11,15,4,0,
-10002,11,35,1,1,2
-10002,11,43,1,1,1
-10002,11,58,4,0,
-10002,11,63,4,0,
-10002,11,68,1,97,1
-10002,11,70,4,0,
-10002,11,76,4,0,
-10002,11,85,4,0,
-10002,11,86,4,0,
-10002,11,87,4,0,
-10002,11,92,4,0,
-10002,11,94,1,41,
-10002,11,94,4,0,
-10002,11,100,1,17,
-10002,11,101,1,9,
-10002,11,104,4,0,
-10002,11,105,1,81,
-10002,11,113,4,0,
-10002,11,115,4,0,
-10002,11,133,1,73,2
-10002,11,138,4,0,
-10002,11,148,4,0,
-10002,11,156,4,0,
-10002,11,157,4,0,
-10002,11,164,4,0,
-10002,11,182,4,0,
-10002,11,191,1,33,
-10002,11,207,4,0,
-10002,11,216,4,0,
-10002,11,218,4,0,
-10002,11,219,4,0,
-10002,11,237,4,0,
-10002,11,240,4,0,
-10002,11,241,4,0,
-10002,11,243,1,97,2
-10002,11,244,4,0,
-10002,11,247,4,0,
-10002,11,249,4,0,
-10002,11,259,4,0,
-10002,11,263,4,0,
-10002,11,269,4,0,
-10002,11,280,4,0,
-10002,11,282,1,25,
-10002,11,289,1,49,
-10002,11,317,4,0,
-10002,11,332,4,0,
-10002,11,334,1,73,1
-10002,11,347,4,0,
-10002,11,354,1,89,
-10002,11,374,4,0,
-10002,11,375,1,57,
-10002,11,398,4,0,
-10002,11,411,4,0,
-10002,11,412,4,0,
-10002,11,416,4,0,
-10002,11,428,1,65,
-10002,11,430,4,0,
-10002,11,433,4,0,
-10002,11,447,4,0,
-10002,11,451,4,0,
-10002,11,473,4,0,
-10002,11,477,4,0,
-10002,11,490,4,0,
-10002,11,496,4,0,
-10002,11,502,4,0,
-10003,6,15,4,0,
-10003,6,35,1,1,2
-10003,6,43,1,1,1
-10003,6,58,4,0,
-10003,6,63,4,0,
-10003,6,70,4,0,
-10003,6,76,4,0,
-10003,6,85,4,0,
-10003,6,87,4,0,
-10003,6,92,4,0,
-10003,6,94,1,25,
-10003,6,94,4,0,
-10003,6,97,1,35,
-10003,6,101,1,5,
-10003,6,104,1,10,
-10003,6,104,4,0,
-10003,6,105,1,40,
-10003,6,113,4,0,
-10003,6,115,4,0,
-10003,6,129,1,30,
-10003,6,148,4,0,
-10003,6,156,4,0,
-10003,6,182,4,0,
-10003,6,216,4,0,
-10003,6,218,4,0,
-10003,6,219,4,0,
-10003,6,228,1,20,
-10003,6,237,4,0,
-10003,6,240,4,0,
-10003,6,241,4,0,
-10003,6,245,1,50,
-10003,6,247,4,0,
-10003,6,249,4,0,
-10003,6,259,4,0,
-10003,6,263,4,0,
-10003,6,264,4,0,
-10003,6,269,4,0,
-10003,6,280,4,0,
-10003,6,282,1,15,
-10003,6,285,4,0,
-10003,6,289,4,0,
-10003,6,290,4,0,
-10003,6,317,4,0,
-10003,6,332,4,0,
-10003,6,347,4,0,
-10003,6,351,4,0,
-10003,6,352,4,0,
-10003,6,354,1,45,
-10003,8,15,4,0,
-10003,8,35,1,1,2
-10003,8,43,1,1,1
-10003,8,58,4,0,
-10003,8,63,4,0,
-10003,8,70,4,0,
-10003,8,76,4,0,
-10003,8,85,4,0,
-10003,8,86,4,0,
-10003,8,87,4,0,
-10003,8,92,4,0,
-10003,8,94,1,41,
-10003,8,94,4,0,
-10003,8,97,1,73,
-10003,8,101,1,9,
-10003,8,104,1,17,
-10003,8,104,4,0,
-10003,8,105,1,81,
-10003,8,113,4,0,
-10003,8,115,4,0,
-10003,8,129,1,49,
-10003,8,138,4,0,
-10003,8,148,4,0,
-10003,8,156,4,0,
-10003,8,157,4,0,
-10003,8,164,4,0,
-10003,8,182,4,0,
-10003,8,203,4,0,
-10003,8,207,4,0,
-10003,8,214,4,0,
-10003,8,216,4,0,
-10003,8,218,4,0,
-10003,8,219,4,0,
-10003,8,228,1,33,
-10003,8,237,4,0,
-10003,8,240,4,0,
-10003,8,241,4,0,
-10003,8,244,4,0,
-10003,8,245,1,97,
-10003,8,247,4,0,
-10003,8,249,4,0,
-10003,8,259,4,0,
-10003,8,263,4,0,
-10003,8,264,4,0,
-10003,8,269,4,0,
-10003,8,278,4,0,
-10003,8,280,4,0,
-10003,8,282,1,25,
-10003,8,285,4,0,
-10003,8,289,4,0,
-10003,8,290,4,0,
-10003,8,317,4,0,
-10003,8,332,4,0,
-10003,8,347,4,0,
-10003,8,351,4,0,
-10003,8,352,4,0,
-10003,8,354,1,89,
-10003,8,363,4,0,
-10003,8,374,4,0,
-10003,8,375,1,57,
-10003,8,398,4,0,
-10003,8,409,4,0,
-10003,8,411,4,0,
-10003,8,412,4,0,
-10003,8,416,4,0,
-10003,8,419,4,0,
-10003,8,428,1,65,
-10003,8,430,4,0,
-10003,8,433,4,0,
-10003,8,446,4,0,
-10003,8,447,4,0,
-10003,8,451,4,0,
-10003,9,7,3,0,
-10003,9,8,3,0,
-10003,9,9,3,0,
-10003,9,15,4,0,
-10003,9,35,1,1,2
-10003,9,43,1,1,1
-10003,9,58,4,0,
-10003,9,63,4,0,
-10003,9,70,4,0,
-10003,9,76,4,0,
-10003,9,85,4,0,
-10003,9,86,4,0,
-10003,9,87,4,0,
-10003,9,92,4,0,
-10003,9,94,1,41,
-10003,9,94,4,0,
-10003,9,97,1,73,
-10003,9,101,1,9,
-10003,9,104,1,17,
-10003,9,104,4,0,
-10003,9,105,1,81,
-10003,9,113,4,0,
-10003,9,115,4,0,
-10003,9,129,1,49,
-10003,9,129,3,0,
-10003,9,138,4,0,
-10003,9,148,4,0,
-10003,9,156,4,0,
-10003,9,157,4,0,
-10003,9,164,4,0,
-10003,9,173,3,0,
-10003,9,182,4,0,
-10003,9,189,3,0,
-10003,9,196,3,0,
-10003,9,203,4,0,
-10003,9,207,4,0,
-10003,9,214,4,0,
-10003,9,216,4,0,
-10003,9,218,4,0,
-10003,9,219,4,0,
-10003,9,228,1,33,
-10003,9,237,4,0,
-10003,9,240,4,0,
-10003,9,241,4,0,
-10003,9,244,4,0,
-10003,9,245,1,97,
-10003,9,247,4,0,
-10003,9,249,4,0,
-10003,9,259,4,0,
-10003,9,263,4,0,
-10003,9,264,4,0,
-10003,9,269,4,0,
-10003,9,271,3,0,
-10003,9,278,4,0,
-10003,9,280,4,0,
-10003,9,282,1,25,
-10003,9,282,3,0,
-10003,9,285,4,0,
-10003,9,289,4,0,
-10003,9,290,4,0,
-10003,9,317,4,0,
-10003,9,324,3,0,
-10003,9,332,4,0,
-10003,9,347,4,0,
-10003,9,351,4,0,
-10003,9,352,4,0,
-10003,9,354,1,89,
-10003,9,363,4,0,
-10003,9,374,4,0,
-10003,9,375,1,57,
-10003,9,398,4,0,
-10003,9,409,4,0,
-10003,9,411,4,0,
-10003,9,412,4,0,
-10003,9,416,4,0,
-10003,9,419,4,0,
-10003,9,428,1,65,
-10003,9,428,3,0,
-10003,9,430,4,0,
-10003,9,433,4,0,
-10003,9,446,4,0,
-10003,9,447,4,0,
-10003,9,451,4,0,
-10003,10,7,3,0,
-10003,10,8,3,0,
-10003,10,9,3,0,
-10003,10,15,4,0,
-10003,10,29,3,0,
-10003,10,35,1,1,2
-10003,10,43,1,1,1
-10003,10,58,4,0,
-10003,10,63,4,0,
-10003,10,67,3,0,
-10003,10,70,4,0,
-10003,10,76,4,0,
-10003,10,85,4,0,
-10003,10,86,4,0,
-10003,10,87,4,0,
-10003,10,92,4,0,
-10003,10,94,1,41,
-10003,10,94,4,0,
-10003,10,97,1,73,
-10003,10,101,1,9,
-10003,10,104,1,17,
-10003,10,104,4,0,
-10003,10,105,1,81,
-10003,10,113,4,0,
-10003,10,115,4,0,
-10003,10,129,1,49,
-10003,10,129,3,0,
-10003,10,138,4,0,
-10003,10,148,4,0,
-10003,10,156,4,0,
-10003,10,157,4,0,
-10003,10,164,4,0,
-10003,10,173,3,0,
-10003,10,182,4,0,
-10003,10,189,3,0,
-10003,10,196,3,0,
-10003,10,203,4,0,
-10003,10,207,4,0,
-10003,10,214,4,0,
-10003,10,216,4,0,
-10003,10,218,4,0,
-10003,10,219,4,0,
-10003,10,228,1,33,
-10003,10,237,4,0,
-10003,10,240,4,0,
-10003,10,241,4,0,
-10003,10,244,4,0,
-10003,10,245,1,97,
-10003,10,247,4,0,
-10003,10,249,4,0,
-10003,10,259,4,0,
-10003,10,263,4,0,
-10003,10,264,4,0,
-10003,10,269,4,0,
-10003,10,271,3,0,
-10003,10,272,3,0,
-10003,10,278,4,0,
-10003,10,280,4,0,
-10003,10,282,1,25,
-10003,10,282,3,0,
-10003,10,285,4,0,
-10003,10,289,4,0,
-10003,10,290,4,0,
-10003,10,317,4,0,
-10003,10,324,3,0,
-10003,10,332,4,0,
-10003,10,347,4,0,
-10003,10,351,4,0,
-10003,10,352,4,0,
-10003,10,354,1,89,
-10003,10,356,3,0,
-10003,10,363,4,0,
-10003,10,374,4,0,
-10003,10,375,1,57,
-10003,10,398,4,0,
-10003,10,409,4,0,
-10003,10,411,4,0,
-10003,10,412,4,0,
-10003,10,416,4,0,
-10003,10,419,4,0,
-10003,10,428,1,65,
-10003,10,428,3,0,
-10003,10,430,4,0,
-10003,10,433,4,0,
-10003,10,446,4,0,
-10003,10,447,4,0,
-10003,10,451,4,0,
-10003,11,15,4,0,
-10003,11,35,1,1,2
-10003,11,43,1,1,1
-10003,11,58,4,0,
-10003,11,63,4,0,
-10003,11,70,4,0,
-10003,11,76,4,0,
-10003,11,85,4,0,
-10003,11,86,4,0,
-10003,11,87,4,0,
-10003,11,92,4,0,
-10003,11,94,1,41,
-10003,11,94,4,0,
-10003,11,97,1,73,
-10003,11,101,1,9,
-10003,11,104,1,17,
-10003,11,104,4,0,
-10003,11,105,1,81,
-10003,11,113,4,0,
-10003,11,115,4,0,
-10003,11,129,1,49,
-10003,11,138,4,0,
-10003,11,148,4,0,
-10003,11,156,4,0,
-10003,11,157,4,0,
-10003,11,164,4,0,
-10003,11,182,4,0,
-10003,11,207,4,0,
-10003,11,216,4,0,
-10003,11,218,4,0,
-10003,11,219,4,0,
-10003,11,228,1,33,
-10003,11,237,4,0,
-10003,11,240,4,0,
-10003,11,241,4,0,
-10003,11,244,4,0,
-10003,11,245,1,97,
-10003,11,247,4,0,
-10003,11,249,4,0,
-10003,11,259,4,0,
-10003,11,263,4,0,
-10003,11,269,4,0,
-10003,11,280,4,0,
-10003,11,282,1,25,
-10003,11,317,4,0,
-10003,11,332,4,0,
-10003,11,347,4,0,
-10003,11,354,1,89,
-10003,11,374,4,0,
-10003,11,375,1,57,
-10003,11,398,4,0,
-10003,11,411,4,0,
-10003,11,412,4,0,
-10003,11,416,4,0,
-10003,11,428,1,65,
-10003,11,430,4,0,
-10003,11,433,4,0,
-10003,11,447,4,0,
-10003,11,451,4,0,
-10003,11,473,4,0,
-10003,11,477,4,0,
-10003,11,490,4,0,
-10003,11,496,4,0,
-10003,11,502,4,0,
-10004,8,33,1,1,
-10004,8,60,1,32,
-10004,8,63,4,0,
-10004,8,89,4,0,
-10004,8,90,1,47,
-10004,8,91,4,0,
-10004,8,92,4,0,
-10004,8,93,1,23,
-10004,8,94,1,44,
-10004,8,94,4,0,
-10004,8,104,4,0,
-10004,8,106,1,29,
-10004,8,138,4,0,
-10004,8,148,4,0,
-10004,8,156,4,0,
-10004,8,164,4,0,
-10004,8,168,4,0,
-10004,8,175,1,38,
-10004,8,182,1,10,
-10004,8,182,4,0,
-10004,8,201,4,0,
-10004,8,203,4,0,
-10004,8,207,4,0,
-10004,8,213,1,41,
-10004,8,213,4,0,
-10004,8,214,4,0,
-10004,8,216,4,0,
-10004,8,218,4,0,
-10004,8,219,4,0,
-10004,8,237,1,20,
-10004,8,237,4,0,
-10004,8,240,4,0,
-10004,8,241,4,0,
-10004,8,244,4,0,
-10004,8,247,4,0,
-10004,8,263,4,0,
-10004,8,285,4,0,
-10004,8,290,4,0,
-10004,8,317,4,0,
-10004,8,350,1,26,
-10004,8,363,4,0,
-10004,8,416,4,0,
-10004,8,445,1,35,
-10004,8,445,4,0,
-10004,9,33,1,1,
-10004,9,60,1,32,
-10004,9,63,4,0,
-10004,9,89,4,0,
-10004,9,90,1,47,
-10004,9,91,4,0,
-10004,9,92,4,0,
-10004,9,93,1,23,
-10004,9,94,1,44,
-10004,9,94,4,0,
-10004,9,104,4,0,
-10004,9,106,1,29,
-10004,9,138,4,0,
-10004,9,148,4,0,
-10004,9,156,4,0,
-10004,9,164,4,0,
-10004,9,168,4,0,
-10004,9,173,3,0,
-10004,9,175,1,38,
-10004,9,182,1,10,
-10004,9,182,4,0,
-10004,9,189,3,0,
-10004,9,201,4,0,
-10004,9,203,4,0,
-10004,9,205,3,0,
-10004,9,207,4,0,
-10004,9,213,1,41,
-10004,9,213,4,0,
-10004,9,214,4,0,
-10004,9,216,4,0,
-10004,9,218,4,0,
-10004,9,219,4,0,
-10004,9,237,1,20,
-10004,9,237,4,0,
-10004,9,240,4,0,
-10004,9,241,4,0,
-10004,9,244,4,0,
-10004,9,247,4,0,
-10004,9,253,3,0,
-10004,9,263,4,0,
-10004,9,283,3,0,
-10004,9,285,4,0,
-10004,9,290,4,0,
-10004,9,317,4,0,
-10004,9,324,3,0,
-10004,9,350,1,26,
-10004,9,363,4,0,
-10004,9,389,3,0,
-10004,9,414,3,0,
-10004,9,416,4,0,
-10004,9,445,1,35,
-10004,9,445,4,0,
-10004,9,450,1,15,
-10004,10,33,1,1,
-10004,10,60,1,32,
-10004,10,63,4,0,
-10004,10,81,3,0,
-10004,10,89,4,0,
-10004,10,90,1,47,
-10004,10,91,4,0,
-10004,10,92,4,0,
-10004,10,93,1,23,
-10004,10,94,1,44,
-10004,10,94,4,0,
-10004,10,104,4,0,
-10004,10,106,1,29,
-10004,10,138,4,0,
-10004,10,148,4,0,
-10004,10,156,4,0,
-10004,10,164,4,0,
-10004,10,168,4,0,
-10004,10,173,3,0,
-10004,10,175,1,38,
-10004,10,182,1,10,
-10004,10,182,4,0,
-10004,10,189,3,0,
-10004,10,201,4,0,
-10004,10,203,4,0,
-10004,10,205,3,0,
-10004,10,207,4,0,
-10004,10,213,1,41,
-10004,10,213,4,0,
-10004,10,214,4,0,
-10004,10,216,4,0,
-10004,10,218,4,0,
-10004,10,219,4,0,
-10004,10,237,1,20,
-10004,10,237,4,0,
-10004,10,240,4,0,
-10004,10,241,4,0,
-10004,10,244,4,0,
-10004,10,247,4,0,
-10004,10,253,3,0,
-10004,10,263,4,0,
-10004,10,283,3,0,
-10004,10,285,4,0,
-10004,10,290,4,0,
-10004,10,317,4,0,
-10004,10,324,3,0,
-10004,10,350,1,26,
-10004,10,363,4,0,
-10004,10,389,3,0,
-10004,10,414,3,0,
-10004,10,416,4,0,
-10004,10,445,1,35,
-10004,10,445,4,0,
-10004,10,450,1,15,
-10004,10,450,3,0,
-10004,11,33,1,1,
-10004,11,60,1,32,
-10004,11,63,4,0,
-10004,11,89,4,0,
-10004,11,90,1,47,
-10004,11,91,4,0,
-10004,11,92,4,0,
-10004,11,93,1,23,
-10004,11,94,1,44,
-10004,11,94,4,0,
-10004,11,104,4,0,
-10004,11,106,1,29,
-10004,11,138,4,0,
-10004,11,148,4,0,
-10004,11,156,4,0,
-10004,11,164,4,0,
-10004,11,168,4,0,
-10004,11,175,1,38,
-10004,11,182,1,10,
-10004,11,182,4,0,
-10004,11,201,4,0,
-10004,11,207,4,0,
-10004,11,213,1,41,
-10004,11,213,4,0,
-10004,11,216,4,0,
-10004,11,218,4,0,
-10004,11,219,4,0,
-10004,11,237,1,20,
-10004,11,237,4,0,
-10004,11,240,4,0,
-10004,11,241,4,0,
-10004,11,244,4,0,
-10004,11,247,4,0,
-10004,11,263,4,0,
-10004,11,317,4,0,
-10004,11,350,1,26,
-10004,11,416,4,0,
-10004,11,445,1,35,
-10004,11,450,1,15,
-10004,11,474,4,0,
-10004,11,496,4,0,
-10004,11,522,4,0,
-10004,11,523,4,0,
-10005,8,33,1,1,
-10005,8,60,1,32,
-10005,8,63,4,0,
-10005,8,92,4,0,
-10005,8,93,1,23,
-10005,8,94,1,44,
-10005,8,94,4,0,
-10005,8,104,4,0,
-10005,8,138,4,0,
-10005,8,148,4,0,
-10005,8,156,4,0,
-10005,8,164,4,0,
-10005,8,168,4,0,
-10005,8,175,1,38,
-10005,8,182,1,10,
-10005,8,182,4,0,
-10005,8,203,4,0,
-10005,8,207,4,0,
-10005,8,213,1,41,
-10005,8,213,4,0,
-10005,8,214,4,0,
-10005,8,216,4,0,
-10005,8,218,4,0,
-10005,8,219,4,0,
-10005,8,237,1,20,
-10005,8,237,4,0,
-10005,8,240,4,0,
-10005,8,241,4,0,
-10005,8,244,4,0,
-10005,8,247,4,0,
-10005,8,263,4,0,
-10005,8,285,4,0,
-10005,8,290,4,0,
-10005,8,319,1,29,
-10005,8,360,4,0,
-10005,8,363,4,0,
-10005,8,416,4,0,
-10005,8,429,1,26,
-10005,8,430,4,0,
-10005,8,442,1,47,
-10005,8,445,1,35,
-10005,8,445,4,0,
-10005,8,446,4,0,
-10005,9,33,1,1,
-10005,9,60,1,32,
-10005,9,63,4,0,
-10005,9,92,4,0,
-10005,9,93,1,23,
-10005,9,94,1,44,
-10005,9,94,4,0,
-10005,9,104,4,0,
-10005,9,138,4,0,
-10005,9,148,4,0,
-10005,9,156,4,0,
-10005,9,164,4,0,
-10005,9,168,4,0,
-10005,9,173,3,0,
-10005,9,175,1,38,
-10005,9,182,1,10,
-10005,9,182,4,0,
-10005,9,203,4,0,
-10005,9,207,4,0,
-10005,9,213,1,41,
-10005,9,213,4,0,
-10005,9,214,4,0,
-10005,9,216,4,0,
-10005,9,218,4,0,
-10005,9,219,4,0,
-10005,9,237,1,20,
-10005,9,237,4,0,
-10005,9,240,4,0,
-10005,9,241,4,0,
-10005,9,244,4,0,
-10005,9,247,4,0,
-10005,9,253,3,0,
-10005,9,263,4,0,
-10005,9,283,3,0,
-10005,9,285,4,0,
-10005,9,290,4,0,
-10005,9,319,1,29,
-10005,9,324,3,0,
-10005,9,334,3,0,
-10005,9,360,4,0,
-10005,9,363,4,0,
-10005,9,389,3,0,
-10005,9,393,3,0,
-10005,9,416,4,0,
-10005,9,429,1,26,
-10005,9,430,4,0,
-10005,9,441,3,0,
-10005,9,442,1,47,
-10005,9,442,3,0,
-10005,9,445,1,35,
-10005,9,445,4,0,
-10005,9,446,4,0,
-10005,9,450,1,15,
-10005,10,33,1,1,
-10005,10,60,1,32,
-10005,10,63,4,0,
-10005,10,81,3,0,
-10005,10,92,4,0,
-10005,10,93,1,23,
-10005,10,94,1,44,
-10005,10,94,4,0,
-10005,10,104,4,0,
-10005,10,138,4,0,
-10005,10,148,4,0,
-10005,10,156,4,0,
-10005,10,164,4,0,
-10005,10,168,4,0,
-10005,10,173,3,0,
-10005,10,175,1,38,
-10005,10,182,1,10,
-10005,10,182,4,0,
-10005,10,203,4,0,
-10005,10,207,4,0,
-10005,10,213,1,41,
-10005,10,213,4,0,
-10005,10,214,4,0,
-10005,10,216,4,0,
-10005,10,218,4,0,
-10005,10,219,4,0,
-10005,10,237,1,20,
-10005,10,237,4,0,
-10005,10,240,4,0,
-10005,10,241,4,0,
-10005,10,244,4,0,
-10005,10,247,4,0,
-10005,10,253,3,0,
-10005,10,263,4,0,
-10005,10,283,3,0,
-10005,10,285,4,0,
-10005,10,290,4,0,
-10005,10,319,1,29,
-10005,10,324,3,0,
-10005,10,334,3,0,
-10005,10,360,4,0,
-10005,10,363,4,0,
-10005,10,389,3,0,
-10005,10,393,3,0,
-10005,10,416,4,0,
-10005,10,429,1,26,
-10005,10,430,4,0,
-10005,10,441,3,0,
-10005,10,442,1,47,
-10005,10,442,3,0,
-10005,10,445,1,35,
-10005,10,445,4,0,
-10005,10,446,4,0,
-10005,10,450,1,15,
-10005,10,450,3,0,
-10005,11,33,1,1,
-10005,11,60,1,32,
-10005,11,63,4,0,
-10005,11,92,4,0,
-10005,11,93,1,23,
-10005,11,94,1,44,
-10005,11,94,4,0,
-10005,11,104,4,0,
-10005,11,138,4,0,
-10005,11,148,4,0,
-10005,11,156,4,0,
-10005,11,164,4,0,
-10005,11,168,4,0,
-10005,11,175,1,38,
-10005,11,182,1,10,
-10005,11,182,4,0,
-10005,11,207,4,0,
-10005,11,213,1,41,
-10005,11,213,4,0,
-10005,11,216,4,0,
-10005,11,218,4,0,
-10005,11,219,4,0,
-10005,11,237,1,20,
-10005,11,237,4,0,
-10005,11,240,4,0,
-10005,11,241,4,0,
-10005,11,244,4,0,
-10005,11,247,4,0,
-10005,11,263,4,0,
-10005,11,319,1,29,
-10005,11,360,4,0,
-10005,11,416,4,0,
-10005,11,429,1,26,
-10005,11,430,4,0,
-10005,11,442,1,47,
-10005,11,445,1,35,
-10005,11,450,1,15,
-10005,11,474,4,0,
-10005,11,496,4,0,
-10005,11,522,4,0,
-10006,9,14,4,0,
-10006,9,63,4,0,
-10006,9,73,1,19,
-10006,9,74,1,1,
-10006,9,76,4,0,
-10006,9,92,4,0,
-10006,9,94,4,0,
-10006,9,98,1,28,
-10006,9,104,4,0,
-10006,9,129,3,0,
-10006,9,148,4,0,
-10006,9,156,4,0,
-10006,9,164,4,0,
-10006,9,173,3,0,
-10006,9,182,4,0,
-10006,9,186,1,82,
-10006,9,189,3,0,
-10006,9,202,4,0,
-10006,9,203,4,0,
-10006,9,207,4,0,
-10006,9,214,4,0,
-10006,9,216,4,0,
-10006,9,218,4,0,
-10006,9,219,4,0,
-10006,9,230,1,37,
-10006,9,235,3,0,
-10006,9,237,4,0,
-10006,9,241,4,0,
-10006,9,244,4,0,
-10006,9,263,4,0,
-10006,9,290,4,0,
-10006,9,314,3,0,
-10006,9,331,4,0,
-10006,9,345,1,10,
-10006,9,363,1,46,
-10006,9,363,4,0,
-10006,9,387,3,0,
-10006,9,388,1,55,
-10006,9,402,3,0,
-10006,9,403,1,64,
-10006,9,412,1,73,
-10006,9,412,4,0,
-10006,9,416,4,0,
-10006,9,428,3,0,
-10006,9,437,1,91,
-10006,9,447,4,0,
-10006,9,465,1,100,
-10006,9,466,3,0,
-10006,10,14,4,0,
-10006,10,29,3,0,
-10006,10,63,4,0,
-10006,10,73,1,19,
-10006,10,74,1,1,
-10006,10,76,4,0,
-10006,10,92,4,0,
-10006,10,94,4,0,
-10006,10,98,1,28,
-10006,10,104,4,0,
-10006,10,129,3,0,
-10006,10,148,4,0,
-10006,10,156,4,0,
-10006,10,164,4,0,
-10006,10,173,3,0,
-10006,10,182,4,0,
-10006,10,186,1,82,
-10006,10,189,3,0,
-10006,10,202,4,0,
-10006,10,203,4,0,
-10006,10,207,4,0,
-10006,10,214,4,0,
-10006,10,216,4,0,
-10006,10,218,4,0,
-10006,10,219,4,0,
-10006,10,230,1,37,
-10006,10,235,3,0,
-10006,10,237,4,0,
-10006,10,241,4,0,
-10006,10,244,4,0,
-10006,10,263,4,0,
-10006,10,290,4,0,
-10006,10,314,3,0,
-10006,10,331,4,0,
-10006,10,345,1,10,
-10006,10,363,1,46,
-10006,10,363,4,0,
-10006,10,366,3,0,
-10006,10,387,3,0,
-10006,10,388,1,55,
-10006,10,388,3,0,
-10006,10,402,3,0,
-10006,10,403,1,64,
-10006,10,412,1,73,
-10006,10,412,4,0,
-10006,10,416,4,0,
-10006,10,428,3,0,
-10006,10,437,1,91,
-10006,10,447,4,0,
-10006,10,465,1,100,
-10006,10,466,3,0,
-10006,11,14,4,0,
-10006,11,63,4,0,
-10006,11,73,1,19,
-10006,11,74,1,1,
-10006,11,76,4,0,
-10006,11,92,4,0,
-10006,11,94,4,0,
-10006,11,98,1,28,
-10006,11,104,4,0,
-10006,11,148,4,0,
-10006,11,156,4,0,
-10006,11,164,4,0,
-10006,11,182,4,0,
-10006,11,186,1,82,
-10006,11,207,4,0,
-10006,11,216,4,0,
-10006,11,218,4,0,
-10006,11,219,4,0,
-10006,11,230,1,37,
-10006,11,237,4,0,
-10006,11,241,4,0,
-10006,11,244,4,0,
-10006,11,263,4,0,
-10006,11,345,1,10,
-10006,11,363,1,46,
-10006,11,388,1,55,
-10006,11,403,1,64,
-10006,11,412,1,73,
-10006,11,412,4,0,
-10006,11,416,4,0,
-10006,11,437,1,91,
-10006,11,447,4,0,
-10006,11,465,1,100,
-10006,11,496,4,0,
-10007,9,15,4,0,
-10007,9,19,4,0,
-10007,9,46,4,0,
-10007,9,63,4,0,
-10007,9,70,4,0,
-10007,9,85,4,0,
-10007,9,86,4,0,
-10007,9,87,4,0,
-10007,9,89,4,0,
-10007,9,92,4,0,
-10007,9,94,4,0,
-10007,9,104,4,0,
-10007,9,129,3,0,
-10007,9,138,4,0,
-10007,9,156,4,0,
-10007,9,163,1,70,
-10007,9,164,4,0,
-10007,9,173,3,0,
-10007,9,180,3,0,
-10007,9,182,4,0,
-10007,9,184,1,1,2
-10007,9,189,3,0,
-10007,9,196,3,0,
-10007,9,200,3,0,
-10007,9,203,4,0,
-10007,9,207,4,0,
-10007,9,210,3,0,
-10007,9,211,4,0,
-10007,9,214,4,0,
-10007,9,216,4,0,
-10007,9,218,4,0,
-10007,9,219,4,0,
-10007,9,225,1,1,1
-10007,9,231,4,0,
-10007,9,237,4,0,
-10007,9,239,3,0,
-10007,9,240,4,0,
-10007,9,241,4,0,
-10007,9,244,4,0,
-10007,9,246,1,20,
-10007,9,246,3,0,
-10007,9,247,4,0,
-10007,9,249,4,0,
-10007,9,261,4,0,
-10007,9,263,4,0,
-10007,9,290,4,0,
-10007,9,314,3,0,
-10007,9,318,4,0,
-10007,9,332,4,0,
-10007,9,337,1,30,
-10007,9,337,4,0,
-10007,9,347,4,0,
-10007,9,351,4,0,
-10007,9,363,4,0,
-10007,9,371,4,0,
-10007,9,377,1,50,
-10007,9,396,1,90,
-10007,9,399,4,0,
-10007,9,401,3,0,
-10007,9,406,4,0,
-10007,9,412,4,0,
-10007,9,414,1,60,
-10007,9,414,3,0,
-10007,9,416,4,0,
-10007,9,421,1,80,
-10007,9,421,4,0,
-10007,9,431,4,0,
-10007,9,432,4,0,
-10007,9,434,3,0,
-10007,9,442,3,0,
-10007,9,444,4,0,
-10007,9,451,4,0,
-10007,9,466,1,10,
-10007,9,466,3,0,
-10007,9,467,1,40,
-10007,10,15,4,0,
-10007,10,19,4,0,
-10007,10,29,3,0,
-10007,10,46,4,0,
-10007,10,63,4,0,
-10007,10,70,4,0,
-10007,10,85,4,0,
-10007,10,86,4,0,
-10007,10,87,4,0,
-10007,10,89,4,0,
-10007,10,92,4,0,
-10007,10,94,4,0,
-10007,10,104,4,0,
-10007,10,129,3,0,
-10007,10,138,4,0,
-10007,10,156,4,0,
-10007,10,163,1,15,
-10007,10,164,4,0,
-10007,10,173,3,0,
-10007,10,180,3,0,
-10007,10,182,4,0,
-10007,10,184,1,1,2
-10007,10,189,3,0,
-10007,10,194,1,24,
-10007,10,196,3,0,
-10007,10,200,3,0,
-10007,10,203,4,0,
-10007,10,207,4,0,
-10007,10,210,3,0,
-10007,10,211,4,0,
-10007,10,214,4,0,
-10007,10,216,4,0,
-10007,10,218,4,0,
-10007,10,219,4,0,
-10007,10,220,3,0,
-10007,10,225,1,1,1
-10007,10,231,4,0,
-10007,10,237,4,0,
-10007,10,239,3,0,
-10007,10,240,4,0,
-10007,10,241,4,0,
-10007,10,244,4,0,
-10007,10,246,1,10,
-10007,10,246,3,0,
-10007,10,247,4,0,
-10007,10,249,4,0,
-10007,10,261,4,0,
-10007,10,263,4,0,
-10007,10,272,3,0,
-10007,10,277,3,0,
-10007,10,290,4,0,
-10007,10,314,3,0,
-10007,10,318,4,0,
-10007,10,332,4,0,
-10007,10,337,1,28,
-10007,10,337,4,0,
-10007,10,347,4,0,
-10007,10,351,4,0,
-10007,10,356,3,0,
-10007,10,363,4,0,
-10007,10,366,3,0,
-10007,10,371,4,0,
-10007,10,396,1,37,
-10007,10,399,4,0,
-10007,10,401,3,0,
-10007,10,406,4,0,
-10007,10,412,4,0,
-10007,10,414,1,33,
-10007,10,414,3,0,
-10007,10,416,4,0,
-10007,10,421,1,42,
-10007,10,421,4,0,
-10007,10,425,1,19,
-10007,10,431,4,0,
-10007,10,434,3,0,
-10007,10,442,3,0,
-10007,10,444,4,0,
-10007,10,451,4,0,
-10007,10,466,1,6,
-10007,10,466,3,0,
-10007,10,467,1,46,
-10007,11,15,4,0,
-10007,11,19,4,0,
-10007,11,46,4,0,
-10007,11,63,4,0,
-10007,11,70,4,0,
-10007,11,85,4,0,
-10007,11,86,4,0,
-10007,11,87,4,0,
-10007,11,89,4,0,
-10007,11,92,4,0,
-10007,11,94,4,0,
-10007,11,104,4,0,
-10007,11,138,4,0,
-10007,11,156,4,0,
-10007,11,163,1,15,
-10007,11,164,4,0,
-10007,11,182,4,0,
-10007,11,184,1,1,2
-10007,11,194,1,24,
-10007,11,207,4,0,
-10007,11,216,4,0,
-10007,11,218,4,0,
-10007,11,219,4,0,
-10007,11,225,1,1,1
-10007,11,237,4,0,
-10007,11,240,4,0,
-10007,11,241,4,0,
-10007,11,244,4,0,
-10007,11,246,1,10,
-10007,11,247,4,0,
-10007,11,249,4,0,
-10007,11,261,4,0,
-10007,11,263,4,0,
-10007,11,332,4,0,
-10007,11,337,1,28,
-10007,11,337,4,0,
-10007,11,347,4,0,
-10007,11,371,4,0,
-10007,11,396,1,37,
-10007,11,412,4,0,
-10007,11,414,1,33,
-10007,11,416,4,0,
-10007,11,421,1,42,
-10007,11,421,4,0,
-10007,11,425,1,19,
-10007,11,434,3,0,
-10007,11,444,4,0,
-10007,11,451,4,0,
-10007,11,466,1,6,
-10007,11,467,1,46,
-10007,11,468,4,0,
-10007,11,477,4,0,
-10007,11,496,4,0,
-10007,11,497,4,0,
-10007,11,506,1,50,
-10007,11,523,4,0,
-10007,11,525,4,0,
-10008,9,84,1,1,4
-10008,9,85,4,0,
-10008,9,86,1,1,3
-10008,9,86,4,0,
-10008,9,87,4,0,
-10008,9,92,4,0,
-10008,9,104,1,15,
-10008,9,104,4,0,
-10008,9,109,1,1,5
-10008,9,113,4,0,
-10008,9,115,4,0,
-10008,9,129,3,0,
-10008,9,138,4,0,
-10008,9,148,4,0,
-10008,9,156,4,0,
-10008,9,164,1,36,
-10008,9,164,4,0,
-10008,9,168,4,0,
-10008,9,173,3,0,
-10008,9,180,3,0,
-10008,9,182,4,0,
-10008,9,189,3,0,
-10008,9,203,4,0,
-10008,9,207,4,0,
-10008,9,214,4,0,
-10008,9,216,4,0,
-10008,9,218,4,0,
-10008,9,237,4,0,
-10008,9,240,4,0,
-10008,9,241,4,0,
-10008,9,244,4,0,
-10008,9,247,4,0,
-10008,9,253,1,8,
-10008,9,261,4,0,
-10008,9,263,4,0,
-10008,9,268,1,43,
-10008,9,271,1,1,1
-10008,9,271,3,0,
-10008,9,289,4,0,
-10008,9,290,4,0,
-10008,9,310,1,1,2
-10008,9,315,10,0,
-10008,9,324,3,0,
-10008,9,351,1,22,
-10008,9,351,4,0,
-10008,9,363,4,0,
-10008,9,389,3,0,
-10008,9,399,4,0,
-10008,9,435,1,50,
-10008,9,451,4,0,
-10008,9,466,1,29,
-10008,9,466,3,0,
-10008,10,84,1,1,4
-10008,10,85,4,0,
-10008,10,86,1,1,3
-10008,10,86,4,0,
-10008,10,87,4,0,
-10008,10,92,4,0,
-10008,10,104,1,15,
-10008,10,104,4,0,
-10008,10,109,1,1,5
-10008,10,113,4,0,
-10008,10,115,4,0,
-10008,10,129,3,0,
-10008,10,138,4,0,
-10008,10,148,4,0,
-10008,10,156,4,0,
-10008,10,164,1,36,
-10008,10,164,4,0,
-10008,10,168,4,0,
-10008,10,173,3,0,
-10008,10,180,3,0,
-10008,10,182,4,0,
-10008,10,189,3,0,
-10008,10,203,4,0,
-10008,10,207,4,0,
-10008,10,214,4,0,
-10008,10,216,4,0,
-10008,10,218,4,0,
-10008,10,220,3,0,
-10008,10,237,4,0,
-10008,10,240,4,0,
-10008,10,241,4,0,
-10008,10,244,4,0,
-10008,10,247,4,0,
-10008,10,253,1,8,
-10008,10,261,4,0,
-10008,10,263,4,0,
-10008,10,268,1,43,
-10008,10,271,1,1,1
-10008,10,271,3,0,
-10008,10,289,4,0,
-10008,10,290,4,0,
-10008,10,310,1,1,2
-10008,10,315,10,0,
-10008,10,324,3,0,
-10008,10,351,1,22,
-10008,10,351,4,0,
-10008,10,363,4,0,
-10008,10,389,3,0,
-10008,10,399,4,0,
-10008,10,435,1,50,
-10008,10,451,4,0,
-10008,10,466,1,29,
-10008,10,466,3,0,
-10008,11,84,1,1,4
-10008,11,85,4,0,
-10008,11,86,1,1,3
-10008,11,86,4,0,
-10008,11,87,4,0,
-10008,11,92,4,0,
-10008,11,104,1,15,
-10008,11,104,4,0,
-10008,11,109,1,1,5
-10008,11,113,4,0,
-10008,11,115,4,0,
-10008,11,138,4,0,
-10008,11,148,4,0,
-10008,11,156,4,0,
-10008,11,164,1,36,
-10008,11,164,4,0,
-10008,11,168,4,0,
-10008,11,182,4,0,
-10008,11,207,4,0,
-10008,11,216,4,0,
-10008,11,218,4,0,
-10008,11,237,4,0,
-10008,11,240,4,0,
-10008,11,241,4,0,
-10008,11,244,4,0,
-10008,11,247,4,0,
-10008,11,253,1,8,
-10008,11,261,4,0,
-10008,11,263,4,0,
-10008,11,268,1,57,
-10008,11,271,1,1,1
-10008,11,310,1,1,2
-10008,11,351,1,22,
-10008,11,435,1,64,
-10008,11,451,4,0,
-10008,11,466,1,29,
-10008,11,477,4,0,
-10008,11,486,1,43,
-10008,11,496,4,0,
-10008,11,506,1,50,
-10008,11,521,4,0,
-10009,9,56,10,0,
-10009,9,84,1,1,4
-10009,9,85,4,0,
-10009,9,86,1,1,3
-10009,9,86,4,0,
-10009,9,87,4,0,
-10009,9,92,4,0,
-10009,9,104,1,15,
-10009,9,104,4,0,
-10009,9,109,1,1,5
-10009,9,113,4,0,
-10009,9,115,4,0,
-10009,9,129,3,0,
-10009,9,138,4,0,
-10009,9,148,4,0,
-10009,9,156,4,0,
-10009,9,164,1,36,
-10009,9,164,4,0,
-10009,9,168,4,0,
-10009,9,173,3,0,
-10009,9,180,3,0,
-10009,9,182,4,0,
-10009,9,189,3,0,
-10009,9,203,4,0,
-10009,9,207,4,0,
-10009,9,214,4,0,
-10009,9,216,4,0,
-10009,9,218,4,0,
-10009,9,237,4,0,
-10009,9,240,4,0,
-10009,9,241,4,0,
-10009,9,244,4,0,
-10009,9,247,4,0,
-10009,9,253,1,8,
-10009,9,261,4,0,
-10009,9,263,4,0,
-10009,9,268,1,43,
-10009,9,271,1,1,1
-10009,9,271,3,0,
-10009,9,289,4,0,
-10009,9,290,4,0,
-10009,9,310,1,1,2
-10009,9,324,3,0,
-10009,9,351,1,22,
-10009,9,351,4,0,
-10009,9,363,4,0,
-10009,9,389,3,0,
-10009,9,399,4,0,
-10009,9,435,1,50,
-10009,9,451,4,0,
-10009,9,466,1,29,
-10009,9,466,3,0,
-10009,10,56,10,0,
-10009,10,84,1,1,4
-10009,10,85,4,0,
-10009,10,86,1,1,3
-10009,10,86,4,0,
-10009,10,87,4,0,
-10009,10,92,4,0,
-10009,10,104,1,15,
-10009,10,104,4,0,
-10009,10,109,1,1,5
-10009,10,113,4,0,
-10009,10,115,4,0,
-10009,10,129,3,0,
-10009,10,138,4,0,
-10009,10,148,4,0,
-10009,10,156,4,0,
-10009,10,164,1,36,
-10009,10,164,4,0,
-10009,10,168,4,0,
-10009,10,173,3,0,
-10009,10,180,3,0,
-10009,10,182,4,0,
-10009,10,189,3,0,
-10009,10,203,4,0,
-10009,10,207,4,0,
-10009,10,214,4,0,
-10009,10,216,4,0,
-10009,10,218,4,0,
-10009,10,220,3,0,
-10009,10,237,4,0,
-10009,10,240,4,0,
-10009,10,241,4,0,
-10009,10,244,4,0,
-10009,10,247,4,0,
-10009,10,253,1,8,
-10009,10,261,4,0,
-10009,10,263,4,0,
-10009,10,268,1,43,
-10009,10,271,1,1,1
-10009,10,271,3,0,
-10009,10,289,4,0,
-10009,10,290,4,0,
-10009,10,310,1,1,2
-10009,10,324,3,0,
-10009,10,351,1,22,
-10009,10,351,4,0,
-10009,10,363,4,0,
-10009,10,389,3,0,
-10009,10,399,4,0,
-10009,10,435,1,50,
-10009,10,451,4,0,
-10009,10,466,1,29,
-10009,10,466,3,0,
-10009,11,84,1,1,4
-10009,11,85,4,0,
-10009,11,86,1,1,3
-10009,11,86,4,0,
-10009,11,87,4,0,
-10009,11,92,4,0,
-10009,11,104,1,15,
-10009,11,104,4,0,
-10009,11,109,1,1,5
-10009,11,113,4,0,
-10009,11,115,4,0,
-10009,11,138,4,0,
-10009,11,148,4,0,
-10009,11,156,4,0,
-10009,11,164,1,36,
-10009,11,164,4,0,
-10009,11,168,4,0,
-10009,11,182,4,0,
-10009,11,207,4,0,
-10009,11,216,4,0,
-10009,11,218,4,0,
-10009,11,237,4,0,
-10009,11,240,4,0,
-10009,11,241,4,0,
-10009,11,244,4,0,
-10009,11,247,4,0,
-10009,11,253,1,8,
-10009,11,261,4,0,
-10009,11,263,4,0,
-10009,11,268,1,57,
-10009,11,271,1,1,1
-10009,11,310,1,1,2
-10009,11,351,1,22,
-10009,11,435,1,64,
-10009,11,451,4,0,
-10009,11,466,1,29,
-10009,11,477,4,0,
-10009,11,486,1,43,
-10009,11,496,4,0,
-10009,11,506,1,50,
-10009,11,521,4,0,
-10010,9,59,10,0,
-10010,9,84,1,1,4
-10010,9,85,4,0,
-10010,9,86,1,1,3
-10010,9,86,4,0,
-10010,9,87,4,0,
-10010,9,92,4,0,
-10010,9,104,1,15,
-10010,9,104,4,0,
-10010,9,109,1,1,5
-10010,9,113,4,0,
-10010,9,115,4,0,
-10010,9,129,3,0,
-10010,9,138,4,0,
-10010,9,148,4,0,
-10010,9,156,4,0,
-10010,9,164,1,36,
-10010,9,164,4,0,
-10010,9,168,4,0,
-10010,9,173,3,0,
-10010,9,180,3,0,
-10010,9,182,4,0,
-10010,9,189,3,0,
-10010,9,203,4,0,
-10010,9,207,4,0,
-10010,9,214,4,0,
-10010,9,216,4,0,
-10010,9,218,4,0,
-10010,9,237,4,0,
-10010,9,240,4,0,
-10010,9,241,4,0,
-10010,9,244,4,0,
-10010,9,247,4,0,
-10010,9,253,1,8,
-10010,9,261,4,0,
-10010,9,263,4,0,
-10010,9,268,1,43,
-10010,9,271,1,1,1
-10010,9,271,3,0,
-10010,9,289,4,0,
-10010,9,290,4,0,
-10010,9,310,1,1,2
-10010,9,324,3,0,
-10010,9,351,1,22,
-10010,9,351,4,0,
-10010,9,363,4,0,
-10010,9,389,3,0,
-10010,9,399,4,0,
-10010,9,435,1,50,
-10010,9,451,4,0,
-10010,9,466,1,29,
-10010,9,466,3,0,
-10010,10,59,10,0,
-10010,10,84,1,1,4
-10010,10,85,4,0,
-10010,10,86,1,1,3
-10010,10,86,4,0,
-10010,10,87,4,0,
-10010,10,92,4,0,
-10010,10,104,1,15,
-10010,10,104,4,0,
-10010,10,109,1,1,5
-10010,10,113,4,0,
-10010,10,115,4,0,
-10010,10,129,3,0,
-10010,10,138,4,0,
-10010,10,148,4,0,
-10010,10,156,4,0,
-10010,10,164,1,36,
-10010,10,164,4,0,
-10010,10,168,4,0,
-10010,10,173,3,0,
-10010,10,180,3,0,
-10010,10,182,4,0,
-10010,10,189,3,0,
-10010,10,203,4,0,
-10010,10,207,4,0,
-10010,10,214,4,0,
-10010,10,216,4,0,
-10010,10,218,4,0,
-10010,10,220,3,0,
-10010,10,237,4,0,
-10010,10,240,4,0,
-10010,10,241,4,0,
-10010,10,244,4,0,
-10010,10,247,4,0,
-10010,10,253,1,8,
-10010,10,261,4,0,
-10010,10,263,4,0,
-10010,10,268,1,43,
-10010,10,271,1,1,1
-10010,10,271,3,0,
-10010,10,289,4,0,
-10010,10,290,4,0,
-10010,10,310,1,1,2
-10010,10,324,3,0,
-10010,10,351,1,22,
-10010,10,351,4,0,
-10010,10,363,4,0,
-10010,10,389,3,0,
-10010,10,399,4,0,
-10010,10,435,1,50,
-10010,10,451,4,0,
-10010,10,466,1,29,
-10010,10,466,3,0,
-10010,11,84,1,1,4
-10010,11,85,4,0,
-10010,11,86,1,1,3
-10010,11,86,4,0,
-10010,11,87,4,0,
-10010,11,92,4,0,
-10010,11,104,1,15,
-10010,11,104,4,0,
-10010,11,109,1,1,5
-10010,11,113,4,0,
-10010,11,115,4,0,
-10010,11,138,4,0,
-10010,11,148,4,0,
-10010,11,156,4,0,
-10010,11,164,1,36,
-10010,11,164,4,0,
-10010,11,168,4,0,
-10010,11,182,4,0,
-10010,11,207,4,0,
-10010,11,216,4,0,
-10010,11,218,4,0,
-10010,11,237,4,0,
-10010,11,240,4,0,
-10010,11,241,4,0,
-10010,11,244,4,0,
-10010,11,247,4,0,
-10010,11,253,1,8,
-10010,11,261,4,0,
-10010,11,263,4,0,
-10010,11,268,1,57,
-10010,11,271,1,1,1
-10010,11,310,1,1,2
-10010,11,351,1,22,
-10010,11,435,1,64,
-10010,11,451,4,0,
-10010,11,466,1,29,
-10010,11,477,4,0,
-10010,11,486,1,43,
-10010,11,496,4,0,
-10010,11,506,1,50,
-10010,11,521,4,0,
-10011,9,84,1,1,4
-10011,9,85,4,0,
-10011,9,86,1,1,3
-10011,9,86,4,0,
-10011,9,87,4,0,
-10011,9,92,4,0,
-10011,9,104,1,15,
-10011,9,104,4,0,
-10011,9,109,1,1,5
-10011,9,113,4,0,
-10011,9,115,4,0,
-10011,9,129,3,0,
-10011,9,138,4,0,
-10011,9,148,4,0,
-10011,9,156,4,0,
-10011,9,164,1,36,
-10011,9,164,4,0,
-10011,9,168,4,0,
-10011,9,173,3,0,
-10011,9,180,3,0,
-10011,9,182,4,0,
-10011,9,189,3,0,
-10011,9,203,4,0,
-10011,9,207,4,0,
-10011,9,214,4,0,
-10011,9,216,4,0,
-10011,9,218,4,0,
-10011,9,237,4,0,
-10011,9,240,4,0,
-10011,9,241,4,0,
-10011,9,244,4,0,
-10011,9,247,4,0,
-10011,9,253,1,8,
-10011,9,261,4,0,
-10011,9,263,4,0,
-10011,9,268,1,43,
-10011,9,271,1,1,1
-10011,9,271,3,0,
-10011,9,289,4,0,
-10011,9,290,4,0,
-10011,9,310,1,1,2
-10011,9,324,3,0,
-10011,9,351,1,22,
-10011,9,351,4,0,
-10011,9,363,4,0,
-10011,9,389,3,0,
-10011,9,399,4,0,
-10011,9,403,10,0,
-10011,9,435,1,50,
-10011,9,451,4,0,
-10011,9,466,1,29,
-10011,9,466,3,0,
-10011,10,84,1,1,4
-10011,10,85,4,0,
-10011,10,86,1,1,3
-10011,10,86,4,0,
-10011,10,87,4,0,
-10011,10,92,4,0,
-10011,10,104,1,15,
-10011,10,104,4,0,
-10011,10,109,1,1,5
-10011,10,113,4,0,
-10011,10,115,4,0,
-10011,10,129,3,0,
-10011,10,138,4,0,
-10011,10,148,4,0,
-10011,10,156,4,0,
-10011,10,164,1,36,
-10011,10,164,4,0,
-10011,10,168,4,0,
-10011,10,173,3,0,
-10011,10,180,3,0,
-10011,10,182,4,0,
-10011,10,189,3,0,
-10011,10,203,4,0,
-10011,10,207,4,0,
-10011,10,214,4,0,
-10011,10,216,4,0,
-10011,10,218,4,0,
-10011,10,220,3,0,
-10011,10,237,4,0,
-10011,10,240,4,0,
-10011,10,241,4,0,
-10011,10,244,4,0,
-10011,10,247,4,0,
-10011,10,253,1,8,
-10011,10,261,4,0,
-10011,10,263,4,0,
-10011,10,268,1,43,
-10011,10,271,1,1,1
-10011,10,271,3,0,
-10011,10,289,4,0,
-10011,10,290,4,0,
-10011,10,310,1,1,2
-10011,10,324,3,0,
-10011,10,351,1,22,
-10011,10,351,4,0,
-10011,10,363,4,0,
-10011,10,389,3,0,
-10011,10,399,4,0,
-10011,10,403,10,0,
-10011,10,435,1,50,
-10011,10,451,4,0,
-10011,10,466,1,29,
-10011,10,466,3,0,
-10011,11,84,1,1,4
-10011,11,85,4,0,
-10011,11,86,1,1,3
-10011,11,86,4,0,
-10011,11,87,4,0,
-10011,11,92,4,0,
-10011,11,104,1,15,
-10011,11,104,4,0,
-10011,11,109,1,1,5
-10011,11,113,4,0,
-10011,11,115,4,0,
-10011,11,138,4,0,
-10011,11,148,4,0,
-10011,11,156,4,0,
-10011,11,164,1,36,
-10011,11,164,4,0,
-10011,11,168,4,0,
-10011,11,182,4,0,
-10011,11,207,4,0,
-10011,11,216,4,0,
-10011,11,218,4,0,
-10011,11,237,4,0,
-10011,11,240,4,0,
-10011,11,241,4,0,
-10011,11,244,4,0,
-10011,11,247,4,0,
-10011,11,253,1,8,
-10011,11,261,4,0,
-10011,11,263,4,0,
-10011,11,268,1,57,
-10011,11,271,1,1,1
-10011,11,310,1,1,2
-10011,11,351,1,22,
-10011,11,435,1,64,
-10011,11,451,4,0,
-10011,11,466,1,29,
-10011,11,477,4,0,
-10011,11,486,1,43,
-10011,11,496,4,0,
-10011,11,506,1,50,
-10011,11,521,4,0,
-10012,9,84,1,1,4
-10012,9,85,4,0,
-10012,9,86,1,1,3
-10012,9,86,4,0,
-10012,9,87,4,0,
-10012,9,92,4,0,
-10012,9,104,1,15,
-10012,9,104,4,0,
-10012,9,109,1,1,5
-10012,9,113,4,0,
-10012,9,115,4,0,
-10012,9,129,3,0,
-10012,9,138,4,0,
-10012,9,148,4,0,
-10012,9,156,4,0,
-10012,9,164,1,36,
-10012,9,164,4,0,
-10012,9,168,4,0,
-10012,9,173,3,0,
-10012,9,180,3,0,
-10012,9,182,4,0,
-10012,9,189,3,0,
-10012,9,203,4,0,
-10012,9,207,4,0,
-10012,9,214,4,0,
-10012,9,216,4,0,
-10012,9,218,4,0,
-10012,9,237,4,0,
-10012,9,240,4,0,
-10012,9,241,4,0,
-10012,9,244,4,0,
-10012,9,247,4,0,
-10012,9,253,1,8,
-10012,9,261,4,0,
-10012,9,263,4,0,
-10012,9,268,1,43,
-10012,9,271,1,1,1
-10012,9,271,3,0,
-10012,9,289,4,0,
-10012,9,290,4,0,
-10012,9,310,1,1,2
-10012,9,324,3,0,
-10012,9,351,1,22,
-10012,9,351,4,0,
-10012,9,363,4,0,
-10012,9,389,3,0,
-10012,9,399,4,0,
-10012,9,435,1,50,
-10012,9,437,10,0,
-10012,9,451,4,0,
-10012,9,466,1,29,
-10012,9,466,3,0,
-10012,10,84,1,1,4
-10012,10,85,4,0,
-10012,10,86,1,1,3
-10012,10,86,4,0,
-10012,10,87,4,0,
-10012,10,92,4,0,
-10012,10,104,1,15,
-10012,10,104,4,0,
-10012,10,109,1,1,5
-10012,10,113,4,0,
-10012,10,115,4,0,
-10012,10,129,3,0,
-10012,10,138,4,0,
-10012,10,148,4,0,
-10012,10,156,4,0,
-10012,10,164,1,36,
-10012,10,164,4,0,
-10012,10,168,4,0,
-10012,10,173,3,0,
-10012,10,180,3,0,
-10012,10,182,4,0,
-10012,10,189,3,0,
-10012,10,203,4,0,
-10012,10,207,4,0,
-10012,10,214,4,0,
-10012,10,216,4,0,
-10012,10,218,4,0,
-10012,10,220,3,0,
-10012,10,237,4,0,
-10012,10,240,4,0,
-10012,10,241,4,0,
-10012,10,244,4,0,
-10012,10,247,4,0,
-10012,10,253,1,8,
-10012,10,261,4,0,
-10012,10,263,4,0,
-10012,10,268,1,43,
-10012,10,271,1,1,1
-10012,10,271,3,0,
-10012,10,289,4,0,
-10012,10,290,4,0,
-10012,10,310,1,1,2
-10012,10,324,3,0,
-10012,10,351,1,22,
-10012,10,351,4,0,
-10012,10,363,4,0,
-10012,10,389,3,0,
-10012,10,399,4,0,
-10012,10,435,1,50,
-10012,10,437,10,0,
-10012,10,451,4,0,
-10012,10,466,1,29,
-10012,10,466,3,0,
-10012,11,84,1,1,4
-10012,11,85,4,0,
-10012,11,86,1,1,3
-10012,11,86,4,0,
-10012,11,87,4,0,
-10012,11,92,4,0,
-10012,11,104,1,15,
-10012,11,104,4,0,
-10012,11,109,1,1,5
-10012,11,113,4,0,
-10012,11,115,4,0,
-10012,11,138,4,0,
-10012,11,148,4,0,
-10012,11,156,4,0,
-10012,11,164,1,36,
-10012,11,164,4,0,
-10012,11,168,4,0,
-10012,11,182,4,0,
-10012,11,207,4,0,
-10012,11,216,4,0,
-10012,11,218,4,0,
-10012,11,237,4,0,
-10012,11,240,4,0,
-10012,11,241,4,0,
-10012,11,244,4,0,
-10012,11,247,4,0,
-10012,11,253,1,8,
-10012,11,261,4,0,
-10012,11,263,4,0,
-10012,11,268,1,57,
-10012,11,271,1,1,1
-10012,11,310,1,1,2
-10012,11,351,1,22,
-10012,11,435,1,64,
-10012,11,451,4,0,
-10012,11,466,1,29,
-10012,11,477,4,0,
-10012,11,486,1,43,
-10012,11,496,4,0,
-10012,11,506,1,50,
-10012,11,521,4,0,
-10013,11,29,1,20,
-10013,11,33,1,1,
-10013,11,52,1,10,2
-10013,11,53,4,0,
-10013,11,55,1,10,1
-10013,11,56,1,50,1
-10013,11,58,4,0,
-10013,11,59,1,50,3
-10013,11,59,4,0,
-10013,11,76,4,0,
-10013,11,85,4,0,
-10013,11,86,4,0,
-10013,11,87,4,0,
-10013,11,92,4,0,
-10013,11,104,4,0,
-10013,11,126,1,50,2
-10013,11,126,4,0,
-10013,11,148,4,0,
-10013,11,156,4,0,
-10013,11,164,4,0,
-10013,11,168,4,0,
-10013,11,181,1,10,3
-10013,11,182,4,0,
-10013,11,201,4,0,
-10013,11,207,4,0,
-10013,11,213,4,0,
-10013,11,216,4,0,
-10013,11,218,4,0,
-10013,11,237,4,0,
-10013,11,240,1,30,1
-10013,11,240,4,0,
-10013,11,241,1,30,2
-10013,11,241,4,0,
-10013,11,244,4,0,
-10013,11,247,4,0,
-10013,11,258,1,30,3
-10013,11,258,4,0,
-10013,11,263,4,0,
-10013,11,311,1,40,
-10013,11,412,4,0,
-10013,11,496,4,0,
-10013,11,503,4,0,
-10013,11,510,4,0,
-10013,11,514,4,0,
-10013,11,526,4,0,
-10014,11,29,1,20,
-10014,11,33,1,1,
-10014,11,52,1,10,2
-10014,11,53,4,0,
-10014,11,55,1,10,1
-10014,11,56,1,50,1
-10014,11,58,4,0,
-10014,11,59,1,50,3
-10014,11,59,4,0,
-10014,11,76,4,0,
-10014,11,85,4,0,
-10014,11,86,4,0,
-10014,11,87,4,0,
-10014,11,92,4,0,
-10014,11,104,4,0,
-10014,11,126,1,50,2
-10014,11,126,4,0,
-10014,11,148,4,0,
-10014,11,156,4,0,
-10014,11,164,4,0,
-10014,11,168,4,0,
-10014,11,181,1,10,3
-10014,11,182,4,0,
-10014,11,201,4,0,
-10014,11,207,4,0,
-10014,11,213,4,0,
-10014,11,216,4,0,
-10014,11,218,4,0,
-10014,11,237,4,0,
-10014,11,240,1,30,1
-10014,11,240,4,0,
-10014,11,241,1,30,2
-10014,11,241,4,0,
-10014,11,244,4,0,
-10014,11,247,4,0,
-10014,11,258,1,30,3
-10014,11,258,4,0,
-10014,11,263,4,0,
-10014,11,311,1,40,
-10014,11,412,4,0,
-10014,11,496,4,0,
-10014,11,503,4,0,
-10014,11,510,4,0,
-10014,11,514,4,0,
-10014,11,526,4,0,
-10015,11,29,1,20,
-10015,11,33,1,1,
-10015,11,52,1,10,2
-10015,11,53,4,0,
-10015,11,55,1,10,1
-10015,11,56,1,50,1
-10015,11,58,4,0,
-10015,11,59,1,50,3
-10015,11,59,4,0,
-10015,11,76,4,0,
-10015,11,85,4,0,
-10015,11,86,4,0,
-10015,11,87,4,0,
-10015,11,92,4,0,
-10015,11,104,4,0,
-10015,11,126,1,50,2
-10015,11,126,4,0,
-10015,11,148,4,0,
-10015,11,156,4,0,
-10015,11,164,4,0,
-10015,11,168,4,0,
-10015,11,181,1,10,3
-10015,11,182,4,0,
-10015,11,201,4,0,
-10015,11,207,4,0,
-10015,11,213,4,0,
-10015,11,216,4,0,
-10015,11,218,4,0,
-10015,11,237,4,0,
-10015,11,240,1,30,1
-10015,11,240,4,0,
-10015,11,241,1,30,2
-10015,11,241,4,0,
-10015,11,244,4,0,
-10015,11,247,4,0,
-10015,11,258,1,30,3
-10015,11,258,4,0,
-10015,11,263,4,0,
-10015,11,311,1,40,
-10015,11,412,4,0,
-10015,11,496,4,0,
-10015,11,503,4,0,
-10015,11,510,4,0,
-10015,11,514,4,0,
-10015,11,526,4,0,
-10016,11,15,4,0,
-10016,11,29,1,7,
-10016,11,33,1,1,1
-10016,11,36,1,20,
-10016,11,37,1,56,
-10016,11,38,1,36,
-10016,11,44,1,10,
-10016,11,55,1,1,2
-10016,11,57,4,0,
-10016,11,58,4,0,
-10016,11,92,4,0,
-10016,11,104,4,0,
-10016,11,127,4,0,
-10016,11,156,4,0,
-10016,11,164,4,0,
-10016,11,175,1,46,
-10016,11,182,4,0,
-10016,11,184,1,41,
-10016,11,207,4,0,
-10016,11,213,4,0,
-10016,11,216,4,0,
-10016,11,218,4,0,
-10016,11,237,4,0,
-10016,11,240,4,0,
-10016,11,242,1,24,
-10016,11,253,1,4,
-10016,11,258,4,0,
-10016,11,263,4,0,
-10016,11,269,4,0,
-10016,11,291,4,0,
-10016,11,401,1,28,
-10016,11,453,1,13,
-10016,11,487,1,32,
-10016,11,496,4,0,
-10016,11,498,1,16,
-10016,11,503,4,0,
-10016,11,515,1,51,
-10017,11,7,1,22,
-10017,11,29,1,14,
-10017,11,33,1,1,1
-10017,11,37,1,27,
-10017,11,46,4,0,
-10017,11,53,4,0,
-10017,11,63,4,0,
-10017,11,70,4,0,
-10017,11,76,4,0,
-10017,11,89,4,0,
-10017,11,91,4,0,
-10017,11,92,4,0,
-10017,11,94,4,0,
-10017,11,99,1,1,4
-10017,11,99,1,9,
-10017,11,104,4,0,
-10017,11,126,4,0,
-10017,11,156,4,0,
-10017,11,157,4,0,
-10017,11,164,4,0,
-10017,11,168,4,0,
-10017,11,182,4,0,
-10017,11,187,1,30,
-10017,11,205,1,1,2
-10017,11,205,1,3,
-10017,11,207,1,17,
-10017,11,207,4,0,
-10017,11,213,4,0,
-10017,11,216,4,0,
-10017,11,218,4,0,
-10017,11,237,4,0,
-10017,11,241,4,0,
-10017,11,249,4,0,
-10017,11,259,4,0,
-10017,11,261,4,0,
-10017,11,263,1,19,
-10017,11,263,4,0,
-10017,11,269,1,39,
-10017,11,269,4,0,
-10017,11,276,1,47,
-10017,11,280,4,0,
-10017,11,315,1,54,
-10017,11,315,4,0,
-10017,11,317,4,0,
-10017,11,339,4,0,
-10017,11,359,1,35,
-10017,11,360,4,0,
-10017,11,369,4,0,
-10017,11,371,4,0,
-10017,11,374,4,0,
-10017,11,394,1,33,
-10017,11,411,4,0,
-10017,11,416,4,0,
-10017,11,424,1,11,
-10017,11,444,4,0,
-10017,11,447,4,0,
-10017,11,479,4,0,
-10017,11,488,4,0,
-10017,11,496,4,0,
-10017,11,510,1,1,3
-10017,11,510,1,6,
-10017,11,510,4,0,
-10017,11,523,4,0,
-10017,11,526,1,25,
-10017,11,526,4,0,
-10018,11,47,1,16,
-10018,11,60,1,31,
-10018,11,63,4,0,
-10018,11,70,4,0,
-10018,11,85,4,0,
-10018,11,86,4,0,
-10018,11,87,4,0,
-10018,11,92,4,0,
-10018,11,93,1,11,
-10018,11,94,1,57,
-10018,11,94,4,0,
-10018,11,98,1,6,
-10018,11,104,4,0,
-10018,11,113,4,0,
-10018,11,138,4,0,
-10018,11,148,4,0,
-10018,11,156,4,0,
-10018,11,164,4,0,
-10018,11,182,4,0,
-10018,11,195,1,85,
-10018,11,207,4,0,
-10018,11,216,4,0,
-10018,11,218,4,0,
-10018,11,219,4,0,
-10018,11,237,4,0,
-10018,11,240,4,0,
-10018,11,241,4,0,
-10018,11,244,4,0,
-10018,11,247,4,0,
-10018,11,249,4,0,
-10018,11,263,4,0,
-10018,11,272,1,71,
-10018,11,280,4,0,
-10018,11,298,1,21,
-10018,11,304,1,64,
-10018,11,347,4,0,
-10018,11,358,1,50,
-10018,11,369,1,43,
-10018,11,369,4,0,
-10018,11,370,1,78,
-10018,11,371,4,0,
-10018,11,373,4,0,
-10018,11,374,4,0,
-10018,11,411,4,0,
-10018,11,412,4,0,
-10018,11,416,4,0,
-10018,11,421,4,0,
-10018,11,433,4,0,
-10018,11,444,4,0,
-10018,11,447,4,0,
-10018,11,451,4,0,
-10018,11,468,4,0,
-10018,11,473,4,0,
-10018,11,477,4,0,
-10018,11,490,4,0,
-10018,11,496,1,1,
-10018,11,496,4,0,
-10018,11,497,1,36,
-10018,11,497,4,0,
-10018,11,512,1,26,
-10018,11,512,4,0,
-10018,11,514,4,0,
-10018,11,526,4,0,
+650,7,15,4,0,
+650,7,35,1,1,2
+650,7,43,1,1,1
+650,7,58,4,0,
+650,7,63,1,50,
+650,7,63,4,0,
+650,7,70,4,0,
+650,7,76,4,0,
+650,7,85,4,0,
+650,7,87,4,0,
+650,7,92,4,0,
+650,7,94,1,25,
+650,7,94,4,0,
+650,7,100,1,10,
+650,7,101,1,5,
+650,7,104,4,0,
+650,7,113,4,0,
+650,7,115,4,0,
+650,7,148,4,0,
+650,7,156,4,0,
+650,7,182,4,0,
+650,7,192,1,40,
+650,7,216,4,0,
+650,7,218,4,0,
+650,7,219,4,0,
+650,7,228,1,20,
+650,7,237,4,0,
+650,7,240,4,0,
+650,7,241,4,0,
+650,7,247,4,0,
+650,7,249,4,0,
+650,7,259,4,0,
+650,7,263,4,0,
+650,7,264,4,0,
+650,7,269,1,15,
+650,7,269,4,0,
+650,7,276,1,30,
+650,7,280,4,0,
+650,7,285,4,0,
+650,7,289,4,0,
+650,7,290,4,0,
+650,7,317,4,0,
+650,7,322,1,35,
+650,7,332,4,0,
+650,7,347,4,0,
+650,7,351,4,0,
+650,7,352,4,0,
+650,7,354,1,45,
+650,8,15,4,0,
+650,8,35,1,1,2
+650,8,43,1,1,1
+650,8,58,4,0,
+650,8,63,1,97,
+650,8,63,4,0,
+650,8,70,4,0,
+650,8,76,4,0,
+650,8,85,4,0,
+650,8,86,4,0,
+650,8,87,4,0,
+650,8,92,4,0,
+650,8,94,1,41,
+650,8,94,4,0,
+650,8,100,1,17,
+650,8,101,1,9,
+650,8,104,4,0,
+650,8,113,4,0,
+650,8,115,4,0,
+650,8,138,4,0,
+650,8,148,4,0,
+650,8,156,4,0,
+650,8,157,4,0,
+650,8,164,4,0,
+650,8,182,4,0,
+650,8,192,1,81,
+650,8,203,4,0,
+650,8,207,4,0,
+650,8,214,4,0,
+650,8,216,4,0,
+650,8,218,4,0,
+650,8,219,4,0,
+650,8,228,1,33,
+650,8,237,4,0,
+650,8,240,4,0,
+650,8,241,4,0,
+650,8,244,4,0,
+650,8,247,4,0,
+650,8,249,4,0,
+650,8,259,4,0,
+650,8,263,4,0,
+650,8,264,4,0,
+650,8,269,1,25,
+650,8,269,4,0,
+650,8,276,1,49,
+650,8,278,4,0,
+650,8,280,4,0,
+650,8,285,4,0,
+650,8,289,4,0,
+650,8,290,4,0,
+650,8,317,4,0,
+650,8,322,1,73,
+650,8,332,4,0,
+650,8,347,4,0,
+650,8,351,4,0,
+650,8,352,4,0,
+650,8,354,1,89,
+650,8,363,4,0,
+650,8,374,4,0,
+650,8,375,1,57,
+650,8,398,4,0,
+650,8,409,4,0,
+650,8,411,4,0,
+650,8,412,4,0,
+650,8,416,4,0,
+650,8,419,4,0,
+650,8,428,1,65,
+650,8,430,4,0,
+650,8,433,4,0,
+650,8,446,4,0,
+650,8,447,4,0,
+650,8,451,4,0,
+650,9,7,3,0,
+650,9,8,3,0,
+650,9,9,3,0,
+650,9,15,4,0,
+650,9,35,1,1,2
+650,9,43,1,1,1
+650,9,58,4,0,
+650,9,63,1,97,
+650,9,63,4,0,
+650,9,70,4,0,
+650,9,76,4,0,
+650,9,85,4,0,
+650,9,86,4,0,
+650,9,87,4,0,
+650,9,92,4,0,
+650,9,94,1,41,
+650,9,94,4,0,
+650,9,100,1,17,
+650,9,101,1,9,
+650,9,104,4,0,
+650,9,113,4,0,
+650,9,115,4,0,
+650,9,129,3,0,
+650,9,138,4,0,
+650,9,148,4,0,
+650,9,156,4,0,
+650,9,157,4,0,
+650,9,164,4,0,
+650,9,173,3,0,
+650,9,182,4,0,
+650,9,189,3,0,
+650,9,192,1,81,
+650,9,196,3,0,
+650,9,203,4,0,
+650,9,207,4,0,
+650,9,214,4,0,
+650,9,216,4,0,
+650,9,218,4,0,
+650,9,219,4,0,
+650,9,228,1,33,
+650,9,237,4,0,
+650,9,240,4,0,
+650,9,241,4,0,
+650,9,244,4,0,
+650,9,247,4,0,
+650,9,249,4,0,
+650,9,259,4,0,
+650,9,263,4,0,
+650,9,264,4,0,
+650,9,269,1,25,
+650,9,269,4,0,
+650,9,271,3,0,
+650,9,276,1,49,
+650,9,278,4,0,
+650,9,280,4,0,
+650,9,282,3,0,
+650,9,285,4,0,
+650,9,289,4,0,
+650,9,290,4,0,
+650,9,317,4,0,
+650,9,322,1,73,
+650,9,324,3,0,
+650,9,332,4,0,
+650,9,347,4,0,
+650,9,351,4,0,
+650,9,352,4,0,
+650,9,354,1,89,
+650,9,363,4,0,
+650,9,374,4,0,
+650,9,375,1,57,
+650,9,398,4,0,
+650,9,409,4,0,
+650,9,411,4,0,
+650,9,412,4,0,
+650,9,416,4,0,
+650,9,419,4,0,
+650,9,428,1,65,
+650,9,428,3,0,
+650,9,430,4,0,
+650,9,433,4,0,
+650,9,446,4,0,
+650,9,447,4,0,
+650,9,451,4,0,
+650,10,7,3,0,
+650,10,8,3,0,
+650,10,9,3,0,
+650,10,15,4,0,
+650,10,29,3,0,
+650,10,35,1,1,2
+650,10,43,1,1,1
+650,10,58,4,0,
+650,10,63,1,97,
+650,10,63,4,0,
+650,10,67,3,0,
+650,10,70,4,0,
+650,10,76,4,0,
+650,10,85,4,0,
+650,10,86,4,0,
+650,10,87,4,0,
+650,10,92,4,0,
+650,10,94,1,41,
+650,10,94,4,0,
+650,10,100,1,17,
+650,10,101,1,9,
+650,10,104,4,0,
+650,10,113,4,0,
+650,10,115,4,0,
+650,10,129,3,0,
+650,10,138,4,0,
+650,10,148,4,0,
+650,10,156,4,0,
+650,10,157,4,0,
+650,10,164,4,0,
+650,10,173,3,0,
+650,10,182,4,0,
+650,10,189,3,0,
+650,10,192,1,81,
+650,10,196,3,0,
+650,10,203,4,0,
+650,10,207,4,0,
+650,10,214,4,0,
+650,10,216,4,0,
+650,10,218,4,0,
+650,10,219,4,0,
+650,10,228,1,33,
+650,10,237,4,0,
+650,10,240,4,0,
+650,10,241,4,0,
+650,10,244,4,0,
+650,10,247,4,0,
+650,10,249,4,0,
+650,10,259,4,0,
+650,10,263,4,0,
+650,10,264,4,0,
+650,10,269,1,25,
+650,10,269,4,0,
+650,10,271,3,0,
+650,10,272,3,0,
+650,10,276,1,49,
+650,10,278,4,0,
+650,10,280,4,0,
+650,10,282,3,0,
+650,10,285,4,0,
+650,10,289,4,0,
+650,10,290,4,0,
+650,10,317,4,0,
+650,10,322,1,73,
+650,10,324,3,0,
+650,10,332,4,0,
+650,10,347,4,0,
+650,10,351,4,0,
+650,10,352,4,0,
+650,10,354,1,89,
+650,10,356,3,0,
+650,10,363,4,0,
+650,10,374,4,0,
+650,10,375,1,57,
+650,10,398,4,0,
+650,10,409,4,0,
+650,10,411,4,0,
+650,10,412,4,0,
+650,10,416,4,0,
+650,10,419,4,0,
+650,10,428,1,65,
+650,10,428,3,0,
+650,10,430,4,0,
+650,10,433,4,0,
+650,10,446,4,0,
+650,10,447,4,0,
+650,10,451,4,0,
+650,11,15,4,0,
+650,11,35,1,1,2
+650,11,43,1,1,1
+650,11,58,4,0,
+650,11,63,1,97,
+650,11,63,4,0,
+650,11,70,4,0,
+650,11,76,4,0,
+650,11,85,4,0,
+650,11,86,4,0,
+650,11,87,4,0,
+650,11,92,4,0,
+650,11,94,1,41,
+650,11,94,4,0,
+650,11,100,1,17,
+650,11,101,1,9,
+650,11,104,4,0,
+650,11,113,4,0,
+650,11,115,4,0,
+650,11,138,4,0,
+650,11,148,4,0,
+650,11,156,4,0,
+650,11,157,4,0,
+650,11,164,4,0,
+650,11,182,4,0,
+650,11,192,1,81,
+650,11,207,4,0,
+650,11,216,4,0,
+650,11,218,4,0,
+650,11,219,4,0,
+650,11,228,1,33,
+650,11,237,4,0,
+650,11,240,4,0,
+650,11,241,4,0,
+650,11,244,4,0,
+650,11,247,4,0,
+650,11,249,4,0,
+650,11,259,4,0,
+650,11,263,4,0,
+650,11,269,1,25,
+650,11,269,4,0,
+650,11,276,1,49,
+650,11,280,4,0,
+650,11,317,4,0,
+650,11,322,1,73,
+650,11,332,4,0,
+650,11,347,4,0,
+650,11,354,1,89,
+650,11,374,4,0,
+650,11,375,1,57,
+650,11,398,4,0,
+650,11,411,4,0,
+650,11,412,4,0,
+650,11,416,4,0,
+650,11,428,1,65,
+650,11,430,4,0,
+650,11,433,4,0,
+650,11,447,4,0,
+650,11,451,4,0,
+650,11,473,4,0,
+650,11,477,4,0,
+650,11,490,4,0,
+650,11,496,4,0,
+650,11,502,4,0,
+651,7,15,4,0,
+651,7,35,1,1,2
+651,7,43,1,1,1
+651,7,58,4,0,
+651,7,63,4,0,
+651,7,68,1,50,1
+651,7,70,4,0,
+651,7,76,4,0,
+651,7,85,4,0,
+651,7,87,4,0,
+651,7,92,4,0,
+651,7,94,1,25,
+651,7,94,4,0,
+651,7,100,1,10,
+651,7,101,1,5,
+651,7,104,4,0,
+651,7,105,1,40,
+651,7,113,4,0,
+651,7,115,4,0,
+651,7,133,1,35,2
+651,7,148,4,0,
+651,7,156,4,0,
+651,7,182,4,0,
+651,7,191,1,20,
+651,7,216,4,0,
+651,7,218,4,0,
+651,7,219,4,0,
+651,7,237,4,0,
+651,7,240,4,0,
+651,7,241,4,0,
+651,7,243,1,50,2
+651,7,247,4,0,
+651,7,249,4,0,
+651,7,259,4,0,
+651,7,263,4,0,
+651,7,264,4,0,
+651,7,269,4,0,
+651,7,280,4,0,
+651,7,282,1,15,
+651,7,285,4,0,
+651,7,289,1,30,
+651,7,289,4,0,
+651,7,290,4,0,
+651,7,317,4,0,
+651,7,332,4,0,
+651,7,334,1,35,1
+651,7,347,4,0,
+651,7,351,4,0,
+651,7,352,4,0,
+651,7,354,1,45,
+651,8,15,4,0,
+651,8,35,1,1,2
+651,8,43,1,1,1
+651,8,58,4,0,
+651,8,63,4,0,
+651,8,68,1,97,1
+651,8,70,4,0,
+651,8,76,4,0,
+651,8,85,4,0,
+651,8,86,4,0,
+651,8,87,4,0,
+651,8,92,4,0,
+651,8,94,1,41,
+651,8,94,4,0,
+651,8,100,1,17,
+651,8,101,1,9,
+651,8,104,4,0,
+651,8,105,1,81,
+651,8,113,4,0,
+651,8,115,4,0,
+651,8,133,1,73,2
+651,8,138,4,0,
+651,8,148,4,0,
+651,8,156,4,0,
+651,8,157,4,0,
+651,8,164,4,0,
+651,8,182,4,0,
+651,8,191,1,33,
+651,8,203,4,0,
+651,8,207,4,0,
+651,8,214,4,0,
+651,8,216,4,0,
+651,8,218,4,0,
+651,8,219,4,0,
+651,8,237,4,0,
+651,8,240,4,0,
+651,8,241,4,0,
+651,8,243,1,97,2
+651,8,244,4,0,
+651,8,247,4,0,
+651,8,249,4,0,
+651,8,259,4,0,
+651,8,263,4,0,
+651,8,264,4,0,
+651,8,269,4,0,
+651,8,278,4,0,
+651,8,280,4,0,
+651,8,282,1,25,
+651,8,285,4,0,
+651,8,289,1,49,
+651,8,289,4,0,
+651,8,290,4,0,
+651,8,317,4,0,
+651,8,332,4,0,
+651,8,334,1,73,1
+651,8,347,4,0,
+651,8,351,4,0,
+651,8,352,4,0,
+651,8,354,1,89,
+651,8,363,4,0,
+651,8,374,4,0,
+651,8,375,1,57,
+651,8,398,4,0,
+651,8,409,4,0,
+651,8,411,4,0,
+651,8,412,4,0,
+651,8,416,4,0,
+651,8,419,4,0,
+651,8,428,1,65,
+651,8,430,4,0,
+651,8,433,4,0,
+651,8,446,4,0,
+651,8,447,4,0,
+651,8,451,4,0,
+651,9,7,3,0,
+651,9,8,3,0,
+651,9,9,3,0,
+651,9,15,4,0,
+651,9,35,1,1,2
+651,9,43,1,1,1
+651,9,58,4,0,
+651,9,63,4,0,
+651,9,68,1,97,1
+651,9,70,4,0,
+651,9,76,4,0,
+651,9,85,4,0,
+651,9,86,4,0,
+651,9,87,4,0,
+651,9,92,4,0,
+651,9,94,1,41,
+651,9,94,4,0,
+651,9,100,1,17,
+651,9,101,1,9,
+651,9,104,4,0,
+651,9,105,1,81,
+651,9,113,4,0,
+651,9,115,4,0,
+651,9,129,3,0,
+651,9,133,1,73,2
+651,9,138,4,0,
+651,9,148,4,0,
+651,9,156,4,0,
+651,9,157,4,0,
+651,9,164,4,0,
+651,9,173,3,0,
+651,9,182,4,0,
+651,9,189,3,0,
+651,9,191,1,33,
+651,9,196,3,0,
+651,9,203,4,0,
+651,9,207,4,0,
+651,9,214,4,0,
+651,9,216,4,0,
+651,9,218,4,0,
+651,9,219,4,0,
+651,9,237,4,0,
+651,9,240,4,0,
+651,9,241,4,0,
+651,9,243,1,97,2
+651,9,244,4,0,
+651,9,247,4,0,
+651,9,249,4,0,
+651,9,259,4,0,
+651,9,263,4,0,
+651,9,264,4,0,
+651,9,269,4,0,
+651,9,271,3,0,
+651,9,278,4,0,
+651,9,280,4,0,
+651,9,282,1,25,
+651,9,282,3,0,
+651,9,285,4,0,
+651,9,289,1,49,
+651,9,289,4,0,
+651,9,290,4,0,
+651,9,317,4,0,
+651,9,324,3,0,
+651,9,332,4,0,
+651,9,334,1,73,1
+651,9,347,4,0,
+651,9,351,4,0,
+651,9,352,4,0,
+651,9,354,1,89,
+651,9,363,4,0,
+651,9,374,4,0,
+651,9,375,1,57,
+651,9,398,4,0,
+651,9,409,4,0,
+651,9,411,4,0,
+651,9,412,4,0,
+651,9,416,4,0,
+651,9,419,4,0,
+651,9,428,1,65,
+651,9,428,3,0,
+651,9,430,4,0,
+651,9,433,4,0,
+651,9,446,4,0,
+651,9,447,4,0,
+651,9,451,4,0,
+651,10,7,3,0,
+651,10,8,3,0,
+651,10,9,3,0,
+651,10,15,4,0,
+651,10,29,3,0,
+651,10,35,1,1,2
+651,10,43,1,1,1
+651,10,58,4,0,
+651,10,63,4,0,
+651,10,67,3,0,
+651,10,68,1,97,1
+651,10,70,4,0,
+651,10,76,4,0,
+651,10,85,4,0,
+651,10,86,4,0,
+651,10,87,4,0,
+651,10,92,4,0,
+651,10,94,1,41,
+651,10,94,4,0,
+651,10,100,1,17,
+651,10,101,1,9,
+651,10,104,4,0,
+651,10,105,1,81,
+651,10,113,4,0,
+651,10,115,4,0,
+651,10,129,3,0,
+651,10,133,1,73,2
+651,10,138,4,0,
+651,10,148,4,0,
+651,10,156,4,0,
+651,10,157,4,0,
+651,10,164,4,0,
+651,10,173,3,0,
+651,10,182,4,0,
+651,10,189,3,0,
+651,10,191,1,33,
+651,10,196,3,0,
+651,10,203,4,0,
+651,10,207,4,0,
+651,10,214,4,0,
+651,10,216,4,0,
+651,10,218,4,0,
+651,10,219,4,0,
+651,10,237,4,0,
+651,10,240,4,0,
+651,10,241,4,0,
+651,10,243,1,97,2
+651,10,244,4,0,
+651,10,247,4,0,
+651,10,249,4,0,
+651,10,259,4,0,
+651,10,263,4,0,
+651,10,264,4,0,
+651,10,269,4,0,
+651,10,271,3,0,
+651,10,272,3,0,
+651,10,278,4,0,
+651,10,280,4,0,
+651,10,282,1,25,
+651,10,282,3,0,
+651,10,285,4,0,
+651,10,289,1,49,
+651,10,289,4,0,
+651,10,290,4,0,
+651,10,317,4,0,
+651,10,324,3,0,
+651,10,332,4,0,
+651,10,334,1,73,1
+651,10,347,4,0,
+651,10,351,4,0,
+651,10,352,4,0,
+651,10,354,1,89,
+651,10,356,3,0,
+651,10,363,4,0,
+651,10,374,4,0,
+651,10,375,1,57,
+651,10,398,4,0,
+651,10,409,4,0,
+651,10,411,4,0,
+651,10,412,4,0,
+651,10,416,4,0,
+651,10,419,4,0,
+651,10,428,1,65,
+651,10,428,3,0,
+651,10,430,4,0,
+651,10,433,4,0,
+651,10,446,4,0,
+651,10,447,4,0,
+651,10,451,4,0,
+651,11,15,4,0,
+651,11,35,1,1,2
+651,11,43,1,1,1
+651,11,58,4,0,
+651,11,63,4,0,
+651,11,68,1,97,1
+651,11,70,4,0,
+651,11,76,4,0,
+651,11,85,4,0,
+651,11,86,4,0,
+651,11,87,4,0,
+651,11,92,4,0,
+651,11,94,1,41,
+651,11,94,4,0,
+651,11,100,1,17,
+651,11,101,1,9,
+651,11,104,4,0,
+651,11,105,1,81,
+651,11,113,4,0,
+651,11,115,4,0,
+651,11,133,1,73,2
+651,11,138,4,0,
+651,11,148,4,0,
+651,11,156,4,0,
+651,11,157,4,0,
+651,11,164,4,0,
+651,11,182,4,0,
+651,11,191,1,33,
+651,11,207,4,0,
+651,11,216,4,0,
+651,11,218,4,0,
+651,11,219,4,0,
+651,11,237,4,0,
+651,11,240,4,0,
+651,11,241,4,0,
+651,11,243,1,97,2
+651,11,244,4,0,
+651,11,247,4,0,
+651,11,249,4,0,
+651,11,259,4,0,
+651,11,263,4,0,
+651,11,269,4,0,
+651,11,280,4,0,
+651,11,282,1,25,
+651,11,289,1,49,
+651,11,317,4,0,
+651,11,332,4,0,
+651,11,334,1,73,1
+651,11,347,4,0,
+651,11,354,1,89,
+651,11,374,4,0,
+651,11,375,1,57,
+651,11,398,4,0,
+651,11,411,4,0,
+651,11,412,4,0,
+651,11,416,4,0,
+651,11,428,1,65,
+651,11,430,4,0,
+651,11,433,4,0,
+651,11,447,4,0,
+651,11,451,4,0,
+651,11,473,4,0,
+651,11,477,4,0,
+651,11,490,4,0,
+651,11,496,4,0,
+651,11,502,4,0,
+652,6,15,4,0,
+652,6,35,1,1,2
+652,6,43,1,1,1
+652,6,58,4,0,
+652,6,63,4,0,
+652,6,70,4,0,
+652,6,76,4,0,
+652,6,85,4,0,
+652,6,87,4,0,
+652,6,92,4,0,
+652,6,94,1,25,
+652,6,94,4,0,
+652,6,97,1,35,
+652,6,101,1,5,
+652,6,104,1,10,
+652,6,104,4,0,
+652,6,105,1,40,
+652,6,113,4,0,
+652,6,115,4,0,
+652,6,129,1,30,
+652,6,148,4,0,
+652,6,156,4,0,
+652,6,182,4,0,
+652,6,216,4,0,
+652,6,218,4,0,
+652,6,219,4,0,
+652,6,228,1,20,
+652,6,237,4,0,
+652,6,240,4,0,
+652,6,241,4,0,
+652,6,245,1,50,
+652,6,247,4,0,
+652,6,249,4,0,
+652,6,259,4,0,
+652,6,263,4,0,
+652,6,264,4,0,
+652,6,269,4,0,
+652,6,280,4,0,
+652,6,282,1,15,
+652,6,285,4,0,
+652,6,289,4,0,
+652,6,290,4,0,
+652,6,317,4,0,
+652,6,332,4,0,
+652,6,347,4,0,
+652,6,351,4,0,
+652,6,352,4,0,
+652,6,354,1,45,
+652,8,15,4,0,
+652,8,35,1,1,2
+652,8,43,1,1,1
+652,8,58,4,0,
+652,8,63,4,0,
+652,8,70,4,0,
+652,8,76,4,0,
+652,8,85,4,0,
+652,8,86,4,0,
+652,8,87,4,0,
+652,8,92,4,0,
+652,8,94,1,41,
+652,8,94,4,0,
+652,8,97,1,73,
+652,8,101,1,9,
+652,8,104,1,17,
+652,8,104,4,0,
+652,8,105,1,81,
+652,8,113,4,0,
+652,8,115,4,0,
+652,8,129,1,49,
+652,8,138,4,0,
+652,8,148,4,0,
+652,8,156,4,0,
+652,8,157,4,0,
+652,8,164,4,0,
+652,8,182,4,0,
+652,8,203,4,0,
+652,8,207,4,0,
+652,8,214,4,0,
+652,8,216,4,0,
+652,8,218,4,0,
+652,8,219,4,0,
+652,8,228,1,33,
+652,8,237,4,0,
+652,8,240,4,0,
+652,8,241,4,0,
+652,8,244,4,0,
+652,8,245,1,97,
+652,8,247,4,0,
+652,8,249,4,0,
+652,8,259,4,0,
+652,8,263,4,0,
+652,8,264,4,0,
+652,8,269,4,0,
+652,8,278,4,0,
+652,8,280,4,0,
+652,8,282,1,25,
+652,8,285,4,0,
+652,8,289,4,0,
+652,8,290,4,0,
+652,8,317,4,0,
+652,8,332,4,0,
+652,8,347,4,0,
+652,8,351,4,0,
+652,8,352,4,0,
+652,8,354,1,89,
+652,8,363,4,0,
+652,8,374,4,0,
+652,8,375,1,57,
+652,8,398,4,0,
+652,8,409,4,0,
+652,8,411,4,0,
+652,8,412,4,0,
+652,8,416,4,0,
+652,8,419,4,0,
+652,8,428,1,65,
+652,8,430,4,0,
+652,8,433,4,0,
+652,8,446,4,0,
+652,8,447,4,0,
+652,8,451,4,0,
+652,9,7,3,0,
+652,9,8,3,0,
+652,9,9,3,0,
+652,9,15,4,0,
+652,9,35,1,1,2
+652,9,43,1,1,1
+652,9,58,4,0,
+652,9,63,4,0,
+652,9,70,4,0,
+652,9,76,4,0,
+652,9,85,4,0,
+652,9,86,4,0,
+652,9,87,4,0,
+652,9,92,4,0,
+652,9,94,1,41,
+652,9,94,4,0,
+652,9,97,1,73,
+652,9,101,1,9,
+652,9,104,1,17,
+652,9,104,4,0,
+652,9,105,1,81,
+652,9,113,4,0,
+652,9,115,4,0,
+652,9,129,1,49,
+652,9,129,3,0,
+652,9,138,4,0,
+652,9,148,4,0,
+652,9,156,4,0,
+652,9,157,4,0,
+652,9,164,4,0,
+652,9,173,3,0,
+652,9,182,4,0,
+652,9,189,3,0,
+652,9,196,3,0,
+652,9,203,4,0,
+652,9,207,4,0,
+652,9,214,4,0,
+652,9,216,4,0,
+652,9,218,4,0,
+652,9,219,4,0,
+652,9,228,1,33,
+652,9,237,4,0,
+652,9,240,4,0,
+652,9,241,4,0,
+652,9,244,4,0,
+652,9,245,1,97,
+652,9,247,4,0,
+652,9,249,4,0,
+652,9,259,4,0,
+652,9,263,4,0,
+652,9,264,4,0,
+652,9,269,4,0,
+652,9,271,3,0,
+652,9,278,4,0,
+652,9,280,4,0,
+652,9,282,1,25,
+652,9,282,3,0,
+652,9,285,4,0,
+652,9,289,4,0,
+652,9,290,4,0,
+652,9,317,4,0,
+652,9,324,3,0,
+652,9,332,4,0,
+652,9,347,4,0,
+652,9,351,4,0,
+652,9,352,4,0,
+652,9,354,1,89,
+652,9,363,4,0,
+652,9,374,4,0,
+652,9,375,1,57,
+652,9,398,4,0,
+652,9,409,4,0,
+652,9,411,4,0,
+652,9,412,4,0,
+652,9,416,4,0,
+652,9,419,4,0,
+652,9,428,1,65,
+652,9,428,3,0,
+652,9,430,4,0,
+652,9,433,4,0,
+652,9,446,4,0,
+652,9,447,4,0,
+652,9,451,4,0,
+652,10,7,3,0,
+652,10,8,3,0,
+652,10,9,3,0,
+652,10,15,4,0,
+652,10,29,3,0,
+652,10,35,1,1,2
+652,10,43,1,1,1
+652,10,58,4,0,
+652,10,63,4,0,
+652,10,67,3,0,
+652,10,70,4,0,
+652,10,76,4,0,
+652,10,85,4,0,
+652,10,86,4,0,
+652,10,87,4,0,
+652,10,92,4,0,
+652,10,94,1,41,
+652,10,94,4,0,
+652,10,97,1,73,
+652,10,101,1,9,
+652,10,104,1,17,
+652,10,104,4,0,
+652,10,105,1,81,
+652,10,113,4,0,
+652,10,115,4,0,
+652,10,129,1,49,
+652,10,129,3,0,
+652,10,138,4,0,
+652,10,148,4,0,
+652,10,156,4,0,
+652,10,157,4,0,
+652,10,164,4,0,
+652,10,173,3,0,
+652,10,182,4,0,
+652,10,189,3,0,
+652,10,196,3,0,
+652,10,203,4,0,
+652,10,207,4,0,
+652,10,214,4,0,
+652,10,216,4,0,
+652,10,218,4,0,
+652,10,219,4,0,
+652,10,228,1,33,
+652,10,237,4,0,
+652,10,240,4,0,
+652,10,241,4,0,
+652,10,244,4,0,
+652,10,245,1,97,
+652,10,247,4,0,
+652,10,249,4,0,
+652,10,259,4,0,
+652,10,263,4,0,
+652,10,264,4,0,
+652,10,269,4,0,
+652,10,271,3,0,
+652,10,272,3,0,
+652,10,278,4,0,
+652,10,280,4,0,
+652,10,282,1,25,
+652,10,282,3,0,
+652,10,285,4,0,
+652,10,289,4,0,
+652,10,290,4,0,
+652,10,317,4,0,
+652,10,324,3,0,
+652,10,332,4,0,
+652,10,347,4,0,
+652,10,351,4,0,
+652,10,352,4,0,
+652,10,354,1,89,
+652,10,356,3,0,
+652,10,363,4,0,
+652,10,374,4,0,
+652,10,375,1,57,
+652,10,398,4,0,
+652,10,409,4,0,
+652,10,411,4,0,
+652,10,412,4,0,
+652,10,416,4,0,
+652,10,419,4,0,
+652,10,428,1,65,
+652,10,428,3,0,
+652,10,430,4,0,
+652,10,433,4,0,
+652,10,446,4,0,
+652,10,447,4,0,
+652,10,451,4,0,
+652,11,15,4,0,
+652,11,35,1,1,2
+652,11,43,1,1,1
+652,11,58,4,0,
+652,11,63,4,0,
+652,11,70,4,0,
+652,11,76,4,0,
+652,11,85,4,0,
+652,11,86,4,0,
+652,11,87,4,0,
+652,11,92,4,0,
+652,11,94,1,41,
+652,11,94,4,0,
+652,11,97,1,73,
+652,11,101,1,9,
+652,11,104,1,17,
+652,11,104,4,0,
+652,11,105,1,81,
+652,11,113,4,0,
+652,11,115,4,0,
+652,11,129,1,49,
+652,11,138,4,0,
+652,11,148,4,0,
+652,11,156,4,0,
+652,11,157,4,0,
+652,11,164,4,0,
+652,11,182,4,0,
+652,11,207,4,0,
+652,11,216,4,0,
+652,11,218,4,0,
+652,11,219,4,0,
+652,11,228,1,33,
+652,11,237,4,0,
+652,11,240,4,0,
+652,11,241,4,0,
+652,11,244,4,0,
+652,11,245,1,97,
+652,11,247,4,0,
+652,11,249,4,0,
+652,11,259,4,0,
+652,11,263,4,0,
+652,11,269,4,0,
+652,11,280,4,0,
+652,11,282,1,25,
+652,11,317,4,0,
+652,11,332,4,0,
+652,11,347,4,0,
+652,11,354,1,89,
+652,11,374,4,0,
+652,11,375,1,57,
+652,11,398,4,0,
+652,11,411,4,0,
+652,11,412,4,0,
+652,11,416,4,0,
+652,11,428,1,65,
+652,11,430,4,0,
+652,11,433,4,0,
+652,11,447,4,0,
+652,11,451,4,0,
+652,11,473,4,0,
+652,11,477,4,0,
+652,11,490,4,0,
+652,11,496,4,0,
+652,11,502,4,0,
+653,8,33,1,1,
+653,8,60,1,32,
+653,8,63,4,0,
+653,8,89,4,0,
+653,8,90,1,47,
+653,8,91,4,0,
+653,8,92,4,0,
+653,8,93,1,23,
+653,8,94,1,44,
+653,8,94,4,0,
+653,8,104,4,0,
+653,8,106,1,29,
+653,8,138,4,0,
+653,8,148,4,0,
+653,8,156,4,0,
+653,8,164,4,0,
+653,8,168,4,0,
+653,8,175,1,38,
+653,8,182,1,10,
+653,8,182,4,0,
+653,8,201,4,0,
+653,8,203,4,0,
+653,8,207,4,0,
+653,8,213,1,41,
+653,8,213,4,0,
+653,8,214,4,0,
+653,8,216,4,0,
+653,8,218,4,0,
+653,8,219,4,0,
+653,8,237,1,20,
+653,8,237,4,0,
+653,8,240,4,0,
+653,8,241,4,0,
+653,8,244,4,0,
+653,8,247,4,0,
+653,8,263,4,0,
+653,8,285,4,0,
+653,8,290,4,0,
+653,8,317,4,0,
+653,8,350,1,26,
+653,8,363,4,0,
+653,8,416,4,0,
+653,8,445,1,35,
+653,8,445,4,0,
+653,9,33,1,1,
+653,9,60,1,32,
+653,9,63,4,0,
+653,9,89,4,0,
+653,9,90,1,47,
+653,9,91,4,0,
+653,9,92,4,0,
+653,9,93,1,23,
+653,9,94,1,44,
+653,9,94,4,0,
+653,9,104,4,0,
+653,9,106,1,29,
+653,9,138,4,0,
+653,9,148,4,0,
+653,9,156,4,0,
+653,9,164,4,0,
+653,9,168,4,0,
+653,9,173,3,0,
+653,9,175,1,38,
+653,9,182,1,10,
+653,9,182,4,0,
+653,9,189,3,0,
+653,9,201,4,0,
+653,9,203,4,0,
+653,9,205,3,0,
+653,9,207,4,0,
+653,9,213,1,41,
+653,9,213,4,0,
+653,9,214,4,0,
+653,9,216,4,0,
+653,9,218,4,0,
+653,9,219,4,0,
+653,9,237,1,20,
+653,9,237,4,0,
+653,9,240,4,0,
+653,9,241,4,0,
+653,9,244,4,0,
+653,9,247,4,0,
+653,9,253,3,0,
+653,9,263,4,0,
+653,9,283,3,0,
+653,9,285,4,0,
+653,9,290,4,0,
+653,9,317,4,0,
+653,9,324,3,0,
+653,9,350,1,26,
+653,9,363,4,0,
+653,9,389,3,0,
+653,9,414,3,0,
+653,9,416,4,0,
+653,9,445,1,35,
+653,9,445,4,0,
+653,9,450,1,15,
+653,10,33,1,1,
+653,10,60,1,32,
+653,10,63,4,0,
+653,10,81,3,0,
+653,10,89,4,0,
+653,10,90,1,47,
+653,10,91,4,0,
+653,10,92,4,0,
+653,10,93,1,23,
+653,10,94,1,44,
+653,10,94,4,0,
+653,10,104,4,0,
+653,10,106,1,29,
+653,10,138,4,0,
+653,10,148,4,0,
+653,10,156,4,0,
+653,10,164,4,0,
+653,10,168,4,0,
+653,10,173,3,0,
+653,10,175,1,38,
+653,10,182,1,10,
+653,10,182,4,0,
+653,10,189,3,0,
+653,10,201,4,0,
+653,10,203,4,0,
+653,10,205,3,0,
+653,10,207,4,0,
+653,10,213,1,41,
+653,10,213,4,0,
+653,10,214,4,0,
+653,10,216,4,0,
+653,10,218,4,0,
+653,10,219,4,0,
+653,10,237,1,20,
+653,10,237,4,0,
+653,10,240,4,0,
+653,10,241,4,0,
+653,10,244,4,0,
+653,10,247,4,0,
+653,10,253,3,0,
+653,10,263,4,0,
+653,10,283,3,0,
+653,10,285,4,0,
+653,10,290,4,0,
+653,10,317,4,0,
+653,10,324,3,0,
+653,10,350,1,26,
+653,10,363,4,0,
+653,10,389,3,0,
+653,10,414,3,0,
+653,10,416,4,0,
+653,10,445,1,35,
+653,10,445,4,0,
+653,10,450,1,15,
+653,10,450,3,0,
+653,11,33,1,1,
+653,11,60,1,32,
+653,11,63,4,0,
+653,11,89,4,0,
+653,11,90,1,47,
+653,11,91,4,0,
+653,11,92,4,0,
+653,11,93,1,23,
+653,11,94,1,44,
+653,11,94,4,0,
+653,11,104,4,0,
+653,11,106,1,29,
+653,11,138,4,0,
+653,11,148,4,0,
+653,11,156,4,0,
+653,11,164,4,0,
+653,11,168,4,0,
+653,11,175,1,38,
+653,11,182,1,10,
+653,11,182,4,0,
+653,11,201,4,0,
+653,11,207,4,0,
+653,11,213,1,41,
+653,11,213,4,0,
+653,11,216,4,0,
+653,11,218,4,0,
+653,11,219,4,0,
+653,11,237,1,20,
+653,11,237,4,0,
+653,11,240,4,0,
+653,11,241,4,0,
+653,11,244,4,0,
+653,11,247,4,0,
+653,11,263,4,0,
+653,11,317,4,0,
+653,11,350,1,26,
+653,11,416,4,0,
+653,11,445,1,35,
+653,11,450,1,15,
+653,11,474,4,0,
+653,11,496,4,0,
+653,11,522,4,0,
+653,11,523,4,0,
+654,8,33,1,1,
+654,8,60,1,32,
+654,8,63,4,0,
+654,8,92,4,0,
+654,8,93,1,23,
+654,8,94,1,44,
+654,8,94,4,0,
+654,8,104,4,0,
+654,8,138,4,0,
+654,8,148,4,0,
+654,8,156,4,0,
+654,8,164,4,0,
+654,8,168,4,0,
+654,8,175,1,38,
+654,8,182,1,10,
+654,8,182,4,0,
+654,8,203,4,0,
+654,8,207,4,0,
+654,8,213,1,41,
+654,8,213,4,0,
+654,8,214,4,0,
+654,8,216,4,0,
+654,8,218,4,0,
+654,8,219,4,0,
+654,8,237,1,20,
+654,8,237,4,0,
+654,8,240,4,0,
+654,8,241,4,0,
+654,8,244,4,0,
+654,8,247,4,0,
+654,8,263,4,0,
+654,8,285,4,0,
+654,8,290,4,0,
+654,8,319,1,29,
+654,8,360,4,0,
+654,8,363,4,0,
+654,8,416,4,0,
+654,8,429,1,26,
+654,8,430,4,0,
+654,8,442,1,47,
+654,8,445,1,35,
+654,8,445,4,0,
+654,8,446,4,0,
+654,9,33,1,1,
+654,9,60,1,32,
+654,9,63,4,0,
+654,9,92,4,0,
+654,9,93,1,23,
+654,9,94,1,44,
+654,9,94,4,0,
+654,9,104,4,0,
+654,9,138,4,0,
+654,9,148,4,0,
+654,9,156,4,0,
+654,9,164,4,0,
+654,9,168,4,0,
+654,9,173,3,0,
+654,9,175,1,38,
+654,9,182,1,10,
+654,9,182,4,0,
+654,9,203,4,0,
+654,9,207,4,0,
+654,9,213,1,41,
+654,9,213,4,0,
+654,9,214,4,0,
+654,9,216,4,0,
+654,9,218,4,0,
+654,9,219,4,0,
+654,9,237,1,20,
+654,9,237,4,0,
+654,9,240,4,0,
+654,9,241,4,0,
+654,9,244,4,0,
+654,9,247,4,0,
+654,9,253,3,0,
+654,9,263,4,0,
+654,9,283,3,0,
+654,9,285,4,0,
+654,9,290,4,0,
+654,9,319,1,29,
+654,9,324,3,0,
+654,9,334,3,0,
+654,9,360,4,0,
+654,9,363,4,0,
+654,9,389,3,0,
+654,9,393,3,0,
+654,9,416,4,0,
+654,9,429,1,26,
+654,9,430,4,0,
+654,9,441,3,0,
+654,9,442,1,47,
+654,9,442,3,0,
+654,9,445,1,35,
+654,9,445,4,0,
+654,9,446,4,0,
+654,9,450,1,15,
+654,10,33,1,1,
+654,10,60,1,32,
+654,10,63,4,0,
+654,10,81,3,0,
+654,10,92,4,0,
+654,10,93,1,23,
+654,10,94,1,44,
+654,10,94,4,0,
+654,10,104,4,0,
+654,10,138,4,0,
+654,10,148,4,0,
+654,10,156,4,0,
+654,10,164,4,0,
+654,10,168,4,0,
+654,10,173,3,0,
+654,10,175,1,38,
+654,10,182,1,10,
+654,10,182,4,0,
+654,10,203,4,0,
+654,10,207,4,0,
+654,10,213,1,41,
+654,10,213,4,0,
+654,10,214,4,0,
+654,10,216,4,0,
+654,10,218,4,0,
+654,10,219,4,0,
+654,10,237,1,20,
+654,10,237,4,0,
+654,10,240,4,0,
+654,10,241,4,0,
+654,10,244,4,0,
+654,10,247,4,0,
+654,10,253,3,0,
+654,10,263,4,0,
+654,10,283,3,0,
+654,10,285,4,0,
+654,10,290,4,0,
+654,10,319,1,29,
+654,10,324,3,0,
+654,10,334,3,0,
+654,10,360,4,0,
+654,10,363,4,0,
+654,10,389,3,0,
+654,10,393,3,0,
+654,10,416,4,0,
+654,10,429,1,26,
+654,10,430,4,0,
+654,10,441,3,0,
+654,10,442,1,47,
+654,10,442,3,0,
+654,10,445,1,35,
+654,10,445,4,0,
+654,10,446,4,0,
+654,10,450,1,15,
+654,10,450,3,0,
+654,11,33,1,1,
+654,11,60,1,32,
+654,11,63,4,0,
+654,11,92,4,0,
+654,11,93,1,23,
+654,11,94,1,44,
+654,11,94,4,0,
+654,11,104,4,0,
+654,11,138,4,0,
+654,11,148,4,0,
+654,11,156,4,0,
+654,11,164,4,0,
+654,11,168,4,0,
+654,11,175,1,38,
+654,11,182,1,10,
+654,11,182,4,0,
+654,11,207,4,0,
+654,11,213,1,41,
+654,11,213,4,0,
+654,11,216,4,0,
+654,11,218,4,0,
+654,11,219,4,0,
+654,11,237,1,20,
+654,11,237,4,0,
+654,11,240,4,0,
+654,11,241,4,0,
+654,11,244,4,0,
+654,11,247,4,0,
+654,11,263,4,0,
+654,11,319,1,29,
+654,11,360,4,0,
+654,11,416,4,0,
+654,11,429,1,26,
+654,11,430,4,0,
+654,11,442,1,47,
+654,11,445,1,35,
+654,11,450,1,15,
+654,11,474,4,0,
+654,11,496,4,0,
+654,11,522,4,0,
+655,9,14,4,0,
+655,9,63,4,0,
+655,9,73,1,19,
+655,9,74,1,1,
+655,9,76,4,0,
+655,9,92,4,0,
+655,9,94,4,0,
+655,9,98,1,28,
+655,9,104,4,0,
+655,9,129,3,0,
+655,9,148,4,0,
+655,9,156,4,0,
+655,9,164,4,0,
+655,9,173,3,0,
+655,9,182,4,0,
+655,9,186,1,82,
+655,9,189,3,0,
+655,9,202,4,0,
+655,9,203,4,0,
+655,9,207,4,0,
+655,9,214,4,0,
+655,9,216,4,0,
+655,9,218,4,0,
+655,9,219,4,0,
+655,9,230,1,37,
+655,9,235,3,0,
+655,9,237,4,0,
+655,9,241,4,0,
+655,9,244,4,0,
+655,9,263,4,0,
+655,9,290,4,0,
+655,9,314,3,0,
+655,9,331,4,0,
+655,9,345,1,10,
+655,9,363,1,46,
+655,9,363,4,0,
+655,9,387,3,0,
+655,9,388,1,55,
+655,9,402,3,0,
+655,9,403,1,64,
+655,9,412,1,73,
+655,9,412,4,0,
+655,9,416,4,0,
+655,9,428,3,0,
+655,9,437,1,91,
+655,9,447,4,0,
+655,9,465,1,100,
+655,9,466,3,0,
+655,10,14,4,0,
+655,10,29,3,0,
+655,10,63,4,0,
+655,10,73,1,19,
+655,10,74,1,1,
+655,10,76,4,0,
+655,10,92,4,0,
+655,10,94,4,0,
+655,10,98,1,28,
+655,10,104,4,0,
+655,10,129,3,0,
+655,10,148,4,0,
+655,10,156,4,0,
+655,10,164,4,0,
+655,10,173,3,0,
+655,10,182,4,0,
+655,10,186,1,82,
+655,10,189,3,0,
+655,10,202,4,0,
+655,10,203,4,0,
+655,10,207,4,0,
+655,10,214,4,0,
+655,10,216,4,0,
+655,10,218,4,0,
+655,10,219,4,0,
+655,10,230,1,37,
+655,10,235,3,0,
+655,10,237,4,0,
+655,10,241,4,0,
+655,10,244,4,0,
+655,10,263,4,0,
+655,10,290,4,0,
+655,10,314,3,0,
+655,10,331,4,0,
+655,10,345,1,10,
+655,10,363,1,46,
+655,10,363,4,0,
+655,10,366,3,0,
+655,10,387,3,0,
+655,10,388,1,55,
+655,10,388,3,0,
+655,10,402,3,0,
+655,10,403,1,64,
+655,10,412,1,73,
+655,10,412,4,0,
+655,10,416,4,0,
+655,10,428,3,0,
+655,10,437,1,91,
+655,10,447,4,0,
+655,10,465,1,100,
+655,10,466,3,0,
+655,11,14,4,0,
+655,11,63,4,0,
+655,11,73,1,19,
+655,11,74,1,1,
+655,11,76,4,0,
+655,11,92,4,0,
+655,11,94,4,0,
+655,11,98,1,28,
+655,11,104,4,0,
+655,11,148,4,0,
+655,11,156,4,0,
+655,11,164,4,0,
+655,11,182,4,0,
+655,11,186,1,82,
+655,11,207,4,0,
+655,11,216,4,0,
+655,11,218,4,0,
+655,11,219,4,0,
+655,11,230,1,37,
+655,11,237,4,0,
+655,11,241,4,0,
+655,11,244,4,0,
+655,11,263,4,0,
+655,11,345,1,10,
+655,11,363,1,46,
+655,11,388,1,55,
+655,11,403,1,64,
+655,11,412,1,73,
+655,11,412,4,0,
+655,11,416,4,0,
+655,11,437,1,91,
+655,11,447,4,0,
+655,11,465,1,100,
+655,11,496,4,0,
+656,9,15,4,0,
+656,9,19,4,0,
+656,9,46,4,0,
+656,9,63,4,0,
+656,9,70,4,0,
+656,9,85,4,0,
+656,9,86,4,0,
+656,9,87,4,0,
+656,9,89,4,0,
+656,9,92,4,0,
+656,9,94,4,0,
+656,9,104,4,0,
+656,9,129,3,0,
+656,9,138,4,0,
+656,9,156,4,0,
+656,9,163,1,70,
+656,9,164,4,0,
+656,9,173,3,0,
+656,9,180,3,0,
+656,9,182,4,0,
+656,9,184,1,1,2
+656,9,189,3,0,
+656,9,196,3,0,
+656,9,200,3,0,
+656,9,203,4,0,
+656,9,207,4,0,
+656,9,210,3,0,
+656,9,211,4,0,
+656,9,214,4,0,
+656,9,216,4,0,
+656,9,218,4,0,
+656,9,219,4,0,
+656,9,225,1,1,1
+656,9,231,4,0,
+656,9,237,4,0,
+656,9,239,3,0,
+656,9,240,4,0,
+656,9,241,4,0,
+656,9,244,4,0,
+656,9,246,1,20,
+656,9,246,3,0,
+656,9,247,4,0,
+656,9,249,4,0,
+656,9,261,4,0,
+656,9,263,4,0,
+656,9,290,4,0,
+656,9,314,3,0,
+656,9,318,4,0,
+656,9,332,4,0,
+656,9,337,1,30,
+656,9,337,4,0,
+656,9,347,4,0,
+656,9,351,4,0,
+656,9,363,4,0,
+656,9,371,4,0,
+656,9,377,1,50,
+656,9,396,1,90,
+656,9,399,4,0,
+656,9,401,3,0,
+656,9,406,4,0,
+656,9,412,4,0,
+656,9,414,1,60,
+656,9,414,3,0,
+656,9,416,4,0,
+656,9,421,1,80,
+656,9,421,4,0,
+656,9,431,4,0,
+656,9,432,4,0,
+656,9,434,3,0,
+656,9,442,3,0,
+656,9,444,4,0,
+656,9,451,4,0,
+656,9,466,1,10,
+656,9,466,3,0,
+656,9,467,1,40,
+656,10,15,4,0,
+656,10,19,4,0,
+656,10,29,3,0,
+656,10,46,4,0,
+656,10,63,4,0,
+656,10,70,4,0,
+656,10,85,4,0,
+656,10,86,4,0,
+656,10,87,4,0,
+656,10,89,4,0,
+656,10,92,4,0,
+656,10,94,4,0,
+656,10,104,4,0,
+656,10,129,3,0,
+656,10,138,4,0,
+656,10,156,4,0,
+656,10,163,1,15,
+656,10,164,4,0,
+656,10,173,3,0,
+656,10,180,3,0,
+656,10,182,4,0,
+656,10,184,1,1,2
+656,10,189,3,0,
+656,10,194,1,24,
+656,10,196,3,0,
+656,10,200,3,0,
+656,10,203,4,0,
+656,10,207,4,0,
+656,10,210,3,0,
+656,10,211,4,0,
+656,10,214,4,0,
+656,10,216,4,0,
+656,10,218,4,0,
+656,10,219,4,0,
+656,10,220,3,0,
+656,10,225,1,1,1
+656,10,231,4,0,
+656,10,237,4,0,
+656,10,239,3,0,
+656,10,240,4,0,
+656,10,241,4,0,
+656,10,244,4,0,
+656,10,246,1,10,
+656,10,246,3,0,
+656,10,247,4,0,
+656,10,249,4,0,
+656,10,261,4,0,
+656,10,263,4,0,
+656,10,272,3,0,
+656,10,277,3,0,
+656,10,290,4,0,
+656,10,314,3,0,
+656,10,318,4,0,
+656,10,332,4,0,
+656,10,337,1,28,
+656,10,337,4,0,
+656,10,347,4,0,
+656,10,351,4,0,
+656,10,356,3,0,
+656,10,363,4,0,
+656,10,366,3,0,
+656,10,371,4,0,
+656,10,396,1,37,
+656,10,399,4,0,
+656,10,401,3,0,
+656,10,406,4,0,
+656,10,412,4,0,
+656,10,414,1,33,
+656,10,414,3,0,
+656,10,416,4,0,
+656,10,421,1,42,
+656,10,421,4,0,
+656,10,425,1,19,
+656,10,431,4,0,
+656,10,434,3,0,
+656,10,442,3,0,
+656,10,444,4,0,
+656,10,451,4,0,
+656,10,466,1,6,
+656,10,466,3,0,
+656,10,467,1,46,
+656,11,15,4,0,
+656,11,19,4,0,
+656,11,46,4,0,
+656,11,63,4,0,
+656,11,70,4,0,
+656,11,85,4,0,
+656,11,86,4,0,
+656,11,87,4,0,
+656,11,89,4,0,
+656,11,92,4,0,
+656,11,94,4,0,
+656,11,104,4,0,
+656,11,138,4,0,
+656,11,156,4,0,
+656,11,163,1,15,
+656,11,164,4,0,
+656,11,182,4,0,
+656,11,184,1,1,2
+656,11,194,1,24,
+656,11,207,4,0,
+656,11,216,4,0,
+656,11,218,4,0,
+656,11,219,4,0,
+656,11,225,1,1,1
+656,11,237,4,0,
+656,11,240,4,0,
+656,11,241,4,0,
+656,11,244,4,0,
+656,11,246,1,10,
+656,11,247,4,0,
+656,11,249,4,0,
+656,11,261,4,0,
+656,11,263,4,0,
+656,11,332,4,0,
+656,11,337,1,28,
+656,11,337,4,0,
+656,11,347,4,0,
+656,11,371,4,0,
+656,11,396,1,37,
+656,11,412,4,0,
+656,11,414,1,33,
+656,11,416,4,0,
+656,11,421,1,42,
+656,11,421,4,0,
+656,11,425,1,19,
+656,11,434,3,0,
+656,11,444,4,0,
+656,11,451,4,0,
+656,11,466,1,6,
+656,11,467,1,46,
+656,11,468,4,0,
+656,11,477,4,0,
+656,11,496,4,0,
+656,11,497,4,0,
+656,11,506,1,50,
+656,11,523,4,0,
+656,11,525,4,0,
+657,9,84,1,1,4
+657,9,85,4,0,
+657,9,86,1,1,3
+657,9,86,4,0,
+657,9,87,4,0,
+657,9,92,4,0,
+657,9,104,1,15,
+657,9,104,4,0,
+657,9,109,1,1,5
+657,9,113,4,0,
+657,9,115,4,0,
+657,9,129,3,0,
+657,9,138,4,0,
+657,9,148,4,0,
+657,9,156,4,0,
+657,9,164,1,36,
+657,9,164,4,0,
+657,9,168,4,0,
+657,9,173,3,0,
+657,9,180,3,0,
+657,9,182,4,0,
+657,9,189,3,0,
+657,9,203,4,0,
+657,9,207,4,0,
+657,9,214,4,0,
+657,9,216,4,0,
+657,9,218,4,0,
+657,9,237,4,0,
+657,9,240,4,0,
+657,9,241,4,0,
+657,9,244,4,0,
+657,9,247,4,0,
+657,9,253,1,8,
+657,9,261,4,0,
+657,9,263,4,0,
+657,9,268,1,43,
+657,9,271,1,1,1
+657,9,271,3,0,
+657,9,289,4,0,
+657,9,290,4,0,
+657,9,310,1,1,2
+657,9,315,10,0,
+657,9,324,3,0,
+657,9,351,1,22,
+657,9,351,4,0,
+657,9,363,4,0,
+657,9,389,3,0,
+657,9,399,4,0,
+657,9,435,1,50,
+657,9,451,4,0,
+657,9,466,1,29,
+657,9,466,3,0,
+657,10,84,1,1,4
+657,10,85,4,0,
+657,10,86,1,1,3
+657,10,86,4,0,
+657,10,87,4,0,
+657,10,92,4,0,
+657,10,104,1,15,
+657,10,104,4,0,
+657,10,109,1,1,5
+657,10,113,4,0,
+657,10,115,4,0,
+657,10,129,3,0,
+657,10,138,4,0,
+657,10,148,4,0,
+657,10,156,4,0,
+657,10,164,1,36,
+657,10,164,4,0,
+657,10,168,4,0,
+657,10,173,3,0,
+657,10,180,3,0,
+657,10,182,4,0,
+657,10,189,3,0,
+657,10,203,4,0,
+657,10,207,4,0,
+657,10,214,4,0,
+657,10,216,4,0,
+657,10,218,4,0,
+657,10,220,3,0,
+657,10,237,4,0,
+657,10,240,4,0,
+657,10,241,4,0,
+657,10,244,4,0,
+657,10,247,4,0,
+657,10,253,1,8,
+657,10,261,4,0,
+657,10,263,4,0,
+657,10,268,1,43,
+657,10,271,1,1,1
+657,10,271,3,0,
+657,10,289,4,0,
+657,10,290,4,0,
+657,10,310,1,1,2
+657,10,315,10,0,
+657,10,324,3,0,
+657,10,351,1,22,
+657,10,351,4,0,
+657,10,363,4,0,
+657,10,389,3,0,
+657,10,399,4,0,
+657,10,435,1,50,
+657,10,451,4,0,
+657,10,466,1,29,
+657,10,466,3,0,
+657,11,84,1,1,4
+657,11,85,4,0,
+657,11,86,1,1,3
+657,11,86,4,0,
+657,11,87,4,0,
+657,11,92,4,0,
+657,11,104,1,15,
+657,11,104,4,0,
+657,11,109,1,1,5
+657,11,113,4,0,
+657,11,115,4,0,
+657,11,138,4,0,
+657,11,148,4,0,
+657,11,156,4,0,
+657,11,164,1,36,
+657,11,164,4,0,
+657,11,168,4,0,
+657,11,182,4,0,
+657,11,207,4,0,
+657,11,216,4,0,
+657,11,218,4,0,
+657,11,237,4,0,
+657,11,240,4,0,
+657,11,241,4,0,
+657,11,244,4,0,
+657,11,247,4,0,
+657,11,253,1,8,
+657,11,261,4,0,
+657,11,263,4,0,
+657,11,268,1,57,
+657,11,271,1,1,1
+657,11,310,1,1,2
+657,11,315,10,0,
+657,11,351,1,22,
+657,11,435,1,64,
+657,11,451,4,0,
+657,11,466,1,29,
+657,11,477,4,0,
+657,11,486,1,43,
+657,11,496,4,0,
+657,11,506,1,50,
+657,11,521,4,0,
+658,9,56,10,0,
+658,9,84,1,1,4
+658,9,85,4,0,
+658,9,86,1,1,3
+658,9,86,4,0,
+658,9,87,4,0,
+658,9,92,4,0,
+658,9,104,1,15,
+658,9,104,4,0,
+658,9,109,1,1,5
+658,9,113,4,0,
+658,9,115,4,0,
+658,9,129,3,0,
+658,9,138,4,0,
+658,9,148,4,0,
+658,9,156,4,0,
+658,9,164,1,36,
+658,9,164,4,0,
+658,9,168,4,0,
+658,9,173,3,0,
+658,9,180,3,0,
+658,9,182,4,0,
+658,9,189,3,0,
+658,9,203,4,0,
+658,9,207,4,0,
+658,9,214,4,0,
+658,9,216,4,0,
+658,9,218,4,0,
+658,9,237,4,0,
+658,9,240,4,0,
+658,9,241,4,0,
+658,9,244,4,0,
+658,9,247,4,0,
+658,9,253,1,8,
+658,9,261,4,0,
+658,9,263,4,0,
+658,9,268,1,43,
+658,9,271,1,1,1
+658,9,271,3,0,
+658,9,289,4,0,
+658,9,290,4,0,
+658,9,310,1,1,2
+658,9,324,3,0,
+658,9,351,1,22,
+658,9,351,4,0,
+658,9,363,4,0,
+658,9,389,3,0,
+658,9,399,4,0,
+658,9,435,1,50,
+658,9,451,4,0,
+658,9,466,1,29,
+658,9,466,3,0,
+658,10,56,10,0,
+658,10,84,1,1,4
+658,10,85,4,0,
+658,10,86,1,1,3
+658,10,86,4,0,
+658,10,87,4,0,
+658,10,92,4,0,
+658,10,104,1,15,
+658,10,104,4,0,
+658,10,109,1,1,5
+658,10,113,4,0,
+658,10,115,4,0,
+658,10,129,3,0,
+658,10,138,4,0,
+658,10,148,4,0,
+658,10,156,4,0,
+658,10,164,1,36,
+658,10,164,4,0,
+658,10,168,4,0,
+658,10,173,3,0,
+658,10,180,3,0,
+658,10,182,4,0,
+658,10,189,3,0,
+658,10,203,4,0,
+658,10,207,4,0,
+658,10,214,4,0,
+658,10,216,4,0,
+658,10,218,4,0,
+658,10,220,3,0,
+658,10,237,4,0,
+658,10,240,4,0,
+658,10,241,4,0,
+658,10,244,4,0,
+658,10,247,4,0,
+658,10,253,1,8,
+658,10,261,4,0,
+658,10,263,4,0,
+658,10,268,1,43,
+658,10,271,1,1,1
+658,10,271,3,0,
+658,10,289,4,0,
+658,10,290,4,0,
+658,10,310,1,1,2
+658,10,324,3,0,
+658,10,351,1,22,
+658,10,351,4,0,
+658,10,363,4,0,
+658,10,389,3,0,
+658,10,399,4,0,
+658,10,435,1,50,
+658,10,451,4,0,
+658,10,466,1,29,
+658,10,466,3,0,
+658,11,56,10,0,
+658,11,84,1,1,4
+658,11,85,4,0,
+658,11,86,1,1,3
+658,11,86,4,0,
+658,11,87,4,0,
+658,11,92,4,0,
+658,11,104,1,15,
+658,11,104,4,0,
+658,11,109,1,1,5
+658,11,113,4,0,
+658,11,115,4,0,
+658,11,138,4,0,
+658,11,148,4,0,
+658,11,156,4,0,
+658,11,164,1,36,
+658,11,164,4,0,
+658,11,168,4,0,
+658,11,182,4,0,
+658,11,207,4,0,
+658,11,216,4,0,
+658,11,218,4,0,
+658,11,237,4,0,
+658,11,240,4,0,
+658,11,241,4,0,
+658,11,244,4,0,
+658,11,247,4,0,
+658,11,253,1,8,
+658,11,261,4,0,
+658,11,263,4,0,
+658,11,268,1,57,
+658,11,271,1,1,1
+658,11,310,1,1,2
+658,11,351,1,22,
+658,11,435,1,64,
+658,11,451,4,0,
+658,11,466,1,29,
+658,11,477,4,0,
+658,11,486,1,43,
+658,11,496,4,0,
+658,11,506,1,50,
+658,11,521,4,0,
+659,9,59,10,0,
+659,9,84,1,1,4
+659,9,85,4,0,
+659,9,86,1,1,3
+659,9,86,4,0,
+659,9,87,4,0,
+659,9,92,4,0,
+659,9,104,1,15,
+659,9,104,4,0,
+659,9,109,1,1,5
+659,9,113,4,0,
+659,9,115,4,0,
+659,9,129,3,0,
+659,9,138,4,0,
+659,9,148,4,0,
+659,9,156,4,0,
+659,9,164,1,36,
+659,9,164,4,0,
+659,9,168,4,0,
+659,9,173,3,0,
+659,9,180,3,0,
+659,9,182,4,0,
+659,9,189,3,0,
+659,9,203,4,0,
+659,9,207,4,0,
+659,9,214,4,0,
+659,9,216,4,0,
+659,9,218,4,0,
+659,9,237,4,0,
+659,9,240,4,0,
+659,9,241,4,0,
+659,9,244,4,0,
+659,9,247,4,0,
+659,9,253,1,8,
+659,9,261,4,0,
+659,9,263,4,0,
+659,9,268,1,43,
+659,9,271,1,1,1
+659,9,271,3,0,
+659,9,289,4,0,
+659,9,290,4,0,
+659,9,310,1,1,2
+659,9,324,3,0,
+659,9,351,1,22,
+659,9,351,4,0,
+659,9,363,4,0,
+659,9,389,3,0,
+659,9,399,4,0,
+659,9,435,1,50,
+659,9,451,4,0,
+659,9,466,1,29,
+659,9,466,3,0,
+659,10,59,10,0,
+659,10,84,1,1,4
+659,10,85,4,0,
+659,10,86,1,1,3
+659,10,86,4,0,
+659,10,87,4,0,
+659,10,92,4,0,
+659,10,104,1,15,
+659,10,104,4,0,
+659,10,109,1,1,5
+659,10,113,4,0,
+659,10,115,4,0,
+659,10,129,3,0,
+659,10,138,4,0,
+659,10,148,4,0,
+659,10,156,4,0,
+659,10,164,1,36,
+659,10,164,4,0,
+659,10,168,4,0,
+659,10,173,3,0,
+659,10,180,3,0,
+659,10,182,4,0,
+659,10,189,3,0,
+659,10,203,4,0,
+659,10,207,4,0,
+659,10,214,4,0,
+659,10,216,4,0,
+659,10,218,4,0,
+659,10,220,3,0,
+659,10,237,4,0,
+659,10,240,4,0,
+659,10,241,4,0,
+659,10,244,4,0,
+659,10,247,4,0,
+659,10,253,1,8,
+659,10,261,4,0,
+659,10,263,4,0,
+659,10,268,1,43,
+659,10,271,1,1,1
+659,10,271,3,0,
+659,10,289,4,0,
+659,10,290,4,0,
+659,10,310,1,1,2
+659,10,324,3,0,
+659,10,351,1,22,
+659,10,351,4,0,
+659,10,363,4,0,
+659,10,389,3,0,
+659,10,399,4,0,
+659,10,435,1,50,
+659,10,451,4,0,
+659,10,466,1,29,
+659,10,466,3,0,
+659,11,59,10,0,
+659,11,84,1,1,4
+659,11,85,4,0,
+659,11,86,1,1,3
+659,11,86,4,0,
+659,11,87,4,0,
+659,11,92,4,0,
+659,11,104,1,15,
+659,11,104,4,0,
+659,11,109,1,1,5
+659,11,113,4,0,
+659,11,115,4,0,
+659,11,138,4,0,
+659,11,148,4,0,
+659,11,156,4,0,
+659,11,164,1,36,
+659,11,164,4,0,
+659,11,168,4,0,
+659,11,182,4,0,
+659,11,207,4,0,
+659,11,216,4,0,
+659,11,218,4,0,
+659,11,237,4,0,
+659,11,240,4,0,
+659,11,241,4,0,
+659,11,244,4,0,
+659,11,247,4,0,
+659,11,253,1,8,
+659,11,261,4,0,
+659,11,263,4,0,
+659,11,268,1,57,
+659,11,271,1,1,1
+659,11,310,1,1,2
+659,11,351,1,22,
+659,11,435,1,64,
+659,11,451,4,0,
+659,11,466,1,29,
+659,11,477,4,0,
+659,11,486,1,43,
+659,11,496,4,0,
+659,11,506,1,50,
+659,11,521,4,0,
+660,9,84,1,1,4
+660,9,85,4,0,
+660,9,86,1,1,3
+660,9,86,4,0,
+660,9,87,4,0,
+660,9,92,4,0,
+660,9,104,1,15,
+660,9,104,4,0,
+660,9,109,1,1,5
+660,9,113,4,0,
+660,9,115,4,0,
+660,9,129,3,0,
+660,9,138,4,0,
+660,9,148,4,0,
+660,9,156,4,0,
+660,9,164,1,36,
+660,9,164,4,0,
+660,9,168,4,0,
+660,9,173,3,0,
+660,9,180,3,0,
+660,9,182,4,0,
+660,9,189,3,0,
+660,9,203,4,0,
+660,9,207,4,0,
+660,9,214,4,0,
+660,9,216,4,0,
+660,9,218,4,0,
+660,9,237,4,0,
+660,9,240,4,0,
+660,9,241,4,0,
+660,9,244,4,0,
+660,9,247,4,0,
+660,9,253,1,8,
+660,9,261,4,0,
+660,9,263,4,0,
+660,9,268,1,43,
+660,9,271,1,1,1
+660,9,271,3,0,
+660,9,289,4,0,
+660,9,290,4,0,
+660,9,310,1,1,2
+660,9,324,3,0,
+660,9,351,1,22,
+660,9,351,4,0,
+660,9,363,4,0,
+660,9,389,3,0,
+660,9,399,4,0,
+660,9,403,10,0,
+660,9,435,1,50,
+660,9,451,4,0,
+660,9,466,1,29,
+660,9,466,3,0,
+660,10,84,1,1,4
+660,10,85,4,0,
+660,10,86,1,1,3
+660,10,86,4,0,
+660,10,87,4,0,
+660,10,92,4,0,
+660,10,104,1,15,
+660,10,104,4,0,
+660,10,109,1,1,5
+660,10,113,4,0,
+660,10,115,4,0,
+660,10,129,3,0,
+660,10,138,4,0,
+660,10,148,4,0,
+660,10,156,4,0,
+660,10,164,1,36,
+660,10,164,4,0,
+660,10,168,4,0,
+660,10,173,3,0,
+660,10,180,3,0,
+660,10,182,4,0,
+660,10,189,3,0,
+660,10,203,4,0,
+660,10,207,4,0,
+660,10,214,4,0,
+660,10,216,4,0,
+660,10,218,4,0,
+660,10,220,3,0,
+660,10,237,4,0,
+660,10,240,4,0,
+660,10,241,4,0,
+660,10,244,4,0,
+660,10,247,4,0,
+660,10,253,1,8,
+660,10,261,4,0,
+660,10,263,4,0,
+660,10,268,1,43,
+660,10,271,1,1,1
+660,10,271,3,0,
+660,10,289,4,0,
+660,10,290,4,0,
+660,10,310,1,1,2
+660,10,324,3,0,
+660,10,351,1,22,
+660,10,351,4,0,
+660,10,363,4,0,
+660,10,389,3,0,
+660,10,399,4,0,
+660,10,403,10,0,
+660,10,435,1,50,
+660,10,451,4,0,
+660,10,466,1,29,
+660,10,466,3,0,
+660,11,84,1,1,4
+660,11,85,4,0,
+660,11,86,1,1,3
+660,11,86,4,0,
+660,11,87,4,0,
+660,11,92,4,0,
+660,11,104,1,15,
+660,11,104,4,0,
+660,11,109,1,1,5
+660,11,113,4,0,
+660,11,115,4,0,
+660,11,138,4,0,
+660,11,148,4,0,
+660,11,156,4,0,
+660,11,164,1,36,
+660,11,164,4,0,
+660,11,168,4,0,
+660,11,182,4,0,
+660,11,207,4,0,
+660,11,216,4,0,
+660,11,218,4,0,
+660,11,237,4,0,
+660,11,240,4,0,
+660,11,241,4,0,
+660,11,244,4,0,
+660,11,247,4,0,
+660,11,253,1,8,
+660,11,261,4,0,
+660,11,263,4,0,
+660,11,268,1,57,
+660,11,271,1,1,1
+660,11,310,1,1,2
+660,11,351,1,22,
+660,11,403,10,0,
+660,11,435,1,64,
+660,11,451,4,0,
+660,11,466,1,29,
+660,11,477,4,0,
+660,11,486,1,43,
+660,11,496,4,0,
+660,11,506,1,50,
+660,11,521,4,0,
+661,9,84,1,1,4
+661,9,85,4,0,
+661,9,86,1,1,3
+661,9,86,4,0,
+661,9,87,4,0,
+661,9,92,4,0,
+661,9,104,1,15,
+661,9,104,4,0,
+661,9,109,1,1,5
+661,9,113,4,0,
+661,9,115,4,0,
+661,9,129,3,0,
+661,9,138,4,0,
+661,9,148,4,0,
+661,9,156,4,0,
+661,9,164,1,36,
+661,9,164,4,0,
+661,9,168,4,0,
+661,9,173,3,0,
+661,9,180,3,0,
+661,9,182,4,0,
+661,9,189,3,0,
+661,9,203,4,0,
+661,9,207,4,0,
+661,9,214,4,0,
+661,9,216,4,0,
+661,9,218,4,0,
+661,9,237,4,0,
+661,9,240,4,0,
+661,9,241,4,0,
+661,9,244,4,0,
+661,9,247,4,0,
+661,9,253,1,8,
+661,9,261,4,0,
+661,9,263,4,0,
+661,9,268,1,43,
+661,9,271,1,1,1
+661,9,271,3,0,
+661,9,289,4,0,
+661,9,290,4,0,
+661,9,310,1,1,2
+661,9,324,3,0,
+661,9,351,1,22,
+661,9,351,4,0,
+661,9,363,4,0,
+661,9,389,3,0,
+661,9,399,4,0,
+661,9,435,1,50,
+661,9,437,10,0,
+661,9,451,4,0,
+661,9,466,1,29,
+661,9,466,3,0,
+661,10,84,1,1,4
+661,10,85,4,0,
+661,10,86,1,1,3
+661,10,86,4,0,
+661,10,87,4,0,
+661,10,92,4,0,
+661,10,104,1,15,
+661,10,104,4,0,
+661,10,109,1,1,5
+661,10,113,4,0,
+661,10,115,4,0,
+661,10,129,3,0,
+661,10,138,4,0,
+661,10,148,4,0,
+661,10,156,4,0,
+661,10,164,1,36,
+661,10,164,4,0,
+661,10,168,4,0,
+661,10,173,3,0,
+661,10,180,3,0,
+661,10,182,4,0,
+661,10,189,3,0,
+661,10,203,4,0,
+661,10,207,4,0,
+661,10,214,4,0,
+661,10,216,4,0,
+661,10,218,4,0,
+661,10,220,3,0,
+661,10,237,4,0,
+661,10,240,4,0,
+661,10,241,4,0,
+661,10,244,4,0,
+661,10,247,4,0,
+661,10,253,1,8,
+661,10,261,4,0,
+661,10,263,4,0,
+661,10,268,1,43,
+661,10,271,1,1,1
+661,10,271,3,0,
+661,10,289,4,0,
+661,10,290,4,0,
+661,10,310,1,1,2
+661,10,324,3,0,
+661,10,351,1,22,
+661,10,351,4,0,
+661,10,363,4,0,
+661,10,389,3,0,
+661,10,399,4,0,
+661,10,435,1,50,
+661,10,437,10,0,
+661,10,451,4,0,
+661,10,466,1,29,
+661,10,466,3,0,
+661,11,84,1,1,4
+661,11,85,4,0,
+661,11,86,1,1,3
+661,11,86,4,0,
+661,11,87,4,0,
+661,11,92,4,0,
+661,11,104,1,15,
+661,11,104,4,0,
+661,11,109,1,1,5
+661,11,113,4,0,
+661,11,115,4,0,
+661,11,138,4,0,
+661,11,148,4,0,
+661,11,156,4,0,
+661,11,164,1,36,
+661,11,164,4,0,
+661,11,168,4,0,
+661,11,182,4,0,
+661,11,207,4,0,
+661,11,216,4,0,
+661,11,218,4,0,
+661,11,237,4,0,
+661,11,240,4,0,
+661,11,241,4,0,
+661,11,244,4,0,
+661,11,247,4,0,
+661,11,253,1,8,
+661,11,261,4,0,
+661,11,263,4,0,
+661,11,268,1,57,
+661,11,271,1,1,1
+661,11,310,1,1,2
+661,11,351,1,22,
+661,11,435,1,64,
+661,11,437,10,0,
+661,11,451,4,0,
+661,11,466,1,29,
+661,11,477,4,0,
+661,11,486,1,43,
+661,11,496,4,0,
+661,11,506,1,50,
+661,11,521,4,0,
+662,11,29,1,20,
+662,11,33,1,1,
+662,11,52,1,10,2
+662,11,53,4,0,
+662,11,55,1,10,1
+662,11,56,1,50,1
+662,11,58,4,0,
+662,11,59,1,50,3
+662,11,59,4,0,
+662,11,76,4,0,
+662,11,85,4,0,
+662,11,86,4,0,
+662,11,87,4,0,
+662,11,92,4,0,
+662,11,104,4,0,
+662,11,126,1,50,2
+662,11,126,4,0,
+662,11,148,4,0,
+662,11,156,4,0,
+662,11,164,4,0,
+662,11,168,4,0,
+662,11,181,1,10,3
+662,11,182,4,0,
+662,11,201,4,0,
+662,11,207,4,0,
+662,11,213,4,0,
+662,11,216,4,0,
+662,11,218,4,0,
+662,11,237,4,0,
+662,11,240,1,30,1
+662,11,240,4,0,
+662,11,241,1,30,2
+662,11,241,4,0,
+662,11,244,4,0,
+662,11,247,4,0,
+662,11,258,1,30,3
+662,11,258,4,0,
+662,11,263,4,0,
+662,11,311,1,40,
+662,11,412,4,0,
+662,11,496,4,0,
+662,11,503,4,0,
+662,11,510,4,0,
+662,11,514,4,0,
+662,11,526,4,0,
+663,11,29,1,20,
+663,11,33,1,1,
+663,11,52,1,10,2
+663,11,53,4,0,
+663,11,55,1,10,1
+663,11,56,1,50,1
+663,11,58,4,0,
+663,11,59,1,50,3
+663,11,59,4,0,
+663,11,76,4,0,
+663,11,85,4,0,
+663,11,86,4,0,
+663,11,87,4,0,
+663,11,92,4,0,
+663,11,104,4,0,
+663,11,126,1,50,2
+663,11,126,4,0,
+663,11,148,4,0,
+663,11,156,4,0,
+663,11,164,4,0,
+663,11,168,4,0,
+663,11,181,1,10,3
+663,11,182,4,0,
+663,11,201,4,0,
+663,11,207,4,0,
+663,11,213,4,0,
+663,11,216,4,0,
+663,11,218,4,0,
+663,11,237,4,0,
+663,11,240,1,30,1
+663,11,240,4,0,
+663,11,241,1,30,2
+663,11,241,4,0,
+663,11,244,4,0,
+663,11,247,4,0,
+663,11,258,1,30,3
+663,11,258,4,0,
+663,11,263,4,0,
+663,11,311,1,40,
+663,11,412,4,0,
+663,11,496,4,0,
+663,11,503,4,0,
+663,11,510,4,0,
+663,11,514,4,0,
+663,11,526,4,0,
+664,11,29,1,20,
+664,11,33,1,1,
+664,11,52,1,10,2
+664,11,53,4,0,
+664,11,55,1,10,1
+664,11,56,1,50,1
+664,11,58,4,0,
+664,11,59,1,50,3
+664,11,59,4,0,
+664,11,76,4,0,
+664,11,85,4,0,
+664,11,86,4,0,
+664,11,87,4,0,
+664,11,92,4,0,
+664,11,104,4,0,
+664,11,126,1,50,2
+664,11,126,4,0,
+664,11,148,4,0,
+664,11,156,4,0,
+664,11,164,4,0,
+664,11,168,4,0,
+664,11,181,1,10,3
+664,11,182,4,0,
+664,11,201,4,0,
+664,11,207,4,0,
+664,11,213,4,0,
+664,11,216,4,0,
+664,11,218,4,0,
+664,11,237,4,0,
+664,11,240,1,30,1
+664,11,240,4,0,
+664,11,241,1,30,2
+664,11,241,4,0,
+664,11,244,4,0,
+664,11,247,4,0,
+664,11,258,1,30,3
+664,11,258,4,0,
+664,11,263,4,0,
+664,11,311,1,40,
+664,11,412,4,0,
+664,11,496,4,0,
+664,11,503,4,0,
+664,11,510,4,0,
+664,11,514,4,0,
+664,11,526,4,0,
+665,11,15,4,0,
+665,11,29,1,7,
+665,11,33,1,1,1
+665,11,36,1,20,
+665,11,37,1,56,
+665,11,38,1,36,
+665,11,44,1,10,
+665,11,55,1,1,2
+665,11,57,4,0,
+665,11,58,4,0,
+665,11,92,4,0,
+665,11,104,4,0,
+665,11,127,4,0,
+665,11,156,4,0,
+665,11,164,4,0,
+665,11,175,1,46,
+665,11,182,4,0,
+665,11,184,1,41,
+665,11,207,4,0,
+665,11,213,4,0,
+665,11,216,4,0,
+665,11,218,4,0,
+665,11,237,4,0,
+665,11,240,4,0,
+665,11,242,1,24,
+665,11,253,1,4,
+665,11,258,4,0,
+665,11,263,4,0,
+665,11,269,4,0,
+665,11,291,4,0,
+665,11,401,1,28,
+665,11,453,1,13,
+665,11,487,1,32,
+665,11,496,4,0,
+665,11,498,1,16,
+665,11,503,4,0,
+665,11,515,1,51,
+666,11,7,1,22,
+666,11,29,1,14,
+666,11,33,1,1,1
+666,11,37,1,27,
+666,11,46,4,0,
+666,11,53,4,0,
+666,11,63,4,0,
+666,11,70,4,0,
+666,11,76,4,0,
+666,11,89,4,0,
+666,11,91,4,0,
+666,11,92,4,0,
+666,11,94,4,0,
+666,11,99,1,1,4
+666,11,99,1,9,
+666,11,104,4,0,
+666,11,126,4,0,
+666,11,156,4,0,
+666,11,157,4,0,
+666,11,164,4,0,
+666,11,168,4,0,
+666,11,182,4,0,
+666,11,187,1,30,
+666,11,205,1,1,2
+666,11,205,1,3,
+666,11,207,1,17,
+666,11,207,4,0,
+666,11,213,4,0,
+666,11,216,4,0,
+666,11,218,4,0,
+666,11,237,4,0,
+666,11,241,4,0,
+666,11,249,4,0,
+666,11,259,4,0,
+666,11,261,4,0,
+666,11,263,1,19,
+666,11,263,4,0,
+666,11,269,1,39,
+666,11,269,4,0,
+666,11,276,1,47,
+666,11,280,4,0,
+666,11,315,1,54,
+666,11,315,4,0,
+666,11,317,4,0,
+666,11,339,4,0,
+666,11,359,1,35,
+666,11,360,4,0,
+666,11,369,4,0,
+666,11,371,4,0,
+666,11,374,4,0,
+666,11,394,1,33,
+666,11,411,4,0,
+666,11,416,4,0,
+666,11,424,1,11,
+666,11,444,4,0,
+666,11,447,4,0,
+666,11,479,4,0,
+666,11,488,4,0,
+666,11,496,4,0,
+666,11,510,1,1,3
+666,11,510,1,6,
+666,11,510,4,0,
+666,11,523,4,0,
+666,11,526,1,25,
+666,11,526,4,0,
+667,11,47,1,16,
+667,11,60,1,31,
+667,11,63,4,0,
+667,11,70,4,0,
+667,11,85,4,0,
+667,11,86,4,0,
+667,11,87,4,0,
+667,11,92,4,0,
+667,11,93,1,11,
+667,11,94,1,57,
+667,11,94,4,0,
+667,11,98,1,6,
+667,11,104,4,0,
+667,11,113,4,0,
+667,11,138,4,0,
+667,11,148,4,0,
+667,11,156,4,0,
+667,11,164,4,0,
+667,11,182,4,0,
+667,11,195,1,85,
+667,11,207,4,0,
+667,11,216,4,0,
+667,11,218,4,0,
+667,11,219,4,0,
+667,11,237,4,0,
+667,11,240,4,0,
+667,11,241,4,0,
+667,11,244,4,0,
+667,11,247,4,0,
+667,11,249,4,0,
+667,11,263,4,0,
+667,11,272,1,71,
+667,11,280,4,0,
+667,11,298,1,21,
+667,11,304,1,64,
+667,11,347,4,0,
+667,11,358,1,50,
+667,11,369,1,43,
+667,11,369,4,0,
+667,11,370,1,78,
+667,11,371,4,0,
+667,11,373,4,0,
+667,11,374,4,0,
+667,11,411,4,0,
+667,11,412,4,0,
+667,11,416,4,0,
+667,11,421,4,0,
+667,11,433,4,0,
+667,11,444,4,0,
+667,11,447,4,0,
+667,11,451,4,0,
+667,11,468,4,0,
+667,11,473,4,0,
+667,11,477,4,0,
+667,11,490,4,0,
+667,11,496,1,1,
+667,11,496,4,0,
+667,11,497,1,36,
+667,11,497,4,0,
+667,11,512,1,26,
+667,11,512,4,0,
+667,11,514,4,0,
+667,11,526,4,0,
diff --git a/pokedex/data/csv/pokemon_species.csv b/pokedex/data/csv/pokemon_species.csv
new file mode 100644
index 0000000..7eede21
--- /dev/null
+++ b/pokedex/data/csv/pokemon_species.csv
@@ -0,0 +1,650 @@
+id,identifier,generation_id,evolves_from_species_id,evolution_chain_id,color_id,shape_id,habitat_id,gender_rate,capture_rate,base_happiness,is_baby,hatch_counter,has_gender_differences,growth_rate_id,forms_switchable
+1,bulbasaur,1,,1,5,8,3,1,45,70,0,20,0,4,0
+2,ivysaur,1,1,1,5,8,3,1,45,70,0,20,0,4,0
+3,venusaur,1,2,1,5,8,3,1,45,70,0,20,1,4,0
+4,charmander,1,,2,8,6,4,1,45,70,0,20,0,4,0
+5,charmeleon,1,4,2,8,6,4,1,45,70,0,20,0,4,0
+6,charizard,1,5,2,8,6,4,1,45,70,0,20,0,4,0
+7,squirtle,1,,3,2,6,9,1,45,70,0,20,0,4,0
+8,wartortle,1,7,3,2,6,9,1,45,70,0,20,0,4,0
+9,blastoise,1,8,3,2,6,9,1,45,70,0,20,0,4,0
+10,caterpie,1,,4,5,2,2,4,255,70,0,15,0,2,0
+11,metapod,1,10,4,5,2,2,4,120,70,0,15,0,2,0
+12,butterfree,1,11,4,9,13,2,4,45,70,0,15,1,2,0
+13,weedle,1,,5,3,2,2,4,255,70,0,15,0,2,0
+14,kakuna,1,13,5,10,2,2,4,120,70,0,15,0,2,0
+15,beedrill,1,14,5,10,13,2,4,45,70,0,15,0,2,0
+16,pidgey,1,,6,3,9,2,4,255,70,0,15,0,4,0
+17,pidgeotto,1,16,6,3,9,2,4,120,70,0,15,0,4,0
+18,pidgeot,1,17,6,3,9,2,4,45,70,0,15,0,4,0
+19,rattata,1,,7,7,8,3,4,255,70,0,15,1,2,0
+20,raticate,1,19,7,3,8,3,4,127,70,0,15,1,2,0
+21,spearow,1,,8,3,9,6,4,255,70,0,15,0,2,0
+22,fearow,1,21,8,3,9,6,4,90,70,0,15,0,2,0
+23,ekans,1,,9,7,2,3,4,255,70,0,20,0,2,0
+24,arbok,1,23,9,7,2,3,4,90,70,0,20,0,2,0
+25,pikachu,1,172,10,10,8,2,4,190,70,0,10,1,2,0
+26,raichu,1,25,10,10,6,2,4,75,70,0,10,1,2,0
+27,sandshrew,1,,11,10,6,6,4,255,70,0,20,0,2,0
+28,sandslash,1,27,11,10,6,6,4,90,70,0,20,0,2,0
+29,nidoran-f,1,,12,2,8,3,8,235,70,0,20,0,4,0
+30,nidorina,1,29,12,2,8,3,8,120,70,0,20,0,4,0
+31,nidoqueen,1,30,12,2,6,3,8,45,70,0,20,0,4,0
+32,nidoran-m,1,,13,7,8,3,0,235,70,0,20,0,4,0
+33,nidorino,1,32,13,7,8,3,0,120,70,0,20,0,4,0
+34,nidoking,1,33,13,7,6,3,0,45,70,0,20,0,4,0
+35,clefairy,1,173,14,6,6,4,6,150,140,0,10,0,3,0
+36,clefable,1,35,14,6,6,4,6,25,140,0,10,0,3,0
+37,vulpix,1,,15,3,8,3,6,190,70,0,20,0,2,0
+38,ninetales,1,37,15,10,8,3,6,75,70,0,20,0,2,0
+39,jigglypuff,1,174,16,6,12,3,6,170,70,0,10,0,3,0
+40,wigglytuff,1,39,16,6,12,3,6,50,70,0,10,0,3,0
+41,zubat,1,,17,7,9,1,4,255,70,0,15,1,2,0
+42,golbat,1,41,17,7,9,1,4,90,70,0,15,1,2,0
+43,oddish,1,,18,2,7,3,4,255,70,0,20,0,4,0
+44,gloom,1,43,18,2,12,3,4,120,70,0,20,1,4,0
+45,vileplume,1,44,18,8,12,3,4,45,70,0,20,1,4,0
+46,paras,1,,19,8,14,2,4,190,70,0,20,0,2,0
+47,parasect,1,46,19,8,14,2,4,75,70,0,20,0,2,0
+48,venonat,1,,20,7,12,2,4,190,70,0,20,0,2,0
+49,venomoth,1,48,20,7,13,2,4,75,70,0,20,0,2,0
+50,diglett,1,,21,3,5,1,4,255,70,0,20,0,2,0
+51,dugtrio,1,50,21,3,11,1,4,50,70,0,20,0,2,0
+52,meowth,1,,22,10,8,8,4,255,70,0,20,0,2,0
+53,persian,1,52,22,10,8,8,4,90,70,0,20,0,2,0
+54,psyduck,1,,23,10,6,9,4,190,70,0,20,0,2,0
+55,golduck,1,54,23,2,6,9,4,75,70,0,20,0,2,0
+56,mankey,1,,24,3,6,4,4,190,70,0,20,0,2,0
+57,primeape,1,56,24,3,6,4,4,75,70,0,20,0,2,0
+58,growlithe,1,,25,3,8,3,2,190,70,0,20,0,1,0
+59,arcanine,1,58,25,3,8,3,2,75,70,0,20,0,1,0
+60,poliwag,1,,26,2,7,9,4,255,70,0,20,0,4,0
+61,poliwhirl,1,60,26,2,12,9,4,120,70,0,20,0,4,0
+62,poliwrath,1,61,26,2,12,9,4,45,70,0,20,0,4,0
+63,abra,1,,27,3,6,8,2,200,70,0,20,0,4,0
+64,kadabra,1,63,27,3,6,8,2,100,70,0,20,1,4,0
+65,alakazam,1,64,27,3,12,8,2,50,70,0,20,1,4,0
+66,machop,1,,28,4,6,4,2,180,70,0,20,0,4,0
+67,machoke,1,66,28,4,12,4,2,90,70,0,20,0,4,0
+68,machamp,1,67,28,4,12,4,2,45,70,0,20,0,4,0
+69,bellsprout,1,,29,5,12,2,4,255,70,0,20,0,4,0
+70,weepinbell,1,69,29,5,5,2,4,120,70,0,20,0,4,0
+71,victreebel,1,70,29,5,5,2,4,45,70,0,20,0,4,0
+72,tentacool,1,,30,2,10,7,4,190,70,0,20,0,1,0
+73,tentacruel,1,72,30,2,10,7,4,60,70,0,20,0,1,0
+74,geodude,1,,31,3,4,4,4,255,70,0,15,0,4,0
+75,graveler,1,74,31,3,12,4,4,120,70,0,15,0,4,0
+76,golem,1,75,31,3,12,4,4,45,70,0,15,0,4,0
+77,ponyta,1,,32,10,8,3,4,190,70,0,20,0,2,0
+78,rapidash,1,77,32,10,8,3,4,60,70,0,20,0,2,0
+79,slowpoke,1,,33,6,8,9,4,190,70,0,20,0,2,0
+80,slowbro,1,79,33,6,6,9,4,75,70,0,20,0,2,0
+81,magnemite,1,,34,4,4,6,-1,190,70,0,20,0,2,0
+82,magneton,1,81,34,4,11,6,-1,60,70,0,20,0,2,0
+83,farfetchd,1,,35,3,9,3,4,45,70,0,20,0,2,0
+84,doduo,1,,36,3,7,3,4,190,70,0,20,1,2,0
+85,dodrio,1,84,36,3,7,3,4,45,70,0,20,1,2,0
+86,seel,1,,37,9,3,7,4,190,70,0,20,0,2,0
+87,dewgong,1,86,37,9,3,7,4,75,70,0,20,0,2,0
+88,grimer,1,,38,7,4,8,4,190,70,0,20,0,2,0
+89,muk,1,88,38,7,4,8,4,75,70,0,20,0,2,0
+90,shellder,1,,39,7,1,7,4,190,70,0,20,0,1,0
+91,cloyster,1,90,39,7,1,7,4,60,70,0,20,0,1,0
+92,gastly,1,,40,7,1,1,4,190,70,0,20,0,4,0
+93,haunter,1,92,40,7,4,1,4,90,70,0,20,0,4,0
+94,gengar,1,93,40,7,6,1,4,45,70,0,20,0,4,0
+95,onix,1,,41,4,2,1,4,45,70,0,25,0,2,0
+96,drowzee,1,,42,10,12,3,4,190,70,0,20,0,2,0
+97,hypno,1,96,42,10,12,3,4,75,70,0,20,1,2,0
+98,krabby,1,,43,8,14,9,4,225,70,0,20,0,2,0
+99,kingler,1,98,43,8,14,9,4,60,70,0,20,0,2,0
+100,voltorb,1,,44,8,1,8,-1,190,70,0,20,0,2,0
+101,electrode,1,100,44,8,1,8,-1,60,70,0,20,0,2,0
+102,exeggcute,1,,45,6,11,2,4,90,70,0,20,0,1,0
+103,exeggutor,1,102,45,10,7,2,4,45,70,0,20,0,1,0
+104,cubone,1,,46,3,6,4,4,190,70,0,20,0,2,0
+105,marowak,1,104,46,3,6,4,4,75,70,0,20,0,2,0
+106,hitmonlee,1,236,47,3,12,8,0,45,70,0,25,0,2,0
+107,hitmonchan,1,236,47,3,12,8,0,45,70,0,25,0,2,0
+108,lickitung,1,,48,6,6,3,4,45,70,0,20,0,2,0
+109,koffing,1,,49,7,1,8,4,190,70,0,20,0,2,0
+110,weezing,1,109,49,7,11,8,4,60,70,0,20,0,2,0
+111,rhyhorn,1,,50,4,8,6,4,120,70,0,20,1,1,0
+112,rhydon,1,111,50,4,6,6,4,60,70,0,20,1,1,0
+113,chansey,1,440,51,6,6,8,8,30,140,0,40,0,3,0
+114,tangela,1,,52,2,7,3,4,45,70,0,20,0,2,0
+115,kangaskhan,1,,53,3,6,3,8,45,70,0,20,0,2,0
+116,horsea,1,,54,2,5,7,4,225,70,0,20,0,2,0
+117,seadra,1,116,54,2,5,7,4,75,70,0,20,0,2,0
+118,goldeen,1,,55,8,3,9,4,225,70,0,20,1,2,0
+119,seaking,1,118,55,8,3,9,4,60,70,0,20,1,2,0
+120,staryu,1,,56,3,5,7,-1,225,70,0,20,0,1,0
+121,starmie,1,120,56,7,5,7,-1,60,70,0,20,0,1,0
+122,mr-mime,1,439,57,6,12,8,4,45,70,0,25,0,2,0
+123,scyther,1,,58,5,13,3,4,45,70,0,25,1,2,0
+124,jynx,1,238,59,8,12,8,8,45,70,0,25,0,2,0
+125,electabuzz,1,239,60,10,6,3,2,45,70,0,25,0,2,0
+126,magmar,1,240,61,8,6,4,2,45,70,0,25,0,2,0
+127,pinsir,1,,62,3,12,2,4,45,70,0,25,0,1,0
+128,tauros,1,,63,3,8,3,0,45,70,0,20,0,1,0
+129,magikarp,1,,64,8,3,9,4,255,70,0,5,1,1,0
+130,gyarados,1,129,64,2,2,9,4,45,70,0,5,1,1,0
+131,lapras,1,,65,2,3,7,4,45,70,0,40,0,1,0
+132,ditto,1,,66,7,1,8,-1,35,70,0,20,0,2,0
+133,eevee,1,,67,3,8,8,1,45,70,0,35,0,2,0
+134,vaporeon,1,133,67,2,8,8,1,45,70,0,35,0,2,0
+135,jolteon,1,133,67,10,8,8,1,45,70,0,35,0,2,0
+136,flareon,1,133,67,8,8,8,1,45,70,0,35,0,2,0
+137,porygon,1,,68,6,7,8,-1,45,70,0,20,0,2,0
+138,omanyte,1,,69,2,10,7,1,45,70,0,30,0,2,0
+139,omastar,1,138,69,2,10,7,1,45,70,0,30,0,2,0
+140,kabuto,1,,70,3,14,7,1,45,70,0,30,0,2,0
+141,kabutops,1,140,70,3,6,7,1,45,70,0,30,0,2,0
+142,aerodactyl,1,,71,7,9,4,1,45,70,0,35,0,1,0
+143,snorlax,1,446,72,1,12,4,1,25,70,0,40,0,1,0
+144,articuno,1,,73,2,9,5,-1,3,35,0,80,0,1,0
+145,zapdos,1,,74,10,9,5,-1,3,35,0,80,0,1,0
+146,moltres,1,,75,10,9,5,-1,3,35,0,80,0,1,0
+147,dratini,1,,76,2,2,9,4,45,35,0,40,0,1,0
+148,dragonair,1,147,76,2,2,9,4,45,35,0,40,0,1,0
+149,dragonite,1,148,76,3,6,9,4,45,35,0,40,0,1,0
+150,mewtwo,1,,77,7,6,5,-1,3,0,0,120,0,1,0
+151,mew,1,,78,6,6,5,-1,45,100,0,120,0,4,0
+152,chikorita,2,,79,5,8,3,1,45,70,0,20,0,4,0
+153,bayleef,2,152,79,5,8,3,1,45,70,0,20,0,4,0
+154,meganium,2,153,79,5,8,3,1,45,70,0,20,1,4,0
+155,cyndaquil,2,,80,10,12,3,1,45,70,0,20,0,4,0
+156,quilava,2,155,80,10,8,3,1,45,70,0,20,0,4,0
+157,typhlosion,2,156,80,10,8,3,1,45,70,0,20,0,4,0
+158,totodile,2,,81,2,6,9,1,45,70,0,20,0,4,0
+159,croconaw,2,158,81,2,6,9,1,45,70,0,20,0,4,0
+160,feraligatr,2,159,81,2,6,9,1,45,70,0,20,0,4,0
+161,sentret,2,,82,3,8,3,4,255,70,0,15,0,2,0
+162,furret,2,161,82,3,8,3,4,90,70,0,15,0,2,0
+163,hoothoot,2,,83,3,9,2,4,255,70,0,15,0,2,0
+164,noctowl,2,163,83,3,9,2,4,90,70,0,15,0,2,0
+165,ledyba,2,,84,8,9,2,4,255,70,0,15,1,3,0
+166,ledian,2,165,84,8,9,2,4,90,70,0,15,1,3,0
+167,spinarak,2,,85,5,14,2,4,255,70,0,15,0,3,0
+168,ariados,2,167,85,8,14,2,4,90,70,0,15,0,3,0
+169,crobat,2,42,17,7,13,1,4,90,70,0,15,0,2,0
+170,chinchou,2,,86,2,3,7,4,190,70,0,20,0,1,0
+171,lanturn,2,170,86,2,3,7,4,75,70,0,20,0,1,0
+172,pichu,2,,10,10,8,2,4,190,70,1,10,0,2,0
+173,cleffa,2,,14,6,6,4,6,150,140,1,10,0,3,0
+174,igglybuff,2,,16,6,12,3,6,170,70,1,10,0,3,0
+175,togepi,2,,87,9,12,2,1,190,70,1,10,0,3,0
+176,togetic,2,175,87,9,12,2,1,75,70,0,10,0,3,0
+177,natu,2,,88,5,9,2,4,190,70,0,20,0,2,0
+178,xatu,2,177,88,5,9,2,4,75,70,0,20,1,2,0
+179,mareep,2,,89,9,8,3,4,235,70,0,20,0,4,0
+180,flaaffy,2,179,89,6,6,3,4,120,70,0,20,0,4,0
+181,ampharos,2,180,89,10,6,3,4,45,70,0,20,0,4,0
+182,bellossom,2,44,18,5,12,3,4,45,70,0,20,0,4,0
+183,marill,2,298,90,2,6,9,4,190,70,0,10,0,3,0
+184,azumarill,2,183,90,2,6,9,4,75,70,0,10,0,3,0
+185,sudowoodo,2,438,91,3,12,2,4,65,70,0,20,1,2,0
+186,politoed,2,61,26,5,12,9,4,45,70,0,20,1,4,0
+187,hoppip,2,,92,6,6,3,4,255,70,0,20,0,4,0
+188,skiploom,2,187,92,5,6,3,4,120,70,0,20,0,4,0
+189,jumpluff,2,188,92,2,6,3,4,45,70,0,20,0,4,0
+190,aipom,2,,93,7,6,2,4,45,70,0,20,1,3,0
+191,sunkern,2,,94,10,1,3,4,235,70,0,20,0,4,0
+192,sunflora,2,191,94,10,12,3,4,120,70,0,20,0,4,0
+193,yanma,2,,95,8,13,2,4,75,70,0,20,0,2,0
+194,wooper,2,,96,2,7,9,4,255,70,0,20,1,2,0
+195,quagsire,2,194,96,2,6,9,4,90,70,0,20,1,2,0
+196,espeon,2,133,67,7,8,8,1,45,70,0,35,0,2,0
+197,umbreon,2,133,67,1,8,8,1,45,35,0,35,0,2,0
+198,murkrow,2,,97,1,9,2,4,30,35,0,20,1,4,0
+199,slowking,2,79,33,6,6,9,4,70,70,0,20,0,2,0
+200,misdreavus,2,,98,4,1,1,4,45,35,0,25,0,3,0
+201,unown,2,,99,1,1,5,-1,225,70,0,40,0,2,0
+202,wobbuffet,2,360,100,2,5,1,4,45,70,0,20,1,2,0
+203,girafarig,2,,101,10,8,3,4,60,70,0,20,1,2,0
+204,pineco,2,,102,4,1,2,4,190,70,0,20,0,2,0
+205,forretress,2,204,102,7,1,2,4,75,70,0,20,0,2,0
+206,dunsparce,2,,103,10,2,1,4,190,70,0,20,0,2,0
+207,gligar,2,,104,7,9,4,4,60,70,0,20,1,4,0
+208,steelix,2,95,41,4,2,1,4,25,70,0,25,1,2,0
+209,snubbull,2,,105,6,12,8,6,190,70,0,20,0,3,0
+210,granbull,2,209,105,7,6,8,6,75,70,0,20,0,3,0
+211,qwilfish,2,,106,4,3,7,4,45,70,0,20,0,2,0
+212,scizor,2,123,58,8,13,3,4,25,70,0,25,1,2,0
+213,shuckle,2,,107,10,14,4,4,190,70,0,20,0,4,0
+214,heracross,2,,108,2,12,2,4,45,70,0,25,1,1,0
+215,sneasel,2,,109,1,6,2,4,60,35,0,20,1,4,0
+216,teddiursa,2,,110,3,6,4,4,120,70,0,20,0,2,0
+217,ursaring,2,216,110,3,6,4,4,60,70,0,20,1,2,0
+218,slugma,2,,111,8,2,4,4,190,70,0,20,0,2,0
+219,magcargo,2,218,111,8,2,4,4,75,70,0,20,0,2,0
+220,swinub,2,,112,3,8,1,4,225,70,0,20,0,1,0
+221,piloswine,2,220,112,3,8,1,4,75,70,0,20,1,1,0
+222,corsola,2,,113,6,14,7,6,60,70,0,20,0,3,0
+223,remoraid,2,,114,4,3,7,4,190,70,0,20,0,2,0
+224,octillery,2,223,114,8,10,7,4,75,70,0,20,1,2,0
+225,delibird,2,,115,8,9,4,4,45,70,0,20,0,3,0
+226,mantine,2,458,116,7,9,7,4,25,70,0,25,0,1,0
+227,skarmory,2,,117,4,9,6,4,25,70,0,25,0,1,0
+228,houndour,2,,118,1,8,6,4,120,35,0,20,0,1,0
+229,houndoom,2,228,118,1,8,6,4,45,35,0,20,1,1,0
+230,kingdra,2,117,54,2,5,7,4,45,70,0,20,0,2,0
+231,phanpy,2,,119,2,8,6,4,120,70,0,20,0,2,0
+232,donphan,2,231,119,4,8,6,4,60,70,0,20,1,2,0
+233,porygon2,2,137,68,8,7,8,-1,45,70,0,20,0,2,0
+234,stantler,2,,120,3,8,2,4,45,70,0,20,0,1,0
+235,smeargle,2,,121,9,6,8,4,45,70,0,20,0,3,0
+236,tyrogue,2,,47,7,12,8,0,75,70,1,25,0,2,0
+237,hitmontop,2,236,47,3,6,8,0,45,70,0,25,0,2,0
+238,smoochum,2,,59,6,12,8,8,45,70,1,25,0,2,0
+239,elekid,2,,60,10,12,3,2,45,70,1,25,0,2,0
+240,magby,2,,61,8,6,4,2,45,70,1,25,0,2,0
+241,miltank,2,,122,6,6,3,8,45,70,0,20,0,1,0
+242,blissey,2,113,51,6,12,8,8,30,140,0,40,0,3,0
+243,raikou,2,,123,10,8,3,-1,3,35,0,80,0,1,0
+244,entei,2,,124,3,8,3,-1,3,35,0,80,0,1,0
+245,suicune,2,,125,2,8,3,-1,3,35,0,80,0,1,0
+246,larvitar,2,,126,5,6,4,4,45,35,0,40,0,1,0
+247,pupitar,2,246,126,4,2,4,4,45,35,0,40,0,1,0
+248,tyranitar,2,247,126,5,6,4,4,45,35,0,40,0,1,0
+249,lugia,2,,127,9,9,5,-1,3,0,0,120,0,1,0
+250,ho-oh,2,,128,8,9,5,-1,3,0,0,120,0,1,0
+251,celebi,2,,129,5,12,2,-1,45,100,0,120,0,4,0
+252,treecko,3,,130,5,6,2,1,45,70,0,20,0,4,0
+253,grovyle,3,252,130,5,6,2,1,45,70,0,20,0,4,0
+254,sceptile,3,253,130,5,6,2,1,45,70,0,20,0,4,0
+255,torchic,3,,131,8,7,3,1,45,70,0,20,1,4,0
+256,combusken,3,255,131,8,6,3,1,45,70,0,20,1,4,0
+257,blaziken,3,256,131,8,6,3,1,45,70,0,20,1,4,0
+258,mudkip,3,,132,2,8,9,1,45,70,0,20,0,4,0
+259,marshtomp,3,258,132,2,6,9,1,45,70,0,20,0,4,0
+260,swampert,3,259,132,2,6,9,1,45,70,0,20,0,4,0
+261,poochyena,3,,133,4,8,3,4,255,70,0,15,0,2,0
+262,mightyena,3,261,133,4,8,3,4,127,70,0,15,0,2,0
+263,zigzagoon,3,,134,3,8,3,4,255,70,0,15,0,2,0
+264,linoone,3,263,134,9,8,3,4,90,70,0,15,0,2,0
+265,wurmple,3,,135,8,2,2,4,255,70,0,15,0,2,0
+266,silcoon,3,265,135,9,1,2,4,120,70,0,15,0,2,0
+267,beautifly,3,266,135,10,13,2,4,45,70,0,15,1,2,0
+268,cascoon,3,265,135,7,1,2,4,120,70,0,15,0,2,0
+269,dustox,3,268,135,5,13,2,4,45,70,0,15,1,2,0
+270,lotad,3,,136,5,14,9,4,255,70,0,15,0,4,0
+271,lombre,3,270,136,5,12,9,4,120,70,0,15,0,4,0
+272,ludicolo,3,271,136,5,12,9,4,45,70,0,15,1,4,0
+273,seedot,3,,137,3,7,2,4,255,70,0,15,0,4,0
+274,nuzleaf,3,273,137,3,12,2,4,120,70,0,15,1,4,0
+275,shiftry,3,274,137,3,12,2,4,45,70,0,15,1,4,0
+276,taillow,3,,138,2,9,3,4,200,70,0,15,0,4,0
+277,swellow,3,276,138,2,9,3,4,45,70,0,15,0,4,0
+278,wingull,3,,139,9,9,7,4,190,70,0,20,0,2,0
+279,pelipper,3,278,139,10,9,7,4,45,70,0,20,0,2,0
+280,ralts,3,,140,9,12,8,4,235,35,0,20,0,1,0
+281,kirlia,3,280,140,9,12,8,4,120,35,0,20,0,1,0
+282,gardevoir,3,281,140,9,12,8,4,45,35,0,20,0,1,0
+283,surskit,3,,141,2,14,9,4,200,70,0,15,0,2,0
+284,masquerain,3,283,141,2,13,9,4,75,70,0,15,0,2,0
+285,shroomish,3,,142,3,7,2,4,255,70,0,15,0,6,0
+286,breloom,3,285,142,5,6,2,4,90,70,0,15,0,6,0
+287,slakoth,3,,143,3,8,2,4,255,70,0,15,0,1,0
+288,vigoroth,3,287,143,9,6,2,4,120,70,0,15,0,1,0
+289,slaking,3,288,143,3,12,2,4,45,70,0,15,0,1,0
+290,nincada,3,,144,4,14,2,4,255,70,0,15,0,5,0
+291,ninjask,3,290,144,10,13,2,4,120,70,0,15,0,5,0
+292,shedinja,3,290,144,3,5,2,-1,45,70,0,15,0,5,0
+293,whismur,3,,145,6,6,1,4,190,70,0,20,0,4,0
+294,loudred,3,293,145,2,6,1,4,120,70,0,20,0,4,0
+295,exploud,3,294,145,2,6,1,4,45,70,0,20,0,4,0
+296,makuhita,3,,146,10,12,4,2,180,70,0,20,0,6,0
+297,hariyama,3,296,146,3,12,4,2,200,70,0,20,0,6,0
+298,azurill,3,,90,2,7,9,6,150,70,1,10,0,3,0
+299,nosepass,3,,147,4,12,1,4,255,70,0,20,0,2,0
+300,skitty,3,,148,6,8,2,6,255,70,0,15,0,3,0
+301,delcatty,3,300,148,7,8,2,6,60,70,0,15,0,3,0
+302,sableye,3,,149,7,12,1,4,45,35,0,25,0,4,0
+303,mawile,3,,150,1,12,1,4,45,70,0,20,0,3,0
+304,aron,3,,151,4,8,4,4,180,35,0,35,0,1,0
+305,lairon,3,304,151,4,8,4,4,90,35,0,35,0,1,0
+306,aggron,3,305,151,4,6,4,4,45,35,0,35,0,1,0
+307,meditite,3,,152,2,12,4,4,180,70,0,20,1,2,0
+308,medicham,3,307,152,8,12,4,4,90,70,0,20,1,2,0
+309,electrike,3,,153,5,8,3,4,120,70,0,20,0,1,0
+310,manectric,3,309,153,10,8,3,4,45,70,0,20,0,1,0
+311,plusle,3,,154,10,6,3,4,200,70,0,20,0,2,0
+312,minun,3,,155,10,6,3,4,200,70,0,20,0,2,0
+313,volbeat,3,,156,4,6,2,0,150,70,0,15,0,5,0
+314,illumise,3,,157,7,12,2,8,150,70,0,15,0,6,0
+315,roselia,3,406,158,5,12,3,4,150,70,0,20,1,4,0
+316,gulpin,3,,159,5,4,3,4,225,70,0,20,1,6,0
+317,swalot,3,316,159,7,4,3,4,75,70,0,20,1,6,0
+318,carvanha,3,,160,8,3,7,4,225,35,0,20,0,1,0
+319,sharpedo,3,318,160,2,3,7,4,60,35,0,20,0,1,0
+320,wailmer,3,,161,2,3,7,4,125,70,0,40,0,6,0
+321,wailord,3,320,161,2,3,7,4,60,70,0,40,0,6,0
+322,numel,3,,162,10,8,4,4,255,70,0,20,1,2,0
+323,camerupt,3,322,162,8,8,4,4,150,70,0,20,1,2,0
+324,torkoal,3,,163,3,8,4,4,90,70,0,20,0,2,0
+325,spoink,3,,164,1,4,4,4,255,70,0,20,0,3,0
+326,grumpig,3,325,164,7,6,4,4,60,70,0,20,0,3,0
+327,spinda,3,,165,3,6,4,4,255,70,0,15,0,3,0
+328,trapinch,3,,166,3,14,6,4,255,70,0,20,0,4,0
+329,vibrava,3,328,166,5,13,6,4,120,70,0,20,0,4,0
+330,flygon,3,329,166,5,9,6,4,45,70,0,20,0,4,0
+331,cacnea,3,,167,5,12,6,4,190,35,0,20,0,4,0
+332,cacturne,3,331,167,5,12,6,4,60,35,0,20,1,4,0
+333,swablu,3,,168,2,9,2,4,255,70,0,20,0,5,0
+334,altaria,3,333,168,2,9,2,4,45,70,0,20,0,5,0
+335,zangoose,3,,169,9,6,3,4,90,70,0,20,0,5,0
+336,seviper,3,,170,1,2,3,4,90,70,0,20,0,6,0
+337,lunatone,3,,171,10,1,1,-1,45,70,0,25,0,3,0
+338,solrock,3,,172,8,1,1,-1,45,70,0,25,0,3,0
+339,barboach,3,,173,4,3,9,4,190,70,0,20,0,2,0
+340,whiscash,3,339,173,2,3,9,4,75,70,0,20,0,2,0
+341,corphish,3,,174,8,14,9,4,205,70,0,15,0,6,0
+342,crawdaunt,3,341,174,8,14,9,4,155,70,0,15,0,6,0
+343,baltoy,3,,175,3,4,6,-1,255,70,0,20,0,2,0
+344,claydol,3,343,175,1,4,6,-1,90,70,0,20,0,2,0
+345,lileep,3,,176,7,5,7,1,45,70,0,30,0,5,0
+346,cradily,3,345,176,5,5,7,1,45,70,0,30,0,5,0
+347,anorith,3,,177,4,14,9,1,45,70,0,30,0,5,0
+348,armaldo,3,347,177,4,6,9,1,45,70,0,30,0,5,0
+349,feebas,3,,178,3,3,9,4,255,70,0,20,0,5,0
+350,milotic,3,349,178,6,2,9,4,60,70,0,20,1,5,0
+351,castform,3,,179,9,1,3,4,45,70,0,25,0,2,1
+352,kecleon,3,,180,5,6,2,4,200,70,0,20,0,4,0
+353,shuppet,3,,181,1,1,8,4,225,35,0,25,0,3,0
+354,banette,3,353,181,1,6,8,4,45,35,0,25,0,3,0
+355,duskull,3,,182,1,4,2,4,190,35,0,25,0,3,0
+356,dusclops,3,355,182,1,12,2,4,90,35,0,25,0,3,0
+357,tropius,3,,183,5,8,2,4,200,70,0,25,0,1,0
+358,chimecho,3,433,184,2,4,3,4,45,70,0,25,0,3,0
+359,absol,3,,185,9,8,4,4,30,35,0,25,0,4,0
+360,wynaut,3,,100,2,6,1,4,125,70,1,20,0,2,0
+361,snorunt,3,,186,4,12,1,4,190,70,0,20,0,2,0
+362,glalie,3,361,186,4,1,1,4,75,70,0,20,0,2,0
+363,spheal,3,,187,2,3,7,4,255,70,0,20,0,4,0
+364,sealeo,3,363,187,2,3,7,4,120,70,0,20,0,4,0
+365,walrein,3,364,187,2,8,7,4,45,70,0,20,0,4,0
+366,clamperl,3,,188,2,1,7,4,255,70,0,20,0,5,0
+367,huntail,3,366,188,2,2,7,4,60,70,0,20,0,5,0
+368,gorebyss,3,366,188,6,2,7,4,60,70,0,20,0,5,0
+369,relicanth,3,,189,4,3,7,1,25,70,0,40,1,1,0
+370,luvdisc,3,,190,6,3,7,6,225,70,0,20,0,3,0
+371,bagon,3,,191,2,12,6,4,45,35,0,40,0,1,0
+372,shelgon,3,371,191,9,8,6,4,45,35,0,40,0,1,0
+373,salamence,3,372,191,2,8,6,4,45,35,0,40,0,1,0
+374,beldum,3,,192,2,5,6,-1,3,35,0,40,0,1,0
+375,metang,3,374,192,2,4,6,-1,3,35,0,40,0,1,0
+376,metagross,3,375,192,2,11,6,-1,3,35,0,40,0,1,0
+377,regirock,3,,193,3,12,1,-1,3,35,0,80,0,1,0
+378,regice,3,,194,2,12,1,-1,3,35,0,80,0,1,0
+379,registeel,3,,195,4,12,1,-1,3,35,0,80,0,1,0
+380,latias,3,,196,8,9,9,8,3,90,0,120,0,1,0
+381,latios,3,,197,2,9,9,0,3,90,0,120,0,1,0
+382,kyogre,3,,198,2,3,7,-1,5,0,0,120,0,1,0
+383,groudon,3,,199,8,6,6,-1,5,0,0,120,0,1,0
+384,rayquaza,3,,200,5,2,5,-1,3,0,0,120,0,1,0
+385,jirachi,3,,201,10,12,4,-1,3,100,0,120,0,1,0
+386,deoxys,3,,202,8,12,5,-1,3,0,0,120,0,1,1
+387,turtwig,4,,203,5,8,,1,45,70,0,20,0,4,0
+388,grotle,4,387,203,5,8,,1,45,70,0,20,0,4,0
+389,torterra,4,388,203,5,8,,1,45,70,0,20,0,4,0
+390,chimchar,4,,204,3,6,,1,45,70,0,20,0,4,0
+391,monferno,4,390,204,3,6,,1,45,70,0,20,0,4,0
+392,infernape,4,391,204,3,6,,1,45,70,0,20,0,4,0
+393,piplup,4,,205,2,12,,1,45,70,0,20,0,4,0
+394,prinplup,4,393,205,2,6,,1,45,70,0,20,0,4,0
+395,empoleon,4,394,205,2,6,,1,45,70,0,20,0,4,0
+396,starly,4,,206,3,9,,4,255,70,0,15,1,4,0
+397,staravia,4,396,206,3,9,,4,120,70,0,15,1,4,0
+398,staraptor,4,397,206,3,9,,4,45,70,0,15,1,4,0
+399,bidoof,4,,207,3,8,,4,255,70,0,15,1,2,0
+400,bibarel,4,399,207,3,6,,4,127,70,0,15,1,2,0
+401,kricketot,4,,208,8,12,,4,255,70,0,15,1,4,0
+402,kricketune,4,401,208,8,13,,4,45,70,0,15,1,4,0
+403,shinx,4,,209,2,8,,4,235,70,0,20,1,4,0
+404,luxio,4,403,209,2,8,,4,120,100,0,20,1,4,0
+405,luxray,4,404,209,2,8,,4,45,70,0,20,1,4,0
+406,budew,4,,158,5,12,,4,255,70,1,20,0,4,0
+407,roserade,4,315,158,5,12,,4,75,70,0,20,1,4,0
+408,cranidos,4,,211,2,6,,1,45,70,0,30,0,5,0
+409,rampardos,4,408,211,2,6,,1,45,70,0,30,0,5,0
+410,shieldon,4,,212,4,8,,1,45,70,0,30,0,5,0
+411,bastiodon,4,410,212,4,8,,1,45,70,0,30,0,5,0
+412,burmy,4,,213,4,2,,4,120,70,0,15,0,2,1
+413,wormadam,4,412,213,4,2,,8,45,70,0,15,0,2,0
+414,mothim,4,412,213,10,13,,0,45,70,0,15,0,2,0
+415,combee,4,,214,10,11,,1,120,70,0,15,1,4,0
+416,vespiquen,4,415,214,10,9,,8,45,70,0,15,0,4,0
+417,pachirisu,4,,215,9,8,,4,200,100,0,10,1,2,0
+418,buizel,4,,216,3,8,,4,190,70,0,20,1,2,0
+419,floatzel,4,418,216,3,8,,4,75,70,0,20,1,2,0
+420,cherubi,4,,217,6,11,,4,190,70,0,20,0,2,0
+421,cherrim,4,420,217,6,7,,4,75,70,0,20,0,2,1
+422,shellos,4,,218,7,14,,4,190,70,0,20,0,2,0
+423,gastrodon,4,422,218,7,14,,4,75,70,0,20,0,2,0
+424,ambipom,4,190,93,7,6,,4,45,100,0,20,1,3,0
+425,drifloon,4,,219,7,4,,4,125,70,0,30,0,6,0
+426,drifblim,4,425,219,7,4,,4,60,70,0,30,0,6,0
+427,buneary,4,,220,3,6,,4,190,0,0,20,0,2,0
+428,lopunny,4,427,220,3,6,,4,60,140,0,20,0,2,0
+429,mismagius,4,200,98,7,1,,4,45,35,0,25,0,3,0
+430,honchkrow,4,198,97,1,9,,4,30,35,0,20,0,4,0
+431,glameow,4,,221,4,8,,6,190,70,0,20,0,3,0
+432,purugly,4,431,221,4,8,,6,75,70,0,20,0,3,0
+433,chingling,4,,184,10,12,,4,120,70,1,25,0,3,0
+434,stunky,4,,223,7,8,,4,225,70,0,20,0,2,0
+435,skuntank,4,434,223,7,8,,4,60,70,0,20,0,2,0
+436,bronzor,4,,224,5,1,,-1,255,70,0,20,0,2,0
+437,bronzong,4,436,224,5,4,,-1,90,70,0,20,0,2,0
+438,bonsly,4,,91,3,7,,4,255,70,1,20,0,2,0
+439,mime-jr,4,,57,6,12,,4,145,70,1,25,0,2,0
+440,happiny,4,,51,6,12,,8,130,140,1,40,0,3,0
+441,chatot,4,,228,1,9,,4,30,35,0,20,0,4,0
+442,spiritomb,4,,229,7,5,,4,100,70,0,30,0,2,0
+443,gible,4,,230,2,6,,4,45,70,0,40,1,1,0
+444,gabite,4,443,230,2,6,,4,45,70,0,40,1,1,0
+445,garchomp,4,444,230,2,6,,4,45,70,0,40,1,1,0
+446,munchlax,4,,72,1,12,,1,50,70,1,40,0,1,0
+447,riolu,4,,232,2,6,,1,75,70,1,25,0,4,0
+448,lucario,4,447,232,2,6,,1,45,70,0,25,0,4,0
+449,hippopotas,4,,233,3,8,,4,140,70,0,30,1,1,0
+450,hippowdon,4,449,233,3,8,,4,60,70,0,30,1,1,0
+451,skorupi,4,,234,7,14,,4,120,70,0,20,0,1,0
+452,drapion,4,451,234,7,14,,4,45,70,0,20,0,1,0
+453,croagunk,4,,235,2,12,,4,140,100,0,10,1,2,0
+454,toxicroak,4,453,235,2,12,,4,75,70,0,20,1,2,0
+455,carnivine,4,,236,5,10,,4,200,70,0,25,0,1,0
+456,finneon,4,,237,2,3,,4,190,70,0,20,1,5,0
+457,lumineon,4,456,237,2,3,,4,75,70,0,20,1,5,0
+458,mantyke,4,,116,2,9,,4,25,70,1,25,0,1,0
+459,snover,4,,239,9,6,,4,120,70,0,20,1,1,0
+460,abomasnow,4,459,239,9,6,,4,60,70,0,20,1,1,0
+461,weavile,4,215,109,1,6,,4,45,35,0,20,1,4,0
+462,magnezone,4,82,34,4,4,,-1,30,70,0,20,0,2,0
+463,lickilicky,4,108,48,6,12,,4,30,70,0,20,0,2,0
+464,rhyperior,4,112,50,4,6,,4,30,70,0,20,1,1,0
+465,tangrowth,4,114,52,2,12,,4,30,70,0,20,1,2,0
+466,electivire,4,125,60,10,6,,2,30,70,0,25,0,2,0
+467,magmortar,4,126,61,8,6,,2,30,70,0,25,0,2,0
+468,togekiss,4,176,87,9,9,,1,30,70,0,10,0,3,0
+469,yanmega,4,193,95,5,13,,4,30,70,0,20,0,2,0
+470,leafeon,4,133,67,5,8,,1,45,35,0,35,0,2,0
+471,glaceon,4,133,67,2,8,,1,45,35,0,35,0,2,0
+472,gliscor,4,207,104,7,9,,4,30,70,0,20,0,4,0
+473,mamoswine,4,221,112,3,8,,4,50,70,0,20,1,1,0
+474,porygon-z,4,233,68,8,4,,-1,30,70,0,20,0,2,0
+475,gallade,4,281,140,9,12,,0,45,35,0,20,0,1,0
+476,probopass,4,299,147,4,11,,4,60,70,0,20,0,2,0
+477,dusknoir,4,356,182,1,4,,4,45,35,0,25,0,3,0
+478,froslass,4,361,186,9,4,,8,75,70,0,20,0,2,0
+479,rotom,4,,240,8,1,,-1,45,70,0,20,0,2,1
+480,uxie,4,,241,10,6,,-1,3,140,0,80,0,1,0
+481,mesprit,4,,242,6,6,,-1,3,140,0,80,0,1,0
+482,azelf,4,,243,2,6,,-1,3,140,0,80,0,1,0
+483,dialga,4,,244,9,8,,-1,30,0,0,120,0,1,0
+484,palkia,4,,245,7,6,,-1,30,0,0,120,0,1,0
+485,heatran,4,,246,3,8,,4,3,100,0,10,0,1,0
+486,regigigas,4,,247,9,12,,-1,3,0,0,120,0,1,0
+487,giratina,4,,248,1,10,,-1,3,0,0,120,0,1,1
+488,cresselia,4,,249,10,14,,8,3,100,0,120,0,1,0
+489,phione,4,,250,2,4,,-1,30,70,0,40,0,1,0
+490,manaphy,4,,250,2,12,,-1,3,70,0,10,0,1,0
+491,darkrai,4,,252,1,12,,-1,3,0,0,120,0,1,0
+492,shaymin,4,,253,5,8,,-1,45,100,0,120,0,4,1
+493,arceus,4,,254,4,8,,-1,3,0,0,120,0,1,1
+494,victini,5,,255,10,12,,-1,3,100,0,120,0,1,0
+495,snivy,5,,256,5,6,,1,45,70,0,20,0,4,0
+496,servine,5,495,256,5,6,,1,45,70,0,20,0,4,0
+497,serperior,5,496,256,5,2,,1,45,70,0,20,0,4,0
+498,tepig,5,,257,8,8,,1,45,70,0,20,0,4,0
+499,pignite,5,498,257,8,6,,1,45,70,0,20,0,4,0
+500,emboar,5,499,257,8,6,,1,45,70,0,20,0,4,0
+501,oshawott,5,,258,2,6,,1,45,70,0,20,0,4,0
+502,dewott,5,501,258,2,6,,1,45,70,0,20,0,4,0
+503,samurott,5,502,258,2,8,,1,45,70,0,20,0,4,0
+504,patrat,5,,259,3,8,,4,255,70,0,15,0,2,0
+505,watchog,5,504,259,3,6,,4,255,70,0,20,0,2,0
+506,lillipup,5,,260,3,8,,4,255,70,0,15,0,4,0
+507,herdier,5,506,260,4,8,,4,120,70,0,15,0,4,0
+508,stoutland,5,507,260,4,8,,4,45,70,0,15,0,4,0
+509,purrloin,5,,261,7,8,,4,255,70,0,20,0,2,0
+510,liepard,5,509,261,7,8,,4,90,70,0,20,0,2,0
+511,pansage,5,,262,5,6,,1,190,70,0,20,0,2,0
+512,simisage,5,511,262,5,6,,1,75,70,0,20,0,2,0
+513,pansear,5,,263,8,6,,1,190,70,0,20,0,2,0
+514,simisear,5,513,263,8,6,,1,75,70,0,20,0,2,0
+515,panpour,5,,264,2,6,,1,190,70,0,20,0,2,0
+516,simipour,5,515,264,2,6,,1,75,70,0,20,0,2,0
+517,munna,5,,265,6,8,,4,190,70,0,10,0,3,0
+518,musharna,5,517,265,6,12,,4,75,70,0,10,0,3,0
+519,pidove,5,,266,4,9,,4,255,70,0,15,0,4,0
+520,tranquill,5,519,266,4,9,,4,120,70,0,15,0,4,0
+521,unfezant,5,520,266,4,9,,4,45,70,0,15,1,4,0
+522,blitzle,5,,267,1,8,,4,190,70,0,20,0,2,0
+523,zebstrika,5,522,267,1,8,,4,75,70,0,20,0,2,0
+524,roggenrola,5,,268,2,7,,4,255,70,0,15,0,4,0
+525,boldore,5,524,268,2,10,,4,120,70,0,15,0,4,0
+526,gigalith,5,525,268,2,10,,4,45,70,0,15,0,4,0
+527,woobat,5,,269,2,9,,4,190,70,0,15,0,2,0
+528,swoobat,5,527,269,2,9,,4,45,70,0,15,0,2,0
+529,drilbur,5,,270,4,6,,4,120,70,0,20,0,2,0
+530,excadrill,5,529,270,4,12,,4,60,70,0,20,0,2,0
+531,audino,5,,271,6,6,,4,255,70,0,20,0,3,0
+532,timburr,5,,272,4,12,,2,180,70,0,20,0,4,0
+533,gurdurr,5,532,272,4,12,,2,90,70,0,20,0,4,0
+534,conkeldurr,5,533,272,3,12,,2,45,70,0,20,0,4,0
+535,tympole,5,,273,2,3,,4,255,70,0,20,0,4,0
+536,palpitoad,5,535,273,2,6,,4,120,70,0,20,0,4,0
+537,seismitoad,5,536,273,2,12,,4,45,70,0,20,0,4,0
+538,throh,5,,274,8,12,,0,45,70,0,20,0,2,0
+539,sawk,5,,275,2,12,,0,45,70,0,20,0,2,0
+540,sewaddle,5,,276,10,14,,4,255,70,0,15,0,4,0
+541,swadloon,5,540,276,5,4,,4,120,70,0,15,0,4,0
+542,leavanny,5,541,276,10,12,,4,45,70,0,15,0,4,0
+543,venipede,5,,277,8,14,,4,255,70,0,15,0,4,0
+544,whirlipede,5,543,277,4,1,,4,120,70,0,15,0,4,0
+545,scolipede,5,544,277,8,14,,4,45,70,0,20,0,4,0
+546,cottonee,5,,278,5,1,,4,190,70,0,20,0,2,0
+547,whimsicott,5,546,278,5,12,,4,75,70,0,20,0,2,0
+548,petilil,5,,279,5,5,,8,190,70,0,20,0,2,0
+549,lilligant,5,548,279,5,5,,8,75,70,0,20,0,2,0
+550,basculin,5,,280,5,3,,4,25,70,0,40,0,2,0
+551,sandile,5,,281,3,8,,4,180,70,0,20,0,4,0
+552,krokorok,5,551,281,3,8,,4,90,70,0,20,0,4,0
+553,krookodile,5,552,281,8,6,,4,45,70,0,20,0,4,0
+554,darumaka,5,,282,8,12,,4,120,70,0,20,0,4,0
+555,darmanitan,5,554,282,8,8,,4,60,70,0,20,0,4,1
+556,maractus,5,,283,5,5,,4,255,70,0,20,0,2,0
+557,dwebble,5,,284,8,14,,4,190,70,0,20,0,2,0
+558,crustle,5,557,284,8,14,,4,75,70,0,20,0,2,0
+559,scraggy,5,,285,10,6,,4,180,35,0,15,0,2,0
+560,scrafty,5,559,285,8,6,,4,90,70,0,15,0,2,0
+561,sigilyph,5,,286,1,9,,4,45,70,0,20,0,2,0
+562,yamask,5,,287,1,4,,4,190,70,0,25,0,2,0
+563,cofagrigus,5,562,287,10,5,,4,90,70,0,25,0,2,0
+564,tirtouga,5,,288,2,8,,1,45,70,0,30,0,2,0
+565,carracosta,5,564,288,2,6,,1,45,70,0,30,0,2,0
+566,archen,5,,289,10,9,,1,45,70,0,30,0,2,0
+567,archeops,5,566,289,10,9,,1,45,70,0,30,0,2,0
+568,trubbish,5,,290,5,12,,4,190,70,0,20,0,2,0
+569,garbodor,5,568,290,5,12,,4,60,70,0,20,0,2,0
+570,zorua,5,,291,4,8,,1,75,70,0,25,0,4,0
+571,zoroark,5,570,291,4,6,,1,45,70,0,20,0,4,0
+572,minccino,5,,292,4,8,,6,255,70,0,15,0,3,0
+573,cinccino,5,572,292,4,8,,6,60,70,0,15,0,3,0
+574,gothita,5,,293,7,12,,6,200,70,0,20,0,4,0
+575,gothorita,5,574,293,7,12,,6,100,70,0,20,0,4,0
+576,gothitelle,5,575,293,7,12,,6,50,70,0,20,0,4,0
+577,solosis,5,,294,5,1,,4,200,70,0,20,0,4,0
+578,duosion,5,577,294,5,1,,4,100,70,0,20,0,4,0
+579,reuniclus,5,578,294,5,4,,4,50,70,0,20,0,4,0
+580,ducklett,5,,295,2,9,,4,190,70,0,20,0,2,0
+581,swanna,5,580,295,9,9,,4,45,70,0,20,0,2,0
+582,vanillite,5,,296,9,5,,4,255,70,0,20,0,1,0
+583,vanillish,5,582,296,9,5,,4,120,70,0,20,0,1,0
+584,vanilluxe,5,583,296,9,11,,4,45,70,0,20,0,1,0
+585,deerling,5,,297,10,8,,4,190,70,0,20,0,2,1
+586,sawsbuck,5,585,297,3,8,,4,75,70,0,20,0,2,1
+587,emolga,5,,298,9,8,,4,200,70,0,20,0,2,0
+588,karrablast,5,,299,2,12,,4,200,70,0,15,0,2,0
+589,escavalier,5,588,299,4,4,,4,75,70,0,15,0,2,0
+590,foongus,5,,300,9,4,,4,190,70,0,20,0,2,0
+591,amoonguss,5,590,300,9,4,,4,75,70,0,20,0,2,0
+592,frillish,5,,301,9,10,,4,190,70,0,20,1,2,0
+593,jellicent,5,592,301,9,10,,4,60,70,0,20,1,2,0
+594,alomomola,5,,302,6,3,,4,75,70,0,40,0,3,0
+595,joltik,5,,303,10,14,,4,190,70,0,20,0,2,0
+596,galvantula,5,595,303,10,14,,4,75,70,0,20,0,2,0
+597,ferroseed,5,,304,4,1,,4,255,70,0,20,0,2,0
+598,ferrothorn,5,597,304,4,10,,4,90,70,0,20,0,2,0
+599,klink,5,,305,4,11,,-1,130,70,0,20,0,4,0
+600,klang,5,599,305,4,11,,-1,60,70,0,20,0,4,0
+601,klinklang,5,600,305,4,11,,-1,30,70,0,20,0,4,0
+602,tynamo,5,,306,9,3,,4,190,70,0,20,0,1,0
+603,eelektrik,5,602,306,2,3,,4,60,70,0,20,0,1,0
+604,eelektross,5,603,306,2,3,,4,30,70,0,20,0,1,0
+605,elgyem,5,,307,2,6,,4,255,70,0,20,0,2,0
+606,beheeyem,5,605,307,3,12,,4,90,70,0,20,0,2,0
+607,litwick,5,,308,9,5,,4,190,70,0,20,0,4,0
+608,lampent,5,607,308,1,4,,4,90,70,0,20,0,4,0
+609,chandelure,5,608,308,1,4,,4,45,70,0,20,0,4,0
+610,axew,5,,309,5,6,,4,75,35,0,40,0,1,0
+611,fraxure,5,610,309,5,6,,4,60,35,0,40,0,1,0
+612,haxorus,5,611,309,10,6,,4,45,35,0,40,0,1,0
+613,cubchoo,5,,310,9,6,,4,120,70,0,20,0,2,0
+614,beartic,5,613,310,9,8,,4,60,70,0,20,0,2,0
+615,cryogonal,5,,311,2,1,,-1,25,70,0,25,0,2,0
+616,shelmet,5,,312,8,1,,4,200,70,0,15,0,2,0
+617,accelgor,5,616,312,8,4,,4,75,70,0,15,0,2,0
+618,stunfisk,5,,313,3,3,,4,75,70,0,20,0,2,0
+619,mienfoo,5,,314,10,6,,4,180,70,0,25,0,4,0
+620,mienshao,5,619,314,7,6,,4,45,70,0,25,0,4,0
+621,druddigon,5,,315,8,6,,4,45,70,0,30,0,2,0
+622,golett,5,,316,5,12,,-1,190,70,0,25,0,2,0
+623,golurk,5,622,316,5,12,,-1,90,70,0,25,0,2,0
+624,pawniard,5,,317,8,12,,4,120,35,0,20,0,2,0
+625,bisharp,5,624,317,8,12,,4,45,35,0,20,0,2,0
+626,bouffalant,5,,318,3,8,,4,45,70,0,20,0,2,0
+627,rufflet,5,,319,9,9,,0,190,70,0,20,0,1,0
+628,braviary,5,627,319,8,9,,0,60,70,0,20,0,1,0
+629,vullaby,5,,320,3,9,,8,190,35,0,20,0,1,0
+630,mandibuzz,5,629,320,3,9,,8,60,35,0,20,0,1,0
+631,heatmor,5,,321,8,6,,4,90,70,0,20,0,2,0
+632,durant,5,,322,4,14,,4,90,70,0,20,0,2,0
+633,deino,5,,323,2,8,,4,45,35,0,40,0,1,0
+634,zweilous,5,633,323,2,8,,4,45,35,0,40,0,1,0
+635,hydreigon,5,634,323,2,6,,4,45,35,0,40,0,1,0
+636,larvesta,5,,324,9,14,,4,45,70,0,40,0,1,0
+637,volcarona,5,636,324,9,13,,4,15,70,0,40,0,1,0
+638,cobalion,5,,325,2,8,,-1,3,35,0,80,0,1,0
+639,terrakion,5,,326,4,8,,-1,3,35,0,80,0,1,0
+640,virizion,5,,327,5,8,,-1,3,35,0,80,0,1,0
+641,tornadus,5,,328,5,4,,0,3,90,0,120,0,1,0
+642,thundurus,5,,329,2,4,,0,3,90,0,120,0,1,0
+643,reshiram,5,,330,9,9,,-1,45,0,0,120,0,1,0
+644,zekrom,5,,331,1,6,,-1,45,0,0,120,0,1,0
+645,landorus,5,,332,3,4,,0,3,90,0,120,0,1,0
+646,kyurem,5,,333,4,6,,-1,3,0,0,120,0,1,0
+647,keldeo,5,,334,10,8,,-1,3,35,0,80,0,1,0
+648,meloetta,5,,335,9,12,,-1,3,100,0,120,0,1,1
+649,genesect,5,,336,7,12,,-1,3,0,0,120,0,1,1
diff --git a/pokedex/data/csv/pokemon_species_flavor_summaries.csv b/pokedex/data/csv/pokemon_species_flavor_summaries.csv
new file mode 100644
index 0000000..c501f46
--- /dev/null
+++ b/pokedex/data/csv/pokemon_species_flavor_summaries.csv
@@ -0,0 +1 @@
+pokemon_species_id,local_language_id,flavor_summary
diff --git a/pokedex/data/csv/pokemon_flavor_text.csv b/pokedex/data/csv/pokemon_species_flavor_text.csv
similarity index 99%
rename from pokedex/data/csv/pokemon_flavor_text.csv
rename to pokedex/data/csv/pokemon_species_flavor_text.csv
index aa5863f..928e428 100644
--- a/pokedex/data/csv/pokemon_flavor_text.csv
+++ b/pokedex/data/csv/pokemon_species_flavor_text.csv
@@ -1,4 +1,4 @@
-pokemon_id,version_id,language_id,flavor_text
+species_id,version_id,language_id,flavor_text
 1,1,9,"A strange seed was
 planted on its
 back at birth.The plant sprouts
diff --git a/pokedex/data/csv/pokemon_names.csv b/pokedex/data/csv/pokemon_species_names.csv
similarity index 99%
rename from pokedex/data/csv/pokemon_names.csv
rename to pokedex/data/csv/pokemon_species_names.csv
index 09db3d5..c1e3dff 100644
--- a/pokedex/data/csv/pokemon_names.csv
+++ b/pokedex/data/csv/pokemon_species_names.csv
@@ -1,4 +1,4 @@
-pokemon_id,local_language_id,name,species
+pokemon_species_id,local_language_id,name,genus
 1,1,フシギダネ,
 1,2,Fushigidane,
 1,3,이상해씨,
@@ -4081,21 +4081,3 @@ pokemon_id,local_language_id,name,species
 649,5,Genesect,
 649,6,Genesect,
 649,9,Genesect,Paleozoic
-10001,9,Deoxys,DNA
-10002,9,Deoxys,DNA
-10003,9,Deoxys,DNA
-10004,9,Wormadam,Bagworm
-10005,9,Wormadam,Bagworm
-10006,9,Shaymin,Gratitude
-10007,9,Giratina,Renegade
-10008,9,Rotom,Plasma
-10009,9,Rotom,Plasma
-10010,9,Rotom,Plasma
-10011,9,Rotom,Plasma
-10012,9,Rotom,Plasma
-10013,9,Castform,Weather
-10014,9,Castform,Weather
-10015,9,Castform,Weather
-10016,9,Basculin,Hostile
-10017,9,Darmanitan,Blazing
-10018,9,Meloetta,Melody
diff --git a/pokedex/data/csv/pokemon_species_prose.csv b/pokedex/data/csv/pokemon_species_prose.csv
new file mode 100644
index 0000000..8c242fd
--- /dev/null
+++ b/pokedex/data/csv/pokemon_species_prose.csv
@@ -0,0 +1,20 @@
+pokemon_species_id,local_language_id,form_description
+172,9,"Spiky-eared Pichu can only be received by taking the shiny Pichu from an official promotion to []{pokemon:celebi}'s shrine in []{location:ilex-forest}.  Spiky-eared Pichu is always female, cannot evolve, and cannot be taken into the Wi-Fi Club or the Union Room, but is otherwise a normal Pichu."
+201,9,Forms only affect appearance.  A form is determined at random before a wild encounter and cannot be changed.
+351,9,"Form changes along with type to match the [weather]{mechanic:weather} in battle, due to []{ability:forecast}.  Castform is always in its normal form outside of battle, regardless of weather."
+386,9,"Forms have different stats and movepools.  In Generation III, Deoxys's form depends on the game: Normal Forme in Ruby and Sapphire, Attack Forme in FireRed, Defense Forme in LeafGreen, and Speed Forme in Emerald.  In Generation IV, every form exists: form is preserved when transferring via []{location:pal-park}, and meteorites in the southeast corner of []{location:veilstone-city} or at the west end of []{location:unova-route-3} can be used to switch between forms."
+412,9,"Forms only affect appearance, although they become permanent upon evolution.  Wild and newly-hatched Burmy are always in a Plant Cloak.  Burmy's cloak changes to match the terrain after a battle it participated in: Plant Cloak by default; Sandy Cloak in sandy or rocky areas, such as beaches, caves, and trails; and Trash Cloak in buildings."
+413,9,"Forms have different stats and movepools.  During evolution, Burmy's current cloak becomes Wormadam's form, and can no longer be changed."
+421,9,"Sunshine form is active during [strong sunlight]{mechanic:strong-sunlight}.  Otherwise, Cherrim defaults to its Overcast form."
+422,9,"Forms only affect appearance.  A form is determined before a wild encounter based on whether the battle is in western or eastern Sinnoh, or inherited from the mother when breeding, and cannot be changed."
+423,9,Forms only affect appearance.  A form is determined before a wild encounter based on whether the battle is in western or eastern Sinnoh and cannot be changed.
+479,9,"Forms have different signature moves, and the appliance forms' stats are different from the normal form's.  When switching forms, the old signature move (if any) is removed and the new one must be learned, overwriting another move if need be, or the switch will be cancelled; however, it can be forgotten while in the new form.  There are appliances for switching forms in a secret room in the Team Galactic Eterna Building or the Silph Co. Office Building; the room in the Galactic Building requires a []{item:secret-key}, but the room in Silph Co. is freely accessible when walking with Rotom.  Rotom can be returned to its normal form by checking the space its appliance occupied.  It also reverts to its normal form upon entering the Wi-Fi Club or the Union Room."
+487,9,"Forms have different stats.  Giratina transforms into Origin Forme in the []{location:distortion-world} or while holding a []{item:griseous-orb}.  Otherwise, it assumes its Altered Forme.  The Griseous Orb returns to the bag upon entering the Wi-Fi Club or the Union Room."
+492,9,"Forms have different stats and movepools.  Shaymin transforms into Sky Forme with the use of a []{item:gracidea}.  It is limited to Land Forme at night, when [frozen]{mechanic:frozen}, in the storage system boxes, in the Wi-Fi Club, and in the Union Room; under these conditions, Sky Shaymin reverts to Land Forme, and the Gracidea has no effect.  The Gracidea must be used again to return to Sky Forme.  A Gracidea may be received by showing a woman in southwest []{location:floaroma-town} or the []{location:goldenrod-city} flower shop a Shaymin met in a fateful encounter."
+493,9,"Form changes along with type to match a held Plate, due to []{ability:multitype}."
+550,9,"Forms have one different ability and different wild held items. Blue-Striped Basculin are rarer in Black Version, and Red-Striped Basculin in White Version."
+555,9,"Forms have different stats and types.  Darmanitan changes to Zen Mode below 50% HP if it has []{ability:zen-mode} as its ability, and back to Standard Mode above 50% HP."
+585,9,"Form changes to match the season.  To switch forms, Deerling must be in the party when loading the game."
+586,9,"Form changes to match the season.  To switch forms, Sawsbuck must be in the party when loading the game."
+648,9,"Forms have different stats and types.  Meloetta changes form upon using []{move:relic-song} in battle, and reverts to Aria Forme outside of battle."
+649,9,Form changes to match Genesect's held Drive.  The only differences are the color of its weapon and []{move:techno-blast}'s type.
diff --git a/pokedex/data/csv/pokemon_stats.csv b/pokedex/data/csv/pokemon_stats.csv
index e11bd07..965780a 100644
--- a/pokedex/data/csv/pokemon_stats.csv
+++ b/pokedex/data/csv/pokemon_stats.csv
@@ -3893,111 +3893,111 @@ pokemon_id,stat_id,base_stat,effort
 649,4,120,1
 649,5,95,0
 649,6,99,1
-10001,1,50,0
-10001,2,180,2
-10001,3,20,0
-10001,4,180,1
-10001,5,20,0
-10001,6,150,0
-10002,1,50,0
-10002,2,70,0
-10002,3,160,2
-10002,4,70,0
-10002,5,160,1
-10002,6,90,0
-10003,1,50,0
-10003,2,95,0
-10003,3,90,0
-10003,4,95,0
-10003,5,90,0
-10003,6,180,3
-10004,1,60,0
-10004,2,79,0
-10004,3,105,2
-10004,4,59,0
-10004,5,85,0
-10004,6,36,0
-10005,1,60,0
-10005,2,69,0
-10005,3,95,1
-10005,4,69,0
-10005,5,95,1
-10005,6,36,0
-10006,1,100,0
-10006,2,103,0
-10006,3,75,0
-10006,4,120,0
-10006,5,75,0
-10006,6,127,3
-10007,1,150,3
-10007,2,120,0
-10007,3,100,0
-10007,4,120,0
-10007,5,100,0
-10007,6,90,0
-10008,1,50,0
-10008,2,65,0
-10008,3,107,0
-10008,4,105,1
-10008,5,107,0
-10008,6,86,1
-10009,1,50,0
-10009,2,65,0
-10009,3,107,0
-10009,4,105,1
-10009,5,107,0
-10009,6,86,1
-10010,1,50,0
-10010,2,65,0
-10010,3,107,0
-10010,4,105,1
-10010,5,107,0
-10010,6,86,1
-10011,1,50,0
-10011,2,65,0
-10011,3,107,0
-10011,4,105,1
-10011,5,107,0
-10011,6,86,1
-10012,1,50,0
-10012,2,65,0
-10012,3,107,0
-10012,4,105,1
-10012,5,107,0
-10012,6,86,1
-10013,1,70,1
-10013,2,70,0
-10013,3,70,0
-10013,4,70,0
-10013,5,70,0
-10013,6,70,0
-10014,1,70,1
-10014,2,70,0
-10014,3,70,0
-10014,4,70,0
-10014,5,70,0
-10014,6,70,0
-10015,1,70,1
-10015,2,70,0
-10015,3,70,0
-10015,4,70,0
-10015,5,70,0
-10015,6,70,0
-10016,1,70,0
-10016,2,92,0
-10016,3,65,0
-10016,4,80,0
-10016,5,55,0
-10016,6,98,2
-10017,1,105,0
-10017,2,30,0
-10017,3,105,0
-10017,4,140,2
-10017,5,105,0
-10017,6,55,0
-10018,1,100,0
-10018,2,128,1
-10018,3,90,1
-10018,4,77,0
-10018,5,77,0
-10018,6,128,1
+650,1,50,0
+650,2,180,2
+650,3,20,0
+650,4,180,1
+650,5,20,0
+650,6,150,0
+651,1,50,0
+651,2,70,0
+651,3,160,2
+651,4,70,0
+651,5,160,1
+651,6,90,0
+652,1,50,0
+652,2,95,0
+652,3,90,0
+652,4,95,0
+652,5,90,0
+652,6,180,3
+653,1,60,0
+653,2,79,0
+653,3,105,2
+653,4,59,0
+653,5,85,0
+653,6,36,0
+654,1,60,0
+654,2,69,0
+654,3,95,1
+654,4,69,0
+654,5,95,1
+654,6,36,0
+655,1,100,0
+655,2,103,0
+655,3,75,0
+655,4,120,0
+655,5,75,0
+655,6,127,3
+656,1,150,3
+656,2,120,0
+656,3,100,0
+656,4,120,0
+656,5,100,0
+656,6,90,0
+657,1,50,0
+657,2,65,0
+657,3,107,0
+657,4,105,1
+657,5,107,0
+657,6,86,1
+658,1,50,0
+658,2,65,0
+658,3,107,0
+658,4,105,1
+658,5,107,0
+658,6,86,1
+659,1,50,0
+659,2,65,0
+659,3,107,0
+659,4,105,1
+659,5,107,0
+659,6,86,1
+660,1,50,0
+660,2,65,0
+660,3,107,0
+660,4,105,1
+660,5,107,0
+660,6,86,1
+661,1,50,0
+661,2,65,0
+661,3,107,0
+661,4,105,1
+661,5,107,0
+661,6,86,1
+662,1,70,1
+662,2,70,0
+662,3,70,0
+662,4,70,0
+662,5,70,0
+662,6,70,0
+663,1,70,1
+663,2,70,0
+663,3,70,0
+663,4,70,0
+663,5,70,0
+663,6,70,0
+664,1,70,1
+664,2,70,0
+664,3,70,0
+664,4,70,0
+664,5,70,0
+664,6,70,0
+665,1,70,0
+665,2,92,0
+665,3,65,0
+665,4,80,0
+665,5,55,0
+665,6,98,2
+666,1,105,0
+666,2,30,0
+666,3,105,0
+666,4,140,2
+666,5,105,0
+666,6,55,0
+667,1,100,0
+667,2,128,1
+667,3,90,1
+667,4,77,0
+667,5,77,0
+667,6,128,1
diff --git a/pokedex/data/csv/pokemon_types.csv b/pokedex/data/csv/pokemon_types.csv
index b510ae4..fc294c2 100644
--- a/pokedex/data/csv/pokemon_types.csv
+++ b/pokedex/data/csv/pokemon_types.csv
@@ -943,32 +943,32 @@ pokemon_id,type_id,slot
 648,14,2
 649,7,1
 649,9,2
-10001,14,1
-10002,14,1
-10003,14,1
-10004,7,1
-10004,5,2
-10005,7,1
-10005,9,2
-10006,12,1
-10006,3,2
-10007,8,1
-10007,16,2
-10008,13,1
-10008,10,2
-10009,13,1
-10009,11,2
-10010,13,1
-10010,15,2
-10011,13,1
-10011,3,2
-10012,13,1
-10012,12,2
-10013,10,1
-10014,11,1
-10015,15,1
-10016,11,1
-10017,10,1
-10017,14,2
-10018,1,1
-10018,2,2
+650,14,1
+651,14,1
+652,14,1
+653,7,1
+653,5,2
+654,7,1
+654,9,2
+655,12,1
+655,3,2
+656,8,1
+656,16,2
+657,13,1
+657,10,2
+658,13,1
+658,11,2
+659,13,1
+659,15,2
+660,13,1
+660,3,2
+661,13,1
+661,12,2
+662,10,1
+663,11,1
+664,15,1
+665,11,1
+666,10,1
+666,14,2
+667,1,1
+667,2,2
diff --git a/pokedex/data/csv/translations/cs.csv b/pokedex/data/csv/translations/cs.csv
index 9d8cc01..9605834 100644
--- a/pokedex/data/csv/translations/cs.csv
+++ b/pokedex/data/csv/translations/cs.csv
@@ -1030,84 +1030,64 @@ Působí na protivníky."
 10,Pokedex,6,description,f3d57c4c,Platinum Sinnohský dex—rozšířená verze dexu z Diamond a Pearl
 10,Pokedex,7,description,56afcca4,HeartGold/SoulSilver Johto dex – dex z Gold/Silver/Crystal rozšířený o nové vývoje
 10,Pokedex,8,description,79a9ade7,Black/White Unovský dex
-10,Pokemon,1,flavor_summary,fe4d8c9a,"Od narození má na zádech divné semínko, které roste a vyvíjí se společně s ním. Uvnitř má zásobu živin, kterou využívají zejména malí Bulbasauři. I později ale může celé dny nejíst.
+10,PokemonSpecies,1,flavor_summary,fe4d8c9a,"Od narození má na zádech divné semínko, které roste a vyvíjí se společně s ním. Uvnitř má zásobu živin, kterou využívají zejména malí Bulbasauři. I později ale může celé dny nejíst.
 
 Bulbasauři rádi odpočívají na sluníčku. Semínko na zádech jim tak roste rychleji."
-10,Pokemon,1,species,e4b54c38,Semínkový
-10,Pokemon,2,species,e4b54c38,Semínkový
-10,Pokemon,3,species,e4b54c38,Semínkový
-10,Pokemon,4,species,473b2152,Ještěrkovitý
-10,Pokemon,5,species,c4ff3365,Plamenný
-10,Pokemon,6,species,c4ff3365,Plamenný
-10,Pokemon,7,species,a662e558,Malý želví
-10,Pokemon,8,species,71b19d1a,Želví
-10,Pokemon,9,species,4a927f13,Korýší
-10,Pokemon,10,species,1a1f628b,Červí
-10,Pokemon,11,species,011bd63a,Kuklový
-10,Pokemon,12,species,4666d1bf,Motýlí
-10,Pokemon,14,species,011bd63a,Kuklový
-10,Pokemon,35,species,e1dde8d1,diblíci
-10,Pokemon,36,species,e1dde8d1,diblíci
-10,Pokemon,66,species,55017b02,Supersilný
-10,Pokemon,67,species,55017b02,Supersilný
-10,Pokemon,68,species,55017b02,Supersilný
-10,Pokemon,88,species,63411a53,Kalový
-10,Pokemon,89,species,63411a53,Kalový
-10,Pokemon,96,species,834b9610,Hypnotický
-10,Pokemon,97,species,834b9610,Hypnotický
-10,Pokemon,111,species,11201819,Střepinový
-10,Pokemon,120,species,a62f8434,Hvězdicovitý
-10,Pokemon,121,species,abfc4744,Záhadný
-10,Pokemon,122,species,2ef3c334,Bariérový
-10,Pokemon,132,species,f543030e,Transformační
-10,Pokemon,133,species,c0fdaa30,Vývoj
-10,Pokemon,136,species,c4ff3365,Plamenný
-10,Pokemon,140,species,4a927f13,Korýší
-10,Pokemon,141,species,4a927f13,Korýší
-10,Pokemon,144,species,413df12c,Zmražení
-10,Pokemon,146,species,c4ff3365,Plamenný
-10,Pokemon,173,species,a62f8434,Hvězdicovitý
-10,Pokemon,191,species,e4b54c38,Semínkový
-10,Pokemon,197,species,2227bb25,Měsíční
-10,Pokemon,200,species,cd7e3dfb,Skřípavý
-10,Pokemon,209,species,e1dde8d1,diblíci
-10,Pokemon,210,species,e1dde8d1,diblíci
-10,Pokemon,243,species,adc59c6c,Bleskový
-10,Pokemon,261,species,21d49620,Kousavý
-10,Pokemon,262,species,21d49620,Kousavý
-10,Pokemon,265,species,1a1f628b,Červí
-10,Pokemon,266,species,011bd63a,Kuklový
-10,Pokemon,267,species,4666d1bf,Motýlí
-10,Pokemon,268,species,011bd63a,Kuklový
-10,Pokemon,277,species,211da6d8,Polykací
-10,Pokemon,307,species,d2b08c9e,Meditační
-10,Pokemon,308,species,d2b08c9e,Meditační
-10,Pokemon,323,species,36a1520c,Erupční
-10,Pokemon,325,species,8590f16f,Skákavý
-10,Pokemon,351,species,836deaf2,Počasí
-10,Pokemon,385,species,77e3dbf7,Přání
-10,Pokemon,392,species,c4ff3365,Plamenný
-10,Pokemon,403,species,6e0f7007,Jiskrový
-10,Pokemon,404,species,5cd2e029,Jiskrový
-10,Pokemon,466,species,f6d30876,Bleskový
-10,Pokemon,523,species,f6d30876,Bleskový
-10,Pokemon,613,species,eda9f31f,Studený
-10,Pokemon,614,species,93e0b150,Mrazící
-10,Pokemon,615,species,22733a94,Krystalizující
-10,Pokemon,618,species,1ebdd00d,Pasťový
-10,Pokemon,10013,species,836deaf2,Počasí
-10,Pokemon,10014,species,836deaf2,Počasí
-10,Pokemon,10015,species,836deaf2,Počasí
+10,PokemonSpecies,1,genus,e4b54c38,Semínkový
+10,PokemonSpecies,2,genus,e4b54c38,Semínkový
+10,PokemonSpecies,3,genus,e4b54c38,Semínkový
+10,PokemonSpecies,4,genus,473b2152,Ještěrkovitý
+10,PokemonSpecies,5,genus,c4ff3365,Plamenný
+10,PokemonSpecies,6,genus,c4ff3365,Plamenný
+10,PokemonSpecies,7,genus,a662e558,Malý želví
+10,PokemonSpecies,8,genus,71b19d1a,Želví
+10,PokemonSpecies,9,genus,4a927f13,Korýší
+10,PokemonSpecies,10,genus,1a1f628b,Červí
+10,PokemonSpecies,11,genus,011bd63a,Kuklový
+10,PokemonSpecies,12,genus,4666d1bf,Motýlí
+10,PokemonSpecies,14,genus,011bd63a,Kuklový
+10,PokemonSpecies,66,genus,55017b02,Supersilný
+10,PokemonSpecies,67,genus,55017b02,Supersilný
+10,PokemonSpecies,68,genus,55017b02,Supersilný
+10,PokemonSpecies,88,genus,63411a53,Kalový
+10,PokemonSpecies,89,genus,63411a53,Kalový
+10,PokemonSpecies,96,genus,834b9610,Hypnotický
+10,PokemonSpecies,97,genus,834b9610,Hypnotický
+10,PokemonSpecies,111,genus,11201819,Střepinový
+10,PokemonSpecies,120,genus,a62f8434,Hvězdicovitý
+10,PokemonSpecies,121,genus,abfc4744,Záhadný
+10,PokemonSpecies,122,genus,2ef3c334,Bariérový
+10,PokemonSpecies,132,genus,f543030e,Transformační
+10,PokemonSpecies,136,genus,c4ff3365,Plamenný
+10,PokemonSpecies,140,genus,4a927f13,Korýší
+10,PokemonSpecies,141,genus,4a927f13,Korýší
+10,PokemonSpecies,146,genus,c4ff3365,Plamenný
+10,PokemonSpecies,173,genus,a62f8434,Hvězdicovitý
+10,PokemonSpecies,191,genus,e4b54c38,Semínkový
+10,PokemonSpecies,197,genus,2227bb25,Měsíční
+10,PokemonSpecies,200,genus,cd7e3dfb,Skřípavý
+10,PokemonSpecies,243,genus,adc59c6c,Bleskový
+10,PokemonSpecies,261,genus,21d49620,Kousavý
+10,PokemonSpecies,262,genus,21d49620,Kousavý
+10,PokemonSpecies,265,genus,1a1f628b,Červí
+10,PokemonSpecies,266,genus,011bd63a,Kuklový
+10,PokemonSpecies,267,genus,4666d1bf,Motýlí
+10,PokemonSpecies,268,genus,011bd63a,Kuklový
+10,PokemonSpecies,277,genus,211da6d8,Polykací
+10,PokemonSpecies,307,genus,d2b08c9e,Meditační
+10,PokemonSpecies,308,genus,d2b08c9e,Meditační
+10,PokemonSpecies,323,genus,36a1520c,Erupční
+10,PokemonSpecies,325,genus,8590f16f,Skákavý
+10,PokemonSpecies,392,genus,c4ff3365,Plamenný
+10,PokemonSpecies,403,genus,6e0f7007,Jiskrový
+10,PokemonSpecies,404,genus,5cd2e029,Jiskrový
+10,PokemonSpecies,466,genus,f6d30876,Bleskový
+10,PokemonSpecies,523,genus,f6d30876,Bleskový
+10,PokemonSpecies,613,genus,eda9f31f,Studený
+10,PokemonSpecies,614,genus,93e0b150,Mrazící
+10,PokemonSpecies,615,genus,22733a94,Krystalizující
+10,PokemonSpecies,618,genus,1ebdd00d,Pasťový
 10,PokemonColor,4,name,25cd90d8,Šedá
-10,PokemonForm,412,name,6ac22276,rostliny
-10,PokemonForm,413,name,6ac22276,rostliny
-10,PokemonForm,10077,name,f560b23a,Popálení
-10,PokemonFormGroup,386,term,c82a81a2,Forma
-10,PokemonFormGroup,412,term,4d8cf314,Plášť
-10,PokemonFormGroup,413,term,4d8cf314,Plášť
-10,PokemonFormGroup,487,term,c82a81a2,Forma
-10,PokemonFormGroup,492,term,c82a81a2,Forma
-10,PokemonFormGroup,648,term,c82a81a2,Forma
 10,PokemonHabitat,1,name,057f6d41,jeskyně
 10,PokemonHabitat,2,name,a85d53b4,lesy
 10,PokemonHabitat,3,name,a73fc6cb,lučiny
diff --git a/pokedex/db/markdown.py b/pokedex/db/markdown.py
index 9653a53..328b131 100644
--- a/pokedex/db/markdown.py
+++ b/pokedex/db/markdown.py
@@ -154,7 +154,7 @@ class PokedexLinkPattern(markdown.inlinepatterns.Pattern):
                     item=tables.Item,
                     location=tables.Location,
                     move=tables.Move,
-                    pokemon=tables.Pokemon,
+                    pokemon=tables.PokemonSpecies,
                     type=tables.Type,
                 )[category]
         except KeyError:
diff --git a/pokedex/db/multilang.py b/pokedex/db/multilang.py
index 54e53ac..8720dcb 100644
--- a/pokedex/db/multilang.py
+++ b/pokedex/db/multilang.py
@@ -141,6 +141,8 @@ def create_translation_table(_table_name, foreign_class, relation_name,
         if string_getter:
             def getset_factory(underlying_type, instance):
                 def getter(translations):
+                    if translations is None:
+                        return None
                     text = getattr(translations, column.name)
                     if text is None:
                         return text
diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py
index 711e0b5..7d28164 100644
--- a/pokedex/db/tables.py
+++ b/pokedex/db/tables.py
@@ -409,8 +409,6 @@ class EvolutionChain(TableBase):
     __tablename__ = 'evolution_chains'
     id = Column(Integer, primary_key=True, nullable=False,
         info=dict(description="A numeric ID"))
-    growth_rate_id = Column(Integer, ForeignKey('growth_rates.id'), nullable=False,
-        info=dict(description="ID of the growth rate for this family"))
     baby_trigger_item_id = Column(Integer, ForeignKey('items.id'), nullable=True,
         info=dict(description="Item that a parent must hold while breeding to produce a baby"))
 
@@ -1058,88 +1056,28 @@ create_translation_table('pokedex_prose', Pokedex, 'prose',
 )
 
 class Pokemon(TableBase):
-    u"""A species of Pokémon.  The core to this whole mess.
+    u"""A Pokémon.  The core to this whole mess.
     """
     __tablename__ = 'pokemon'
     __singlename__ = 'pokemon'
     id = Column(Integer, primary_key=True, nullable=False,
         info=dict(description=u"A numeric ID"))
-    identifier = Column(Unicode(20), nullable=False,
-        info=dict(description=u"An identifier", format='identifier'))
-    generation_id = Column(Integer, ForeignKey('generations.id'),
-        info=dict(description=u"ID of the generation this species first appeared in"))
-    evolution_chain_id = Column(Integer, ForeignKey('evolution_chains.id'),
-        info=dict(description=u"ID of the species' evolution chain (a.k.a. family)"))
-    evolves_from_pokemon_id = Column(Integer, ForeignKey('pokemon.id'), nullable=True,
-        info=dict(description=u"The Pokémon species from which this one evolves"))
+    species_id = Column(Integer, ForeignKey('pokemon_species.id'),
+        info=dict(description=u"ID of the species this Pokémon belongs to"))
     height = Column(Integer, nullable=False,
         info=dict(description=u"The height of the Pokémon, in decimeters (tenths of a meter)"))
     weight = Column(Integer, nullable=False,
         info=dict(description=u"The weight of the Pokémon, in tenths of a kilogram (decigrams)"))
-    color_id = Column(Integer, ForeignKey('pokemon_colors.id'), nullable=False,
-        info=dict(description=u"ID of this Pokémon's Pokédex color, as used for a gimmick search function in the games."))
-    pokemon_shape_id = Column(Integer, ForeignKey('pokemon_shapes.id'), nullable=False,
-        info=dict(description=u"ID of this Pokémon's body shape, as used for a gimmick search function in the games."))
-    habitat_id = Column(Integer, ForeignKey('pokemon_habitats.id'), nullable=True,
-        info=dict(description=u"ID of this Pokémon's habitat, as used for a gimmick search function in the games."))
-    gender_rate = Column(Integer, nullable=False,
-        info=dict(description=u"The chance of this Pokémon being female, in eighths; or -1 for genderless"))
-    capture_rate = Column(Integer, nullable=False,
-        info=dict(description=u"The base capture rate; up to 255"))
     base_experience = Column(Integer, nullable=False,
         info=dict(description=u"The base EXP gained when defeating this Pokémon"))  # XXX: Is this correct?
-    base_happiness = Column(Integer, nullable=False,
-        info=dict(description=u"The tameness when caught by a normal ball"))
-    is_baby = Column(Boolean, nullable=False,
-        info=dict(description=u"True iff the Pokémon is a baby, i.e. a lowest-stage Pokémon that cannot breed but whose evolved form can."))
-    hatch_counter = Column(Integer, nullable=False,
-        info=dict(description=u"Initial hatch counter: one must walk 255 × (hatch_counter + 1) steps before this Pokémon's egg hatches, unless utilizing bonuses like Flame Body's"))
-    has_gender_differences = Column(Boolean, nullable=False,
-        info=dict(description=u"Set iff the species exhibits enough sexual dimorphism to have separate sets of sprites in Gen IV and beyond."))
     order = Column(Integer, nullable=False, index=True,
-        info=dict(description=u"Order for sorting. Almost national order, except families and forms are grouped together."))
-
-    ### Stuff to handle alternate Pokémon forms
+        info=dict(description=u"Order for sorting. Almost national order, except families are grouped together."))
+    is_default = Column(Boolean, nullable=False, index=True,
+        info=dict(description=u'Set for exactly one pokemon used as the default for each species.'))
 
     @property
-    def is_base_form(self):
-        u"""Returns True iff the Pokémon is the base form for its species,
-        e.g. Land Shaymin.
-        """
-
-        return self.unique_form is None or self.unique_form.is_default
-
-    @property
-    def form_name(self):
-        u"""Returns the Pokémon's form name if it represents a particular form
-        and that form has a name, or None otherwise.
-        """
-
-        # If self.unique_form is None, the short-circuit "and" will go ahead
-        # and return that.  Otherwise, it'll return the form's name, which may
-        # also be None.
-        return self.unique_form and self.unique_form.name
-
-    @property
-    def full_name(self):
-        u"""Returns the Pokémon's name, including its form if applicable."""
-
-        if self.form_name:
-            return u'%s %s' % (self.form_name, self.name)
-        else:
-            return self.name
-
-    @property
-    def normal_form(self):
-        u"""Returns the normal form for this Pokémon; i.e., this will return
-        regular Deoxys when called on any Deoxys form.
-        """
-
-        if self.unique_form:
-            return self.unique_form.form_base_pokemon
-        return self
-
-    ### Not forms!
+    def name(self):
+        return self.default_form.pokemon_name or self.species.name
 
     def stat(self, stat_name):
         u"""Returns a PokemonStat record for the given stat name (or Stat row
@@ -1175,19 +1113,6 @@ class Pokemon(TableBase):
         else:
             return None
 
-create_translation_table('pokemon_names', Pokemon, 'names',
-    relation_lazy='joined',
-    name = Column(Unicode(20), nullable=True, index=True,
-        info=dict(description="The name", format='plaintext', official=True, ripped=True)),
-    species = Column(Unicode(16), nullable=True,
-        info=dict(description=u'The short flavor text, such as "Seed" or "Lizard"; usually affixed with the word "Pokémon"',
-        official=True, format='plaintext')),
-)
-create_translation_table('pokemon_flavor_summaries', Pokemon, 'flavor_summaries',
-    flavor_summary = Column(Unicode(512), nullable=True,
-        info=dict(description=u"Text containing facts from all flavor texts, for languages without official game translations", official=False, format='plaintext', ripped=True)),
-)
-
 class PokemonAbility(TableBase):
     u"""Maps an ability to a Pokémon that can have it
     """
@@ -1221,22 +1146,22 @@ create_translation_table('pokemon_color_names', PokemonColor, 'names',
 )
 
 class PokemonDexNumber(TableBase):
-    u"""The number of a Pokémon in a particular Pokédex (e.g. Jigglypuff is #138 in Hoenn's 'dex)
+    u"""The number of a species in a particular Pokédex (e.g. Jigglypuff is #138 in Hoenn's 'dex)
     """
     __tablename__ = 'pokemon_dex_numbers'
-    pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False,
-        info=dict(description=u"ID of the Pokémon"))
+    species_id = Column(Integer, ForeignKey('pokemon_species.id'), primary_key=True, nullable=False, autoincrement=False,
+        info=dict(description=u"ID of the species"))
     pokedex_id = Column(Integer, ForeignKey('pokedexes.id'), primary_key=True, nullable=False, autoincrement=False,
         info=dict(description=u"ID of the Pokédex"))
     pokedex_number = Column(Integer, nullable=False,
         info=dict(description=u"Number of the Pokémon in that the Pokédex"))
 
 class PokemonEggGroup(TableBase):
-    u"""Maps an Egg group to a Pokémon; each Pokémon belongs to one or two egg groups
+    u"""Maps an Egg group to a species; each species belongs to one or two egg groups
     """
     __tablename__ = 'pokemon_egg_groups'
-    pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False,
-        info=dict(description=u"ID of the Pokémon"))
+    species_id = Column(Integer, ForeignKey('pokemon_species.id'), primary_key=True, nullable=False, autoincrement=False,
+        info=dict(description=u"ID of the species"))
     egg_group_id = Column(Integer, ForeignKey('egg_groups.id'), primary_key=True, nullable=False, autoincrement=False,
         info=dict(description=u"ID of the egg group"))
 
@@ -1249,8 +1174,8 @@ class PokemonEvolution(TableBase):
     __tablename__ = 'pokemon_evolution'
     id = Column(Integer, primary_key=True, nullable=False,
         info=dict(description=u"A numeric ID"))
-    evolved_pokemon_id = Column(Integer, ForeignKey('pokemon.id'), nullable=False,
-        info=dict(description=u"The ID of the post-evolution Pokémon."))
+    evolved_species_id = Column(Integer, ForeignKey('pokemon_species.id'), nullable=False,
+        info=dict(description=u"The ID of the post-evolution species."))
     evolution_trigger_id = Column(Integer, ForeignKey('evolution_triggers.id'), nullable=False,
         info=dict(description=u"The ID of the evolution trigger."))
     trigger_item_id = Column(Integer, ForeignKey('items.id'), nullable=True,
@@ -1273,24 +1198,10 @@ class PokemonEvolution(TableBase):
         info=dict(description=u"The minimum Beauty value the Pokémon must have."))
     relative_physical_stats = Column(Integer, nullable=True,
         info=dict(description=u"The required relation between the Pokémon's Attack and Defense stats, as sgn(atk-def)."))
-    party_pokemon_id = Column(Integer, ForeignKey('pokemon.id'), nullable=True,
-        info=dict(description=u"The ID of the Pokémon that must be present in the party."))
-    trade_pokemon_id = Column(Integer, ForeignKey('pokemon.id'), nullable=True,
-        info=dict(description=u"The ID of the Pokémon for which this Pokémon must be traded."))
-
-class PokemonFlavorText(TableBase):
-    u"""In-game Pokédex descrption of a Pokémon.
-    """
-    __tablename__ = 'pokemon_flavor_text'
-    summary_column = Pokemon.flavor_summaries_table, 'flavor_summary'
-    pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False,
-        info=dict(description=u"ID of the Pokémon"))
-    version_id = Column(Integer, ForeignKey('versions.id'), primary_key=True, nullable=False, autoincrement=False,
-        info=dict(description=u"ID of the version that has this flavor text"))
-    language_id = Column(Integer, ForeignKey('languages.id'), primary_key=True, nullable=False,
-        info=dict(description="The language"))
-    flavor_text = Column(Unicode(255), nullable=False,
-        info=dict(description=u"The flavor text", official=True, format='gametext'))
+    party_species_id = Column(Integer, ForeignKey('pokemon_species.id'), nullable=True,
+        info=dict(description=u"The ID of the species that must be present in the party."))
+    trade_species_id = Column(Integer, ForeignKey('pokemon_species.id'), nullable=True,
+        info=dict(description=u"The ID of the species for which this one must be traded."))
 
 class PokemonForm(TableBase):
     u"""An individual form of a Pokémon.
@@ -1302,63 +1213,29 @@ class PokemonForm(TableBase):
     __singlename__ = 'pokemon_form'
     id = Column(Integer, primary_key=True, nullable=False,
         info=dict(description=u'A unique ID for this form.'))
-    identifier = Column(Unicode(16), nullable=True,
-        info=dict(description=u"An identifier", format='identifier'))
-    form_base_pokemon_id = Column(Integer, ForeignKey('pokemon.id'), nullable=False, autoincrement=False,
+    form_identifier = Column(Unicode(16), nullable=True,
+        info=dict(description=u"An identifier of the form, uniue among a species. May be None for the default form of the species.", format='identifier'))
+    pokemon_id = Column(Integer, ForeignKey('pokemon.id'), nullable=False, autoincrement=False,
         info=dict(description=u'The ID of the base Pokémon for this form.'))
-    unique_pokemon_id = Column(Integer, ForeignKey('pokemon.id'), autoincrement=False,
-        info=dict(description=u'The ID of a Pokémon that represents specifically this form, for Pokémon with functionally-different forms like Wormadam.'))
     introduced_in_version_group_id = Column(Integer, ForeignKey('version_groups.id'), autoincrement=False,
         info=dict(description=u'The ID of the version group in which this form first appeared.'))
     is_default = Column(Boolean, nullable=False,
-        info=dict(description=u'Set for exactly one form used as the default for each species.'))
+        info=dict(description=u'Set for exactly one form used as the default for each pokemon (not necessarily species).'))
+    is_battle_only = Column(Boolean, nullable=False,
+        info=dict(description=u'Set iff the form can only appear in battle.'))
     order = Column(Integer, nullable=False, autoincrement=False,
         info=dict(description=u'The order in which forms should be sorted.  Multiple forms may have equal order, in which case they should fall back on sorting by name.'))
 
     @property
-    def full_name(self):
-        u"""Returns the full name of this form, e.g. "Plant Cloak"."""
-
-        if not self.name:
-            return None
-        elif self.form_group and self.form_group.term:
-            return u'%s %s' % (self.name, self.form_group.term)
-        else:
-            return self.name
-
-    @property
-    def pokemon_name(self):
-        u"""Returns the name of this Pokémon with this form, e.g. "Plant
-        Burmy".
-        """
-
-        if self.name:
-            return u'%s %s' % (self.name, self.form_base_pokemon.name)
-        else:
-            return self.form_base_pokemon.name
+    def name(self):
+        return self.pokemon_name or self.species.name
 
 create_translation_table('pokemon_form_names', PokemonForm, 'names',
     relation_lazy='joined',
-    name = Column(Unicode(16), nullable=False, index=True,
-        info=dict(description="The name", format='plaintext', official=True)),
-)
-
-class PokemonFormGroup(TableBase):
-    u"""Information about a Pokémon's forms as a group."""
-    __tablename__ = 'pokemon_form_groups'
-    __singlename__ = 'pokemon_form_group'
-    pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False,
-        info=dict(description=u"ID of the base form Pokémon"))
-    is_battle_only = Column(Boolean, nullable=False,
-        info=dict(description=u"Set iff the forms only change in battle"))
-# FIXME remooove
-PokemonFormGroup.id = PokemonFormGroup.pokemon_id
-
-create_translation_table('pokemon_form_group_prose', PokemonFormGroup, 'prose',
-    term = Column(Unicode(16), nullable=True,
-        info=dict(description=u"The term for this Pokémon's forms, e.g. \"Cloak\" for Burmy or \"Forme\" for Deoxys.", official=True, format='plaintext')),
-    description = Column(Unicode(1024), nullable=True,
-        info=dict(description=u"Description of how the forms work", format='markdown', string_getter=markdown.MarkdownString)),
+    form_name = Column(Unicode(32), nullable=True, index=True,
+        info=dict(description=u"The full form name, e.g. 'Sky Forme', for pokémon with different forms", format='plaintext', official=True)),
+    pokemon_name = Column(Unicode(32), nullable=True, index=True,
+        info=dict(description=u"The full pokémon name, e.g. 'Sky Shaymin', for pokémon with different forms", format='plaintext', official=True)),
 )
 
 class PokemonFormPokeathlonStat(TableBase):
@@ -1473,6 +1350,75 @@ create_translation_table('pokemon_shape_prose', PokemonShape, 'prose',
         info=dict(description=u"A splendiferous name of the body shape", format='plaintext')),
 )
 
+class PokemonSpecies(TableBase):
+    u"""A Pokémon species: group of Pokémon with the same Pokédex number
+    """
+    __tablename__ = 'pokemon_species'
+    __singlename__ = 'pokemon_species'
+    id = Column(Integer, primary_key=True, nullable=False,
+        info=dict(description=u"A numeric ID"))
+    identifier = Column(Unicode(20), nullable=False,
+        info=dict(description=u"An identifier", format='identifier'))
+    generation_id = Column(Integer, ForeignKey('generations.id'),
+        info=dict(description=u"ID of the generation this species first appeared in"))
+    evolves_from_species_id = Column(Integer, ForeignKey('pokemon_species.id'), nullable=True,
+        info=dict(description=u"The species from which this one evolves"))
+    evolution_chain_id = Column(Integer, ForeignKey('evolution_chains.id'),
+        info=dict(description=u"ID of the species' evolution chain (a.k.a. family)"))
+    color_id = Column(Integer, ForeignKey('pokemon_colors.id'), nullable=False,
+        info=dict(description=u"ID of this Pokémon's Pokédex color, as used for a gimmick search function in the games."))
+    shape_id = Column(Integer, ForeignKey('pokemon_shapes.id'), nullable=False,
+        info=dict(description=u"ID of this Pokémon's body shape, as used for a gimmick search function in the games."))
+    habitat_id = Column(Integer, ForeignKey('pokemon_habitats.id'), nullable=True,
+        info=dict(description=u"ID of this Pokémon's habitat, as used for a gimmick search function in the games."))
+    gender_rate = Column(Integer, nullable=False,
+        info=dict(description=u"The chance of this Pokémon being female, in eighths; or -1 for genderless"))
+    capture_rate = Column(Integer, nullable=False,
+        info=dict(description=u"The base capture rate; up to 255"))
+    base_happiness = Column(Integer, nullable=False,
+        info=dict(description=u"The tameness when caught by a normal ball"))
+    is_baby = Column(Boolean, nullable=False,
+        info=dict(description=u"True iff the Pokémon is a baby, i.e. a lowest-stage Pokémon that cannot breed but whose evolved form can."))
+    hatch_counter = Column(Integer, nullable=False,
+        info=dict(description=u"Initial hatch counter: one must walk 255 × (hatch_counter + 1) steps before this Pokémon's egg hatches, unless utilizing bonuses like Flame Body's"))
+    has_gender_differences = Column(Boolean, nullable=False,
+        info=dict(description=u"Set iff the species exhibits enough sexual dimorphism to have separate sets of sprites in Gen IV and beyond."))
+    growth_rate_id = Column(Integer, ForeignKey('growth_rates.id'), nullable=False,
+        info=dict(description="ID of the growth rate for this family"))
+    forms_switchable = Column(Boolean, nullable=False,
+        info=dict(description=u"True iff a particular individual of this species can switch beween its different forms."))
+
+create_translation_table('pokemon_species_names', PokemonSpecies, 'names',
+    relation_lazy='joined',
+    name = Column(Unicode(20), nullable=True, index=True,
+        info=dict(description="The name", format='plaintext', official=True, ripped=True)),
+    genus = Column(Unicode(16), nullable=True,
+        info=dict(description=u'The short flavor text, such as "Seed" or "Lizard"; usually affixed with the word "Pokémon"',
+        official=True, format='plaintext')),
+)
+create_translation_table('pokemon_species_flavor_summaries', PokemonSpecies, 'flavor_summaries',
+    flavor_summary = Column(Unicode(512), nullable=True,
+        info=dict(description=u"Text containing facts from all flavor texts, for languages without official game translations", official=False, format='plaintext', ripped=True)),
+)
+create_translation_table('pokemon_species_prose', PokemonSpecies, 'prose',
+    form_description = Column(Unicode(1024), nullable=True,
+        info=dict(description=u"Description of how the forms work", format='markdown', string_getter=markdown.MarkdownString)),
+)
+
+class PokemonSpeciesFlavorText(TableBase):
+    u"""In-game Pokédex descrption of a Pokémon.
+    """
+    __tablename__ = 'pokemon_species_flavor_text'
+    summary_column = PokemonSpecies.flavor_summaries_table, 'flavor_summary'
+    species_id = Column(Integer, ForeignKey('pokemon_species.id'), primary_key=True, nullable=False, autoincrement=False,
+        info=dict(description=u"ID of the Pokémon"))
+    version_id = Column(Integer, ForeignKey('versions.id'), primary_key=True, nullable=False, autoincrement=False,
+        info=dict(description=u"ID of the version that has this flavor text"))
+    language_id = Column(Integer, ForeignKey('languages.id'), primary_key=True, nullable=False,
+        info=dict(description="The language"))
+    flavor_text = Column(Unicode(255), nullable=False,
+        info=dict(description=u"The flavor text", official=True, format='gametext'))
+
 class PokemonStat(TableBase):
     u"""A stat value of a Pokémon
     """
@@ -1718,9 +1664,6 @@ EncounterSlot.method = relationship(EncounterMethod,
 EncounterSlot.version_group = relationship(VersionGroup, innerjoin=True)
 
 
-EvolutionChain.growth_rate = relationship(GrowthRate,
-    innerjoin=True,
-    backref='evolution_chains')
 EvolutionChain.baby_trigger_item = relationship(Item,
     backref='evolution_chains')
 
@@ -1963,68 +1906,28 @@ Pokemon.dream_ability = relationship(Ability,
         order_by=Pokemon.order,
     ),
 )
-Pokemon.pokemon_color = relationship(PokemonColor,
-    innerjoin=True,
-    backref='pokemon')
-Pokemon.color = association_proxy('pokemon_color', 'name')
-Pokemon.dex_numbers = relationship(PokemonDexNumber,
-    innerjoin=True,
-    order_by=PokemonDexNumber.pokedex_id.asc(),
-    backref='pokemon')
-Pokemon.egg_groups = relationship(EggGroup,
-    secondary=PokemonEggGroup.__table__,
-    innerjoin=True,
-    order_by=PokemonEggGroup.egg_group_id.asc(),
-    backref=backref('pokemon', order_by=Pokemon.order.asc()))
-Pokemon.evolution_chain = relationship(EvolutionChain,
-    innerjoin=True,
-    backref=backref('pokemon', order_by=Pokemon.order.asc()))
-Pokemon.parent_pokemon = relationship(Pokemon,
-    primaryjoin=Pokemon.evolves_from_pokemon_id==Pokemon.id,
-    remote_side=[Pokemon.id],
-    backref='child_pokemon')
-Pokemon.evolutions = relationship(PokemonEvolution,
-    primaryjoin=Pokemon.id==PokemonEvolution.evolved_pokemon_id,
-    backref=backref('evolved_pokemon', innerjoin=True, lazy='joined'))
-Pokemon.flavor_text = relationship(PokemonFlavorText,
-    order_by=PokemonFlavorText.version_id.asc(),
-    backref='pokemon')
 Pokemon.forms = relationship(PokemonForm,
-    primaryjoin=Pokemon.id==PokemonForm.form_base_pokemon_id,
-    order_by=(PokemonForm.order.asc(), PokemonForm.identifier.asc()))
+    primaryjoin=Pokemon.id==PokemonForm.pokemon_id,
+    order_by=(PokemonForm.order.asc(), PokemonForm.form_identifier.asc()))
 Pokemon.default_form = relationship(PokemonForm,
     primaryjoin=and_(
-        Pokemon.id==PokemonForm.form_base_pokemon_id,
+        Pokemon.id==PokemonForm.pokemon_id,
         PokemonForm.is_default==True),
-    uselist=False)
-Pokemon.pokemon_habitat = relationship(PokemonHabitat,
-    backref='pokemon')
-Pokemon.habitat = association_proxy('pokemon_habitat', 'name')
+    uselist=False, lazy='joined')
 Pokemon.items = relationship(PokemonItem,
     backref='pokemon')
-Pokemon.generation = relationship(Generation,
-    innerjoin=True,
-    backref='pokemon')
-Pokemon.shape = relationship(PokemonShape,
-    innerjoin=True,
-    backref='pokemon')
 Pokemon.stats = relationship(PokemonStat,
     innerjoin=True,
     order_by=PokemonStat.stat_id.asc(),
     backref='pokemon')
+Pokemon.species = relationship(PokemonSpecies,
+    innerjoin=True,
+    backref='pokemon')
 Pokemon.types = relationship(Type,
     secondary=PokemonType.__table__,
-    innerjoin=True,
+    innerjoin=True, lazy='joined',
     order_by=PokemonType.slot.asc(),
     backref=backref('pokemon', order_by=Pokemon.order))
-Pokemon.form = relationship(PokemonForm,
-    primaryjoin=or_(
-        PokemonForm.unique_pokemon_id==Pokemon.id,
-        and_(PokemonForm.unique_pokemon_id==None, 
-            PokemonForm.form_base_pokemon_id==Pokemon.id,
-            PokemonForm.is_default==True)
-        ),
-        uselist=False)
 
 PokemonDexNumber.pokedex = relationship(Pokedex,
     innerjoin=True, lazy='joined')
@@ -2042,38 +1945,22 @@ PokemonEvolution.location = relationship(Location,
     backref='triggered_evolutions')
 PokemonEvolution.known_move = relationship(Move,
     backref='triggered_evolutions')
-PokemonEvolution.party_pokemon = relationship(Pokemon,
-    primaryjoin=PokemonEvolution.party_pokemon_id==Pokemon.id,
+PokemonEvolution.party_species = relationship(PokemonSpecies,
+    primaryjoin=PokemonEvolution.party_species_id==PokemonSpecies.id,
     backref='triggered_evolutions')
-PokemonEvolution.trade_pokemon = relationship(Pokemon,
-    primaryjoin=PokemonEvolution.trade_pokemon_id==Pokemon.id)
+PokemonEvolution.trade_species = relationship(PokemonSpecies,
+    primaryjoin=PokemonEvolution.trade_species_id==PokemonSpecies.id)
 
-PokemonFlavorText.version = relationship(Version, innerjoin=True, lazy='joined')
-PokemonFlavorText.language = relationship(Language, innerjoin=True, lazy='joined')
-
-PokemonForm.form_base_pokemon = relationship(Pokemon,
-    primaryjoin=PokemonForm.form_base_pokemon_id==Pokemon.id,
-    innerjoin=True)
-PokemonForm.unique_pokemon = relationship(Pokemon,
-    primaryjoin=PokemonForm.unique_pokemon_id==Pokemon.id,
-    backref=backref('unique_form', uselist=False))
 PokemonForm.pokemon = relationship(Pokemon,
-    primaryjoin=or_(
-        PokemonForm.unique_pokemon_id==Pokemon.id,
-        and_(PokemonForm.unique_pokemon_id==None, 
-            PokemonForm.form_base_pokemon_id==Pokemon.id)
-        ), uselist=False)
+    primaryjoin=PokemonForm.pokemon_id==Pokemon.id,
+    innerjoin=True, lazy='joined')
+PokemonForm.species = association_proxy('pokemon', 'species')
 PokemonForm.version_group = relationship(VersionGroup,
     innerjoin=True)
-PokemonForm.form_group = association_proxy('form_base_pokemon', 'form_group')
 PokemonForm.pokeathlon_stats = relationship(PokemonFormPokeathlonStat,
     order_by=PokemonFormPokeathlonStat.pokeathlon_stat_id,
     backref='pokemon_form')
 
-PokemonFormGroup.pokemon = relationship(Pokemon,
-    innerjoin=True,
-    backref=backref('form_group', uselist=False))
-
 PokemonFormPokeathlonStat.pokeathlon_stat = relationship(PokeathlonStat,
     innerjoin=True, lazy='joined')
 
@@ -2104,6 +1991,62 @@ PokemonMove.method = relationship(PokemonMoveMethod,
 PokemonStat.stat = relationship(Stat,
     innerjoin=True, lazy='joined')
 
+PokemonSpecies.parent_species = relationship(PokemonSpecies,
+    primaryjoin=PokemonSpecies.evolves_from_species_id==PokemonSpecies.id,
+    remote_side=[PokemonSpecies.id],
+    backref='child_species')
+PokemonSpecies.evolutions = relationship(PokemonEvolution,
+    primaryjoin=PokemonSpecies.id==PokemonEvolution.evolved_species_id,
+    backref=backref('evolved_species', innerjoin=True, lazy='joined'))
+PokemonSpecies.flavor_text = relationship(PokemonSpeciesFlavorText,
+    order_by=PokemonSpeciesFlavorText.version_id.asc(),
+    backref='species')
+PokemonSpecies.growth_rate = relationship(GrowthRate,
+    innerjoin=True,
+    backref='evolution_chains')
+PokemonSpecies.habitat = relationship(PokemonHabitat,
+    backref='species')
+PokemonSpecies.color = relationship(PokemonColor,
+    innerjoin=True,
+    backref='species')
+PokemonSpecies.egg_groups = relationship(EggGroup,
+    secondary=PokemonEggGroup.__table__,
+    innerjoin=True,
+    order_by=PokemonEggGroup.egg_group_id.asc(),
+    backref=backref('species', order_by=Pokemon.order.asc()))
+PokemonSpecies.forms = relationship(PokemonForm,
+    secondary=Pokemon.__table__,
+    primaryjoin=PokemonSpecies.id==Pokemon.species_id,
+    secondaryjoin=Pokemon.id==PokemonForm.pokemon_id,
+    order_by=(PokemonForm.order.asc(), PokemonForm.form_identifier.asc()))
+PokemonSpecies.default_form = relationship(PokemonForm,
+    secondary=Pokemon.__table__,
+    primaryjoin=and_(PokemonSpecies.id==Pokemon.species_id,
+            Pokemon.is_default==True),
+    secondaryjoin=and_(Pokemon.id==PokemonForm.pokemon_id,
+            PokemonForm.is_default==True),
+    uselist=False)
+PokemonSpecies.default_pokemon = relationship(Pokemon,
+    primaryjoin=and_(
+        PokemonSpecies.id==Pokemon.species_id,
+        Pokemon.is_default==True),
+    uselist=False, lazy='joined')
+PokemonSpecies.evolution_chain = relationship(EvolutionChain,
+    innerjoin=True,
+    backref=backref('species', order_by=PokemonSpecies.id.asc()))
+PokemonSpecies.dex_numbers = relationship(PokemonDexNumber,
+    innerjoin=True,
+    order_by=PokemonDexNumber.pokedex_id.asc(),
+    backref='species')
+PokemonSpecies.generation = relationship(Generation,
+    innerjoin=True,
+    backref='species')
+PokemonSpecies.shape = relationship(PokemonShape,
+    innerjoin=True,
+    backref='species')
+
+PokemonSpeciesFlavorText.version = relationship(Version, innerjoin=True, lazy='joined')
+PokemonSpeciesFlavorText.language = relationship(Language, innerjoin=True, lazy='joined')
 
 Region.generation = relationship(Generation, uselist=False)
 Region.version_group_regions = relationship(VersionGroupRegion,
diff --git a/pokedex/db/util.py b/pokedex/db/util.py
index f4f151a..6c26d67 100644
--- a/pokedex/db/util.py
+++ b/pokedex/db/util.py
@@ -7,13 +7,13 @@ of pokemon, and filtering/ordering by name.
 from sqlalchemy.orm import aliased
 from sqlalchemy.sql.expression import func
 from sqlalchemy.sql.functions import coalesce
+from sqlalchemy.orm.exc import NoResultFound
 
 from pokedex.db import tables
 
 ### Getter
 
-def get(session, table, identifier=None, name=None, id=None,
-        form_identifier=None, form_name=None, language=None, is_pokemon=None):
+def get(session, table, identifier=None, name=None, id=None, language=None):
     """Get one object from the database.
 
     session: The session to use (from pokedex.db.connect())
@@ -22,26 +22,16 @@ def get(session, table, identifier=None, name=None, id=None,
     identifier: Identifier of the object
     name: The name of the object
     id: The ID number of the object
-    form_identifier: For pokemon, identifier of the form
-    form_name: For pokemon, name of the form
 
     language: A Language to use for name and form_name
-    is_pokemon: If true, specifies that the table should be treated as a
-        pokemon table (handling forms specially). If None and table is the
-        (unaliased) Pokemon, it is set to True. Otherwise, the pokemon forms
-        aren't handled.
 
     All conditions must match, so it's not a good idea to specify more than one
     of identifier/name/id at once.
 
     If zero or more than one objects matching the criteria are found, the
     appropriate SQLAlchemy exception is raised.
-    Exception: for pokemon, selects the form base unless form_* is given.
     """
 
-    if is_pokemon is None:
-        is_pokemon = (table is tables.Pokemon)
-
     query = session.query(table)
 
     if identifier is not None:
@@ -51,54 +41,42 @@ def get(session, table, identifier=None, name=None, id=None,
         query = filter_name(query, table, name, language)
 
     if id is not None:
-        query = query.filter_by(id=id)
-
-    if form_identifier is not None or form_name is not None:
-        if is_pokemon:
-            query = query.join(table.unique_form)
-            if form_identifier is not None:
-                query = query.filter(tables.PokemonForm.identifier ==
-                        form_identifier)
-            if form_name is not None:
-                query = filter_name(query, table, form_name, language)
+        # ASSUMPTION: id is the primary key of the table.
+        result = query.get(id)
+        if result is None:
+            # Keep the API
+            raise NoResultFound
         else:
-            raise ValueError(
-                "form_identifier and form_name only make sense for pokemon")
-    elif is_pokemon:
-        query = filter_base_forms(query)
+            return result
 
     return query.one()
 
 ### Helpers
 
-def filter_name(query, table, name, language):
+def filter_name(query, table, name, language, name_attribute='name'):
     """Filter a query by name, return the resulting query
 
     query: The query to filter
     table: The table of named objects
     name: The name to look for. May be a tuple of alternatives.
     language: The language for "name", or None for the session default
+    name_attribute: the attribute to use; defaults to 'name'
     """
     if language is None:
-        query = query.filter(table.name == name)
+        query = query.filter(getattr(table, name_attribute) == name)
     else:
         names_table = table.names_table
+        name_column = getattr(names_table, name_attribute)
         query = query.join(names_table)
         query = query.filter(names_table.foreign_id == table.id)
         query = query.filter(names_table.local_language_id == language.id)
         if isinstance(name, tuple):
-            query = query.filter(names_table.name in name)
+            query = query.filter(name_column in name)
         else:
-            query = query.filter(names_table.name == name)
+            query = query.filter(name_column == name)
     return query
 
-def filter_base_forms(query):
-    """Filter only base forms of pokemon, and return the resulting query
-    """
-    query = query.filter(tables.Pokemon.forms.any())
-    return query
-
-def order_by_name(query, table, language=None, *extra_languages):
+def order_by_name(query, table, language=None, *extra_languages, **kwargs):
     """Order a query by name.
 
     query: The query to order
@@ -108,12 +86,17 @@ def order_by_name(query, table, language=None, *extra_languages):
     extra_languages: Extra languages to order by, should the translations for
         `language` be incomplete (or ambiguous).
 
+    name_attribute (keyword argument): the attribute to use; defaults to 'name'
+
     Uses the identifier as a fallback ordering.
     """
+    name_attribute = kwargs.pop('name', 'name')
+    if kwargs:
+        raise ValueError('Unexpected keyword arguments: %s' % kwargs.keys())
     order_columns = []
     if language is None:
         query = query.outerjoin(table.names_local)
-        order_columns.append(func.lower(table.names_table.name))
+        order_columns.append(func.lower(getattr(table.names_table, name_attribute)))
     else:
         extra_languages = (language, ) + extra_languages
     for language in extra_languages:
@@ -121,7 +104,7 @@ def order_by_name(query, table, language=None, *extra_languages):
         query = query.outerjoin(names_table)
         query = query.filter(names_table.foreign_id == table.id)
         query = query.filter(names_table.local_language_id == language.id)
-        order_columns.append(func.lower(names_table.name))
+        order_columns.append(func.lower(getattr(names_table, name_attribute)))
     order_columns.append(table.identifier)
     query = query.order_by(coalesce(*order_columns))
     return query
diff --git a/pokedex/lookup.py b/pokedex/lookup.py
index 768a674..33f8b2a 100644
--- a/pokedex/lookup.py
+++ b/pokedex/lookup.py
@@ -103,7 +103,7 @@ class PokedexLookup(object):
             tables.Location,
             tables.Move,
             tables.Nature,
-            tables.Pokemon,
+            tables.PokemonSpecies,
             tables.PokemonForm,
             tables.Type,
         )
@@ -193,7 +193,7 @@ class PokedexLookup(object):
         # Index every name in all our tables of interest
         speller_entries = set()
         for cls in self.indexed_tables.values():
-            q = self.session.query(cls)
+            q = self.session.query(cls).order_by(cls.id)
 
             for row in q.yield_per(5):
                 row_key = dict(table=unicode(cls.__tablename__),
@@ -211,21 +211,17 @@ class PokedexLookup(object):
                     speller_entries.add(normalized_name)
 
 
-                # Add the basic English name to the index
-                if cls == tables.Pokemon:
-                    # Don't re-add alternate forms of the same Pokémon; they'll
-                    # be added as Pokémon forms instead
-                    if not row.is_base_form:
-                        continue
-                elif cls == tables.PokemonForm:
-                    if row.name:
-                        add(row.pokemon_name, None, u'en', u'us')
-                    continue
+                if cls == tables.PokemonForm:
+                    name_map = 'pokemon_name_map'
+                else:
+                    name_map = 'name_map'
 
-                # Some things also have other languages' names
-                # XXX other language form names..?
-                seen = set()
-                for language, name in getattr(row, 'name_map', {}).items():
+                seen = set([None])
+                for language, name in sorted(getattr(row, name_map, {}).items(),
+                        # Sort English first for now
+                        key=lambda (l, n): (l.identifier != 'en', not l.official)):
+                    if not name:
+                        continue
                     if name in seen:
                         # Don't add the name again as a different
                         # language; no point and it makes spell results
@@ -301,6 +297,11 @@ class PokedexLookup(object):
                 prefix = prefix.strip()
                 if prefix:
                     user_valid_types.append(prefix)
+                if prefix == 'pokemon':
+                    # When the user says 'pokemon', they really meant both
+                    # species & form.
+                    user_valid_types.append('pokemon_species')
+                    user_valid_types.append('pokemon_form')
 
         # Merge the valid types together.  Only types that appear in BOTH lists
         # may be used.
@@ -413,9 +414,6 @@ class PokedexLookup(object):
         This function currently ONLY does fuzzy matching if there are no exact
         matches.
 
-        Formes are not returned unless requested; "Shaymin" will return only
-        grass Shaymin.
-
         Extraneous whitespace is removed with extreme prejudice.
 
         Recognizes:
@@ -430,7 +428,6 @@ class PokedexLookup(object):
         - Language restrictions.  "@fr:charge" will only return Tackle, which
           is called "Charge" in French.  These can be combined with type
           restrictions, e.g., "@fr,move:charge".
-        - Alternate formes can be specified merely like "wash rotom".
 
         `input`
             Name of the thing to look for.
@@ -448,7 +445,6 @@ class PokedexLookup(object):
 
         name = self.normalize_name(input)
         exact = True
-        form = None
 
         # Pop off any type prefix and merge with valid_types
         name, merged_valid_types, type_term = \
diff --git a/pokedex/tests/__init__.py b/pokedex/tests/__init__.py
index 8343e61..3bc8d3c 100644
--- a/pokedex/tests/__init__.py
+++ b/pokedex/tests/__init__.py
@@ -1,6 +1,45 @@
-def setup():
-    # XXX This needs to recreate the database, someday.  :(
-    pass
 
-def teardown():
-    pass
+import inspect
+from functools import wraps
+
+# test support code
+def params(funcarglist):
+    """Basic list-of-dicts test parametrization
+
+    From: http://pytest.org/funcargs.html
+
+    Example:
+    @params([dict(a=1, b=2), dict(a=3, b=4)])
+    def test_lt(a, b):
+        assert a < b
+    """
+    def decorator(function):
+        function.funcarglist = funcarglist
+        return function
+    return decorator
+
+def positional_params(*paramlist):
+    """Magic list-of-lists parametrization
+
+    Example:
+    @params([(1, 2), (3, 4)])
+    def test_lt(a, b):
+        assert a < b
+    """
+    def decorator(function):
+        function.posarglist = paramlist
+        return function
+    return decorator
+
+def single_params(*paramlist):
+    """Magic list-of-lists parametrization
+
+    Example:
+    @params('1', '2', '3', '4'])
+    def test_int(k):
+        assert int(k)
+    """
+    def decorator(function):
+        function.posarglist = [[param] for param in paramlist]
+        return function
+    return decorator
diff --git a/pokedex/tests/test_database_sanity.py b/pokedex/tests/test_database_sanity.py
index ff897a4..40c6241 100644
--- a/pokedex/tests/test_database_sanity.py
+++ b/pokedex/tests/test_database_sanity.py
@@ -1,5 +1,6 @@
-from nose.tools import *
-import unittest
+
+import pytest
+
 from sqlalchemy.orm import aliased
 from sqlalchemy.orm.exc import NoResultFound
 
@@ -21,8 +22,8 @@ def test_encounter_slots():
         .join((version_group_b, tables.Version.version_group)) \
         .filter(version_group_a.id != version_group_b.id)
 
-    assert_equal(sanity_q.count(), 0,
-        "Encounter slots all match the encounters they belong to")
+    # Encounter slots all match the encounters they belong to
+    assert sanity_q.count() == 0
 
 def test_nonzero_autoincrement_ids():
     """Check that autoincrementing ids don't contain zeroes
@@ -34,8 +35,8 @@ def test_nonzero_autoincrement_ids():
     for cls in tables.mapped_classes:
         if 'id' in cls.__table__.c:
             if cls.__table__.c.id.autoincrement:
-                @raises(NoResultFound)
                 def nonzero_id(cls):
-                    util.get(session, cls, id=0)
+                    with pytest.raises(NoResultFound):
+                        util.get(session, cls, id=0)
                 nonzero_id.description = "No zero id in %s" % cls.__name__
                 yield nonzero_id, cls
diff --git a/pokedex/tests/test_lookup.py b/pokedex/tests/test_lookup.py
index 700610f..48b773e 100644
--- a/pokedex/tests/test_lookup.py
+++ b/pokedex/tests/test_lookup.py
@@ -1,104 +1,91 @@
-# encoding: utf8
-from nose.tools import *
-import unittest
+# Encoding: UTF-8
+
+from pokedex.tests import *
 
 from pokedex.lookup import PokedexLookup
 
-lookup = None
+lookup = PokedexLookup()
 
-def setup():
-    # Recreate data
-    global lookup
-    lookup = PokedexLookup()
-
-def test_exact_lookup():
-    tests = [
+@positional_params(
         # Simple lookups
-        (u'Eevee',          'pokemon',      133),
+        (u'Eevee',          'pokemon_species',133),
         (u'Scratch',        'moves',        10),
         (u'Master Ball',    'items',        1),
         (u'normal',         'types',        1),
         (u'Run Away',       'abilities',    50),
 
         # Funny characters
-        (u'Mr. Mime',       'pokemon',      122),
-        (u"Farfetch'd",     'pokemon',      83),
-        (u'Poké Ball',      'items',        4),
+        (u'Mr. Mime',       'pokemon_species', 122),
+        (u"Farfetch'd",     'pokemon_species', 83),
+        (u'Poké Ball',      'items',           4),
 
         # Forms
-        (u'Rotom',          'pokemon',      479),
-        (u'Wash Rotom',     'pokemon_forms',10059),
-        (u'East Shellos',   'pokemon_forms',10039),
+        (u'Rotom',          'pokemon_species', 479),
+        (u'Wash Rotom',     'pokemon_forms',   708),
+        (u'East Shellos',   'pokemon_forms',   688),
 
         # Other languages
-        (u'イーブイ',       'pokemon',      133),
-        (u'Iibui',          'pokemon',      133),
-        (u'Eievui',         'pokemon',      133),
-        (u'이브이',         'pokemon',      133),
-        (u'伊布',           'pokemon',      133),
-        (u'Evoli',          'pokemon',      133),
-    ]
+        (u'イーブイ',       'pokemon_species', 133),
+        (u'Iibui',          'pokemon_species', 133),
+        (u'Eievui',         'pokemon_species', 133),
+        (u'이브이',         'pokemon_species', 133),
+        (u'伊布',           'pokemon_species', 133),
+        (u'Evoli',          'pokemon_species', 133),
+    )
+def test_exact_lookup(input, table, id):
+    results = lookup.lookup(input)
+    assert len(results) == 1
+    assert results[0].exact == True
 
-    for input, table, id in tests:
-        results = lookup.lookup(input)
-        assert_equal(len(results), 1,           u"'%s' returns one result" % input)
-        assert_equal(results[0].exact, True,    u"'%s' match exactly" % input)
-
-        row = results[0].object
-        assert_equal(row.__tablename__, table,  u"'%s' is in the right table" % input)
-        assert_equal(row.id, id,                u"'%s' returns the right id" % input)
+    row = results[0].object
+    assert row.__tablename__ == table
+    assert row.id == id
 
 
 def test_id_lookup():
     results = lookup.lookup(u'1')
-    assert_true(len(results) >= 5,              u'At least five things have id 1')
-    assert_true(all(_.object.id == 1 for _ in results),
-                                                u'All results have id 1')
+    assert len(results) >= 5
+    assert all(result.object.id == 1 for result in results)
+
 
 def test_multi_lookup():
     results = lookup.lookup(u'Metronome')
-    assert_equal(len(results), 2,               u'Two things called "Metronome"')
-    assert_true(results[0].exact,               u'Metronome matches are exact')
+    assert len(results) == 2
+    assert results[0].exact
 
 
 def test_type_lookup():
     results = lookup.lookup(u'pokemon:1')
-    assert_equal(results[0].object.__tablename__, 'pokemon',
-                                                u'Type restriction works correctly')
-    assert_equal(len(results), 1,               u'Only one id result when type is specified')
-    assert_equal(results[0].object.name, u'Bulbasaur',
-                                                u'Type + id returns the right result')
+    assert results[0].object.__tablename__ == 'pokemon_species'
+    assert len(results) == 1
+    assert results[0].object.name == u'Bulbasaur'
+
+    results = lookup.lookup(u'1', valid_types=['pokemon_species'])
+    assert results[0].object.name == u'Bulbasaur'
 
-    results = lookup.lookup(u'1', valid_types=['pokemon'])
-    assert_equal(results[0].object.name, u'Bulbasaur',
-                                                u'valid_types works as well as type: prefix')
 
 def test_language_lookup():
     # There are two objects named "charge": the move Charge, and the move
     # Tackle, which is called "Charge" in French.
     results = lookup.lookup(u'charge')
-    assert_true(len(results) > 1,               u'There are multiple "charge"s')
+    assert len(results) > 1
 
     results = lookup.lookup(u'@fr:charge')
-    assert_equal(results[0].iso639, u'fr',      u'Language restriction works correctly')
-    assert_equal(len(results), 1,               u'Only one "charge" result when language is specified')
-    assert_equal(results[0].object.name, u'Tackle',
-                                                u'Language + vague name returns the right result')
+    assert results[0].iso639 == u'fr'
+    assert len(results) == 1
+    assert results[0].object.name == u'Tackle'
 
     results = lookup.lookup(u'charge', valid_types=['@fr'])
-    assert_equal(results[0].object.name, u'Tackle',
-                                                u'valid_types works as well as @lang: prefix')
+    assert results[0].object.name == u'Tackle'
 
     results = lookup.lookup(u'@fr,move:charge')
-    assert_equal(results[0].object.name, u'Tackle',
-                                                u'Languages and types both work together')
+    assert results[0].object.name == u'Tackle'
 
     results = lookup.lookup(u'@fr:charge', valid_types=['move'])
-    assert_equal(results[0].object.name, u'Tackle',
-                                                u'valid_types and language prefixes get along')
+    assert results[0].object.name, u'Tackle'
 
-def test_fuzzy_lookup():
-    tests = [
+
+@positional_params(
         # Regular English names
         (u'chamander',          u'Charmander'),
         (u'pokeball',           u'Poké Ball'),
@@ -110,44 +97,51 @@ def test_fuzzy_lookup():
         # Sufficiently long foreign names
         (u'カクレオ',           u'Kecleon'),
         (u'Yamikrasu',          u'Murkrow'),
-    ]
+    )
+def test_fuzzy_lookup(misspelling, name):
+    results = lookup.lookup(misspelling)
+    first_result = results[0]
+    assert first_result.object.name == name
 
-    for misspelling, name in tests:
-        results = lookup.lookup(misspelling)
-        first_result = results[0]
-        assert_equal(first_result.object.name, name,
-                                                u'Simple misspellings are corrected')
 
+def test_nidoran():
     results = lookup.lookup(u'Nidoran')
-    top_names = [_.object.name for _ in results[0:2]]
-    assert_true(u'Nidoran♂' in top_names,       u'Nidoran♂ is a top result for "Nidoran"')
-    assert_true(u'Nidoran♀' in top_names,       u'Nidoran♀ is a top result for "Nidoran"')
+    top_names = [result.object.name for result in results[0:2]]
+    assert u'Nidoran♂' in top_names
+    assert u'Nidoran♀' in top_names
 
-def test_wildcard_lookup():
-    tests = [
+
+@positional_params(
         (u'pokemon:*meleon',    u'Charmeleon'),
         (u'item:master*',       u'Master Ball'),
         (u'ee?ee',              u'Eevee'),
-    ]
+    )
+def test_wildcard_lookup(wildcard, name):
+    results = lookup.lookup(wildcard)
+    first_result = results[0]
+    assert first_result.object.name == name
 
-    for wildcard, name in tests:
-        results = lookup.lookup(wildcard)
-        first_result = results[0]
-        assert_equal(first_result.object.name, name,
-                                                u'Wildcards work correctly')
 
-def test_random_lookup():
-    for _ in xrange(5):
+def test_bare_random():
+    for i in range(5):
         results = lookup.lookup(u'random')
-        assert_equal(len(results), 1,           u'Random returns one result')
+        assert len(results) == 1
+
+
+@positional_params(
+        [u'pokemon_species'],
+        [u'moves'],
+        [u'items'],
+        [u'abilities'],
+        [u'types'],
+    )
+def test_qualified_random(table_name):
+    results = lookup.lookup(u'random', valid_types=[table_name])
+    assert len(results) == 1
+    assert results[0].object.__tablename__ == table_name
 
-    for table_name in [u'pokemon', u'moves', u'items', u'abilities', u'types']:
-        results = lookup.lookup(u'random', valid_types=[table_name])
-        assert_equal(len(results), 1,           u'Constrained random returns one result')
-        assert_equal(results[0].object.__tablename__, table_name,
-                                                u'Constrained random returns result from the right table')
 
 def test_crash_empty_prefix():
     """Searching for ':foo' used to crash, augh!"""
     results = lookup.lookup(u':Eevee')
-    assert_equal(results[0].object.name, u'Eevee', u'Empty prefix dun crash')
+    assert results[0].object.name == u'Eevee'
diff --git a/pokedex/tests/test_media.py b/pokedex/tests/test_media.py
index 81b5714..375c94d 100644
--- a/pokedex/tests/test_media.py
+++ b/pokedex/tests/test_media.py
@@ -1,4 +1,3 @@
-
 """Test the media accessors.
 
 If run directly from the command line, also tests the accessors and the names
@@ -6,73 +5,77 @@ of all the media by getting just about everything in a naive brute-force way.
 This, of course, takes a lot of time to run.
 """
 
+import pytest
+
 import os
 import re
 
-from nose.tools import *
-from nose.plugins.skip import SkipTest
-import nose
-import pkg_resources
-
 from pokedex.db import tables, connect
 from pokedex.util import media
 
+def pytest_funcarg__root(request):
+    root = request.config.option.media_root
+    if not root:
+        root = os.path.join(os.path.dirname(__file__), *'../data/media'.split('/'))
+        if not media.BaseMedia(root).available:
+            raise pytest.skip("Media unavailable")
+    return root
+
 session = connect()
-basedir = pkg_resources.resource_filename('pokedex', 'data/media')
 
 path_re = re.compile('^[-a-z0-9./]*$')
 
-def test_totodile():
+def test_totodile(root):
     """Totodile's female sprite -- same as male"""
-    totodile = session.query(tables.Pokemon).filter_by(identifier=u'totodile').one()
-    accessor = media.PokemonMedia(totodile)
+    totodile = session.query(tables.PokemonSpecies).filter_by(identifier=u'totodile').one()
+    accessor = media.PokemonSpeciesMedia(root, totodile)
     assert accessor.sprite() == accessor.sprite(female=True)
 
-def test_chimecho():
+def test_chimecho(root):
     """Chimecho's Platinum female backsprite -- diffeent from male"""
-    chimecho = session.query(tables.Pokemon).filter_by(identifier=u'chimecho').one()
-    accessor = media.PokemonMedia(chimecho)
+    chimecho = session.query(tables.PokemonSpecies).filter_by(identifier=u'chimecho').one()
+    accessor = media.PokemonSpeciesMedia(root, chimecho)
     male = accessor.sprite('platinum', back=True, frame=2)
     female = accessor.sprite('platinum', back=True, female=True, frame=2)
     assert male != female
 
-def test_venonat():
+def test_venonat(root):
     """Venonat's shiny Yellow sprite -- same as non-shiny"""
-    venonat = session.query(tables.Pokemon).filter_by(identifier=u'venonat').one()
-    accessor = media.PokemonMedia(venonat)
+    venonat = session.query(tables.PokemonSpecies).filter_by(identifier=u'venonat').one()
+    accessor = media.PokemonSpeciesMedia(root, venonat)
     assert accessor.sprite('yellow') == accessor.sprite('yellow', shiny=True)
 
-def test_arceus_icon():
+def test_arceus_icon(root):
     """Arceus fire-form icon -- same as base icon"""
-    arceus = session.query(tables.Pokemon).filter_by(identifier=u'arceus').one()
-    accessor = media.PokemonMedia(arceus)
-    fire_arceus = [f for f in arceus.forms if f.identifier == 'fire'][0]
-    fire_accessor = media.PokemonFormMedia(fire_arceus)
+    arceus = session.query(tables.PokemonSpecies).filter_by(identifier=u'arceus').one()
+    accessor = media.PokemonSpeciesMedia(root, arceus)
+    fire_arceus = [f for f in arceus.forms if f.form_identifier == 'fire'][0]
+    fire_accessor = media.PokemonFormMedia(root, fire_arceus)
     assert accessor.icon() == fire_accessor.icon()
 
-@raises(ValueError)
-def test_strict_castform():
+def test_strict_castform(root):
     """Castform rainy form overworld with strict -- unavailable"""
-    castform = session.query(tables.Pokemon).filter_by(identifier=u'castform').first()
-    rainy_castform = [f for f in castform.forms if f.identifier == 'rainy'][0]
-    rainy_castform = media.PokemonFormMedia(rainy_castform)
-    rainy_castform.overworld('up', strict=True)
+    with pytest.raises(ValueError):
+        castform = session.query(tables.PokemonSpecies).filter_by(identifier=u'castform').first()
+        rainy_castform = [f for f in castform.forms if f.form_identifier == 'rainy'][0]
+        print rainy_castform
+        rainy_castform = media.PokemonFormMedia(root, rainy_castform)
+        rainy_castform.overworld('up', strict=True)
 
-@raises(ValueError)
-def test_strict_exeggcute():
+def test_strict_exeggcute(root):
     """Exeggcutes's female backsprite, with strict -- unavailable"""
-    exeggcute = session.query(tables.Pokemon).filter_by(identifier=u'exeggcute').one()
-    accessor = media.PokemonMedia(exeggcute)
-    accessor.sprite(female=True, strict=True)
+    with pytest.raises(ValueError):
+        exeggcute = session.query(tables.PokemonSpecies).filter_by(identifier=u'exeggcute').one()
+        accessor = media.PokemonSpeciesMedia(root, exeggcute)
+        accessor.sprite(female=True, strict=True)
 
 
 
-def get_all_filenames():
-    print 'Reading all filenames...'
-
+def get_all_filenames(root):
     all_filenames = set()
 
-    for dirpath, dirnames, filenames in os.walk(basedir):
+    for dirpath, dirnames, filenames in os.walk(root):
+        dirnames[:] = [dirname for dirname in dirnames if dirname != '.git']
         for filename in filenames:
             path = os.path.join(dirpath, filename)
             assert path_re.match(path), path
@@ -101,7 +104,8 @@ def hit(filenames, method, *args, **kwargs):
         pass
     return True
 
-def check_get_everything():
+@pytest.mark.skipif("not config.getvalue('all')", reason='`--all` not specified')
+def test_get_everything(root, pytestconfig):
     """
     For every the accessor method, loop over the Cartesian products of all
     possible values for its arguments.
@@ -110,34 +114,35 @@ def check_get_everything():
 
     Well, there are exceptions of course.
     """
+    assert pytestconfig.getvalue('all')
 
     versions = list(session.query(tables.Version).all())
     versions.append('red-green')
 
     black = session.query(tables.Version).filter_by(identifier=u'black').one()
 
-    filenames = get_all_filenames()
+    filenames = get_all_filenames(root)
 
     # Some small stuff first
 
     for damage_class in session.query(tables.MoveDamageClass).all():
-        assert hit(filenames, media.DamageClassMedia(damage_class).icon)
+        assert hit(filenames, media.DamageClassMedia(root, damage_class).icon)
 
     for habitat in session.query(tables.PokemonHabitat).all():
-        assert hit(filenames, media.HabitatMedia(habitat).icon)
+        assert hit(filenames, media.HabitatMedia(root, habitat).icon)
 
     for shape in session.query(tables.PokemonShape).all():
-        assert hit(filenames, media.ShapeMedia(shape).icon)
+        assert hit(filenames, media.ShapeMedia(root, shape).icon)
 
     for item_pocket in session.query(tables.ItemPocket).all():
-        assert hit(filenames, media.ItemPocketMedia(item_pocket).icon)
-        assert hit(filenames, media.ItemPocketMedia(item_pocket).icon, selected=True)
+        assert hit(filenames, media.ItemPocketMedia(root, item_pocket).icon)
+        assert hit(filenames, media.ItemPocketMedia(root, item_pocket).icon, selected=True)
 
     for contest_type in session.query(tables.ContestType).all():
-        assert hit(filenames, media.ContestTypeMedia(contest_type).icon)
+        assert hit(filenames, media.ContestTypeMedia(root, contest_type).icon)
 
     for elemental_type in session.query(tables.Type).all():
-        assert hit(filenames, media.TypeMedia(elemental_type).icon)
+        assert hit(filenames, media.TypeMedia(root, elemental_type).icon)
 
     # Items
     versions_for_items = [
@@ -146,7 +151,7 @@ def check_get_everything():
         ]
 
     for item in session.query(tables.Item).all():
-        accessor = media.ItemMedia(item)
+        accessor = media.ItemMedia(root, item)
         assert hit(filenames, accessor.berry_image) or not item.berry
         for rotation in (0, 90, 180, 270):
             assert hit(filenames, accessor.underground, rotation=rotation) or (
@@ -158,11 +163,11 @@ def check_get_everything():
 
     for color in 'red green blue pale prism'.split():
         for big in (True, False):
-            accessor = media.UndergroundSphereMedia(color=color, big=big)
+            accessor = media.UndergroundSphereMedia(root, color=color, big=big)
             assert hit(filenames, accessor.underground)
 
     for rock_type in 'i ii o o-big s t z'.split():
-        accessor = media.UndergroundRockMedia(rock_type)
+        accessor = media.UndergroundRockMedia(root, rock_type)
         for rotation in (0, 90, 180, 270):
             success = hit(filenames, accessor.underground, rotation=rotation)
             assert success or rotation
@@ -170,30 +175,28 @@ def check_get_everything():
     # Pokemon!
     accessors = []
 
-    accessors.append(media.UnknownPokemonMedia())
-    accessors.append(media.EggMedia())
-    manaphy = session.query(tables.Pokemon).filter_by(identifier=u'manaphy').one()
-    accessors.append(media.EggMedia(manaphy))
-    accessors.append(media.SubstituteMedia())
+    accessors.append(media.UnknownPokemonMedia(root))
+    accessors.append(media.EggMedia(root))
+    manaphy = session.query(tables.PokemonSpecies).filter_by(identifier=u'manaphy').one()
+    accessors.append(media.EggMedia(root, manaphy))
+    accessors.append(media.SubstituteMedia(root))
 
-    print 'Loading pokemon'
+    for form in session.query(tables.PokemonForm).all():
+        accessors.append(media.PokemonFormMedia(root, form))
 
-    for form in session.query(tables.PokemonForm).filter(tables.PokemonForm.identifier != '').all():
-        accessors.append(media.PokemonFormMedia(form))
-
-    for pokemon in session.query(tables.Pokemon).all():
-        accessors.append(media.PokemonMedia(pokemon))
+    for pokemon in session.query(tables.PokemonSpecies).all():
+        accessors.append(media.PokemonSpeciesMedia(root, pokemon))
 
     for accessor in accessors:
-        assert hit(filenames, accessor.footprint) or not accessor.form
-        assert hit(filenames, accessor.trozei) or not accessor.form or (
-                accessor.form.pokemon.generation.id > 3)
-        assert hit(filenames, accessor.cry) or not accessor.form
-        assert hit(filenames, accessor.cropped_sprite) or not accessor.form
+        assert hit(filenames, accessor.footprint) or not accessor.is_proper
+        assert hit(filenames, accessor.trozei) or not accessor.is_proper or (
+                accessor.introduced_in > 3)
+        assert hit(filenames, accessor.cry) or not accessor.is_proper
+        assert hit(filenames, accessor.cropped_sprite) or not accessor.is_proper
         for female in (True, False):
-            assert hit(filenames, accessor.icon, female=female) or not accessor.form
+            assert hit(filenames, accessor.icon, female=female) or not accessor.is_proper
             assert hit(filenames, accessor.sugimori, female=female) or (
-                    not accessor.form or accessor.form.pokemon.id >= 647)
+                    not accessor.is_proper or int(accessor.species_id) >= 647)
             for shiny in (True, False):
                 for frame in (1, 2):
                     for direction in 'up down left right'.split():
@@ -202,8 +205,8 @@ def check_get_everything():
                                 shiny=shiny,
                                 female=female,
                                 frame=frame,
-                            ) or not accessor.form or (
-                                    accessor.form.pokemon.generation.id > 4)
+                            ) or not accessor.is_proper or (
+                                    accessor.introduced_in > 4)
                     for version in versions:
                         for animated in (True, False):
                             for back in (True, False):
@@ -223,34 +226,29 @@ def check_get_everything():
                                         shiny and not female and
                                         frame == 1):
                                         # All pokemon are in Black
-                                        assert success or not accessor.form
-                                    if (str(accessor.pokemon_id) == '1'
+                                        assert success or not accessor.is_proper
+                                    if (str(accessor.species_id) == '1'
                                         and not animated and not color and
                                         frame == 1):
                                         # Bulbasaur is in all versions
                                         assert success
 
     # Remove exceptions
-    exceptions = [os.path.join(basedir, dirname) for dirname in
+    exceptions = [os.path.join(root, dirname) for dirname in
             'chrome fonts ribbons'.split()]
-    exceptions.append(os.path.join(basedir, 'items', 'hm-'))
+    exceptions.append(os.path.join(root, 'items', 'hm-'))
     exceptions = tuple(exceptions)
 
-    for filename in tuple(filenames):
+    unaccessed_filenames = set(filenames)
+    for filename in filenames:
         if filename.startswith(exceptions):
-            filenames.remove(filename)
+            unaccessed_filenames.remove(filename)
 
-    if len(filenames):
-        print
-        print '-----------------'
-        print 'Unaccessed stuff:'
-        for filename in sorted(filenames):
+    if unaccessed_filenames:
+        print 'Unaccessed files:'
+        for filename in unaccessed_filenames:
             print filename
-        print len(filenames), 'unaccessed files :('
+
+    assert unaccessed_filenames == set()
 
     return (not filenames)
-
-if __name__ == '__main__':
-    result = nose.run(defaultTest=__file__)
-    result = result and check_get_everything()
-    exit(not result)
diff --git a/pokedex/tests/test_roomaji.py b/pokedex/tests/test_roomaji.py
index dc95afb..2721938 100644
--- a/pokedex/tests/test_roomaji.py
+++ b/pokedex/tests/test_roomaji.py
@@ -1,12 +1,9 @@
 # encoding: utf8
-from nose.tools import *
-import unittest
 
 import pokedex.roomaji
+from pokedex.tests import positional_params
 
-
-def test_roomaji():
-    tests = [
+@positional_params(
         (u'ヤミカラス',         'yamikarasu'),
 
         # Elongated vowel
@@ -24,14 +21,13 @@ def test_roomaji():
         (u'ラティアス',         'ratiasu'),
         (u'ウィー',             'wii'),
         (u'セレビィ',           'sereby'),
-    ]
+    )
+def test_roomaji(kana, roomaji):
+    result = pokedex.roomaji.romanize(kana)
+    assert result == roomaji
 
-    for kana, roomaji in tests:
-        result = pokedex.roomaji.romanize(kana)
-        assert_equal(result, roomaji, u"'%s' romanizes correctly" % roomaji)
 
-def test_roomaji_cs():
-    tests = [
+@positional_params(
         (u'ヤミカラス',         u'jamikarasu'),
 
         # Elongated vowel
@@ -49,8 +45,7 @@ def test_roomaji_cs():
         (u'ラティアス',         u'ratiasu'),
         (u'ウィー',             u'wí'),
         (u'セレビィ',           u'serebí'),
-    ]
-
-    for kana, roomaji in tests:
-        result = pokedex.roomaji.romanize(kana, 'cs')
-        assert_equal(result, roomaji, u"'%s' romanizes correctly for Czech" % roomaji)
+    )
+def test_roomaji_cs(kana, roomaji):
+    result = pokedex.roomaji.romanize(kana, 'cs')
+    assert result == roomaji
diff --git a/pokedex/tests/test_schema.py b/pokedex/tests/test_schema.py
index c09564a..ce7b53a 100644
--- a/pokedex/tests/test_schema.py
+++ b/pokedex/tests/test_schema.py
@@ -1,6 +1,7 @@
 # encoding: utf8
-from nose.tools import *
-import unittest
+
+from pokedex.tests import single_params
+
 from sqlalchemy import Column, Integer, String, create_engine
 from sqlalchemy.orm import class_mapper, joinedload, sessionmaker
 from sqlalchemy.orm.session import Session
@@ -10,22 +11,23 @@ from pokedex.db import tables, markdown
 from pokedex.db.multilang import MultilangScopedSession, MultilangSession, \
     create_translation_table
 
-def test_variable_names():
+@single_params(*dir(tables))
+def test_variable_names(varname):
     """We want pokedex.db.tables to export tables using the class name"""
-    for varname in dir(tables):
-        if not varname[0].isupper():
-            continue
-        table = getattr(tables, varname)
-        try:
-            if not issubclass(table, tables.TableBase) or table is tables.TableBase:
-                continue
-        except TypeError:
-            continue
-        classname = table.__name__
-        if classname and varname[0].isupper():
-            assert varname == classname, '%s refers to %s' % (varname, classname)
-    for table in tables.mapped_classes:
-        assert getattr(tables, table.__name__) is table
+    table = getattr(tables, varname)
+    try:
+        if not issubclass(table, tables.TableBase) or table is tables.TableBase:
+            return
+    except TypeError:
+        return
+    classname = table.__name__
+    if classname and varname[0].isupper():
+        assert varname == classname, '%s refers to %s' % (varname, classname)
+
+@single_params(*tables.mapped_classes)
+def test_variable_names_2(table):
+    """We also want all of the tables exported"""
+    assert getattr(tables, table.__name__) is table
 
 def test_class_order():
     """The declarative classes should be defined in alphabetical order.
@@ -156,51 +158,52 @@ def test_i18n_table_creation():
     assert foo.name_map[lang_en] == 'different english'
     assert foo.name_map[lang_ru] == 'new russian'
 
-def test_texts():
+classes = []
+for cls in tables.mapped_classes:
+    classes.append(cls)
+    classes += cls.translation_classes
+@single_params(*classes)
+def test_texts(cls):
     """Check DB schema for integrity of text columns & translations.
 
     Mostly protects against copy/paste oversights and rebase hiccups.
     If there's a reason to relax the tests, do it
     """
-    classes = []
-    for cls in tables.mapped_classes:
-        classes.append(cls)
-        classes += cls.translation_classes
-    for cls in classes:
-        if hasattr(cls, 'local_language') or hasattr(cls, 'language'):
-            good_formats = 'markdown plaintext gametext'.split()
-            assert_text = '%s is language-specific'
+    if hasattr(cls, 'local_language') or hasattr(cls, 'language'):
+        good_formats = 'markdown plaintext gametext'.split()
+        assert_text = '%s is language-specific'
+    else:
+        good_formats = 'identifier latex'.split()
+        assert_text = '%s is not language-specific'
+    columns = sorted(cls.__table__.c, key=lambda c: c.name)
+    text_columns = []
+    for column in columns:
+        format = column.info.get('format', None)
+        if format is not None:
+            if format not in good_formats:
+                raise AssertionError(assert_text % column)
+            if (format != 'identifier') and (column.name == 'identifier'):
+                raise AssertionError('%s: identifier column name/type mismatch' % column)
+            if column.info.get('official', None) and format not in 'gametext plaintext':
+                raise AssertionError('%s: official text with bad format' % column)
+            text_columns.append(column)
         else:
-            good_formats = 'identifier latex'.split()
-            assert_text = '%s is not language-specific'
-        columns = sorted(cls.__table__.c, key=lambda c: c.name)
-        text_columns = []
-        for column in columns:
-            format = column.info.get('format', None)
-            if format is not None:
-                if format not in good_formats:
-                    raise AssertionError(assert_text % column)
-                if (format != 'identifier') and (column.name == 'identifier'):
-                    raise AssertionError('%s: identifier column name/type mismatch' % column)
-                if column.info.get('official', None) and format not in 'gametext plaintext':
-                    raise AssertionError('%s: official text with bad format' % column)
-                text_columns.append(column)
-            else:
-                if isinstance(column.type, tables.Unicode):
-                    raise AssertionError('%s: text column without format' % column)
-            if column.name == 'name' and format != 'plaintext':
-                raise AssertionError('%s: non-plaintext name' % column)
-            # No mention of English in the description
-            assert 'English' not in column.info['description'], column
-        # If there's more than one text column in a translation table,
-        # they have to be nullable, to support missing translations
-        if hasattr(cls, 'local_language') and len(text_columns) > 1:
-            for column in text_columns:
-                assert column.nullable
+            if isinstance(column.type, tables.Unicode):
+                raise AssertionError('%s: text column without format' % column)
+        if column.name == 'name' and format != 'plaintext':
+            raise AssertionError('%s: non-plaintext name' % column)
+        # No mention of English in the description
+        assert 'English' not in column.info['description'], column
+    # If there's more than one text column in a translation table,
+    # they have to be nullable, to support missing translations
+    if hasattr(cls, 'local_language') and len(text_columns) > 1:
+        for column in text_columns:
+            assert column.nullable
 
-def test_identifiers_with_names():
+@single_params(*tables.mapped_classes)
+def test_identifiers_with_names(table):
     """Test that named tables have identifiers
     """
-    for table in sorted(tables.mapped_classes, key=lambda t: t.__name__):
-        if hasattr(table, 'name'):
+    for translation_class in table.translation_classes:
+        if hasattr(translation_class, 'name'):
             assert hasattr(table, 'identifier'), table
diff --git a/pokedex/tests/test_strings.py b/pokedex/tests/test_strings.py
index 0b55da3..09fe6f9 100644
--- a/pokedex/tests/test_strings.py
+++ b/pokedex/tests/test_strings.py
@@ -1,150 +1,147 @@
 # Encoding: UTF-8
 
-from nose.tools import *
-from sqlalchemy.orm.exc import NoResultFound
+import pytest
+
+from pokedex.tests import positional_params
 
 from pokedex.db import tables, connect, util, markdown
 
-class TestStrings(object):
-    def setup(self):
-        self.connection = connect()
+connection = connect()
 
-    def teardown(self):
-        self.connection.rollback()
+def test_filter():
+    q = connection.query(tables.PokemonSpecies).filter(
+            tables.PokemonSpecies.name == u"Marowak")
+    assert q.one().identifier == 'marowak'
 
-    def test_filter(self):
-        q = self.connection.query(tables.Pokemon).filter(
-                tables.Pokemon.name == u"Marowak")
-        assert q.one().identifier == 'marowak'
+def test_languages():
+    q = connection.query(tables.PokemonSpecies).filter(
+            tables.PokemonSpecies.name == u"Mightyena")
+    pkmn = q.one()
+    for lang, name in (
+            ('en', u'Mightyena'),
+            ('ja', u'グラエナ'),
+            ('roomaji', u'Guraena'),
+            ('fr', u'Grahyèna'),
+        ):
+        language = connection.query(tables.Language).filter_by(
+                identifier=lang).one()
+        assert pkmn.name_map[language] == name
 
-    def test_languages(self):
-        q = self.connection.query(tables.Pokemon).filter(
-                tables.Pokemon.name == u"Mightyena")
-        pkmn = q.one()
-        for lang, name in (
-                ('en', u'Mightyena'),
-                ('ja', u'グラエナ'),
-                ('roomaji', u'Guraena'),
-                ('fr', u'Grahyèna'),
-            ):
-            language = self.connection.query(tables.Language).filter_by(
-                    identifier=lang).one()
-            assert pkmn.name_map[language] == name
-
-    @raises(KeyError)
-    def test_bad_lang(self):
-        q = self.connection.query(tables.Pokemon).filter(
-                tables.Pokemon.name == u"Mightyena")
+def test_bad_lang():
+    with pytest.raises(KeyError):
+        q = connection.query(tables.PokemonSpecies).filter(
+                tables.PokemonSpecies.name == u"Mightyena")
         pkmn = q.one()
         pkmn.names["identifier of a language that doesn't exist"]
 
-    def test_mutating(self):
-        item = self.connection.query(tables.Item).filter_by(
-                identifier=u"jade-orb").one()
-        language = self.connection.query(tables.Language).filter_by(
-                identifier=u"de").one()
-        item.name_map[language] = u"foo"
-        assert item.name_map[language] == "foo"
-        item.name_map[language] = u"xyzzy"
-        assert item.name_map[language] == "xyzzy"
+def test_mutating():
+    item = connection.query(tables.Item).filter_by(
+            identifier=u"jade-orb").one()
+    language = connection.query(tables.Language).filter_by(
+            identifier=u"de").one()
+    item.name_map[language] = u"foo"
+    assert item.name_map[language] == "foo"
+    item.name_map[language] = u"xyzzy"
+    assert item.name_map[language] == "xyzzy"
 
-    def test_mutating_default(self):
-        item = self.connection.query(tables.Item).filter_by(
-                identifier=u"jade-orb").one()
-        item.name = u"foo"
-        assert item.name == "foo"
+def test_mutating_default():
+    item = connection.query(tables.Item).filter_by(
+            identifier=u"jade-orb").one()
+    item.name = u"foo"
+    assert item.name == "foo"
 
-    def test_string_mapping(self):
-        item = self.connection.query(tables.Item).filter_by(
-                identifier=u"jade-orb").one()
-        assert len(item.name_map) == len(item.names)
-        for lang in item.names:
-            assert item.name_map[lang] == item.names[lang].name
-            assert lang in item.name_map
-        assert "language that doesn't exist" not in item.name_map
-        assert tables.Language() not in item.name_map
+def test_string_mapping():
+    item = connection.query(tables.Item).filter_by(
+            identifier=u"jade-orb").one()
+    assert len(item.name_map) == len(item.names)
+    for lang in item.names:
+        assert item.name_map[lang] == item.names[lang].name
+        assert lang in item.name_map
+    assert "language that doesn't exist" not in item.name_map
+    assert tables.Language() not in item.name_map
 
-    def test_new_language(self):
-        item = self.connection.query(tables.Item).filter_by(
-                identifier=u"jade-orb").one()
-        language = tables.Language()
-        language.id = -1
-        language.identifier = u'test'
-        language.iso639 = language.iso3166 = u'--'
-        language.official = False
-        self.connection.add(language)
-        item.name_map[language] = u"foo"
-        assert item.name_map[language] == "foo"
-        assert language in item.name_map
-        item.name_map[language] = u"xyzzy"
-        assert item.name_map[language] == "xyzzy"
+def test_new_language():
+    item = connection.query(tables.Item).filter_by(
+            identifier=u"jade-orb").one()
+    language = tables.Language()
+    language.id = -1
+    language.identifier = u'test'
+    language.iso639 = language.iso3166 = u'--'
+    language.official = False
+    connection.add(language)
+    item.name_map[language] = u"foo"
+    assert item.name_map[language] == "foo"
+    assert language in item.name_map
+    item.name_map[language] = u"xyzzy"
+    assert item.name_map[language] == "xyzzy"
 
-    def test_markdown(self):
-        move = self.connection.query(tables.Move).filter_by(
-                identifier=u"thunderbolt").one()
-        language = self.connection.query(tables.Language).filter_by(
-                identifier=u"en").one()
-        assert '10%' in move.effect.as_text()
-        assert '10%' in move.effect_map[language].as_text()
-        assert '10%' in move.effect.as_html()
-        assert '10%' in move.effect_map[language].as_html()
-        assert '10%' in unicode(move.effect)
-        assert '10%' in unicode(move.effect_map[language])
-        assert '10%' in move.effect.__html__()
-        assert '10%' in move.effect_map[language].__html__()
+def test_markdown():
+    move = connection.query(tables.Move).filter_by(
+            identifier=u"thunderbolt").one()
+    language = connection.query(tables.Language).filter_by(
+            identifier=u"en").one()
+    assert '10%' in move.effect.as_text()
+    assert '10%' in move.effect_map[language].as_text()
+    assert '10%' in move.effect.as_html()
+    assert '10%' in move.effect_map[language].as_html()
+    assert '10%' in unicode(move.effect)
+    assert '10%' in unicode(move.effect_map[language])
+    assert '10%' in move.effect.__html__()
+    assert '10%' in move.effect_map[language].__html__()
 
-    def test_markdown_string(self):
-        en = util.get(self.connection, tables.Language, 'en')
-        md = markdown.MarkdownString('[]{move:thunderbolt} [paralyzes]{mechanic:paralysis}', self.connection, en)
-        assert unicode(md) == 'Thunderbolt paralyzes'
-        assert md.as_html() == '<p><span>Thunderbolt</span> <span>paralyzes</span></p>'
-        assert md.as_html(object_url=lambda category, obj: "%s/%s" % (category, obj.identifier)) == (
-                '<p><a href="move/thunderbolt">Thunderbolt</a> <span>paralyzes</span></p>')
-        print md.as_html(identifier_url=lambda category, ident: "%s/%s" % (category, ident))
-        assert md.as_html(identifier_url=lambda category, ident: "%s/%s" % (category, ident)) == (
-                '<p><a href="move/thunderbolt">Thunderbolt</a> <a href="mechanic/paralysis">paralyzes</a></p>')
+def test_markdown_string():
+    en = util.get(connection, tables.Language, 'en')
+    md = markdown.MarkdownString('[]{move:thunderbolt} [paralyzes]{mechanic:paralysis}', connection, en)
+    assert unicode(md) == 'Thunderbolt paralyzes'
+    assert md.as_html() == '<p><span>Thunderbolt</span> <span>paralyzes</span></p>'
+    assert md.as_html(object_url=lambda category, obj: "%s/%s" % (category, obj.identifier)) == (
+            '<p><a href="move/thunderbolt">Thunderbolt</a> <span>paralyzes</span></p>')
+    print md.as_html(identifier_url=lambda category, ident: "%s/%s" % (category, ident))
+    assert md.as_html(identifier_url=lambda category, ident: "%s/%s" % (category, ident)) == (
+            '<p><a href="move/thunderbolt">Thunderbolt</a> <a href="mechanic/paralysis">paralyzes</a></p>')
 
-    def test_markdown_values(self):
-        """Check all markdown values
+def markdown_column_params():
+    """Check all markdown values
 
-        Scans the database schema for Markdown columns, runs through every value
-        in each, and ensures that it's valid Markdown.
-        """
+    Scans the database schema for Markdown columns, runs through every value
+    in each, and ensures that it's valid Markdown.
+    """
 
-        # Move effects have their own special wrappers.  Explicitly test them separately
-        yield self.check_markdown_column, tables.Move, None, 'effect'
-        yield self.check_markdown_column, tables.Move, None, 'short_effect'
+    # Move effects have their own special wrappers.  Explicitly test them separately
+    yield tables.Move, None, 'effect'
+    yield tables.Move, None, 'short_effect'
 
-        for cls in tables.mapped_classes:
-            for translation_cls in cls.translation_classes:
-                for column in translation_cls.__table__.c:
-                    if column.info.get('string_getter') == markdown.MarkdownString:
-                        yield self.check_markdown_column, cls, translation_cls, column.name
+    for cls in tables.mapped_classes:
+        for translation_cls in cls.translation_classes:
+            for column in translation_cls.__table__.c:
+                if column.info.get('string_getter') == markdown.MarkdownString:
+                    yield cls, translation_cls, column.name
 
-    def check_markdown_column(self, parent_class, translation_class, column_name):
-        """Implementation for the above"""
-        query = self.connection.query(parent_class)
-        if translation_class:
-            query = query.join(translation_class)
-        for item in query:
-            for language, markdown in getattr(item, column_name + '_map').items():
+@positional_params(*markdown_column_params())
+def test_markdown_values(parent_class, translation_class, column_name):
+    """Implementation for the above"""
+    query = connection.query(parent_class)
+    if translation_class:
+        query = query.join(translation_class)
+    for item in query:
+        for language, markdown in getattr(item, column_name + '_map').items():
 
-                if markdown is None:
-                    continue
+            if markdown is None:
+                continue
 
-                key = u"Markdown in {0} #{1}'s {2} (lang={3})".format(
-                        parent_class.__name__, item.id, column_name, language.identifier)
+            key = u"Markdown in {0} #{1}'s {2} (lang={3})".format(
+                    parent_class.__name__, item.id, column_name, language.identifier)
 
-                try:
-                    text = markdown.as_text()
-                except NoResultFound:
-                    assert False, u"{0} references something that doesn't exist:\n{1}".format(
-                            key, markdown.source_text)
-                except AttributeError:
-                    print markdown
-                    raise
+            try:
+                text = markdown.as_text()
+            except NoResultFound:
+                assert False, u"{0} references something that doesn't exist:\n{1}".format(
+                        key, markdown.source_text)
+            except AttributeError:
+                print markdown
+                raise
 
-                error_message = u"{0} leaves syntax cruft:\n{1}"
-                error_message = error_message.format(key, text)
+            error_message = u"{0} leaves syntax cruft:\n{1}"
+            error_message = error_message.format(key, text)
 
-                ok_(not any(char in text for char in '[]{}'), error_message)
+            assert not any(char in text for char in '[]{}'), error_message
diff --git a/pokedex/tests/test_translations.py b/pokedex/tests/test_translations.py
index af96331..1335573 100644
--- a/pokedex/tests/test_translations.py
+++ b/pokedex/tests/test_translations.py
@@ -2,7 +2,7 @@
 
 import csv
 
-from nose.tools import *
+import pytest
 
 from pokedex.db import translations, tables
 
diff --git a/pokedex/tests/test_util.py b/pokedex/tests/test_util.py
index a528d85..7c6a034 100644
--- a/pokedex/tests/test_util.py
+++ b/pokedex/tests/test_util.py
@@ -1,9 +1,9 @@
-# encoding: utf8
-from nose.tools import *
-import unittest
+# Encoding: utf8
 
+import pytest
+
+from pokedex.tests import single_params
 from pokedex.db import connect, tables, util
-from pokedex.util import simple
 
 session = connect()
 
@@ -19,32 +19,21 @@ def test_get_english_by_identifier():
     language = util.get(session, tables.Language, 'en')
     assert language.name == 'English'
 
-def test_get_pokemon_baseform_identifier():
-    for identifier in 'burmy shaymin unown cresselia'.split():
-        poke = util.get(session, tables.Pokemon, identifier=identifier)
-        assert poke.identifier == identifier
-        assert poke.is_base_form
+@single_params(*'burmy shaymin unown cresselia'.split())
+def test_get_pokemon_identifier(identifier):
+    poke = util.get(session, tables.PokemonSpecies, identifier=identifier)
+    assert poke.identifier == identifier
 
-def test_get_pokemon_baseform_name():
-    for name in 'Burmy Shaymin Unown Cresselia'.split():
-        poke = util.get(session, tables.Pokemon, name=name)
-        assert poke.name == name
-        assert poke.is_base_form
+@single_params(*'Burmy Shaymin Unown Cresselia'.split())
+def test_get_pokemon_name(name):
+    poke = util.get(session, tables.PokemonSpecies, name=name)
+    assert poke.name == name
 
-def test_get_pokemon_baseform_name_explicit_language():
+@single_params(*'Cheniti Shaymin Zarbi Cresselia'.split())
+def test_get_pokemon_name_explicit_language(name):
     french = util.get(session, tables.Language, 'fr')
-    for name in 'Cheniti Shaymin Zarbi Cresselia'.split():
-        poke = util.get(session, tables.Pokemon, name=name, language=french)
-        assert poke.name_map[french] == name, poke.name_map[french]
-        assert poke.is_base_form
-
-def test_get_pokemon_other_form_identifier():
-    for ii in 'wormadam/trash shaymin/sky shaymin/land'.split():
-        pokemon_identifier, form_identifier = ii.split('/')
-        poke = util.get(session, tables.Pokemon, identifier=pokemon_identifier, form_identifier=form_identifier)
-        assert poke.identifier == pokemon_identifier
-        if poke.form.unique_pokemon_id:
-            assert poke.form.identifier == form_identifier
+    poke = util.get(session, tables.PokemonSpecies, name=name, language=french)
+    assert poke.name_map[french] == name, poke.name_map[french]
 
 def test_types_french_order():
     french = util.get(session, tables.Language, 'fr')
@@ -53,23 +42,8 @@ def test_types_french_order():
     assert types[0].name_map[french] == 'Acier', types[0].name_map[french]
     assert types[-1].name_map[french] == 'Vol', types[-1].name_map[french]
 
-def test_simple_pokemon():
-    pokemon = simple.pokemon(session)
-    assert pokemon[0].identifier == 'bulbasaur'
-    assert pokemon[-1].identifier == 'genesect'
-
-def test_simple_types():
-    types = simple.types(session)
-    assert types[0].identifier == 'bug'
-    assert types[-1].identifier == 'water'
-
-def test_simple_moves():
-    moves = simple.moves(session)
-    assert moves[0].identifier == 'absorb'
-    assert moves[-1].identifier == 'zen-headbutt'
-
-def test_simple_items():
-    items = simple.items(session)
-    assert items[0].identifier == 'ability-urge'
-    assert items[-1].identifier == 'zoom-lens'
-
+@single_params(*range(1, 10) * 2)
+def test_get_pokemon_id(id):
+    result = util.get(session, tables.Pokemon, id=id)
+    assert result.id == id
+    assert result.__tablename__ == 'pokemon'
diff --git a/pokedex/util/media.py b/pokedex/util/media.py
index 9faf19f..7b672b3 100644
--- a/pokedex/util/media.py
+++ b/pokedex/util/media.py
@@ -1,7 +1,12 @@
 
 """Media accessors
 
-Most media accessor __init__s take an ORM object from the pokedex package.
+All media accessor __init__s take a `root` argument, which should be a path
+to the root of the media directory.
+Alternatively, `root` can be a custom MediaFile subclass.
+
+Most __init__s take an ORM object as a second argument.
+
 Their various methods take a number of arguments specifying exactly which
 file you want (such as the female sprite, backsprite, etc.).
 ValueError is raised when the specified file cannot be found.
@@ -26,22 +31,25 @@ All images are in the PNG format, except animations (GIF). All sounds are OGGs.
 """
 
 import os
-import pkg_resources
+from functools import partial
 
 class MediaFile(object):
     """Represents a file: picture, sound, etc.
 
     Attributes:
-    relative_path: Filesystem path relative to the media directory
+    path_elements: List of directory/file names that make up relative_path
+    relative_path: Filesystem path relative to the root
     path: Absolute path to the file
 
     exists: True if the file exists
 
+    media_available: false if no media is available at the given root.
+
     open(): Open the file
     """
-    def __init__(self, *path_elements):
+    def __init__(self, root, *path_elements):
         self.path_elements = path_elements
-        self._dexpath = '/'.join(('data', 'media') + path_elements)
+        self.root = root
 
     @property
     def relative_path(self):
@@ -49,7 +57,7 @@ class MediaFile(object):
 
     @property
     def path(self):
-        return pkg_resources.resource_filename('pokedex', self._dexpath)
+        return os.path.join(self.root, *self.path_elements)
 
     def open(self):
         """Open this file for reading, in the appropriate mode (i.e. binary)
@@ -58,7 +66,11 @@ class MediaFile(object):
 
     @property
     def exists(self):
-        return pkg_resources.resource_exists('pokedex', self._dexpath)
+        return os.path.exists(self.path)
+
+    @property
+    def media_available(self):
+        return os.path.isdir(self.root)
 
     def __eq__(self, other):
         return self.path == other.path
@@ -70,20 +82,31 @@ class MediaFile(object):
         return '<Pokedex file %s>' % self.relative_path
 
 class BaseMedia(object):
+    def __init__(self, root):
+        if isinstance(root, basestring):
+            self.file_class = partial(MediaFile, root)
+        else:
+            self.file_class = root
+
+    @property
+    def available(self):
+        return self.file_class().media_available
+
     def from_path_elements(self, path_elements, basename, extension,
             surely_exists=False):
         filename = basename + extension
         path_elements = [self.toplevel_dir] + path_elements + [filename]
-        mfile = MediaFile(*path_elements)
+        mfile = self.file_class(*path_elements)
         if surely_exists or mfile.exists:
             return mfile
         else:
-            raise ValueError('File %s not found' % mfile.relative_path)
+            raise ValueError('File %s not found' % mfile.path)
 
 class _BasePokemonMedia(BaseMedia):
     toplevel_dir = 'pokemon'
     has_gender_differences = False
-    form = None
+    is_species = False
+    is_proper = False
     introduced_in = 0
 
     # Info about of what's inside the pokemon main sprite directories, so we
@@ -104,13 +127,13 @@ class _BasePokemonMedia(BaseMedia):
             'black-white': (5, set('back shiny female'.split())),
         }
 
-    def __init__(self, pokemon_id, form_postfix=None):
-        BaseMedia.__init__(self)
-        self.pokemon_id = str(pokemon_id)
+    def __init__(self, root, species_id, form_postfix=None):
+        BaseMedia.__init__(self, root)
+        self.species_id = str(species_id)
         self.form_postfix = form_postfix
 
     def _get_file(self, path_elements, extension, strict, surely_exists=False):
-        basename = str(self.pokemon_id)
+        basename = str(self.species_id)
         if self.form_postfix:
             fullname = basename + self.form_postfix
             try:
@@ -173,7 +196,7 @@ class _BasePokemonMedia(BaseMedia):
                 generation, info = self._pokemon_sprite_info[version_dir]
         if generation < self.introduced_in:
             raise ValueError("Pokemon %s didn't exist in %s" % (
-                    self.pokemon_id, version_dir))
+                    self.species_id, version_dir))
         path_elements = ['main-sprites', version_dir]
         if animated:
             if 'animated' not in info:
@@ -213,7 +236,7 @@ class _BasePokemonMedia(BaseMedia):
             # Chimecho's female back frame 2 sprite has one hand in
             # a slightly different pose, in Platinum and HGSS
             # (we have duplicate sprites frame 1, for convenience)
-            if self.pokemon_id == '358' and back and version_dir in (
+            if self.species_id == '358' and back and version_dir in (
                     'platinum', 'heartgold-soulsilver'):
                 female_sprite = True
             female_sprite = female_sprite and 'female' in info
@@ -221,7 +244,7 @@ class _BasePokemonMedia(BaseMedia):
                 path_elements.append('female')
             elif strict:
                 raise ValueError(
-                    'Pokemon %s has no gender differences' % self.pokemon_id)
+                    'Pokemon %s has no gender differences' % self.species_id)
         if not frame or frame == 1:
             pass
         elif frame == 2:
@@ -233,9 +256,8 @@ class _BasePokemonMedia(BaseMedia):
             raise ValueError("Bad frame %s" % frame)
         return self._get_file(path_elements, extension, strict=strict,
                 # Avoid a stat in the common case
-                surely_exists=(self.form and version_dir == 'black-white'
-                    and not back and not female
-                    and not self.form_postfix))
+                surely_exists=(self.is_species and version_dir == 'black-white'
+                    and not back and not female))
 
     def _maybe_female(self, path_elements, female, strict):
         if female:
@@ -248,7 +270,7 @@ class _BasePokemonMedia(BaseMedia):
                         raise
             elif strict:
                 raise ValueError(
-                    'Pokemon %s has no gender differences' % self.pokemon_id)
+                    'Pokemon %s has no gender differences' % self.species_id)
         return self._get_file(path_elements, '.png', strict=strict)
 
     def icon(self, female=False, strict=False):
@@ -314,58 +336,62 @@ class _BasePokemonMedia(BaseMedia):
         return self._get_file(['cropped'], '.png', strict=strict)
 
 class PokemonFormMedia(_BasePokemonMedia):
-    """Media related to a Pokemon form
+    """Media related to a PokemonForm
     """
-    def __init__(self, pokemon_form):
-        pokemon_id = pokemon_form.form_base_pokemon_id
-        if pokemon_form.identifier:
-            form_postfix = '-' + pokemon_form.identifier
+    is_proper = True
+
+    def __init__(self, root, pokemon_form):
+        species_id = pokemon_form.species.id
+        if pokemon_form.form_identifier:
+            form_postfix = '-' + pokemon_form.form_identifier
         else:
             form_postfix = None
-        _BasePokemonMedia.__init__(self, pokemon_id, form_postfix)
+        _BasePokemonMedia.__init__(self, root, species_id, form_postfix)
         self.form = pokemon_form
-        pokemon = pokemon_form.form_base_pokemon
-        self.has_gender_differences = pokemon.has_gender_differences
-        self.introduced_in = pokemon.generation_id
+        species = pokemon_form.species
+        self.has_gender_differences = species.has_gender_differences
+        self.introduced_in = pokemon_form.version_group.generation_id
 
-class PokemonMedia(_BasePokemonMedia):
-    """Media related to a Pokemon
+class PokemonSpeciesMedia(_BasePokemonMedia):
+    """Media related to a PokemonSpecies
     """
-    def __init__(self, pokemon):
-        _BasePokemonMedia.__init__(self, pokemon.id)
-        self.form = pokemon.default_form
-        self.has_gender_differences = (pokemon.has_gender_differences)
-        self.introduced_in = pokemon.generation_id
+    is_species = True
+    is_proper = True
+
+    def __init__(self, root, species):
+        _BasePokemonMedia.__init__(self, root, species.id)
+        self.has_gender_differences = species.has_gender_differences
+        self.introduced_in = species.generation_id
 
 class UnknownPokemonMedia(_BasePokemonMedia):
     """Media related to the unknown Pokemon ("?")
 
     Note that not a lot of files are available for it.
     """
-    def __init__(self):
-        _BasePokemonMedia.__init__(self, '0')
+    def __init__(self, root):
+        _BasePokemonMedia.__init__(self, root, '0')
 
 class EggMedia(_BasePokemonMedia):
     """Media related to a pokemon egg
 
     Note that not a lot of files are available for these.
 
-    Give a Manaphy as `pokemon` to get the Manaphy egg.
+    Give a Manaphy as `species` to get the Manaphy egg.
     """
-    def __init__(self, pokemon=None):
-        if pokemon and pokemon.identifier == 'manaphy':
+    def __init__(self, root, species=None):
+        if species and species.identifier == 'manaphy':
             postfix = '-manaphy'
         else:
             postfix = None
-        _BasePokemonMedia.__init__(self, 'egg', postfix)
+        _BasePokemonMedia.__init__(self, root, 'egg', postfix)
 
 class SubstituteMedia(_BasePokemonMedia):
     """Media related to the Substitute sprite
 
     Note that not a lot of files are available for Substitute.
     """
-    def __init__(self):
-        _BasePokemonMedia.__init__(self, 'substitute')
+    def __init__(self, root):
+        _BasePokemonMedia.__init__(self, root, 'substitute')
 
 class _BaseItemMedia(BaseMedia):
     toplevel_dir = 'items'
@@ -383,7 +409,8 @@ class _BaseItemMedia(BaseMedia):
 class ItemMedia(_BaseItemMedia):
     """Media related to an item
     """
-    def __init__(self, item):
+    def __init__(self, root, item):
+        _BaseItemMedia.__init__(self, root)
         self.item = item
         self.identifier = item.identifier
 
@@ -459,7 +486,8 @@ class UndergroundRockMedia(_BaseItemMedia):
 
     rock_type can be one of: i, ii, o, o-big, s, t, z
     """
-    def __init__(self, rock_type):
+    def __init__(self, root, rock_type):
+        _BaseItemMedia.__init__(self, root)
         self.identifier = 'rock-%s' % rock_type
 
 class UndergroundSphereMedia(_BaseItemMedia):
@@ -467,13 +495,15 @@ class UndergroundSphereMedia(_BaseItemMedia):
 
     color can be one of: red, blue, green, pale, prism
     """
-    def __init__(self, color, big=False):
+    def __init__(self, root, color, big=False):
+        _BaseItemMedia.__init__(self, root)
         self.identifier = '%s-sphere' % color
         if big:
             self.identifier += '-big'
 
 class _SimpleIconMedia(BaseMedia):
-    def __init__(self, thing):
+    def __init__(self, root, thing):
+        BaseMedia.__init__(self, root)
         self.identifier = thing.identifier
 
     def icon(self):
diff --git a/pokedex/util/simple.py b/pokedex/util/simple.py
deleted file mode 100644
index d801f2b..0000000
--- a/pokedex/util/simple.py
+++ /dev/null
@@ -1,66 +0,0 @@
-"""Simple lists of things for simple scripts
-
-If you want to get a pokemon list, and you don't want it to include three
-Wormadams and a whole bunch of Rotoms because of how the database is
-structured, this module is for you.
-
-The returned queries basically contain what a pokedex would show you.
-You should make no other assumptions about them.
-
-If you need to make assumptions, feel free to use these functions as examples
-of what to watch out for.
-"""
-
-from pokedex.db import tables
-from pokedex.db.util import filter_base_forms, order_by_name
-
-def pokemon(session):
-    """Get a "sane" list of pokemon
-
-    WARNING: The result of this function is not very well defined.
-    If you want something specific, build that specific query yourself.
-
-    Currently, all base forms are returned, in evolution-preserving order
-    """
-    query = session.query(tables.Pokemon)
-    query = query.order_by(tables.Pokemon.order)
-    query = filter_base_forms(query)
-    return query
-
-def moves(session):
-    """Get a "sane" list of moves
-
-    WARNING: The result of this function is not very well defined.
-    If you want something specific, build that specific query yourself.
-
-    Currently, moves from mainline games are returned, sored by name
-    """
-    query = session.query(tables.Move)
-    query = order_by_name(query, tables.Move)
-    query = query.filter(tables.Move.id < 10000)
-    return query
-
-def types(session):
-    """Get a "sane" list of types
-
-    WARNING: The result of this function is not very well defined.
-    If you want something specific, build that specific query yourself.
-
-    Currently, generation V types are returned, sored by name
-    """
-    query = session.query(tables.Type)
-    query = order_by_name(query, tables.Type)
-    query = query.filter(tables.Type.id < 10000)
-    return query
-
-def items(session):
-    """Get a "sane" list of items
-
-    WARNING: The result of this function is not very well defined.
-    If you want something specific, build that specific query yourself.
-
-    Currently, items are sored by name
-    """
-    query = session.query(tables.Item)
-    query = order_by_name(query, tables.Item)
-    return query
diff --git a/scripts/pokemon_species.py b/scripts/pokemon_species.py
new file mode 100644
index 0000000..fd1ba03
--- /dev/null
+++ b/scripts/pokemon_species.py
@@ -0,0 +1,164 @@
+# Encoding: UTF-8
+"""Reorganize Pokemon, PokemonForm, etc. to Species, Pokemon, etc.
+
+This is an unmaintained one-shot script, only included in the repo for
+reference.
+
+"""
+
+import csv
+import os
+
+from pokedex import defaults
+
+number_of_species = 649
+high_id_start = 10000
+
+csv_dir = defaults.get_default_csv_dir()
+
+def to_dict(filename):
+    fullname = os.path.join(csv_dir, filename)
+    reader = csv.reader(open(fullname))
+    column_names = reader.next()
+    entries = dict()
+    for row in reader:
+        row_dict = dict(zip(column_names, row))
+        entries[row_dict.get('id', row_dict.get('pokemon_id'))] = row_dict
+    return entries, column_names
+
+pokemon, pokemon_columns = to_dict('pokemon.csv')
+forms, form_columns = to_dict('pokemon_forms.csv')
+form_groups, form_group_columns = to_dict('pokemon_form_groups.csv')
+evolution_chains, evolution_chain_columns = to_dict('evolution_chains.csv')
+
+result_columns = dict(
+    species='''id identifier generation_id evolves_from_species_id
+        evolution_chain_id color_id shape_id habitat_id
+        growth_rate_id gender_rate capture_rate base_happiness is_baby
+        hatch_counter has_gender_differences forms_switchable'''.split(),
+    pokemon='''id species_id height weight base_experience order'''.split(),
+    form='''id form_identifier pokemon_id introduced_in_version_group_id
+        is_default is_battle_only order'''.split(),
+    chain='''id baby_trigger_item_id'''.split(),
+    )
+
+def normalize_id(id):
+    id = int(id)
+    if id > number_of_species:
+        id = id - high_id_start + number_of_species
+    return id
+
+def put(dct, entry):
+    """Put entry in dct. If already there, check it's the same.
+    """
+    id = int(entry['id'])
+    if id in dct:
+        if entry == dct[id]:
+            pass
+        else:
+            print entry
+            print dct[id]
+            assert False
+    else:
+        dct[id] = entry
+
+forms_switchable = dict(
+        castform=True,
+        unown=False,
+        darmanitan=True,
+        basculin=False,
+        rotom=True,
+        shaymin=True,
+        deerling=True,
+        sawsbuck=True,
+        arceus=True,
+        pichu=False,
+        giratina=True,
+        burmy=True,
+        wormadam=False,
+        deoxys=True,
+        genesect=True,
+        meloetta=True,
+        gastrodon=False,
+        cherrim=True,
+        shellos=False,
+    )
+
+result_species = dict()
+result_pokemon = dict()
+result_forms = dict()
+result_chains = dict()
+
+for form_id, source_form in forms.items():
+    pokemon_id = source_form['unique_pokemon_id'] or source_form['form_base_pokemon_id']
+    species_id = source_form['form_base_pokemon_id']
+    source_pokemon = pokemon[pokemon_id]
+    source_evolution_chain = evolution_chains[source_pokemon['evolution_chain_id']]
+    try:
+        source_group = form_groups[species_id]
+    except KeyError:
+        source_group = dict(is_battle_only=0)
+    all_fields = dict(source_form)
+    all_fields.update(source_group)
+    all_fields.update(source_pokemon)
+    all_fields.update(source_evolution_chain)
+    del all_fields['id']
+    new_species = dict()
+    for column_name in result_columns['species']:
+        if column_name == 'id':
+            new_species[column_name] = normalize_id(species_id)
+        elif column_name == 'evolves_from_species_id':
+            new_species[column_name] = pokemon[species_id]['evolves_from_pokemon_id']
+        elif column_name == 'shape_id':
+            new_species[column_name] = all_fields['pokemon_shape_id']
+        elif column_name == 'forms_switchable':
+            if species_id in form_groups:
+                new_species[column_name] = forms_switchable[source_pokemon['identifier']]
+            else:
+                new_species[column_name] = 0
+        else:
+            new_species[column_name] = all_fields[column_name]
+    put(result_species, new_species)
+    new_pokemon = dict()
+    for column_name in result_columns['pokemon']:
+        if column_name == 'id':
+            new_pokemon[column_name] = normalize_id(pokemon_id)
+        elif column_name == 'species_id':
+            new_pokemon[column_name] = species_id
+        else:
+            new_pokemon[column_name] = all_fields[column_name]
+    put(result_pokemon, new_pokemon)
+    new_form = dict()
+    for column_name in result_columns['form']:
+        if column_name == 'id':
+            new_form[column_name] = normalize_id(form_id)
+        elif column_name == 'pokemon_id':
+            new_form[column_name] = normalize_id(pokemon_id)
+        elif column_name == 'form_identifier':
+            new_form[column_name] = source_form['identifier']
+        elif column_name == 'is_battle_only':
+            if source_form['unique_pokemon_id'] == source_form['form_base_pokemon_id']:
+                # Default form, herefore not battle-only
+                new_form[column_name] = '0'
+            else:
+                # Keep
+                new_form[column_name] = all_fields[column_name]
+        else:
+            new_form[column_name] = all_fields[column_name]
+    put(result_forms, new_form)
+    new_chain = dict(source_evolution_chain)
+    del new_chain['growth_rate_id']
+    put(result_chains, new_chain)
+
+def write_csv(dct, fieldnames, filename):
+    fullname = os.path.join(csv_dir, filename)
+    reader = csv.DictWriter(open(fullname, 'w'), fieldnames)
+    reader.writerow(dict((n,n) for n in fieldnames))
+    for id, row in sorted(dct.items()):
+        reader.writerow(row)
+
+write_csv(result_species, result_columns['species'], 'pokemon_species.csv')
+write_csv(result_pokemon, result_columns['pokemon'], 'pokemon.csv')
+write_csv(result_forms, result_columns['form'], 'pokemon_forms.csv')
+write_csv(result_chains, result_columns['chain'], 'evolution_chains.csv')
+