From 750a5c1ae4aa54648ad0719979b8db7031080bd9 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 29 Apr 2011 16:50:22 +0300 Subject: [PATCH 01/16] Pokemon species split: Script for automatic changes. See #579 --- scripts/pokemon_species.py | 164 +++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 scripts/pokemon_species.py 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') + From 24b0862c32034bf2655454ecdbaa85d02857ef67 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 29 Apr 2011 22:09:36 +0300 Subject: [PATCH 02/16] Pokemon species split: Automatic data changes --- pokedex/data/csv/evolution_chains.csv | 659 ++++++----- pokedex/data/csv/pokemon.csv | 1336 +++++++++++------------ pokedex/data/csv/pokemon_forms.csv | 1456 ++++++++++++------------- pokedex/data/csv/pokemon_species.csv | 650 +++++++++++ 4 files changed, 2375 insertions(+), 1726 deletions(-) create mode 100644 pokedex/data/csv/pokemon_species.csv diff --git a/pokedex/data/csv/evolution_chains.csv b/pokedex/data/csv/evolution_chains.csv index 33799a4..eacdcc6 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..18e04bf 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 +1,1,7,69,64,1 +2,2,10,130,141,2 +3,3,20,1000,208,3 +4,4,6,85,65,4 +5,5,11,190,142,5 +6,6,17,905,209,6 +7,7,5,90,66,7 +8,8,10,225,143,8 +9,9,16,855,210,9 +10,10,3,29,53,10 +11,11,7,99,72,11 +12,12,11,320,160,12 +13,13,3,32,52,13 +14,14,6,100,71,14 +15,15,10,295,159,15 +16,16,3,18,55,16 +17,17,11,300,113,17 +18,18,15,395,172,18 +19,19,3,35,57,19 +20,20,7,185,116,20 +21,21,3,20,58,21 +22,22,12,380,162,22 +23,23,20,69,62,23 +24,24,35,650,147,24 +25,25,4,60,82,26 +26,26,8,300,122,27 +27,27,6,120,93,28 +28,28,10,295,163,29 +29,29,4,70,59,30 +30,30,8,200,117,31 +31,31,13,600,194,32 +32,32,5,90,60,33 +33,33,9,195,118,34 +34,34,14,620,195,35 +35,35,6,75,68,37 +36,36,13,400,129,38 +37,37,6,99,63,39 +38,38,11,199,178,40 +39,39,5,55,76,42 +40,40,10,120,109,43 +41,41,8,75,54,44 +42,42,16,550,171,45 +43,43,5,54,78,47 +44,44,8,86,132,48 +45,45,12,186,184,49 +46,46,3,54,70,51 +47,47,10,295,128,52 +48,48,10,300,75,53 +49,49,15,125,138,54 +50,50,2,8,81,55 +51,51,7,333,153,56 +52,52,4,42,69,57 +53,53,10,320,148,58 +54,54,8,196,80,59 +55,55,17,766,174,60 +56,56,5,280,74,61 +57,57,10,320,149,62 +58,58,7,190,91,63 +59,59,19,1550,213,64 +60,60,6,124,77,65 +61,61,10,200,131,66 +62,62,13,540,185,67 +63,63,9,195,75,69 +64,64,13,565,145,70 +65,65,15,480,186,71 +66,66,8,195,75,72 +67,67,15,705,146,73 +68,68,16,1300,193,74 +69,69,7,40,84,75 +70,70,10,64,151,76 +71,71,17,155,191,77 +72,72,9,455,105,78 +73,73,16,550,205,79 +74,74,4,200,73,80 +75,75,10,1050,134,81 +76,76,14,3000,177,82 +77,77,10,300,152,83 +78,78,17,950,192,84 +79,79,12,360,99,85 +80,80,16,785,164,86 +81,81,3,60,89,88 +82,82,10,600,161,89 +83,83,8,150,94,91 +84,84,14,392,96,92 +85,85,18,852,158,93 +86,86,11,900,100,94 +87,87,17,1200,176,95 +88,88,9,300,90,96 +89,89,12,300,157,97 +90,90,3,40,97,98 +91,91,15,1325,203,99 +92,92,13,1,95,100 +93,93,16,1,126,101 +94,94,15,405,190,102 +95,95,88,2100,108,103 +96,96,10,324,102,105 +97,97,16,756,165,106 +98,98,4,65,115,107 +99,99,13,600,206,108 +100,100,5,104,103,109 +101,101,12,666,150,110 +102,102,4,25,98,111 +103,103,20,1200,212,112 +104,104,4,65,87,113 +105,105,10,450,124,114 +106,106,15,498,139,116 +107,107,14,502,140,117 +108,108,12,655,127,119 +109,109,6,10,114,121 +110,110,12,95,173,122 +111,111,10,1150,135,123 +112,112,19,1200,204,124 +113,113,11,346,255,127 +114,114,10,350,166,129 +115,115,22,800,175,131 +116,116,4,80,83,132 +117,117,12,250,155,133 +118,118,6,150,111,135 +119,119,13,390,170,136 +120,120,8,345,106,137 +121,121,11,800,207,138 +122,122,13,545,136,140 +123,123,15,560,187,141 +124,124,14,406,137,144 +125,125,11,300,156,146 +126,126,13,445,167,149 +127,127,15,550,200,151 +128,128,14,884,211,152 +129,129,9,100,20,153 +130,130,65,2350,214,154 +131,131,25,2200,219,155 +132,132,3,40,61,156 +133,133,3,65,92,157 +134,134,10,290,196,158 +135,135,8,245,197,159 +136,136,9,250,198,160 +137,137,8,365,130,165 +138,138,4,75,99,168 +139,139,10,350,199,169 +140,140,5,115,99,170 +141,141,13,405,199,171 +142,142,18,590,202,172 +143,143,21,4600,154,174 +144,144,17,554,215,175 +145,145,16,526,216,176 +146,146,20,600,217,177 +147,147,18,33,67,178 +148,148,40,165,144,179 +149,149,22,2100,218,180 +150,150,20,1220,220,181 +151,151,4,40,64,182 +152,152,9,64,64,183 +153,153,12,158,141,184 +154,154,18,1005,208,185 +155,155,5,79,65,186 +156,156,9,190,142,187 +157,157,17,795,209,188 +158,158,6,95,66,189 +159,159,11,250,143,190 +160,160,23,888,210,191 +161,161,8,60,57,192 +162,162,18,325,116,193 +163,163,7,212,58,194 +164,164,16,408,162,195 +165,165,10,108,54,196 +166,166,14,356,134,197 +167,167,5,85,54,198 +168,168,11,335,134,199 +169,169,18,750,204,46 +170,170,5,120,90,200 +171,171,12,225,156,201 +172,172,3,20,42,25 +173,173,3,30,37,36 +174,174,3,10,39,41 +175,175,3,15,74,202 +176,176,6,32,114,203 +177,177,2,20,73,205 +178,178,15,150,171,206 +179,179,6,78,59,207 +180,180,8,133,117,208 +181,181,14,615,194,209 +182,182,4,58,184,50 +183,183,4,85,58,211 +184,184,8,285,153,212 +185,185,12,380,135,214 +186,186,11,339,185,68 +187,187,4,5,74,215 +188,188,6,10,136,216 +189,189,8,30,176,217 +190,190,8,115,94,218 +191,191,3,18,52,220 +192,192,8,85,146,221 +193,193,12,380,147,222 +194,194,4,85,52,224 +195,195,14,750,137,225 +196,196,9,265,197,161 +197,197,10,270,197,162 +198,198,5,21,107,226 +199,199,20,795,164,87 +200,200,7,10,147,228 +201,201,5,50,61,230 +202,202,13,285,177,232 +203,203,15,415,149,233 +204,204,6,72,60,234 +205,205,12,1258,118,235 +206,206,15,140,125,236 +207,207,11,648,108,237 +208,208,92,4000,196,104 +209,209,6,78,63,239 +210,210,14,487,178,240 +211,211,5,39,100,241 +212,212,18,1180,200,142 +213,213,6,205,80,242 +214,214,15,540,200,243 +215,215,9,280,132,244 +216,216,6,88,124,246 +217,217,18,1258,189,247 +218,218,7,350,78,248 +219,219,8,550,154,249 +220,220,4,65,78,250 +221,221,11,558,160,251 +222,222,6,50,113,253 +223,223,6,120,78,254 +224,224,9,285,164,255 +225,225,9,160,183,256 +226,226,21,2200,168,258 +227,227,17,505,168,259 +228,228,6,108,114,260 +229,229,14,350,204,261 +230,230,18,1520,207,134 +231,231,5,335,124,262 +232,232,11,1200,189,263 +233,233,6,325,180,166 +234,234,14,712,165,264 +235,235,12,580,106,265 +236,236,7,210,91,115 +237,237,14,480,138,118 +238,238,4,60,87,143 +239,239,6,235,106,145 +240,240,7,214,117,148 +241,241,12,755,200,266 +242,242,15,468,255,128 +243,243,19,1780,216,267 +244,244,21,1980,217,268 +245,245,20,1870,215,269 +246,246,6,720,67,270 +247,247,12,1520,144,271 +248,248,20,2020,218,272 +249,249,52,2160,220,273 +250,250,38,1990,220,274 +251,251,6,50,64,275 +252,252,5,50,65,276 +253,253,9,216,141,277 +254,254,17,522,208,278 +255,255,4,25,65,279 +256,256,9,195,142,280 +257,257,19,520,209,281 +258,258,4,76,65,282 +259,259,7,280,143,283 +260,260,15,819,210,284 +261,261,5,136,55,285 +262,262,10,370,128,286 +263,263,4,175,60,287 +264,264,5,325,128,288 +265,265,3,36,54,289 +266,266,6,100,72,290 +267,267,10,284,161,291 +268,268,7,115,72,292 +269,269,12,316,161,293 +270,270,5,26,74,294 +271,271,12,325,141,295 +272,272,15,550,181,296 +273,273,5,40,74,297 +274,274,10,280,141,298 +275,275,13,596,181,299 +276,276,3,23,59,300 +277,277,7,198,162,301 +278,278,6,95,64,302 +279,279,12,280,164,303 +280,280,4,66,70,304 +281,281,8,202,140,305 +282,282,16,484,208,306 +283,283,5,17,63,308 +284,284,8,36,128,309 +285,285,4,45,65,310 +286,286,12,392,165,311 +287,287,8,240,83,312 +288,288,14,465,126,313 +289,289,20,1305,210,314 +290,290,5,55,65,315 +291,291,8,120,155,316 +292,292,8,12,95,317 +293,293,6,163,68,318 +294,294,10,405,126,319 +295,295,15,840,184,320 +296,296,10,864,87,321 +297,297,23,2538,184,322 +298,298,2,20,33,210 +299,299,10,970,108,323 +300,300,6,110,65,325 +301,301,11,326,138,326 +302,302,5,110,98,327 +303,303,6,115,98,328 +304,304,4,600,96,329 +305,305,9,1200,152,330 +306,306,21,3600,205,331 +307,307,6,112,91,332 +308,308,13,315,153,333 +309,309,6,152,104,334 +310,310,15,402,168,335 +311,311,4,42,120,336 +312,312,4,42,120,337 +313,313,7,177,146,338 +314,314,6,177,146,339 +315,315,3,20,152,341 +316,316,4,103,75,343 +317,317,17,800,168,344 +318,318,8,208,88,345 +319,319,18,888,175,346 +320,320,20,1300,137,347 +321,321,145,3980,206,348 +322,322,7,240,88,349 +323,323,19,2200,175,350 +324,324,5,804,161,351 +325,325,7,306,89,352 +326,326,9,715,164,353 +327,327,11,50,85,354 +328,328,7,150,73,355 +329,329,11,153,126,356 +330,330,20,820,197,357 +331,331,4,513,97,358 +332,332,13,774,177,359 +333,333,4,12,74,360 +334,334,11,206,188,361 +335,335,13,403,165,362 +336,336,27,525,165,363 +337,337,10,1680,150,364 +338,338,12,1540,150,365 +339,339,4,19,92,366 +340,340,9,236,158,367 +341,341,6,115,111,368 +342,342,11,328,161,369 +343,343,5,215,58,370 +344,344,15,1080,189,371 +345,345,10,238,99,372 +346,346,15,604,199,373 +347,347,7,125,99,374 +348,348,15,682,199,375 +349,349,6,74,61,376 +350,350,62,1620,213,377 +351,351,3,8,145,378 +352,352,10,220,132,382 +353,353,6,23,97,383 +354,354,11,125,179,384 +355,355,8,150,97,385 +356,356,16,306,179,386 +357,357,20,1000,169,388 +358,358,6,10,147,390 +359,359,12,470,174,391 +360,360,6,140,44,231 +361,361,7,168,74,392 +362,362,15,2565,187,393 +363,363,8,395,75,395 +364,364,11,876,128,396 +365,365,14,1506,192,397 +366,366,4,525,142,398 +367,367,17,270,178,399 +368,368,18,226,178,400 +369,369,10,234,198,401 +370,370,6,87,110,402 +371,371,6,421,89,403 +372,372,11,1105,144,404 +373,373,15,1026,218,405 +374,374,6,952,103,406 +375,375,12,2025,153,407 +376,376,16,5500,210,408 +377,377,17,2300,217,409 +378,378,18,1750,216,410 +379,379,19,2050,215,411 +380,380,14,400,211,412 +381,381,20,600,211,413 +382,382,45,3520,218,414 +383,383,35,9500,218,415 +384,384,70,2065,220,416 +385,385,3,11,215,417 +386,386,17,608,215,418 +387,387,4,102,64,422 +388,388,11,970,141,423 +389,389,22,3100,208,424 +390,390,5,62,65,425 +391,391,9,220,142,426 +392,392,12,550,209,427 +393,393,4,52,66,428 +394,394,8,230,143,429 +395,395,17,845,210,430 +396,396,3,20,56,431 +397,397,6,155,113,432 +398,398,12,249,172,433 +399,399,5,200,58,434 +400,400,10,315,116,435 +401,401,3,22,54,436 +402,402,10,255,159,437 +403,403,5,95,60,438 +404,404,9,305,117,439 +405,405,14,420,194,440 +406,406,2,12,68,340 +407,407,9,145,204,342 +408,408,9,315,99,441 +409,409,16,1025,199,442 +410,410,5,570,99,443 +411,411,13,1495,199,444 +412,412,2,34,61,445 +413,413,5,65,159,446 +414,414,9,233,159,449 +415,415,3,55,63,450 +416,416,12,385,188,451 +417,417,4,39,120,452 +418,418,7,295,75,453 +419,419,11,335,178,454 +420,420,4,33,68,455 +421,421,5,93,133,456 +422,422,3,63,73,457 +423,423,9,299,176,458 +424,424,12,203,186,219 +425,425,4,12,127,459 +426,426,12,150,204,460 +427,427,4,55,84,461 +428,428,12,333,178,462 +429,429,9,44,187,229 +430,430,9,273,187,227 +431,431,5,39,71,463 +432,432,10,438,183,464 +433,433,2,6,74,389 +434,434,4,192,79,465 +435,435,10,380,209,466 +436,436,5,605,72,467 +437,437,13,1870,188,468 +438,438,5,150,68,213 +439,439,6,130,78,139 +440,440,6,244,255,126 +441,441,5,19,107,469 +442,442,10,1080,168,470 +443,443,7,205,67,471 +444,444,14,560,144,472 +445,445,19,950,218,473 +446,446,6,1050,94,173 +447,447,7,202,72,474 +448,448,12,540,204,475 +449,449,8,495,95,476 +450,450,20,3000,198,477 +451,451,8,120,114,478 +452,452,13,615,204,479 +453,453,7,230,83,480 +454,454,13,444,181,481 +455,455,14,270,164,482 +456,456,4,70,90,483 +457,457,12,240,156,484 +458,458,10,650,108,257 +459,459,10,505,131,485 +460,460,22,1355,214,486 +461,461,11,340,199,245 +462,462,12,1800,211,90 +463,463,17,1400,193,120 +464,464,24,2828,217,125 +465,465,20,1286,211,130 +466,466,18,1386,199,147 +467,467,16,680,199,150 +468,468,15,380,220,204 +469,469,19,515,198,223 +470,470,10,255,196,163 +471,471,8,259,196,164 +472,472,20,425,192,238 +473,473,25,2910,207,252 +474,474,9,340,185,167 +475,475,16,520,208,307 +476,476,14,3400,198,324 +477,477,22,1066,210,387 +478,478,13,266,187,394 +479,479,3,3,132,487 +480,480,3,3,210,493 +481,481,3,3,210,494 +482,482,3,3,210,495 +483,483,54,6830,220,496 +484,484,42,3360,220,497 +485,485,17,4300,215,498 +486,486,37,4200,220,499 +487,487,45,7500,220,500 +488,488,15,856,210,502 +489,489,4,31,165,503 +490,490,3,14,215,504 +491,491,15,505,210,505 +492,492,2,21,64,506 +493,493,32,3200,255,508 +494,494,4,40,270,509 +495,495,6,81,28,510 +496,496,8,160,145,511 +497,497,33,630,238,512 +498,498,5,99,28,513 +499,499,10,555,146,514 +500,500,16,1500,238,515 +501,501,5,59,28,516 +502,502,8,245,145,517 +503,503,15,946,238,518 +504,504,5,116,51,519 +505,505,11,270,147,520 +506,506,4,41,55,521 +507,507,9,147,130,522 +508,508,12,610,221,523 +509,509,4,101,56,524 +510,510,11,375,156,525 +511,511,6,105,63,526 +512,512,11,305,174,527 +513,513,6,110,63,528 +514,514,10,280,174,529 +515,515,6,135,63,530 +516,516,10,290,174,531 +517,517,6,233,58,532 +518,518,11,605,170,533 +519,519,3,21,53,534 +520,520,6,150,125,535 +521,521,12,290,215,536 +522,522,8,298,59,537 +523,523,16,795,174,538 +524,524,4,180,56,539 +525,525,9,1020,137,540 +526,526,17,2600,227,541 +527,527,4,21,63,542 +528,528,9,105,149,543 +529,529,3,85,66,544 +530,530,7,404,178,545 +531,531,11,310,390,546 +532,532,6,125,61,547 +533,533,12,400,142,548 +534,534,14,870,227,549 +535,535,5,45,59,550 +536,536,8,170,134,551 +537,537,15,620,225,552 +538,538,13,555,163,553 +539,539,14,510,163,554 +540,540,3,25,62,555 +541,541,5,73,133,556 +542,542,12,205,221,557 +543,543,4,53,52,558 +544,544,12,585,126,559 +545,545,25,2005,214,560 +546,546,3,6,56,561 +547,547,7,66,168,562 +548,548,5,66,56,563 +549,549,11,163,168,564 +550,550,10,180,161,565 +551,551,7,152,58,567 +552,552,10,334,123,568 +553,553,15,963,229,569 +554,554,6,375,63,570 +555,555,13,929,168,571 +556,556,10,280,161,573 +557,557,3,145,65,574 +558,558,14,2000,166,575 +559,559,6,118,70,576 +560,560,11,300,171,577 +561,561,14,140,172,578 +562,562,5,15,61,579 +563,563,17,765,169,580 +564,564,7,165,71,581 +565,565,12,810,173,582 +566,566,5,95,71,583 +567,567,14,320,177,584 +568,568,6,310,66,585 +569,569,19,1073,166,586 +570,570,7,125,66,587 +571,571,16,811,179,588 +572,572,4,58,60,589 +573,573,5,75,165,590 +574,574,4,58,58,591 +575,575,7,180,137,592 +576,576,15,440,221,593 +577,577,3,10,58,594 +578,578,6,80,130,595 +579,579,10,201,221,596 +580,580,5,55,61,597 +581,581,13,242,166,598 +582,582,4,57,61,599 +583,583,11,410,138,600 +584,584,13,575,241,601 +585,585,6,195,67,602 +586,586,19,925,166,603 +587,587,4,50,150,604 +588,588,5,59,63,605 +589,589,10,330,173,606 +590,590,2,10,59,607 +591,591,6,105,162,608 +592,592,12,330,67,609 +593,593,22,1350,168,610 +594,594,12,316,165,611 +595,595,1,6,64,612 +596,596,8,143,165,613 +597,597,6,188,61,614 +598,598,10,1100,171,615 +599,599,3,210,60,616 +600,600,6,510,154,617 +601,601,6,810,234,618 +602,602,2,3,55,619 +603,603,12,220,142,620 +604,604,21,805,232,621 +605,605,5,90,67,622 +606,606,10,345,170,623 +607,607,3,31,55,624 +608,608,6,130,130,625 +609,609,10,343,234,626 +610,610,6,180,64,627 +611,611,10,360,144,628 +612,612,18,1055,243,629 +613,613,5,85,61,630 +614,614,26,2600,170,631 +615,615,11,1480,170,632 +616,616,4,77,61,633 +617,617,8,253,173,634 +618,618,7,110,165,635 +619,619,9,200,70,636 +620,620,14,355,179,637 +621,621,16,1390,170,638 +622,622,10,920,61,639 +623,623,28,3300,169,640 +624,624,5,102,68,641 +625,625,16,700,172,642 +626,626,16,946,172,643 +627,627,5,105,70,644 +628,628,15,410,179,645 +629,629,5,90,74,646 +630,630,12,395,179,647 +631,631,14,580,169,648 +632,632,3,330,169,649 +633,633,8,173,60,650 +634,634,14,500,147,651 +635,635,18,1600,270,652 +636,636,11,288,72,653 +637,637,16,460,248,654 +638,638,21,2500,261,655 +639,639,19,2600,261,656 +640,640,20,2000,261,657 +641,641,15,630,261,658 +642,642,15,610,261,659 +643,643,32,3300,306,660 +644,644,29,3450,306,661 +645,645,15,680,270,662 +646,646,30,3250,297,663 +647,647,14,485,261,664 +648,648,6,65,270,665 +649,649,15,825,270,667 +650,386,17,608,215,419 +651,386,17,608,215,420 +652,386,17,608,215,421 +653,413,5,65,159,447 +654,413,5,65,159,448 +655,492,4,52,64,507 +656,487,69,6500,220,501 +657,479,3,3,132,488 +658,479,3,3,132,489 +659,479,3,3,132,490 +660,479,3,3,132,491 +661,479,3,3,132,492 +662,351,3,8,147,379 +663,351,3,8,147,380 +664,351,3,8,147,381 +665,550,10,180,161,566 +666,555,13,929,189,572 +667,648,6,65,270,666 diff --git a/pokedex/data/csv/pokemon_forms.csv b/pokedex/data/csv/pokemon_forms.csv index e34db6e..d812e37 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,0,1,379 +678,rainy,663,5,0,1,380 +679,snowy,664,5,0,1,381 +680,attack,650,7,0,0,419 +681,defense,651,7,0,0,420 +682,speed,652,6,0,0,421 +683,sandy,412,8,0,0,445 +684,trash,412,8,0,0,445 +685,sandy,653,8,0,0,447 +686,trash,654,8,0,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,0,0,488 +708,wash,658,9,0,0,489 +709,frost,659,9,0,0,490 +710,fan,660,9,0,0,491 +711,mow,661,9,0,0,492 +712,origin,656,9,0,0,501 +713,sky,655,9,0,0,507 +714,spiky-eared,172,10,0,0,25 +715,blue-striped,665,11,0,0,566 +716,zen,666,11,0,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,0,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_species.csv b/pokedex/data/csv/pokemon_species.csv new file mode 100644 index 0000000..6496019 --- /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,growth_rate_id,gender_rate,capture_rate,base_happiness,is_baby,hatch_counter,has_gender_differences,forms_switchable +1,bulbasaur,1,,1,5,8,3,4,1,45,70,0,20,0,0 +2,ivysaur,1,1,1,5,8,3,4,1,45,70,0,20,0,0 +3,venusaur,1,2,1,5,8,3,4,1,45,70,0,20,1,0 +4,charmander,1,,2,8,6,4,4,1,45,70,0,20,0,0 +5,charmeleon,1,4,2,8,6,4,4,1,45,70,0,20,0,0 +6,charizard,1,5,2,8,6,4,4,1,45,70,0,20,0,0 +7,squirtle,1,,3,2,6,9,4,1,45,70,0,20,0,0 +8,wartortle,1,7,3,2,6,9,4,1,45,70,0,20,0,0 +9,blastoise,1,8,3,2,6,9,4,1,45,70,0,20,0,0 +10,caterpie,1,,4,5,2,2,2,4,255,70,0,15,0,0 +11,metapod,1,10,4,5,2,2,2,4,120,70,0,15,0,0 +12,butterfree,1,11,4,9,13,2,2,4,45,70,0,15,1,0 +13,weedle,1,,5,3,2,2,2,4,255,70,0,15,0,0 +14,kakuna,1,13,5,10,2,2,2,4,120,70,0,15,0,0 +15,beedrill,1,14,5,10,13,2,2,4,45,70,0,15,0,0 +16,pidgey,1,,6,3,9,2,4,4,255,70,0,15,0,0 +17,pidgeotto,1,16,6,3,9,2,4,4,120,70,0,15,0,0 +18,pidgeot,1,17,6,3,9,2,4,4,45,70,0,15,0,0 +19,rattata,1,,7,7,8,3,2,4,255,70,0,15,1,0 +20,raticate,1,19,7,3,8,3,2,4,127,70,0,15,1,0 +21,spearow,1,,8,3,9,6,2,4,255,70,0,15,0,0 +22,fearow,1,21,8,3,9,6,2,4,90,70,0,15,0,0 +23,ekans,1,,9,7,2,3,2,4,255,70,0,20,0,0 +24,arbok,1,23,9,7,2,3,2,4,90,70,0,20,0,0 +25,pikachu,1,172,10,10,8,2,2,4,190,70,0,10,1,0 +26,raichu,1,25,10,10,6,2,2,4,75,70,0,10,1,0 +27,sandshrew,1,,11,10,6,6,2,4,255,70,0,20,0,0 +28,sandslash,1,27,11,10,6,6,2,4,90,70,0,20,0,0 +29,nidoran-f,1,,12,2,8,3,4,8,235,70,0,20,0,0 +30,nidorina,1,29,12,2,8,3,4,8,120,70,0,20,0,0 +31,nidoqueen,1,30,12,2,6,3,4,8,45,70,0,20,0,0 +32,nidoran-m,1,,13,7,8,3,4,0,235,70,0,20,0,0 +33,nidorino,1,32,13,7,8,3,4,0,120,70,0,20,0,0 +34,nidoking,1,33,13,7,6,3,4,0,45,70,0,20,0,0 +35,clefairy,1,173,14,6,6,4,3,6,150,140,0,10,0,0 +36,clefable,1,35,14,6,6,4,3,6,25,140,0,10,0,0 +37,vulpix,1,,15,3,8,3,2,6,190,70,0,20,0,0 +38,ninetales,1,37,15,10,8,3,2,6,75,70,0,20,0,0 +39,jigglypuff,1,174,16,6,12,3,3,6,170,70,0,10,0,0 +40,wigglytuff,1,39,16,6,12,3,3,6,50,70,0,10,0,0 +41,zubat,1,,17,7,9,1,2,4,255,70,0,15,1,0 +42,golbat,1,41,17,7,9,1,2,4,90,70,0,15,1,0 +43,oddish,1,,18,2,7,3,4,4,255,70,0,20,0,0 +44,gloom,1,43,18,2,12,3,4,4,120,70,0,20,1,0 +45,vileplume,1,44,18,8,12,3,4,4,45,70,0,20,1,0 +46,paras,1,,19,8,14,2,2,4,190,70,0,20,0,0 +47,parasect,1,46,19,8,14,2,2,4,75,70,0,20,0,0 +48,venonat,1,,20,7,12,2,2,4,190,70,0,20,0,0 +49,venomoth,1,48,20,7,13,2,2,4,75,70,0,20,0,0 +50,diglett,1,,21,3,5,1,2,4,255,70,0,20,0,0 +51,dugtrio,1,50,21,3,11,1,2,4,50,70,0,20,0,0 +52,meowth,1,,22,10,8,8,2,4,255,70,0,20,0,0 +53,persian,1,52,22,10,8,8,2,4,90,70,0,20,0,0 +54,psyduck,1,,23,10,6,9,2,4,190,70,0,20,0,0 +55,golduck,1,54,23,2,6,9,2,4,75,70,0,20,0,0 +56,mankey,1,,24,3,6,4,2,4,190,70,0,20,0,0 +57,primeape,1,56,24,3,6,4,2,4,75,70,0,20,0,0 +58,growlithe,1,,25,3,8,3,1,2,190,70,0,20,0,0 +59,arcanine,1,58,25,3,8,3,1,2,75,70,0,20,0,0 +60,poliwag,1,,26,2,7,9,4,4,255,70,0,20,0,0 +61,poliwhirl,1,60,26,2,12,9,4,4,120,70,0,20,0,0 +62,poliwrath,1,61,26,2,12,9,4,4,45,70,0,20,0,0 +63,abra,1,,27,3,6,8,4,2,200,70,0,20,0,0 +64,kadabra,1,63,27,3,6,8,4,2,100,70,0,20,1,0 +65,alakazam,1,64,27,3,12,8,4,2,50,70,0,20,1,0 +66,machop,1,,28,4,6,4,4,2,180,70,0,20,0,0 +67,machoke,1,66,28,4,12,4,4,2,90,70,0,20,0,0 +68,machamp,1,67,28,4,12,4,4,2,45,70,0,20,0,0 +69,bellsprout,1,,29,5,12,2,4,4,255,70,0,20,0,0 +70,weepinbell,1,69,29,5,5,2,4,4,120,70,0,20,0,0 +71,victreebel,1,70,29,5,5,2,4,4,45,70,0,20,0,0 +72,tentacool,1,,30,2,10,7,1,4,190,70,0,20,0,0 +73,tentacruel,1,72,30,2,10,7,1,4,60,70,0,20,0,0 +74,geodude,1,,31,3,4,4,4,4,255,70,0,15,0,0 +75,graveler,1,74,31,3,12,4,4,4,120,70,0,15,0,0 +76,golem,1,75,31,3,12,4,4,4,45,70,0,15,0,0 +77,ponyta,1,,32,10,8,3,2,4,190,70,0,20,0,0 +78,rapidash,1,77,32,10,8,3,2,4,60,70,0,20,0,0 +79,slowpoke,1,,33,6,8,9,2,4,190,70,0,20,0,0 +80,slowbro,1,79,33,6,6,9,2,4,75,70,0,20,0,0 +81,magnemite,1,,34,4,4,6,2,-1,190,70,0,20,0,0 +82,magneton,1,81,34,4,11,6,2,-1,60,70,0,20,0,0 +83,farfetchd,1,,35,3,9,3,2,4,45,70,0,20,0,0 +84,doduo,1,,36,3,7,3,2,4,190,70,0,20,1,0 +85,dodrio,1,84,36,3,7,3,2,4,45,70,0,20,1,0 +86,seel,1,,37,9,3,7,2,4,190,70,0,20,0,0 +87,dewgong,1,86,37,9,3,7,2,4,75,70,0,20,0,0 +88,grimer,1,,38,7,4,8,2,4,190,70,0,20,0,0 +89,muk,1,88,38,7,4,8,2,4,75,70,0,20,0,0 +90,shellder,1,,39,7,1,7,1,4,190,70,0,20,0,0 +91,cloyster,1,90,39,7,1,7,1,4,60,70,0,20,0,0 +92,gastly,1,,40,7,1,1,4,4,190,70,0,20,0,0 +93,haunter,1,92,40,7,4,1,4,4,90,70,0,20,0,0 +94,gengar,1,93,40,7,6,1,4,4,45,70,0,20,0,0 +95,onix,1,,41,4,2,1,2,4,45,70,0,25,0,0 +96,drowzee,1,,42,10,12,3,2,4,190,70,0,20,0,0 +97,hypno,1,96,42,10,12,3,2,4,75,70,0,20,1,0 +98,krabby,1,,43,8,14,9,2,4,225,70,0,20,0,0 +99,kingler,1,98,43,8,14,9,2,4,60,70,0,20,0,0 +100,voltorb,1,,44,8,1,8,2,-1,190,70,0,20,0,0 +101,electrode,1,100,44,8,1,8,2,-1,60,70,0,20,0,0 +102,exeggcute,1,,45,6,11,2,1,4,90,70,0,20,0,0 +103,exeggutor,1,102,45,10,7,2,1,4,45,70,0,20,0,0 +104,cubone,1,,46,3,6,4,2,4,190,70,0,20,0,0 +105,marowak,1,104,46,3,6,4,2,4,75,70,0,20,0,0 +106,hitmonlee,1,236,47,3,12,8,2,0,45,70,0,25,0,0 +107,hitmonchan,1,236,47,3,12,8,2,0,45,70,0,25,0,0 +108,lickitung,1,,48,6,6,3,2,4,45,70,0,20,0,0 +109,koffing,1,,49,7,1,8,2,4,190,70,0,20,0,0 +110,weezing,1,109,49,7,11,8,2,4,60,70,0,20,0,0 +111,rhyhorn,1,,50,4,8,6,1,4,120,70,0,20,1,0 +112,rhydon,1,111,50,4,6,6,1,4,60,70,0,20,1,0 +113,chansey,1,440,51,6,6,8,3,8,30,140,0,40,0,0 +114,tangela,1,,52,2,7,3,2,4,45,70,0,20,0,0 +115,kangaskhan,1,,53,3,6,3,2,8,45,70,0,20,0,0 +116,horsea,1,,54,2,5,7,2,4,225,70,0,20,0,0 +117,seadra,1,116,54,2,5,7,2,4,75,70,0,20,0,0 +118,goldeen,1,,55,8,3,9,2,4,225,70,0,20,1,0 +119,seaking,1,118,55,8,3,9,2,4,60,70,0,20,1,0 +120,staryu,1,,56,3,5,7,1,-1,225,70,0,20,0,0 +121,starmie,1,120,56,7,5,7,1,-1,60,70,0,20,0,0 +122,mr-mime,1,439,57,6,12,8,2,4,45,70,0,25,0,0 +123,scyther,1,,58,5,13,3,2,4,45,70,0,25,1,0 +124,jynx,1,238,59,8,12,8,2,8,45,70,0,25,0,0 +125,electabuzz,1,239,60,10,6,3,2,2,45,70,0,25,0,0 +126,magmar,1,240,61,8,6,4,2,2,45,70,0,25,0,0 +127,pinsir,1,,62,3,12,2,1,4,45,70,0,25,0,0 +128,tauros,1,,63,3,8,3,1,0,45,70,0,20,0,0 +129,magikarp,1,,64,8,3,9,1,4,255,70,0,5,1,0 +130,gyarados,1,129,64,2,2,9,1,4,45,70,0,5,1,0 +131,lapras,1,,65,2,3,7,1,4,45,70,0,40,0,0 +132,ditto,1,,66,7,1,8,2,-1,35,70,0,20,0,0 +133,eevee,1,,67,3,8,8,2,1,45,70,0,35,0,0 +134,vaporeon,1,133,67,2,8,8,2,1,45,70,0,35,0,0 +135,jolteon,1,133,67,10,8,8,2,1,45,70,0,35,0,0 +136,flareon,1,133,67,8,8,8,2,1,45,70,0,35,0,0 +137,porygon,1,,68,6,7,8,2,-1,45,70,0,20,0,0 +138,omanyte,1,,69,2,10,7,2,1,45,70,0,30,0,0 +139,omastar,1,138,69,2,10,7,2,1,45,70,0,30,0,0 +140,kabuto,1,,70,3,14,7,2,1,45,70,0,30,0,0 +141,kabutops,1,140,70,3,6,7,2,1,45,70,0,30,0,0 +142,aerodactyl,1,,71,7,9,4,1,1,45,70,0,35,0,0 +143,snorlax,1,446,72,1,12,4,1,1,25,70,0,40,0,0 +144,articuno,1,,73,2,9,5,1,-1,3,35,0,80,0,0 +145,zapdos,1,,74,10,9,5,1,-1,3,35,0,80,0,0 +146,moltres,1,,75,10,9,5,1,-1,3,35,0,80,0,0 +147,dratini,1,,76,2,2,9,1,4,45,35,0,40,0,0 +148,dragonair,1,147,76,2,2,9,1,4,45,35,0,40,0,0 +149,dragonite,1,148,76,3,6,9,1,4,45,35,0,40,0,0 +150,mewtwo,1,,77,7,6,5,1,-1,3,0,0,120,0,0 +151,mew,1,,78,6,6,5,4,-1,45,100,0,120,0,0 +152,chikorita,2,,79,5,8,3,4,1,45,70,0,20,0,0 +153,bayleef,2,152,79,5,8,3,4,1,45,70,0,20,0,0 +154,meganium,2,153,79,5,8,3,4,1,45,70,0,20,1,0 +155,cyndaquil,2,,80,10,12,3,4,1,45,70,0,20,0,0 +156,quilava,2,155,80,10,8,3,4,1,45,70,0,20,0,0 +157,typhlosion,2,156,80,10,8,3,4,1,45,70,0,20,0,0 +158,totodile,2,,81,2,6,9,4,1,45,70,0,20,0,0 +159,croconaw,2,158,81,2,6,9,4,1,45,70,0,20,0,0 +160,feraligatr,2,159,81,2,6,9,4,1,45,70,0,20,0,0 +161,sentret,2,,82,3,8,3,2,4,255,70,0,15,0,0 +162,furret,2,161,82,3,8,3,2,4,90,70,0,15,0,0 +163,hoothoot,2,,83,3,9,2,2,4,255,70,0,15,0,0 +164,noctowl,2,163,83,3,9,2,2,4,90,70,0,15,0,0 +165,ledyba,2,,84,8,9,2,3,4,255,70,0,15,1,0 +166,ledian,2,165,84,8,9,2,3,4,90,70,0,15,1,0 +167,spinarak,2,,85,5,14,2,3,4,255,70,0,15,0,0 +168,ariados,2,167,85,8,14,2,3,4,90,70,0,15,0,0 +169,crobat,2,42,17,7,13,1,2,4,90,70,0,15,0,0 +170,chinchou,2,,86,2,3,7,1,4,190,70,0,20,0,0 +171,lanturn,2,170,86,2,3,7,1,4,75,70,0,20,0,0 +172,pichu,2,,10,10,8,2,2,4,190,70,1,10,0,False +173,cleffa,2,,14,6,6,4,3,6,150,140,1,10,0,0 +174,igglybuff,2,,16,6,12,3,3,6,170,70,1,10,0,0 +175,togepi,2,,87,9,12,2,3,1,190,70,1,10,0,0 +176,togetic,2,175,87,9,12,2,3,1,75,70,0,10,0,0 +177,natu,2,,88,5,9,2,2,4,190,70,0,20,0,0 +178,xatu,2,177,88,5,9,2,2,4,75,70,0,20,1,0 +179,mareep,2,,89,9,8,3,4,4,235,70,0,20,0,0 +180,flaaffy,2,179,89,6,6,3,4,4,120,70,0,20,0,0 +181,ampharos,2,180,89,10,6,3,4,4,45,70,0,20,0,0 +182,bellossom,2,44,18,5,12,3,4,4,45,70,0,20,0,0 +183,marill,2,298,90,2,6,9,3,4,190,70,0,10,0,0 +184,azumarill,2,183,90,2,6,9,3,4,75,70,0,10,0,0 +185,sudowoodo,2,438,91,3,12,2,2,4,65,70,0,20,1,0 +186,politoed,2,61,26,5,12,9,4,4,45,70,0,20,1,0 +187,hoppip,2,,92,6,6,3,4,4,255,70,0,20,0,0 +188,skiploom,2,187,92,5,6,3,4,4,120,70,0,20,0,0 +189,jumpluff,2,188,92,2,6,3,4,4,45,70,0,20,0,0 +190,aipom,2,,93,7,6,2,3,4,45,70,0,20,1,0 +191,sunkern,2,,94,10,1,3,4,4,235,70,0,20,0,0 +192,sunflora,2,191,94,10,12,3,4,4,120,70,0,20,0,0 +193,yanma,2,,95,8,13,2,2,4,75,70,0,20,0,0 +194,wooper,2,,96,2,7,9,2,4,255,70,0,20,1,0 +195,quagsire,2,194,96,2,6,9,2,4,90,70,0,20,1,0 +196,espeon,2,133,67,7,8,8,2,1,45,70,0,35,0,0 +197,umbreon,2,133,67,1,8,8,2,1,45,35,0,35,0,0 +198,murkrow,2,,97,1,9,2,4,4,30,35,0,20,1,0 +199,slowking,2,79,33,6,6,9,2,4,70,70,0,20,0,0 +200,misdreavus,2,,98,4,1,1,3,4,45,35,0,25,0,0 +201,unown,2,,99,1,1,5,2,-1,225,70,0,40,0,False +202,wobbuffet,2,360,100,2,5,1,2,4,45,70,0,20,1,0 +203,girafarig,2,,101,10,8,3,2,4,60,70,0,20,1,0 +204,pineco,2,,102,4,1,2,2,4,190,70,0,20,0,0 +205,forretress,2,204,102,7,1,2,2,4,75,70,0,20,0,0 +206,dunsparce,2,,103,10,2,1,2,4,190,70,0,20,0,0 +207,gligar,2,,104,7,9,4,4,4,60,70,0,20,1,0 +208,steelix,2,95,41,4,2,1,2,4,25,70,0,25,1,0 +209,snubbull,2,,105,6,12,8,3,6,190,70,0,20,0,0 +210,granbull,2,209,105,7,6,8,3,6,75,70,0,20,0,0 +211,qwilfish,2,,106,4,3,7,2,4,45,70,0,20,0,0 +212,scizor,2,123,58,8,13,3,2,4,25,70,0,25,1,0 +213,shuckle,2,,107,10,14,4,4,4,190,70,0,20,0,0 +214,heracross,2,,108,2,12,2,1,4,45,70,0,25,1,0 +215,sneasel,2,,109,1,6,2,4,4,60,35,0,20,1,0 +216,teddiursa,2,,110,3,6,4,2,4,120,70,0,20,0,0 +217,ursaring,2,216,110,3,6,4,2,4,60,70,0,20,1,0 +218,slugma,2,,111,8,2,4,2,4,190,70,0,20,0,0 +219,magcargo,2,218,111,8,2,4,2,4,75,70,0,20,0,0 +220,swinub,2,,112,3,8,1,1,4,225,70,0,20,0,0 +221,piloswine,2,220,112,3,8,1,1,4,75,70,0,20,1,0 +222,corsola,2,,113,6,14,7,3,6,60,70,0,20,0,0 +223,remoraid,2,,114,4,3,7,2,4,190,70,0,20,0,0 +224,octillery,2,223,114,8,10,7,2,4,75,70,0,20,1,0 +225,delibird,2,,115,8,9,4,3,4,45,70,0,20,0,0 +226,mantine,2,458,116,7,9,7,1,4,25,70,0,25,0,0 +227,skarmory,2,,117,4,9,6,1,4,25,70,0,25,0,0 +228,houndour,2,,118,1,8,6,1,4,120,35,0,20,0,0 +229,houndoom,2,228,118,1,8,6,1,4,45,35,0,20,1,0 +230,kingdra,2,117,54,2,5,7,2,4,45,70,0,20,0,0 +231,phanpy,2,,119,2,8,6,2,4,120,70,0,20,0,0 +232,donphan,2,231,119,4,8,6,2,4,60,70,0,20,1,0 +233,porygon2,2,137,68,8,7,8,2,-1,45,70,0,20,0,0 +234,stantler,2,,120,3,8,2,1,4,45,70,0,20,0,0 +235,smeargle,2,,121,9,6,8,3,4,45,70,0,20,0,0 +236,tyrogue,2,,47,7,12,8,2,0,75,70,1,25,0,0 +237,hitmontop,2,236,47,3,6,8,2,0,45,70,0,25,0,0 +238,smoochum,2,,59,6,12,8,2,8,45,70,1,25,0,0 +239,elekid,2,,60,10,12,3,2,2,45,70,1,25,0,0 +240,magby,2,,61,8,6,4,2,2,45,70,1,25,0,0 +241,miltank,2,,122,6,6,3,1,8,45,70,0,20,0,0 +242,blissey,2,113,51,6,12,8,3,8,30,140,0,40,0,0 +243,raikou,2,,123,10,8,3,1,-1,3,35,0,80,0,0 +244,entei,2,,124,3,8,3,1,-1,3,35,0,80,0,0 +245,suicune,2,,125,2,8,3,1,-1,3,35,0,80,0,0 +246,larvitar,2,,126,5,6,4,1,4,45,35,0,40,0,0 +247,pupitar,2,246,126,4,2,4,1,4,45,35,0,40,0,0 +248,tyranitar,2,247,126,5,6,4,1,4,45,35,0,40,0,0 +249,lugia,2,,127,9,9,5,1,-1,3,0,0,120,0,0 +250,ho-oh,2,,128,8,9,5,1,-1,3,0,0,120,0,0 +251,celebi,2,,129,5,12,2,4,-1,45,100,0,120,0,0 +252,treecko,3,,130,5,6,2,4,1,45,70,0,20,0,0 +253,grovyle,3,252,130,5,6,2,4,1,45,70,0,20,0,0 +254,sceptile,3,253,130,5,6,2,4,1,45,70,0,20,0,0 +255,torchic,3,,131,8,7,3,4,1,45,70,0,20,1,0 +256,combusken,3,255,131,8,6,3,4,1,45,70,0,20,1,0 +257,blaziken,3,256,131,8,6,3,4,1,45,70,0,20,1,0 +258,mudkip,3,,132,2,8,9,4,1,45,70,0,20,0,0 +259,marshtomp,3,258,132,2,6,9,4,1,45,70,0,20,0,0 +260,swampert,3,259,132,2,6,9,4,1,45,70,0,20,0,0 +261,poochyena,3,,133,4,8,3,2,4,255,70,0,15,0,0 +262,mightyena,3,261,133,4,8,3,2,4,127,70,0,15,0,0 +263,zigzagoon,3,,134,3,8,3,2,4,255,70,0,15,0,0 +264,linoone,3,263,134,9,8,3,2,4,90,70,0,15,0,0 +265,wurmple,3,,135,8,2,2,2,4,255,70,0,15,0,0 +266,silcoon,3,265,135,9,1,2,2,4,120,70,0,15,0,0 +267,beautifly,3,266,135,10,13,2,2,4,45,70,0,15,1,0 +268,cascoon,3,265,135,7,1,2,2,4,120,70,0,15,0,0 +269,dustox,3,268,135,5,13,2,2,4,45,70,0,15,1,0 +270,lotad,3,,136,5,14,9,4,4,255,70,0,15,0,0 +271,lombre,3,270,136,5,12,9,4,4,120,70,0,15,0,0 +272,ludicolo,3,271,136,5,12,9,4,4,45,70,0,15,1,0 +273,seedot,3,,137,3,7,2,4,4,255,70,0,15,0,0 +274,nuzleaf,3,273,137,3,12,2,4,4,120,70,0,15,1,0 +275,shiftry,3,274,137,3,12,2,4,4,45,70,0,15,1,0 +276,taillow,3,,138,2,9,3,4,4,200,70,0,15,0,0 +277,swellow,3,276,138,2,9,3,4,4,45,70,0,15,0,0 +278,wingull,3,,139,9,9,7,2,4,190,70,0,20,0,0 +279,pelipper,3,278,139,10,9,7,2,4,45,70,0,20,0,0 +280,ralts,3,,140,9,12,8,1,4,235,35,0,20,0,0 +281,kirlia,3,280,140,9,12,8,1,4,120,35,0,20,0,0 +282,gardevoir,3,281,140,9,12,8,1,4,45,35,0,20,0,0 +283,surskit,3,,141,2,14,9,2,4,200,70,0,15,0,0 +284,masquerain,3,283,141,2,13,9,2,4,75,70,0,15,0,0 +285,shroomish,3,,142,3,7,2,6,4,255,70,0,15,0,0 +286,breloom,3,285,142,5,6,2,6,4,90,70,0,15,0,0 +287,slakoth,3,,143,3,8,2,1,4,255,70,0,15,0,0 +288,vigoroth,3,287,143,9,6,2,1,4,120,70,0,15,0,0 +289,slaking,3,288,143,3,12,2,1,4,45,70,0,15,0,0 +290,nincada,3,,144,4,14,2,5,4,255,70,0,15,0,0 +291,ninjask,3,290,144,10,13,2,5,4,120,70,0,15,0,0 +292,shedinja,3,290,144,3,5,2,5,-1,45,70,0,15,0,0 +293,whismur,3,,145,6,6,1,4,4,190,70,0,20,0,0 +294,loudred,3,293,145,2,6,1,4,4,120,70,0,20,0,0 +295,exploud,3,294,145,2,6,1,4,4,45,70,0,20,0,0 +296,makuhita,3,,146,10,12,4,6,2,180,70,0,20,0,0 +297,hariyama,3,296,146,3,12,4,6,2,200,70,0,20,0,0 +298,azurill,3,,90,2,7,9,3,6,150,70,1,10,0,0 +299,nosepass,3,,147,4,12,1,2,4,255,70,0,20,0,0 +300,skitty,3,,148,6,8,2,3,6,255,70,0,15,0,0 +301,delcatty,3,300,148,7,8,2,3,6,60,70,0,15,0,0 +302,sableye,3,,149,7,12,1,4,4,45,35,0,25,0,0 +303,mawile,3,,150,1,12,1,3,4,45,70,0,20,0,0 +304,aron,3,,151,4,8,4,1,4,180,35,0,35,0,0 +305,lairon,3,304,151,4,8,4,1,4,90,35,0,35,0,0 +306,aggron,3,305,151,4,6,4,1,4,45,35,0,35,0,0 +307,meditite,3,,152,2,12,4,2,4,180,70,0,20,1,0 +308,medicham,3,307,152,8,12,4,2,4,90,70,0,20,1,0 +309,electrike,3,,153,5,8,3,1,4,120,70,0,20,0,0 +310,manectric,3,309,153,10,8,3,1,4,45,70,0,20,0,0 +311,plusle,3,,154,10,6,3,2,4,200,70,0,20,0,0 +312,minun,3,,155,10,6,3,2,4,200,70,0,20,0,0 +313,volbeat,3,,156,4,6,2,5,0,150,70,0,15,0,0 +314,illumise,3,,157,7,12,2,6,8,150,70,0,15,0,0 +315,roselia,3,406,158,5,12,3,4,4,150,70,0,20,1,0 +316,gulpin,3,,159,5,4,3,6,4,225,70,0,20,1,0 +317,swalot,3,316,159,7,4,3,6,4,75,70,0,20,1,0 +318,carvanha,3,,160,8,3,7,1,4,225,35,0,20,0,0 +319,sharpedo,3,318,160,2,3,7,1,4,60,35,0,20,0,0 +320,wailmer,3,,161,2,3,7,6,4,125,70,0,40,0,0 +321,wailord,3,320,161,2,3,7,6,4,60,70,0,40,0,0 +322,numel,3,,162,10,8,4,2,4,255,70,0,20,1,0 +323,camerupt,3,322,162,8,8,4,2,4,150,70,0,20,1,0 +324,torkoal,3,,163,3,8,4,2,4,90,70,0,20,0,0 +325,spoink,3,,164,1,4,4,3,4,255,70,0,20,0,0 +326,grumpig,3,325,164,7,6,4,3,4,60,70,0,20,0,0 +327,spinda,3,,165,3,6,4,3,4,255,70,0,15,0,0 +328,trapinch,3,,166,3,14,6,4,4,255,70,0,20,0,0 +329,vibrava,3,328,166,5,13,6,4,4,120,70,0,20,0,0 +330,flygon,3,329,166,5,9,6,4,4,45,70,0,20,0,0 +331,cacnea,3,,167,5,12,6,4,4,190,35,0,20,0,0 +332,cacturne,3,331,167,5,12,6,4,4,60,35,0,20,1,0 +333,swablu,3,,168,2,9,2,5,4,255,70,0,20,0,0 +334,altaria,3,333,168,2,9,2,5,4,45,70,0,20,0,0 +335,zangoose,3,,169,9,6,3,5,4,90,70,0,20,0,0 +336,seviper,3,,170,1,2,3,6,4,90,70,0,20,0,0 +337,lunatone,3,,171,10,1,1,3,-1,45,70,0,25,0,0 +338,solrock,3,,172,8,1,1,3,-1,45,70,0,25,0,0 +339,barboach,3,,173,4,3,9,2,4,190,70,0,20,0,0 +340,whiscash,3,339,173,2,3,9,2,4,75,70,0,20,0,0 +341,corphish,3,,174,8,14,9,6,4,205,70,0,15,0,0 +342,crawdaunt,3,341,174,8,14,9,6,4,155,70,0,15,0,0 +343,baltoy,3,,175,3,4,6,2,-1,255,70,0,20,0,0 +344,claydol,3,343,175,1,4,6,2,-1,90,70,0,20,0,0 +345,lileep,3,,176,7,5,7,5,1,45,70,0,30,0,0 +346,cradily,3,345,176,5,5,7,5,1,45,70,0,30,0,0 +347,anorith,3,,177,4,14,9,5,1,45,70,0,30,0,0 +348,armaldo,3,347,177,4,6,9,5,1,45,70,0,30,0,0 +349,feebas,3,,178,3,3,9,5,4,255,70,0,20,0,0 +350,milotic,3,349,178,6,2,9,5,4,60,70,0,20,1,0 +351,castform,3,,179,9,1,3,2,4,45,70,0,25,0,True +352,kecleon,3,,180,5,6,2,4,4,200,70,0,20,0,0 +353,shuppet,3,,181,1,1,8,3,4,225,35,0,25,0,0 +354,banette,3,353,181,1,6,8,3,4,45,35,0,25,0,0 +355,duskull,3,,182,1,4,2,3,4,190,35,0,25,0,0 +356,dusclops,3,355,182,1,12,2,3,4,90,35,0,25,0,0 +357,tropius,3,,183,5,8,2,1,4,200,70,0,25,0,0 +358,chimecho,3,433,184,2,4,3,3,4,45,70,0,25,0,0 +359,absol,3,,185,9,8,4,4,4,30,35,0,25,0,0 +360,wynaut,3,,100,2,6,1,2,4,125,70,1,20,0,0 +361,snorunt,3,,186,4,12,1,2,4,190,70,0,20,0,0 +362,glalie,3,361,186,4,1,1,2,4,75,70,0,20,0,0 +363,spheal,3,,187,2,3,7,4,4,255,70,0,20,0,0 +364,sealeo,3,363,187,2,3,7,4,4,120,70,0,20,0,0 +365,walrein,3,364,187,2,8,7,4,4,45,70,0,20,0,0 +366,clamperl,3,,188,2,1,7,5,4,255,70,0,20,0,0 +367,huntail,3,366,188,2,2,7,5,4,60,70,0,20,0,0 +368,gorebyss,3,366,188,6,2,7,5,4,60,70,0,20,0,0 +369,relicanth,3,,189,4,3,7,1,1,25,70,0,40,1,0 +370,luvdisc,3,,190,6,3,7,3,6,225,70,0,20,0,0 +371,bagon,3,,191,2,12,6,1,4,45,35,0,40,0,0 +372,shelgon,3,371,191,9,8,6,1,4,45,35,0,40,0,0 +373,salamence,3,372,191,2,8,6,1,4,45,35,0,40,0,0 +374,beldum,3,,192,2,5,6,1,-1,3,35,0,40,0,0 +375,metang,3,374,192,2,4,6,1,-1,3,35,0,40,0,0 +376,metagross,3,375,192,2,11,6,1,-1,3,35,0,40,0,0 +377,regirock,3,,193,3,12,1,1,-1,3,35,0,80,0,0 +378,regice,3,,194,2,12,1,1,-1,3,35,0,80,0,0 +379,registeel,3,,195,4,12,1,1,-1,3,35,0,80,0,0 +380,latias,3,,196,8,9,9,1,8,3,90,0,120,0,0 +381,latios,3,,197,2,9,9,1,0,3,90,0,120,0,0 +382,kyogre,3,,198,2,3,7,1,-1,5,0,0,120,0,0 +383,groudon,3,,199,8,6,6,1,-1,5,0,0,120,0,0 +384,rayquaza,3,,200,5,2,5,1,-1,3,0,0,120,0,0 +385,jirachi,3,,201,10,12,4,1,-1,3,100,0,120,0,0 +386,deoxys,3,,202,8,12,5,1,-1,3,0,0,120,0,True +387,turtwig,4,,203,5,8,,4,1,45,70,0,20,0,0 +388,grotle,4,387,203,5,8,,4,1,45,70,0,20,0,0 +389,torterra,4,388,203,5,8,,4,1,45,70,0,20,0,0 +390,chimchar,4,,204,3,6,,4,1,45,70,0,20,0,0 +391,monferno,4,390,204,3,6,,4,1,45,70,0,20,0,0 +392,infernape,4,391,204,3,6,,4,1,45,70,0,20,0,0 +393,piplup,4,,205,2,12,,4,1,45,70,0,20,0,0 +394,prinplup,4,393,205,2,6,,4,1,45,70,0,20,0,0 +395,empoleon,4,394,205,2,6,,4,1,45,70,0,20,0,0 +396,starly,4,,206,3,9,,4,4,255,70,0,15,1,0 +397,staravia,4,396,206,3,9,,4,4,120,70,0,15,1,0 +398,staraptor,4,397,206,3,9,,4,4,45,70,0,15,1,0 +399,bidoof,4,,207,3,8,,2,4,255,70,0,15,1,0 +400,bibarel,4,399,207,3,6,,2,4,127,70,0,15,1,0 +401,kricketot,4,,208,8,12,,4,4,255,70,0,15,1,0 +402,kricketune,4,401,208,8,13,,4,4,45,70,0,15,1,0 +403,shinx,4,,209,2,8,,4,4,235,70,0,20,1,0 +404,luxio,4,403,209,2,8,,4,4,120,100,0,20,1,0 +405,luxray,4,404,209,2,8,,4,4,45,70,0,20,1,0 +406,budew,4,,158,5,12,,4,4,255,70,1,20,0,0 +407,roserade,4,315,158,5,12,,4,4,75,70,0,20,1,0 +408,cranidos,4,,211,2,6,,5,1,45,70,0,30,0,0 +409,rampardos,4,408,211,2,6,,5,1,45,70,0,30,0,0 +410,shieldon,4,,212,4,8,,5,1,45,70,0,30,0,0 +411,bastiodon,4,410,212,4,8,,5,1,45,70,0,30,0,0 +412,burmy,4,,213,4,2,,2,4,120,70,0,15,0,True +413,wormadam,4,412,213,4,2,,2,8,45,70,0,15,0,False +414,mothim,4,412,213,10,13,,2,0,45,70,0,15,0,0 +415,combee,4,,214,10,11,,4,1,120,70,0,15,1,0 +416,vespiquen,4,415,214,10,9,,4,8,45,70,0,15,0,0 +417,pachirisu,4,,215,9,8,,2,4,200,100,0,10,1,0 +418,buizel,4,,216,3,8,,2,4,190,70,0,20,1,0 +419,floatzel,4,418,216,3,8,,2,4,75,70,0,20,1,0 +420,cherubi,4,,217,6,11,,2,4,190,70,0,20,0,0 +421,cherrim,4,420,217,6,7,,2,4,75,70,0,20,0,True +422,shellos,4,,218,7,14,,2,4,190,70,0,20,0,False +423,gastrodon,4,422,218,7,14,,2,4,75,70,0,20,0,False +424,ambipom,4,190,93,7,6,,3,4,45,100,0,20,1,0 +425,drifloon,4,,219,7,4,,6,4,125,70,0,30,0,0 +426,drifblim,4,425,219,7,4,,6,4,60,70,0,30,0,0 +427,buneary,4,,220,3,6,,2,4,190,0,0,20,0,0 +428,lopunny,4,427,220,3,6,,2,4,60,140,0,20,0,0 +429,mismagius,4,200,98,7,1,,3,4,45,35,0,25,0,0 +430,honchkrow,4,198,97,1,9,,4,4,30,35,0,20,0,0 +431,glameow,4,,221,4,8,,3,6,190,70,0,20,0,0 +432,purugly,4,431,221,4,8,,3,6,75,70,0,20,0,0 +433,chingling,4,,184,10,12,,3,4,120,70,1,25,0,0 +434,stunky,4,,223,7,8,,2,4,225,70,0,20,0,0 +435,skuntank,4,434,223,7,8,,2,4,60,70,0,20,0,0 +436,bronzor,4,,224,5,1,,2,-1,255,70,0,20,0,0 +437,bronzong,4,436,224,5,4,,2,-1,90,70,0,20,0,0 +438,bonsly,4,,91,3,7,,2,4,255,70,1,20,0,0 +439,mime-jr,4,,57,6,12,,2,4,145,70,1,25,0,0 +440,happiny,4,,51,6,12,,3,8,130,140,1,40,0,0 +441,chatot,4,,228,1,9,,4,4,30,35,0,20,0,0 +442,spiritomb,4,,229,7,5,,2,4,100,70,0,30,0,0 +443,gible,4,,230,2,6,,1,4,45,70,0,40,1,0 +444,gabite,4,443,230,2,6,,1,4,45,70,0,40,1,0 +445,garchomp,4,444,230,2,6,,1,4,45,70,0,40,1,0 +446,munchlax,4,,72,1,12,,1,1,50,70,1,40,0,0 +447,riolu,4,,232,2,6,,4,1,75,70,1,25,0,0 +448,lucario,4,447,232,2,6,,4,1,45,70,0,25,0,0 +449,hippopotas,4,,233,3,8,,1,4,140,70,0,30,1,0 +450,hippowdon,4,449,233,3,8,,1,4,60,70,0,30,1,0 +451,skorupi,4,,234,7,14,,1,4,120,70,0,20,0,0 +452,drapion,4,451,234,7,14,,1,4,45,70,0,20,0,0 +453,croagunk,4,,235,2,12,,2,4,140,100,0,10,1,0 +454,toxicroak,4,453,235,2,12,,2,4,75,70,0,20,1,0 +455,carnivine,4,,236,5,10,,1,4,200,70,0,25,0,0 +456,finneon,4,,237,2,3,,5,4,190,70,0,20,1,0 +457,lumineon,4,456,237,2,3,,5,4,75,70,0,20,1,0 +458,mantyke,4,,116,2,9,,1,4,25,70,1,25,0,0 +459,snover,4,,239,9,6,,1,4,120,70,0,20,1,0 +460,abomasnow,4,459,239,9,6,,1,4,60,70,0,20,1,0 +461,weavile,4,215,109,1,6,,4,4,45,35,0,20,1,0 +462,magnezone,4,82,34,4,4,,2,-1,30,70,0,20,0,0 +463,lickilicky,4,108,48,6,12,,2,4,30,70,0,20,0,0 +464,rhyperior,4,112,50,4,6,,1,4,30,70,0,20,1,0 +465,tangrowth,4,114,52,2,12,,2,4,30,70,0,20,1,0 +466,electivire,4,125,60,10,6,,2,2,30,70,0,25,0,0 +467,magmortar,4,126,61,8,6,,2,2,30,70,0,25,0,0 +468,togekiss,4,176,87,9,9,,3,1,30,70,0,10,0,0 +469,yanmega,4,193,95,5,13,,2,4,30,70,0,20,0,0 +470,leafeon,4,133,67,5,8,,2,1,45,35,0,35,0,0 +471,glaceon,4,133,67,2,8,,2,1,45,35,0,35,0,0 +472,gliscor,4,207,104,7,9,,4,4,30,70,0,20,0,0 +473,mamoswine,4,221,112,3,8,,1,4,50,70,0,20,1,0 +474,porygon-z,4,233,68,8,4,,2,-1,30,70,0,20,0,0 +475,gallade,4,281,140,9,12,,1,0,45,35,0,20,0,0 +476,probopass,4,299,147,4,11,,2,4,60,70,0,20,0,0 +477,dusknoir,4,356,182,1,4,,3,4,45,35,0,25,0,0 +478,froslass,4,361,186,9,4,,2,8,75,70,0,20,0,0 +479,rotom,4,,240,8,1,,2,-1,45,70,0,20,0,True +480,uxie,4,,241,10,6,,1,-1,3,140,0,80,0,0 +481,mesprit,4,,242,6,6,,1,-1,3,140,0,80,0,0 +482,azelf,4,,243,2,6,,1,-1,3,140,0,80,0,0 +483,dialga,4,,244,9,8,,1,-1,30,0,0,120,0,0 +484,palkia,4,,245,7,6,,1,-1,30,0,0,120,0,0 +485,heatran,4,,246,3,8,,1,4,3,100,0,10,0,0 +486,regigigas,4,,247,9,12,,1,-1,3,0,0,120,0,0 +487,giratina,4,,248,1,10,,1,-1,3,0,0,120,0,True +488,cresselia,4,,249,10,14,,1,8,3,100,0,120,0,0 +489,phione,4,,250,2,4,,1,-1,30,70,0,40,0,0 +490,manaphy,4,,250,2,12,,1,-1,3,70,0,10,0,0 +491,darkrai,4,,252,1,12,,1,-1,3,0,0,120,0,0 +492,shaymin,4,,253,5,8,,4,-1,45,100,0,120,0,True +493,arceus,4,,254,4,8,,1,-1,3,0,0,120,0,True +494,victini,5,,255,10,12,,1,-1,3,100,0,120,0,0 +495,snivy,5,,256,5,6,,4,1,45,70,0,20,0,0 +496,servine,5,495,256,5,6,,4,1,45,70,0,20,0,0 +497,serperior,5,496,256,5,2,,4,1,45,70,0,20,0,0 +498,tepig,5,,257,8,8,,4,1,45,70,0,20,0,0 +499,pignite,5,498,257,8,6,,4,1,45,70,0,20,0,0 +500,emboar,5,499,257,8,6,,4,1,45,70,0,20,0,0 +501,oshawott,5,,258,2,6,,4,1,45,70,0,20,0,0 +502,dewott,5,501,258,2,6,,4,1,45,70,0,20,0,0 +503,samurott,5,502,258,2,8,,4,1,45,70,0,20,0,0 +504,patrat,5,,259,3,8,,2,4,255,70,0,15,0,0 +505,watchog,5,504,259,3,6,,2,4,255,70,0,20,0,0 +506,lillipup,5,,260,3,8,,4,4,255,70,0,15,0,0 +507,herdier,5,506,260,4,8,,4,4,120,70,0,15,0,0 +508,stoutland,5,507,260,4,8,,4,4,45,70,0,15,0,0 +509,purrloin,5,,261,7,8,,2,4,255,70,0,20,0,0 +510,liepard,5,509,261,7,8,,2,4,90,70,0,20,0,0 +511,pansage,5,,262,5,6,,2,1,190,70,0,20,0,0 +512,simisage,5,511,262,5,6,,2,1,75,70,0,20,0,0 +513,pansear,5,,263,8,6,,2,1,190,70,0,20,0,0 +514,simisear,5,513,263,8,6,,2,1,75,70,0,20,0,0 +515,panpour,5,,264,2,6,,2,1,190,70,0,20,0,0 +516,simipour,5,515,264,2,6,,2,1,75,70,0,20,0,0 +517,munna,5,,265,6,8,,3,4,190,70,0,10,0,0 +518,musharna,5,517,265,6,12,,3,4,75,70,0,10,0,0 +519,pidove,5,,266,4,9,,4,4,255,70,0,15,0,0 +520,tranquill,5,519,266,4,9,,4,4,120,70,0,15,0,0 +521,unfezant,5,520,266,4,9,,4,4,45,70,0,15,1,0 +522,blitzle,5,,267,1,8,,2,4,190,70,0,20,0,0 +523,zebstrika,5,522,267,1,8,,2,4,75,70,0,20,0,0 +524,roggenrola,5,,268,2,7,,4,4,255,70,0,15,0,0 +525,boldore,5,524,268,2,10,,4,4,120,70,0,15,0,0 +526,gigalith,5,525,268,2,10,,4,4,45,70,0,15,0,0 +527,woobat,5,,269,2,9,,2,4,190,70,0,15,0,0 +528,swoobat,5,527,269,2,9,,2,4,45,70,0,15,0,0 +529,drilbur,5,,270,4,6,,2,4,120,70,0,20,0,0 +530,excadrill,5,529,270,4,12,,2,4,60,70,0,20,0,0 +531,audino,5,,271,6,6,,3,4,255,70,0,20,0,0 +532,timburr,5,,272,4,12,,4,2,180,70,0,20,0,0 +533,gurdurr,5,532,272,4,12,,4,2,90,70,0,20,0,0 +534,conkeldurr,5,533,272,3,12,,4,2,45,70,0,20,0,0 +535,tympole,5,,273,2,3,,4,4,255,70,0,20,0,0 +536,palpitoad,5,535,273,2,6,,4,4,120,70,0,20,0,0 +537,seismitoad,5,536,273,2,12,,4,4,45,70,0,20,0,0 +538,throh,5,,274,8,12,,2,0,45,70,0,20,0,0 +539,sawk,5,,275,2,12,,2,0,45,70,0,20,0,0 +540,sewaddle,5,,276,10,14,,4,4,255,70,0,15,0,0 +541,swadloon,5,540,276,5,4,,4,4,120,70,0,15,0,0 +542,leavanny,5,541,276,10,12,,4,4,45,70,0,15,0,0 +543,venipede,5,,277,8,14,,4,4,255,70,0,15,0,0 +544,whirlipede,5,543,277,4,1,,4,4,120,70,0,15,0,0 +545,scolipede,5,544,277,8,14,,4,4,45,70,0,20,0,0 +546,cottonee,5,,278,5,1,,2,4,190,70,0,20,0,0 +547,whimsicott,5,546,278,5,12,,2,4,75,70,0,20,0,0 +548,petilil,5,,279,5,5,,2,8,190,70,0,20,0,0 +549,lilligant,5,548,279,5,5,,2,8,75,70,0,20,0,0 +550,basculin,5,,280,5,3,,2,4,25,70,0,40,0,False +551,sandile,5,,281,3,8,,4,4,180,70,0,20,0,0 +552,krokorok,5,551,281,3,8,,4,4,90,70,0,20,0,0 +553,krookodile,5,552,281,8,6,,4,4,45,70,0,20,0,0 +554,darumaka,5,,282,8,12,,4,4,120,70,0,20,0,0 +555,darmanitan,5,554,282,8,8,,4,4,60,70,0,20,0,True +556,maractus,5,,283,5,5,,2,4,255,70,0,20,0,0 +557,dwebble,5,,284,8,14,,2,4,190,70,0,20,0,0 +558,crustle,5,557,284,8,14,,2,4,75,70,0,20,0,0 +559,scraggy,5,,285,10,6,,2,4,180,35,0,15,0,0 +560,scrafty,5,559,285,8,6,,2,4,90,70,0,15,0,0 +561,sigilyph,5,,286,1,9,,2,4,45,70,0,20,0,0 +562,yamask,5,,287,1,4,,2,4,190,70,0,25,0,0 +563,cofagrigus,5,562,287,10,5,,2,4,90,70,0,25,0,0 +564,tirtouga,5,,288,2,8,,2,1,45,70,0,30,0,0 +565,carracosta,5,564,288,2,6,,2,1,45,70,0,30,0,0 +566,archen,5,,289,10,9,,2,1,45,70,0,30,0,0 +567,archeops,5,566,289,10,9,,2,1,45,70,0,30,0,0 +568,trubbish,5,,290,5,12,,2,4,190,70,0,20,0,0 +569,garbodor,5,568,290,5,12,,2,4,60,70,0,20,0,0 +570,zorua,5,,291,4,8,,4,1,75,70,0,25,0,0 +571,zoroark,5,570,291,4,6,,4,1,45,70,0,20,0,0 +572,minccino,5,,292,4,8,,3,6,255,70,0,15,0,0 +573,cinccino,5,572,292,4,8,,3,6,60,70,0,15,0,0 +574,gothita,5,,293,7,12,,4,6,200,70,0,20,0,0 +575,gothorita,5,574,293,7,12,,4,6,100,70,0,20,0,0 +576,gothitelle,5,575,293,7,12,,4,6,50,70,0,20,0,0 +577,solosis,5,,294,5,1,,4,4,200,70,0,20,0,0 +578,duosion,5,577,294,5,1,,4,4,100,70,0,20,0,0 +579,reuniclus,5,578,294,5,4,,4,4,50,70,0,20,0,0 +580,ducklett,5,,295,2,9,,2,4,190,70,0,20,0,0 +581,swanna,5,580,295,9,9,,2,4,45,70,0,20,0,0 +582,vanillite,5,,296,9,5,,1,4,255,70,0,20,0,0 +583,vanillish,5,582,296,9,5,,1,4,120,70,0,20,0,0 +584,vanilluxe,5,583,296,9,11,,1,4,45,70,0,20,0,0 +585,deerling,5,,297,10,8,,2,4,190,70,0,20,0,True +586,sawsbuck,5,585,297,3,8,,2,4,75,70,0,20,0,True +587,emolga,5,,298,9,8,,2,4,200,70,0,20,0,0 +588,karrablast,5,,299,2,12,,2,4,200,70,0,15,0,0 +589,escavalier,5,588,299,4,4,,2,4,75,70,0,15,0,0 +590,foongus,5,,300,9,4,,2,4,190,70,0,20,0,0 +591,amoonguss,5,590,300,9,4,,2,4,75,70,0,20,0,0 +592,frillish,5,,301,9,10,,2,4,190,70,0,20,1,0 +593,jellicent,5,592,301,9,10,,2,4,60,70,0,20,1,0 +594,alomomola,5,,302,6,3,,3,4,75,70,0,40,0,0 +595,joltik,5,,303,10,14,,2,4,190,70,0,20,0,0 +596,galvantula,5,595,303,10,14,,2,4,75,70,0,20,0,0 +597,ferroseed,5,,304,4,1,,2,4,255,70,0,20,0,0 +598,ferrothorn,5,597,304,4,10,,2,4,90,70,0,20,0,0 +599,klink,5,,305,4,11,,4,-1,130,70,0,20,0,0 +600,klang,5,599,305,4,11,,4,-1,60,70,0,20,0,0 +601,klinklang,5,600,305,4,11,,4,-1,30,70,0,20,0,0 +602,tynamo,5,,306,9,3,,1,4,190,70,0,20,0,0 +603,eelektrik,5,602,306,2,3,,1,4,60,70,0,20,0,0 +604,eelektross,5,603,306,2,3,,1,4,30,70,0,20,0,0 +605,elgyem,5,,307,2,6,,2,4,255,70,0,20,0,0 +606,beheeyem,5,605,307,3,12,,2,4,90,70,0,20,0,0 +607,litwick,5,,308,9,5,,4,4,190,70,0,20,0,0 +608,lampent,5,607,308,1,4,,4,4,90,70,0,20,0,0 +609,chandelure,5,608,308,1,4,,4,4,45,70,0,20,0,0 +610,axew,5,,309,5,6,,1,4,75,35,0,40,0,0 +611,fraxure,5,610,309,5,6,,1,4,60,35,0,40,0,0 +612,haxorus,5,611,309,10,6,,1,4,45,35,0,40,0,0 +613,cubchoo,5,,310,9,6,,2,4,120,70,0,20,0,0 +614,beartic,5,613,310,9,8,,2,4,60,70,0,20,0,0 +615,cryogonal,5,,311,2,1,,2,-1,25,70,0,25,0,0 +616,shelmet,5,,312,8,1,,2,4,200,70,0,15,0,0 +617,accelgor,5,616,312,8,4,,2,4,75,70,0,15,0,0 +618,stunfisk,5,,313,3,3,,2,4,75,70,0,20,0,0 +619,mienfoo,5,,314,10,6,,4,4,180,70,0,25,0,0 +620,mienshao,5,619,314,7,6,,4,4,45,70,0,25,0,0 +621,druddigon,5,,315,8,6,,2,4,45,70,0,30,0,0 +622,golett,5,,316,5,12,,2,-1,190,70,0,25,0,0 +623,golurk,5,622,316,5,12,,2,-1,90,70,0,25,0,0 +624,pawniard,5,,317,8,12,,2,4,120,35,0,20,0,0 +625,bisharp,5,624,317,8,12,,2,4,45,35,0,20,0,0 +626,bouffalant,5,,318,3,8,,2,4,45,70,0,20,0,0 +627,rufflet,5,,319,9,9,,1,0,190,70,0,20,0,0 +628,braviary,5,627,319,8,9,,1,0,60,70,0,20,0,0 +629,vullaby,5,,320,3,9,,1,8,190,35,0,20,0,0 +630,mandibuzz,5,629,320,3,9,,1,8,60,35,0,20,0,0 +631,heatmor,5,,321,8,6,,2,4,90,70,0,20,0,0 +632,durant,5,,322,4,14,,2,4,90,70,0,20,0,0 +633,deino,5,,323,2,8,,1,4,45,35,0,40,0,0 +634,zweilous,5,633,323,2,8,,1,4,45,35,0,40,0,0 +635,hydreigon,5,634,323,2,6,,1,4,45,35,0,40,0,0 +636,larvesta,5,,324,9,14,,1,4,45,70,0,40,0,0 +637,volcarona,5,636,324,9,13,,1,4,15,70,0,40,0,0 +638,cobalion,5,,325,2,8,,1,-1,3,35,0,80,0,0 +639,terrakion,5,,326,4,8,,1,-1,3,35,0,80,0,0 +640,virizion,5,,327,5,8,,1,-1,3,35,0,80,0,0 +641,tornadus,5,,328,5,4,,1,0,3,90,0,120,0,0 +642,thundurus,5,,329,2,4,,1,0,3,90,0,120,0,0 +643,reshiram,5,,330,9,9,,1,-1,45,0,0,120,0,0 +644,zekrom,5,,331,1,6,,1,-1,45,0,0,120,0,0 +645,landorus,5,,332,3,4,,1,0,3,90,0,120,0,0 +646,kyurem,5,,333,4,6,,1,-1,3,0,0,120,0,0 +647,keldeo,5,,334,10,8,,1,-1,3,35,0,80,0,0 +648,meloetta,5,,335,9,12,,1,-1,3,100,0,120,0,True +649,genesect,5,,336,7,12,,1,-1,3,0,0,120,0,True From be3e224cad53d52d67965d34be40b2b78896a6b1 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 30 Apr 2011 00:37:14 +0300 Subject: [PATCH 03/16] Pokemon species split: Other data changes --- pokedex/data/csv/pokemon_abilities.csv | 48 +- pokedex/data/csv/pokemon_dex_numbers.csv | 2 +- pokedex/data/csv/pokemon_egg_groups.csv | 23 +- pokedex/data/csv/pokemon_evolution.csv | 2 +- pokedex/data/csv/pokemon_flavor_summaries.csv | 1 - pokedex/data/csv/pokemon_form_group_prose.csv | 20 - pokedex/data/csv/pokemon_form_names.csv | 1456 ++--- .../csv/pokemon_form_pokeathlon_stats.csv | 610 +- pokedex/data/csv/pokemon_game_indices.csv | 60 +- pokedex/data/csv/pokemon_items.csv | 62 +- pokedex/data/csv/pokemon_moves.csv | 5668 ++++++++--------- .../csv/pokemon_species_flavor_summaries.csv | 1 + ...xt.csv => pokemon_species_flavor_text.csv} | 2 +- ...on_names.csv => pokemon_species_names.csv} | 20 +- pokedex/data/csv/pokemon_species_prose.csv | 20 + pokedex/data/csv/pokemon_stats.csv | 216 +- pokedex/data/csv/pokemon_types.csv | 58 +- pokedex/data/csv/translations/cs.csv | 130 +- 18 files changed, 4170 insertions(+), 4229 deletions(-) delete mode 100644 pokedex/data/csv/pokemon_flavor_summaries.csv delete mode 100644 pokedex/data/csv/pokemon_form_group_prose.csv create mode 100644 pokedex/data/csv/pokemon_species_flavor_summaries.csv rename pokedex/data/csv/{pokemon_flavor_text.csv => pokemon_species_flavor_text.csv} (99%) rename pokedex/data/csv/{pokemon_names.csv => pokemon_species_names.csv} (99%) create mode 100644 pokedex/data/csv/pokemon_species_prose.csv 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_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 0df8278..8d94a00 100644 --- a/pokedex/data/csv/pokemon_moves.csv +++ b/pokedex/data/csv/pokemon_moves.csv @@ -195672,2837 +195672,2837 @@ 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,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,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,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,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,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_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 From 280c90b96618dc62171feff2b155865f589e9666 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 30 Apr 2011 00:16:53 +0300 Subject: [PATCH 04/16] Pokemon species split: Schema changes --- pokedex/db/tables.py | 273 +++++++++++++++++++------------------------ 1 file changed, 117 insertions(+), 156 deletions(-) diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 711e0b5..34953db 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,46 +1056,22 @@ 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.")) + info=dict(description=u"Order for sorting. Almost national order, except families are grouped together.")) ### Stuff to handle alternate Pokémon forms @@ -1175,19 +1149,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 +1182,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 +1210,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 +1234,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 +1249,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", 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.')) + 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=False, 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=False, 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 +1386,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 """ @@ -1979,22 +1961,12 @@ Pokemon.egg_groups = relationship(EggGroup, 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, @@ -2017,14 +1989,6 @@ Pokemon.types = relationship(Type, innerjoin=True, 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,27 +2006,18 @@ 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') +PokemonSpeciesFlavorText.version = relationship(Version, innerjoin=True, lazy='joined') +PokemonSpeciesFlavorText.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) PokemonForm.version_group = relationship(VersionGroup, innerjoin=True) PokemonForm.form_group = association_proxy('form_base_pokemon', 'form_group') @@ -2070,10 +2025,6 @@ 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 +2055,16 @@ PokemonMove.method = relationship(PokemonMoveMethod, PokemonStat.stat = relationship(Stat, innerjoin=True, lazy='joined') +PokemonSpecies.parent_pokemon = 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='pokemon') Region.generation = relationship(Generation, uselist=False) Region.version_group_regions = relationship(VersionGroupRegion, From bc244aeb536df8bd41d8cad177c7893d15dd0e0c Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 30 Apr 2011 02:12:56 +0300 Subject: [PATCH 05/16] Pokemon species split: DB metadata changes --- pokedex/db/tables.py | 116 +++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 70 deletions(-) diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 34953db..4f35482 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -1073,45 +1073,13 @@ class Pokemon(TableBase): order = Column(Integer, nullable=False, index=True, info=dict(description=u"Order for sorting. Almost national order, except families are grouped together.")) - ### Stuff to handle alternate Pokémon forms - @property - def is_base_form(self): + def name(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 + return self.default_form.pokemon_name or self.species.name ### Not forms! @@ -1268,9 +1236,9 @@ class PokemonForm(TableBase): create_translation_table('pokemon_form_names', PokemonForm, 'names', relation_lazy='joined', - form_name = Column(Unicode(32), nullable=False, index=True, + 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=False, index=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)), ) @@ -1700,9 +1668,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') @@ -1945,22 +1910,6 @@ 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.forms = relationship(PokemonForm, primaryjoin=Pokemon.id==PokemonForm.pokemon_id, order_by=(PokemonForm.order.asc(), PokemonForm.form_identifier.asc())) @@ -1969,24 +1918,18 @@ Pokemon.default_form = relationship(PokemonForm, 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') 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)) @@ -2012,15 +1955,12 @@ PokemonEvolution.party_species = relationship(PokemonSpecies, PokemonEvolution.trade_species = relationship(PokemonSpecies, primaryjoin=PokemonEvolution.trade_species_id==PokemonSpecies.id) -PokemonSpeciesFlavorText.version = relationship(Version, innerjoin=True, lazy='joined') -PokemonSpeciesFlavorText.language = relationship(Language, innerjoin=True, lazy='joined') - PokemonForm.pokemon = relationship(Pokemon, primaryjoin=PokemonForm.pokemon_id==Pokemon.id, innerjoin=True) +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') @@ -2064,7 +2004,43 @@ PokemonSpecies.evolutions = relationship(PokemonEvolution, backref=backref('evolved_species', innerjoin=True, lazy='joined')) PokemonSpecies.flavor_text = relationship(PokemonSpeciesFlavorText, order_by=PokemonSpeciesFlavorText.version_id.asc(), - backref='pokemon') + backref='species') +PokemonSpecies.growth_rate = relationship(GrowthRate, + innerjoin=True, + backref='evolution_chains') +PokemonSpecies.pokemon_habitat = relationship(PokemonHabitat, + backref='species') +PokemonSpecies.habitat = association_proxy('pokemon_habitat', 'name') +PokemonSpecies.pokemon_color = relationship(PokemonColor, + innerjoin=True, + backref='species') +PokemonSpecies.color = association_proxy('pokemon_color', 'name') +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=Pokemon.order.asc()) +PokemonSpecies.evolution_chain = relationship(EvolutionChain, + innerjoin=True, + backref=backref('species', order_by=Pokemon.order.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, From 8309b316f2b61abd87e1f52252389076f0994e00 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 30 Apr 2011 19:01:43 +0300 Subject: [PATCH 06/16] Add is_default to Pokemon. Revise forms' is_default accordingly. --- pokedex/data/csv/pokemon.csv | 1336 ++++++++++++++-------------- pokedex/data/csv/pokemon_forms.csv | 36 +- pokedex/db/tables.py | 40 +- 3 files changed, 709 insertions(+), 703 deletions(-) diff --git a/pokedex/data/csv/pokemon.csv b/pokedex/data/csv/pokemon.csv index 18e04bf..cdc7517 100644 --- a/pokedex/data/csv/pokemon.csv +++ b/pokedex/data/csv/pokemon.csv @@ -1,668 +1,668 @@ -id,species_id,height,weight,base_experience,order -1,1,7,69,64,1 -2,2,10,130,141,2 -3,3,20,1000,208,3 -4,4,6,85,65,4 -5,5,11,190,142,5 -6,6,17,905,209,6 -7,7,5,90,66,7 -8,8,10,225,143,8 -9,9,16,855,210,9 -10,10,3,29,53,10 -11,11,7,99,72,11 -12,12,11,320,160,12 -13,13,3,32,52,13 -14,14,6,100,71,14 -15,15,10,295,159,15 -16,16,3,18,55,16 -17,17,11,300,113,17 -18,18,15,395,172,18 -19,19,3,35,57,19 -20,20,7,185,116,20 -21,21,3,20,58,21 -22,22,12,380,162,22 -23,23,20,69,62,23 -24,24,35,650,147,24 -25,25,4,60,82,26 -26,26,8,300,122,27 -27,27,6,120,93,28 -28,28,10,295,163,29 -29,29,4,70,59,30 -30,30,8,200,117,31 -31,31,13,600,194,32 -32,32,5,90,60,33 -33,33,9,195,118,34 -34,34,14,620,195,35 -35,35,6,75,68,37 -36,36,13,400,129,38 -37,37,6,99,63,39 -38,38,11,199,178,40 -39,39,5,55,76,42 -40,40,10,120,109,43 -41,41,8,75,54,44 -42,42,16,550,171,45 -43,43,5,54,78,47 -44,44,8,86,132,48 -45,45,12,186,184,49 -46,46,3,54,70,51 -47,47,10,295,128,52 -48,48,10,300,75,53 -49,49,15,125,138,54 -50,50,2,8,81,55 -51,51,7,333,153,56 -52,52,4,42,69,57 -53,53,10,320,148,58 -54,54,8,196,80,59 -55,55,17,766,174,60 -56,56,5,280,74,61 -57,57,10,320,149,62 -58,58,7,190,91,63 -59,59,19,1550,213,64 -60,60,6,124,77,65 -61,61,10,200,131,66 -62,62,13,540,185,67 -63,63,9,195,75,69 -64,64,13,565,145,70 -65,65,15,480,186,71 -66,66,8,195,75,72 -67,67,15,705,146,73 -68,68,16,1300,193,74 -69,69,7,40,84,75 -70,70,10,64,151,76 -71,71,17,155,191,77 -72,72,9,455,105,78 -73,73,16,550,205,79 -74,74,4,200,73,80 -75,75,10,1050,134,81 -76,76,14,3000,177,82 -77,77,10,300,152,83 -78,78,17,950,192,84 -79,79,12,360,99,85 -80,80,16,785,164,86 -81,81,3,60,89,88 -82,82,10,600,161,89 -83,83,8,150,94,91 -84,84,14,392,96,92 -85,85,18,852,158,93 -86,86,11,900,100,94 -87,87,17,1200,176,95 -88,88,9,300,90,96 -89,89,12,300,157,97 -90,90,3,40,97,98 -91,91,15,1325,203,99 -92,92,13,1,95,100 -93,93,16,1,126,101 -94,94,15,405,190,102 -95,95,88,2100,108,103 -96,96,10,324,102,105 -97,97,16,756,165,106 -98,98,4,65,115,107 -99,99,13,600,206,108 -100,100,5,104,103,109 -101,101,12,666,150,110 -102,102,4,25,98,111 -103,103,20,1200,212,112 -104,104,4,65,87,113 -105,105,10,450,124,114 -106,106,15,498,139,116 -107,107,14,502,140,117 -108,108,12,655,127,119 -109,109,6,10,114,121 -110,110,12,95,173,122 -111,111,10,1150,135,123 -112,112,19,1200,204,124 -113,113,11,346,255,127 -114,114,10,350,166,129 -115,115,22,800,175,131 -116,116,4,80,83,132 -117,117,12,250,155,133 -118,118,6,150,111,135 -119,119,13,390,170,136 -120,120,8,345,106,137 -121,121,11,800,207,138 -122,122,13,545,136,140 -123,123,15,560,187,141 -124,124,14,406,137,144 -125,125,11,300,156,146 -126,126,13,445,167,149 -127,127,15,550,200,151 -128,128,14,884,211,152 -129,129,9,100,20,153 -130,130,65,2350,214,154 -131,131,25,2200,219,155 -132,132,3,40,61,156 -133,133,3,65,92,157 -134,134,10,290,196,158 -135,135,8,245,197,159 -136,136,9,250,198,160 -137,137,8,365,130,165 -138,138,4,75,99,168 -139,139,10,350,199,169 -140,140,5,115,99,170 -141,141,13,405,199,171 -142,142,18,590,202,172 -143,143,21,4600,154,174 -144,144,17,554,215,175 -145,145,16,526,216,176 -146,146,20,600,217,177 -147,147,18,33,67,178 -148,148,40,165,144,179 -149,149,22,2100,218,180 -150,150,20,1220,220,181 -151,151,4,40,64,182 -152,152,9,64,64,183 -153,153,12,158,141,184 -154,154,18,1005,208,185 -155,155,5,79,65,186 -156,156,9,190,142,187 -157,157,17,795,209,188 -158,158,6,95,66,189 -159,159,11,250,143,190 -160,160,23,888,210,191 -161,161,8,60,57,192 -162,162,18,325,116,193 -163,163,7,212,58,194 -164,164,16,408,162,195 -165,165,10,108,54,196 -166,166,14,356,134,197 -167,167,5,85,54,198 -168,168,11,335,134,199 -169,169,18,750,204,46 -170,170,5,120,90,200 -171,171,12,225,156,201 -172,172,3,20,42,25 -173,173,3,30,37,36 -174,174,3,10,39,41 -175,175,3,15,74,202 -176,176,6,32,114,203 -177,177,2,20,73,205 -178,178,15,150,171,206 -179,179,6,78,59,207 -180,180,8,133,117,208 -181,181,14,615,194,209 -182,182,4,58,184,50 -183,183,4,85,58,211 -184,184,8,285,153,212 -185,185,12,380,135,214 -186,186,11,339,185,68 -187,187,4,5,74,215 -188,188,6,10,136,216 -189,189,8,30,176,217 -190,190,8,115,94,218 -191,191,3,18,52,220 -192,192,8,85,146,221 -193,193,12,380,147,222 -194,194,4,85,52,224 -195,195,14,750,137,225 -196,196,9,265,197,161 -197,197,10,270,197,162 -198,198,5,21,107,226 -199,199,20,795,164,87 -200,200,7,10,147,228 -201,201,5,50,61,230 -202,202,13,285,177,232 -203,203,15,415,149,233 -204,204,6,72,60,234 -205,205,12,1258,118,235 -206,206,15,140,125,236 -207,207,11,648,108,237 -208,208,92,4000,196,104 -209,209,6,78,63,239 -210,210,14,487,178,240 -211,211,5,39,100,241 -212,212,18,1180,200,142 -213,213,6,205,80,242 -214,214,15,540,200,243 -215,215,9,280,132,244 -216,216,6,88,124,246 -217,217,18,1258,189,247 -218,218,7,350,78,248 -219,219,8,550,154,249 -220,220,4,65,78,250 -221,221,11,558,160,251 -222,222,6,50,113,253 -223,223,6,120,78,254 -224,224,9,285,164,255 -225,225,9,160,183,256 -226,226,21,2200,168,258 -227,227,17,505,168,259 -228,228,6,108,114,260 -229,229,14,350,204,261 -230,230,18,1520,207,134 -231,231,5,335,124,262 -232,232,11,1200,189,263 -233,233,6,325,180,166 -234,234,14,712,165,264 -235,235,12,580,106,265 -236,236,7,210,91,115 -237,237,14,480,138,118 -238,238,4,60,87,143 -239,239,6,235,106,145 -240,240,7,214,117,148 -241,241,12,755,200,266 -242,242,15,468,255,128 -243,243,19,1780,216,267 -244,244,21,1980,217,268 -245,245,20,1870,215,269 -246,246,6,720,67,270 -247,247,12,1520,144,271 -248,248,20,2020,218,272 -249,249,52,2160,220,273 -250,250,38,1990,220,274 -251,251,6,50,64,275 -252,252,5,50,65,276 -253,253,9,216,141,277 -254,254,17,522,208,278 -255,255,4,25,65,279 -256,256,9,195,142,280 -257,257,19,520,209,281 -258,258,4,76,65,282 -259,259,7,280,143,283 -260,260,15,819,210,284 -261,261,5,136,55,285 -262,262,10,370,128,286 -263,263,4,175,60,287 -264,264,5,325,128,288 -265,265,3,36,54,289 -266,266,6,100,72,290 -267,267,10,284,161,291 -268,268,7,115,72,292 -269,269,12,316,161,293 -270,270,5,26,74,294 -271,271,12,325,141,295 -272,272,15,550,181,296 -273,273,5,40,74,297 -274,274,10,280,141,298 -275,275,13,596,181,299 -276,276,3,23,59,300 -277,277,7,198,162,301 -278,278,6,95,64,302 -279,279,12,280,164,303 -280,280,4,66,70,304 -281,281,8,202,140,305 -282,282,16,484,208,306 -283,283,5,17,63,308 -284,284,8,36,128,309 -285,285,4,45,65,310 -286,286,12,392,165,311 -287,287,8,240,83,312 -288,288,14,465,126,313 -289,289,20,1305,210,314 -290,290,5,55,65,315 -291,291,8,120,155,316 -292,292,8,12,95,317 -293,293,6,163,68,318 -294,294,10,405,126,319 -295,295,15,840,184,320 -296,296,10,864,87,321 -297,297,23,2538,184,322 -298,298,2,20,33,210 -299,299,10,970,108,323 -300,300,6,110,65,325 -301,301,11,326,138,326 -302,302,5,110,98,327 -303,303,6,115,98,328 -304,304,4,600,96,329 -305,305,9,1200,152,330 -306,306,21,3600,205,331 -307,307,6,112,91,332 -308,308,13,315,153,333 -309,309,6,152,104,334 -310,310,15,402,168,335 -311,311,4,42,120,336 -312,312,4,42,120,337 -313,313,7,177,146,338 -314,314,6,177,146,339 -315,315,3,20,152,341 -316,316,4,103,75,343 -317,317,17,800,168,344 -318,318,8,208,88,345 -319,319,18,888,175,346 -320,320,20,1300,137,347 -321,321,145,3980,206,348 -322,322,7,240,88,349 -323,323,19,2200,175,350 -324,324,5,804,161,351 -325,325,7,306,89,352 -326,326,9,715,164,353 -327,327,11,50,85,354 -328,328,7,150,73,355 -329,329,11,153,126,356 -330,330,20,820,197,357 -331,331,4,513,97,358 -332,332,13,774,177,359 -333,333,4,12,74,360 -334,334,11,206,188,361 -335,335,13,403,165,362 -336,336,27,525,165,363 -337,337,10,1680,150,364 -338,338,12,1540,150,365 -339,339,4,19,92,366 -340,340,9,236,158,367 -341,341,6,115,111,368 -342,342,11,328,161,369 -343,343,5,215,58,370 -344,344,15,1080,189,371 -345,345,10,238,99,372 -346,346,15,604,199,373 -347,347,7,125,99,374 -348,348,15,682,199,375 -349,349,6,74,61,376 -350,350,62,1620,213,377 -351,351,3,8,145,378 -352,352,10,220,132,382 -353,353,6,23,97,383 -354,354,11,125,179,384 -355,355,8,150,97,385 -356,356,16,306,179,386 -357,357,20,1000,169,388 -358,358,6,10,147,390 -359,359,12,470,174,391 -360,360,6,140,44,231 -361,361,7,168,74,392 -362,362,15,2565,187,393 -363,363,8,395,75,395 -364,364,11,876,128,396 -365,365,14,1506,192,397 -366,366,4,525,142,398 -367,367,17,270,178,399 -368,368,18,226,178,400 -369,369,10,234,198,401 -370,370,6,87,110,402 -371,371,6,421,89,403 -372,372,11,1105,144,404 -373,373,15,1026,218,405 -374,374,6,952,103,406 -375,375,12,2025,153,407 -376,376,16,5500,210,408 -377,377,17,2300,217,409 -378,378,18,1750,216,410 -379,379,19,2050,215,411 -380,380,14,400,211,412 -381,381,20,600,211,413 -382,382,45,3520,218,414 -383,383,35,9500,218,415 -384,384,70,2065,220,416 -385,385,3,11,215,417 -386,386,17,608,215,418 -387,387,4,102,64,422 -388,388,11,970,141,423 -389,389,22,3100,208,424 -390,390,5,62,65,425 -391,391,9,220,142,426 -392,392,12,550,209,427 -393,393,4,52,66,428 -394,394,8,230,143,429 -395,395,17,845,210,430 -396,396,3,20,56,431 -397,397,6,155,113,432 -398,398,12,249,172,433 -399,399,5,200,58,434 -400,400,10,315,116,435 -401,401,3,22,54,436 -402,402,10,255,159,437 -403,403,5,95,60,438 -404,404,9,305,117,439 -405,405,14,420,194,440 -406,406,2,12,68,340 -407,407,9,145,204,342 -408,408,9,315,99,441 -409,409,16,1025,199,442 -410,410,5,570,99,443 -411,411,13,1495,199,444 -412,412,2,34,61,445 -413,413,5,65,159,446 -414,414,9,233,159,449 -415,415,3,55,63,450 -416,416,12,385,188,451 -417,417,4,39,120,452 -418,418,7,295,75,453 -419,419,11,335,178,454 -420,420,4,33,68,455 -421,421,5,93,133,456 -422,422,3,63,73,457 -423,423,9,299,176,458 -424,424,12,203,186,219 -425,425,4,12,127,459 -426,426,12,150,204,460 -427,427,4,55,84,461 -428,428,12,333,178,462 -429,429,9,44,187,229 -430,430,9,273,187,227 -431,431,5,39,71,463 -432,432,10,438,183,464 -433,433,2,6,74,389 -434,434,4,192,79,465 -435,435,10,380,209,466 -436,436,5,605,72,467 -437,437,13,1870,188,468 -438,438,5,150,68,213 -439,439,6,130,78,139 -440,440,6,244,255,126 -441,441,5,19,107,469 -442,442,10,1080,168,470 -443,443,7,205,67,471 -444,444,14,560,144,472 -445,445,19,950,218,473 -446,446,6,1050,94,173 -447,447,7,202,72,474 -448,448,12,540,204,475 -449,449,8,495,95,476 -450,450,20,3000,198,477 -451,451,8,120,114,478 -452,452,13,615,204,479 -453,453,7,230,83,480 -454,454,13,444,181,481 -455,455,14,270,164,482 -456,456,4,70,90,483 -457,457,12,240,156,484 -458,458,10,650,108,257 -459,459,10,505,131,485 -460,460,22,1355,214,486 -461,461,11,340,199,245 -462,462,12,1800,211,90 -463,463,17,1400,193,120 -464,464,24,2828,217,125 -465,465,20,1286,211,130 -466,466,18,1386,199,147 -467,467,16,680,199,150 -468,468,15,380,220,204 -469,469,19,515,198,223 -470,470,10,255,196,163 -471,471,8,259,196,164 -472,472,20,425,192,238 -473,473,25,2910,207,252 -474,474,9,340,185,167 -475,475,16,520,208,307 -476,476,14,3400,198,324 -477,477,22,1066,210,387 -478,478,13,266,187,394 -479,479,3,3,132,487 -480,480,3,3,210,493 -481,481,3,3,210,494 -482,482,3,3,210,495 -483,483,54,6830,220,496 -484,484,42,3360,220,497 -485,485,17,4300,215,498 -486,486,37,4200,220,499 -487,487,45,7500,220,500 -488,488,15,856,210,502 -489,489,4,31,165,503 -490,490,3,14,215,504 -491,491,15,505,210,505 -492,492,2,21,64,506 -493,493,32,3200,255,508 -494,494,4,40,270,509 -495,495,6,81,28,510 -496,496,8,160,145,511 -497,497,33,630,238,512 -498,498,5,99,28,513 -499,499,10,555,146,514 -500,500,16,1500,238,515 -501,501,5,59,28,516 -502,502,8,245,145,517 -503,503,15,946,238,518 -504,504,5,116,51,519 -505,505,11,270,147,520 -506,506,4,41,55,521 -507,507,9,147,130,522 -508,508,12,610,221,523 -509,509,4,101,56,524 -510,510,11,375,156,525 -511,511,6,105,63,526 -512,512,11,305,174,527 -513,513,6,110,63,528 -514,514,10,280,174,529 -515,515,6,135,63,530 -516,516,10,290,174,531 -517,517,6,233,58,532 -518,518,11,605,170,533 -519,519,3,21,53,534 -520,520,6,150,125,535 -521,521,12,290,215,536 -522,522,8,298,59,537 -523,523,16,795,174,538 -524,524,4,180,56,539 -525,525,9,1020,137,540 -526,526,17,2600,227,541 -527,527,4,21,63,542 -528,528,9,105,149,543 -529,529,3,85,66,544 -530,530,7,404,178,545 -531,531,11,310,390,546 -532,532,6,125,61,547 -533,533,12,400,142,548 -534,534,14,870,227,549 -535,535,5,45,59,550 -536,536,8,170,134,551 -537,537,15,620,225,552 -538,538,13,555,163,553 -539,539,14,510,163,554 -540,540,3,25,62,555 -541,541,5,73,133,556 -542,542,12,205,221,557 -543,543,4,53,52,558 -544,544,12,585,126,559 -545,545,25,2005,214,560 -546,546,3,6,56,561 -547,547,7,66,168,562 -548,548,5,66,56,563 -549,549,11,163,168,564 -550,550,10,180,161,565 -551,551,7,152,58,567 -552,552,10,334,123,568 -553,553,15,963,229,569 -554,554,6,375,63,570 -555,555,13,929,168,571 -556,556,10,280,161,573 -557,557,3,145,65,574 -558,558,14,2000,166,575 -559,559,6,118,70,576 -560,560,11,300,171,577 -561,561,14,140,172,578 -562,562,5,15,61,579 -563,563,17,765,169,580 -564,564,7,165,71,581 -565,565,12,810,173,582 -566,566,5,95,71,583 -567,567,14,320,177,584 -568,568,6,310,66,585 -569,569,19,1073,166,586 -570,570,7,125,66,587 -571,571,16,811,179,588 -572,572,4,58,60,589 -573,573,5,75,165,590 -574,574,4,58,58,591 -575,575,7,180,137,592 -576,576,15,440,221,593 -577,577,3,10,58,594 -578,578,6,80,130,595 -579,579,10,201,221,596 -580,580,5,55,61,597 -581,581,13,242,166,598 -582,582,4,57,61,599 -583,583,11,410,138,600 -584,584,13,575,241,601 -585,585,6,195,67,602 -586,586,19,925,166,603 -587,587,4,50,150,604 -588,588,5,59,63,605 -589,589,10,330,173,606 -590,590,2,10,59,607 -591,591,6,105,162,608 -592,592,12,330,67,609 -593,593,22,1350,168,610 -594,594,12,316,165,611 -595,595,1,6,64,612 -596,596,8,143,165,613 -597,597,6,188,61,614 -598,598,10,1100,171,615 -599,599,3,210,60,616 -600,600,6,510,154,617 -601,601,6,810,234,618 -602,602,2,3,55,619 -603,603,12,220,142,620 -604,604,21,805,232,621 -605,605,5,90,67,622 -606,606,10,345,170,623 -607,607,3,31,55,624 -608,608,6,130,130,625 -609,609,10,343,234,626 -610,610,6,180,64,627 -611,611,10,360,144,628 -612,612,18,1055,243,629 -613,613,5,85,61,630 -614,614,26,2600,170,631 -615,615,11,1480,170,632 -616,616,4,77,61,633 -617,617,8,253,173,634 -618,618,7,110,165,635 -619,619,9,200,70,636 -620,620,14,355,179,637 -621,621,16,1390,170,638 -622,622,10,920,61,639 -623,623,28,3300,169,640 -624,624,5,102,68,641 -625,625,16,700,172,642 -626,626,16,946,172,643 -627,627,5,105,70,644 -628,628,15,410,179,645 -629,629,5,90,74,646 -630,630,12,395,179,647 -631,631,14,580,169,648 -632,632,3,330,169,649 -633,633,8,173,60,650 -634,634,14,500,147,651 -635,635,18,1600,270,652 -636,636,11,288,72,653 -637,637,16,460,248,654 -638,638,21,2500,261,655 -639,639,19,2600,261,656 -640,640,20,2000,261,657 -641,641,15,630,261,658 -642,642,15,610,261,659 -643,643,32,3300,306,660 -644,644,29,3450,306,661 -645,645,15,680,270,662 -646,646,30,3250,297,663 -647,647,14,485,261,664 -648,648,6,65,270,665 -649,649,15,825,270,667 -650,386,17,608,215,419 -651,386,17,608,215,420 -652,386,17,608,215,421 -653,413,5,65,159,447 -654,413,5,65,159,448 -655,492,4,52,64,507 -656,487,69,6500,220,501 -657,479,3,3,132,488 -658,479,3,3,132,489 -659,479,3,3,132,490 -660,479,3,3,132,491 -661,479,3,3,132,492 -662,351,3,8,147,379 -663,351,3,8,147,380 -664,351,3,8,147,381 -665,550,10,180,161,566 -666,555,13,929,189,572 -667,648,6,65,270,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_forms.csv b/pokedex/data/csv/pokemon_forms.csv index d812e37..1e56970 100644 --- a/pokedex/data/csv/pokemon_forms.csv +++ b/pokedex/data/csv/pokemon_forms.csv @@ -675,16 +675,16 @@ id,form_identifier,pokemon_id,introduced_in_version_group_id,is_default,is_battl 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,0,1,379 -678,rainy,663,5,0,1,380 -679,snowy,664,5,0,1,381 -680,attack,650,7,0,0,419 -681,defense,651,7,0,0,420 -682,speed,652,6,0,0,421 +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,0,0,447 -686,trash,654,8,0,0,448 +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 @@ -705,23 +705,23 @@ id,form_identifier,pokemon_id,introduced_in_version_group_id,is_default,is_battl 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,0,0,488 -708,wash,658,9,0,0,489 -709,frost,659,9,0,0,490 -710,fan,660,9,0,0,491 -711,mow,661,9,0,0,492 -712,origin,656,9,0,0,501 -713,sky,655,9,0,0,507 +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,0,0,566 -716,zen,666,11,0,0,572 +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,0,0,666 +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 diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 4f35482..7d28164 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -1072,17 +1072,13 @@ class Pokemon(TableBase): info=dict(description=u"The base EXP gained when defeating this Pokémon")) # XXX: Is this correct? order = Column(Integer, nullable=False, index=True, 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 name(self): - u"""Returns True iff the Pokémon is the base form for its species, - e.g. Land Shaymin. - """ - return self.default_form.pokemon_name or self.species.name - ### Not forms! - def stat(self, stat_name): u"""Returns a PokemonStat record for the given stat name (or Stat row object). Uses the normal has-many machinery, so all the stats are @@ -1218,13 +1214,13 @@ class PokemonForm(TableBase): id = Column(Integer, primary_key=True, nullable=False, info=dict(description=u'A unique ID for this form.')) form_identifier = Column(Unicode(16), nullable=True, - info=dict(description=u"An identifier of the form, uniue among a species", format='identifier')) + 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.')) 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, @@ -1917,7 +1913,7 @@ Pokemon.default_form = relationship(PokemonForm, primaryjoin=and_( Pokemon.id==PokemonForm.pokemon_id, PokemonForm.is_default==True), - uselist=False) + uselist=False, lazy='joined') Pokemon.items = relationship(PokemonItem, backref='pokemon') Pokemon.stats = relationship(PokemonStat, @@ -1957,7 +1953,7 @@ PokemonEvolution.trade_species = relationship(PokemonSpecies, PokemonForm.pokemon = relationship(Pokemon, primaryjoin=PokemonForm.pokemon_id==Pokemon.id, - innerjoin=True) + innerjoin=True, lazy='joined') PokemonForm.species = association_proxy('pokemon', 'species') PokemonForm.version_group = relationship(VersionGroup, innerjoin=True) @@ -1995,7 +1991,7 @@ PokemonMove.method = relationship(PokemonMoveMethod, PokemonStat.stat = relationship(Stat, innerjoin=True, lazy='joined') -PokemonSpecies.parent_pokemon = relationship(PokemonSpecies, +PokemonSpecies.parent_species = relationship(PokemonSpecies, primaryjoin=PokemonSpecies.evolves_from_species_id==PokemonSpecies.id, remote_side=[PokemonSpecies.id], backref='child_species') @@ -2008,13 +2004,11 @@ PokemonSpecies.flavor_text = relationship(PokemonSpeciesFlavorText, PokemonSpecies.growth_rate = relationship(GrowthRate, innerjoin=True, backref='evolution_chains') -PokemonSpecies.pokemon_habitat = relationship(PokemonHabitat, +PokemonSpecies.habitat = relationship(PokemonHabitat, backref='species') -PokemonSpecies.habitat = association_proxy('pokemon_habitat', 'name') -PokemonSpecies.pokemon_color = relationship(PokemonColor, +PokemonSpecies.color = relationship(PokemonColor, innerjoin=True, backref='species') -PokemonSpecies.color = association_proxy('pokemon_color', 'name') PokemonSpecies.egg_groups = relationship(EggGroup, secondary=PokemonEggGroup.__table__, innerjoin=True, @@ -2024,10 +2018,22 @@ PokemonSpecies.forms = relationship(PokemonForm, secondary=Pokemon.__table__, primaryjoin=PokemonSpecies.id==Pokemon.species_id, secondaryjoin=Pokemon.id==PokemonForm.pokemon_id, - order_by=Pokemon.order.asc()) + 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=Pokemon.order.asc())) + backref=backref('species', order_by=PokemonSpecies.id.asc())) PokemonSpecies.dex_numbers = relationship(PokemonDexNumber, innerjoin=True, order_by=PokemonDexNumber.pokedex_id.asc(), From d0c01810bebd9e5b4dccb22ca8ee4795a10fecfc Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 30 Apr 2011 02:10:57 +0300 Subject: [PATCH 07/16] Pokemon species split: Lookup & Markdown --- pokedex/db/markdown.py | 2 +- pokedex/lookup.py | 38 +++++++++++++++++--------------------- 2 files changed, 18 insertions(+), 22 deletions(-) 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/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 = \ From bc7e9128e8df241fffc174beda376f443b219fc3 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 30 Apr 2011 02:14:34 +0300 Subject: [PATCH 08/16] Pokemon species split: Tests --- pokedex/tests/test_lookup.py | 32 ++++++++++++++++---------------- pokedex/tests/test_schema.py | 5 +++-- pokedex/tests/test_strings.py | 12 ++++++------ 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/pokedex/tests/test_lookup.py b/pokedex/tests/test_lookup.py index 700610f..3da916d 100644 --- a/pokedex/tests/test_lookup.py +++ b/pokedex/tests/test_lookup.py @@ -14,29 +14,29 @@ def setup(): def test_exact_lookup(): tests = [ # 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), ] for input, table, id in tests: @@ -63,13 +63,13 @@ def test_multi_lookup(): def test_type_lookup(): results = lookup.lookup(u'pokemon:1') - assert_equal(results[0].object.__tablename__, 'pokemon', + assert_equal(results[0].object.__tablename__, 'pokemon_species', 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') - results = lookup.lookup(u'1', valid_types=['pokemon']) + results = lookup.lookup(u'1', valid_types=['pokemon_species']) assert_equal(results[0].object.name, u'Bulbasaur', u'valid_types works as well as type: prefix') @@ -141,7 +141,7 @@ def test_random_lookup(): results = lookup.lookup(u'random') assert_equal(len(results), 1, u'Random returns one result') - for table_name in [u'pokemon', u'moves', u'items', u'abilities', u'types']: + for table_name in [u'pokemon_species', 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, diff --git a/pokedex/tests/test_schema.py b/pokedex/tests/test_schema.py index c09564a..c73182f 100644 --- a/pokedex/tests/test_schema.py +++ b/pokedex/tests/test_schema.py @@ -202,5 +202,6 @@ def test_identifiers_with_names(): """Test that named tables have identifiers """ for table in sorted(tables.mapped_classes, key=lambda t: t.__name__): - if hasattr(table, 'name'): - assert hasattr(table, 'identifier'), table + 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..83dc94b 100644 --- a/pokedex/tests/test_strings.py +++ b/pokedex/tests/test_strings.py @@ -13,13 +13,13 @@ class TestStrings(object): self.connection.rollback() def test_filter(self): - q = self.connection.query(tables.Pokemon).filter( - tables.Pokemon.name == u"Marowak") + q = self.connection.query(tables.PokemonSpecies).filter( + tables.PokemonSpecies.name == u"Marowak") assert q.one().identifier == 'marowak' def test_languages(self): - q = self.connection.query(tables.Pokemon).filter( - tables.Pokemon.name == u"Mightyena") + q = self.connection.query(tables.PokemonSpecies).filter( + tables.PokemonSpecies.name == u"Mightyena") pkmn = q.one() for lang, name in ( ('en', u'Mightyena'), @@ -33,8 +33,8 @@ class TestStrings(object): @raises(KeyError) def test_bad_lang(self): - q = self.connection.query(tables.Pokemon).filter( - tables.Pokemon.name == u"Mightyena") + q = self.connection.query(tables.PokemonSpecies).filter( + tables.PokemonSpecies.name == u"Mightyena") pkmn = q.one() pkmn.names["identifier of a language that doesn't exist"] From dd0d22522874960742bf679f264eff57fd288a1d Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 30 Apr 2011 02:42:42 +0300 Subject: [PATCH 09/16] Pokemon species split: utilities. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove 'simple' altogether, as pokémon are now sane by default! --- pokedex/db/util.py | 54 +++++++++---------------------- pokedex/tests/test_util.py | 45 ++++---------------------- pokedex/util/simple.py | 66 -------------------------------------- 3 files changed, 21 insertions(+), 144 deletions(-) delete mode 100644 pokedex/util/simple.py diff --git a/pokedex/db/util.py b/pokedex/db/util.py index f4f151a..93d9127 100644 --- a/pokedex/db/util.py +++ b/pokedex/db/util.py @@ -12,8 +12,7 @@ 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 +21,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: @@ -53,52 +42,34 @@ def get(session, table, identifier=None, name=None, id=None, 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) - else: - raise ValueError( - "form_identifier and form_name only make sense for pokemon") - elif is_pokemon: - query = filter_base_forms(query) - 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 +79,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 +97,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/tests/test_util.py b/pokedex/tests/test_util.py index a528d85..18287d4 100644 --- a/pokedex/tests/test_util.py +++ b/pokedex/tests/test_util.py @@ -3,7 +3,6 @@ from nose.tools import * import unittest from pokedex.db import connect, tables, util -from pokedex.util import simple session = connect() @@ -19,32 +18,21 @@ def test_get_english_by_identifier(): language = util.get(session, tables.Language, 'en') assert language.name == 'English' -def test_get_pokemon_baseform_identifier(): +def test_get_pokemon_identifier(): for identifier in 'burmy shaymin unown cresselia'.split(): - poke = util.get(session, tables.Pokemon, identifier=identifier) + poke = util.get(session, tables.PokemonSpecies, identifier=identifier) assert poke.identifier == identifier - assert poke.is_base_form -def test_get_pokemon_baseform_name(): +def test_get_pokemon_name(): for name in 'Burmy Shaymin Unown Cresselia'.split(): - poke = util.get(session, tables.Pokemon, name=name) + poke = util.get(session, tables.PokemonSpecies, name=name) assert poke.name == name - assert poke.is_base_form -def test_get_pokemon_baseform_name_explicit_language(): +def test_get_pokemon_name_explicit_language(): 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) + poke = util.get(session, tables.PokemonSpecies, 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 def test_types_french_order(): french = util.get(session, tables.Language, 'fr') @@ -52,24 +40,3 @@ def test_types_french_order(): types = list(util.order_by_name(types, tables.Type, language=french)) 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' - 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 From 3034c04d59be85eb93beb8d81aac82195ebdbe25 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sun, 1 May 2011 23:57:05 +0300 Subject: [PATCH 10/16] Allow missing Markdown translation rows (for species' form descriptions) --- pokedex/db/multilang.py | 2 ++ 1 file changed, 2 insertions(+) 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 From 11a65761e77c5f03f26e962153aad073e52316d7 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Mon, 2 May 2011 17:28:40 +0300 Subject: [PATCH 11/16] Oops, forgot to normalize the CSVs with a load/dump --- pokedex/data/csv/evolution_chains.csv | 658 +++++------ pokedex/data/csv/pokemon.csv | 1336 +++++++++++------------ pokedex/data/csv/pokemon_forms.csv | 1456 ++++++++++++------------- pokedex/data/csv/pokemon_species.csv | 1300 +++++++++++----------- 4 files changed, 2375 insertions(+), 2375 deletions(-) diff --git a/pokedex/data/csv/evolution_chains.csv b/pokedex/data/csv/evolution_chains.csv index eacdcc6..7119143 100644 --- a/pokedex/data/csv/evolution_chains.csv +++ b/pokedex/data/csv/evolution_chains.csv @@ -1,329 +1,329 @@ -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, +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 cdc7517..f553625 100644 --- a/pokedex/data/csv/pokemon.csv +++ b/pokedex/data/csv/pokemon.csv @@ -1,668 +1,668 @@ -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 +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_forms.csv b/pokedex/data/csv/pokemon_forms.csv index 1e56970..c609936 100644 --- a/pokedex/data/csv/pokemon_forms.csv +++ b/pokedex/data/csv/pokemon_forms.csv @@ -1,728 +1,728 @@ -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 +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_species.csv b/pokedex/data/csv/pokemon_species.csv index 6496019..7eede21 100644 --- a/pokedex/data/csv/pokemon_species.csv +++ b/pokedex/data/csv/pokemon_species.csv @@ -1,650 +1,650 @@ -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 -1,bulbasaur,1,,1,5,8,3,4,1,45,70,0,20,0,0 -2,ivysaur,1,1,1,5,8,3,4,1,45,70,0,20,0,0 -3,venusaur,1,2,1,5,8,3,4,1,45,70,0,20,1,0 -4,charmander,1,,2,8,6,4,4,1,45,70,0,20,0,0 -5,charmeleon,1,4,2,8,6,4,4,1,45,70,0,20,0,0 -6,charizard,1,5,2,8,6,4,4,1,45,70,0,20,0,0 -7,squirtle,1,,3,2,6,9,4,1,45,70,0,20,0,0 -8,wartortle,1,7,3,2,6,9,4,1,45,70,0,20,0,0 -9,blastoise,1,8,3,2,6,9,4,1,45,70,0,20,0,0 -10,caterpie,1,,4,5,2,2,2,4,255,70,0,15,0,0 -11,metapod,1,10,4,5,2,2,2,4,120,70,0,15,0,0 -12,butterfree,1,11,4,9,13,2,2,4,45,70,0,15,1,0 -13,weedle,1,,5,3,2,2,2,4,255,70,0,15,0,0 -14,kakuna,1,13,5,10,2,2,2,4,120,70,0,15,0,0 -15,beedrill,1,14,5,10,13,2,2,4,45,70,0,15,0,0 -16,pidgey,1,,6,3,9,2,4,4,255,70,0,15,0,0 -17,pidgeotto,1,16,6,3,9,2,4,4,120,70,0,15,0,0 -18,pidgeot,1,17,6,3,9,2,4,4,45,70,0,15,0,0 -19,rattata,1,,7,7,8,3,2,4,255,70,0,15,1,0 -20,raticate,1,19,7,3,8,3,2,4,127,70,0,15,1,0 -21,spearow,1,,8,3,9,6,2,4,255,70,0,15,0,0 -22,fearow,1,21,8,3,9,6,2,4,90,70,0,15,0,0 -23,ekans,1,,9,7,2,3,2,4,255,70,0,20,0,0 -24,arbok,1,23,9,7,2,3,2,4,90,70,0,20,0,0 -25,pikachu,1,172,10,10,8,2,2,4,190,70,0,10,1,0 -26,raichu,1,25,10,10,6,2,2,4,75,70,0,10,1,0 -27,sandshrew,1,,11,10,6,6,2,4,255,70,0,20,0,0 -28,sandslash,1,27,11,10,6,6,2,4,90,70,0,20,0,0 -29,nidoran-f,1,,12,2,8,3,4,8,235,70,0,20,0,0 -30,nidorina,1,29,12,2,8,3,4,8,120,70,0,20,0,0 -31,nidoqueen,1,30,12,2,6,3,4,8,45,70,0,20,0,0 -32,nidoran-m,1,,13,7,8,3,4,0,235,70,0,20,0,0 -33,nidorino,1,32,13,7,8,3,4,0,120,70,0,20,0,0 -34,nidoking,1,33,13,7,6,3,4,0,45,70,0,20,0,0 -35,clefairy,1,173,14,6,6,4,3,6,150,140,0,10,0,0 -36,clefable,1,35,14,6,6,4,3,6,25,140,0,10,0,0 -37,vulpix,1,,15,3,8,3,2,6,190,70,0,20,0,0 -38,ninetales,1,37,15,10,8,3,2,6,75,70,0,20,0,0 -39,jigglypuff,1,174,16,6,12,3,3,6,170,70,0,10,0,0 -40,wigglytuff,1,39,16,6,12,3,3,6,50,70,0,10,0,0 -41,zubat,1,,17,7,9,1,2,4,255,70,0,15,1,0 -42,golbat,1,41,17,7,9,1,2,4,90,70,0,15,1,0 -43,oddish,1,,18,2,7,3,4,4,255,70,0,20,0,0 -44,gloom,1,43,18,2,12,3,4,4,120,70,0,20,1,0 -45,vileplume,1,44,18,8,12,3,4,4,45,70,0,20,1,0 -46,paras,1,,19,8,14,2,2,4,190,70,0,20,0,0 -47,parasect,1,46,19,8,14,2,2,4,75,70,0,20,0,0 -48,venonat,1,,20,7,12,2,2,4,190,70,0,20,0,0 -49,venomoth,1,48,20,7,13,2,2,4,75,70,0,20,0,0 -50,diglett,1,,21,3,5,1,2,4,255,70,0,20,0,0 -51,dugtrio,1,50,21,3,11,1,2,4,50,70,0,20,0,0 -52,meowth,1,,22,10,8,8,2,4,255,70,0,20,0,0 -53,persian,1,52,22,10,8,8,2,4,90,70,0,20,0,0 -54,psyduck,1,,23,10,6,9,2,4,190,70,0,20,0,0 -55,golduck,1,54,23,2,6,9,2,4,75,70,0,20,0,0 -56,mankey,1,,24,3,6,4,2,4,190,70,0,20,0,0 -57,primeape,1,56,24,3,6,4,2,4,75,70,0,20,0,0 -58,growlithe,1,,25,3,8,3,1,2,190,70,0,20,0,0 -59,arcanine,1,58,25,3,8,3,1,2,75,70,0,20,0,0 -60,poliwag,1,,26,2,7,9,4,4,255,70,0,20,0,0 -61,poliwhirl,1,60,26,2,12,9,4,4,120,70,0,20,0,0 -62,poliwrath,1,61,26,2,12,9,4,4,45,70,0,20,0,0 -63,abra,1,,27,3,6,8,4,2,200,70,0,20,0,0 -64,kadabra,1,63,27,3,6,8,4,2,100,70,0,20,1,0 -65,alakazam,1,64,27,3,12,8,4,2,50,70,0,20,1,0 -66,machop,1,,28,4,6,4,4,2,180,70,0,20,0,0 -67,machoke,1,66,28,4,12,4,4,2,90,70,0,20,0,0 -68,machamp,1,67,28,4,12,4,4,2,45,70,0,20,0,0 -69,bellsprout,1,,29,5,12,2,4,4,255,70,0,20,0,0 -70,weepinbell,1,69,29,5,5,2,4,4,120,70,0,20,0,0 -71,victreebel,1,70,29,5,5,2,4,4,45,70,0,20,0,0 -72,tentacool,1,,30,2,10,7,1,4,190,70,0,20,0,0 -73,tentacruel,1,72,30,2,10,7,1,4,60,70,0,20,0,0 -74,geodude,1,,31,3,4,4,4,4,255,70,0,15,0,0 -75,graveler,1,74,31,3,12,4,4,4,120,70,0,15,0,0 -76,golem,1,75,31,3,12,4,4,4,45,70,0,15,0,0 -77,ponyta,1,,32,10,8,3,2,4,190,70,0,20,0,0 -78,rapidash,1,77,32,10,8,3,2,4,60,70,0,20,0,0 -79,slowpoke,1,,33,6,8,9,2,4,190,70,0,20,0,0 -80,slowbro,1,79,33,6,6,9,2,4,75,70,0,20,0,0 -81,magnemite,1,,34,4,4,6,2,-1,190,70,0,20,0,0 -82,magneton,1,81,34,4,11,6,2,-1,60,70,0,20,0,0 -83,farfetchd,1,,35,3,9,3,2,4,45,70,0,20,0,0 -84,doduo,1,,36,3,7,3,2,4,190,70,0,20,1,0 -85,dodrio,1,84,36,3,7,3,2,4,45,70,0,20,1,0 -86,seel,1,,37,9,3,7,2,4,190,70,0,20,0,0 -87,dewgong,1,86,37,9,3,7,2,4,75,70,0,20,0,0 -88,grimer,1,,38,7,4,8,2,4,190,70,0,20,0,0 -89,muk,1,88,38,7,4,8,2,4,75,70,0,20,0,0 -90,shellder,1,,39,7,1,7,1,4,190,70,0,20,0,0 -91,cloyster,1,90,39,7,1,7,1,4,60,70,0,20,0,0 -92,gastly,1,,40,7,1,1,4,4,190,70,0,20,0,0 -93,haunter,1,92,40,7,4,1,4,4,90,70,0,20,0,0 -94,gengar,1,93,40,7,6,1,4,4,45,70,0,20,0,0 -95,onix,1,,41,4,2,1,2,4,45,70,0,25,0,0 -96,drowzee,1,,42,10,12,3,2,4,190,70,0,20,0,0 -97,hypno,1,96,42,10,12,3,2,4,75,70,0,20,1,0 -98,krabby,1,,43,8,14,9,2,4,225,70,0,20,0,0 -99,kingler,1,98,43,8,14,9,2,4,60,70,0,20,0,0 -100,voltorb,1,,44,8,1,8,2,-1,190,70,0,20,0,0 -101,electrode,1,100,44,8,1,8,2,-1,60,70,0,20,0,0 -102,exeggcute,1,,45,6,11,2,1,4,90,70,0,20,0,0 -103,exeggutor,1,102,45,10,7,2,1,4,45,70,0,20,0,0 -104,cubone,1,,46,3,6,4,2,4,190,70,0,20,0,0 -105,marowak,1,104,46,3,6,4,2,4,75,70,0,20,0,0 -106,hitmonlee,1,236,47,3,12,8,2,0,45,70,0,25,0,0 -107,hitmonchan,1,236,47,3,12,8,2,0,45,70,0,25,0,0 -108,lickitung,1,,48,6,6,3,2,4,45,70,0,20,0,0 -109,koffing,1,,49,7,1,8,2,4,190,70,0,20,0,0 -110,weezing,1,109,49,7,11,8,2,4,60,70,0,20,0,0 -111,rhyhorn,1,,50,4,8,6,1,4,120,70,0,20,1,0 -112,rhydon,1,111,50,4,6,6,1,4,60,70,0,20,1,0 -113,chansey,1,440,51,6,6,8,3,8,30,140,0,40,0,0 -114,tangela,1,,52,2,7,3,2,4,45,70,0,20,0,0 -115,kangaskhan,1,,53,3,6,3,2,8,45,70,0,20,0,0 -116,horsea,1,,54,2,5,7,2,4,225,70,0,20,0,0 -117,seadra,1,116,54,2,5,7,2,4,75,70,0,20,0,0 -118,goldeen,1,,55,8,3,9,2,4,225,70,0,20,1,0 -119,seaking,1,118,55,8,3,9,2,4,60,70,0,20,1,0 -120,staryu,1,,56,3,5,7,1,-1,225,70,0,20,0,0 -121,starmie,1,120,56,7,5,7,1,-1,60,70,0,20,0,0 -122,mr-mime,1,439,57,6,12,8,2,4,45,70,0,25,0,0 -123,scyther,1,,58,5,13,3,2,4,45,70,0,25,1,0 -124,jynx,1,238,59,8,12,8,2,8,45,70,0,25,0,0 -125,electabuzz,1,239,60,10,6,3,2,2,45,70,0,25,0,0 -126,magmar,1,240,61,8,6,4,2,2,45,70,0,25,0,0 -127,pinsir,1,,62,3,12,2,1,4,45,70,0,25,0,0 -128,tauros,1,,63,3,8,3,1,0,45,70,0,20,0,0 -129,magikarp,1,,64,8,3,9,1,4,255,70,0,5,1,0 -130,gyarados,1,129,64,2,2,9,1,4,45,70,0,5,1,0 -131,lapras,1,,65,2,3,7,1,4,45,70,0,40,0,0 -132,ditto,1,,66,7,1,8,2,-1,35,70,0,20,0,0 -133,eevee,1,,67,3,8,8,2,1,45,70,0,35,0,0 -134,vaporeon,1,133,67,2,8,8,2,1,45,70,0,35,0,0 -135,jolteon,1,133,67,10,8,8,2,1,45,70,0,35,0,0 -136,flareon,1,133,67,8,8,8,2,1,45,70,0,35,0,0 -137,porygon,1,,68,6,7,8,2,-1,45,70,0,20,0,0 -138,omanyte,1,,69,2,10,7,2,1,45,70,0,30,0,0 -139,omastar,1,138,69,2,10,7,2,1,45,70,0,30,0,0 -140,kabuto,1,,70,3,14,7,2,1,45,70,0,30,0,0 -141,kabutops,1,140,70,3,6,7,2,1,45,70,0,30,0,0 -142,aerodactyl,1,,71,7,9,4,1,1,45,70,0,35,0,0 -143,snorlax,1,446,72,1,12,4,1,1,25,70,0,40,0,0 -144,articuno,1,,73,2,9,5,1,-1,3,35,0,80,0,0 -145,zapdos,1,,74,10,9,5,1,-1,3,35,0,80,0,0 -146,moltres,1,,75,10,9,5,1,-1,3,35,0,80,0,0 -147,dratini,1,,76,2,2,9,1,4,45,35,0,40,0,0 -148,dragonair,1,147,76,2,2,9,1,4,45,35,0,40,0,0 -149,dragonite,1,148,76,3,6,9,1,4,45,35,0,40,0,0 -150,mewtwo,1,,77,7,6,5,1,-1,3,0,0,120,0,0 -151,mew,1,,78,6,6,5,4,-1,45,100,0,120,0,0 -152,chikorita,2,,79,5,8,3,4,1,45,70,0,20,0,0 -153,bayleef,2,152,79,5,8,3,4,1,45,70,0,20,0,0 -154,meganium,2,153,79,5,8,3,4,1,45,70,0,20,1,0 -155,cyndaquil,2,,80,10,12,3,4,1,45,70,0,20,0,0 -156,quilava,2,155,80,10,8,3,4,1,45,70,0,20,0,0 -157,typhlosion,2,156,80,10,8,3,4,1,45,70,0,20,0,0 -158,totodile,2,,81,2,6,9,4,1,45,70,0,20,0,0 -159,croconaw,2,158,81,2,6,9,4,1,45,70,0,20,0,0 -160,feraligatr,2,159,81,2,6,9,4,1,45,70,0,20,0,0 -161,sentret,2,,82,3,8,3,2,4,255,70,0,15,0,0 -162,furret,2,161,82,3,8,3,2,4,90,70,0,15,0,0 -163,hoothoot,2,,83,3,9,2,2,4,255,70,0,15,0,0 -164,noctowl,2,163,83,3,9,2,2,4,90,70,0,15,0,0 -165,ledyba,2,,84,8,9,2,3,4,255,70,0,15,1,0 -166,ledian,2,165,84,8,9,2,3,4,90,70,0,15,1,0 -167,spinarak,2,,85,5,14,2,3,4,255,70,0,15,0,0 -168,ariados,2,167,85,8,14,2,3,4,90,70,0,15,0,0 -169,crobat,2,42,17,7,13,1,2,4,90,70,0,15,0,0 -170,chinchou,2,,86,2,3,7,1,4,190,70,0,20,0,0 -171,lanturn,2,170,86,2,3,7,1,4,75,70,0,20,0,0 -172,pichu,2,,10,10,8,2,2,4,190,70,1,10,0,False -173,cleffa,2,,14,6,6,4,3,6,150,140,1,10,0,0 -174,igglybuff,2,,16,6,12,3,3,6,170,70,1,10,0,0 -175,togepi,2,,87,9,12,2,3,1,190,70,1,10,0,0 -176,togetic,2,175,87,9,12,2,3,1,75,70,0,10,0,0 -177,natu,2,,88,5,9,2,2,4,190,70,0,20,0,0 -178,xatu,2,177,88,5,9,2,2,4,75,70,0,20,1,0 -179,mareep,2,,89,9,8,3,4,4,235,70,0,20,0,0 -180,flaaffy,2,179,89,6,6,3,4,4,120,70,0,20,0,0 -181,ampharos,2,180,89,10,6,3,4,4,45,70,0,20,0,0 -182,bellossom,2,44,18,5,12,3,4,4,45,70,0,20,0,0 -183,marill,2,298,90,2,6,9,3,4,190,70,0,10,0,0 -184,azumarill,2,183,90,2,6,9,3,4,75,70,0,10,0,0 -185,sudowoodo,2,438,91,3,12,2,2,4,65,70,0,20,1,0 -186,politoed,2,61,26,5,12,9,4,4,45,70,0,20,1,0 -187,hoppip,2,,92,6,6,3,4,4,255,70,0,20,0,0 -188,skiploom,2,187,92,5,6,3,4,4,120,70,0,20,0,0 -189,jumpluff,2,188,92,2,6,3,4,4,45,70,0,20,0,0 -190,aipom,2,,93,7,6,2,3,4,45,70,0,20,1,0 -191,sunkern,2,,94,10,1,3,4,4,235,70,0,20,0,0 -192,sunflora,2,191,94,10,12,3,4,4,120,70,0,20,0,0 -193,yanma,2,,95,8,13,2,2,4,75,70,0,20,0,0 -194,wooper,2,,96,2,7,9,2,4,255,70,0,20,1,0 -195,quagsire,2,194,96,2,6,9,2,4,90,70,0,20,1,0 -196,espeon,2,133,67,7,8,8,2,1,45,70,0,35,0,0 -197,umbreon,2,133,67,1,8,8,2,1,45,35,0,35,0,0 -198,murkrow,2,,97,1,9,2,4,4,30,35,0,20,1,0 -199,slowking,2,79,33,6,6,9,2,4,70,70,0,20,0,0 -200,misdreavus,2,,98,4,1,1,3,4,45,35,0,25,0,0 -201,unown,2,,99,1,1,5,2,-1,225,70,0,40,0,False -202,wobbuffet,2,360,100,2,5,1,2,4,45,70,0,20,1,0 -203,girafarig,2,,101,10,8,3,2,4,60,70,0,20,1,0 -204,pineco,2,,102,4,1,2,2,4,190,70,0,20,0,0 -205,forretress,2,204,102,7,1,2,2,4,75,70,0,20,0,0 -206,dunsparce,2,,103,10,2,1,2,4,190,70,0,20,0,0 -207,gligar,2,,104,7,9,4,4,4,60,70,0,20,1,0 -208,steelix,2,95,41,4,2,1,2,4,25,70,0,25,1,0 -209,snubbull,2,,105,6,12,8,3,6,190,70,0,20,0,0 -210,granbull,2,209,105,7,6,8,3,6,75,70,0,20,0,0 -211,qwilfish,2,,106,4,3,7,2,4,45,70,0,20,0,0 -212,scizor,2,123,58,8,13,3,2,4,25,70,0,25,1,0 -213,shuckle,2,,107,10,14,4,4,4,190,70,0,20,0,0 -214,heracross,2,,108,2,12,2,1,4,45,70,0,25,1,0 -215,sneasel,2,,109,1,6,2,4,4,60,35,0,20,1,0 -216,teddiursa,2,,110,3,6,4,2,4,120,70,0,20,0,0 -217,ursaring,2,216,110,3,6,4,2,4,60,70,0,20,1,0 -218,slugma,2,,111,8,2,4,2,4,190,70,0,20,0,0 -219,magcargo,2,218,111,8,2,4,2,4,75,70,0,20,0,0 -220,swinub,2,,112,3,8,1,1,4,225,70,0,20,0,0 -221,piloswine,2,220,112,3,8,1,1,4,75,70,0,20,1,0 -222,corsola,2,,113,6,14,7,3,6,60,70,0,20,0,0 -223,remoraid,2,,114,4,3,7,2,4,190,70,0,20,0,0 -224,octillery,2,223,114,8,10,7,2,4,75,70,0,20,1,0 -225,delibird,2,,115,8,9,4,3,4,45,70,0,20,0,0 -226,mantine,2,458,116,7,9,7,1,4,25,70,0,25,0,0 -227,skarmory,2,,117,4,9,6,1,4,25,70,0,25,0,0 -228,houndour,2,,118,1,8,6,1,4,120,35,0,20,0,0 -229,houndoom,2,228,118,1,8,6,1,4,45,35,0,20,1,0 -230,kingdra,2,117,54,2,5,7,2,4,45,70,0,20,0,0 -231,phanpy,2,,119,2,8,6,2,4,120,70,0,20,0,0 -232,donphan,2,231,119,4,8,6,2,4,60,70,0,20,1,0 -233,porygon2,2,137,68,8,7,8,2,-1,45,70,0,20,0,0 -234,stantler,2,,120,3,8,2,1,4,45,70,0,20,0,0 -235,smeargle,2,,121,9,6,8,3,4,45,70,0,20,0,0 -236,tyrogue,2,,47,7,12,8,2,0,75,70,1,25,0,0 -237,hitmontop,2,236,47,3,6,8,2,0,45,70,0,25,0,0 -238,smoochum,2,,59,6,12,8,2,8,45,70,1,25,0,0 -239,elekid,2,,60,10,12,3,2,2,45,70,1,25,0,0 -240,magby,2,,61,8,6,4,2,2,45,70,1,25,0,0 -241,miltank,2,,122,6,6,3,1,8,45,70,0,20,0,0 -242,blissey,2,113,51,6,12,8,3,8,30,140,0,40,0,0 -243,raikou,2,,123,10,8,3,1,-1,3,35,0,80,0,0 -244,entei,2,,124,3,8,3,1,-1,3,35,0,80,0,0 -245,suicune,2,,125,2,8,3,1,-1,3,35,0,80,0,0 -246,larvitar,2,,126,5,6,4,1,4,45,35,0,40,0,0 -247,pupitar,2,246,126,4,2,4,1,4,45,35,0,40,0,0 -248,tyranitar,2,247,126,5,6,4,1,4,45,35,0,40,0,0 -249,lugia,2,,127,9,9,5,1,-1,3,0,0,120,0,0 -250,ho-oh,2,,128,8,9,5,1,-1,3,0,0,120,0,0 -251,celebi,2,,129,5,12,2,4,-1,45,100,0,120,0,0 -252,treecko,3,,130,5,6,2,4,1,45,70,0,20,0,0 -253,grovyle,3,252,130,5,6,2,4,1,45,70,0,20,0,0 -254,sceptile,3,253,130,5,6,2,4,1,45,70,0,20,0,0 -255,torchic,3,,131,8,7,3,4,1,45,70,0,20,1,0 -256,combusken,3,255,131,8,6,3,4,1,45,70,0,20,1,0 -257,blaziken,3,256,131,8,6,3,4,1,45,70,0,20,1,0 -258,mudkip,3,,132,2,8,9,4,1,45,70,0,20,0,0 -259,marshtomp,3,258,132,2,6,9,4,1,45,70,0,20,0,0 -260,swampert,3,259,132,2,6,9,4,1,45,70,0,20,0,0 -261,poochyena,3,,133,4,8,3,2,4,255,70,0,15,0,0 -262,mightyena,3,261,133,4,8,3,2,4,127,70,0,15,0,0 -263,zigzagoon,3,,134,3,8,3,2,4,255,70,0,15,0,0 -264,linoone,3,263,134,9,8,3,2,4,90,70,0,15,0,0 -265,wurmple,3,,135,8,2,2,2,4,255,70,0,15,0,0 -266,silcoon,3,265,135,9,1,2,2,4,120,70,0,15,0,0 -267,beautifly,3,266,135,10,13,2,2,4,45,70,0,15,1,0 -268,cascoon,3,265,135,7,1,2,2,4,120,70,0,15,0,0 -269,dustox,3,268,135,5,13,2,2,4,45,70,0,15,1,0 -270,lotad,3,,136,5,14,9,4,4,255,70,0,15,0,0 -271,lombre,3,270,136,5,12,9,4,4,120,70,0,15,0,0 -272,ludicolo,3,271,136,5,12,9,4,4,45,70,0,15,1,0 -273,seedot,3,,137,3,7,2,4,4,255,70,0,15,0,0 -274,nuzleaf,3,273,137,3,12,2,4,4,120,70,0,15,1,0 -275,shiftry,3,274,137,3,12,2,4,4,45,70,0,15,1,0 -276,taillow,3,,138,2,9,3,4,4,200,70,0,15,0,0 -277,swellow,3,276,138,2,9,3,4,4,45,70,0,15,0,0 -278,wingull,3,,139,9,9,7,2,4,190,70,0,20,0,0 -279,pelipper,3,278,139,10,9,7,2,4,45,70,0,20,0,0 -280,ralts,3,,140,9,12,8,1,4,235,35,0,20,0,0 -281,kirlia,3,280,140,9,12,8,1,4,120,35,0,20,0,0 -282,gardevoir,3,281,140,9,12,8,1,4,45,35,0,20,0,0 -283,surskit,3,,141,2,14,9,2,4,200,70,0,15,0,0 -284,masquerain,3,283,141,2,13,9,2,4,75,70,0,15,0,0 -285,shroomish,3,,142,3,7,2,6,4,255,70,0,15,0,0 -286,breloom,3,285,142,5,6,2,6,4,90,70,0,15,0,0 -287,slakoth,3,,143,3,8,2,1,4,255,70,0,15,0,0 -288,vigoroth,3,287,143,9,6,2,1,4,120,70,0,15,0,0 -289,slaking,3,288,143,3,12,2,1,4,45,70,0,15,0,0 -290,nincada,3,,144,4,14,2,5,4,255,70,0,15,0,0 -291,ninjask,3,290,144,10,13,2,5,4,120,70,0,15,0,0 -292,shedinja,3,290,144,3,5,2,5,-1,45,70,0,15,0,0 -293,whismur,3,,145,6,6,1,4,4,190,70,0,20,0,0 -294,loudred,3,293,145,2,6,1,4,4,120,70,0,20,0,0 -295,exploud,3,294,145,2,6,1,4,4,45,70,0,20,0,0 -296,makuhita,3,,146,10,12,4,6,2,180,70,0,20,0,0 -297,hariyama,3,296,146,3,12,4,6,2,200,70,0,20,0,0 -298,azurill,3,,90,2,7,9,3,6,150,70,1,10,0,0 -299,nosepass,3,,147,4,12,1,2,4,255,70,0,20,0,0 -300,skitty,3,,148,6,8,2,3,6,255,70,0,15,0,0 -301,delcatty,3,300,148,7,8,2,3,6,60,70,0,15,0,0 -302,sableye,3,,149,7,12,1,4,4,45,35,0,25,0,0 -303,mawile,3,,150,1,12,1,3,4,45,70,0,20,0,0 -304,aron,3,,151,4,8,4,1,4,180,35,0,35,0,0 -305,lairon,3,304,151,4,8,4,1,4,90,35,0,35,0,0 -306,aggron,3,305,151,4,6,4,1,4,45,35,0,35,0,0 -307,meditite,3,,152,2,12,4,2,4,180,70,0,20,1,0 -308,medicham,3,307,152,8,12,4,2,4,90,70,0,20,1,0 -309,electrike,3,,153,5,8,3,1,4,120,70,0,20,0,0 -310,manectric,3,309,153,10,8,3,1,4,45,70,0,20,0,0 -311,plusle,3,,154,10,6,3,2,4,200,70,0,20,0,0 -312,minun,3,,155,10,6,3,2,4,200,70,0,20,0,0 -313,volbeat,3,,156,4,6,2,5,0,150,70,0,15,0,0 -314,illumise,3,,157,7,12,2,6,8,150,70,0,15,0,0 -315,roselia,3,406,158,5,12,3,4,4,150,70,0,20,1,0 -316,gulpin,3,,159,5,4,3,6,4,225,70,0,20,1,0 -317,swalot,3,316,159,7,4,3,6,4,75,70,0,20,1,0 -318,carvanha,3,,160,8,3,7,1,4,225,35,0,20,0,0 -319,sharpedo,3,318,160,2,3,7,1,4,60,35,0,20,0,0 -320,wailmer,3,,161,2,3,7,6,4,125,70,0,40,0,0 -321,wailord,3,320,161,2,3,7,6,4,60,70,0,40,0,0 -322,numel,3,,162,10,8,4,2,4,255,70,0,20,1,0 -323,camerupt,3,322,162,8,8,4,2,4,150,70,0,20,1,0 -324,torkoal,3,,163,3,8,4,2,4,90,70,0,20,0,0 -325,spoink,3,,164,1,4,4,3,4,255,70,0,20,0,0 -326,grumpig,3,325,164,7,6,4,3,4,60,70,0,20,0,0 -327,spinda,3,,165,3,6,4,3,4,255,70,0,15,0,0 -328,trapinch,3,,166,3,14,6,4,4,255,70,0,20,0,0 -329,vibrava,3,328,166,5,13,6,4,4,120,70,0,20,0,0 -330,flygon,3,329,166,5,9,6,4,4,45,70,0,20,0,0 -331,cacnea,3,,167,5,12,6,4,4,190,35,0,20,0,0 -332,cacturne,3,331,167,5,12,6,4,4,60,35,0,20,1,0 -333,swablu,3,,168,2,9,2,5,4,255,70,0,20,0,0 -334,altaria,3,333,168,2,9,2,5,4,45,70,0,20,0,0 -335,zangoose,3,,169,9,6,3,5,4,90,70,0,20,0,0 -336,seviper,3,,170,1,2,3,6,4,90,70,0,20,0,0 -337,lunatone,3,,171,10,1,1,3,-1,45,70,0,25,0,0 -338,solrock,3,,172,8,1,1,3,-1,45,70,0,25,0,0 -339,barboach,3,,173,4,3,9,2,4,190,70,0,20,0,0 -340,whiscash,3,339,173,2,3,9,2,4,75,70,0,20,0,0 -341,corphish,3,,174,8,14,9,6,4,205,70,0,15,0,0 -342,crawdaunt,3,341,174,8,14,9,6,4,155,70,0,15,0,0 -343,baltoy,3,,175,3,4,6,2,-1,255,70,0,20,0,0 -344,claydol,3,343,175,1,4,6,2,-1,90,70,0,20,0,0 -345,lileep,3,,176,7,5,7,5,1,45,70,0,30,0,0 -346,cradily,3,345,176,5,5,7,5,1,45,70,0,30,0,0 -347,anorith,3,,177,4,14,9,5,1,45,70,0,30,0,0 -348,armaldo,3,347,177,4,6,9,5,1,45,70,0,30,0,0 -349,feebas,3,,178,3,3,9,5,4,255,70,0,20,0,0 -350,milotic,3,349,178,6,2,9,5,4,60,70,0,20,1,0 -351,castform,3,,179,9,1,3,2,4,45,70,0,25,0,True -352,kecleon,3,,180,5,6,2,4,4,200,70,0,20,0,0 -353,shuppet,3,,181,1,1,8,3,4,225,35,0,25,0,0 -354,banette,3,353,181,1,6,8,3,4,45,35,0,25,0,0 -355,duskull,3,,182,1,4,2,3,4,190,35,0,25,0,0 -356,dusclops,3,355,182,1,12,2,3,4,90,35,0,25,0,0 -357,tropius,3,,183,5,8,2,1,4,200,70,0,25,0,0 -358,chimecho,3,433,184,2,4,3,3,4,45,70,0,25,0,0 -359,absol,3,,185,9,8,4,4,4,30,35,0,25,0,0 -360,wynaut,3,,100,2,6,1,2,4,125,70,1,20,0,0 -361,snorunt,3,,186,4,12,1,2,4,190,70,0,20,0,0 -362,glalie,3,361,186,4,1,1,2,4,75,70,0,20,0,0 -363,spheal,3,,187,2,3,7,4,4,255,70,0,20,0,0 -364,sealeo,3,363,187,2,3,7,4,4,120,70,0,20,0,0 -365,walrein,3,364,187,2,8,7,4,4,45,70,0,20,0,0 -366,clamperl,3,,188,2,1,7,5,4,255,70,0,20,0,0 -367,huntail,3,366,188,2,2,7,5,4,60,70,0,20,0,0 -368,gorebyss,3,366,188,6,2,7,5,4,60,70,0,20,0,0 -369,relicanth,3,,189,4,3,7,1,1,25,70,0,40,1,0 -370,luvdisc,3,,190,6,3,7,3,6,225,70,0,20,0,0 -371,bagon,3,,191,2,12,6,1,4,45,35,0,40,0,0 -372,shelgon,3,371,191,9,8,6,1,4,45,35,0,40,0,0 -373,salamence,3,372,191,2,8,6,1,4,45,35,0,40,0,0 -374,beldum,3,,192,2,5,6,1,-1,3,35,0,40,0,0 -375,metang,3,374,192,2,4,6,1,-1,3,35,0,40,0,0 -376,metagross,3,375,192,2,11,6,1,-1,3,35,0,40,0,0 -377,regirock,3,,193,3,12,1,1,-1,3,35,0,80,0,0 -378,regice,3,,194,2,12,1,1,-1,3,35,0,80,0,0 -379,registeel,3,,195,4,12,1,1,-1,3,35,0,80,0,0 -380,latias,3,,196,8,9,9,1,8,3,90,0,120,0,0 -381,latios,3,,197,2,9,9,1,0,3,90,0,120,0,0 -382,kyogre,3,,198,2,3,7,1,-1,5,0,0,120,0,0 -383,groudon,3,,199,8,6,6,1,-1,5,0,0,120,0,0 -384,rayquaza,3,,200,5,2,5,1,-1,3,0,0,120,0,0 -385,jirachi,3,,201,10,12,4,1,-1,3,100,0,120,0,0 -386,deoxys,3,,202,8,12,5,1,-1,3,0,0,120,0,True -387,turtwig,4,,203,5,8,,4,1,45,70,0,20,0,0 -388,grotle,4,387,203,5,8,,4,1,45,70,0,20,0,0 -389,torterra,4,388,203,5,8,,4,1,45,70,0,20,0,0 -390,chimchar,4,,204,3,6,,4,1,45,70,0,20,0,0 -391,monferno,4,390,204,3,6,,4,1,45,70,0,20,0,0 -392,infernape,4,391,204,3,6,,4,1,45,70,0,20,0,0 -393,piplup,4,,205,2,12,,4,1,45,70,0,20,0,0 -394,prinplup,4,393,205,2,6,,4,1,45,70,0,20,0,0 -395,empoleon,4,394,205,2,6,,4,1,45,70,0,20,0,0 -396,starly,4,,206,3,9,,4,4,255,70,0,15,1,0 -397,staravia,4,396,206,3,9,,4,4,120,70,0,15,1,0 -398,staraptor,4,397,206,3,9,,4,4,45,70,0,15,1,0 -399,bidoof,4,,207,3,8,,2,4,255,70,0,15,1,0 -400,bibarel,4,399,207,3,6,,2,4,127,70,0,15,1,0 -401,kricketot,4,,208,8,12,,4,4,255,70,0,15,1,0 -402,kricketune,4,401,208,8,13,,4,4,45,70,0,15,1,0 -403,shinx,4,,209,2,8,,4,4,235,70,0,20,1,0 -404,luxio,4,403,209,2,8,,4,4,120,100,0,20,1,0 -405,luxray,4,404,209,2,8,,4,4,45,70,0,20,1,0 -406,budew,4,,158,5,12,,4,4,255,70,1,20,0,0 -407,roserade,4,315,158,5,12,,4,4,75,70,0,20,1,0 -408,cranidos,4,,211,2,6,,5,1,45,70,0,30,0,0 -409,rampardos,4,408,211,2,6,,5,1,45,70,0,30,0,0 -410,shieldon,4,,212,4,8,,5,1,45,70,0,30,0,0 -411,bastiodon,4,410,212,4,8,,5,1,45,70,0,30,0,0 -412,burmy,4,,213,4,2,,2,4,120,70,0,15,0,True -413,wormadam,4,412,213,4,2,,2,8,45,70,0,15,0,False -414,mothim,4,412,213,10,13,,2,0,45,70,0,15,0,0 -415,combee,4,,214,10,11,,4,1,120,70,0,15,1,0 -416,vespiquen,4,415,214,10,9,,4,8,45,70,0,15,0,0 -417,pachirisu,4,,215,9,8,,2,4,200,100,0,10,1,0 -418,buizel,4,,216,3,8,,2,4,190,70,0,20,1,0 -419,floatzel,4,418,216,3,8,,2,4,75,70,0,20,1,0 -420,cherubi,4,,217,6,11,,2,4,190,70,0,20,0,0 -421,cherrim,4,420,217,6,7,,2,4,75,70,0,20,0,True -422,shellos,4,,218,7,14,,2,4,190,70,0,20,0,False -423,gastrodon,4,422,218,7,14,,2,4,75,70,0,20,0,False -424,ambipom,4,190,93,7,6,,3,4,45,100,0,20,1,0 -425,drifloon,4,,219,7,4,,6,4,125,70,0,30,0,0 -426,drifblim,4,425,219,7,4,,6,4,60,70,0,30,0,0 -427,buneary,4,,220,3,6,,2,4,190,0,0,20,0,0 -428,lopunny,4,427,220,3,6,,2,4,60,140,0,20,0,0 -429,mismagius,4,200,98,7,1,,3,4,45,35,0,25,0,0 -430,honchkrow,4,198,97,1,9,,4,4,30,35,0,20,0,0 -431,glameow,4,,221,4,8,,3,6,190,70,0,20,0,0 -432,purugly,4,431,221,4,8,,3,6,75,70,0,20,0,0 -433,chingling,4,,184,10,12,,3,4,120,70,1,25,0,0 -434,stunky,4,,223,7,8,,2,4,225,70,0,20,0,0 -435,skuntank,4,434,223,7,8,,2,4,60,70,0,20,0,0 -436,bronzor,4,,224,5,1,,2,-1,255,70,0,20,0,0 -437,bronzong,4,436,224,5,4,,2,-1,90,70,0,20,0,0 -438,bonsly,4,,91,3,7,,2,4,255,70,1,20,0,0 -439,mime-jr,4,,57,6,12,,2,4,145,70,1,25,0,0 -440,happiny,4,,51,6,12,,3,8,130,140,1,40,0,0 -441,chatot,4,,228,1,9,,4,4,30,35,0,20,0,0 -442,spiritomb,4,,229,7,5,,2,4,100,70,0,30,0,0 -443,gible,4,,230,2,6,,1,4,45,70,0,40,1,0 -444,gabite,4,443,230,2,6,,1,4,45,70,0,40,1,0 -445,garchomp,4,444,230,2,6,,1,4,45,70,0,40,1,0 -446,munchlax,4,,72,1,12,,1,1,50,70,1,40,0,0 -447,riolu,4,,232,2,6,,4,1,75,70,1,25,0,0 -448,lucario,4,447,232,2,6,,4,1,45,70,0,25,0,0 -449,hippopotas,4,,233,3,8,,1,4,140,70,0,30,1,0 -450,hippowdon,4,449,233,3,8,,1,4,60,70,0,30,1,0 -451,skorupi,4,,234,7,14,,1,4,120,70,0,20,0,0 -452,drapion,4,451,234,7,14,,1,4,45,70,0,20,0,0 -453,croagunk,4,,235,2,12,,2,4,140,100,0,10,1,0 -454,toxicroak,4,453,235,2,12,,2,4,75,70,0,20,1,0 -455,carnivine,4,,236,5,10,,1,4,200,70,0,25,0,0 -456,finneon,4,,237,2,3,,5,4,190,70,0,20,1,0 -457,lumineon,4,456,237,2,3,,5,4,75,70,0,20,1,0 -458,mantyke,4,,116,2,9,,1,4,25,70,1,25,0,0 -459,snover,4,,239,9,6,,1,4,120,70,0,20,1,0 -460,abomasnow,4,459,239,9,6,,1,4,60,70,0,20,1,0 -461,weavile,4,215,109,1,6,,4,4,45,35,0,20,1,0 -462,magnezone,4,82,34,4,4,,2,-1,30,70,0,20,0,0 -463,lickilicky,4,108,48,6,12,,2,4,30,70,0,20,0,0 -464,rhyperior,4,112,50,4,6,,1,4,30,70,0,20,1,0 -465,tangrowth,4,114,52,2,12,,2,4,30,70,0,20,1,0 -466,electivire,4,125,60,10,6,,2,2,30,70,0,25,0,0 -467,magmortar,4,126,61,8,6,,2,2,30,70,0,25,0,0 -468,togekiss,4,176,87,9,9,,3,1,30,70,0,10,0,0 -469,yanmega,4,193,95,5,13,,2,4,30,70,0,20,0,0 -470,leafeon,4,133,67,5,8,,2,1,45,35,0,35,0,0 -471,glaceon,4,133,67,2,8,,2,1,45,35,0,35,0,0 -472,gliscor,4,207,104,7,9,,4,4,30,70,0,20,0,0 -473,mamoswine,4,221,112,3,8,,1,4,50,70,0,20,1,0 -474,porygon-z,4,233,68,8,4,,2,-1,30,70,0,20,0,0 -475,gallade,4,281,140,9,12,,1,0,45,35,0,20,0,0 -476,probopass,4,299,147,4,11,,2,4,60,70,0,20,0,0 -477,dusknoir,4,356,182,1,4,,3,4,45,35,0,25,0,0 -478,froslass,4,361,186,9,4,,2,8,75,70,0,20,0,0 -479,rotom,4,,240,8,1,,2,-1,45,70,0,20,0,True -480,uxie,4,,241,10,6,,1,-1,3,140,0,80,0,0 -481,mesprit,4,,242,6,6,,1,-1,3,140,0,80,0,0 -482,azelf,4,,243,2,6,,1,-1,3,140,0,80,0,0 -483,dialga,4,,244,9,8,,1,-1,30,0,0,120,0,0 -484,palkia,4,,245,7,6,,1,-1,30,0,0,120,0,0 -485,heatran,4,,246,3,8,,1,4,3,100,0,10,0,0 -486,regigigas,4,,247,9,12,,1,-1,3,0,0,120,0,0 -487,giratina,4,,248,1,10,,1,-1,3,0,0,120,0,True -488,cresselia,4,,249,10,14,,1,8,3,100,0,120,0,0 -489,phione,4,,250,2,4,,1,-1,30,70,0,40,0,0 -490,manaphy,4,,250,2,12,,1,-1,3,70,0,10,0,0 -491,darkrai,4,,252,1,12,,1,-1,3,0,0,120,0,0 -492,shaymin,4,,253,5,8,,4,-1,45,100,0,120,0,True -493,arceus,4,,254,4,8,,1,-1,3,0,0,120,0,True -494,victini,5,,255,10,12,,1,-1,3,100,0,120,0,0 -495,snivy,5,,256,5,6,,4,1,45,70,0,20,0,0 -496,servine,5,495,256,5,6,,4,1,45,70,0,20,0,0 -497,serperior,5,496,256,5,2,,4,1,45,70,0,20,0,0 -498,tepig,5,,257,8,8,,4,1,45,70,0,20,0,0 -499,pignite,5,498,257,8,6,,4,1,45,70,0,20,0,0 -500,emboar,5,499,257,8,6,,4,1,45,70,0,20,0,0 -501,oshawott,5,,258,2,6,,4,1,45,70,0,20,0,0 -502,dewott,5,501,258,2,6,,4,1,45,70,0,20,0,0 -503,samurott,5,502,258,2,8,,4,1,45,70,0,20,0,0 -504,patrat,5,,259,3,8,,2,4,255,70,0,15,0,0 -505,watchog,5,504,259,3,6,,2,4,255,70,0,20,0,0 -506,lillipup,5,,260,3,8,,4,4,255,70,0,15,0,0 -507,herdier,5,506,260,4,8,,4,4,120,70,0,15,0,0 -508,stoutland,5,507,260,4,8,,4,4,45,70,0,15,0,0 -509,purrloin,5,,261,7,8,,2,4,255,70,0,20,0,0 -510,liepard,5,509,261,7,8,,2,4,90,70,0,20,0,0 -511,pansage,5,,262,5,6,,2,1,190,70,0,20,0,0 -512,simisage,5,511,262,5,6,,2,1,75,70,0,20,0,0 -513,pansear,5,,263,8,6,,2,1,190,70,0,20,0,0 -514,simisear,5,513,263,8,6,,2,1,75,70,0,20,0,0 -515,panpour,5,,264,2,6,,2,1,190,70,0,20,0,0 -516,simipour,5,515,264,2,6,,2,1,75,70,0,20,0,0 -517,munna,5,,265,6,8,,3,4,190,70,0,10,0,0 -518,musharna,5,517,265,6,12,,3,4,75,70,0,10,0,0 -519,pidove,5,,266,4,9,,4,4,255,70,0,15,0,0 -520,tranquill,5,519,266,4,9,,4,4,120,70,0,15,0,0 -521,unfezant,5,520,266,4,9,,4,4,45,70,0,15,1,0 -522,blitzle,5,,267,1,8,,2,4,190,70,0,20,0,0 -523,zebstrika,5,522,267,1,8,,2,4,75,70,0,20,0,0 -524,roggenrola,5,,268,2,7,,4,4,255,70,0,15,0,0 -525,boldore,5,524,268,2,10,,4,4,120,70,0,15,0,0 -526,gigalith,5,525,268,2,10,,4,4,45,70,0,15,0,0 -527,woobat,5,,269,2,9,,2,4,190,70,0,15,0,0 -528,swoobat,5,527,269,2,9,,2,4,45,70,0,15,0,0 -529,drilbur,5,,270,4,6,,2,4,120,70,0,20,0,0 -530,excadrill,5,529,270,4,12,,2,4,60,70,0,20,0,0 -531,audino,5,,271,6,6,,3,4,255,70,0,20,0,0 -532,timburr,5,,272,4,12,,4,2,180,70,0,20,0,0 -533,gurdurr,5,532,272,4,12,,4,2,90,70,0,20,0,0 -534,conkeldurr,5,533,272,3,12,,4,2,45,70,0,20,0,0 -535,tympole,5,,273,2,3,,4,4,255,70,0,20,0,0 -536,palpitoad,5,535,273,2,6,,4,4,120,70,0,20,0,0 -537,seismitoad,5,536,273,2,12,,4,4,45,70,0,20,0,0 -538,throh,5,,274,8,12,,2,0,45,70,0,20,0,0 -539,sawk,5,,275,2,12,,2,0,45,70,0,20,0,0 -540,sewaddle,5,,276,10,14,,4,4,255,70,0,15,0,0 -541,swadloon,5,540,276,5,4,,4,4,120,70,0,15,0,0 -542,leavanny,5,541,276,10,12,,4,4,45,70,0,15,0,0 -543,venipede,5,,277,8,14,,4,4,255,70,0,15,0,0 -544,whirlipede,5,543,277,4,1,,4,4,120,70,0,15,0,0 -545,scolipede,5,544,277,8,14,,4,4,45,70,0,20,0,0 -546,cottonee,5,,278,5,1,,2,4,190,70,0,20,0,0 -547,whimsicott,5,546,278,5,12,,2,4,75,70,0,20,0,0 -548,petilil,5,,279,5,5,,2,8,190,70,0,20,0,0 -549,lilligant,5,548,279,5,5,,2,8,75,70,0,20,0,0 -550,basculin,5,,280,5,3,,2,4,25,70,0,40,0,False -551,sandile,5,,281,3,8,,4,4,180,70,0,20,0,0 -552,krokorok,5,551,281,3,8,,4,4,90,70,0,20,0,0 -553,krookodile,5,552,281,8,6,,4,4,45,70,0,20,0,0 -554,darumaka,5,,282,8,12,,4,4,120,70,0,20,0,0 -555,darmanitan,5,554,282,8,8,,4,4,60,70,0,20,0,True -556,maractus,5,,283,5,5,,2,4,255,70,0,20,0,0 -557,dwebble,5,,284,8,14,,2,4,190,70,0,20,0,0 -558,crustle,5,557,284,8,14,,2,4,75,70,0,20,0,0 -559,scraggy,5,,285,10,6,,2,4,180,35,0,15,0,0 -560,scrafty,5,559,285,8,6,,2,4,90,70,0,15,0,0 -561,sigilyph,5,,286,1,9,,2,4,45,70,0,20,0,0 -562,yamask,5,,287,1,4,,2,4,190,70,0,25,0,0 -563,cofagrigus,5,562,287,10,5,,2,4,90,70,0,25,0,0 -564,tirtouga,5,,288,2,8,,2,1,45,70,0,30,0,0 -565,carracosta,5,564,288,2,6,,2,1,45,70,0,30,0,0 -566,archen,5,,289,10,9,,2,1,45,70,0,30,0,0 -567,archeops,5,566,289,10,9,,2,1,45,70,0,30,0,0 -568,trubbish,5,,290,5,12,,2,4,190,70,0,20,0,0 -569,garbodor,5,568,290,5,12,,2,4,60,70,0,20,0,0 -570,zorua,5,,291,4,8,,4,1,75,70,0,25,0,0 -571,zoroark,5,570,291,4,6,,4,1,45,70,0,20,0,0 -572,minccino,5,,292,4,8,,3,6,255,70,0,15,0,0 -573,cinccino,5,572,292,4,8,,3,6,60,70,0,15,0,0 -574,gothita,5,,293,7,12,,4,6,200,70,0,20,0,0 -575,gothorita,5,574,293,7,12,,4,6,100,70,0,20,0,0 -576,gothitelle,5,575,293,7,12,,4,6,50,70,0,20,0,0 -577,solosis,5,,294,5,1,,4,4,200,70,0,20,0,0 -578,duosion,5,577,294,5,1,,4,4,100,70,0,20,0,0 -579,reuniclus,5,578,294,5,4,,4,4,50,70,0,20,0,0 -580,ducklett,5,,295,2,9,,2,4,190,70,0,20,0,0 -581,swanna,5,580,295,9,9,,2,4,45,70,0,20,0,0 -582,vanillite,5,,296,9,5,,1,4,255,70,0,20,0,0 -583,vanillish,5,582,296,9,5,,1,4,120,70,0,20,0,0 -584,vanilluxe,5,583,296,9,11,,1,4,45,70,0,20,0,0 -585,deerling,5,,297,10,8,,2,4,190,70,0,20,0,True -586,sawsbuck,5,585,297,3,8,,2,4,75,70,0,20,0,True -587,emolga,5,,298,9,8,,2,4,200,70,0,20,0,0 -588,karrablast,5,,299,2,12,,2,4,200,70,0,15,0,0 -589,escavalier,5,588,299,4,4,,2,4,75,70,0,15,0,0 -590,foongus,5,,300,9,4,,2,4,190,70,0,20,0,0 -591,amoonguss,5,590,300,9,4,,2,4,75,70,0,20,0,0 -592,frillish,5,,301,9,10,,2,4,190,70,0,20,1,0 -593,jellicent,5,592,301,9,10,,2,4,60,70,0,20,1,0 -594,alomomola,5,,302,6,3,,3,4,75,70,0,40,0,0 -595,joltik,5,,303,10,14,,2,4,190,70,0,20,0,0 -596,galvantula,5,595,303,10,14,,2,4,75,70,0,20,0,0 -597,ferroseed,5,,304,4,1,,2,4,255,70,0,20,0,0 -598,ferrothorn,5,597,304,4,10,,2,4,90,70,0,20,0,0 -599,klink,5,,305,4,11,,4,-1,130,70,0,20,0,0 -600,klang,5,599,305,4,11,,4,-1,60,70,0,20,0,0 -601,klinklang,5,600,305,4,11,,4,-1,30,70,0,20,0,0 -602,tynamo,5,,306,9,3,,1,4,190,70,0,20,0,0 -603,eelektrik,5,602,306,2,3,,1,4,60,70,0,20,0,0 -604,eelektross,5,603,306,2,3,,1,4,30,70,0,20,0,0 -605,elgyem,5,,307,2,6,,2,4,255,70,0,20,0,0 -606,beheeyem,5,605,307,3,12,,2,4,90,70,0,20,0,0 -607,litwick,5,,308,9,5,,4,4,190,70,0,20,0,0 -608,lampent,5,607,308,1,4,,4,4,90,70,0,20,0,0 -609,chandelure,5,608,308,1,4,,4,4,45,70,0,20,0,0 -610,axew,5,,309,5,6,,1,4,75,35,0,40,0,0 -611,fraxure,5,610,309,5,6,,1,4,60,35,0,40,0,0 -612,haxorus,5,611,309,10,6,,1,4,45,35,0,40,0,0 -613,cubchoo,5,,310,9,6,,2,4,120,70,0,20,0,0 -614,beartic,5,613,310,9,8,,2,4,60,70,0,20,0,0 -615,cryogonal,5,,311,2,1,,2,-1,25,70,0,25,0,0 -616,shelmet,5,,312,8,1,,2,4,200,70,0,15,0,0 -617,accelgor,5,616,312,8,4,,2,4,75,70,0,15,0,0 -618,stunfisk,5,,313,3,3,,2,4,75,70,0,20,0,0 -619,mienfoo,5,,314,10,6,,4,4,180,70,0,25,0,0 -620,mienshao,5,619,314,7,6,,4,4,45,70,0,25,0,0 -621,druddigon,5,,315,8,6,,2,4,45,70,0,30,0,0 -622,golett,5,,316,5,12,,2,-1,190,70,0,25,0,0 -623,golurk,5,622,316,5,12,,2,-1,90,70,0,25,0,0 -624,pawniard,5,,317,8,12,,2,4,120,35,0,20,0,0 -625,bisharp,5,624,317,8,12,,2,4,45,35,0,20,0,0 -626,bouffalant,5,,318,3,8,,2,4,45,70,0,20,0,0 -627,rufflet,5,,319,9,9,,1,0,190,70,0,20,0,0 -628,braviary,5,627,319,8,9,,1,0,60,70,0,20,0,0 -629,vullaby,5,,320,3,9,,1,8,190,35,0,20,0,0 -630,mandibuzz,5,629,320,3,9,,1,8,60,35,0,20,0,0 -631,heatmor,5,,321,8,6,,2,4,90,70,0,20,0,0 -632,durant,5,,322,4,14,,2,4,90,70,0,20,0,0 -633,deino,5,,323,2,8,,1,4,45,35,0,40,0,0 -634,zweilous,5,633,323,2,8,,1,4,45,35,0,40,0,0 -635,hydreigon,5,634,323,2,6,,1,4,45,35,0,40,0,0 -636,larvesta,5,,324,9,14,,1,4,45,70,0,40,0,0 -637,volcarona,5,636,324,9,13,,1,4,15,70,0,40,0,0 -638,cobalion,5,,325,2,8,,1,-1,3,35,0,80,0,0 -639,terrakion,5,,326,4,8,,1,-1,3,35,0,80,0,0 -640,virizion,5,,327,5,8,,1,-1,3,35,0,80,0,0 -641,tornadus,5,,328,5,4,,1,0,3,90,0,120,0,0 -642,thundurus,5,,329,2,4,,1,0,3,90,0,120,0,0 -643,reshiram,5,,330,9,9,,1,-1,45,0,0,120,0,0 -644,zekrom,5,,331,1,6,,1,-1,45,0,0,120,0,0 -645,landorus,5,,332,3,4,,1,0,3,90,0,120,0,0 -646,kyurem,5,,333,4,6,,1,-1,3,0,0,120,0,0 -647,keldeo,5,,334,10,8,,1,-1,3,35,0,80,0,0 -648,meloetta,5,,335,9,12,,1,-1,3,100,0,120,0,True -649,genesect,5,,336,7,12,,1,-1,3,0,0,120,0,True +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 From 134f5a00ff83b179f2cf1c5529f4558c3f05d486 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Mon, 2 May 2011 17:53:47 +0300 Subject: [PATCH 12/16] Add Pichu's Volt Tackle and Rotom's form moves for B/W --- pokedex/data/csv/pokemon_moves.csv | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pokedex/data/csv/pokemon_moves.csv b/pokedex/data/csv/pokemon_moves.csv index 8d94a00..647272b 100644 --- a/pokedex/data/csv/pokemon_moves.csv +++ b/pokedex/data/csv/pokemon_moves.csv @@ -80935,6 +80935,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, @@ -184220,6 +184221,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, @@ -197613,6 +197615,7 @@ pokemon_id,version_group_id,move_id,pokemon_move_method_id,level,order 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, @@ -197727,6 +197730,7 @@ pokemon_id,version_group_id,move_id,pokemon_move_method_id,level,order 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 @@ -197873,6 +197877,7 @@ pokemon_id,version_group_id,move_id,pokemon_move_method_id,level,order 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 @@ -198052,6 +198057,7 @@ pokemon_id,version_group_id,move_id,pokemon_move_method_id,level,order 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, @@ -198199,6 +198205,7 @@ pokemon_id,version_group_id,move_id,pokemon_move_method_id,level,order 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, From ab2baaa7596e720e31949493e4d477148a28e5c2 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Tue, 19 Apr 2011 14:44:47 +0300 Subject: [PATCH 13/16] Update media accessors wrt repo split All accessors now take a `root` arg, the root of the media tree. Alternatively `root` can be a custom MediaFile subclass, which should allow neat tricks like: - Checking some kind of manifest to prevent stat() calls - Custom properties of the file objects (e.g. for HTML tags) - Downloading the media on demand Tests assume media is at pokedex/data/media, skip otherwise. --- pokedex/tests/test_media.py | 70 ++++++++++++++++++++++------------ pokedex/util/media.py | 76 +++++++++++++++++++++++++------------ 2 files changed, 96 insertions(+), 50 deletions(-) diff --git a/pokedex/tests/test_media.py b/pokedex/tests/test_media.py index 81b5714..ddbc778 100644 --- a/pokedex/tests/test_media.py +++ b/pokedex/tests/test_media.py @@ -8,6 +8,7 @@ This, of course, takes a lot of time to run. import os import re +from functools import wraps from nose.tools import * from nose.plugins.skip import SkipTest @@ -22,47 +23,66 @@ basedir = pkg_resources.resource_filename('pokedex', 'data/media') path_re = re.compile('^[-a-z0-9./]*$') +root = pkg_resources.resource_filename('pokedex', 'data/media') + +media_available = media.BaseMedia(root).available + +def if_available(func): + @wraps(func) + def if_available_wrapper(*args, **kwargs): + if not media_available: + raise SkipTest('Media not available at %s' % root) + else: + func(*args, **kwargs) + return if_available_wrapper + +@if_available def test_totodile(): """Totodile's female sprite -- same as male""" totodile = session.query(tables.Pokemon).filter_by(identifier=u'totodile').one() - accessor = media.PokemonMedia(totodile) + accessor = media.PokemonMedia(root, totodile) assert accessor.sprite() == accessor.sprite(female=True) +@if_available def test_chimecho(): """Chimecho's Platinum female backsprite -- diffeent from male""" chimecho = session.query(tables.Pokemon).filter_by(identifier=u'chimecho').one() - accessor = media.PokemonMedia(chimecho) + accessor = media.PokemonMedia(root, chimecho) male = accessor.sprite('platinum', back=True, frame=2) female = accessor.sprite('platinum', back=True, female=True, frame=2) assert male != female +@if_available def test_venonat(): """Venonat's shiny Yellow sprite -- same as non-shiny""" venonat = session.query(tables.Pokemon).filter_by(identifier=u'venonat').one() - accessor = media.PokemonMedia(venonat) + accessor = media.PokemonMedia(root, venonat) assert accessor.sprite('yellow') == accessor.sprite('yellow', shiny=True) +@if_available def test_arceus_icon(): """Arceus fire-form icon -- same as base icon""" arceus = session.query(tables.Pokemon).filter_by(identifier=u'arceus').one() - accessor = media.PokemonMedia(arceus) + accessor = media.PokemonMedia(root, arceus) fire_arceus = [f for f in arceus.forms if f.identifier == 'fire'][0] - fire_accessor = media.PokemonFormMedia(fire_arceus) + fire_accessor = media.PokemonFormMedia(root, fire_arceus) assert accessor.icon() == fire_accessor.icon() +@if_available @raises(ValueError) def test_strict_castform(): """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 = media.PokemonFormMedia(root, rainy_castform) rainy_castform.overworld('up', strict=True) +@if_available @raises(ValueError) def test_strict_exeggcute(): """Exeggcutes's female backsprite, with strict -- unavailable""" exeggcute = session.query(tables.Pokemon).filter_by(identifier=u'exeggcute').one() - accessor = media.PokemonMedia(exeggcute) + accessor = media.PokemonMedia(root, exeggcute) accessor.sprite(female=True, strict=True) @@ -73,6 +93,7 @@ def get_all_filenames(): all_filenames = set() for dirpath, dirnames, filenames in os.walk(basedir): + 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,6 +122,7 @@ def hit(filenames, method, *args, **kwargs): pass return True +@if_available def check_get_everything(): """ For every the accessor method, loop over the Cartesian products of all @@ -121,23 +143,23 @@ def check_get_everything(): # 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 +168,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 +180,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,19 +192,17 @@ def check_get_everything(): # Pokemon! accessors = [] - accessors.append(media.UnknownPokemonMedia()) - accessors.append(media.EggMedia()) + accessors.append(media.UnknownPokemonMedia(root)) + accessors.append(media.EggMedia(root)) manaphy = session.query(tables.Pokemon).filter_by(identifier=u'manaphy').one() - accessors.append(media.EggMedia(manaphy)) - accessors.append(media.SubstituteMedia()) - - print 'Loading pokemon' + accessors.append(media.EggMedia(root, manaphy)) + accessors.append(media.SubstituteMedia(root)) for form in session.query(tables.PokemonForm).filter(tables.PokemonForm.identifier != '').all(): - accessors.append(media.PokemonFormMedia(form)) + accessors.append(media.PokemonFormMedia(root, form)) for pokemon in session.query(tables.Pokemon).all(): - accessors.append(media.PokemonMedia(pokemon)) + accessors.append(media.PokemonMedia(root, pokemon)) for accessor in accessors: assert hit(filenames, accessor.footprint) or not accessor.form diff --git a/pokedex/util/media.py b/pokedex/util/media.py index 9faf19f..98964b3 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,15 +82,25 @@ class MediaFile(object): return '' % 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' @@ -104,8 +126,8 @@ class _BasePokemonMedia(BaseMedia): 'black-white': (5, set('back shiny female'.split())), } - def __init__(self, pokemon_id, form_postfix=None): - BaseMedia.__init__(self) + def __init__(self, root, pokemon_id, form_postfix=None): + BaseMedia.__init__(self, root) self.pokemon_id = str(pokemon_id) self.form_postfix = form_postfix @@ -316,13 +338,13 @@ class _BasePokemonMedia(BaseMedia): class PokemonFormMedia(_BasePokemonMedia): """Media related to a Pokemon form """ - def __init__(self, pokemon_form): + def __init__(self, root, pokemon_form): pokemon_id = pokemon_form.form_base_pokemon_id if pokemon_form.identifier: form_postfix = '-' + pokemon_form.identifier else: form_postfix = None - _BasePokemonMedia.__init__(self, pokemon_id, form_postfix) + _BasePokemonMedia.__init__(self, root, pokemon_id, form_postfix) self.form = pokemon_form pokemon = pokemon_form.form_base_pokemon self.has_gender_differences = pokemon.has_gender_differences @@ -331,8 +353,8 @@ class PokemonFormMedia(_BasePokemonMedia): class PokemonMedia(_BasePokemonMedia): """Media related to a Pokemon """ - def __init__(self, pokemon): - _BasePokemonMedia.__init__(self, pokemon.id) + def __init__(self, root, pokemon): + _BasePokemonMedia.__init__(self, root, pokemon.id) self.form = pokemon.default_form self.has_gender_differences = (pokemon.has_gender_differences) self.introduced_in = pokemon.generation_id @@ -342,8 +364,8 @@ class UnknownPokemonMedia(_BasePokemonMedia): 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 @@ -352,20 +374,20 @@ class EggMedia(_BasePokemonMedia): Give a Manaphy as `pokemon` to get the Manaphy egg. """ - def __init__(self, pokemon=None): + def __init__(self, root, pokemon=None): if pokemon and pokemon.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 +405,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 +482,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 +491,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): From c71045771792ac066a3958cba6ad0d7a9586e43a Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Sat, 30 Apr 2011 03:21:37 +0300 Subject: [PATCH 14/16] Pokemon species split: media accessors --- pokedex/tests/test_media.py | 57 +++++++++++++++++----------------- pokedex/util/media.py | 62 ++++++++++++++++++++----------------- 2 files changed, 62 insertions(+), 57 deletions(-) diff --git a/pokedex/tests/test_media.py b/pokedex/tests/test_media.py index ddbc778..f06ddcf 100644 --- a/pokedex/tests/test_media.py +++ b/pokedex/tests/test_media.py @@ -39,15 +39,15 @@ def if_available(func): @if_available def test_totodile(): """Totodile's female sprite -- same as male""" - totodile = session.query(tables.Pokemon).filter_by(identifier=u'totodile').one() - accessor = media.PokemonMedia(root, totodile) + totodile = session.query(tables.PokemonSpecies).filter_by(identifier=u'totodile').one() + accessor = media.PokemonSpeciesMedia(root, totodile) assert accessor.sprite() == accessor.sprite(female=True) @if_available def test_chimecho(): """Chimecho's Platinum female backsprite -- diffeent from male""" - chimecho = session.query(tables.Pokemon).filter_by(identifier=u'chimecho').one() - accessor = media.PokemonMedia(root, 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 @@ -55,16 +55,16 @@ def test_chimecho(): @if_available def test_venonat(): """Venonat's shiny Yellow sprite -- same as non-shiny""" - venonat = session.query(tables.Pokemon).filter_by(identifier=u'venonat').one() - accessor = media.PokemonMedia(root, 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) @if_available def test_arceus_icon(): """Arceus fire-form icon -- same as base icon""" - arceus = session.query(tables.Pokemon).filter_by(identifier=u'arceus').one() - accessor = media.PokemonMedia(root, arceus) - fire_arceus = [f for f in arceus.forms if f.identifier == 'fire'][0] + 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() @@ -72,8 +72,9 @@ def test_arceus_icon(): @raises(ValueError) def test_strict_castform(): """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] + 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) @@ -81,8 +82,8 @@ def test_strict_castform(): @raises(ValueError) def test_strict_exeggcute(): """Exeggcutes's female backsprite, with strict -- unavailable""" - exeggcute = session.query(tables.Pokemon).filter_by(identifier=u'exeggcute').one() - accessor = media.PokemonMedia(root, exeggcute) + exeggcute = session.query(tables.PokemonSpecies).filter_by(identifier=u'exeggcute').one() + accessor = media.PokemonSpeciesMedia(root, exeggcute) accessor.sprite(female=True, strict=True) @@ -194,26 +195,26 @@ def check_get_everything(): accessors.append(media.UnknownPokemonMedia(root)) accessors.append(media.EggMedia(root)) - manaphy = session.query(tables.Pokemon).filter_by(identifier=u'manaphy').one() + manaphy = session.query(tables.PokemonSpecies).filter_by(identifier=u'manaphy').one() accessors.append(media.EggMedia(root, manaphy)) accessors.append(media.SubstituteMedia(root)) - for form in session.query(tables.PokemonForm).filter(tables.PokemonForm.identifier != '').all(): + for form in session.query(tables.PokemonForm).all(): accessors.append(media.PokemonFormMedia(root, form)) - for pokemon in session.query(tables.Pokemon).all(): - accessors.append(media.PokemonMedia(root, 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(): @@ -222,8 +223,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): @@ -243,8 +244,8 @@ 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 diff --git a/pokedex/util/media.py b/pokedex/util/media.py index 98964b3..7b672b3 100644 --- a/pokedex/util/media.py +++ b/pokedex/util/media.py @@ -105,7 +105,8 @@ class BaseMedia(object): 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 @@ -126,13 +127,13 @@ class _BasePokemonMedia(BaseMedia): 'black-white': (5, set('back shiny female'.split())), } - def __init__(self, root, pokemon_id, form_postfix=None): + def __init__(self, root, species_id, form_postfix=None): BaseMedia.__init__(self, root) - self.pokemon_id = str(pokemon_id) + 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: @@ -195,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: @@ -235,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 @@ -243,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: @@ -255,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: @@ -270,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): @@ -336,28 +336,32 @@ 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 """ + is_proper = True + def __init__(self, root, pokemon_form): - pokemon_id = pokemon_form.form_base_pokemon_id - if pokemon_form.identifier: - form_postfix = '-' + pokemon_form.identifier + species_id = pokemon_form.species.id + if pokemon_form.form_identifier: + form_postfix = '-' + pokemon_form.form_identifier else: form_postfix = None - _BasePokemonMedia.__init__(self, root, 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, root, pokemon): - _BasePokemonMedia.__init__(self, root, 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 ("?") @@ -372,10 +376,10 @@ class EggMedia(_BasePokemonMedia): 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, root, 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 From 332647c362699053d2138a18f0b30c17e52d4f79 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Mon, 2 May 2011 10:20:28 +0300 Subject: [PATCH 15/16] Switch to py.test #604 --- conftest.py | 21 +++ pokedex/tests/__init__.py | 49 +++++- pokedex/tests/test_database_sanity.py | 13 +- pokedex/tests/test_lookup.py | 136 +++++++------- pokedex/tests/test_media.py | 107 +++++------- pokedex/tests/test_roomaji.py | 27 ++- pokedex/tests/test_schema.py | 116 ++++++------ pokedex/tests/test_strings.py | 243 +++++++++++++------------- pokedex/tests/test_translations.py | 2 +- pokedex/tests/test_util.py | 37 ++-- 10 files changed, 392 insertions(+), 359 deletions(-) create mode 100644 conftest.py 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/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 3da916d..48b773e 100644 --- a/pokedex/tests/test_lookup.py +++ b/pokedex/tests/test_lookup.py @@ -1,18 +1,12 @@ -# 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_species',133), (u'Scratch', 'moves', 10), @@ -37,68 +31,61 @@ def test_exact_lookup(): (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_species', - 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_equal(results[0].object.name, u'Bulbasaur', - u'valid_types works as well as type: prefix') + assert results[0].object.name == u'Bulbasaur' + 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_species', 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 f06ddcf..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,45 +5,33 @@ 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 functools import wraps - -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./]*$') -root = pkg_resources.resource_filename('pokedex', 'data/media') - -media_available = media.BaseMedia(root).available - -def if_available(func): - @wraps(func) - def if_available_wrapper(*args, **kwargs): - if not media_available: - raise SkipTest('Media not available at %s' % root) - else: - func(*args, **kwargs) - return if_available_wrapper - -@if_available -def test_totodile(): +def test_totodile(root): """Totodile's female sprite -- same as male""" totodile = session.query(tables.PokemonSpecies).filter_by(identifier=u'totodile').one() accessor = media.PokemonSpeciesMedia(root, totodile) assert accessor.sprite() == accessor.sprite(female=True) -@if_available -def test_chimecho(): +def test_chimecho(root): """Chimecho's Platinum female backsprite -- diffeent from male""" chimecho = session.query(tables.PokemonSpecies).filter_by(identifier=u'chimecho').one() accessor = media.PokemonSpeciesMedia(root, chimecho) @@ -52,15 +39,13 @@ def test_chimecho(): female = accessor.sprite('platinum', back=True, female=True, frame=2) assert male != female -@if_available -def test_venonat(): +def test_venonat(root): """Venonat's shiny Yellow sprite -- same as non-shiny""" 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) -@if_available -def test_arceus_icon(): +def test_arceus_icon(root): """Arceus fire-form icon -- same as base icon""" arceus = session.query(tables.PokemonSpecies).filter_by(identifier=u'arceus').one() accessor = media.PokemonSpeciesMedia(root, arceus) @@ -68,32 +53,28 @@ def test_arceus_icon(): fire_accessor = media.PokemonFormMedia(root, fire_arceus) assert accessor.icon() == fire_accessor.icon() -@if_available -@raises(ValueError) -def test_strict_castform(): +def test_strict_castform(root): """Castform rainy form overworld with strict -- unavailable""" - 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) + 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) -@if_available -@raises(ValueError) -def test_strict_exeggcute(): +def test_strict_exeggcute(root): """Exeggcutes's female backsprite, with strict -- unavailable""" - exeggcute = session.query(tables.PokemonSpecies).filter_by(identifier=u'exeggcute').one() - accessor = media.PokemonSpeciesMedia(root, 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) @@ -123,8 +104,8 @@ def hit(filenames, method, *args, **kwargs): pass return True -@if_available -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. @@ -133,13 +114,14 @@ 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 @@ -252,26 +234,21 @@ def check_get_everything(): 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 c73182f..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,52 +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__): - for translation_class in table.translation_classes: - if hasattr(translation_class, 'name'): - assert hasattr(table, 'identifier'), table + 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 83dc94b..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.PokemonSpecies).filter( - tables.PokemonSpecies.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.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 = 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.PokemonSpecies).filter( +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() == '

