public static ConnectionPresetList ReadPresetsFile()
        {
            string path = Launcher.GetDistributionRootDirectoryName() + "//ConnectionPresetList.xml";
            ConnectionPresetList readPresetList;

            try
            {
                XmlSerializer serializer =
                    new XmlSerializer(typeof(ConnectionPresetList));
                FileStream fs = new FileStream(path, FileMode.Open);

                readPresetList = (ConnectionPresetList)serializer.Deserialize(fs);
                fs.Close();
            }
            catch (Exception)
            {
                ConnectionPreset defaultPreset = new ConnectionPreset
                {
                    Name   = "Default",
                    IP     = "127.0.0.1",
                    Port   = "27886",
                    Delay  = 1,
                    Method = 0,
                    Region = "japan"
                };
                readPresetList = new ConnectionPresetList();
                readPresetList.ConnectionPresets.Add(defaultPreset);

                // generates a new file if it does not exist
                System.Xml.Serialization.XmlSerializer serializer =
                    new System.Xml.Serialization.XmlSerializer(typeof(ConnectionPresetList));
                StreamWriter writer = new StreamWriter(path);
                serializer.Serialize(writer.BaseStream, readPresetList);
                writer.Close();
            }
            return(readPresetList);
        }