PKHeX/Misc/PKX.cs
2014-10-09 19:59:57 -07:00

2761 lines
125 KiB
C#

using System;
using System.Data;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Text.RegularExpressions;
using System.Security.Cryptography;
using System.Collections.Generic;
namespace PKHeX
{
public partial class PKX
{
public static uint LCRNG(uint seed)
{
uint a = 0x41C64E6D;
uint c = 0x00006073;
seed = (seed * a + c) & 0xFFFFFFFF;
return seed;
}
public static DataTable SpeciesTable()
{
DataTable table = new DataTable();
table.Columns.Add("Species", typeof(int));
table.Columns.Add("EXP Growth", typeof(int));
table.Columns.Add("BST HP", typeof(int));
table.Columns.Add("BST ATK", typeof(int));
table.Columns.Add("BST DEF", typeof(int));
table.Columns.Add("BST SpA", typeof(int));
table.Columns.Add("BST SpD", typeof(int));
table.Columns.Add("BST Spe", typeof(int));
table.Columns.Add("GT ID", typeof(int));
table.Rows.Add(0, 0, 0, 0, 0, 0, 0, 0, 256);
table.Rows.Add(1, 3, 45, 49, 49, 65, 65, 45, 32);
table.Rows.Add(2, 3, 60, 62, 63, 80, 80, 60, 32);
table.Rows.Add(3, 3, 80, 82, 83, 100, 100, 80, 32);
table.Rows.Add(4, 3, 39, 52, 43, 60, 50, 65, 32);
table.Rows.Add(5, 3, 58, 64, 58, 80, 65, 80, 32);
table.Rows.Add(6, 3, 78, 84, 78, 109, 85, 100, 32);
table.Rows.Add(7, 3, 44, 48, 65, 50, 64, 43, 32);
table.Rows.Add(8, 3, 59, 63, 80, 65, 80, 58, 32);
table.Rows.Add(9, 3, 79, 83, 100, 85, 105, 78, 32);
table.Rows.Add(10, 2, 45, 30, 35, 20, 20, 45, 128);
table.Rows.Add(11, 2, 50, 20, 55, 25, 25, 30, 128);
table.Rows.Add(12, 2, 60, 45, 50, 90, 80, 70, 128);
table.Rows.Add(13, 2, 40, 35, 30, 20, 20, 50, 128);
table.Rows.Add(14, 2, 45, 25, 50, 25, 25, 35, 128);
table.Rows.Add(15, 2, 65, 90, 40, 45, 80, 75, 128);
table.Rows.Add(16, 3, 40, 45, 40, 35, 35, 56, 128);
table.Rows.Add(17, 3, 63, 60, 55, 50, 50, 71, 128);
table.Rows.Add(18, 3, 83, 80, 75, 70, 70, 101, 128);
table.Rows.Add(19, 2, 30, 56, 35, 25, 35, 72, 128);
table.Rows.Add(20, 2, 55, 81, 60, 50, 70, 97, 128);
table.Rows.Add(21, 2, 40, 60, 30, 31, 31, 70, 128);
table.Rows.Add(22, 2, 65, 90, 65, 61, 61, 100, 128);
table.Rows.Add(23, 2, 35, 60, 44, 40, 54, 55, 128);
table.Rows.Add(24, 2, 60, 85, 69, 65, 79, 80, 128);
table.Rows.Add(25, 2, 35, 55, 40, 50, 50, 90, 128);
table.Rows.Add(26, 2, 60, 90, 55, 90, 80, 110, 128);
table.Rows.Add(27, 2, 50, 75, 85, 20, 30, 40, 128);
table.Rows.Add(28, 2, 75, 100, 110, 45, 55, 65, 128);
table.Rows.Add(29, 3, 55, 47, 52, 40, 40, 41, 257);
table.Rows.Add(30, 3, 70, 62, 67, 55, 55, 56, 257);
table.Rows.Add(31, 3, 90, 92, 87, 75, 85, 76, 257);
table.Rows.Add(32, 3, 46, 57, 40, 40, 40, 50, 256);
table.Rows.Add(33, 3, 61, 72, 57, 55, 55, 65, 256);
table.Rows.Add(34, 3, 81, 102, 77, 85, 75, 85, 256);
table.Rows.Add(35, 1, 70, 45, 48, 60, 65, 35, 192);
table.Rows.Add(36, 1, 95, 70, 73, 95, 90, 60, 192);
table.Rows.Add(37, 2, 38, 41, 40, 50, 65, 65, 192);
table.Rows.Add(38, 2, 73, 76, 75, 81, 100, 100, 192);
table.Rows.Add(39, 1, 115, 45, 20, 45, 25, 20, 192);
table.Rows.Add(40, 1, 140, 70, 45, 85, 50, 45, 192);
table.Rows.Add(41, 2, 40, 45, 35, 30, 40, 55, 128);
table.Rows.Add(42, 2, 75, 80, 70, 65, 75, 90, 128);
table.Rows.Add(43, 3, 45, 50, 55, 75, 65, 30, 128);
table.Rows.Add(44, 3, 60, 65, 70, 85, 75, 40, 128);
table.Rows.Add(45, 3, 75, 80, 85, 110, 90, 50, 128);
table.Rows.Add(46, 2, 35, 70, 55, 45, 55, 25, 128);
table.Rows.Add(47, 2, 60, 95, 80, 60, 80, 30, 128);
table.Rows.Add(48, 2, 60, 55, 50, 40, 55, 45, 128);
table.Rows.Add(49, 2, 70, 65, 60, 90, 75, 90, 128);
table.Rows.Add(50, 2, 10, 55, 25, 35, 45, 95, 128);
table.Rows.Add(51, 2, 35, 80, 50, 50, 70, 120, 128);
table.Rows.Add(52, 2, 40, 45, 35, 40, 40, 90, 128);
table.Rows.Add(53, 2, 65, 70, 60, 65, 65, 115, 128);
table.Rows.Add(54, 2, 50, 52, 48, 65, 50, 55, 128);
table.Rows.Add(55, 2, 80, 82, 78, 95, 80, 85, 128);
table.Rows.Add(56, 2, 40, 80, 35, 35, 45, 70, 128);
table.Rows.Add(57, 2, 65, 105, 60, 60, 70, 95, 128);
table.Rows.Add(58, 4, 55, 70, 45, 70, 50, 60, 64);
table.Rows.Add(59, 4, 90, 110, 80, 100, 80, 95, 64);
table.Rows.Add(60, 3, 40, 50, 40, 40, 40, 90, 128);
table.Rows.Add(61, 3, 65, 65, 65, 50, 50, 90, 128);
table.Rows.Add(62, 3, 90, 95, 95, 70, 90, 70, 128);
table.Rows.Add(63, 3, 25, 20, 15, 105, 55, 90, 64);
table.Rows.Add(64, 3, 40, 35, 30, 120, 70, 105, 64);
table.Rows.Add(65, 3, 55, 50, 45, 135, 95, 120, 64);
table.Rows.Add(66, 3, 70, 80, 50, 35, 35, 35, 64);
table.Rows.Add(67, 3, 80, 100, 70, 50, 60, 45, 64);
table.Rows.Add(68, 3, 90, 130, 80, 65, 85, 55, 64);
table.Rows.Add(69, 3, 50, 75, 35, 70, 30, 40, 128);
table.Rows.Add(70, 3, 65, 90, 50, 85, 45, 55, 128);
table.Rows.Add(71, 3, 80, 105, 65, 100, 70, 70, 128);
table.Rows.Add(72, 4, 40, 40, 35, 50, 100, 70, 128);
table.Rows.Add(73, 4, 80, 70, 65, 80, 120, 100, 128);
table.Rows.Add(74, 3, 40, 80, 100, 30, 30, 20, 128);
table.Rows.Add(75, 3, 55, 95, 115, 45, 45, 35, 128);
table.Rows.Add(76, 3, 80, 120, 130, 55, 65, 45, 128);
table.Rows.Add(77, 2, 50, 85, 55, 65, 65, 90, 128);
table.Rows.Add(78, 2, 65, 100, 70, 80, 80, 105, 128);
table.Rows.Add(79, 2, 90, 65, 65, 40, 40, 15, 128);
table.Rows.Add(80, 2, 95, 75, 110, 100, 80, 30, 128);
table.Rows.Add(81, 2, 25, 35, 70, 95, 55, 45, 258);
table.Rows.Add(82, 2, 50, 60, 95, 120, 70, 70, 258);
table.Rows.Add(83, 2, 52, 65, 55, 58, 62, 60, 128);
table.Rows.Add(84, 2, 35, 85, 45, 35, 35, 75, 128);
table.Rows.Add(85, 2, 60, 110, 70, 60, 60, 100, 128);
table.Rows.Add(86, 2, 65, 45, 55, 45, 70, 45, 128);
table.Rows.Add(87, 2, 90, 70, 80, 70, 95, 70, 128);
table.Rows.Add(88, 2, 80, 80, 50, 40, 50, 25, 128);
table.Rows.Add(89, 2, 105, 105, 75, 65, 100, 50, 128);
table.Rows.Add(90, 4, 30, 65, 100, 45, 25, 40, 128);
table.Rows.Add(91, 4, 50, 95, 180, 85, 45, 70, 128);
table.Rows.Add(92, 3, 30, 35, 30, 100, 35, 80, 128);
table.Rows.Add(93, 3, 45, 50, 45, 115, 55, 95, 128);
table.Rows.Add(94, 3, 60, 65, 60, 130, 75, 110, 128);
table.Rows.Add(95, 2, 35, 45, 160, 30, 45, 70, 128);
table.Rows.Add(96, 2, 60, 48, 45, 43, 90, 42, 128);
table.Rows.Add(97, 2, 85, 73, 70, 73, 115, 67, 128);
table.Rows.Add(98, 2, 30, 105, 90, 25, 25, 50, 128);
table.Rows.Add(99, 2, 55, 130, 115, 50, 50, 75, 128);
table.Rows.Add(100, 2, 40, 30, 50, 55, 55, 100, 258);
table.Rows.Add(101, 2, 60, 50, 70, 80, 80, 140, 258);
table.Rows.Add(102, 4, 60, 40, 80, 60, 45, 40, 128);
table.Rows.Add(103, 4, 95, 95, 85, 125, 65, 55, 128);
table.Rows.Add(104, 2, 50, 50, 95, 40, 50, 35, 128);
table.Rows.Add(105, 2, 60, 80, 110, 50, 80, 45, 128);
table.Rows.Add(106, 2, 50, 120, 53, 35, 110, 87, 256);
table.Rows.Add(107, 2, 50, 105, 79, 35, 110, 76, 256);
table.Rows.Add(108, 2, 90, 55, 75, 60, 75, 30, 128);
table.Rows.Add(109, 2, 40, 65, 95, 60, 45, 35, 128);
table.Rows.Add(110, 2, 65, 90, 120, 85, 70, 60, 128);
table.Rows.Add(111, 4, 80, 85, 95, 30, 30, 25, 128);
table.Rows.Add(112, 4, 105, 130, 120, 45, 45, 40, 128);
table.Rows.Add(113, 1, 250, 5, 5, 35, 105, 50, 257);
table.Rows.Add(114, 2, 65, 55, 115, 100, 40, 60, 128);
table.Rows.Add(115, 2, 105, 95, 80, 40, 80, 90, 257);
table.Rows.Add(116, 2, 30, 40, 70, 70, 25, 60, 128);
table.Rows.Add(117, 2, 55, 65, 95, 95, 45, 85, 128);
table.Rows.Add(118, 2, 45, 67, 60, 35, 50, 63, 128);
table.Rows.Add(119, 2, 80, 92, 65, 65, 80, 68, 128);
table.Rows.Add(120, 4, 30, 45, 55, 70, 55, 85, 258);
table.Rows.Add(121, 4, 60, 75, 85, 100, 85, 115, 258);
table.Rows.Add(122, 2, 40, 45, 65, 100, 120, 90, 128);
table.Rows.Add(123, 2, 70, 110, 80, 55, 80, 105, 128);
table.Rows.Add(124, 2, 65, 50, 35, 115, 95, 95, 257);
table.Rows.Add(125, 2, 65, 83, 57, 95, 85, 105, 64);
table.Rows.Add(126, 2, 65, 95, 57, 100, 85, 93, 64);
table.Rows.Add(127, 4, 65, 125, 100, 55, 70, 85, 128);
table.Rows.Add(128, 4, 75, 100, 95, 40, 70, 110, 256);
table.Rows.Add(129, 4, 20, 10, 55, 15, 20, 80, 128);
table.Rows.Add(130, 4, 95, 125, 79, 60, 100, 81, 128);
table.Rows.Add(131, 4, 130, 85, 80, 85, 95, 60, 128);
table.Rows.Add(132, 2, 48, 48, 48, 48, 48, 48, 258);
table.Rows.Add(133, 2, 55, 55, 50, 45, 65, 55, 32);
table.Rows.Add(134, 2, 130, 65, 60, 110, 95, 65, 32);
table.Rows.Add(135, 2, 65, 65, 60, 110, 95, 130, 32);
table.Rows.Add(136, 2, 65, 130, 60, 95, 110, 65, 32);
table.Rows.Add(137, 2, 65, 60, 70, 85, 75, 40, 258);
table.Rows.Add(138, 2, 35, 40, 100, 90, 55, 35, 32);
table.Rows.Add(139, 2, 70, 60, 125, 115, 70, 55, 32);
table.Rows.Add(140, 2, 30, 80, 90, 55, 45, 55, 32);
table.Rows.Add(141, 2, 60, 115, 105, 65, 70, 80, 32);
table.Rows.Add(142, 4, 80, 105, 65, 60, 75, 130, 32);
table.Rows.Add(143, 4, 160, 110, 65, 65, 110, 30, 32);
table.Rows.Add(144, 4, 90, 85, 100, 95, 125, 85, 258);
table.Rows.Add(145, 4, 90, 90, 85, 125, 90, 100, 258);
table.Rows.Add(146, 4, 90, 100, 90, 125, 85, 90, 258);
table.Rows.Add(147, 4, 41, 64, 45, 50, 50, 50, 128);
table.Rows.Add(148, 4, 61, 84, 65, 70, 70, 70, 128);
table.Rows.Add(149, 4, 91, 134, 95, 100, 100, 80, 128);
table.Rows.Add(150, 4, 106, 110, 90, 154, 90, 130, 258);
table.Rows.Add(151, 3, 100, 100, 100, 100, 100, 100, 258);
table.Rows.Add(152, 3, 45, 49, 65, 49, 65, 45, 32);
table.Rows.Add(153, 3, 60, 62, 80, 63, 80, 60, 32);
table.Rows.Add(154, 3, 80, 82, 100, 83, 100, 80, 32);
table.Rows.Add(155, 3, 39, 52, 43, 60, 50, 65, 32);
table.Rows.Add(156, 3, 58, 64, 58, 80, 65, 80, 32);
table.Rows.Add(157, 3, 78, 84, 78, 109, 85, 100, 32);
table.Rows.Add(158, 3, 50, 65, 64, 44, 48, 43, 32);
table.Rows.Add(159, 3, 65, 80, 80, 59, 63, 58, 32);
table.Rows.Add(160, 3, 85, 105, 100, 79, 83, 78, 32);
table.Rows.Add(161, 2, 35, 46, 34, 35, 45, 20, 128);
table.Rows.Add(162, 2, 85, 76, 64, 45, 55, 90, 128);
table.Rows.Add(163, 2, 60, 30, 30, 36, 56, 50, 128);
table.Rows.Add(164, 2, 100, 50, 50, 76, 96, 70, 128);
table.Rows.Add(165, 1, 40, 20, 30, 40, 80, 55, 128);
table.Rows.Add(166, 1, 55, 35, 50, 55, 110, 85, 128);
table.Rows.Add(167, 1, 40, 60, 40, 40, 40, 30, 128);
table.Rows.Add(168, 1, 70, 90, 70, 60, 60, 40, 128);
table.Rows.Add(169, 2, 85, 90, 80, 70, 80, 130, 128);
table.Rows.Add(170, 4, 75, 38, 38, 56, 56, 67, 128);
table.Rows.Add(171, 4, 125, 58, 58, 76, 76, 67, 128);
table.Rows.Add(172, 2, 20, 40, 15, 35, 35, 60, 128);
table.Rows.Add(173, 1, 50, 25, 28, 45, 55, 15, 192);
table.Rows.Add(174, 1, 90, 30, 15, 40, 20, 15, 192);
table.Rows.Add(175, 1, 35, 20, 65, 40, 65, 20, 32);
table.Rows.Add(176, 1, 55, 40, 85, 80, 105, 40, 32);
table.Rows.Add(177, 2, 40, 50, 45, 70, 45, 70, 128);
table.Rows.Add(178, 2, 65, 75, 70, 95, 70, 95, 128);
table.Rows.Add(179, 3, 55, 40, 40, 65, 45, 35, 128);
table.Rows.Add(180, 3, 70, 55, 55, 80, 60, 45, 128);
table.Rows.Add(181, 3, 90, 75, 85, 115, 90, 55, 128);
table.Rows.Add(182, 3, 75, 80, 95, 90, 100, 50, 128);
table.Rows.Add(183, 1, 70, 20, 50, 20, 50, 40, 128);
table.Rows.Add(184, 1, 100, 50, 80, 60, 80, 50, 128);
table.Rows.Add(185, 2, 70, 100, 115, 30, 65, 30, 128);
table.Rows.Add(186, 3, 90, 75, 75, 90, 100, 70, 128);
table.Rows.Add(187, 3, 35, 35, 40, 35, 55, 50, 128);
table.Rows.Add(188, 3, 55, 45, 50, 45, 65, 80, 128);
table.Rows.Add(189, 3, 75, 55, 70, 55, 95, 110, 128);
table.Rows.Add(190, 1, 55, 70, 55, 40, 55, 85, 128);
table.Rows.Add(191, 3, 30, 30, 30, 30, 30, 30, 128);
table.Rows.Add(192, 3, 75, 75, 55, 105, 85, 30, 128);
table.Rows.Add(193, 2, 65, 65, 45, 75, 45, 95, 128);
table.Rows.Add(194, 2, 55, 45, 45, 25, 25, 15, 128);
table.Rows.Add(195, 2, 95, 85, 85, 65, 65, 35, 128);
table.Rows.Add(196, 2, 65, 65, 60, 130, 95, 110, 32);
table.Rows.Add(197, 2, 95, 65, 110, 60, 130, 65, 32);
table.Rows.Add(198, 3, 60, 85, 42, 85, 42, 91, 128);
table.Rows.Add(199, 2, 95, 75, 80, 100, 110, 30, 128);
table.Rows.Add(200, 1, 60, 60, 60, 85, 85, 85, 128);
table.Rows.Add(201, 2, 48, 72, 48, 72, 48, 48, 258);
table.Rows.Add(202, 2, 190, 33, 58, 33, 58, 33, 128);
table.Rows.Add(203, 2, 70, 80, 65, 90, 65, 85, 128);
table.Rows.Add(204, 2, 50, 65, 90, 35, 35, 15, 128);
table.Rows.Add(205, 2, 75, 90, 140, 60, 60, 40, 128);
table.Rows.Add(206, 2, 100, 70, 70, 65, 65, 45, 128);
table.Rows.Add(207, 3, 65, 75, 105, 35, 65, 85, 128);
table.Rows.Add(208, 2, 75, 85, 200, 55, 65, 30, 128);
table.Rows.Add(209, 1, 60, 80, 50, 40, 40, 30, 192);
table.Rows.Add(210, 1, 90, 120, 75, 60, 60, 45, 192);
table.Rows.Add(211, 2, 65, 95, 75, 55, 55, 85, 128);
table.Rows.Add(212, 2, 70, 130, 100, 55, 80, 65, 128);
table.Rows.Add(213, 3, 20, 10, 230, 10, 230, 5, 128);
table.Rows.Add(214, 4, 80, 125, 75, 40, 95, 85, 128);
table.Rows.Add(215, 3, 55, 95, 55, 35, 75, 115, 128);
table.Rows.Add(216, 2, 60, 80, 50, 50, 50, 40, 128);
table.Rows.Add(217, 2, 90, 130, 75, 75, 75, 55, 128);
table.Rows.Add(218, 2, 40, 40, 40, 70, 40, 20, 128);
table.Rows.Add(219, 2, 50, 50, 120, 80, 80, 30, 128);
table.Rows.Add(220, 4, 50, 50, 40, 30, 30, 50, 128);
table.Rows.Add(221, 4, 100, 100, 80, 60, 60, 50, 128);
table.Rows.Add(222, 1, 55, 55, 85, 65, 85, 35, 192);
table.Rows.Add(223, 2, 35, 65, 35, 65, 35, 65, 128);
table.Rows.Add(224, 2, 75, 105, 75, 105, 75, 45, 128);
table.Rows.Add(225, 1, 45, 55, 45, 65, 45, 75, 128);
table.Rows.Add(226, 4, 65, 40, 70, 80, 140, 70, 128);
table.Rows.Add(227, 4, 65, 80, 140, 40, 70, 70, 128);
table.Rows.Add(228, 4, 45, 60, 30, 80, 50, 65, 128);
table.Rows.Add(229, 4, 75, 90, 50, 110, 80, 95, 128);
table.Rows.Add(230, 2, 75, 95, 95, 95, 95, 85, 128);
table.Rows.Add(231, 2, 90, 60, 60, 40, 40, 40, 128);
table.Rows.Add(232, 2, 90, 120, 120, 60, 60, 50, 128);
table.Rows.Add(233, 2, 85, 80, 90, 105, 95, 60, 258);
table.Rows.Add(234, 4, 73, 95, 62, 85, 65, 85, 128);
table.Rows.Add(235, 1, 55, 20, 35, 20, 45, 75, 128);
table.Rows.Add(236, 2, 35, 35, 35, 35, 35, 35, 256);
table.Rows.Add(237, 2, 50, 95, 95, 35, 110, 70, 256);
table.Rows.Add(238, 2, 45, 30, 15, 85, 65, 65, 257);
table.Rows.Add(239, 2, 45, 63, 37, 65, 55, 95, 64);
table.Rows.Add(240, 2, 45, 75, 37, 70, 55, 83, 64);
table.Rows.Add(241, 4, 95, 80, 105, 40, 70, 100, 257);
table.Rows.Add(242, 1, 255, 10, 10, 75, 135, 55, 257);
table.Rows.Add(243, 4, 90, 85, 75, 115, 100, 115, 258);
table.Rows.Add(244, 4, 115, 115, 85, 90, 75, 100, 258);
table.Rows.Add(245, 4, 100, 75, 115, 90, 115, 85, 258);
table.Rows.Add(246, 4, 50, 64, 50, 45, 50, 41, 128);
table.Rows.Add(247, 4, 70, 84, 70, 65, 70, 51, 128);
table.Rows.Add(248, 4, 100, 134, 110, 95, 100, 61, 128);
table.Rows.Add(249, 4, 106, 90, 130, 90, 154, 110, 258);
table.Rows.Add(250, 4, 106, 130, 90, 110, 154, 90, 258);
table.Rows.Add(251, 3, 100, 100, 100, 100, 100, 100, 258);
table.Rows.Add(252, 3, 40, 45, 35, 65, 55, 70, 32);
table.Rows.Add(253, 3, 50, 65, 45, 85, 65, 95, 32);
table.Rows.Add(254, 3, 70, 85, 65, 105, 85, 120, 32);
table.Rows.Add(255, 3, 45, 60, 40, 70, 50, 45, 32);
table.Rows.Add(256, 3, 60, 85, 60, 85, 60, 55, 32);
table.Rows.Add(257, 3, 80, 120, 70, 110, 70, 80, 32);
table.Rows.Add(258, 3, 50, 70, 50, 50, 50, 40, 32);
table.Rows.Add(259, 3, 70, 85, 70, 60, 70, 50, 32);
table.Rows.Add(260, 3, 100, 110, 90, 85, 90, 60, 32);
table.Rows.Add(261, 2, 35, 55, 35, 30, 30, 35, 128);
table.Rows.Add(262, 2, 70, 90, 70, 60, 60, 70, 128);
table.Rows.Add(263, 2, 38, 30, 41, 30, 41, 60, 128);
table.Rows.Add(264, 2, 78, 70, 61, 50, 61, 100, 128);
table.Rows.Add(265, 2, 45, 45, 35, 20, 30, 20, 128);
table.Rows.Add(266, 2, 50, 35, 55, 25, 25, 15, 128);
table.Rows.Add(267, 2, 60, 70, 50, 100, 50, 65, 128);
table.Rows.Add(268, 2, 50, 35, 55, 25, 25, 15, 128);
table.Rows.Add(269, 2, 60, 50, 70, 50, 90, 65, 128);
table.Rows.Add(270, 3, 40, 30, 30, 40, 50, 30, 128);
table.Rows.Add(271, 3, 60, 50, 50, 60, 70, 50, 128);
table.Rows.Add(272, 3, 80, 70, 70, 90, 100, 70, 128);
table.Rows.Add(273, 3, 40, 40, 50, 30, 30, 30, 128);
table.Rows.Add(274, 3, 70, 70, 40, 60, 40, 60, 128);
table.Rows.Add(275, 3, 90, 100, 60, 90, 60, 80, 128);
table.Rows.Add(276, 3, 40, 55, 30, 30, 30, 85, 128);
table.Rows.Add(277, 3, 60, 85, 60, 50, 50, 125, 128);
table.Rows.Add(278, 2, 40, 30, 30, 55, 30, 85, 128);
table.Rows.Add(279, 2, 60, 50, 100, 85, 70, 65, 128);
table.Rows.Add(280, 4, 28, 25, 25, 45, 35, 40, 128);
table.Rows.Add(281, 4, 38, 35, 35, 65, 55, 50, 128);
table.Rows.Add(282, 4, 68, 65, 65, 125, 115, 80, 128);
table.Rows.Add(283, 2, 40, 30, 32, 50, 52, 65, 128);
table.Rows.Add(284, 2, 70, 60, 62, 80, 82, 60, 128);
table.Rows.Add(285, 5, 60, 40, 60, 40, 60, 35, 128);
table.Rows.Add(286, 5, 60, 130, 80, 60, 60, 70, 128);
table.Rows.Add(287, 4, 60, 60, 60, 35, 35, 30, 128);
table.Rows.Add(288, 4, 80, 80, 80, 55, 55, 90, 128);
table.Rows.Add(289, 4, 150, 160, 100, 95, 65, 100, 128);
table.Rows.Add(290, 0, 31, 45, 90, 30, 30, 40, 128);
table.Rows.Add(291, 0, 61, 90, 45, 50, 50, 160, 128);
table.Rows.Add(292, 0, 1, 90, 45, 30, 30, 40, 258);
table.Rows.Add(293, 3, 64, 51, 23, 51, 23, 28, 128);
table.Rows.Add(294, 3, 84, 71, 43, 71, 43, 48, 128);
table.Rows.Add(295, 3, 104, 91, 63, 91, 73, 68, 128);
table.Rows.Add(296, 5, 72, 60, 30, 20, 30, 25, 64);
table.Rows.Add(297, 5, 144, 120, 60, 40, 60, 50, 64);
table.Rows.Add(298, 1, 50, 20, 40, 20, 40, 20, 192);
table.Rows.Add(299, 2, 30, 45, 135, 45, 90, 30, 128);
table.Rows.Add(300, 1, 50, 45, 45, 35, 35, 50, 192);
table.Rows.Add(301, 1, 70, 65, 65, 55, 55, 70, 192);
table.Rows.Add(302, 3, 50, 75, 75, 65, 65, 50, 128);
table.Rows.Add(303, 1, 50, 85, 85, 55, 55, 50, 128);
table.Rows.Add(304, 4, 50, 70, 100, 40, 40, 30, 128);
table.Rows.Add(305, 4, 60, 90, 140, 50, 50, 40, 128);
table.Rows.Add(306, 4, 70, 110, 180, 60, 60, 50, 128);
table.Rows.Add(307, 2, 30, 40, 55, 40, 55, 60, 128);
table.Rows.Add(308, 2, 60, 60, 75, 60, 75, 80, 128);
table.Rows.Add(309, 4, 40, 45, 40, 65, 40, 65, 128);
table.Rows.Add(310, 4, 70, 75, 60, 105, 60, 105, 128);
table.Rows.Add(311, 2, 60, 50, 40, 85, 75, 95, 128);
table.Rows.Add(312, 2, 60, 40, 50, 75, 85, 95, 128);
table.Rows.Add(313, 0, 65, 73, 55, 47, 75, 85, 256);
table.Rows.Add(314, 5, 65, 47, 55, 73, 75, 85, 257);
table.Rows.Add(315, 3, 50, 60, 45, 100, 80, 65, 128);
table.Rows.Add(316, 5, 70, 43, 53, 43, 53, 40, 128);
table.Rows.Add(317, 5, 100, 73, 83, 73, 83, 55, 128);
table.Rows.Add(318, 4, 45, 90, 20, 65, 20, 65, 128);
table.Rows.Add(319, 4, 70, 120, 40, 95, 40, 95, 128);
table.Rows.Add(320, 5, 130, 70, 35, 70, 35, 60, 128);
table.Rows.Add(321, 5, 170, 90, 45, 90, 45, 60, 128);
table.Rows.Add(322, 2, 60, 60, 40, 65, 45, 35, 128);
table.Rows.Add(323, 2, 70, 100, 70, 105, 75, 40, 128);
table.Rows.Add(324, 2, 70, 85, 140, 85, 70, 20, 128);
table.Rows.Add(325, 1, 60, 25, 35, 70, 80, 60, 128);
table.Rows.Add(326, 1, 80, 45, 65, 90, 110, 80, 128);
table.Rows.Add(327, 1, 60, 60, 60, 60, 60, 60, 128);
table.Rows.Add(328, 3, 45, 100, 45, 45, 45, 10, 128);
table.Rows.Add(329, 3, 50, 70, 50, 50, 50, 70, 128);
table.Rows.Add(330, 3, 80, 100, 80, 80, 80, 100, 128);
table.Rows.Add(331, 3, 50, 85, 40, 85, 40, 35, 128);
table.Rows.Add(332, 3, 70, 115, 60, 115, 60, 55, 128);
table.Rows.Add(333, 0, 45, 40, 60, 40, 75, 50, 128);
table.Rows.Add(334, 0, 75, 70, 90, 70, 105, 80, 128);
table.Rows.Add(335, 0, 73, 115, 60, 60, 60, 90, 128);
table.Rows.Add(336, 5, 73, 100, 60, 100, 60, 65, 128);
table.Rows.Add(337, 1, 70, 55, 65, 95, 85, 70, 258);
table.Rows.Add(338, 1, 70, 95, 85, 55, 65, 70, 258);
table.Rows.Add(339, 2, 50, 48, 43, 46, 41, 60, 128);
table.Rows.Add(340, 2, 110, 78, 73, 76, 71, 60, 128);
table.Rows.Add(341, 5, 43, 80, 65, 50, 35, 35, 128);
table.Rows.Add(342, 5, 63, 120, 85, 90, 55, 55, 128);
table.Rows.Add(343, 2, 40, 40, 55, 40, 70, 55, 258);
table.Rows.Add(344, 2, 60, 70, 105, 70, 120, 75, 258);
table.Rows.Add(345, 0, 66, 41, 77, 61, 87, 23, 32);
table.Rows.Add(346, 0, 86, 81, 97, 81, 107, 43, 32);
table.Rows.Add(347, 0, 45, 95, 50, 40, 50, 75, 32);
table.Rows.Add(348, 0, 75, 125, 100, 70, 80, 45, 32);
table.Rows.Add(349, 0, 20, 15, 20, 10, 55, 80, 128);
table.Rows.Add(350, 0, 95, 60, 79, 100, 125, 81, 128);
table.Rows.Add(351, 2, 70, 70, 70, 70, 70, 70, 128);
table.Rows.Add(352, 3, 60, 90, 70, 60, 120, 40, 128);
table.Rows.Add(353, 1, 44, 75, 35, 63, 33, 45, 128);
table.Rows.Add(354, 1, 64, 115, 65, 83, 63, 65, 128);
table.Rows.Add(355, 1, 20, 40, 90, 30, 90, 25, 128);
table.Rows.Add(356, 1, 40, 70, 130, 60, 130, 25, 128);
table.Rows.Add(357, 4, 99, 68, 83, 72, 87, 51, 128);
table.Rows.Add(358, 1, 65, 50, 70, 95, 80, 65, 128);
table.Rows.Add(359, 3, 65, 130, 60, 75, 60, 75, 128);
table.Rows.Add(360, 2, 95, 23, 48, 23, 48, 23, 128);
table.Rows.Add(361, 2, 50, 50, 50, 50, 50, 50, 128);
table.Rows.Add(362, 2, 80, 80, 80, 80, 80, 80, 128);
table.Rows.Add(363, 3, 70, 40, 50, 55, 50, 25, 128);
table.Rows.Add(364, 3, 90, 60, 70, 75, 70, 45, 128);
table.Rows.Add(365, 3, 110, 80, 90, 95, 90, 65, 128);
table.Rows.Add(366, 0, 35, 64, 85, 74, 55, 32, 128);
table.Rows.Add(367, 0, 55, 104, 105, 94, 75, 52, 128);
table.Rows.Add(368, 0, 55, 84, 105, 114, 75, 52, 128);
table.Rows.Add(369, 4, 100, 90, 130, 45, 65, 55, 32);
table.Rows.Add(370, 1, 43, 30, 55, 40, 65, 97, 192);
table.Rows.Add(371, 4, 45, 75, 60, 40, 30, 50, 128);
table.Rows.Add(372, 4, 65, 95, 100, 60, 50, 50, 128);
table.Rows.Add(373, 4, 95, 135, 80, 110, 80, 100, 128);
table.Rows.Add(374, 4, 40, 55, 80, 35, 60, 30, 258);
table.Rows.Add(375, 4, 60, 75, 100, 55, 80, 50, 258);
table.Rows.Add(376, 4, 80, 135, 130, 95, 90, 70, 258);
table.Rows.Add(377, 4, 80, 100, 200, 50, 100, 50, 258);
table.Rows.Add(378, 4, 80, 50, 100, 100, 200, 50, 258);
table.Rows.Add(379, 4, 80, 75, 150, 75, 150, 50, 258);
table.Rows.Add(380, 4, 80, 80, 90, 110, 130, 110, 257);
table.Rows.Add(381, 4, 80, 90, 80, 130, 110, 110, 256);
table.Rows.Add(382, 4, 100, 100, 90, 150, 140, 90, 258);
table.Rows.Add(383, 4, 100, 150, 140, 100, 90, 90, 258);
table.Rows.Add(384, 4, 105, 150, 90, 150, 90, 95, 258);
table.Rows.Add(385, 4, 100, 100, 100, 100, 100, 100, 258);
table.Rows.Add(386, 4, 50, 180, 20, 180, 20, 150, 258);
table.Rows.Add(387, 3, 55, 68, 64, 45, 55, 31, 32);
table.Rows.Add(388, 3, 75, 89, 85, 55, 65, 36, 32);
table.Rows.Add(389, 3, 95, 109, 105, 75, 85, 56, 32);
table.Rows.Add(390, 3, 44, 58, 44, 58, 44, 61, 32);
table.Rows.Add(391, 3, 64, 78, 52, 78, 52, 81, 32);
table.Rows.Add(392, 3, 76, 104, 71, 104, 71, 108, 32);
table.Rows.Add(393, 3, 53, 51, 53, 61, 56, 40, 32);
table.Rows.Add(394, 3, 64, 66, 68, 81, 76, 50, 32);
table.Rows.Add(395, 3, 84, 86, 88, 111, 101, 60, 32);
table.Rows.Add(396, 3, 40, 55, 30, 30, 30, 60, 128);
table.Rows.Add(397, 3, 55, 75, 50, 40, 40, 80, 128);
table.Rows.Add(398, 3, 85, 120, 70, 50, 60, 100, 128);
table.Rows.Add(399, 2, 59, 45, 40, 35, 40, 31, 128);
table.Rows.Add(400, 2, 79, 85, 60, 55, 60, 71, 128);
table.Rows.Add(401, 3, 37, 25, 41, 25, 41, 25, 128);
table.Rows.Add(402, 3, 77, 85, 51, 55, 51, 65, 128);
table.Rows.Add(403, 3, 45, 65, 34, 40, 34, 45, 128);
table.Rows.Add(404, 3, 60, 85, 49, 60, 49, 60, 128);
table.Rows.Add(405, 3, 80, 120, 79, 95, 79, 70, 128);
table.Rows.Add(406, 3, 40, 30, 35, 50, 70, 55, 128);
table.Rows.Add(407, 3, 60, 70, 65, 125, 105, 90, 128);
table.Rows.Add(408, 0, 67, 125, 40, 30, 30, 58, 32);
table.Rows.Add(409, 0, 97, 165, 60, 65, 50, 58, 32);
table.Rows.Add(410, 0, 30, 42, 118, 42, 88, 30, 32);
table.Rows.Add(411, 0, 60, 52, 168, 47, 138, 30, 32);
table.Rows.Add(412, 2, 40, 29, 45, 29, 45, 36, 128);
table.Rows.Add(413, 2, 60, 59, 85, 79, 105, 36, 257);
table.Rows.Add(414, 2, 70, 94, 50, 94, 50, 66, 256);
table.Rows.Add(415, 3, 30, 30, 42, 30, 42, 70, 32);
table.Rows.Add(416, 3, 70, 80, 102, 80, 102, 40, 257);
table.Rows.Add(417, 2, 60, 45, 70, 45, 90, 95, 128);
table.Rows.Add(418, 2, 55, 65, 35, 60, 30, 85, 128);
table.Rows.Add(419, 2, 85, 105, 55, 85, 50, 115, 128);
table.Rows.Add(420, 2, 45, 35, 45, 62, 53, 35, 128);
table.Rows.Add(421, 2, 70, 60, 70, 87, 78, 85, 128);
table.Rows.Add(422, 2, 76, 48, 48, 57, 62, 34, 128);
table.Rows.Add(423, 2, 111, 83, 68, 92, 82, 39, 128);
table.Rows.Add(424, 1, 75, 100, 66, 60, 66, 115, 128);
table.Rows.Add(425, 5, 90, 50, 34, 60, 44, 70, 128);
table.Rows.Add(426, 5, 150, 80, 44, 90, 54, 80, 128);
table.Rows.Add(427, 2, 55, 66, 44, 44, 56, 85, 128);
table.Rows.Add(428, 2, 65, 76, 84, 54, 96, 105, 128);
table.Rows.Add(429, 1, 60, 60, 60, 105, 105, 105, 128);
table.Rows.Add(430, 3, 100, 125, 52, 105, 52, 71, 128);
table.Rows.Add(431, 1, 49, 55, 42, 42, 37, 85, 192);
table.Rows.Add(432, 1, 71, 82, 64, 64, 59, 112, 192);
table.Rows.Add(433, 1, 45, 30, 50, 65, 50, 45, 128);
table.Rows.Add(434, 2, 63, 63, 47, 41, 41, 74, 128);
table.Rows.Add(435, 2, 103, 93, 67, 71, 61, 84, 128);
table.Rows.Add(436, 2, 57, 24, 86, 24, 86, 23, 258);
table.Rows.Add(437, 2, 67, 89, 116, 79, 116, 33, 258);
table.Rows.Add(438, 2, 50, 80, 95, 10, 45, 10, 128);
table.Rows.Add(439, 2, 20, 25, 45, 70, 90, 60, 128);
table.Rows.Add(440, 1, 100, 5, 5, 15, 65, 30, 257);
table.Rows.Add(441, 3, 76, 65, 45, 92, 42, 91, 128);
table.Rows.Add(442, 2, 50, 92, 108, 92, 108, 35, 128);
table.Rows.Add(443, 4, 58, 70, 45, 40, 45, 42, 128);
table.Rows.Add(444, 4, 68, 90, 65, 50, 55, 82, 128);
table.Rows.Add(445, 4, 108, 130, 95, 80, 85, 102, 128);
table.Rows.Add(446, 4, 135, 85, 40, 40, 85, 5, 32);
table.Rows.Add(447, 3, 40, 70, 40, 35, 40, 60, 32);
table.Rows.Add(448, 3, 70, 110, 70, 115, 70, 90, 32);
table.Rows.Add(449, 4, 68, 72, 78, 38, 42, 32, 128);
table.Rows.Add(450, 4, 108, 112, 118, 68, 72, 47, 128);
table.Rows.Add(451, 4, 40, 50, 90, 30, 55, 65, 128);
table.Rows.Add(452, 4, 70, 90, 110, 60, 75, 95, 128);
table.Rows.Add(453, 2, 48, 61, 40, 61, 40, 50, 128);
table.Rows.Add(454, 2, 83, 106, 65, 86, 65, 85, 128);
table.Rows.Add(455, 4, 74, 100, 72, 90, 72, 46, 128);
table.Rows.Add(456, 0, 49, 49, 56, 49, 61, 66, 128);
table.Rows.Add(457, 0, 69, 69, 76, 69, 86, 91, 128);
table.Rows.Add(458, 4, 45, 20, 50, 60, 120, 50, 128);
table.Rows.Add(459, 4, 60, 62, 50, 62, 60, 40, 128);
table.Rows.Add(460, 4, 90, 92, 75, 92, 85, 60, 128);
table.Rows.Add(461, 3, 70, 120, 65, 45, 85, 125, 128);
table.Rows.Add(462, 2, 70, 70, 115, 130, 90, 60, 258);
table.Rows.Add(463, 2, 110, 85, 95, 80, 95, 50, 128);
table.Rows.Add(464, 4, 115, 140, 130, 55, 55, 40, 128);
table.Rows.Add(465, 2, 100, 100, 125, 110, 50, 50, 128);
table.Rows.Add(466, 2, 75, 123, 67, 95, 85, 95, 64);
table.Rows.Add(467, 2, 75, 95, 67, 125, 95, 83, 64);
table.Rows.Add(468, 1, 85, 50, 95, 120, 115, 80, 32);
table.Rows.Add(469, 2, 86, 76, 86, 116, 56, 95, 128);
table.Rows.Add(470, 2, 65, 110, 130, 60, 65, 95, 32);
table.Rows.Add(471, 2, 65, 60, 110, 130, 95, 65, 32);
table.Rows.Add(472, 3, 75, 95, 125, 45, 75, 95, 128);
table.Rows.Add(473, 4, 110, 130, 80, 70, 60, 80, 128);
table.Rows.Add(474, 2, 85, 80, 70, 135, 75, 90, 258);
table.Rows.Add(475, 4, 68, 125, 65, 65, 115, 80, 256);
table.Rows.Add(476, 2, 60, 55, 145, 75, 150, 40, 128);
table.Rows.Add(477, 1, 45, 100, 135, 65, 135, 45, 128);
table.Rows.Add(478, 2, 70, 80, 70, 80, 70, 110, 257);
table.Rows.Add(479, 2, 50, 65, 107, 105, 107, 86, 258);
table.Rows.Add(480, 4, 75, 75, 130, 75, 130, 95, 258);
table.Rows.Add(481, 4, 80, 105, 105, 105, 105, 80, 258);
table.Rows.Add(482, 4, 75, 125, 70, 125, 70, 115, 258);
table.Rows.Add(483, 4, 100, 120, 120, 150, 100, 90, 258);
table.Rows.Add(484, 4, 90, 120, 100, 150, 120, 100, 258);
table.Rows.Add(485, 4, 91, 90, 106, 130, 106, 77, 128);
table.Rows.Add(486, 4, 110, 160, 110, 80, 110, 100, 258);
table.Rows.Add(487, 4, 150, 100, 120, 100, 120, 90, 258);
table.Rows.Add(488, 4, 120, 70, 120, 75, 130, 85, 257);
table.Rows.Add(489, 4, 80, 80, 80, 80, 80, 80, 258);
table.Rows.Add(490, 4, 100, 100, 100, 100, 100, 100, 258);
table.Rows.Add(491, 4, 70, 90, 90, 135, 90, 125, 258);
table.Rows.Add(492, 3, 100, 100, 100, 100, 100, 100, 258);
table.Rows.Add(493, 4, 120, 120, 120, 120, 120, 120, 258);
table.Rows.Add(494, 4, 100, 100, 100, 100, 100, 100, 258);
table.Rows.Add(495, 3, 45, 45, 55, 45, 55, 63, 32);
table.Rows.Add(496, 3, 60, 60, 75, 60, 75, 83, 32);
table.Rows.Add(497, 3, 75, 75, 95, 75, 95, 113, 32);
table.Rows.Add(498, 3, 65, 63, 45, 45, 45, 45, 32);
table.Rows.Add(499, 3, 90, 93, 55, 70, 55, 55, 32);
table.Rows.Add(500, 3, 110, 123, 65, 100, 65, 65, 32);
table.Rows.Add(501, 3, 55, 55, 45, 63, 45, 45, 32);
table.Rows.Add(502, 3, 75, 75, 60, 83, 60, 60, 32);
table.Rows.Add(503, 3, 95, 100, 85, 108, 70, 70, 32);
table.Rows.Add(504, 2, 45, 55, 39, 35, 39, 42, 128);
table.Rows.Add(505, 2, 60, 85, 69, 60, 69, 77, 128);
table.Rows.Add(506, 3, 45, 60, 45, 25, 45, 55, 128);
table.Rows.Add(507, 3, 65, 80, 65, 35, 65, 60, 128);
table.Rows.Add(508, 3, 85, 110, 90, 45, 90, 80, 128);
table.Rows.Add(509, 2, 41, 50, 37, 50, 37, 66, 128);
table.Rows.Add(510, 2, 64, 88, 50, 88, 50, 106, 128);
table.Rows.Add(511, 2, 50, 53, 48, 53, 48, 64, 32);
table.Rows.Add(512, 2, 75, 98, 63, 98, 63, 101, 32);
table.Rows.Add(513, 2, 50, 53, 48, 53, 48, 64, 32);
table.Rows.Add(514, 2, 75, 98, 63, 98, 63, 101, 32);
table.Rows.Add(515, 2, 50, 53, 48, 53, 48, 64, 32);
table.Rows.Add(516, 2, 75, 98, 63, 98, 63, 101, 32);
table.Rows.Add(517, 1, 76, 25, 45, 67, 55, 24, 128);
table.Rows.Add(518, 1, 116, 55, 85, 107, 95, 29, 128);
table.Rows.Add(519, 3, 50, 55, 50, 36, 30, 43, 128);
table.Rows.Add(520, 3, 62, 77, 62, 50, 42, 65, 128);
table.Rows.Add(521, 3, 80, 115, 80, 65, 55, 93, 128);
table.Rows.Add(522, 2, 45, 60, 32, 50, 32, 76, 128);
table.Rows.Add(523, 2, 75, 100, 63, 80, 63, 116, 128);
table.Rows.Add(524, 3, 55, 75, 85, 25, 25, 15, 128);
table.Rows.Add(525, 3, 70, 105, 105, 50, 40, 20, 128);
table.Rows.Add(526, 3, 85, 135, 130, 60, 80, 25, 128);
table.Rows.Add(527, 2, 55, 45, 43, 55, 43, 72, 128);
table.Rows.Add(528, 2, 67, 57, 55, 77, 55, 114, 128);
table.Rows.Add(529, 2, 60, 85, 40, 30, 45, 68, 128);
table.Rows.Add(530, 2, 110, 135, 60, 50, 65, 88, 128);
table.Rows.Add(531, 1, 103, 60, 86, 60, 86, 50, 128);
table.Rows.Add(532, 3, 75, 80, 55, 25, 35, 35, 64);
table.Rows.Add(533, 3, 85, 105, 85, 40, 50, 40, 64);
table.Rows.Add(534, 3, 105, 140, 95, 55, 65, 45, 64);
table.Rows.Add(535, 3, 50, 50, 40, 50, 40, 64, 128);
table.Rows.Add(536, 3, 75, 65, 55, 65, 55, 69, 128);
table.Rows.Add(537, 3, 105, 95, 75, 85, 75, 74, 128);
table.Rows.Add(538, 2, 120, 100, 85, 30, 85, 45, 256);
table.Rows.Add(539, 2, 75, 125, 75, 30, 75, 85, 256);
table.Rows.Add(540, 3, 45, 53, 70, 40, 60, 42, 128);
table.Rows.Add(541, 3, 55, 63, 90, 50, 80, 42, 128);
table.Rows.Add(542, 3, 75, 103, 80, 70, 80, 92, 128);
table.Rows.Add(543, 3, 30, 45, 59, 30, 39, 57, 128);
table.Rows.Add(544, 3, 40, 55, 99, 40, 79, 47, 128);
table.Rows.Add(545, 3, 60, 100, 89, 55, 69, 112, 128);
table.Rows.Add(546, 2, 40, 27, 60, 37, 50, 66, 128);
table.Rows.Add(547, 2, 60, 67, 85, 77, 75, 116, 128);
table.Rows.Add(548, 2, 45, 35, 50, 70, 50, 30, 257);
table.Rows.Add(549, 2, 70, 60, 75, 110, 75, 90, 257);
table.Rows.Add(550, 2, 70, 92, 65, 80, 55, 98, 128);
table.Rows.Add(551, 3, 50, 72, 35, 35, 35, 65, 128);
table.Rows.Add(552, 3, 60, 82, 45, 45, 45, 74, 128);
table.Rows.Add(553, 3, 95, 117, 80, 65, 70, 92, 128);
table.Rows.Add(554, 3, 70, 90, 45, 15, 45, 50, 128);
table.Rows.Add(555, 3, 105, 140, 55, 30, 55, 95, 128);
table.Rows.Add(556, 2, 75, 86, 67, 106, 67, 60, 128);
table.Rows.Add(557, 2, 50, 65, 85, 35, 35, 55, 128);
table.Rows.Add(558, 2, 70, 95, 125, 65, 75, 45, 128);
table.Rows.Add(559, 2, 50, 75, 70, 35, 70, 48, 128);
table.Rows.Add(560, 2, 65, 90, 115, 45, 115, 58, 128);
table.Rows.Add(561, 2, 72, 58, 80, 103, 80, 97, 128);
table.Rows.Add(562, 2, 38, 30, 85, 55, 65, 30, 128);
table.Rows.Add(563, 2, 58, 50, 145, 95, 105, 30, 128);
table.Rows.Add(564, 2, 54, 78, 103, 53, 45, 22, 32);
table.Rows.Add(565, 2, 74, 108, 133, 83, 65, 32, 32);
table.Rows.Add(566, 2, 55, 112, 45, 74, 45, 70, 32);
table.Rows.Add(567, 2, 75, 140, 65, 112, 65, 110, 32);
table.Rows.Add(568, 2, 50, 50, 62, 40, 62, 65, 128);
table.Rows.Add(569, 2, 80, 95, 82, 60, 82, 75, 128);
table.Rows.Add(570, 3, 40, 65, 40, 80, 40, 65, 32);
table.Rows.Add(571, 3, 60, 105, 60, 120, 60, 105, 32);
table.Rows.Add(572, 1, 55, 50, 40, 40, 40, 75, 192);
table.Rows.Add(573, 1, 75, 95, 60, 65, 60, 115, 192);
table.Rows.Add(574, 3, 45, 30, 50, 55, 65, 45, 192);
table.Rows.Add(575, 3, 60, 45, 70, 75, 85, 55, 192);
table.Rows.Add(576, 3, 70, 55, 95, 95, 110, 65, 192);
table.Rows.Add(577, 3, 45, 30, 40, 105, 50, 20, 128);
table.Rows.Add(578, 3, 65, 40, 50, 125, 60, 30, 128);
table.Rows.Add(579, 3, 110, 65, 75, 125, 85, 30, 128);
table.Rows.Add(580, 2, 62, 44, 50, 44, 50, 55, 128);
table.Rows.Add(581, 2, 75, 87, 63, 87, 63, 98, 128);
table.Rows.Add(582, 4, 36, 50, 50, 65, 60, 44, 128);
table.Rows.Add(583, 4, 51, 65, 65, 80, 75, 59, 128);
table.Rows.Add(584, 4, 71, 95, 85, 110, 95, 79, 128);
table.Rows.Add(585, 2, 60, 60, 50, 40, 50, 75, 128);
table.Rows.Add(586, 2, 80, 100, 70, 60, 70, 95, 128);
table.Rows.Add(587, 2, 55, 75, 60, 75, 60, 103, 128);
table.Rows.Add(588, 2, 50, 75, 45, 40, 45, 60, 128);
table.Rows.Add(589, 2, 70, 135, 105, 60, 105, 20, 128);
table.Rows.Add(590, 2, 69, 55, 45, 55, 55, 15, 128);
table.Rows.Add(591, 2, 114, 85, 70, 85, 80, 30, 128);
table.Rows.Add(592, 2, 55, 40, 50, 65, 85, 40, 128);
table.Rows.Add(593, 2, 100, 60, 70, 85, 105, 60, 128);
table.Rows.Add(594, 1, 165, 75, 80, 40, 45, 65, 128);
table.Rows.Add(595, 2, 50, 47, 50, 57, 50, 65, 128);
table.Rows.Add(596, 2, 70, 77, 60, 97, 60, 108, 128);
table.Rows.Add(597, 2, 44, 50, 91, 24, 86, 10, 128);
table.Rows.Add(598, 2, 74, 94, 131, 54, 116, 20, 128);
table.Rows.Add(599, 3, 40, 55, 70, 45, 60, 30, 258);
table.Rows.Add(600, 3, 60, 80, 95, 70, 85, 50, 258);
table.Rows.Add(601, 3, 60, 100, 115, 70, 85, 90, 258);
table.Rows.Add(602, 4, 35, 55, 40, 45, 40, 60, 128);
table.Rows.Add(603, 4, 65, 85, 70, 75, 70, 40, 128);
table.Rows.Add(604, 4, 85, 115, 80, 105, 80, 50, 128);
table.Rows.Add(605, 2, 55, 55, 55, 85, 55, 30, 128);
table.Rows.Add(606, 2, 75, 75, 75, 125, 95, 40, 128);
table.Rows.Add(607, 3, 50, 30, 55, 65, 55, 20, 128);
table.Rows.Add(608, 3, 60, 40, 60, 95, 60, 55, 128);
table.Rows.Add(609, 3, 60, 55, 90, 145, 90, 80, 128);
table.Rows.Add(610, 4, 46, 87, 60, 30, 40, 57, 128);
table.Rows.Add(611, 4, 66, 117, 70, 40, 50, 67, 128);
table.Rows.Add(612, 4, 76, 147, 90, 60, 70, 97, 128);
table.Rows.Add(613, 2, 55, 70, 40, 60, 40, 40, 128);
table.Rows.Add(614, 2, 95, 110, 80, 70, 80, 50, 128);
table.Rows.Add(615, 2, 70, 50, 30, 95, 135, 105, 258);
table.Rows.Add(616, 2, 50, 40, 85, 40, 65, 25, 128);
table.Rows.Add(617, 2, 80, 70, 40, 100, 60, 145, 128);
table.Rows.Add(618, 2, 109, 66, 84, 81, 99, 32, 128);
table.Rows.Add(619, 3, 45, 85, 50, 55, 50, 65, 128);
table.Rows.Add(620, 3, 65, 125, 60, 95, 60, 105, 128);
table.Rows.Add(621, 2, 77, 120, 90, 60, 90, 48, 128);
table.Rows.Add(622, 2, 59, 74, 50, 35, 50, 35, 258);
table.Rows.Add(623, 2, 89, 124, 80, 55, 80, 55, 258);
table.Rows.Add(624, 2, 45, 85, 70, 40, 40, 60, 128);
table.Rows.Add(625, 2, 65, 125, 100, 60, 70, 70, 128);
table.Rows.Add(626, 2, 95, 110, 95, 40, 95, 55, 128);
table.Rows.Add(627, 4, 70, 83, 50, 37, 50, 60, 256);
table.Rows.Add(628, 4, 100, 123, 75, 57, 75, 80, 256);
table.Rows.Add(629, 4, 70, 55, 75, 45, 65, 60, 257);
table.Rows.Add(630, 4, 110, 65, 105, 55, 95, 80, 257);
table.Rows.Add(631, 2, 85, 97, 66, 105, 66, 65, 128);
table.Rows.Add(632, 2, 58, 109, 112, 48, 48, 109, 128);
table.Rows.Add(633, 4, 52, 65, 50, 45, 50, 38, 128);
table.Rows.Add(634, 4, 72, 85, 70, 65, 70, 58, 128);
table.Rows.Add(635, 4, 92, 105, 90, 125, 90, 98, 128);
table.Rows.Add(636, 4, 55, 85, 55, 50, 55, 60, 128);
table.Rows.Add(637, 4, 85, 60, 65, 135, 105, 100, 128);
table.Rows.Add(638, 4, 91, 90, 129, 90, 72, 108, 258);
table.Rows.Add(639, 4, 91, 129, 90, 72, 90, 108, 258);
table.Rows.Add(640, 4, 91, 90, 72, 90, 129, 108, 258);
table.Rows.Add(641, 4, 79, 115, 70, 125, 80, 111, 256);
table.Rows.Add(642, 4, 79, 115, 70, 125, 80, 111, 256);
table.Rows.Add(643, 4, 100, 120, 100, 150, 120, 90, 258);
table.Rows.Add(644, 4, 100, 150, 120, 120, 100, 90, 258);
table.Rows.Add(645, 4, 89, 125, 90, 115, 80, 101, 256);
table.Rows.Add(646, 4, 125, 170, 100, 120, 90, 95, 258);
table.Rows.Add(647, 4, 91, 72, 90, 129, 90, 108, 258);
table.Rows.Add(648, 4, 100, 77, 77, 128, 128, 90, 258);
table.Rows.Add(649, 4, 71, 120, 95, 120, 95, 99, 258);
table.Rows.Add(650, 3, 56, 61, 65, 48, 45, 33, 32);
table.Rows.Add(651, 3, 61, 78, 95, 56, 58, 57, 32);
table.Rows.Add(652, 3, 88, 107, 122, 74, 75, 64, 32);
table.Rows.Add(653, 3, 40, 45, 40, 62, 60, 60, 32);
table.Rows.Add(654, 3, 59, 59, 58, 90, 70, 73, 32);
table.Rows.Add(655, 3, 75, 69, 72, 114, 100, 104, 32);
table.Rows.Add(656, 3, 41, 56, 40, 62, 44, 71, 32);
table.Rows.Add(657, 3, 54, 63, 52, 83, 56, 97, 32);
table.Rows.Add(658, 3, 72, 95, 67, 103, 71, 122, 32);
table.Rows.Add(659, 2, 38, 36, 38, 32, 36, 57, 128);
table.Rows.Add(660, 2, 85, 56, 77, 50, 77, 78, 128);
table.Rows.Add(661, 3, 45, 50, 43, 40, 38, 62, 128);
table.Rows.Add(662, 3, 62, 73, 55, 56, 52, 84, 128);
table.Rows.Add(663, 3, 78, 81, 71, 74, 69, 126, 128);
table.Rows.Add(664, 2, 38, 35, 40, 27, 25, 35, 128);
table.Rows.Add(665, 2, 45, 22, 60, 27, 30, 29, 128);
table.Rows.Add(666, 2, 80, 52, 50, 90, 50, 89, 128);
table.Rows.Add(667, 3, 62, 50, 58, 73, 54, 72, 192);
table.Rows.Add(668, 3, 86, 68, 72, 109, 66, 106, 192);
table.Rows.Add(669, 2, 44, 38, 39, 61, 79, 42, 257);
table.Rows.Add(670, 2, 54, 45, 47, 75, 98, 52, 257);
table.Rows.Add(671, 2, 78, 65, 68, 112, 154, 75, 257);
table.Rows.Add(672, 2, 66, 65, 48, 62, 57, 52, 128);
table.Rows.Add(673, 2, 123, 100, 62, 97, 81, 68, 128);
table.Rows.Add(674, 2, 67, 82, 62, 46, 48, 43, 128);
table.Rows.Add(675, 2, 95, 124, 78, 69, 71, 58, 128);
table.Rows.Add(676, 2, 75, 80, 60, 65, 90, 102, 128);
table.Rows.Add(677, 2, 62, 48, 54, 63, 60, 68, 128);
table.Rows.Add(678, 2, 74, 48, 76, 83, 81, 104, 128);
table.Rows.Add(679, 2, 45, 80, 100, 35, 37, 28, 128);
table.Rows.Add(680, 2, 59, 110, 150, 45, 49, 35, 128);
table.Rows.Add(681, 2, 60, 150, 50, 150, 50, 60, 128);
table.Rows.Add(682, 2, 78, 52, 60, 63, 65, 23, 128);
table.Rows.Add(683, 2, 101, 72, 72, 99, 89, 29, 128);
table.Rows.Add(684, 2, 62, 48, 66, 59, 57, 49, 128);
table.Rows.Add(685, 2, 82, 80, 86, 85, 75, 72, 128);
table.Rows.Add(686, 2, 53, 54, 37, 46, 45, 45, 128);
table.Rows.Add(687, 2, 86, 92, 88, 68, 75, 73, 128);
table.Rows.Add(688, 2, 42, 52, 67, 39, 56, 50, 128);
table.Rows.Add(689, 2, 72, 105, 115, 54, 86, 68, 128);
table.Rows.Add(690, 2, 50, 60, 60, 60, 60, 30, 128);
table.Rows.Add(691, 2, 65, 75, 90, 97, 123, 44, 128);
table.Rows.Add(692, 4, 50, 53, 62, 58, 63, 44, 128);
table.Rows.Add(693, 4, 71, 73, 88, 120, 89, 59, 128);
table.Rows.Add(694, 2, 44, 38, 33, 61, 43, 70, 128);
table.Rows.Add(695, 2, 62, 55, 52, 109, 94, 109, 128);
table.Rows.Add(696, 2, 58, 89, 77, 45, 45, 48, 32);
table.Rows.Add(697, 2, 82, 121, 119, 69, 59, 71, 32);
table.Rows.Add(698, 2, 77, 59, 50, 67, 63, 46, 32);
table.Rows.Add(699, 2, 123, 77, 72, 99, 92, 58, 32);
table.Rows.Add(700, 2, 95, 65, 65, 110, 130, 60, 32);
table.Rows.Add(701, 2, 78, 92, 75, 74, 63, 118, 128);
table.Rows.Add(702, 2, 67, 58, 57, 81, 67, 101, 128);
table.Rows.Add(703, 4, 50, 50, 150, 50, 150, 50, 258);
table.Rows.Add(704, 4, 45, 50, 35, 55, 75, 40, 128);
table.Rows.Add(705, 4, 68, 75, 53, 83, 113, 60, 128);
table.Rows.Add(706, 4, 90, 100, 70, 110, 150, 80, 128);
table.Rows.Add(707, 1, 57, 80, 91, 80, 87, 75, 128);
table.Rows.Add(708, 2, 43, 70, 48, 50, 60, 38, 128);
table.Rows.Add(709, 2, 85, 110, 76, 65, 82, 56, 128);
table.Rows.Add(710, 2, 49, 66, 70, 44, 55, 51, 128);
table.Rows.Add(711, 2, 65, 90, 122, 58, 75, 84, 128);
table.Rows.Add(712, 2, 55, 69, 85, 32, 35, 28, 128);
table.Rows.Add(713, 2, 95, 117, 184, 44, 46, 28, 128);
table.Rows.Add(714, 2, 40, 30, 35, 45, 40, 55, 128);
table.Rows.Add(715, 2, 85, 70, 80, 97, 80, 123, 128);
table.Rows.Add(716, 4, 126, 131, 95, 131, 98, 99, 258);
table.Rows.Add(717, 4, 126, 131, 95, 131, 98, 99, 258);
table.Rows.Add(718, 4, 108, 100, 121, 81, 95, 95, 258);
table.Rows.Add(719, 4, 50, 100, 150, 100, 150, 50, 258); // Diancie
table.Rows.Add(720, 4, 80, 110, 60, 150, 130, 70, 258); // Hoopa
table.Rows.Add(721, 4, 80, 110, 120, 130, 90, 70, 258); // Volcanion
table.Rows.Add(722, 4, 100, 100, 100, 100, 100, 100, 258);
return table;
}
public static DataTable Friendship()
{
DataTable table = new DataTable();
table.Columns.Add("Species", typeof(int));
table.Columns.Add("Friendship", typeof(int));
table.Rows.Add(0, 0);
table.Rows.Add(1, 70);
table.Rows.Add(2, 70);
table.Rows.Add(3, 70);
table.Rows.Add(4, 70);
table.Rows.Add(5, 70);
table.Rows.Add(6, 70);
table.Rows.Add(7, 70);
table.Rows.Add(8, 70);
table.Rows.Add(9, 70);
table.Rows.Add(10, 70);
table.Rows.Add(11, 70);
table.Rows.Add(12, 70);
table.Rows.Add(13, 70);
table.Rows.Add(14, 70);
table.Rows.Add(15, 70);
table.Rows.Add(16, 70);
table.Rows.Add(17, 70);
table.Rows.Add(18, 70);
table.Rows.Add(19, 70);
table.Rows.Add(20, 70);
table.Rows.Add(21, 70);
table.Rows.Add(22, 70);
table.Rows.Add(23, 70);
table.Rows.Add(24, 70);
table.Rows.Add(25, 70);
table.Rows.Add(26, 70);
table.Rows.Add(27, 70);
table.Rows.Add(28, 70);
table.Rows.Add(29, 70);
table.Rows.Add(30, 70);
table.Rows.Add(31, 70);
table.Rows.Add(32, 70);
table.Rows.Add(33, 70);
table.Rows.Add(34, 70);
table.Rows.Add(35, 140);
table.Rows.Add(36, 140);
table.Rows.Add(37, 70);
table.Rows.Add(38, 70);
table.Rows.Add(39, 70);
table.Rows.Add(40, 70);
table.Rows.Add(41, 70);
table.Rows.Add(42, 70);
table.Rows.Add(43, 70);
table.Rows.Add(44, 70);
table.Rows.Add(45, 70);
table.Rows.Add(46, 70);
table.Rows.Add(47, 70);
table.Rows.Add(48, 70);
table.Rows.Add(49, 70);
table.Rows.Add(50, 70);
table.Rows.Add(51, 70);
table.Rows.Add(52, 70);
table.Rows.Add(53, 70);
table.Rows.Add(54, 70);
table.Rows.Add(55, 70);
table.Rows.Add(56, 70);
table.Rows.Add(57, 70);
table.Rows.Add(58, 70);
table.Rows.Add(59, 70);
table.Rows.Add(60, 70);
table.Rows.Add(61, 70);
table.Rows.Add(62, 70);
table.Rows.Add(63, 70);
table.Rows.Add(64, 70);
table.Rows.Add(65, 70);
table.Rows.Add(66, 70);
table.Rows.Add(67, 70);
table.Rows.Add(68, 70);
table.Rows.Add(69, 70);
table.Rows.Add(70, 70);
table.Rows.Add(71, 70);
table.Rows.Add(72, 70);
table.Rows.Add(73, 70);
table.Rows.Add(74, 70);
table.Rows.Add(75, 70);
table.Rows.Add(76, 70);
table.Rows.Add(77, 70);
table.Rows.Add(78, 70);
table.Rows.Add(79, 70);
table.Rows.Add(80, 70);
table.Rows.Add(81, 70);
table.Rows.Add(82, 70);
table.Rows.Add(83, 70);
table.Rows.Add(84, 70);
table.Rows.Add(85, 70);
table.Rows.Add(86, 70);
table.Rows.Add(87, 70);
table.Rows.Add(88, 70);
table.Rows.Add(89, 70);
table.Rows.Add(90, 70);
table.Rows.Add(91, 70);
table.Rows.Add(92, 70);
table.Rows.Add(93, 70);
table.Rows.Add(94, 70);
table.Rows.Add(95, 70);
table.Rows.Add(96, 70);
table.Rows.Add(97, 70);
table.Rows.Add(98, 70);
table.Rows.Add(99, 70);
table.Rows.Add(100, 70);
table.Rows.Add(101, 70);
table.Rows.Add(102, 70);
table.Rows.Add(103, 70);
table.Rows.Add(104, 70);
table.Rows.Add(105, 70);
table.Rows.Add(106, 70);
table.Rows.Add(107, 70);
table.Rows.Add(108, 70);
table.Rows.Add(109, 70);
table.Rows.Add(110, 70);
table.Rows.Add(111, 70);
table.Rows.Add(112, 70);
table.Rows.Add(113, 140);
table.Rows.Add(114, 70);
table.Rows.Add(115, 70);
table.Rows.Add(116, 70);
table.Rows.Add(117, 70);
table.Rows.Add(118, 70);
table.Rows.Add(119, 70);
table.Rows.Add(120, 70);
table.Rows.Add(121, 70);
table.Rows.Add(122, 70);
table.Rows.Add(123, 70);
table.Rows.Add(124, 70);
table.Rows.Add(125, 70);
table.Rows.Add(126, 70);
table.Rows.Add(127, 70);
table.Rows.Add(128, 70);
table.Rows.Add(129, 70);
table.Rows.Add(130, 70);
table.Rows.Add(131, 70);
table.Rows.Add(132, 70);
table.Rows.Add(133, 70);
table.Rows.Add(134, 70);
table.Rows.Add(135, 70);
table.Rows.Add(136, 70);
table.Rows.Add(137, 70);
table.Rows.Add(138, 70);
table.Rows.Add(139, 70);
table.Rows.Add(140, 70);
table.Rows.Add(141, 70);
table.Rows.Add(142, 70);
table.Rows.Add(143, 70);
table.Rows.Add(144, 35);
table.Rows.Add(145, 35);
table.Rows.Add(146, 35);
table.Rows.Add(147, 35);
table.Rows.Add(148, 35);
table.Rows.Add(149, 35);
table.Rows.Add(150, 0);
table.Rows.Add(151, 100);
table.Rows.Add(152, 70);
table.Rows.Add(153, 70);
table.Rows.Add(154, 70);
table.Rows.Add(155, 70);
table.Rows.Add(156, 70);
table.Rows.Add(157, 70);
table.Rows.Add(158, 70);
table.Rows.Add(159, 70);
table.Rows.Add(160, 70);
table.Rows.Add(161, 70);
table.Rows.Add(162, 70);
table.Rows.Add(163, 70);
table.Rows.Add(164, 70);
table.Rows.Add(165, 70);
table.Rows.Add(166, 70);
table.Rows.Add(167, 70);
table.Rows.Add(168, 70);
table.Rows.Add(169, 70);
table.Rows.Add(170, 70);
table.Rows.Add(171, 70);
table.Rows.Add(172, 70);
table.Rows.Add(173, 140);
table.Rows.Add(174, 70);
table.Rows.Add(175, 70);
table.Rows.Add(176, 70);
table.Rows.Add(177, 70);
table.Rows.Add(178, 70);
table.Rows.Add(179, 70);
table.Rows.Add(180, 70);
table.Rows.Add(181, 70);
table.Rows.Add(182, 70);
table.Rows.Add(183, 70);
table.Rows.Add(184, 70);
table.Rows.Add(185, 70);
table.Rows.Add(186, 70);
table.Rows.Add(187, 70);
table.Rows.Add(188, 70);
table.Rows.Add(189, 70);
table.Rows.Add(190, 70);
table.Rows.Add(191, 70);
table.Rows.Add(192, 70);
table.Rows.Add(193, 70);
table.Rows.Add(194, 70);
table.Rows.Add(195, 70);
table.Rows.Add(196, 70);
table.Rows.Add(197, 35);
table.Rows.Add(198, 35);
table.Rows.Add(199, 70);
table.Rows.Add(200, 35);
table.Rows.Add(201, 70);
table.Rows.Add(202, 70);
table.Rows.Add(203, 70);
table.Rows.Add(204, 70);
table.Rows.Add(205, 70);
table.Rows.Add(206, 70);
table.Rows.Add(207, 70);
table.Rows.Add(208, 70);
table.Rows.Add(209, 70);
table.Rows.Add(210, 70);
table.Rows.Add(211, 70);
table.Rows.Add(212, 70);
table.Rows.Add(213, 70);
table.Rows.Add(214, 70);
table.Rows.Add(215, 35);
table.Rows.Add(216, 70);
table.Rows.Add(217, 70);
table.Rows.Add(218, 70);
table.Rows.Add(219, 70);
table.Rows.Add(220, 70);
table.Rows.Add(221, 70);
table.Rows.Add(222, 70);
table.Rows.Add(223, 70);
table.Rows.Add(224, 70);
table.Rows.Add(225, 70);
table.Rows.Add(226, 70);
table.Rows.Add(227, 70);
table.Rows.Add(228, 35);
table.Rows.Add(229, 35);
table.Rows.Add(230, 70);
table.Rows.Add(231, 70);
table.Rows.Add(232, 70);
table.Rows.Add(233, 70);
table.Rows.Add(234, 70);
table.Rows.Add(235, 70);
table.Rows.Add(236, 70);
table.Rows.Add(237, 70);
table.Rows.Add(238, 70);
table.Rows.Add(239, 70);
table.Rows.Add(240, 70);
table.Rows.Add(241, 70);
table.Rows.Add(242, 140);
table.Rows.Add(243, 35);
table.Rows.Add(244, 35);
table.Rows.Add(245, 35);
table.Rows.Add(246, 35);
table.Rows.Add(247, 35);
table.Rows.Add(248, 35);
table.Rows.Add(249, 0);
table.Rows.Add(250, 0);
table.Rows.Add(251, 100);
table.Rows.Add(252, 70);
table.Rows.Add(253, 70);
table.Rows.Add(254, 70);
table.Rows.Add(255, 70);
table.Rows.Add(256, 70);
table.Rows.Add(257, 70);
table.Rows.Add(258, 70);
table.Rows.Add(259, 70);
table.Rows.Add(260, 70);
table.Rows.Add(261, 70);
table.Rows.Add(262, 70);
table.Rows.Add(263, 70);
table.Rows.Add(264, 70);
table.Rows.Add(265, 70);
table.Rows.Add(266, 70);
table.Rows.Add(267, 70);
table.Rows.Add(268, 70);
table.Rows.Add(269, 70);
table.Rows.Add(270, 70);
table.Rows.Add(271, 70);
table.Rows.Add(272, 70);
table.Rows.Add(273, 70);
table.Rows.Add(274, 70);
table.Rows.Add(275, 70);
table.Rows.Add(276, 70);
table.Rows.Add(277, 70);
table.Rows.Add(278, 70);
table.Rows.Add(279, 70);
table.Rows.Add(280, 35);
table.Rows.Add(281, 35);
table.Rows.Add(282, 35);
table.Rows.Add(283, 70);
table.Rows.Add(284, 70);
table.Rows.Add(285, 70);
table.Rows.Add(286, 70);
table.Rows.Add(287, 70);
table.Rows.Add(288, 70);
table.Rows.Add(289, 70);
table.Rows.Add(290, 70);
table.Rows.Add(291, 70);
table.Rows.Add(292, 70);
table.Rows.Add(293, 70);
table.Rows.Add(294, 70);
table.Rows.Add(295, 70);
table.Rows.Add(296, 70);
table.Rows.Add(297, 70);
table.Rows.Add(298, 70);
table.Rows.Add(299, 70);
table.Rows.Add(300, 70);
table.Rows.Add(301, 70);
table.Rows.Add(302, 35);
table.Rows.Add(303, 70);
table.Rows.Add(304, 35);
table.Rows.Add(305, 35);
table.Rows.Add(306, 35);
table.Rows.Add(307, 70);
table.Rows.Add(308, 70);
table.Rows.Add(309, 70);
table.Rows.Add(310, 70);
table.Rows.Add(311, 70);
table.Rows.Add(312, 70);
table.Rows.Add(313, 70);
table.Rows.Add(314, 70);
table.Rows.Add(315, 70);
table.Rows.Add(316, 70);
table.Rows.Add(317, 70);
table.Rows.Add(318, 35);
table.Rows.Add(319, 35);
table.Rows.Add(320, 70);
table.Rows.Add(321, 70);
table.Rows.Add(322, 70);
table.Rows.Add(323, 70);
table.Rows.Add(324, 70);
table.Rows.Add(325, 70);
table.Rows.Add(326, 70);
table.Rows.Add(327, 70);
table.Rows.Add(328, 70);
table.Rows.Add(329, 70);
table.Rows.Add(330, 70);
table.Rows.Add(331, 35);
table.Rows.Add(332, 35);
table.Rows.Add(333, 70);
table.Rows.Add(334, 70);
table.Rows.Add(335, 70);
table.Rows.Add(336, 70);
table.Rows.Add(337, 70);
table.Rows.Add(338, 70);
table.Rows.Add(339, 70);
table.Rows.Add(340, 70);
table.Rows.Add(341, 70);
table.Rows.Add(342, 70);
table.Rows.Add(343, 70);
table.Rows.Add(344, 70);
table.Rows.Add(345, 70);
table.Rows.Add(346, 70);
table.Rows.Add(347, 70);
table.Rows.Add(348, 70);
table.Rows.Add(349, 70);
table.Rows.Add(350, 70);
table.Rows.Add(351, 70);
table.Rows.Add(352, 70);
table.Rows.Add(353, 35);
table.Rows.Add(354, 35);
table.Rows.Add(355, 35);
table.Rows.Add(356, 35);
table.Rows.Add(357, 70);
table.Rows.Add(358, 70);
table.Rows.Add(359, 35);
table.Rows.Add(360, 70);
table.Rows.Add(361, 70);
table.Rows.Add(362, 70);
table.Rows.Add(363, 70);
table.Rows.Add(364, 70);
table.Rows.Add(365, 70);
table.Rows.Add(366, 70);
table.Rows.Add(367, 70);
table.Rows.Add(368, 70);
table.Rows.Add(369, 70);
table.Rows.Add(370, 70);
table.Rows.Add(371, 35);
table.Rows.Add(372, 35);
table.Rows.Add(373, 35);
table.Rows.Add(374, 35);
table.Rows.Add(375, 35);
table.Rows.Add(376, 35);
table.Rows.Add(377, 35);
table.Rows.Add(378, 35);
table.Rows.Add(379, 35);
table.Rows.Add(380, 90);
table.Rows.Add(381, 90);
table.Rows.Add(382, 0);
table.Rows.Add(383, 0);
table.Rows.Add(384, 0);
table.Rows.Add(385, 100);
table.Rows.Add(386, 0);
table.Rows.Add(387, 70);
table.Rows.Add(388, 70);
table.Rows.Add(389, 70);
table.Rows.Add(390, 70);
table.Rows.Add(391, 70);
table.Rows.Add(392, 70);
table.Rows.Add(393, 70);
table.Rows.Add(394, 70);
table.Rows.Add(395, 70);
table.Rows.Add(396, 70);
table.Rows.Add(397, 70);
table.Rows.Add(398, 70);
table.Rows.Add(399, 70);
table.Rows.Add(400, 70);
table.Rows.Add(401, 70);
table.Rows.Add(402, 70);
table.Rows.Add(403, 70);
table.Rows.Add(404, 100);
table.Rows.Add(405, 70);
table.Rows.Add(406, 70);
table.Rows.Add(407, 70);
table.Rows.Add(408, 70);
table.Rows.Add(409, 70);
table.Rows.Add(410, 70);
table.Rows.Add(411, 70);
table.Rows.Add(412, 70);
table.Rows.Add(413, 70);
table.Rows.Add(414, 70);
table.Rows.Add(415, 70);
table.Rows.Add(416, 70);
table.Rows.Add(417, 100);
table.Rows.Add(418, 70);
table.Rows.Add(419, 70);
table.Rows.Add(420, 70);
table.Rows.Add(421, 70);
table.Rows.Add(422, 70);
table.Rows.Add(423, 70);
table.Rows.Add(424, 100);
table.Rows.Add(425, 70);
table.Rows.Add(426, 70);
table.Rows.Add(427, 0);
table.Rows.Add(428, 140);
table.Rows.Add(429, 35);
table.Rows.Add(430, 35);
table.Rows.Add(431, 70);
table.Rows.Add(432, 70);
table.Rows.Add(433, 70);
table.Rows.Add(434, 70);
table.Rows.Add(435, 70);
table.Rows.Add(436, 70);
table.Rows.Add(437, 70);
table.Rows.Add(438, 70);
table.Rows.Add(439, 70);
table.Rows.Add(440, 140);
table.Rows.Add(441, 35);
table.Rows.Add(442, 70);
table.Rows.Add(443, 70);
table.Rows.Add(444, 70);
table.Rows.Add(445, 70);
table.Rows.Add(446, 70);
table.Rows.Add(447, 70);
table.Rows.Add(448, 70);
table.Rows.Add(449, 70);
table.Rows.Add(450, 70);
table.Rows.Add(451, 70);
table.Rows.Add(452, 70);
table.Rows.Add(453, 100);
table.Rows.Add(454, 70);
table.Rows.Add(455, 70);
table.Rows.Add(456, 70);
table.Rows.Add(457, 70);
table.Rows.Add(458, 70);
table.Rows.Add(459, 70);
table.Rows.Add(460, 70);
table.Rows.Add(461, 35);
table.Rows.Add(462, 70);
table.Rows.Add(463, 70);
table.Rows.Add(464, 70);
table.Rows.Add(465, 70);
table.Rows.Add(466, 70);
table.Rows.Add(467, 70);
table.Rows.Add(468, 70);
table.Rows.Add(469, 70);
table.Rows.Add(470, 35);
table.Rows.Add(471, 35);
table.Rows.Add(472, 70);
table.Rows.Add(473, 70);
table.Rows.Add(474, 70);
table.Rows.Add(475, 35);
table.Rows.Add(476, 70);
table.Rows.Add(477, 35);
table.Rows.Add(478, 70);
table.Rows.Add(479, 70);
table.Rows.Add(480, 140);
table.Rows.Add(481, 140);
table.Rows.Add(482, 140);
table.Rows.Add(483, 0);
table.Rows.Add(484, 0);
table.Rows.Add(485, 100);
table.Rows.Add(486, 0);
table.Rows.Add(487, 0);
table.Rows.Add(488, 100);
table.Rows.Add(489, 70);
table.Rows.Add(490, 70);
table.Rows.Add(491, 0);
table.Rows.Add(492, 100);
table.Rows.Add(493, 0);
table.Rows.Add(494, 100);
table.Rows.Add(495, 70);
table.Rows.Add(496, 70);
table.Rows.Add(497, 70);
table.Rows.Add(498, 70);
table.Rows.Add(499, 70);
table.Rows.Add(500, 70);
table.Rows.Add(501, 70);
table.Rows.Add(502, 70);
table.Rows.Add(503, 70);
table.Rows.Add(504, 70);
table.Rows.Add(505, 70);
table.Rows.Add(506, 70);
table.Rows.Add(507, 70);
table.Rows.Add(508, 70);
table.Rows.Add(509, 70);
table.Rows.Add(510, 70);
table.Rows.Add(511, 70);
table.Rows.Add(512, 70);
table.Rows.Add(513, 70);
table.Rows.Add(514, 70);
table.Rows.Add(515, 70);
table.Rows.Add(516, 70);
table.Rows.Add(517, 70);
table.Rows.Add(518, 70);
table.Rows.Add(519, 70);
table.Rows.Add(520, 70);
table.Rows.Add(521, 70);
table.Rows.Add(522, 70);
table.Rows.Add(523, 70);
table.Rows.Add(524, 70);
table.Rows.Add(525, 70);
table.Rows.Add(526, 70);
table.Rows.Add(527, 70);
table.Rows.Add(528, 70);
table.Rows.Add(529, 70);
table.Rows.Add(530, 70);
table.Rows.Add(531, 70);
table.Rows.Add(532, 70);
table.Rows.Add(533, 70);
table.Rows.Add(534, 70);
table.Rows.Add(535, 70);
table.Rows.Add(536, 70);
table.Rows.Add(537, 70);
table.Rows.Add(538, 70);
table.Rows.Add(539, 70);
table.Rows.Add(540, 70);
table.Rows.Add(541, 70);
table.Rows.Add(542, 70);
table.Rows.Add(543, 70);
table.Rows.Add(544, 70);
table.Rows.Add(545, 70);
table.Rows.Add(546, 70);
table.Rows.Add(547, 70);
table.Rows.Add(548, 70);
table.Rows.Add(549, 70);
table.Rows.Add(550, 70);
table.Rows.Add(551, 70);
table.Rows.Add(552, 70);
table.Rows.Add(553, 70);
table.Rows.Add(554, 70);
table.Rows.Add(555, 70);
table.Rows.Add(556, 70);
table.Rows.Add(557, 70);
table.Rows.Add(558, 70);
table.Rows.Add(559, 35);
table.Rows.Add(560, 70);
table.Rows.Add(561, 70);
table.Rows.Add(562, 70);
table.Rows.Add(563, 70);
table.Rows.Add(564, 70);
table.Rows.Add(565, 70);
table.Rows.Add(566, 70);
table.Rows.Add(567, 70);
table.Rows.Add(568, 70);
table.Rows.Add(569, 70);
table.Rows.Add(570, 70);
table.Rows.Add(571, 70);
table.Rows.Add(572, 70);
table.Rows.Add(573, 70);
table.Rows.Add(574, 70);
table.Rows.Add(575, 70);
table.Rows.Add(576, 70);
table.Rows.Add(577, 70);
table.Rows.Add(578, 70);
table.Rows.Add(579, 70);
table.Rows.Add(580, 70);
table.Rows.Add(581, 70);
table.Rows.Add(582, 70);
table.Rows.Add(583, 70);
table.Rows.Add(584, 70);
table.Rows.Add(585, 70);
table.Rows.Add(586, 70);
table.Rows.Add(587, 70);
table.Rows.Add(588, 70);
table.Rows.Add(589, 70);
table.Rows.Add(590, 70);
table.Rows.Add(591, 70);
table.Rows.Add(592, 70);
table.Rows.Add(593, 70);
table.Rows.Add(594, 70);
table.Rows.Add(595, 70);
table.Rows.Add(596, 70);
table.Rows.Add(597, 70);
table.Rows.Add(598, 70);
table.Rows.Add(599, 70);
table.Rows.Add(600, 70);
table.Rows.Add(601, 70);
table.Rows.Add(602, 70);
table.Rows.Add(603, 70);
table.Rows.Add(604, 70);
table.Rows.Add(605, 70);
table.Rows.Add(606, 70);
table.Rows.Add(607, 70);
table.Rows.Add(608, 70);
table.Rows.Add(609, 70);
table.Rows.Add(610, 35);
table.Rows.Add(611, 35);
table.Rows.Add(612, 35);
table.Rows.Add(613, 70);
table.Rows.Add(614, 70);
table.Rows.Add(615, 70);
table.Rows.Add(616, 70);
table.Rows.Add(617, 70);
table.Rows.Add(618, 70);
table.Rows.Add(619, 70);
table.Rows.Add(620, 70);
table.Rows.Add(621, 70);
table.Rows.Add(622, 70);
table.Rows.Add(623, 70);
table.Rows.Add(624, 35);
table.Rows.Add(625, 35);
table.Rows.Add(626, 70);
table.Rows.Add(627, 70);
table.Rows.Add(628, 70);
table.Rows.Add(629, 35);
table.Rows.Add(630, 35);
table.Rows.Add(631, 70);
table.Rows.Add(632, 70);
table.Rows.Add(633, 35);
table.Rows.Add(634, 35);
table.Rows.Add(635, 35);
table.Rows.Add(636, 70);
table.Rows.Add(637, 70);
table.Rows.Add(638, 35);
table.Rows.Add(639, 35);
table.Rows.Add(640, 35);
table.Rows.Add(641, 90);
table.Rows.Add(642, 90);
table.Rows.Add(643, 0);
table.Rows.Add(644, 0);
table.Rows.Add(645, 90);
table.Rows.Add(646, 0);
table.Rows.Add(647, 35);
table.Rows.Add(648, 100);
table.Rows.Add(649, 0);
table.Rows.Add(650, 70);
table.Rows.Add(651, 70);
table.Rows.Add(652, 70);
table.Rows.Add(653, 70);
table.Rows.Add(654, 70);
table.Rows.Add(655, 70);
table.Rows.Add(656, 70);
table.Rows.Add(657, 70);
table.Rows.Add(658, 70);
table.Rows.Add(659, 70);
table.Rows.Add(660, 70);
table.Rows.Add(661, 70);
table.Rows.Add(662, 70);
table.Rows.Add(663, 70);
table.Rows.Add(664, 70);
table.Rows.Add(665, 70);
table.Rows.Add(666, 70);
table.Rows.Add(667, 70);
table.Rows.Add(668, 70);
table.Rows.Add(669, 70);
table.Rows.Add(670, 70);
table.Rows.Add(671, 70);
table.Rows.Add(672, 70);
table.Rows.Add(673, 70);
table.Rows.Add(674, 70);
table.Rows.Add(675, 70);
table.Rows.Add(676, 70);
table.Rows.Add(677, 70);
table.Rows.Add(678, 70);
table.Rows.Add(679, 70);
table.Rows.Add(680, 70);
table.Rows.Add(681, 70);
table.Rows.Add(682, 70);
table.Rows.Add(683, 70);
table.Rows.Add(684, 70);
table.Rows.Add(685, 70);
table.Rows.Add(686, 70);
table.Rows.Add(687, 70);
table.Rows.Add(688, 70);
table.Rows.Add(689, 70);
table.Rows.Add(690, 70);
table.Rows.Add(691, 70);
table.Rows.Add(692, 70);
table.Rows.Add(693, 70);
table.Rows.Add(694, 70);
table.Rows.Add(695, 70);
table.Rows.Add(696, 70);
table.Rows.Add(697, 70);
table.Rows.Add(698, 70);
table.Rows.Add(699, 70);
table.Rows.Add(700, 70);
table.Rows.Add(701, 70);
table.Rows.Add(702, 70);
table.Rows.Add(703, 70);
table.Rows.Add(704, 35);
table.Rows.Add(705, 35);
table.Rows.Add(706, 35);
table.Rows.Add(707, 70);
table.Rows.Add(708, 70);
table.Rows.Add(709, 70);
table.Rows.Add(710, 70);
table.Rows.Add(711, 70);
table.Rows.Add(712, 70);
table.Rows.Add(713, 70);
table.Rows.Add(714, 70);
table.Rows.Add(715, 70);
table.Rows.Add(716, 0);
table.Rows.Add(717, 0);
table.Rows.Add(718, 0);
table.Rows.Add(719, 70);
table.Rows.Add(720, 100);
table.Rows.Add(721, 100);
table.Rows.Add(722, 0);
return table;
}
public static DataTable MovePPTable()
{
DataTable table = new DataTable();
table.Columns.Add("Move", typeof(int));
table.Columns.Add("PP", typeof(int));
table.Rows.Add(0, 0);
table.Rows.Add(1, 35);
table.Rows.Add(2, 25);
table.Rows.Add(3, 10);
table.Rows.Add(4, 15);
table.Rows.Add(5, 20);
table.Rows.Add(6, 20);
table.Rows.Add(7, 15);
table.Rows.Add(8, 15);
table.Rows.Add(9, 15);
table.Rows.Add(10, 35);
table.Rows.Add(11, 30);
table.Rows.Add(12, 5);
table.Rows.Add(13, 10);
table.Rows.Add(14, 20);
table.Rows.Add(15, 30);
table.Rows.Add(16, 35);
table.Rows.Add(17, 35);
table.Rows.Add(18, 20);
table.Rows.Add(19, 15);
table.Rows.Add(20, 20);
table.Rows.Add(21, 20);
table.Rows.Add(22, 25);
table.Rows.Add(23, 20);
table.Rows.Add(24, 30);
table.Rows.Add(25, 5);
table.Rows.Add(26, 10);
table.Rows.Add(27, 15);
table.Rows.Add(28, 15);
table.Rows.Add(29, 15);
table.Rows.Add(30, 25);
table.Rows.Add(31, 20);
table.Rows.Add(32, 5);
table.Rows.Add(33, 35);
table.Rows.Add(34, 15);
table.Rows.Add(35, 20);
table.Rows.Add(36, 20);
table.Rows.Add(37, 10);
table.Rows.Add(38, 15);
table.Rows.Add(39, 30);
table.Rows.Add(40, 35);
table.Rows.Add(41, 20);
table.Rows.Add(42, 20);
table.Rows.Add(43, 30);
table.Rows.Add(44, 25);
table.Rows.Add(45, 40);
table.Rows.Add(46, 20);
table.Rows.Add(47, 15);
table.Rows.Add(48, 20);
table.Rows.Add(49, 20);
table.Rows.Add(50, 20);
table.Rows.Add(51, 30);
table.Rows.Add(52, 25);
table.Rows.Add(53, 15);
table.Rows.Add(54, 30);
table.Rows.Add(55, 25);
table.Rows.Add(56, 5);
table.Rows.Add(57, 15);
table.Rows.Add(58, 10);
table.Rows.Add(59, 5);
table.Rows.Add(60, 20);
table.Rows.Add(61, 20);
table.Rows.Add(62, 20);
table.Rows.Add(63, 5);
table.Rows.Add(64, 35);
table.Rows.Add(65, 20);
table.Rows.Add(66, 25);
table.Rows.Add(67, 20);
table.Rows.Add(68, 20);
table.Rows.Add(69, 20);
table.Rows.Add(70, 15);
table.Rows.Add(71, 25);
table.Rows.Add(72, 15);
table.Rows.Add(73, 10);
table.Rows.Add(74, 20);
table.Rows.Add(75, 25);
table.Rows.Add(76, 10);
table.Rows.Add(77, 35);
table.Rows.Add(78, 30);
table.Rows.Add(79, 15);
table.Rows.Add(80, 10);
table.Rows.Add(81, 40);
table.Rows.Add(82, 10);
table.Rows.Add(83, 15);
table.Rows.Add(84, 30);
table.Rows.Add(85, 15);
table.Rows.Add(86, 20);
table.Rows.Add(87, 10);
table.Rows.Add(88, 15);
table.Rows.Add(89, 10);
table.Rows.Add(90, 5);
table.Rows.Add(91, 10);
table.Rows.Add(92, 10);
table.Rows.Add(93, 25);
table.Rows.Add(94, 10);
table.Rows.Add(95, 20);
table.Rows.Add(96, 40);
table.Rows.Add(97, 30);
table.Rows.Add(98, 30);
table.Rows.Add(99, 20);
table.Rows.Add(100, 20);
table.Rows.Add(101, 15);
table.Rows.Add(102, 10);
table.Rows.Add(103, 40);
table.Rows.Add(104, 15);
table.Rows.Add(105, 10);
table.Rows.Add(106, 30);
table.Rows.Add(107, 10);
table.Rows.Add(108, 20);
table.Rows.Add(109, 10);
table.Rows.Add(110, 40);
table.Rows.Add(111, 40);
table.Rows.Add(112, 20);
table.Rows.Add(113, 30);
table.Rows.Add(114, 30);
table.Rows.Add(115, 20);
table.Rows.Add(116, 30);
table.Rows.Add(117, 10);
table.Rows.Add(118, 10);
table.Rows.Add(119, 20);
table.Rows.Add(120, 5);
table.Rows.Add(121, 10);
table.Rows.Add(122, 30);
table.Rows.Add(123, 20);
table.Rows.Add(124, 20);
table.Rows.Add(125, 20);
table.Rows.Add(126, 5);
table.Rows.Add(127, 15);
table.Rows.Add(128, 10);
table.Rows.Add(129, 20);
table.Rows.Add(130, 10);
table.Rows.Add(131, 15);
table.Rows.Add(132, 35);
table.Rows.Add(133, 20);
table.Rows.Add(134, 15);
table.Rows.Add(135, 10);
table.Rows.Add(136, 10);
table.Rows.Add(137, 30);
table.Rows.Add(138, 15);
table.Rows.Add(139, 40);
table.Rows.Add(140, 20);
table.Rows.Add(141, 15);
table.Rows.Add(142, 10);
table.Rows.Add(143, 5);
table.Rows.Add(144, 10);
table.Rows.Add(145, 30);
table.Rows.Add(146, 10);
table.Rows.Add(147, 15);
table.Rows.Add(148, 20);
table.Rows.Add(149, 15);
table.Rows.Add(150, 40);
table.Rows.Add(151, 20);
table.Rows.Add(152, 10);
table.Rows.Add(153, 5);
table.Rows.Add(154, 15);
table.Rows.Add(155, 10);
table.Rows.Add(156, 10);
table.Rows.Add(157, 10);
table.Rows.Add(158, 15);
table.Rows.Add(159, 30);
table.Rows.Add(160, 30);
table.Rows.Add(161, 10);
table.Rows.Add(162, 10);
table.Rows.Add(163, 20);
table.Rows.Add(164, 10);
table.Rows.Add(165, 1);
table.Rows.Add(166, 1);
table.Rows.Add(167, 10);
table.Rows.Add(168, 25);
table.Rows.Add(169, 10);
table.Rows.Add(170, 5);
table.Rows.Add(171, 15);
table.Rows.Add(172, 25);
table.Rows.Add(173, 15);
table.Rows.Add(174, 10);
table.Rows.Add(175, 15);
table.Rows.Add(176, 30);
table.Rows.Add(177, 5);
table.Rows.Add(178, 40);
table.Rows.Add(179, 15);
table.Rows.Add(180, 10);
table.Rows.Add(181, 25);
table.Rows.Add(182, 10);
table.Rows.Add(183, 30);
table.Rows.Add(184, 10);
table.Rows.Add(185, 20);
table.Rows.Add(186, 10);
table.Rows.Add(187, 10);
table.Rows.Add(188, 10);
table.Rows.Add(189, 10);
table.Rows.Add(190, 10);
table.Rows.Add(191, 20);
table.Rows.Add(192, 5);
table.Rows.Add(193, 40);
table.Rows.Add(194, 5);
table.Rows.Add(195, 5);
table.Rows.Add(196, 15);
table.Rows.Add(197, 5);
table.Rows.Add(198, 10);
table.Rows.Add(199, 5);
table.Rows.Add(200, 10);
table.Rows.Add(201, 10);
table.Rows.Add(202, 10);
table.Rows.Add(203, 10);
table.Rows.Add(204, 20);
table.Rows.Add(205, 20);
table.Rows.Add(206, 40);
table.Rows.Add(207, 15);
table.Rows.Add(208, 10);
table.Rows.Add(209, 20);
table.Rows.Add(210, 20);
table.Rows.Add(211, 25);
table.Rows.Add(212, 5);
table.Rows.Add(213, 15);
table.Rows.Add(214, 10);
table.Rows.Add(215, 5);
table.Rows.Add(216, 20);
table.Rows.Add(217, 15);
table.Rows.Add(218, 20);
table.Rows.Add(219, 25);
table.Rows.Add(220, 20);
table.Rows.Add(221, 5);
table.Rows.Add(222, 30);
table.Rows.Add(223, 5);
table.Rows.Add(224, 10);
table.Rows.Add(225, 20);
table.Rows.Add(226, 40);
table.Rows.Add(227, 5);
table.Rows.Add(228, 20);
table.Rows.Add(229, 40);
table.Rows.Add(230, 20);
table.Rows.Add(231, 15);
table.Rows.Add(232, 35);
table.Rows.Add(233, 10);
table.Rows.Add(234, 5);
table.Rows.Add(235, 5);
table.Rows.Add(236, 5);
table.Rows.Add(237, 15);
table.Rows.Add(238, 5);
table.Rows.Add(239, 20);
table.Rows.Add(240, 5);
table.Rows.Add(241, 5);
table.Rows.Add(242, 15);
table.Rows.Add(243, 20);
table.Rows.Add(244, 10);
table.Rows.Add(245, 5);
table.Rows.Add(246, 5);
table.Rows.Add(247, 15);
table.Rows.Add(248, 10);
table.Rows.Add(249, 15);
table.Rows.Add(250, 15);
table.Rows.Add(251, 10);
table.Rows.Add(252, 10);
table.Rows.Add(253, 10);
table.Rows.Add(254, 20);
table.Rows.Add(255, 10);
table.Rows.Add(256, 10);
table.Rows.Add(257, 10);
table.Rows.Add(258, 10);
table.Rows.Add(259, 15);
table.Rows.Add(260, 15);
table.Rows.Add(261, 15);
table.Rows.Add(262, 10);
table.Rows.Add(263, 20);
table.Rows.Add(264, 20);
table.Rows.Add(265, 10);
table.Rows.Add(266, 20);
table.Rows.Add(267, 20);
table.Rows.Add(268, 20);
table.Rows.Add(269, 20);
table.Rows.Add(270, 20);
table.Rows.Add(271, 10);
table.Rows.Add(272, 10);
table.Rows.Add(273, 10);
table.Rows.Add(274, 20);
table.Rows.Add(275, 20);
table.Rows.Add(276, 5);
table.Rows.Add(277, 15);
table.Rows.Add(278, 10);
table.Rows.Add(279, 10);
table.Rows.Add(280, 15);
table.Rows.Add(281, 10);
table.Rows.Add(282, 20);
table.Rows.Add(283, 5);
table.Rows.Add(284, 5);
table.Rows.Add(285, 10);
table.Rows.Add(286, 10);
table.Rows.Add(287, 20);
table.Rows.Add(288, 5);
table.Rows.Add(289, 10);
table.Rows.Add(290, 20);
table.Rows.Add(291, 10);
table.Rows.Add(292, 20);
table.Rows.Add(293, 20);
table.Rows.Add(294, 20);
table.Rows.Add(295, 5);
table.Rows.Add(296, 5);
table.Rows.Add(297, 15);
table.Rows.Add(298, 20);
table.Rows.Add(299, 10);
table.Rows.Add(300, 15);
table.Rows.Add(301, 20);
table.Rows.Add(302, 15);
table.Rows.Add(303, 10);
table.Rows.Add(304, 10);
table.Rows.Add(305, 15);
table.Rows.Add(306, 10);
table.Rows.Add(307, 5);
table.Rows.Add(308, 5);
table.Rows.Add(309, 10);
table.Rows.Add(310, 15);
table.Rows.Add(311, 10);
table.Rows.Add(312, 5);
table.Rows.Add(313, 20);
table.Rows.Add(314, 25);
table.Rows.Add(315, 5);
table.Rows.Add(316, 40);
table.Rows.Add(317, 15);
table.Rows.Add(318, 5);
table.Rows.Add(319, 40);
table.Rows.Add(320, 15);
table.Rows.Add(321, 20);
table.Rows.Add(322, 20);
table.Rows.Add(323, 5);
table.Rows.Add(324, 15);
table.Rows.Add(325, 20);
table.Rows.Add(326, 20);
table.Rows.Add(327, 15);
table.Rows.Add(328, 15);
table.Rows.Add(329, 5);
table.Rows.Add(330, 10);
table.Rows.Add(331, 30);
table.Rows.Add(332, 20);
table.Rows.Add(333, 30);
table.Rows.Add(334, 15);
table.Rows.Add(335, 5);
table.Rows.Add(336, 40);
table.Rows.Add(337, 15);
table.Rows.Add(338, 5);
table.Rows.Add(339, 20);
table.Rows.Add(340, 5);
table.Rows.Add(341, 15);
table.Rows.Add(342, 25);
table.Rows.Add(343, 25);
table.Rows.Add(344, 15);
table.Rows.Add(345, 20);
table.Rows.Add(346, 15);
table.Rows.Add(347, 20);
table.Rows.Add(348, 15);
table.Rows.Add(349, 20);
table.Rows.Add(350, 10);
table.Rows.Add(351, 20);
table.Rows.Add(352, 20);
table.Rows.Add(353, 5);
table.Rows.Add(354, 5);
table.Rows.Add(355, 10);
table.Rows.Add(356, 5);
table.Rows.Add(357, 40);
table.Rows.Add(358, 10);
table.Rows.Add(359, 10);
table.Rows.Add(360, 5);
table.Rows.Add(361, 10);
table.Rows.Add(362, 10);
table.Rows.Add(363, 15);
table.Rows.Add(364, 10);
table.Rows.Add(365, 20);
table.Rows.Add(366, 15);
table.Rows.Add(367, 30);
table.Rows.Add(368, 10);
table.Rows.Add(369, 20);
table.Rows.Add(370, 5);
table.Rows.Add(371, 10);
table.Rows.Add(372, 10);
table.Rows.Add(373, 15);
table.Rows.Add(374, 10);
table.Rows.Add(375, 10);
table.Rows.Add(376, 5);
table.Rows.Add(377, 15);
table.Rows.Add(378, 5);
table.Rows.Add(379, 10);
table.Rows.Add(380, 10);
table.Rows.Add(381, 30);
table.Rows.Add(382, 20);
table.Rows.Add(383, 20);
table.Rows.Add(384, 10);
table.Rows.Add(385, 10);
table.Rows.Add(386, 5);
table.Rows.Add(387, 5);
table.Rows.Add(388, 10);
table.Rows.Add(389, 5);
table.Rows.Add(390, 20);
table.Rows.Add(391, 10);
table.Rows.Add(392, 20);
table.Rows.Add(393, 10);
table.Rows.Add(394, 15);
table.Rows.Add(395, 10);
table.Rows.Add(396, 20);
table.Rows.Add(397, 20);
table.Rows.Add(398, 20);
table.Rows.Add(399, 15);
table.Rows.Add(400, 15);
table.Rows.Add(401, 10);
table.Rows.Add(402, 15);
table.Rows.Add(403, 15);
table.Rows.Add(404, 15);
table.Rows.Add(405, 10);
table.Rows.Add(406, 10);
table.Rows.Add(407, 10);
table.Rows.Add(408, 20);
table.Rows.Add(409, 10);
table.Rows.Add(410, 30);
table.Rows.Add(411, 5);
table.Rows.Add(412, 10);
table.Rows.Add(413, 15);
table.Rows.Add(414, 10);
table.Rows.Add(415, 10);
table.Rows.Add(416, 5);
table.Rows.Add(417, 20);
table.Rows.Add(418, 30);
table.Rows.Add(419, 10);
table.Rows.Add(420, 30);
table.Rows.Add(421, 15);
table.Rows.Add(422, 15);
table.Rows.Add(423, 15);
table.Rows.Add(424, 15);
table.Rows.Add(425, 30);
table.Rows.Add(426, 10);
table.Rows.Add(427, 20);
table.Rows.Add(428, 15);
table.Rows.Add(429, 10);
table.Rows.Add(430, 10);
table.Rows.Add(431, 20);
table.Rows.Add(432, 15);
table.Rows.Add(433, 5);
table.Rows.Add(434, 5);
table.Rows.Add(435, 15);
table.Rows.Add(436, 15);
table.Rows.Add(437, 5);
table.Rows.Add(438, 10);
table.Rows.Add(439, 5);
table.Rows.Add(440, 20);
table.Rows.Add(441, 5);
table.Rows.Add(442, 15);
table.Rows.Add(443, 20);
table.Rows.Add(444, 5);
table.Rows.Add(445, 20);
table.Rows.Add(446, 20);
table.Rows.Add(447, 20);
table.Rows.Add(448, 20);
table.Rows.Add(449, 10);
table.Rows.Add(450, 20);
table.Rows.Add(451, 10);
table.Rows.Add(452, 15);
table.Rows.Add(453, 20);
table.Rows.Add(454, 15);
table.Rows.Add(455, 10);
table.Rows.Add(456, 10);
table.Rows.Add(457, 5);
table.Rows.Add(458, 10);
table.Rows.Add(459, 5);
table.Rows.Add(460, 5);
table.Rows.Add(461, 10);
table.Rows.Add(462, 5);
table.Rows.Add(463, 5);
table.Rows.Add(464, 10);
table.Rows.Add(465, 5);
table.Rows.Add(466, 5);
table.Rows.Add(467, 5);
table.Rows.Add(468, 15);
table.Rows.Add(469, 10);
table.Rows.Add(470, 10);
table.Rows.Add(471, 10);
table.Rows.Add(472, 10);
table.Rows.Add(473, 10);
table.Rows.Add(474, 10);
table.Rows.Add(475, 15);
table.Rows.Add(476, 20);
table.Rows.Add(477, 15);
table.Rows.Add(478, 10);
table.Rows.Add(479, 15);
table.Rows.Add(480, 10);
table.Rows.Add(481, 15);
table.Rows.Add(482, 10);
table.Rows.Add(483, 20);
table.Rows.Add(484, 10);
table.Rows.Add(485, 15);
table.Rows.Add(486, 10);
table.Rows.Add(487, 20);
table.Rows.Add(488, 20);
table.Rows.Add(489, 20);
table.Rows.Add(490, 20);
table.Rows.Add(491, 20);
table.Rows.Add(492, 15);
table.Rows.Add(493, 15);
table.Rows.Add(494, 15);
table.Rows.Add(495, 15);
table.Rows.Add(496, 15);
table.Rows.Add(497, 15);
table.Rows.Add(498, 20);
table.Rows.Add(499, 15);
table.Rows.Add(500, 10);
table.Rows.Add(501, 15);
table.Rows.Add(502, 15);
table.Rows.Add(503, 15);
table.Rows.Add(504, 15);
table.Rows.Add(505, 10);
table.Rows.Add(506, 10);
table.Rows.Add(507, 10);
table.Rows.Add(508, 10);
table.Rows.Add(509, 10);
table.Rows.Add(510, 15);
table.Rows.Add(511, 15);
table.Rows.Add(512, 15);
table.Rows.Add(513, 15);
table.Rows.Add(514, 5);
table.Rows.Add(515, 5);
table.Rows.Add(516, 15);
table.Rows.Add(517, 5);
table.Rows.Add(518, 10);
table.Rows.Add(519, 10);
table.Rows.Add(520, 10);
table.Rows.Add(521, 20);
table.Rows.Add(522, 20);
table.Rows.Add(523, 20);
table.Rows.Add(524, 10);
table.Rows.Add(525, 10);
table.Rows.Add(526, 30);
table.Rows.Add(527, 15);
table.Rows.Add(528, 15);
table.Rows.Add(529, 10);
table.Rows.Add(530, 15);
table.Rows.Add(531, 25);
table.Rows.Add(532, 10);
table.Rows.Add(533, 15);
table.Rows.Add(534, 10);
table.Rows.Add(535, 10);
table.Rows.Add(536, 10);
table.Rows.Add(537, 20);
table.Rows.Add(538, 10);
table.Rows.Add(539, 10);
table.Rows.Add(540, 10);
table.Rows.Add(541, 10);
table.Rows.Add(542, 10);
table.Rows.Add(543, 15);
table.Rows.Add(544, 15);
table.Rows.Add(545, 5);
table.Rows.Add(546, 5);
table.Rows.Add(547, 10);
table.Rows.Add(548, 10);
table.Rows.Add(549, 10);
table.Rows.Add(550, 5);
table.Rows.Add(551, 5);
table.Rows.Add(552, 10);
table.Rows.Add(553, 5);
table.Rows.Add(554, 5);
table.Rows.Add(555, 15);
table.Rows.Add(556, 10);
table.Rows.Add(557, 5);
table.Rows.Add(558, 5);
table.Rows.Add(559, 5);
table.Rows.Add(560, 10);
table.Rows.Add(561, 10);
table.Rows.Add(562, 10);
table.Rows.Add(563, 10);
table.Rows.Add(564, 20);
table.Rows.Add(565, 25);
table.Rows.Add(566, 10);
table.Rows.Add(567, 20);
table.Rows.Add(568, 30);
table.Rows.Add(569, 25);
table.Rows.Add(570, 20);
table.Rows.Add(571, 20);
table.Rows.Add(572, 15);
table.Rows.Add(573, 20);
table.Rows.Add(574, 15);
table.Rows.Add(575, 20);
table.Rows.Add(576, 20);
table.Rows.Add(577, 10);
table.Rows.Add(578, 10);
table.Rows.Add(579, 10);
table.Rows.Add(580, 10);
table.Rows.Add(581, 10);
table.Rows.Add(582, 20);
table.Rows.Add(583, 10);
table.Rows.Add(584, 30);
table.Rows.Add(585, 15);
table.Rows.Add(586, 10);
table.Rows.Add(587, 10);
table.Rows.Add(588, 10);
table.Rows.Add(589, 20);
table.Rows.Add(590, 20);
table.Rows.Add(591, 5);
table.Rows.Add(592, 5);
table.Rows.Add(593, 5);
table.Rows.Add(594, 20);
table.Rows.Add(595, 10);
table.Rows.Add(596, 10);
table.Rows.Add(597, 20);
table.Rows.Add(598, 15);
table.Rows.Add(599, 20);
table.Rows.Add(600, 20);
table.Rows.Add(601, 10);
table.Rows.Add(602, 20);
table.Rows.Add(603, 30);
table.Rows.Add(604, 10);
table.Rows.Add(605, 10);
table.Rows.Add(606, 40);
table.Rows.Add(607, 40);
table.Rows.Add(608, 30);
table.Rows.Add(609, 20);
table.Rows.Add(610, 40);
table.Rows.Add(611, 20);
table.Rows.Add(612, 20);
table.Rows.Add(613, 10);
table.Rows.Add(614, 10);
table.Rows.Add(615, 10);
table.Rows.Add(616, 10);
table.Rows.Add(617, 5);
return table;
}
public static DataTable ExpTable()
{
DataTable table = new DataTable();
table.Columns.Add("Level", typeof(int));
table.Columns.Add("0 - Erratic", typeof(int));
table.Columns.Add("1 - Fast", typeof(int));
table.Columns.Add("2 - MF", typeof(int));
table.Columns.Add("3 - MS", typeof(int));
table.Columns.Add("4 - Slow", typeof(int));
table.Columns.Add("5 - Fluctuating", typeof(int));
table.Rows.Add(0, 0, 0, 0, 0, 0, 0);
table.Rows.Add(1, 0, 0, 0, 0, 0, 0);
table.Rows.Add(2, 15, 6, 8, 9, 10, 4);
table.Rows.Add(3, 52, 21, 27, 57, 33, 13);
table.Rows.Add(4, 122, 51, 64, 96, 80, 32);
table.Rows.Add(5, 237, 100, 125, 135, 156, 65);
table.Rows.Add(6, 406, 172, 216, 179, 270, 112);
table.Rows.Add(7, 637, 274, 343, 236, 428, 178);
table.Rows.Add(8, 942, 409, 512, 314, 640, 276);
table.Rows.Add(9, 1326, 583, 729, 419, 911, 393);
table.Rows.Add(10, 1800, 800, 1000, 560, 1250, 540);
table.Rows.Add(11, 2369, 1064, 1331, 742, 1663, 745);
table.Rows.Add(12, 3041, 1382, 1728, 973, 2160, 967);
table.Rows.Add(13, 3822, 1757, 2197, 1261, 2746, 1230);
table.Rows.Add(14, 4719, 2195, 2744, 1612, 3430, 1591);
table.Rows.Add(15, 5737, 2700, 3375, 2035, 4218, 1957);
table.Rows.Add(16, 6881, 3276, 4096, 2535, 5120, 2457);
table.Rows.Add(17, 8155, 3930, 4913, 3120, 6141, 3046);
table.Rows.Add(18, 9564, 4665, 5832, 3798, 7290, 3732);
table.Rows.Add(19, 11111, 5487, 6859, 4575, 8573, 4526);
table.Rows.Add(20, 12800, 6400, 8000, 5460, 10000, 5440);
table.Rows.Add(21, 14632, 7408, 9261, 6458, 11576, 6482);
table.Rows.Add(22, 16610, 8518, 10648, 7577, 13310, 7666);
table.Rows.Add(23, 18737, 9733, 12167, 8825, 15208, 9003);
table.Rows.Add(24, 21012, 11059, 13824, 10208, 17280, 10506);
table.Rows.Add(25, 23437, 12500, 15625, 11735, 19531, 12187);
table.Rows.Add(26, 26012, 14060, 17576, 13411, 21970, 14060);
table.Rows.Add(27, 28737, 15746, 19683, 15244, 24603, 16140);
table.Rows.Add(28, 31610, 17561, 21952, 17242, 27440, 18439);
table.Rows.Add(29, 34632, 19511, 24389, 19411, 30486, 20974);
table.Rows.Add(30, 37800, 21600, 27000, 21760, 33750, 23760);
table.Rows.Add(31, 41111, 23832, 29791, 24294, 37238, 26811);
table.Rows.Add(32, 44564, 26214, 32768, 27021, 40960, 30146);
table.Rows.Add(33, 48155, 28749, 35937, 29949, 44921, 33780);
table.Rows.Add(34, 51881, 31443, 39304, 33084, 49130, 37731);
table.Rows.Add(35, 55737, 34300, 42875, 36435, 53593, 42017);
table.Rows.Add(36, 59719, 37324, 46656, 40007, 58320, 46656);
table.Rows.Add(37, 63822, 40522, 50653, 43808, 63316, 50653);
table.Rows.Add(38, 68041, 43897, 54872, 47846, 68590, 55969);
table.Rows.Add(39, 72369, 47455, 59319, 52127, 74148, 60505);
table.Rows.Add(40, 76800, 51200, 64000, 56660, 80000, 66560);
table.Rows.Add(41, 81326, 55136, 68921, 61450, 86151, 71677);
table.Rows.Add(42, 85942, 59270, 74088, 66505, 92610, 78533);
table.Rows.Add(43, 90637, 63605, 79507, 71833, 99383, 84277);
table.Rows.Add(44, 95406, 68147, 85184, 77440, 106480, 91998);
table.Rows.Add(45, 100237, 72900, 91125, 83335, 113906, 98415);
table.Rows.Add(46, 105122, 77868, 97336, 89523, 121670, 107069);
table.Rows.Add(47, 110052, 83058, 103823, 96012, 129778, 114205);
table.Rows.Add(48, 115015, 88473, 110592, 102810, 138240, 123863);
table.Rows.Add(49, 120001, 94119, 117649, 109923, 147061, 131766);
table.Rows.Add(50, 125000, 100000, 125000, 117360, 156250, 142500);
table.Rows.Add(51, 131324, 106120, 132651, 125126, 165813, 151222);
table.Rows.Add(52, 137795, 112486, 140608, 133229, 175760, 163105);
table.Rows.Add(53, 144410, 119101, 148877, 141677, 186096, 172697);
table.Rows.Add(54, 151165, 125971, 157464, 150476, 196830, 185807);
table.Rows.Add(55, 158056, 133100, 166375, 159635, 207968, 196322);
table.Rows.Add(56, 165079, 140492, 175616, 169159, 219520, 210739);
table.Rows.Add(57, 172229, 148154, 185193, 179056, 231491, 222231);
table.Rows.Add(58, 179503, 156089, 195112, 189334, 243890, 238036);
table.Rows.Add(59, 186894, 164303, 205379, 199999, 256723, 250562);
table.Rows.Add(60, 194400, 172800, 216000, 211060, 270000, 267840);
table.Rows.Add(61, 202013, 181584, 226981, 222522, 283726, 281456);
table.Rows.Add(62, 209728, 190662, 238328, 234393, 297910, 300293);
table.Rows.Add(63, 217540, 200037, 250047, 246681, 312558, 315059);
table.Rows.Add(64, 225443, 209715, 262144, 259392, 327680, 335544);
table.Rows.Add(65, 233431, 219700, 274625, 272535, 343281, 351520);
table.Rows.Add(66, 241496, 229996, 287496, 286115, 359370, 373744);
table.Rows.Add(67, 249633, 240610, 300763, 300140, 375953, 390991);
table.Rows.Add(68, 257834, 251545, 314432, 314618, 393040, 415050);
table.Rows.Add(69, 267406, 262807, 328509, 329555, 410636, 433631);
table.Rows.Add(70, 276458, 274400, 343000, 344960, 428750, 459620);
table.Rows.Add(71, 286328, 286328, 357911, 360838, 447388, 479600);
table.Rows.Add(72, 296358, 298598, 373248, 377197, 466560, 507617);
table.Rows.Add(73, 305767, 311213, 389017, 394045, 486271, 529063);
table.Rows.Add(74, 316074, 324179, 405224, 411388, 506530, 559209);
table.Rows.Add(75, 326531, 337500, 421875, 429235, 527343, 582187);
table.Rows.Add(76, 336255, 351180, 438976, 447591, 548720, 614566);
table.Rows.Add(77, 346965, 365226, 456533, 466464, 570666, 639146);
table.Rows.Add(78, 357812, 379641, 474552, 485862, 593190, 673863);
table.Rows.Add(79, 367807, 394431, 493039, 505791, 616298, 700115);
table.Rows.Add(80, 378880, 409600, 512000, 526260, 640000, 737280);
table.Rows.Add(81, 390077, 425152, 531441, 547274, 664301, 765275);
table.Rows.Add(82, 400293, 441094, 551368, 568841, 689210, 804997);
table.Rows.Add(83, 411686, 457429, 571787, 590969, 714733, 834809);
table.Rows.Add(84, 423190, 474163, 592704, 613664, 740880, 877201);
table.Rows.Add(85, 433572, 491300, 614125, 636935, 767656, 908905);
table.Rows.Add(86, 445239, 508844, 636056, 660787, 795070, 954084);
table.Rows.Add(87, 457001, 526802, 658503, 685228, 823128, 987754);
table.Rows.Add(88, 467489, 545177, 681472, 710266, 851840, 1035837);
table.Rows.Add(89, 479378, 563975, 704969, 735907, 881211, 1071552);
table.Rows.Add(90, 491346, 583200, 729000, 762160, 911250, 1122660);
table.Rows.Add(91, 501878, 602856, 753571, 789030, 941963, 1160499);
table.Rows.Add(92, 513934, 622950, 778688, 816525, 973360, 1214753);
table.Rows.Add(93, 526049, 643485, 804357, 844653, 1005446, 1254796);
table.Rows.Add(94, 536557, 664467, 830584, 873420, 1038230, 1312322);
table.Rows.Add(95, 548720, 685900, 857375, 902835, 1071718, 1354652);
table.Rows.Add(96, 560922, 707788, 884736, 932903, 1105920, 1415577);
table.Rows.Add(97, 571333, 730138, 912673, 963632, 1140841, 1460276);
table.Rows.Add(98, 583539, 752953, 941192, 995030, 1176490, 1524731);
table.Rows.Add(99, 591882, 776239, 970299, 1027103, 1212873, 1571884);
table.Rows.Add(100, 600000, 800000, 1000000, 1059860, 1250000, 1640000);
return table;
}
public static DataTable NatureTable()
{
DataTable table = new DataTable();
table.Columns.Add("Nature", typeof(int));
table.Columns.Add("A", typeof(int));
table.Columns.Add("D", typeof(int));
table.Columns.Add("Spe", typeof(int));
table.Columns.Add("SpA", typeof(int));
table.Columns.Add("SpD", typeof(int));
table.Rows.Add(0, 10, 10, 10, 10, 10);
table.Rows.Add(1, 11, 9, 10, 10, 10);
table.Rows.Add(2, 11, 10, 9, 10, 10);
table.Rows.Add(3, 11, 10, 10, 9, 10);
table.Rows.Add(4, 11, 10, 10, 10, 9);
table.Rows.Add(5, 9, 11, 10, 10, 10);
table.Rows.Add(6, 10, 10, 10, 10, 10);
table.Rows.Add(7, 10, 11, 9, 10, 10);
table.Rows.Add(8, 10, 11, 10, 9, 10);
table.Rows.Add(9, 10, 11, 10, 10, 9);
table.Rows.Add(10, 9, 10, 11, 10, 10);
table.Rows.Add(11, 10, 9, 11, 10, 10);
table.Rows.Add(12, 10, 10, 10, 10, 10);
table.Rows.Add(13, 10, 10, 11, 9, 10);
table.Rows.Add(14, 10, 10, 11, 10, 9);
table.Rows.Add(15, 9, 10, 10, 11, 10);
table.Rows.Add(16, 10, 9, 10, 11, 10);
table.Rows.Add(17, 10, 10, 9, 11, 10);
table.Rows.Add(18, 10, 10, 10, 10, 10);
table.Rows.Add(19, 10, 10, 10, 11, 9);
table.Rows.Add(20, 9, 10, 10, 10, 11);
table.Rows.Add(21, 10, 9, 10, 10, 11);
table.Rows.Add(22, 10, 10, 9, 10, 11);
table.Rows.Add(23, 10, 10, 10, 9, 11);
table.Rows.Add(24, 10, 10, 10, 10, 10);
return table;
}
public static int getMovePP(int move, int ppup)
{
return (getBasePP(move) * (5 + ppup) / 5);
}
public static int getBasePP(int move)
{
if (move < 0) { move = 0; }
DataTable movepptable = MovePPTable();
return (int)movepptable.Rows[move][1];
}
public static byte getBaseFriendship(int species)
{
return ((byte)PKX.Friendship().Rows[species][1]);
}
public static int getLevel(int species, ref uint exp)
{
if (exp == 0) { return 1; }
int tl = 1; // Initial Level
DataTable spectable = PKX.SpeciesTable();
DataTable table = PKX.ExpTable();
int growth = (int)spectable.Rows[species][1];
if ((int)table.Rows[tl][growth + 1] < exp)
{
while ((int)table.Rows[tl][growth + 1] < exp)
{
// While EXP for guessed level is below our current exp
tl += 1;
if (tl == 100)
{
exp = getEXP(100, species);
return tl;
}
// when calcexp exceeds our exp, we exit loop
}
if ((int)table.Rows[tl][growth + 1] == exp)
{
// Matches level threshold
return tl;
}
else return (tl - 1);
}
else return tl;
}
public static uint getEXP(int level, int species)
{
// Fetch Growth
if ((level == 0) || (level == 1))
return 0;
DataTable spectable = PKX.SpeciesTable();
int growth = (int)spectable.Rows[species][1];
int exp = 0;
switch (growth)
{
case 0: // Erratic
if (level <= 50)
exp = (level * level * level) * (100 - level) / 50;
else if (level < 69)
exp = (level * level * level) * (150 - level) / 100;
else if (level < 99)
exp = (level * level * level) * ((1911 - 10 * level) / 3) / 500;
else
exp = (level * level * level) * (160 - level) / 100;
break;
case 1: // Fast
exp = 4 * (level * level * level) / 5;
break;
case 2: // Medium Fast
exp = (level * level * level);
break;
case 3: // Medium Slow
exp = 6 * (level * level * level) / 5 - 15 * (level * level) + 100 * level - 140;
break;
case 4:
exp = 5 * (level * level * level) / 4;
break;
case 5:
if (level <= 15)
exp = (level * level * level) * ((((level + 1) / 3) + 24) / 50);
else if (level <= 36)
exp = (level * level * level) * ((level + 14) / 50);
else
exp = (level * level * level) * (((level / 2) + 32) / 50);
break;
}
return (uint)exp;
}
public static byte[] shuffleArray(byte[] pkx, uint sv)
{
byte[] ekx = new Byte[260];
Array.Copy(pkx, ekx, 8);
// Now to shuffle the blocks
// Define Shuffle Order Structure
byte[] aloc = new byte[] { 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 2, 3, 1, 1, 2, 3, 2, 3, 1, 1, 2, 3, 2, 3 };
byte[] bloc = new byte[] { 1, 1, 2, 3, 2, 3, 0, 0, 0, 0, 0, 0, 2, 3, 1, 1, 3, 2, 2, 3, 1, 1, 3, 2 };
byte[] cloc = new byte[] { 2, 3, 1, 1, 3, 2, 2, 3, 1, 1, 3, 2, 0, 0, 0, 0, 0, 0, 3, 2, 3, 2, 1, 1 };
byte[] dloc = new byte[] { 3, 2, 3, 2, 1, 1, 3, 2, 3, 2, 1, 1, 3, 2, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0 };
// Get Shuffle Order
byte[] shlog = new byte[] { aloc[sv], bloc[sv], cloc[sv], dloc[sv] };
// UnShuffle Away!
for (int b = 0; b < 4; b++)
Array.Copy(pkx, 8 + 56 * shlog[b], ekx, 8 + 56 * b, 56);
// Fill the Battle Stats back
if (pkx.Length > 232)
Array.Copy(pkx, 232, ekx, 232, 28);
return ekx;
}
public static byte[] decryptArray(byte[] ekx)
{
byte[] pkx = new Byte[0x104];
Array.Copy(ekx, pkx, ekx.Length);
uint pv = BitConverter.ToUInt32(pkx, 0);
uint sv = (((pv & 0x3E000) >> 0xD) % 24);
uint seed = pv;
// Decrypt Blocks with RNG Seed
for (int i = 8; i < 232; i += 2)
{
int pre = pkx[i] + ((pkx[i + 1]) << 8);
seed = PKX.LCRNG(seed);
int seedxor = (int)((seed) >> 16);
int post = (pre ^ seedxor);
pkx[i] = (byte)((post) & 0xFF);
pkx[i + 1] = (byte)(((post) >> 8) & 0xFF);
}
// Deshuffle
pkx = shuffleArray(pkx, sv);
// Decrypt the Party Stats
seed = pv;
for (int i = 232; i < 260; i += 2)
{
int pre = pkx[i] + ((pkx[i + 1]) << 8);
seed = PKX.LCRNG(seed);
int seedxor = (int)((seed) >> 16);
int post = (pre ^ seedxor);
pkx[i] = (byte)((post) & 0xFF);
pkx[i + 1] = (byte)(((post) >> 8) & 0xFF);
}
return pkx;
}
public static byte[] encryptArray(byte[] pkx)
{
// Shuffle
uint pv = BitConverter.ToUInt32(pkx, 0);
uint sv = (((pv & 0x3E000) >> 0xD) % 24);
byte[] ekxdata = new Byte[pkx.Length];
Array.Copy(pkx, ekxdata, pkx.Length);
// If I unshuffle 11 times, the 12th (decryption) will always decrypt to ABCD.
// 2 x 3 x 4 = 12 (possible unshuffle loops -> total iterations)
for (int i = 0; i < 11; i++)
ekxdata = shuffleArray(ekxdata, sv);
uint seed = pv;
// Encrypt Blocks with RNG Seed
for (int i = 8; i < 232; i += 2)
{
int pre = ekxdata[i] + ((ekxdata[i + 1]) << 8);
seed = PKX.LCRNG(seed);
int seedxor = (int)((seed) >> 16);
int post = (pre ^ seedxor);
ekxdata[i] = (byte)((post) & 0xFF);
ekxdata[i + 1] = (byte)(((post) >> 8) & 0xFF);
}
// Encrypt the Party Stats
seed = pv;
for (int i = 232; i < 260; i += 2)
{
int pre = ekxdata[i] + ((ekxdata[i + 1]) << 8);
seed = PKX.LCRNG(seed);
int seedxor = (int)((seed) >> 16);
int post = (pre ^ seedxor);
ekxdata[i] = (byte)((post) & 0xFF);
ekxdata[i + 1] = (byte)(((post) >> 8) & 0xFF);
}
// Done
return ekxdata;
}
#region Define
private Image pksprite;
private uint mEC, mPID, mIV32,
mexp,
mHP_EV, mATK_EV, mDEF_EV, mSPA_EV, mSPD_EV, mSPE_EV,
mHP_IV, mATK_IV, mDEF_IV, mSPE_IV, mSPA_IV, mSPD_IV,
mcnt_cool, mcnt_beauty, mcnt_cute, mcnt_smart, mcnt_tough, mcnt_sheen,
mmarkings, mhptype;
private string
mnicknamestr, mgenderstring, mnotOT, mot, mSpeciesName, mNatureName, mHPName, mAbilityName,
mMove1N, mMove2N, mMove3N, mMove4N;
private int
mability, mabilitynum, mnature, mfeflag, mgenderflag, maltforms, mPKRS_Strain, mPKRS_Duration,
mmetlevel, motgender;
private bool
misegg, misnick, misshiny;
private ushort
mspecies, mhelditem, mTID, mSID, mTSV, mESV,
mmove1, mmove2, mmove3, mmove4,
mmove1_pp, mmove2_pp, mmove3_pp, mmove4_pp,
mmove1_ppu, mmove2_ppu, mmove3_ppu, mmove4_ppu,
meggmove1, meggmove2, meggmove3, meggmove4,
mchk,
mOTfriendship, mOTaffection,
megg_year, megg_month, megg_day,
mmet_year, mmet_month, mmet_day,
meggloc, mmetloc,
mball, mencountertype,
mgamevers, mcountryID, mregionID, mdsregID, motlang;
#endregion
public Image pkimg { get { return pksprite; } }
public string Nickname { get { return mnicknamestr; } }
public string Species { get { return mSpeciesName; } }
public string Nature { get { return mNatureName; } }
public string Gender { get { return mgenderstring; } }
public string ESV { get { return mESV.ToString("0000"); } }
public string HP_Type { get { return mHPName; } }
public string Ability { get { return mAbilityName; } }
public string Move1 { get { return mMove1N; } }
public string Move2 { get { return mMove2N; } }
public string Move3 { get { return mMove3N; } }
public string Move4 { get { return mMove4N; } }
#region Extraneous
public string EC { get { return mEC.ToString("X8"); } }
public string PID { get { return mPID.ToString("X8"); } }
public uint HP_IV { get { return mHP_IV; } }
public uint ATK_IV { get { return mATK_IV; } }
public uint DEF_IV { get { return mDEF_IV; } }
public uint SPA_IV { get { return mSPA_IV; } }
public uint SPD_IV { get { return mSPD_IV; } }
public uint SPE_IV { get { return mSPE_IV; } }
public uint EXP { get { return mexp; } }
public uint HP_EV { get { return mHP_EV; } }
public uint ATK_EV { get { return mATK_EV; } }
public uint DEF_EV { get { return mDEF_EV; } }
public uint SPA_EV { get { return mSPA_EV; } }
public uint SPD_EV { get { return mSPD_EV; } }
public uint SPE_EV { get { return mSPE_EV; } }
public uint Cool { get { return mcnt_cool; } }
public uint Beauty { get { return mcnt_beauty; } }
public uint Cute { get { return mcnt_cute; } }
public uint Smart { get { return mcnt_smart; } }
public uint Tough { get { return mcnt_tough; } }
public uint Sheen { get { return mcnt_sheen; } }
public uint Markings { get { return mmarkings; } }
public string NotOT { get { return mnotOT; } }
public string OT { get { return mot; } }
public int AbilityNum { get { return mabilitynum; } }
public int FatefulFlag { get { return mfeflag; } }
public int GenderFlag { get { return mgenderflag; } }
public int AltForms { get { return maltforms; } }
public int PKRS_Strain { get { return mPKRS_Strain; } }
public int PKRS_Days { get { return mPKRS_Duration; } }
public int MetLevel { get { return mmetlevel; } }
public int OT_Gender { get { return motgender; } }
public bool IsEgg { get { return misegg; } }
public bool IsNicknamed { get { return misnick; } }
public bool IsShiny { get { return misshiny; } }
public ushort HeldItem { get { return mhelditem; } }
public ushort TID { get { return mTID; } }
public ushort SID { get { return mSID; } }
public ushort TSV { get { return mTSV; } }
public ushort Move1_PP { get { return mmove1_pp; } }
public ushort Move2_PP { get { return mmove2_pp; } }
public ushort Move3_PP { get { return mmove3_pp; } }
public ushort Move4_PP { get { return mmove4_pp; } }
public ushort Move1_PPUp { get { return mmove1_ppu; } }
public ushort Move2_PPUp { get { return mmove2_ppu; } }
public ushort Move3_PPUp { get { return mmove3_ppu; } }
public ushort Move4_PPUp { get { return mmove4_ppu; } }
public ushort EggMove1 { get { return meggmove1; } }
public ushort EggMove2 { get { return meggmove2; } }
public ushort EggMove3 { get { return meggmove3; } }
public ushort EggMove4 { get { return meggmove4; } }
public ushort Checksum { get { return mchk; } }
public ushort mFriendship { get { return mOTfriendship; } }
public ushort OT_Affection { get { return mOTaffection; } }
public ushort Egg_Year { get { return megg_year; } }
public ushort Egg_Day { get { return megg_month; } }
public ushort Egg_Month { get { return megg_day; } }
public ushort Met_Year { get { return mmet_year; } }
public ushort Met_Day { get { return mmet_month; } }
public ushort Met_Month { get { return mmet_day; } }
public ushort Egg_Location { get { return meggloc; } }
public ushort Met_Location { get { return mmetloc; } }
public ushort Ball { get { return mball; } }
public ushort Encounter { get { return mencountertype; } }
public ushort GameVersion { get { return mgamevers; } }
public ushort CountryID { get { return mcountryID; } }
public ushort RegionID { get { return mregionID; } }
public ushort DSRegionID { get { return mdsregID; } }
public ushort OTLang { get { return motlang; } }
#endregion
public PKX(byte[] pkx)
{
mnicknamestr = "";
mnotOT = "";
mot = "";
mEC = BitConverter.ToUInt32(pkx, 0);
mchk = BitConverter.ToUInt16(pkx, 6);
mspecies = BitConverter.ToUInt16(pkx, 0x08);
mhelditem = BitConverter.ToUInt16(pkx, 0x0A);
mTID = BitConverter.ToUInt16(pkx, 0x0C);
mSID = BitConverter.ToUInt16(pkx, 0x0E);
mexp = BitConverter.ToUInt32(pkx, 0x10);
mability = pkx[0x14];
mabilitynum = pkx[0x15];
// 0x16, 0x17 - unknown
mPID = BitConverter.ToUInt32(pkx, 0x18);
mnature = pkx[0x1C];
mfeflag = pkx[0x1D] % 2;
mgenderflag = (pkx[0x1D] >> 1) & 0x3;
maltforms = (pkx[0x1D] >> 3);
mHP_EV = pkx[0x1E];
mATK_EV = pkx[0x1F];
mDEF_EV = pkx[0x20];
mSPA_EV = pkx[0x22];
mSPD_EV = pkx[0x23];
mSPE_EV = pkx[0x21];
mcnt_cool = pkx[0x24];
mcnt_beauty = pkx[0x25];
mcnt_cute = pkx[0x26];
mcnt_smart = pkx[0x27];
mcnt_tough = pkx[0x28];
mcnt_sheen = pkx[0x29];
mmarkings = pkx[0x2A];
mPKRS_Strain = pkx[0x2B] >> 4;
mPKRS_Duration = pkx[0x2B] % 0x10;
// Block B
mnicknamestr = Util.TrimFromZero(Encoding.Unicode.GetString(pkx, 0x40, 24));
// 0x58, 0x59 - unused
mmove1 = BitConverter.ToUInt16(pkx, 0x5A);
mmove2 = BitConverter.ToUInt16(pkx, 0x5C);
mmove3 = BitConverter.ToUInt16(pkx, 0x5E);
mmove4 = BitConverter.ToUInt16(pkx, 0x60);
mmove1_pp = pkx[0x62];
mmove2_pp = pkx[0x63];
mmove3_pp = pkx[0x64];
mmove4_pp = pkx[0x65];
mmove1_ppu = pkx[0x66];
mmove2_ppu = pkx[0x67];
mmove3_ppu = pkx[0x68];
mmove4_ppu = pkx[0x69];
meggmove1 = BitConverter.ToUInt16(pkx, 0x6A);
meggmove2 = BitConverter.ToUInt16(pkx, 0x6C);
meggmove3 = BitConverter.ToUInt16(pkx, 0x6E);
meggmove4 = BitConverter.ToUInt16(pkx, 0x70);
// 0x72 - Super Training Flag - Passed with pkx to new form
// 0x73 - unused/unknown
mIV32 = BitConverter.ToUInt32(pkx, 0x74);
mHP_IV = mIV32 & 0x1F;
mATK_IV = (mIV32 >> 5) & 0x1F;
mDEF_IV = (mIV32 >> 10) & 0x1F;
mSPE_IV = (mIV32 >> 15) & 0x1F;
mSPA_IV = (mIV32 >> 20) & 0x1F;
mSPD_IV = (mIV32 >> 25) & 0x1F;
misegg = Convert.ToBoolean((mIV32 >> 30) & 1);
misnick = Convert.ToBoolean((mIV32 >> 31));
// Block C
mnotOT = Util.TrimFromZero(Encoding.Unicode.GetString(pkx, 0x78, 24));
bool notOTG = Convert.ToBoolean(pkx[0x92]);
// Memory Editor edits everything else with pkx in a new form
// Block D
mot = Util.TrimFromZero(Encoding.Unicode.GetString(pkx, 0xB0, 24));
// 0xC8, 0xC9 - unused
mOTfriendship = pkx[0xCA];
mOTaffection = pkx[0xCB]; // Handled by Memory Editor
// 0xCC, 0xCD, 0xCE, 0xCF, 0xD0
megg_year = pkx[0xD1];
megg_month = pkx[0xD2];
megg_day = pkx[0xD3];
mmet_year = pkx[0xD4];
mmet_month = pkx[0xD5];
mmet_day = pkx[0xD6];
// 0xD7 - unused
meggloc = BitConverter.ToUInt16(pkx, 0xD8);
mmetloc = BitConverter.ToUInt16(pkx, 0xDA);
mball = pkx[0xDC];
mmetlevel = pkx[0xDD] & 0x7F;
motgender = (pkx[0xDD]) >> 7;
mencountertype = pkx[0xDE];
mgamevers = pkx[0xDF];
mcountryID = pkx[0xE0];
mregionID = pkx[0xE1];
mdsregID = pkx[0xE2];
motlang = pkx[0xE3];
if (mgenderflag == 0)
{
mgenderstring = "♂";
}
else if (mgenderflag == 1)
{
mgenderstring = "♀";
}
else mgenderstring = "-";
mhptype = (15 * ((mHP_IV & 1) + 2 * (mATK_IV & 1) + 4 * (mDEF_IV & 1) + 8 * (mSPE_IV & 1) + 16 * (mSPA_IV & 1) + 32 * (mSPD_IV & 1))) / 63 + 1;
mTSV = (ushort)((mTID ^ mSID) >> 4);
mESV = (ushort)(((mPID >> 16) ^ (mPID & 0xFFFF)) >> 4);
misshiny = (mTSV == mESV);
// Nidoran Gender Fixing Text
if (!Convert.ToBoolean(misnick))
{
if (mnicknamestr.Contains((char)0xE08F))
{
mnicknamestr = Regex.Replace(mnicknamestr, "\uE08F", "\u2640");
}
else if (mnicknamestr.Contains((char)0xE08E))
{
mnicknamestr = Regex.Replace(mnicknamestr, "\uE08E", "\u2642");
}
}
{
int species = BitConverter.ToInt16(pkx, 0x08); // Get Species
uint isegg = (BitConverter.ToUInt32(pkx, 0x74) >> 30) & 1;
int altforms = (pkx[0x1D] >> 3);
int gender = (pkx[0x1D] >> 1) & 0x3;
string file;
if (isegg == 1)
{ file = "egg"; }
else
{
file = "_" + species.ToString();
if (altforms > 0) // Alt Form Handling
{
file = file + "_" + altforms.ToString();
}
else if ((species == 521) && (gender == 1)) // Unfezant
{
file = file = "_" + species.ToString() + "f";
}
}
if (species == 0)
file = "_0";
pksprite = (Image)Properties.Resources.ResourceManager.GetObject(file);
}
try
{
mSpeciesName = Form1.specieslist[mspecies];
mNatureName = Form1.natures[mnature];
mHPName = Form1.types[mhptype];
mAbilityName = Form1.abilitylist[mability];
mMove1N = Form1.movelist[mmove1];
mMove2N = Form1.movelist[mmove2];
mMove3N = Form1.movelist[mmove3];
mMove4N = Form1.movelist[mmove4];
}
catch { return; }
}
}
}