Thunderbolt paralyzes

' - assert md.as_html(object_url=lambda category, obj: "%s/%s" % (category, obj.identifier)) == ( - '

Thunderbolt paralyzes

') - 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)) == ( - '

Thunderbolt paralyzes

') +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() == '

Thunderbolt paralyzes

' + assert md.as_html(object_url=lambda category, obj: "%s/%s" % (category, obj.identifier)) == ( + '

Thunderbolt paralyzes

') + 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)) == ( + '

Thunderbolt paralyzes

') - 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 18287d4..7c6a034 100644 --- a/pokedex/tests/test_util.py +++ b/pokedex/tests/test_util.py @@ -1,7 +1,8 @@ -# 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 session = connect() @@ -18,21 +19,21 @@ def test_get_english_by_identifier(): language = util.get(session, tables.Language, 'en') assert language.name == 'English' -def test_get_pokemon_identifier(): - for identifier in 'burmy shaymin unown cresselia'.split(): - poke = util.get(session, tables.PokemonSpecies, identifier=identifier) - assert poke.identifier == identifier +@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_name(): - for name in 'Burmy Shaymin Unown Cresselia'.split(): - poke = util.get(session, tables.PokemonSpecies, name=name) - assert poke.name == name +@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_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.PokemonSpecies, name=name, language=french) - assert poke.name_map[french] == name, poke.name_map[french] + 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') @@ -40,3 +41,9 @@ def test_types_french_order(): types = list(util.order_by_name(types, tables.Type, language=french)) assert types[0].name_map[french] == 'Acier', types[0].name_map[french] assert types[-1].name_map[french] == 'Vol', types[-1].name_map[french] + +@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' From dd668febe7368de91a4ef8be365b981e5cf472a8 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 6 May 2011 12:40:28 +0300 Subject: [PATCH 16/16] Make id lookup util.get use query.get, avoiding queries for dupe lookups --- pokedex/db/util.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pokedex/db/util.py b/pokedex/db/util.py index 93d9127..6c26d67 100644 --- a/pokedex/db/util.py +++ b/pokedex/db/util.py @@ -7,6 +7,7 @@ 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 @@ -40,7 +41,13 @@ def get(session, table, identifier=None, name=None, id=None, language=None): query = filter_name(query, table, name, language) if id is not None: - query = query.filter_by(id=id) + # ASSUMPTION: id is the primary key of the table. + result = query.get(id) + if result is None: + # Keep the API + raise NoResultFound + else: + return result return query.one()