Upload 1.2 code

This commit is contained in:
Bluzume 2020-01-14 05:00:57 +13:00 committed by GitHub
parent c3ab4a98aa
commit 40e2dc4f05
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 15484 additions and 15480 deletions

View File

@ -1,188 +1,188 @@
using HtmlAgilityPack;
using Org.BouncyCastle.Crypto.Digests;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Cache;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GMTools
{
class CDNUrls
{
//GMS14
public const String GMS14 = "http://store.yoyogames.com/downloads/gm-studio/update-studio.rss";
public const String GMS14EA = "http://store.yoyogames.com/downloads/gm-studio-ea/update-studio-ea.rss";
//GMS2
public const String GMS2 = "http://gms.yoyogames.com/Zeus-Runtime.rss";
public const String GMS2Beta = "http://gms.yoyogames.com/Zeus-Runtime-Beta.rss";
public static String FromIndex(int cdnIndex)
{
switch (cdnIndex)
{
case 1:
return CDNUrls.GMS14;
case 2:
return CDNUrls.GMS14EA;
case 3:
return CDNUrls.GMS2;
case 4:
return CDNUrls.GMS2Beta;
}
return "NF";
}
}
class CDN
{
private static string xmlData = "";
private static string bypassAuthentication(string url)
{
if (url.StartsWith("https://updater.yoyogames.com") && !url.Contains("original"))
{
return "http://updatecdn.yoyogames.com/" + Path.GetFileName(url);
}
else
{
return url;
}
}
private static string getOriginalUrl(string version)
{
if (version.StartsWith("1."))
{
return "https://updater.yoyogames.com/api/download/original?filename=Original-" + version + ".zip";
}
else if(version.StartsWith("2."))
{
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xmlData);
var versions = doc.DocumentNode.SelectNodes("/rss/channel/item/enclosure");
foreach (HtmlNode ver in versions)
{
string verName = ver.GetAttributeValue("sparkle:version", "0.0.0.0");
if (verName == version)
{
return ver.GetAttributeValue("url", "http://example.com/").ToString();
}
}
}
return "NF";
}
public static void UseCDN(String CDN)
{
try
{
WebClient wc = new WebClient();
wc.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
xmlData = wc.DownloadString(CDN);
}
catch (Exception)
{
MessageBox.Show("Could not connect to: " + CDN, "Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public static String GetModuleForVersion(String Version, String Module)
{
Module = Module.ToLower();
if (Module == "original")
return getOriginalUrl(Version);
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xmlData);
var versions = doc.DocumentNode.SelectNodes("/rss/channel/item/enclosure");
foreach (HtmlNode version in versions)
{
string verName = version.GetAttributeValue("sparkle:version", "0.0.0.0");
if (verName == Version)
{
var modules = version.Elements("module");
foreach (var module in modules)
{
string moduleName = module.GetAttributeValue("name", "Original").ToLower();
string moduleUrl = module.GetAttributeValue("url", "http://127.0.0.1");
if (moduleName == Module)
{
return bypassAuthentication(moduleUrl);
}
}
}
}
return "NF"; // Not Found
}
public static String[] GetVersions(String Filter = "")
{
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xmlData);
var versions = doc.DocumentNode.SelectNodes("/rss/channel/item/enclosure");
List<string> verList = new List<string>();
foreach (HtmlNode version in versions)
{
string versionName = version.GetAttributeValue("sparkle:version", "0.0.0.0");
if (Filter == "")
{
verList.Add(versionName);
}
else
{
if(GetModuleForVersion(versionName,Filter) != "NF")
{
verList.Add(versionName);
}
}
}
return verList.ToArray();
}
public static String GetPassword(String ZipName)
{
if (ZipName.ToLower().StartsWith("original") || ZipName.ToLower().StartsWith("gmstudio"))
{
return "12#_p@o3w$ir_ADD-_$#";
}
MD5Digest md5Digest = new MD5Digest();
byte[] array = new byte[16];
byte[] bytes = Encoding.UTF8.GetBytes("MRJA" + Path.GetFileName(ZipName) + "PHMD");
md5Digest.Reset();
md5Digest.BlockUpdate(bytes, 0, bytes.Length);
md5Digest.Finish();
md5Digest.DoFinal(array, 0);
string password = Convert.ToBase64String(array);
return password;
}
}
}
using HtmlAgilityPack;
using Org.BouncyCastle.Crypto.Digests;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Cache;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GMTools
{
class CDNUrls
{
//GMS14
public const String GMS14 = "http://store.yoyogames.com/downloads/gm-studio/update-studio.rss";
public const String GMS14EA = "https://pastebin.com/raw/XN4gPX4u";
//GMS2
public const String GMS2 = "http://gms.yoyogames.com/Zeus-Runtime.rss";
public const String GMS2Beta = "http://gms.yoyogames.com/Zeus-Runtime-Beta.rss";
public static String FromIndex(int cdnIndex)
{
switch (cdnIndex)
{
case 1:
return CDNUrls.GMS14;
case 2:
return CDNUrls.GMS14EA;
case 3:
return CDNUrls.GMS2;
case 4:
return CDNUrls.GMS2Beta;
}
return "NF";
}
}
class CDN
{
private static string xmlData = "";
private static string bypassAuthentication(string url)
{
if (url.StartsWith("https://updater.yoyogames.com") && !url.Contains("original"))
{
return "http://updatecdn.yoyogames.com/" + Path.GetFileName(url);
}
else
{
return url;
}
}
private static string getOriginalUrl(string version)
{
if (version.StartsWith("1."))
{
return "https://updater.yoyogames.com/api/download/original?filename=Original-" + version + ".zip";
}
else if(version.StartsWith("2."))
{
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xmlData);
var versions = doc.DocumentNode.SelectNodes("/rss/channel/item/enclosure");
foreach (HtmlNode ver in versions)
{
string verName = ver.GetAttributeValue("sparkle:version", "0.0.0.0");
if (verName == version)
{
return ver.GetAttributeValue("url", "http://example.com/").ToString();
}
}
}
return "NF";
}
public static void UseCDN(String CDN)
{
try
{
WebClient wc = new WebClient();
wc.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
xmlData = wc.DownloadString(CDN);
}
catch (Exception)
{
MessageBox.Show("Could not connect to: " + CDN, "Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public static String GetModuleForVersion(String Version, String Module)
{
Module = Module.ToLower();
if (Module == "original")
return getOriginalUrl(Version);
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xmlData);
var versions = doc.DocumentNode.SelectNodes("/rss/channel/item/enclosure");
foreach (HtmlNode version in versions)
{
string verName = version.GetAttributeValue("sparkle:version", "0.0.0.0");
if (verName == Version)
{
var modules = version.Elements("module");
foreach (var module in modules)
{
string moduleName = module.GetAttributeValue("name", "Original").ToLower();
string moduleUrl = module.GetAttributeValue("url", "http://127.0.0.1");
if (moduleName == Module)
{
return bypassAuthentication(moduleUrl);
}
}
}
}
return "NF"; // Not Found
}
public static String[] GetVersions(String Filter = "")
{
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xmlData);
var versions = doc.DocumentNode.SelectNodes("/rss/channel/item/enclosure");
List<string> verList = new List<string>();
foreach (HtmlNode version in versions)
{
string versionName = version.GetAttributeValue("sparkle:version", "0.0.0.0");
if (Filter == "")
{
verList.Add(versionName);
}
else
{
if(GetModuleForVersion(versionName,Filter) != "NF")
{
verList.Add(versionName);
}
}
}
return verList.ToArray();
}
public static String GetPassword(String ZipName)
{
if (ZipName.ToLower().StartsWith("original") || ZipName.ToLower().StartsWith("gmstudio"))
{
return "12#_p@o3w$ir_ADD-_$#";
}
MD5Digest md5Digest = new MD5Digest();
byte[] array = new byte[16];
byte[] bytes = Encoding.UTF8.GetBytes("MRJA" + Path.GetFileName(ZipName) + "PHMD");
md5Digest.Reset();
md5Digest.BlockUpdate(bytes, 0, bytes.Length);
md5Digest.Finish();
md5Digest.DoFinal(array, 0);
string password = Convert.ToBase64String(array);
return password;
}
}
}

View File

@ -1,77 +1,77 @@
namespace GayMaker_Studio
{
partial class DownloadingUpdate
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.DownloadProgress = new System.Windows.Forms.ProgressBar();
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// DownloadProgress
//
this.DownloadProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.DownloadProgress.Location = new System.Drawing.Point(15, 44);
this.DownloadProgress.Name = "DownloadProgress";
this.DownloadProgress.Size = new System.Drawing.Size(419, 23);
this.DownloadProgress.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(94, 13);
this.label1.TabIndex = 1;
this.label1.Text = "Starting Download";
//
// DownloadingUpdate
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(443, 95);
this.ControlBox = false;
this.Controls.Add(this.label1);
this.Controls.Add(this.DownloadProgress);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "DownloadingUpdate";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.Text = "Downloading Update";
this.Load += new System.EventHandler(this.DownloadingUpdate_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ProgressBar DownloadProgress;
private System.Windows.Forms.Label label1;
}
namespace GayMaker_Studio
{
partial class DownloadingUpdate
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.DownloadProgress = new System.Windows.Forms.ProgressBar();
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// DownloadProgress
//
this.DownloadProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.DownloadProgress.Location = new System.Drawing.Point(15, 44);
this.DownloadProgress.Name = "DownloadProgress";
this.DownloadProgress.Size = new System.Drawing.Size(419, 23);
this.DownloadProgress.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(94, 13);
this.label1.TabIndex = 1;
this.label1.Text = "Starting Download";
//
// DownloadingUpdate
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(443, 95);
this.ControlBox = false;
this.Controls.Add(this.label1);
this.Controls.Add(this.DownloadProgress);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "DownloadingUpdate";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.Text = "Downloading Update";
this.Load += new System.EventHandler(this.DownloadingUpdate_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ProgressBar DownloadProgress;
private System.Windows.Forms.Label label1;
}
}

View File

@ -1,82 +1,82 @@
using System;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.IO.Compression;
using System.Net;
using System.Net.Cache;
using System.Reflection;
using System.Windows.Forms;
namespace GayMaker_Studio
{
public partial class DownloadingUpdate : Form
{
public DownloadingUpdate()
{
//Bypass Windows DPI Scaling
Font = new Font(Font.Name, 8.25f * 96f / CreateGraphics().DpiX, Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
InitializeComponent();
}
private void startDownload()
{
WebClient wc = new WebClient();
wc.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
String UpdateString = wc.DownloadString("https://bitbucket.org/SilicaAndPina/gaymaker-studio/raw/master/latest.md");
String[] Data = UpdateString.Split('~');
String UpdateUrl = Data[1];
wc.Dispose();
WebClient client = new WebClient();
client.Headers.Add("pragma", "no-cache");
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
client.DownloadFileAsync(new Uri(UpdateUrl), "upgrade.zip");
}
private void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
label1.Text = "Extracting...";
Application.DoEvents();
String EXEPath = Assembly.GetExecutingAssembly().Location;
File.Move(EXEPath, Path.ChangeExtension(EXEPath, ".old"));
ZipArchive archive = new ZipArchive(File.OpenRead("upgrade.zip"));
foreach (ZipArchiveEntry file in archive.Entries)
{
if (File.Exists(file.FullName))
{
File.Delete(file.FullName);
}
}
archive.Dispose();
ZipFile.ExtractToDirectory("upgrade.zip", Path.GetDirectoryName(EXEPath));
File.Delete("upgrade.zip");
Application.Restart();
}
private void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
DownloadProgress.Value = e.ProgressPercentage;
label1.Text = "Downloading: " + e.ProgressPercentage + "%";
}
private void DownloadingUpdate_Load(object sender, EventArgs e)
{
startDownload();
}
}
}
using System;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.IO.Compression;
using System.Net;
using System.Net.Cache;
using System.Reflection;
using System.Windows.Forms;
namespace GayMaker_Studio
{
public partial class DownloadingUpdate : Form
{
public DownloadingUpdate()
{
//Bypass Windows DPI Scaling
Font = new Font(Font.Name, 8.25f * 96f / CreateGraphics().DpiX, Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
InitializeComponent();
}
private void startDownload()
{
WebClient wc = new WebClient();
wc.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
String UpdateString = wc.DownloadString("https://bitbucket.org/SilicaAndPina/gaymaker-studio/raw/master/latest.md");
String[] Data = UpdateString.Split('~');
String UpdateUrl = Data[1];
wc.Dispose();
WebClient client = new WebClient();
client.Headers.Add("pragma", "no-cache");
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
client.DownloadFileAsync(new Uri(UpdateUrl), "upgrade.zip");
}
private void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
label1.Text = "Extracting...";
Application.DoEvents();
String EXEPath = Assembly.GetExecutingAssembly().Location;
File.Move(EXEPath, Path.ChangeExtension(EXEPath, ".old"));
ZipArchive archive = new ZipArchive(File.OpenRead("upgrade.zip"));
foreach (ZipArchiveEntry file in archive.Entries)
{
if (File.Exists(file.FullName))
{
File.Delete(file.FullName);
}
}
archive.Dispose();
ZipFile.ExtractToDirectory("upgrade.zip", Path.GetDirectoryName(EXEPath));
File.Delete("upgrade.zip");
Application.Restart();
}
private void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
DownloadProgress.Value = e.ProgressPercentage;
label1.Text = "Downloading: " + e.ProgressPercentage + "%";
}
private void DownloadingUpdate_Load(object sender, EventArgs e)
{
startDownload();
}
}
}

View File

@ -1,120 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,30 +1,30 @@

using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
namespace ELF
{
class Tools
{
[DllImport("DotsTheBee.dll", SetLastError = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int SceVerDown([MarshalAs(UnmanagedType.LPStr)]string ElfPath, UInt32 version);
public static void MakeFself(string elf, string self)
{
Process makefself = new Process();
makefself.StartInfo.FileName = @"make_fself\\make_fself.exe";
makefself.StartInfo.Arguments = elf + " " + self;
makefself.StartInfo.UseShellExecute = false;
makefself.StartInfo.RedirectStandardOutput = true;
makefself.StartInfo.RedirectStandardError = true;
makefself.StartInfo.CreateNoWindow = true;
makefself.Start();
makefself.WaitForExit();
makefself.Dispose();
File.Delete(elf);
}
}
}

using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
namespace ELF
{
class Tools
{
[DllImport("DotsTheBee.dll", SetLastError = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int SceVerDown([MarshalAs(UnmanagedType.LPStr)]string ElfPath, UInt32 version);
public static void MakeFself(string elf, string self)
{
Process makefself = new Process();
makefself.StartInfo.FileName = @"make_fself\\make_fself.exe";
makefself.StartInfo.Arguments = elf + " " + self;
makefself.StartInfo.UseShellExecute = false;
makefself.StartInfo.RedirectStandardOutput = true;
makefself.StartInfo.RedirectStandardError = true;
makefself.StartInfo.CreateNoWindow = true;
makefself.Start();
makefself.WaitForExit();
makefself.Dispose();
File.Delete(elf);
}
}
}

View File

@ -1,66 +1,66 @@
using System;
using System.Runtime.InteropServices;
namespace GayMaker_Studio
{
class GMAC
{
public enum FileMapProtection : uint
{
PageReadonly = 0x02,
PageReadWrite = 0x04,
PageWriteCopy = 0x08,
PageExecuteRead = 0x20,
PageExecuteReadWrite = 0x40,
SectionCommit = 0x8000000,
SectionImage = 0x1000000,
SectionNoCache = 0x10000000,
SectionReserve = 0x4000000,
}
public enum FileMapAccess : uint
{
FileMapCopy = 0x0001,
FileMapWrite = 0x0002,
FileMapRead = 0x0004,
FileMapReadWrite = 0x0006,
FileMapAllAccess = 0x001f,
FileMapExecute = 0x0020,
}
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr CreateFileMapping(
IntPtr hFile,
IntPtr lpFileMappingAttributes,
FileMapProtection flProtect,
uint dwMaximumSizeHigh,
uint dwMaximumSizeLow,
string lpName
);
[DllImport("kernel32", SetLastError = true)]
public static extern IntPtr MapViewOfFile(IntPtr intptr_0, FileMapAccess dwDesiredAccess, int int_5, int int_6, IntPtr intptr_1);
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr OpenFileMapping(
FileMapAccess dwDesiredAccess,
bool bInheritHandle,
string lpName
);
[DllImport("kernel32", SetLastError = true)]
public static extern bool CloseHandle(IntPtr intptr_0);
public static void GetPermissionToExecute()
{
IntPtr Create = CreateFileMapping(new IntPtr(-1), IntPtr.Zero, FileMapProtection.PageReadWrite, 0x0, 0x1000, "YYMappingFileTestYY");
IntPtr DaFile = OpenFileMapping(FileMapAccess.FileMapWrite, false, "YYMappingFileTestYY");
IntPtr MapView = MapViewOfFile(DaFile, FileMapAccess.FileMapWrite, 0, 0, new IntPtr(4));
Marshal.WriteInt32(MapView, (int)(DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds);
CloseHandle(DaFile);
}
}
}
using System;
using System.Runtime.InteropServices;
namespace GayMaker_Studio
{
class GMAC
{
public enum FileMapProtection : uint
{
PageReadonly = 0x02,
PageReadWrite = 0x04,
PageWriteCopy = 0x08,
PageExecuteRead = 0x20,
PageExecuteReadWrite = 0x40,
SectionCommit = 0x8000000,
SectionImage = 0x1000000,
SectionNoCache = 0x10000000,
SectionReserve = 0x4000000,
}
public enum FileMapAccess : uint
{
FileMapCopy = 0x0001,
FileMapWrite = 0x0002,
FileMapRead = 0x0004,
FileMapReadWrite = 0x0006,
FileMapAllAccess = 0x001f,
FileMapExecute = 0x0020,
}
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr CreateFileMapping(
IntPtr hFile,
IntPtr lpFileMappingAttributes,
FileMapProtection flProtect,
uint dwMaximumSizeHigh,
uint dwMaximumSizeLow,
string lpName
);
[DllImport("kernel32", SetLastError = true)]
public static extern IntPtr MapViewOfFile(IntPtr intptr_0, FileMapAccess dwDesiredAccess, int int_5, int int_6, IntPtr intptr_1);
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr OpenFileMapping(
FileMapAccess dwDesiredAccess,
bool bInheritHandle,
string lpName
);
[DllImport("kernel32", SetLastError = true)]
public static extern bool CloseHandle(IntPtr intptr_0);
public static void GetPermissionToExecute()
{
IntPtr Create = CreateFileMapping(new IntPtr(-1), IntPtr.Zero, FileMapProtection.PageReadWrite, 0x0, 0x1000, "YYMappingFileTestYY");
IntPtr DaFile = OpenFileMapping(FileMapAccess.FileMapWrite, false, "YYMappingFileTestYY");
IntPtr MapView = MapViewOfFile(DaFile, FileMapAccess.FileMapWrite, 0, 0, new IntPtr(4));
Marshal.WriteInt32(MapView, (int)(DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds);
CloseHandle(DaFile);
}
}
}

View File

@ -1,150 +1,150 @@
/*
* In GMS2 they made the GMAssetCompiler verify your license file
* It uses RSA to do it
* ... and then they added the option to specify your own keys
* good fucking job
*/
using Org.BouncyCastle.Crypto.Encodings;
using Org.BouncyCastle.Crypto.Engines;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Math;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace GMLicense
{
class Keys
{
public const String Modulus = "AEFD4A9B137D5EC3D80B11094948770D342E87CBF81E418A54FB61BBCDB8D40F241E242822C50327E20003EE57CCA877BF35A2A55A0EB06537F369B722C9DAAB943F33593CC458A7055C0D80CAE9112FD0F4BBC53AD1FEE67C83DDED354216F30EA7126200DE83FAEB7A9880647BFE16B9A0406C7B90D20315F011CCBB85070B";
public const String PublicExponent = "03";
public const String PrivateExponent = "74A8DC6762539482900760B0DB85A4B3781F0532A5698106E3524127DE7B380A1814181AC1D8ACC5415557F43A88704FD4CE6C6E3C09CAEE254CF124C1DBE71BF2B1BD2C550A95AEC64E1859444BD879815A820CD22A66E50C6B0658C475FEB83DB423101295BE269315353DFD2B5515A827C4C43C7FF28EDB13ECDA76EF125B";
public const String Prime1 = "E1E58992501733C45719035DBC615326809E41B49D46A838A1EAAD0807B8866D4206DAEB7DE63BE374D73F9A560393BF9B1884B8CDFEDE9D6BCD0B245CDCA677";
public const String Prime2 = "C64F0E046D1D445C84CDE59D2815F9530E4EB6FD624BBC5647F8A76006D89271701202DE6717AADD9A03890912B76AB6A24C148D52D2078F61852360AC41C50D";
public const String Exponent1 = "969906618ABA2282E4BB5793D2EB8CC455BED67868D9C57B169C735AAFD0599E2C0491F253EED297A33A2A66E402627FBCBB0325DEA9E9BE47DE076D933DC44F";
public const String Exponent2 = "8434B402F368D83DADDE9913700EA6375EDF24A8EC327D8EDAA5C4EAAF3B0C4BA00C01E99A0FC73E66AD06060C7A47246C32B85E3736AFB4EBAE1795C82BD8B3";
public const String Coefficent = "2659d9ec51d4886df62574301fbce9b18d8479b36f33e8961ba6179395bb73dcf019c641c4efb4d88f10fdf2351117744fe65a1a9b7a45e63dfc9ce135bec994";
public static RsaKeyParameters GetPublicKey()
{
return new RsaKeyParameters(false, new BigInteger(Modulus, 16), new BigInteger(PublicExponent, 16));
}
public static RsaPrivateCrtKeyParameters GetPrivateKey()
{
return new RsaPrivateCrtKeyParameters(new BigInteger(Modulus, 16), new BigInteger(PublicExponent, 16), new BigInteger(PrivateExponent, 16), new BigInteger(Prime1, 16), new BigInteger(Prime2, 16), new BigInteger(Exponent1, 16), new BigInteger(Exponent2, 16), new BigInteger(Coefficent, 16));
}
}
class Crypto
{
public static String SignData(RsaPrivateCrtKeyParameters PrivateKey, String ToBeSigned)
{
byte[] Data = Encoding.UTF8.GetBytes(ToBeSigned);
byte[] sha1Hash = SHA1.Create().ComputeHash(Data);
Pkcs1Encoding pkcs1Encoding = new Pkcs1Encoding(new RsaEngine());
pkcs1Encoding.Init(true, PrivateKey);
int inputBlockSize = pkcs1Encoding.GetInputBlockSize();
byte[] EncryptedData = pkcs1Encoding.ProcessBlock(sha1Hash, 0, sha1Hash.Length);
var signedString = Convert.ToBase64String(EncryptedData);
return signedString;
}
}
class LicenseFormat
{
private static Dictionary<string, string> Parse_Plist(string string_36)
{
StringBuilder stringBuilder = new StringBuilder();
using (StringReader stringReader = new StringReader(string_36))
{
string text;
while ((text = stringReader.ReadLine()) != null)
{
if (!text.Contains("DOCTYPE") || !text.Contains("DTD"))
{
stringBuilder.Append(text);
}
}
}
string s = stringBuilder.ToString();
Dictionary<string, string> dictionary = new Dictionary<string, string>();
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.IgnoreComments = true;
xmlReaderSettings.ProhibitDtd = true;
using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(s)))
{
using (XmlReader xmlReader = XmlReader.Create(memoryStream, xmlReaderSettings))
{
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.XmlResolver = null;
xmlDocument.Load(xmlReader);
XmlNode xmlNode = xmlDocument.SelectSingleNode("plist/dict");
for (int i = 0; i < xmlNode.ChildNodes.Count; i++)
{
if (xmlNode.ChildNodes[i].Name == "key")
{
dictionary.Add(xmlNode.ChildNodes[i].InnerText, xmlNode.ChildNodes[i + 1].InnerText);
i++;
}
}
}
}
return dictionary;
}
private static string createLicenseString(string plist)
{
Dictionary<string, string> PlistDict = Parse_Plist(plist);
List<string> PlistEntryList = PlistDict.Keys.ToList<string>();
PlistEntryList.Sort();
StringBuilder stringBuilder = new StringBuilder();
foreach (string PlistEntry in PlistEntryList)
{
string value = PlistDict[PlistEntry];
if (string.Compare(PlistEntry, "Signature", true) != 0)
{
stringBuilder.Append(value);
}
}
return stringBuilder.ToString();
}
public static String CreateLicense(String AllowedPlatforms, RsaPrivateCrtKeyParameters PrivateKey)
{
String PlistFile = new XElement("plist",
new XElement("dict",
new XElement("key", "Signature"),
new XElement("data", "---SIGNATURE GOES HERE---"),
new XElement("key", "public_key"), //Thanks yoyo 4 backdoor lol
new XElement("string", Keys.Modulus),
new XElement("key", "components"),
new XElement("string", AllowedPlatforms),
new XElement("key", "expiry_date"),
new XElement("string", DateTime.UtcNow.AddDays(3).ToString("yyyy-mm-dd HH:mm:ss UTC")),
new XElement("key", "id"),
new XElement("string", "1337"),
new XElement("key", "email"),
new XElement("string", "girls@dying.moe"))).ToString();
//Sign license with private key
string licenseString = createLicenseString(PlistFile);
string signature = Crypto.SignData(PrivateKey, licenseString);
return PlistFile.Replace("---SIGNATURE GOES HERE---",signature);
}
}
}
/*
* In GMS2 they made the GMAssetCompiler verify your license file
* It uses RSA to do it
* ... and then they added the option to specify your own keys
* good fucking job
*/
using Org.BouncyCastle.Crypto.Encodings;
using Org.BouncyCastle.Crypto.Engines;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Math;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace GMLicense
{
class Keys
{
public const String Modulus = "AEFD4A9B137D5EC3D80B11094948770D342E87CBF81E418A54FB61BBCDB8D40F241E242822C50327E20003EE57CCA877BF35A2A55A0EB06537F369B722C9DAAB943F33593CC458A7055C0D80CAE9112FD0F4BBC53AD1FEE67C83DDED354216F30EA7126200DE83FAEB7A9880647BFE16B9A0406C7B90D20315F011CCBB85070B";
public const String PublicExponent = "03";
public const String PrivateExponent = "74A8DC6762539482900760B0DB85A4B3781F0532A5698106E3524127DE7B380A1814181AC1D8ACC5415557F43A88704FD4CE6C6E3C09CAEE254CF124C1DBE71BF2B1BD2C550A95AEC64E1859444BD879815A820CD22A66E50C6B0658C475FEB83DB423101295BE269315353DFD2B5515A827C4C43C7FF28EDB13ECDA76EF125B";
public const String Prime1 = "E1E58992501733C45719035DBC615326809E41B49D46A838A1EAAD0807B8866D4206DAEB7DE63BE374D73F9A560393BF9B1884B8CDFEDE9D6BCD0B245CDCA677";
public const String Prime2 = "C64F0E046D1D445C84CDE59D2815F9530E4EB6FD624BBC5647F8A76006D89271701202DE6717AADD9A03890912B76AB6A24C148D52D2078F61852360AC41C50D";
public const String Exponent1 = "969906618ABA2282E4BB5793D2EB8CC455BED67868D9C57B169C735AAFD0599E2C0491F253EED297A33A2A66E402627FBCBB0325DEA9E9BE47DE076D933DC44F";
public const String Exponent2 = "8434B402F368D83DADDE9913700EA6375EDF24A8EC327D8EDAA5C4EAAF3B0C4BA00C01E99A0FC73E66AD06060C7A47246C32B85E3736AFB4EBAE1795C82BD8B3";
public const String Coefficent = "2659d9ec51d4886df62574301fbce9b18d8479b36f33e8961ba6179395bb73dcf019c641c4efb4d88f10fdf2351117744fe65a1a9b7a45e63dfc9ce135bec994";
public static RsaKeyParameters GetPublicKey()
{
return new RsaKeyParameters(false, new BigInteger(Modulus, 16), new BigInteger(PublicExponent, 16));
}
public static RsaPrivateCrtKeyParameters GetPrivateKey()
{
return new RsaPrivateCrtKeyParameters(new BigInteger(Modulus, 16), new BigInteger(PublicExponent, 16), new BigInteger(PrivateExponent, 16), new BigInteger(Prime1, 16), new BigInteger(Prime2, 16), new BigInteger(Exponent1, 16), new BigInteger(Exponent2, 16), new BigInteger(Coefficent, 16));
}
}
class Crypto
{
public static String SignData(RsaPrivateCrtKeyParameters PrivateKey, String ToBeSigned)
{
byte[] Data = Encoding.UTF8.GetBytes(ToBeSigned);
byte[] sha1Hash = SHA1.Create().ComputeHash(Data);
Pkcs1Encoding pkcs1Encoding = new Pkcs1Encoding(new RsaEngine());
pkcs1Encoding.Init(true, PrivateKey);
int inputBlockSize = pkcs1Encoding.GetInputBlockSize();
byte[] EncryptedData = pkcs1Encoding.ProcessBlock(sha1Hash, 0, sha1Hash.Length);
var signedString = Convert.ToBase64String(EncryptedData);
return signedString;
}
}
class LicenseFormat
{
private static Dictionary<string, string> Parse_Plist(string string_36)
{
StringBuilder stringBuilder = new StringBuilder();
using (StringReader stringReader = new StringReader(string_36))
{
string text;
while ((text = stringReader.ReadLine()) != null)
{
if (!text.Contains("DOCTYPE") || !text.Contains("DTD"))
{
stringBuilder.Append(text);
}
}
}
string s = stringBuilder.ToString();
Dictionary<string, string> dictionary = new Dictionary<string, string>();
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.IgnoreComments = true;
xmlReaderSettings.ProhibitDtd = true;
using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(s)))
{
using (XmlReader xmlReader = XmlReader.Create(memoryStream, xmlReaderSettings))
{
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.XmlResolver = null;
xmlDocument.Load(xmlReader);
XmlNode xmlNode = xmlDocument.SelectSingleNode("plist/dict");
for (int i = 0; i < xmlNode.ChildNodes.Count; i++)
{
if (xmlNode.ChildNodes[i].Name == "key")
{
dictionary.Add(xmlNode.ChildNodes[i].InnerText, xmlNode.ChildNodes[i + 1].InnerText);
i++;
}
}
}
}
return dictionary;
}
private static string createLicenseString(string plist)
{
Dictionary<string, string> PlistDict = Parse_Plist(plist);
List<string> PlistEntryList = PlistDict.Keys.ToList<string>();
PlistEntryList.Sort();
StringBuilder stringBuilder = new StringBuilder();
foreach (string PlistEntry in PlistEntryList)
{
string value = PlistDict[PlistEntry];
if (string.Compare(PlistEntry, "Signature", true) != 0)
{
stringBuilder.Append(value);
}
}
return stringBuilder.ToString();
}
public static String CreateLicense(String AllowedPlatforms, RsaPrivateCrtKeyParameters PrivateKey)
{
String PlistFile = new XElement("plist",
new XElement("dict",
new XElement("key", "Signature"),
new XElement("data", "---SIGNATURE GOES HERE---"),
new XElement("key", "public_key"), //Thanks yoyo 4 backdoor lol
new XElement("string", Keys.Modulus),
new XElement("key", "components"),
new XElement("string", AllowedPlatforms),
new XElement("key", "expiry_date"),
new XElement("string", DateTime.UtcNow.AddDays(3).ToString("yyyy-mm-dd HH:mm:ss UTC")),
new XElement("key", "id"),
new XElement("string", "1337"),
new XElement("key", "email"),
new XElement("string", "girls@dying.moe"))).ToString();
//Sign license with private key
string licenseString = createLicenseString(PlistFile);
string signature = Crypto.SignData(PrivateKey, licenseString);
return PlistFile.Replace("---SIGNATURE GOES HERE---",signature);
}
}
}

View File

@ -1,191 +1,191 @@
namespace GayMaker_Studio
{
partial class GameSettings
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GameSettings));
this.label1 = new System.Windows.Forms.Label();
this.panel1 = new System.Windows.Forms.Panel();
this.TexturePageSize = new System.Windows.Forms.ComboBox();
this.label3 = new System.Windows.Forms.Label();
this.DisplayCursor = new System.Windows.Forms.CheckBox();
this.Interporlate = new System.Windows.Forms.CheckBox();
this.FullScale = new System.Windows.Forms.RadioButton();
this.KeepAspect = new System.Windows.Forms.RadioButton();
this.label2 = new System.Windows.Forms.Label();
this.Save = new System.Windows.Forms.Button();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(112, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Global Game Settings:";
//
// panel1
//
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panel1.Controls.Add(this.TexturePageSize);
this.panel1.Controls.Add(this.label3);
this.panel1.Controls.Add(this.DisplayCursor);
this.panel1.Controls.Add(this.Interporlate);
this.panel1.Controls.Add(this.FullScale);
this.panel1.Controls.Add(this.KeepAspect);
this.panel1.Controls.Add(this.label2);
this.panel1.Location = new System.Drawing.Point(12, 25);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(238, 167);
this.panel1.TabIndex = 1;
//
// TexturePageSize
//
this.TexturePageSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.TexturePageSize.FormattingEnabled = true;
this.TexturePageSize.Items.AddRange(new object[] {
"256",
"512",
"1024",
"2048",
"4096",
"8192",
"16384"});
this.TexturePageSize.Location = new System.Drawing.Point(6, 74);
this.TexturePageSize.Name = "TexturePageSize";
this.TexturePageSize.Size = new System.Drawing.Size(94, 21);
this.TexturePageSize.TabIndex = 6;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(3, 58);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(97, 13);
this.label3.TabIndex = 5;
this.label3.Text = "Texture Page Size:";
//
// DisplayCursor
//
this.DisplayCursor.AutoSize = true;
this.DisplayCursor.Location = new System.Drawing.Point(3, 38);
this.DisplayCursor.Name = "DisplayCursor";
this.DisplayCursor.Size = new System.Drawing.Size(201, 17);
this.DisplayCursor.TabIndex = 4;
this.DisplayCursor.Text = "Display cursor when touchpad active";
this.DisplayCursor.UseVisualStyleBackColor = true;
//
// Interporlate
//
this.Interporlate.AutoSize = true;
this.Interporlate.Location = new System.Drawing.Point(3, 15);
this.Interporlate.Name = "Interporlate";
this.Interporlate.Size = new System.Drawing.Size(183, 17);
this.Interporlate.TabIndex = 3;
this.Interporlate.Text = "Interporlate colors between pixels";
this.Interporlate.UseVisualStyleBackColor = true;
//
// FullScale
//
this.FullScale.AutoSize = true;
this.FullScale.Location = new System.Drawing.Point(3, 143);
this.FullScale.Name = "FullScale";
this.FullScale.Size = new System.Drawing.Size(71, 17);
this.FullScale.TabIndex = 2;
this.FullScale.TabStop = true;
this.FullScale.Text = "Full Scale";
this.FullScale.UseVisualStyleBackColor = true;
//
// KeepAspect
//
this.KeepAspect.AutoSize = true;
this.KeepAspect.Location = new System.Drawing.Point(3, 120);
this.KeepAspect.Name = "KeepAspect";
this.KeepAspect.Size = new System.Drawing.Size(114, 17);
this.KeepAspect.TabIndex = 1;
this.KeepAspect.TabStop = true;
this.KeepAspect.Text = "Keep Aspect Ratio";
this.KeepAspect.UseVisualStyleBackColor = true;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(3, 104);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(84, 13);
this.label2.TabIndex = 0;
this.label2.Text = "Scaling Options:";
//
// Save
//
this.Save.Location = new System.Drawing.Point(12, 198);
this.Save.Name = "Save";
this.Save.Size = new System.Drawing.Size(238, 23);
this.Save.TabIndex = 2;
this.Save.Text = "Save Changes";
this.Save.UseVisualStyleBackColor = true;
this.Save.Click += new System.EventHandler(this.Save_Click);
//
// GameSettings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(262, 230);
this.Controls.Add(this.Save);
this.Controls.Add(this.panel1);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "GameSettings";
this.Text = "Global Game Settings";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GameSettings_FormClosing);
this.Load += new System.EventHandler(this.GameSettings_Load);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.ComboBox TexturePageSize;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.CheckBox DisplayCursor;
private System.Windows.Forms.CheckBox Interporlate;
private System.Windows.Forms.RadioButton FullScale;
private System.Windows.Forms.RadioButton KeepAspect;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button Save;
}
namespace GayMaker_Studio
{
partial class GameSettings
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GameSettings));
this.label1 = new System.Windows.Forms.Label();
this.panel1 = new System.Windows.Forms.Panel();
this.TexturePageSize = new System.Windows.Forms.ComboBox();
this.label3 = new System.Windows.Forms.Label();
this.DisplayCursor = new System.Windows.Forms.CheckBox();
this.Interporlate = new System.Windows.Forms.CheckBox();
this.FullScale = new System.Windows.Forms.RadioButton();
this.KeepAspect = new System.Windows.Forms.RadioButton();
this.label2 = new System.Windows.Forms.Label();
this.Save = new System.Windows.Forms.Button();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(112, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Global Game Settings:";
//
// panel1
//
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panel1.Controls.Add(this.TexturePageSize);
this.panel1.Controls.Add(this.label3);
this.panel1.Controls.Add(this.DisplayCursor);
this.panel1.Controls.Add(this.Interporlate);
this.panel1.Controls.Add(this.FullScale);
this.panel1.Controls.Add(this.KeepAspect);
this.panel1.Controls.Add(this.label2);
this.panel1.Location = new System.Drawing.Point(12, 25);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(238, 167);
this.panel1.TabIndex = 1;
//
// TexturePageSize
//
this.TexturePageSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.TexturePageSize.FormattingEnabled = true;
this.TexturePageSize.Items.AddRange(new object[] {
"256",
"512",
"1024",
"2048",
"4096",
"8192",
"16384"});
this.TexturePageSize.Location = new System.Drawing.Point(6, 74);
this.TexturePageSize.Name = "TexturePageSize";
this.TexturePageSize.Size = new System.Drawing.Size(94, 21);
this.TexturePageSize.TabIndex = 6;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(3, 58);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(97, 13);
this.label3.TabIndex = 5;
this.label3.Text = "Texture Page Size:";
//
// DisplayCursor
//
this.DisplayCursor.AutoSize = true;
this.DisplayCursor.Location = new System.Drawing.Point(3, 38);
this.DisplayCursor.Name = "DisplayCursor";
this.DisplayCursor.Size = new System.Drawing.Size(201, 17);
this.DisplayCursor.TabIndex = 4;
this.DisplayCursor.Text = "Display cursor when touchpad active";
this.DisplayCursor.UseVisualStyleBackColor = true;
//
// Interporlate
//
this.Interporlate.AutoSize = true;
this.Interporlate.Location = new System.Drawing.Point(3, 15);
this.Interporlate.Name = "Interporlate";
this.Interporlate.Size = new System.Drawing.Size(183, 17);
this.Interporlate.TabIndex = 3;
this.Interporlate.Text = "Interporlate colors between pixels";
this.Interporlate.UseVisualStyleBackColor = true;
//
// FullScale
//
this.FullScale.AutoSize = true;
this.FullScale.Location = new System.Drawing.Point(3, 143);
this.FullScale.Name = "FullScale";
this.FullScale.Size = new System.Drawing.Size(71, 17);
this.FullScale.TabIndex = 2;
this.FullScale.TabStop = true;
this.FullScale.Text = "Full Scale";
this.FullScale.UseVisualStyleBackColor = true;
//
// KeepAspect
//
this.KeepAspect.AutoSize = true;
this.KeepAspect.Location = new System.Drawing.Point(3, 120);
this.KeepAspect.Name = "KeepAspect";
this.KeepAspect.Size = new System.Drawing.Size(114, 17);
this.KeepAspect.TabIndex = 1;
this.KeepAspect.TabStop = true;
this.KeepAspect.Text = "Keep Aspect Ratio";
this.KeepAspect.UseVisualStyleBackColor = true;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(3, 104);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(84, 13);
this.label2.TabIndex = 0;
this.label2.Text = "Scaling Options:";
//
// Save
//
this.Save.Location = new System.Drawing.Point(12, 198);
this.Save.Name = "Save";
this.Save.Size = new System.Drawing.Size(238, 23);
this.Save.TabIndex = 2;
this.Save.Text = "Save Changes";
this.Save.UseVisualStyleBackColor = true;
this.Save.Click += new System.EventHandler(this.Save_Click);
//
// GameSettings
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(262, 230);
this.Controls.Add(this.Save);
this.Controls.Add(this.panel1);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "GameSettings";
this.Text = "Global Game Settings";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GameSettings_FormClosing);
this.Load += new System.EventHandler(this.GameSettings_Load);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.ComboBox TexturePageSize;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.CheckBox DisplayCursor;
private System.Windows.Forms.CheckBox Interporlate;
private System.Windows.Forms.RadioButton FullScale;
private System.Windows.Forms.RadioButton KeepAspect;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button Save;
}
}

View File

@ -1,147 +1,147 @@
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml;
namespace GayMaker_Studio
{
public partial class GameSettings : Form
{
String ProjectPath;
XmlDocument DefaultConfig = new XmlDocument();
public GameSettings()
{
//Bypass Windows DPI Scaling
Font = new Font(Font.Name, 8.25f * 96f / CreateGraphics().DpiX, Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
InitializeComponent();
}
private void GameSettings_Load(object sender, EventArgs e)
{
Program.GMS.Enabled = false;
ProjectPath = Path.GetDirectoryName(Program.GMS.GetProjectPath());
Console.WriteLine(ProjectPath);
DefaultConfig.Load(ProjectPath + "\\Configs\\Default.config.gmx");
XmlNode TP = DefaultConfig.GetElementsByTagName("option_ps4_texture_page")[0];
XmlNode IT = DefaultConfig.GetElementsByTagName("option_ps4_interpolate")[0];
XmlNode SC = DefaultConfig.GetElementsByTagName("option_ps4_scale")[0];
XmlNode DC = DefaultConfig.GetElementsByTagName("option_ps4_displaycursor")[0];
try
{
//If global game settings was never opened then its true/false for some reason
DisplayCursor.Checked = bool.Parse(DC.InnerText);
Interporlate.Checked = bool.Parse(IT.InnerText);
}
catch
{
//Otherwise its -1 / 0 (GM IS WEIRD)
if (int.Parse(DC.InnerText) == 0)
{
DisplayCursor.Checked = false;
}
else
{
DisplayCursor.Checked = true;
}
if (int.Parse(IT.InnerText) == 0)
{
Interporlate.Checked = false;
}
else
{
Interporlate.Checked = true;
}
if (int.Parse(SC.InnerText) == 0)
{
FullScale.Checked = true;
KeepAspect.Checked = false;
}
else
{
FullScale.Checked = false;
KeepAspect.Checked = true;
}
};
TexturePageSize.Text = int.Parse(TP.InnerText).ToString();
}
private void Save_Click(object sender, EventArgs e)
{
try
{
if (DisplayCursor.Checked)
{
XmlNode DC = DefaultConfig.GetElementsByTagName("option_ps4_displaycursor")[0];
DC.InnerText = "-1";
}
else
{
XmlNode DC = DefaultConfig.GetElementsByTagName("option_ps4_displaycursor")[0];
DC.InnerText = "0";
}
if (Interporlate.Checked)
{
XmlNode IT = DefaultConfig.GetElementsByTagName("option_ps4_interpolate")[0];
IT.InnerText = "-1";
}
else
{
XmlNode IT = DefaultConfig.GetElementsByTagName("option_ps4_interpolate")[0];
IT.InnerText = "0";
}
if (KeepAspect.Checked)
{
XmlNode SC = DefaultConfig.GetElementsByTagName("option_ps4_scale")[0];
SC.InnerText = "-1";
}
else
{
XmlNode SC = DefaultConfig.GetElementsByTagName("option_ps4_scale")[0];
SC.InnerText = "0";
}
XmlNode TP = DefaultConfig.GetElementsByTagName("option_ps4_texture_page")[0];
TP.InnerText = TexturePageSize.Text;
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true };
XmlWriter writer = XmlWriter.Create(ProjectPath + "\\Configs\\Default.config.gmx", settings);
DefaultConfig.Save(writer);
writer.Close();
}
catch (Exception)
{
MessageBox.Show("There was an error while saving settings!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Program.GMS.Enabled = true;
Close();
}
private void GameSettings_FormClosing(object sender, FormClosingEventArgs e)
{
Program.GMS.Enabled = true;
}
}
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml;
namespace GayMaker_Studio
{
public partial class GameSettings : Form
{
String ProjectPath;
XmlDocument DefaultConfig = new XmlDocument();
public GameSettings()
{
//Bypass Windows DPI Scaling
Font = new Font(Font.Name, 8.25f * 96f / CreateGraphics().DpiX, Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
InitializeComponent();
}
private void GameSettings_Load(object sender, EventArgs e)
{
Program.GMS.Enabled = false;
ProjectPath = Path.GetDirectoryName(Program.GMS.GetProjectPath());
Console.WriteLine(ProjectPath);
DefaultConfig.Load(ProjectPath + "\\Configs\\Default.config.gmx");
XmlNode TP = DefaultConfig.GetElementsByTagName("option_ps4_texture_page")[0];
XmlNode IT = DefaultConfig.GetElementsByTagName("option_ps4_interpolate")[0];
XmlNode SC = DefaultConfig.GetElementsByTagName("option_ps4_scale")[0];
XmlNode DC = DefaultConfig.GetElementsByTagName("option_ps4_displaycursor")[0];
try
{
//If global game settings was never opened then its true/false for some reason
DisplayCursor.Checked = bool.Parse(DC.InnerText);
Interporlate.Checked = bool.Parse(IT.InnerText);
}
catch
{
//Otherwise its -1 / 0 (GM IS WEIRD)
if (int.Parse(DC.InnerText) == 0)
{
DisplayCursor.Checked = false;
}
else
{
DisplayCursor.Checked = true;
}
if (int.Parse(IT.InnerText) == 0)
{
Interporlate.Checked = false;
}
else
{
Interporlate.Checked = true;
}
if (int.Parse(SC.InnerText) == 0)
{
FullScale.Checked = true;
KeepAspect.Checked = false;
}
else
{
FullScale.Checked = false;
KeepAspect.Checked = true;
}
};
TexturePageSize.Text = int.Parse(TP.InnerText).ToString();
}
private void Save_Click(object sender, EventArgs e)
{
try
{
if (DisplayCursor.Checked)
{
XmlNode DC = DefaultConfig.GetElementsByTagName("option_ps4_displaycursor")[0];
DC.InnerText = "-1";
}
else
{
XmlNode DC = DefaultConfig.GetElementsByTagName("option_ps4_displaycursor")[0];
DC.InnerText = "0";
}
if (Interporlate.Checked)
{
XmlNode IT = DefaultConfig.GetElementsByTagName("option_ps4_interpolate")[0];
IT.InnerText = "-1";
}
else
{
XmlNode IT = DefaultConfig.GetElementsByTagName("option_ps4_interpolate")[0];
IT.InnerText = "0";
}
if (KeepAspect.Checked)
{
XmlNode SC = DefaultConfig.GetElementsByTagName("option_ps4_scale")[0];
SC.InnerText = "-1";
}
else
{
XmlNode SC = DefaultConfig.GetElementsByTagName("option_ps4_scale")[0];
SC.InnerText = "0";
}
XmlNode TP = DefaultConfig.GetElementsByTagName("option_ps4_texture_page")[0];
TP.InnerText = TexturePageSize.Text;
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true };
XmlWriter writer = XmlWriter.Create(ProjectPath + "\\Configs\\Default.config.gmx", settings);
DefaultConfig.Save(writer);
writer.Close();
}
catch (Exception)
{
MessageBox.Show("There was an error while saving settings!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Program.GMS.Enabled = true;
Close();
}
private void GameSettings_FormClosing(object sender, FormClosingEventArgs e)
{
Program.GMS.Enabled = true;
}
}
}

View File

@ -1,337 +1,337 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
p639AAAAAElFTkSuQmCC
</value>
</data>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
p639AAAAAElFTkSuQmCC
</value>
</data>
</root>

View File

@ -1,139 +1,139 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A574F9F8-D3B2-4EF6-80DE-5D546C43B57D}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>GayMaker_Studio</RootNamespace>
<AssemblyName>GayMaker-Studio</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icon0.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<ItemGroup>
<Reference Include="BouncyCastle.Crypto, Version=1.8.4.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
<HintPath>..\packages\BouncyCastle.1.8.4\lib\BouncyCastle.Crypto.dll</HintPath>
</Reference>
<Reference Include="DotNetZip, Version=1.13.3.0, Culture=neutral, PublicKeyToken=6583c7c814667745, processorArchitecture=MSIL">
<HintPath>..\packages\DotNetZip.1.13.3\lib\net40\DotNetZip.dll</HintPath>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.9.2.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
<HintPath>..\packages\HtmlAgilityPack.1.9.2\lib\Net45\HtmlAgilityPack.dll</HintPath>
</Reference>
<Reference Include="LibOrbisPkg">
<HintPath>..\Packages\LibOrbisPkg.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CDN.cs" />
<Compile Include="DownloadingUpdate.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DownloadingUpdate.Designer.cs">
<DependentUpon>DownloadingUpdate.cs</DependentUpon>
</Compile>
<Compile Include="ElfTools.cs" />
<Compile Include="GameSettings.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="GameSettings.Designer.cs">
<DependentUpon>GameSettings.cs</DependentUpon>
</Compile>
<Compile Include="GayMakerStudio.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="GayMakerStudio.Designer.cs">
<DependentUpon>GayMakerStudio.cs</DependentUpon>
</Compile>
<Compile Include="GMAC.cs" />
<Compile Include="GMLicense.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="VersionManager.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="VersionManager.Designer.cs">
<DependentUpon>VersionManager.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="DownloadingUpdate.resx">
<DependentUpon>DownloadingUpdate.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GameSettings.resx">
<DependentUpon>GameSettings.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GayMakerStudio.resx">
<DependentUpon>GayMakerStudio.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<EmbeddedResource Include="VersionManager.resx">
<DependentUpon>VersionManager.cs</DependentUpon>
</EmbeddedResource>
<None Include="app.manifest" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="icon0.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A574F9F8-D3B2-4EF6-80DE-5D546C43B57D}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>GayMaker_Studio</RootNamespace>
<AssemblyName>GayMaker-Studio</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icon0.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<ItemGroup>
<Reference Include="BouncyCastle.Crypto, Version=1.8.4.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
<HintPath>..\packages\BouncyCastle.1.8.4\lib\BouncyCastle.Crypto.dll</HintPath>
</Reference>
<Reference Include="DotNetZip, Version=1.13.3.0, Culture=neutral, PublicKeyToken=6583c7c814667745, processorArchitecture=MSIL">
<HintPath>..\packages\DotNetZip.1.13.3\lib\net40\DotNetZip.dll</HintPath>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.9.2.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
<HintPath>..\packages\HtmlAgilityPack.1.9.2\lib\Net45\HtmlAgilityPack.dll</HintPath>
</Reference>
<Reference Include="LibOrbisPkg">
<HintPath>..\Packages\LibOrbisPkg.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CDN.cs" />
<Compile Include="DownloadingUpdate.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DownloadingUpdate.Designer.cs">
<DependentUpon>DownloadingUpdate.cs</DependentUpon>
</Compile>
<Compile Include="ElfTools.cs" />
<Compile Include="GameSettings.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="GameSettings.Designer.cs">
<DependentUpon>GameSettings.cs</DependentUpon>
</Compile>
<Compile Include="GayMakerStudio.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="GayMakerStudio.Designer.cs">
<DependentUpon>GayMakerStudio.cs</DependentUpon>
</Compile>
<Compile Include="GMAC.cs" />
<Compile Include="GMLicense.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="VersionManager.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="VersionManager.Designer.cs">
<DependentUpon>VersionManager.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="DownloadingUpdate.resx">
<DependentUpon>DownloadingUpdate.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GameSettings.resx">
<DependentUpon>GameSettings.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="GayMakerStudio.resx">
<DependentUpon>GayMakerStudio.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<EmbeddedResource Include="VersionManager.resx">
<DependentUpon>VersionManager.cs</DependentUpon>
</EmbeddedResource>
<None Include="app.manifest" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="icon0.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -1,483 +1,483 @@
namespace GayMaker_Studio
{
partial class GayMakerStudio
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GayMakerStudio));
this.homeScreen = new System.Windows.Forms.RadioButton();
this.startupScreen = new System.Windows.Forms.RadioButton();
this.IconPreview = new System.Windows.Forms.PictureBox();
this.Title = new System.Windows.Forms.Label();
this.homePreview = new System.Windows.Forms.Panel();
this.IconPreview2 = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.GameSettings = new System.Windows.Forms.Panel();
this.label8 = new System.Windows.Forms.Label();
this.VersionSelect = new System.Windows.Forms.ComboBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.GlobalGameSettings = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.titleName = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.titleID = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.contentID = new System.Windows.Forms.TextBox();
this.browsePic = new System.Windows.Forms.Button();
this.picPath = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.browseIcon = new System.Windows.Forms.Button();
this.iconPath = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.browseProject = new System.Windows.Forms.Button();
this.projectPath = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.Logo = new System.Windows.Forms.PictureBox();
this.CreatePKG = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.GmacOut = new System.Windows.Forms.TextBox();
this.StartupPreview = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.IconPreview)).BeginInit();
this.homePreview.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.IconPreview2)).BeginInit();
this.GameSettings.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.Logo)).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// homeScreen
//
this.homeScreen.AutoSize = true;
this.homeScreen.Location = new System.Drawing.Point(69, 4);
this.homeScreen.Name = "homeScreen";
this.homeScreen.Size = new System.Drawing.Size(53, 17);
this.homeScreen.TabIndex = 0;
this.homeScreen.TabStop = true;
this.homeScreen.Text = "Home";
this.homeScreen.UseVisualStyleBackColor = true;
this.homeScreen.CheckedChanged += new System.EventHandler(this.homeScreen_CheckedChanged);
//
// startupScreen
//
this.startupScreen.AutoSize = true;
this.startupScreen.Location = new System.Drawing.Point(128, 4);
this.startupScreen.Name = "startupScreen";
this.startupScreen.Size = new System.Drawing.Size(59, 17);
this.startupScreen.TabIndex = 1;
this.startupScreen.TabStop = true;
this.startupScreen.Text = "Startup";
this.startupScreen.UseVisualStyleBackColor = true;
this.startupScreen.CheckedChanged += new System.EventHandler(this.startupScreen_CheckedChanged);
//
// IconPreview
//
this.IconPreview.BackColor = System.Drawing.Color.Transparent;
this.IconPreview.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("IconPreview.BackgroundImage")));
this.IconPreview.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.IconPreview.Location = new System.Drawing.Point(144, 105);
this.IconPreview.Name = "IconPreview";
this.IconPreview.Size = new System.Drawing.Size(165, 166);
this.IconPreview.TabIndex = 3;
this.IconPreview.TabStop = false;
this.IconPreview.Click += new System.EventHandler(this.IconPreview_Click);
//
// Title
//
this.Title.BackColor = System.Drawing.Color.Transparent;
this.Title.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.Title.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Title.ForeColor = System.Drawing.Color.White;
this.Title.Location = new System.Drawing.Point(312, 278);
this.Title.Name = "Title";
this.Title.Size = new System.Drawing.Size(292, 23);
this.Title.TabIndex = 4;
this.Title.Text = "GameMaker: Studio";
//
// homePreview
//
this.homePreview.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("homePreview.BackgroundImage")));
this.homePreview.Controls.Add(this.IconPreview2);
this.homePreview.Controls.Add(this.IconPreview);
this.homePreview.Controls.Add(this.Title);
this.homePreview.Location = new System.Drawing.Point(3, 25);
this.homePreview.Name = "homePreview";
this.homePreview.Size = new System.Drawing.Size(960, 544);
this.homePreview.TabIndex = 5;
//
// IconPreview2
//
this.IconPreview2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("IconPreview2.BackgroundImage")));
this.IconPreview2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.IconPreview2.Location = new System.Drawing.Point(316, 104);
this.IconPreview2.Name = "IconPreview2";
this.IconPreview2.Size = new System.Drawing.Size(100, 102);
this.IconPreview2.TabIndex = 5;
this.IconPreview2.TabStop = false;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 4);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(48, 13);
this.label1.TabIndex = 6;
this.label1.Text = "Preview:";
//
// GameSettings
//
this.GameSettings.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.GameSettings.Controls.Add(this.label8);
this.GameSettings.Controls.Add(this.VersionSelect);
this.GameSettings.Controls.Add(this.pictureBox1);
this.GameSettings.Controls.Add(this.GlobalGameSettings);
this.GameSettings.Controls.Add(this.label7);
this.GameSettings.Controls.Add(this.titleName);
this.GameSettings.Controls.Add(this.label6);
this.GameSettings.Controls.Add(this.titleID);
this.GameSettings.Controls.Add(this.label5);
this.GameSettings.Controls.Add(this.contentID);
this.GameSettings.Controls.Add(this.browsePic);
this.GameSettings.Controls.Add(this.picPath);
this.GameSettings.Controls.Add(this.label4);
this.GameSettings.Controls.Add(this.browseIcon);
this.GameSettings.Controls.Add(this.iconPath);
this.GameSettings.Controls.Add(this.label3);
this.GameSettings.Controls.Add(this.browseProject);
this.GameSettings.Controls.Add(this.projectPath);
this.GameSettings.Controls.Add(this.label2);
this.GameSettings.Location = new System.Drawing.Point(968, 25);
this.GameSettings.Name = "GameSettings";
this.GameSettings.Size = new System.Drawing.Size(368, 301);
this.GameSettings.TabIndex = 7;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(182, 276);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(65, 13);
this.label8.TabIndex = 18;
this.label8.Text = "GM Version:";
//
// VersionSelect
//
this.VersionSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.VersionSelect.FormattingEnabled = true;
this.VersionSelect.Items.AddRange(new object[] {
"1.4.9999"});
this.VersionSelect.Location = new System.Drawing.Point(253, 270);
this.VersionSelect.Name = "VersionSelect";
this.VersionSelect.Size = new System.Drawing.Size(103, 21);
this.VersionSelect.TabIndex = 17;
this.VersionSelect.SelectedIndexChanged += new System.EventHandler(this.VersionSelect_SelectedIndexChanged);
//
// pictureBox1
//
this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage")));
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox1.Location = new System.Drawing.Point(6, 272);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(17, 18);
this.pictureBox1.TabIndex = 16;
this.pictureBox1.TabStop = false;
//
// GlobalGameSettings
//
this.GlobalGameSettings.AutoSize = true;
this.GlobalGameSettings.Enabled = false;
this.GlobalGameSettings.Location = new System.Drawing.Point(29, 276);
this.GlobalGameSettings.Name = "GlobalGameSettings";
this.GlobalGameSettings.Size = new System.Drawing.Size(109, 13);
this.GlobalGameSettings.TabIndex = 15;
this.GlobalGameSettings.Text = "Global Game Settings";
this.GlobalGameSettings.DoubleClick += new System.EventHandler(this.GlobalGameSettings_DoubleClick);
this.GlobalGameSettings.MouseEnter += new System.EventHandler(this.GlobalGameSettings_MouseEnter);
this.GlobalGameSettings.MouseLeave += new System.EventHandler(this.GlobalGameSettings_MouseLeave);
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(3, 170);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(30, 13);
this.label7.TabIndex = 14;
this.label7.Text = "Title:";
//
// titleName
//
this.titleName.Location = new System.Drawing.Point(6, 186);
this.titleName.MaxLength = 40;
this.titleName.Multiline = true;
this.titleName.Name = "titleName";
this.titleName.Size = new System.Drawing.Size(355, 78);
this.titleName.TabIndex = 13;
this.titleName.Text = "GameMaker: Studio";
this.titleName.TextChanged += new System.EventHandler(this.titleName_TextChanged);
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(262, 134);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(44, 13);
this.label6.TabIndex = 12;
this.label6.Text = "Title ID:";
//
// titleID
//
this.titleID.Location = new System.Drawing.Point(262, 147);
this.titleID.Name = "titleID";
this.titleID.ReadOnly = true;
this.titleID.Size = new System.Drawing.Size(100, 20);
this.titleID.TabIndex = 11;
this.titleID.Text = "GMSP00001";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(3, 131);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(61, 13);
this.label5.TabIndex = 10;
this.label5.Text = "Content ID:";
//
// contentID
//
this.contentID.Location = new System.Drawing.Point(3, 147);
this.contentID.MaxLength = 36;
this.contentID.Name = "contentID";
this.contentID.Size = new System.Drawing.Size(253, 20);
this.contentID.TabIndex = 9;
this.contentID.Text = "IV0000-GMSP00001_00-GAMEMAKERSTUDIO0";
this.contentID.TextChanged += new System.EventHandler(this.contentID_TextChanged);
//
// browsePic
//
this.browsePic.Location = new System.Drawing.Point(280, 108);
this.browsePic.Name = "browsePic";
this.browsePic.Size = new System.Drawing.Size(75, 23);
this.browsePic.TabIndex = 8;
this.browsePic.Text = "Browse";
this.browsePic.UseVisualStyleBackColor = true;
this.browsePic.Click += new System.EventHandler(this.browsePic_Click);
//
// picPath
//
this.picPath.Location = new System.Drawing.Point(6, 108);
this.picPath.Name = "picPath";
this.picPath.ReadOnly = true;
this.picPath.Size = new System.Drawing.Size(268, 20);
this.picPath.TabIndex = 7;
this.picPath.Text = "img\\pic1.png";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(3, 92);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(140, 13);
this.label4.TabIndex = 6;
this.label4.Text = "Pic1.png (PNG 1920x1080):";
//
// browseIcon
//
this.browseIcon.Location = new System.Drawing.Point(280, 66);
this.browseIcon.Name = "browseIcon";
this.browseIcon.Size = new System.Drawing.Size(75, 23);
this.browseIcon.TabIndex = 5;
this.browseIcon.Text = "Browse";
this.browseIcon.UseVisualStyleBackColor = true;
this.browseIcon.Click += new System.EventHandler(this.browseIcon_Click);
//
// iconPath
//
this.iconPath.Location = new System.Drawing.Point(6, 69);
this.iconPath.Name = "iconPath";
this.iconPath.ReadOnly = true;
this.iconPath.Size = new System.Drawing.Size(268, 20);
this.iconPath.TabIndex = 4;
this.iconPath.Text = "img\\icon0.png";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(3, 53);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(134, 13);
this.label3.TabIndex = 3;
this.label3.Text = "Icon0.png (PNG 512x512):";
//
// browseProject
//
this.browseProject.Location = new System.Drawing.Point(280, 28);
this.browseProject.Name = "browseProject";
this.browseProject.Size = new System.Drawing.Size(75, 23);
this.browseProject.TabIndex = 2;
this.browseProject.Text = "Browse";
this.browseProject.UseVisualStyleBackColor = true;
this.browseProject.Click += new System.EventHandler(this.browseProject_Click);
//
// projectPath
//
this.projectPath.Location = new System.Drawing.Point(6, 30);
this.projectPath.Name = "projectPath";
this.projectPath.ReadOnly = true;
this.projectPath.Size = new System.Drawing.Size(268, 20);
this.projectPath.TabIndex = 1;
this.projectPath.Text = "(none)";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(3, 14);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(123, 13);
this.label2.TabIndex = 0;
this.label2.Text = "Project File (.gmx / .yyp):";
//
// Logo
//
this.Logo.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("Logo.BackgroundImage")));
this.Logo.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.Logo.Location = new System.Drawing.Point(1022, 332);
this.Logo.Name = "Logo";
this.Logo.Size = new System.Drawing.Size(257, 206);
this.Logo.TabIndex = 8;
this.Logo.TabStop = false;
//
// CreatePKG
//
this.CreatePKG.Enabled = false;
this.CreatePKG.Location = new System.Drawing.Point(1022, 544);
this.CreatePKG.Name = "CreatePKG";
this.CreatePKG.Size = new System.Drawing.Size(257, 23);
this.CreatePKG.TabIndex = 9;
this.CreatePKG.Text = "Make PKG";
this.CreatePKG.UseVisualStyleBackColor = true;
this.CreatePKG.Click += new System.EventHandler(this.CreatePKG_Click);
//
// panel1
//
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panel1.Controls.Add(this.GmacOut);
this.panel1.Location = new System.Drawing.Point(3, 573);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(1333, 107);
this.panel1.TabIndex = 10;
//
// GmacOut
//
this.GmacOut.Dock = System.Windows.Forms.DockStyle.Fill;
this.GmacOut.Location = new System.Drawing.Point(0, 0);
this.GmacOut.Multiline = true;
this.GmacOut.Name = "GmacOut";
this.GmacOut.ReadOnly = true;
this.GmacOut.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.GmacOut.Size = new System.Drawing.Size(1329, 103);
this.GmacOut.TabIndex = 0;
//
// StartupPreview
//
this.StartupPreview.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("StartupPreview.BackgroundImage")));
this.StartupPreview.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.StartupPreview.Location = new System.Drawing.Point(3, 25);
this.StartupPreview.Name = "StartupPreview";
this.StartupPreview.Size = new System.Drawing.Size(960, 544);
this.StartupPreview.TabIndex = 6;
//
// GayMakerStudio
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1344, 691);
this.Controls.Add(this.panel1);
this.Controls.Add(this.CreatePKG);
this.Controls.Add(this.Logo);
this.Controls.Add(this.GameSettings);
this.Controls.Add(this.label1);
this.Controls.Add(this.startupScreen);
this.Controls.Add(this.homeScreen);
this.Controls.Add(this.homePreview);
this.Controls.Add(this.StartupPreview);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "GayMakerStudio";
this.Text = "GayMaker: Studio v";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GayMakerStudio_FormClosing);
this.Load += new System.EventHandler(this.GayMakerStudio_Load);
((System.ComponentModel.ISupportInitialize)(this.IconPreview)).EndInit();
this.homePreview.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.IconPreview2)).EndInit();
this.GameSettings.ResumeLayout(false);
this.GameSettings.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Logo)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.RadioButton homeScreen;
private System.Windows.Forms.RadioButton startupScreen;
private System.Windows.Forms.PictureBox IconPreview;
private System.Windows.Forms.Label Title;
private System.Windows.Forms.Panel homePreview;
private System.Windows.Forms.PictureBox IconPreview2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Panel GameSettings;
private System.Windows.Forms.PictureBox Logo;
private System.Windows.Forms.Button CreatePKG;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.TextBox GmacOut;
private System.Windows.Forms.Button browseProject;
private System.Windows.Forms.TextBox projectPath;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button browseIcon;
private System.Windows.Forms.TextBox iconPath;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox titleName;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox titleID;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox contentID;
private System.Windows.Forms.Button browsePic;
private System.Windows.Forms.TextBox picPath;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Panel StartupPreview;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label GlobalGameSettings;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.ComboBox VersionSelect;
}
}
namespace GayMaker_Studio
{
partial class GayMakerStudio
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GayMakerStudio));
this.homeScreen = new System.Windows.Forms.RadioButton();
this.startupScreen = new System.Windows.Forms.RadioButton();
this.IconPreview = new System.Windows.Forms.PictureBox();
this.Title = new System.Windows.Forms.Label();
this.homePreview = new System.Windows.Forms.Panel();
this.IconPreview2 = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.GameSettings = new System.Windows.Forms.Panel();
this.label8 = new System.Windows.Forms.Label();
this.VersionSelect = new System.Windows.Forms.ComboBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.GlobalGameSettings = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.titleName = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.titleID = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.contentID = new System.Windows.Forms.TextBox();
this.browsePic = new System.Windows.Forms.Button();
this.picPath = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.browseIcon = new System.Windows.Forms.Button();
this.iconPath = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.browseProject = new System.Windows.Forms.Button();
this.projectPath = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.Logo = new System.Windows.Forms.PictureBox();
this.CreatePKG = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.GmacOut = new System.Windows.Forms.TextBox();
this.StartupPreview = new System.Windows.Forms.Panel();
((System.ComponentModel.ISupportInitialize)(this.IconPreview)).BeginInit();
this.homePreview.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.IconPreview2)).BeginInit();
this.GameSettings.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.Logo)).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// homeScreen
//
this.homeScreen.AutoSize = true;
this.homeScreen.Location = new System.Drawing.Point(69, 4);
this.homeScreen.Name = "homeScreen";
this.homeScreen.Size = new System.Drawing.Size(53, 17);
this.homeScreen.TabIndex = 0;
this.homeScreen.TabStop = true;
this.homeScreen.Text = "Home";
this.homeScreen.UseVisualStyleBackColor = true;
this.homeScreen.CheckedChanged += new System.EventHandler(this.homeScreen_CheckedChanged);
//
// startupScreen
//
this.startupScreen.AutoSize = true;
this.startupScreen.Location = new System.Drawing.Point(128, 4);
this.startupScreen.Name = "startupScreen";
this.startupScreen.Size = new System.Drawing.Size(59, 17);
this.startupScreen.TabIndex = 1;
this.startupScreen.TabStop = true;
this.startupScreen.Text = "Startup";
this.startupScreen.UseVisualStyleBackColor = true;
this.startupScreen.CheckedChanged += new System.EventHandler(this.startupScreen_CheckedChanged);
//
// IconPreview
//
this.IconPreview.BackColor = System.Drawing.Color.Transparent;
this.IconPreview.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("IconPreview.BackgroundImage")));
this.IconPreview.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.IconPreview.Location = new System.Drawing.Point(144, 105);
this.IconPreview.Name = "IconPreview";
this.IconPreview.Size = new System.Drawing.Size(165, 166);
this.IconPreview.TabIndex = 3;
this.IconPreview.TabStop = false;
this.IconPreview.Click += new System.EventHandler(this.IconPreview_Click);
//
// Title
//
this.Title.BackColor = System.Drawing.Color.Transparent;
this.Title.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.Title.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Title.ForeColor = System.Drawing.Color.White;
this.Title.Location = new System.Drawing.Point(312, 278);
this.Title.Name = "Title";
this.Title.Size = new System.Drawing.Size(292, 23);
this.Title.TabIndex = 4;
this.Title.Text = "GameMaker: Studio";
//
// homePreview
//
this.homePreview.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("homePreview.BackgroundImage")));
this.homePreview.Controls.Add(this.IconPreview2);
this.homePreview.Controls.Add(this.IconPreview);
this.homePreview.Controls.Add(this.Title);
this.homePreview.Location = new System.Drawing.Point(3, 25);
this.homePreview.Name = "homePreview";
this.homePreview.Size = new System.Drawing.Size(960, 544);
this.homePreview.TabIndex = 5;
//
// IconPreview2
//
this.IconPreview2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("IconPreview2.BackgroundImage")));
this.IconPreview2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.IconPreview2.Location = new System.Drawing.Point(316, 104);
this.IconPreview2.Name = "IconPreview2";
this.IconPreview2.Size = new System.Drawing.Size(100, 102);
this.IconPreview2.TabIndex = 5;
this.IconPreview2.TabStop = false;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 4);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(48, 13);
this.label1.TabIndex = 6;
this.label1.Text = "Preview:";
//
// GameSettings
//
this.GameSettings.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.GameSettings.Controls.Add(this.label8);
this.GameSettings.Controls.Add(this.VersionSelect);
this.GameSettings.Controls.Add(this.pictureBox1);
this.GameSettings.Controls.Add(this.GlobalGameSettings);
this.GameSettings.Controls.Add(this.label7);
this.GameSettings.Controls.Add(this.titleName);
this.GameSettings.Controls.Add(this.label6);
this.GameSettings.Controls.Add(this.titleID);
this.GameSettings.Controls.Add(this.label5);
this.GameSettings.Controls.Add(this.contentID);
this.GameSettings.Controls.Add(this.browsePic);
this.GameSettings.Controls.Add(this.picPath);
this.GameSettings.Controls.Add(this.label4);
this.GameSettings.Controls.Add(this.browseIcon);
this.GameSettings.Controls.Add(this.iconPath);
this.GameSettings.Controls.Add(this.label3);
this.GameSettings.Controls.Add(this.browseProject);
this.GameSettings.Controls.Add(this.projectPath);
this.GameSettings.Controls.Add(this.label2);
this.GameSettings.Location = new System.Drawing.Point(968, 25);
this.GameSettings.Name = "GameSettings";
this.GameSettings.Size = new System.Drawing.Size(368, 301);
this.GameSettings.TabIndex = 7;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(182, 276);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(65, 13);
this.label8.TabIndex = 18;
this.label8.Text = "GM Version:";
//
// VersionSelect
//
this.VersionSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.VersionSelect.FormattingEnabled = true;
this.VersionSelect.Items.AddRange(new object[] {
"1.4.9999"});
this.VersionSelect.Location = new System.Drawing.Point(253, 270);
this.VersionSelect.Name = "VersionSelect";
this.VersionSelect.Size = new System.Drawing.Size(103, 21);
this.VersionSelect.TabIndex = 17;
this.VersionSelect.SelectedIndexChanged += new System.EventHandler(this.VersionSelect_SelectedIndexChanged);
//
// pictureBox1
//
this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage")));
this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.pictureBox1.Location = new System.Drawing.Point(6, 272);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(17, 18);
this.pictureBox1.TabIndex = 16;
this.pictureBox1.TabStop = false;
//
// GlobalGameSettings
//
this.GlobalGameSettings.AutoSize = true;
this.GlobalGameSettings.Enabled = false;
this.GlobalGameSettings.Location = new System.Drawing.Point(29, 276);
this.GlobalGameSettings.Name = "GlobalGameSettings";
this.GlobalGameSettings.Size = new System.Drawing.Size(109, 13);
this.GlobalGameSettings.TabIndex = 15;
this.GlobalGameSettings.Text = "Global Game Settings";
this.GlobalGameSettings.DoubleClick += new System.EventHandler(this.GlobalGameSettings_DoubleClick);
this.GlobalGameSettings.MouseEnter += new System.EventHandler(this.GlobalGameSettings_MouseEnter);
this.GlobalGameSettings.MouseLeave += new System.EventHandler(this.GlobalGameSettings_MouseLeave);
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(3, 170);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(30, 13);
this.label7.TabIndex = 14;
this.label7.Text = "Title:";
//
// titleName
//
this.titleName.Location = new System.Drawing.Point(6, 186);
this.titleName.MaxLength = 40;
this.titleName.Multiline = true;
this.titleName.Name = "titleName";
this.titleName.Size = new System.Drawing.Size(355, 78);
this.titleName.TabIndex = 13;
this.titleName.Text = "GameMaker: Studio";
this.titleName.TextChanged += new System.EventHandler(this.titleName_TextChanged);
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(262, 134);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(44, 13);
this.label6.TabIndex = 12;
this.label6.Text = "Title ID:";
//
// titleID
//
this.titleID.Location = new System.Drawing.Point(262, 147);
this.titleID.Name = "titleID";
this.titleID.ReadOnly = true;
this.titleID.Size = new System.Drawing.Size(100, 20);
this.titleID.TabIndex = 11;
this.titleID.Text = "GMSP00001";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(3, 131);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(61, 13);
this.label5.TabIndex = 10;
this.label5.Text = "Content ID:";
//
// contentID
//
this.contentID.Location = new System.Drawing.Point(3, 147);
this.contentID.MaxLength = 36;
this.contentID.Name = "contentID";
this.contentID.Size = new System.Drawing.Size(253, 20);
this.contentID.TabIndex = 9;
this.contentID.Text = "IV0000-GMSP00001_00-GAMEMAKERSTUDIO0";
this.contentID.TextChanged += new System.EventHandler(this.contentID_TextChanged);
//
// browsePic
//
this.browsePic.Location = new System.Drawing.Point(280, 108);
this.browsePic.Name = "browsePic";
this.browsePic.Size = new System.Drawing.Size(75, 23);
this.browsePic.TabIndex = 8;
this.browsePic.Text = "Browse";
this.browsePic.UseVisualStyleBackColor = true;
this.browsePic.Click += new System.EventHandler(this.browsePic_Click);
//
// picPath
//
this.picPath.Location = new System.Drawing.Point(6, 108);
this.picPath.Name = "picPath";
this.picPath.ReadOnly = true;
this.picPath.Size = new System.Drawing.Size(268, 20);
this.picPath.TabIndex = 7;
this.picPath.Text = "img\\pic1.png";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(3, 92);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(140, 13);
this.label4.TabIndex = 6;
this.label4.Text = "Pic1.png (PNG 1920x1080):";
//
// browseIcon
//
this.browseIcon.Location = new System.Drawing.Point(280, 66);
this.browseIcon.Name = "browseIcon";
this.browseIcon.Size = new System.Drawing.Size(75, 23);
this.browseIcon.TabIndex = 5;
this.browseIcon.Text = "Browse";
this.browseIcon.UseVisualStyleBackColor = true;
this.browseIcon.Click += new System.EventHandler(this.browseIcon_Click);
//
// iconPath
//
this.iconPath.Location = new System.Drawing.Point(6, 69);
this.iconPath.Name = "iconPath";
this.iconPath.ReadOnly = true;
this.iconPath.Size = new System.Drawing.Size(268, 20);
this.iconPath.TabIndex = 4;
this.iconPath.Text = "img\\icon0.png";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(3, 53);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(134, 13);
this.label3.TabIndex = 3;
this.label3.Text = "Icon0.png (PNG 512x512):";
//
// browseProject
//
this.browseProject.Location = new System.Drawing.Point(280, 28);
this.browseProject.Name = "browseProject";
this.browseProject.Size = new System.Drawing.Size(75, 23);
this.browseProject.TabIndex = 2;
this.browseProject.Text = "Browse";
this.browseProject.UseVisualStyleBackColor = true;
this.browseProject.Click += new System.EventHandler(this.browseProject_Click);
//
// projectPath
//
this.projectPath.Location = new System.Drawing.Point(6, 30);
this.projectPath.Name = "projectPath";
this.projectPath.ReadOnly = true;
this.projectPath.Size = new System.Drawing.Size(268, 20);
this.projectPath.TabIndex = 1;
this.projectPath.Text = "(none)";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(3, 14);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(123, 13);
this.label2.TabIndex = 0;
this.label2.Text = "Project File (.gmx / .yyp):";
//
// Logo
//
this.Logo.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("Logo.BackgroundImage")));
this.Logo.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.Logo.Location = new System.Drawing.Point(1022, 332);
this.Logo.Name = "Logo";
this.Logo.Size = new System.Drawing.Size(257, 206);
this.Logo.TabIndex = 8;
this.Logo.TabStop = false;
//
// CreatePKG
//
this.CreatePKG.Enabled = false;
this.CreatePKG.Location = new System.Drawing.Point(1022, 544);
this.CreatePKG.Name = "CreatePKG";
this.CreatePKG.Size = new System.Drawing.Size(257, 23);
this.CreatePKG.TabIndex = 9;
this.CreatePKG.Text = "Make PKG";
this.CreatePKG.UseVisualStyleBackColor = true;
this.CreatePKG.Click += new System.EventHandler(this.CreatePKG_Click);
//
// panel1
//
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panel1.Controls.Add(this.GmacOut);
this.panel1.Location = new System.Drawing.Point(3, 573);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(1333, 107);
this.panel1.TabIndex = 10;
//
// GmacOut
//
this.GmacOut.Dock = System.Windows.Forms.DockStyle.Fill;
this.GmacOut.Location = new System.Drawing.Point(0, 0);
this.GmacOut.Multiline = true;
this.GmacOut.Name = "GmacOut";
this.GmacOut.ReadOnly = true;
this.GmacOut.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.GmacOut.Size = new System.Drawing.Size(1329, 103);
this.GmacOut.TabIndex = 0;
//
// StartupPreview
//
this.StartupPreview.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("StartupPreview.BackgroundImage")));
this.StartupPreview.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.StartupPreview.Location = new System.Drawing.Point(3, 25);
this.StartupPreview.Name = "StartupPreview";
this.StartupPreview.Size = new System.Drawing.Size(960, 544);
this.StartupPreview.TabIndex = 6;
//
// GayMakerStudio
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1344, 691);
this.Controls.Add(this.panel1);
this.Controls.Add(this.CreatePKG);
this.Controls.Add(this.Logo);
this.Controls.Add(this.GameSettings);
this.Controls.Add(this.label1);
this.Controls.Add(this.startupScreen);
this.Controls.Add(this.homeScreen);
this.Controls.Add(this.homePreview);
this.Controls.Add(this.StartupPreview);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "GayMakerStudio";
this.Text = "GayMaker: Studio v";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GayMakerStudio_FormClosing);
this.Load += new System.EventHandler(this.GayMakerStudio_Load);
((System.ComponentModel.ISupportInitialize)(this.IconPreview)).EndInit();
this.homePreview.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.IconPreview2)).EndInit();
this.GameSettings.ResumeLayout(false);
this.GameSettings.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Logo)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.RadioButton homeScreen;
private System.Windows.Forms.RadioButton startupScreen;
private System.Windows.Forms.PictureBox IconPreview;
private System.Windows.Forms.Label Title;
private System.Windows.Forms.Panel homePreview;
private System.Windows.Forms.PictureBox IconPreview2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Panel GameSettings;
private System.Windows.Forms.PictureBox Logo;
private System.Windows.Forms.Button CreatePKG;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.TextBox GmacOut;
private System.Windows.Forms.Button browseProject;
private System.Windows.Forms.TextBox projectPath;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button browseIcon;
private System.Windows.Forms.TextBox iconPath;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox titleName;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox titleID;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox contentID;
private System.Windows.Forms.Button browsePic;
private System.Windows.Forms.TextBox picPath;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Panel StartupPreview;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label GlobalGameSettings;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.ComboBox VersionSelect;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GayMaker_Studio
{
static class Program
{
public static GayMakerStudio GMS;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
GMS = new GayMakerStudio();
Application.Run(GMS);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GayMaker_Studio
{
static class Program
{
public static GayMakerStudio GMS;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
GMS = new GayMakerStudio();
Application.Run(GMS);
}
}
}

View File

@ -1,36 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("GayMaker-Studio")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GayMaker-Studio")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("a574f9f8-d3b2-4ef6-80de-5d546c43b57d")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("GayMaker-Studio")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GayMaker-Studio")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("a574f9f8-d3b2-4ef6-80de-5d546c43b57d")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -1,71 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace GayMaker_Studio.Properties
{
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GayMaker_Studio.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace GayMaker_Studio.Properties
{
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GayMaker_Studio.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

View File

@ -1,117 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,30 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace GayMaker_Studio.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace GayMaker_Studio.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@ -1,150 +1,150 @@
namespace GayMaker_Studio
{
partial class VersionManager
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VersionManager));
this.label1 = new System.Windows.Forms.Label();
this.DownloadList = new System.Windows.Forms.ListBox();
this.DownloadProgress = new System.Windows.Forms.ProgressBar();
this.StatusText = new System.Windows.Forms.Label();
this.DownloadButton = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.DownloadedList = new System.Windows.Forms.ListBox();
this.DeleteVersion = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(109, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Available Downloads:";
//
// DownloadList
//
this.DownloadList.FormattingEnabled = true;
this.DownloadList.Location = new System.Drawing.Point(12, 25);
this.DownloadList.Name = "DownloadList";
this.DownloadList.Size = new System.Drawing.Size(461, 186);
this.DownloadList.TabIndex = 1;
//
// DownloadProgress
//
this.DownloadProgress.Location = new System.Drawing.Point(12, 262);
this.DownloadProgress.Name = "DownloadProgress";
this.DownloadProgress.Size = new System.Drawing.Size(461, 23);
this.DownloadProgress.TabIndex = 2;
//
// StatusText
//
this.StatusText.AutoSize = true;
this.StatusText.Location = new System.Drawing.Point(9, 246);
this.StatusText.Name = "StatusText";
this.StatusText.Size = new System.Drawing.Size(52, 13);
this.StatusText.TabIndex = 3;
this.StatusText.Text = "Waiting...";
//
// DownloadButton
//
this.DownloadButton.Location = new System.Drawing.Point(12, 220);
this.DownloadButton.Name = "DownloadButton";
this.DownloadButton.Size = new System.Drawing.Size(461, 23);
this.DownloadButton.TabIndex = 4;
this.DownloadButton.Text = "Download This Version";
this.DownloadButton.UseVisualStyleBackColor = true;
this.DownloadButton.Click += new System.EventHandler(this.DownloadButton_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(12, 288);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(110, 13);
this.label2.TabIndex = 5;
this.label2.Text = "Allready Downloaded:";
//
// DownloadedList
//
this.DownloadedList.FormattingEnabled = true;
this.DownloadedList.Items.AddRange(new object[] {
"1.4.9999"});
this.DownloadedList.Location = new System.Drawing.Point(12, 304);
this.DownloadedList.Name = "DownloadedList";
this.DownloadedList.Size = new System.Drawing.Size(461, 199);
this.DownloadedList.TabIndex = 6;
//
// DeleteVersion
//
this.DeleteVersion.Location = new System.Drawing.Point(12, 509);
this.DeleteVersion.Name = "DeleteVersion";
this.DeleteVersion.Size = new System.Drawing.Size(461, 23);
this.DeleteVersion.TabIndex = 7;
this.DeleteVersion.Text = "Delete This Version";
this.DeleteVersion.UseVisualStyleBackColor = true;
this.DeleteVersion.Click += new System.EventHandler(this.DeleteVersion_Click);
//
// VersionManager
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(485, 544);
this.Controls.Add(this.DeleteVersion);
this.Controls.Add(this.DownloadedList);
this.Controls.Add(this.label2);
this.Controls.Add(this.DownloadButton);
this.Controls.Add(this.StatusText);
this.Controls.Add(this.DownloadProgress);
this.Controls.Add(this.DownloadList);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "VersionManager";
this.ShowInTaskbar = false;
this.Text = "GameMaker Studio Version Manager";
this.Load += new System.EventHandler(this.VersionManager_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ListBox DownloadList;
private System.Windows.Forms.ProgressBar DownloadProgress;
private System.Windows.Forms.Label StatusText;
private System.Windows.Forms.Button DownloadButton;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ListBox DownloadedList;
private System.Windows.Forms.Button DeleteVersion;
}
namespace GayMaker_Studio
{
partial class VersionManager
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VersionManager));
this.label1 = new System.Windows.Forms.Label();
this.DownloadList = new System.Windows.Forms.ListBox();
this.DownloadProgress = new System.Windows.Forms.ProgressBar();
this.StatusText = new System.Windows.Forms.Label();
this.DownloadButton = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.DownloadedList = new System.Windows.Forms.ListBox();
this.DeleteVersion = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(109, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Available Downloads:";
//
// DownloadList
//
this.DownloadList.FormattingEnabled = true;
this.DownloadList.Location = new System.Drawing.Point(12, 25);
this.DownloadList.Name = "DownloadList";
this.DownloadList.Size = new System.Drawing.Size(461, 186);
this.DownloadList.TabIndex = 1;
//
// DownloadProgress
//
this.DownloadProgress.Location = new System.Drawing.Point(12, 262);
this.DownloadProgress.Name = "DownloadProgress";
this.DownloadProgress.Size = new System.Drawing.Size(461, 23);
this.DownloadProgress.TabIndex = 2;
//
// StatusText
//
this.StatusText.AutoSize = true;
this.StatusText.Location = new System.Drawing.Point(9, 246);
this.StatusText.Name = "StatusText";
this.StatusText.Size = new System.Drawing.Size(52, 13);
this.StatusText.TabIndex = 3;
this.StatusText.Text = "Waiting...";
//
// DownloadButton
//
this.DownloadButton.Location = new System.Drawing.Point(12, 220);
this.DownloadButton.Name = "DownloadButton";
this.DownloadButton.Size = new System.Drawing.Size(461, 23);
this.DownloadButton.TabIndex = 4;
this.DownloadButton.Text = "Download This Version";
this.DownloadButton.UseVisualStyleBackColor = true;
this.DownloadButton.Click += new System.EventHandler(this.DownloadButton_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(12, 288);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(110, 13);
this.label2.TabIndex = 5;
this.label2.Text = "Allready Downloaded:";
//
// DownloadedList
//
this.DownloadedList.FormattingEnabled = true;
this.DownloadedList.Items.AddRange(new object[] {
"1.4.9999"});
this.DownloadedList.Location = new System.Drawing.Point(12, 304);
this.DownloadedList.Name = "DownloadedList";
this.DownloadedList.Size = new System.Drawing.Size(461, 199);
this.DownloadedList.TabIndex = 6;
//
// DeleteVersion
//
this.DeleteVersion.Location = new System.Drawing.Point(12, 509);
this.DeleteVersion.Name = "DeleteVersion";
this.DeleteVersion.Size = new System.Drawing.Size(461, 23);
this.DeleteVersion.TabIndex = 7;
this.DeleteVersion.Text = "Delete This Version";
this.DeleteVersion.UseVisualStyleBackColor = true;
this.DeleteVersion.Click += new System.EventHandler(this.DeleteVersion_Click);
//
// VersionManager
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(485, 544);
this.Controls.Add(this.DeleteVersion);
this.Controls.Add(this.DownloadedList);
this.Controls.Add(this.label2);
this.Controls.Add(this.DownloadButton);
this.Controls.Add(this.StatusText);
this.Controls.Add(this.DownloadProgress);
this.Controls.Add(this.DownloadList);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "VersionManager";
this.ShowInTaskbar = false;
this.Text = "GameMaker Studio Version Manager";
this.Load += new System.EventHandler(this.VersionManager_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ListBox DownloadList;
private System.Windows.Forms.ProgressBar DownloadProgress;
private System.Windows.Forms.Label StatusText;
private System.Windows.Forms.Button DownloadButton;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ListBox DownloadedList;
private System.Windows.Forms.Button DeleteVersion;
}
}

View File

@ -1,358 +1,360 @@
using GMTools;
using Ionic.Zip;
using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Cache;
using System.Threading;
using System.Windows.Forms;
namespace GayMaker_Studio
{
public partial class VersionManager : Form
{
//private const int NUMBER_OF_CDN_URLS = 4; //Uncomment for GMS2
private const int NUMBER_OF_CDN_URLS = 2;
private string currentDownload = "";
private void CopyDir(string source, string target)
{
if (!Directory.Exists(target)) Directory.CreateDirectory(target);
string[] sysEntries = Directory.GetFileSystemEntries(source);
foreach (string sysEntry in sysEntries)
{
string fileName = Path.GetFileName(sysEntry);
string targetPath = Path.Combine(target, fileName);
if (Directory.Exists(sysEntry))
CopyDir(sysEntry, targetPath);
else
{
File.Copy(sysEntry, targetPath, true);
}
}
}
private string getUrlFileName(string url)
{
string filename = Path.GetFileName(new Uri(url).LocalPath);
if (!Path.HasExtension(filename))
filename = Path.ChangeExtension(filename, ".zip");
return filename;
}
public VersionManager()
{
//Bypass Windows DPI Scaling
Font = new Font(Font.Name, 8.25f * 96f / CreateGraphics().DpiX, Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
InitializeComponent();
}
private void VersionManager_Load(object sender, EventArgs e)
{
this.Owner = Program.GMS;
for (int cdnIndex = 1; cdnIndex <= NUMBER_OF_CDN_URLS; cdnIndex++)
{
Thread downloadThread = new Thread(() =>
{
CDN.UseCDN(CDNUrls.FromIndex(cdnIndex));
});
downloadThread.Start();
while (downloadThread.IsAlive)
Application.DoEvents();
foreach (String Version in CDN.GetVersions("ps4"))
{
if (Version != "1.4.9999" || DownloadList.Items.Contains(Version))
DownloadList.Items.Add(Version);
}
}
foreach (String dir in Directory.GetDirectories(@"versions"))
{
DownloadedList.Items.Add(Path.GetFileName(dir));
DownloadList.Items.Remove(Path.GetFileName(dir));
}
}
private void startDownload(string URL, string path)
{
currentDownload = getUrlFileName(URL);
DownloadProgress.Value = 0;
DownloadProgress.Style = ProgressBarStyle.Continuous;
WebClient wc = new WebClient();
wc.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
wc.Dispose();
WebClient client = new WebClient();
client.Headers.Add("pragma", "no-cache");
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileAsync(new Uri(URL), path);
while (client.IsBusy)
Application.DoEvents();
StatusText.Text = "Waiting...";
DownloadProgress.Value = 0;
DownloadProgress.Style = ProgressBarStyle.Continuous;
}
private void extractFile(string zipfile, string path, string password = "")
{
DownloadProgress.Style = ProgressBarStyle.Marquee;
Thread extractThread = new Thread(() =>
{
if (Directory.Exists(path))
{
while (true)
{
try
{
Directory.Delete(path, true);
}
catch (Exception) { };
break;
}
}
Thread.CurrentThread.IsBackground = true;
Invoke((Action)delegate { StatusText.Text = "Extracting: " + Path.GetFileName(zipfile); });
using (ZipFile archive = new ZipFile(zipfile))
{
archive.Password = password;
archive.Encryption = EncryptionAlgorithm.PkzipWeak;
archive.ExtractAll(path);
}
});
extractThread.Start();
while (extractThread.IsAlive)
Application.DoEvents();
StatusText.Text = "Waiting...";
DownloadProgress.Value = 0;
DownloadProgress.Style = ProgressBarStyle.Continuous;
File.Delete(zipfile);
}
private void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
DownloadProgress.Value = e.ProgressPercentage;
StatusText.Text = "Downloading: "+ currentDownload + " " + e.ProgressPercentage + "% (" + e.BytesReceived + "b / " + e.TotalBytesToReceive + "b)";
}
private void DownloadButton_Click(object sender, EventArgs e)
{
if (DownloadList.SelectedIndex <= -1) { return; }
DownloadList.Enabled = false;
DownloadButton.Enabled = false;
ControlBox = false;
string version = DownloadList.SelectedItem.ToString();
for (int cdnIndex = 1; cdnIndex <= NUMBER_OF_CDN_URLS; cdnIndex++)
{
Thread downloadThread = new Thread(() =>
{
CDN.UseCDN(CDNUrls.FromIndex(cdnIndex));
});
downloadThread.Start();
while (downloadThread.IsAlive)
Application.DoEvents();
string ps4Url = CDN.GetModuleForVersion(version, "ps4");
if (ps4Url != "NF")
{
string ps4Filename = getUrlFileName(ps4Url);
string ps4Password = CDN.GetPassword(ps4Filename);
string gamemakerUrl = CDN.GetModuleForVersion(version, "original");
string gamemakerFilename = getUrlFileName(gamemakerUrl);
string gamemakerPassword = CDN.GetPassword(gamemakerFilename);
startDownload(ps4Url, ps4Filename);
extractFile(ps4Filename, @"_ps4", ps4Password);
startDownload(gamemakerUrl, gamemakerFilename);
extractFile(gamemakerFilename, @"_gamemaker", gamemakerPassword);
DownloadProgress.Style = ProgressBarStyle.Marquee;
StatusText.Text = "Copying Files...";
Application.DoEvents();
Thread copyThread = new Thread(() =>
{
Directory.CreateDirectory(@"versions\\" + version + "\\Runner");
Directory.CreateDirectory(@"versions\\" + version + "\\Shaders");
if (version.StartsWith("1."))
{
try
{
File.Copy(@"_gamemaker\\GMAssetCompiler.exe", @"versions\\" + version + "\\GMAssetCompiler.exe", true);
File.Copy(@"_gamemaker\\ffmpeg.exe", @"versions\\" + version + "\\ffmpeg.exe", true);
File.Copy(@"_gamemaker\\BouncyCastle.Crypto.dll", @"versions\\" + version + "\\BouncyCastle.Crypto.dll", true);
File.Copy(@"_gamemaker\\spine-csharp.dll", @"versions\\" + version + "\\spine-csharp.dll", true);
File.Copy(@"_gamemaker\\SharpCompress.dll", @"versions\\" + version + "\\SharpCompress.dll", true);
File.Copy(@"_gamemaker\\Ionic.Zip.Reduced.dll", @"versions\\" + version + "\\Ionic.Zip.Reduced.dll", true);
File.Copy(@"_gamemaker\\Newtonsoft.Json.dll", @"versions\\" + version + "\\Newtonsoft.Json.dll", true);
}
catch (Exception) { };
}
else if(version.StartsWith("2."))
{
try
{
File.Copy(@"_gamemaker\\bin\\GMAssetCompiler.exe", @"versions\\" + version + "\\GMAssetCompiler.exe", true);
File.Copy(@"_gamemaker\\bin\\ffmpeg.exe", @"versions\\" + version + "\\ffmpeg.exe", true);
File.Copy(@"_gamemaker\\bin\\Newtonsoft.Json.dll", @"versions\\" + version + "\\Newtonsoft.Json.dll", true);
File.Copy(@"_gamemaker\\bin\\BouncyCastle.Crypto.dll", @"versions\\" + version + "\\BouncyCastle.Crypto.dll", true);
File.Copy(@"_gamemaker\\bin\\spine-csharp.dll", @"versions\\" + version + "\\spine-csharp.dll", true);
File.Copy(@"_gamemaker\\bin\\SharpCompress.dll", @"versions\\" + version + "\\SharpCompress.dll", true);
File.Copy(@"_gamemaker\\bin\\Ionic.Zip.Reduced.dll", @"versions\\" + version + "\\Ionic.Zip.Reduced.dll", true);
}
catch (Exception) { };
}
CopyDir(@"Runner", @"versions\\" + version + "\\Runner");
if(version.StartsWith("1."))
{
CopyDir(@"_gamemaker\\Shaders", @"versions\\" + version + "\\Shaders");
}
else if(version.StartsWith("2."))
{
CopyDir(@"_gamemaker\\bin\Shaders", @"versions\\" + version + "\\Shaders");
CopyDir(@"_gamemaker\\BaseProject", @"versions\\" + version + "\\BaseProject");
CopyDir(@"_ps4\\BaseProject", @"versions\\" + version + "\\BaseProject");
}
File.Delete(@"versions\\" + version + "\\Runner\\eboot.bin");
try
{
File.Copy(@"_ps4\\PS4\\PSSL_PShaderCommon.shader", @"versions\\" + version + "\\Shaders\\PSSL_PShaderCommon.shade", true);
File.Copy(@"_ps4\\PS4\\PSSL_VShaderCommon.shader", @"versions\\" + version + "\\Shaders\\PSSL_VShaderCommon.shader", true);
File.Copy(@"_ps4\\PS4\\HLSL_to_PSSL.h", @"versions\\" + version + "\\Shaders\\HLSL_to_PSSL.h", true);
}
catch (Exception){ };
});
copyThread.Start();
while (copyThread.IsAlive)
Application.DoEvents();
if(version.StartsWith("2.") || version == "1.4.9999")
{
DownloadProgress.Style = ProgressBarStyle.Marquee;
StatusText.Text = "Applying SceVerDown Magic (by dots_tb)...";
Application.DoEvents();
ELF.Tools.SceVerDown(@"_ps4\\PS4\\PS4Runner.elf", 0x05008001);
}
DownloadProgress.Style = ProgressBarStyle.Marquee;
StatusText.Text = "Running Make FSELF (by flat_z)...";
Application.DoEvents();
ELF.Tools.MakeFself(@"_ps4\\PS4\\PS4Runner.elf", @"versions\\" + version + "\\Runner\\eboot.bin");
DownloadProgress.Style = ProgressBarStyle.Marquee;
StatusText.Text = "Deleting Unused Files...";
Application.DoEvents();
Thread deleteThread = new Thread(() =>
{
while(true)
{
try
{
Directory.Delete(@"_ps4", true);
Directory.Delete(@"_gamemaker", true);
}
catch (Exception) { };
break;
}
});
deleteThread.Start();
while (deleteThread.IsAlive)
Application.DoEvents();
DownloadProgress.Style = ProgressBarStyle.Continuous;
DownloadProgress.Value = 0;
StatusText.Text = "Waiting...";
DownloadedList.Items.Add(version);
DownloadList.Items.Remove(version);
DownloadList.Enabled = true;
DownloadButton.Enabled = true;
ControlBox = true;
}
}
}
private void DeleteVersion_Click(object sender, EventArgs e)
{
if (DownloadedList.SelectedIndex == -1) { return; }
string toRemove = DownloadedList.SelectedItem.ToString();
if (toRemove == "1.4.9999")
{
MessageBox.Show("Cannot delete builtin 1.4.9999 version!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
if (Directory.Exists(@"versions\\" + toRemove))
{
while (true)
{
try
{
Directory.Delete(@"versions\\" + toRemove, true);
}
catch (Exception) { };
break;
}
}
DownloadedList.Items.Remove(toRemove);
DownloadList.Items.Add(toRemove);
}
}
}
}
using GMTools;
using Ionic.Zip;
using System;
using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Cache;
using System.Threading;
using System.Windows.Forms;
namespace GayMaker_Studio
{
public partial class VersionManager : Form
{
//private const int NUMBER_OF_CDN_URLS = 4; //Uncomment for GMS2
private const int NUMBER_OF_CDN_URLS = 2;
private string currentDownload = "";
private void CopyDir(string source, string target)
{
if (!Directory.Exists(target)) Directory.CreateDirectory(target);
string[] sysEntries = Directory.GetFileSystemEntries(source);
foreach (string sysEntry in sysEntries)
{
string fileName = Path.GetFileName(sysEntry);
string targetPath = Path.Combine(target, fileName);
if (Directory.Exists(sysEntry))
CopyDir(sysEntry, targetPath);
else
{
File.Copy(sysEntry, targetPath, true);
}
}
}
private string getUrlFileName(string url)
{
string filename = Path.GetFileName(new Uri(url).LocalPath);
if (!Path.HasExtension(filename))
filename = Path.ChangeExtension(filename, ".zip");
return filename;
}
public VersionManager()
{
//Bypass Windows DPI Scaling
Font = new Font(Font.Name, 8.25f * 96f / CreateGraphics().DpiX, Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
InitializeComponent();
}
private void VersionManager_Load(object sender, EventArgs e)
{
this.Owner = Program.GMS;
Directory.CreateDirectory(@"versions");
for (int cdnIndex = 1; cdnIndex <= NUMBER_OF_CDN_URLS; cdnIndex++)
{
Thread downloadThread = new Thread(() =>
{
CDN.UseCDN(CDNUrls.FromIndex(cdnIndex));
});
downloadThread.Start();
while (downloadThread.IsAlive)
Application.DoEvents();
foreach (String Version in CDN.GetVersions("ps4"))
{
if (Version != "1.4.9999" || DownloadList.Items.Contains(Version))
DownloadList.Items.Add(Version);
}
}
foreach (String dir in Directory.GetDirectories(@"versions"))
{
DownloadedList.Items.Add(Path.GetFileName(dir));
DownloadList.Items.Remove(Path.GetFileName(dir));
}
}
private void startDownload(string URL, string path)
{
currentDownload = getUrlFileName(URL);
DownloadProgress.Value = 0;
DownloadProgress.Style = ProgressBarStyle.Continuous;
WebClient wc = new WebClient();
wc.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
wc.Dispose();
WebClient client = new WebClient();
client.Headers.Add("pragma", "no-cache");
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileAsync(new Uri(URL), path);
while (client.IsBusy)
Application.DoEvents();
StatusText.Text = "Waiting...";
DownloadProgress.Value = 0;
DownloadProgress.Style = ProgressBarStyle.Continuous;
}
private void extractFile(string zipfile, string path, string password = "")
{
DownloadProgress.Style = ProgressBarStyle.Marquee;
Thread extractThread = new Thread(() =>
{
if (Directory.Exists(path))
{
while (true)
{
try
{
Directory.Delete(path, true);
}
catch (Exception) { };
break;
}
}
Thread.CurrentThread.IsBackground = true;
Invoke((Action)delegate { StatusText.Text = "Extracting: " + Path.GetFileName(zipfile); });
using (ZipFile archive = new ZipFile(zipfile))
{
archive.Password = password;
archive.Encryption = EncryptionAlgorithm.PkzipWeak;
archive.ExtractAll(path);
}
});
extractThread.Start();
while (extractThread.IsAlive)
Application.DoEvents();
StatusText.Text = "Waiting...";
DownloadProgress.Value = 0;
DownloadProgress.Style = ProgressBarStyle.Continuous;
File.Delete(zipfile);
}
private void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
DownloadProgress.Value = e.ProgressPercentage;
StatusText.Text = "Downloading: "+ currentDownload + " " + e.ProgressPercentage + "% (" + e.BytesReceived + "b / " + e.TotalBytesToReceive + "b)";
}
private void DownloadButton_Click(object sender, EventArgs e)
{
if (DownloadList.SelectedIndex <= -1) { return; }
DownloadList.Enabled = false;
DownloadButton.Enabled = false;
ControlBox = false;
string version = DownloadList.SelectedItem.ToString();
for (int cdnIndex = 1; cdnIndex <= NUMBER_OF_CDN_URLS; cdnIndex++)
{
Thread downloadThread = new Thread(() =>
{
CDN.UseCDN(CDNUrls.FromIndex(cdnIndex));
});
downloadThread.Start();
while (downloadThread.IsAlive)
Application.DoEvents();
string ps4Url = CDN.GetModuleForVersion(version, "ps4");
if (ps4Url != "NF")
{
string ps4Filename = getUrlFileName(ps4Url);
string ps4Password = CDN.GetPassword(ps4Filename);
string gamemakerUrl = CDN.GetModuleForVersion(version, "original");
string gamemakerFilename = getUrlFileName(gamemakerUrl);
string gamemakerPassword = CDN.GetPassword(gamemakerFilename);
startDownload(ps4Url, ps4Filename);
extractFile(ps4Filename, @"_ps4", ps4Password);
startDownload(gamemakerUrl, gamemakerFilename);
extractFile(gamemakerFilename, @"_gamemaker", gamemakerPassword);
DownloadProgress.Style = ProgressBarStyle.Marquee;
StatusText.Text = "Copying Files...";
Application.DoEvents();
Thread copyThread = new Thread(() =>
{
Directory.CreateDirectory(@"versions\\" + version + "\\Runner");
Directory.CreateDirectory(@"versions\\" + version + "\\Shaders");
if (version.StartsWith("1."))
{
try
{
File.Copy(@"_gamemaker\\GMAssetCompiler.exe", @"versions\\" + version + "\\GMAssetCompiler.exe", true);
File.Copy(@"_gamemaker\\ffmpeg.exe", @"versions\\" + version + "\\ffmpeg.exe", true);
File.Copy(@"_gamemaker\\BouncyCastle.Crypto.dll", @"versions\\" + version + "\\BouncyCastle.Crypto.dll", true);
File.Copy(@"_gamemaker\\spine-csharp.dll", @"versions\\" + version + "\\spine-csharp.dll", true);
File.Copy(@"_gamemaker\\SharpCompress.dll", @"versions\\" + version + "\\SharpCompress.dll", true);
File.Copy(@"_gamemaker\\Ionic.Zip.Reduced.dll", @"versions\\" + version + "\\Ionic.Zip.Reduced.dll", true);
File.Copy(@"_gamemaker\\Newtonsoft.Json.dll", @"versions\\" + version + "\\Newtonsoft.Json.dll", true);
}
catch (Exception) { };
}
else if(version.StartsWith("2."))
{
try
{
File.Copy(@"_gamemaker\\bin\\GMAssetCompiler.exe", @"versions\\" + version + "\\GMAssetCompiler.exe", true);
File.Copy(@"_gamemaker\\bin\\ffmpeg.exe", @"versions\\" + version + "\\ffmpeg.exe", true);
File.Copy(@"_gamemaker\\bin\\Newtonsoft.Json.dll", @"versions\\" + version + "\\Newtonsoft.Json.dll", true);
File.Copy(@"_gamemaker\\bin\\BouncyCastle.Crypto.dll", @"versions\\" + version + "\\BouncyCastle.Crypto.dll", true);
File.Copy(@"_gamemaker\\bin\\spine-csharp.dll", @"versions\\" + version + "\\spine-csharp.dll", true);
File.Copy(@"_gamemaker\\bin\\SharpCompress.dll", @"versions\\" + version + "\\SharpCompress.dll", true);
File.Copy(@"_gamemaker\\bin\\Ionic.Zip.Reduced.dll", @"versions\\" + version + "\\Ionic.Zip.Reduced.dll", true);
}
catch (Exception) { };
}
CopyDir(@"Runner", @"versions\\" + version + "\\Runner");
if(version.StartsWith("1."))
{
CopyDir(@"_gamemaker\\Shaders", @"versions\\" + version + "\\Shaders");
}
else if(version.StartsWith("2."))
{
CopyDir(@"_gamemaker\\bin\Shaders", @"versions\\" + version + "\\Shaders");
CopyDir(@"_gamemaker\\BaseProject", @"versions\\" + version + "\\BaseProject");
CopyDir(@"_ps4\\BaseProject", @"versions\\" + version + "\\BaseProject");
}
File.Delete(@"versions\\" + version + "\\Runner\\eboot.bin");
try
{
File.Copy(@"_ps4\\PS4\\PSSL_PShaderCommon.shader", @"versions\\" + version + "\\Shaders\\PSSL_PShaderCommon.shade", true);
File.Copy(@"_ps4\\PS4\\PSSL_VShaderCommon.shader", @"versions\\" + version + "\\Shaders\\PSSL_VShaderCommon.shader", true);
File.Copy(@"_ps4\\PS4\\HLSL_to_PSSL.h", @"versions\\" + version + "\\Shaders\\HLSL_to_PSSL.h", true);
}
catch (Exception){ };
});
copyThread.Start();
while (copyThread.IsAlive)
Application.DoEvents();
if(version.StartsWith("2.") || version == "1.4.9999")
{
DownloadProgress.Style = ProgressBarStyle.Marquee;
StatusText.Text = "Applying SceVerDown Magic (by dots_tb)...";
Application.DoEvents();
ELF.Tools.SceVerDown(@"_ps4\\PS4\\PS4Runner.elf", 0x05008001);
}
DownloadProgress.Style = ProgressBarStyle.Marquee;
StatusText.Text = "Running Make FSELF (by flat_z)...";
Application.DoEvents();
ELF.Tools.MakeFself(@"_ps4\\PS4\\PS4Runner.elf", @"versions\\" + version + "\\Runner\\eboot.bin");
DownloadProgress.Style = ProgressBarStyle.Marquee;
StatusText.Text = "Deleting Unused Files...";
Application.DoEvents();
Thread deleteThread = new Thread(() =>
{
while(true)
{
try
{
Directory.Delete(@"_ps4", true);
Directory.Delete(@"_gamemaker", true);
}
catch (Exception) { };
break;
}
});
deleteThread.Start();
while (deleteThread.IsAlive)
Application.DoEvents();
DownloadProgress.Style = ProgressBarStyle.Continuous;
DownloadProgress.Value = 0;
StatusText.Text = "Waiting...";
DownloadedList.Items.Add(version);
DownloadList.Items.Remove(version);
DownloadList.Enabled = true;
DownloadButton.Enabled = true;
ControlBox = true;
}
}
}
private void DeleteVersion_Click(object sender, EventArgs e)
{
if (DownloadedList.SelectedIndex == -1) { return; }
string toRemove = DownloadedList.SelectedItem.ToString();
if (toRemove == "1.4.9999")
{
MessageBox.Show("Cannot delete builtin 1.4.9999 version!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
if (Directory.Exists(@"versions\\" + toRemove))
{
while (true)
{
try
{
Directory.Delete(@"versions\\" + toRemove, true);
}
catch (Exception) { };
break;
}
}
DownloadedList.Items.Remove(toRemove);
DownloadList.Items.Add(toRemove);
}
}
}
}

View File

@ -1,337 +1,337 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAAAAAAAEAIABtMQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAMTRJ
REFUeNrtvXl0VFea4Pm7b4lNsUhoQQIhJBYBEjtmsQEveEmcmd6zndld7sp0ujqrO2c51TM9M6fPzDlV
Z/6YmqnuOXN6eqazKitr6vT0dOXJxbszbSd2GjA2q8F2ogUhgRZAElojFHvEe2/+CEVYCG2ADUb6fueE
jbZY3nvf7917v+/eCwuPYuD3gHOzj+eeey4Tj8dtZwLJZNL67ne/m7qV5x1/jAKvAf8MWAWYC/AcCbcJ
Qw7B144Q8BTwGNANHAHeB44Cl4GMHCJBBDD/8QJrxh8vAF0TZPCxyEAQASwc3ED9+OOPRAaCCEBkIDIQ
RAAiA5GBIAIQRAaCCEAQGQgiAGEuMngPSS2KAOQQiAxEBiIAQWQgMhABCCIDkYEIQBAZiAxEAILIQGQg
AhAEkYEIQBBEBiIAQRAZiAAEYY4y+BBZz0AEICxoGbwgMhABCCIDkYEIQBAZiAxEAIIgMhABCILIQAQg
CCIDEYAgiAxEAIIgMhABCILIQAQgCCIDEYAgiAxEAIIgMhABCMItyqAT2XhVBCAsWBlM3Hh1wcpABCCI
DKaWwQHgXWB0Pn94Tc6/IFwng5eA/xvYPt8/sAhAEKaXgUsEIAiCCEAQBBGAIAgiAEEQRACCIIgABEEQ
AQiCIAIQBEEEIAiCCEAQBBGAIAgiAEEQRACCIIgABEEQAQiCIAIQBEEEIAiCCEAQBBGAIAgiAEEQRACC
IIgABEEQAQiCIAIQBEEEIAiCCEAQBBGAIAgiAEEQRACCIIgABEEQAQiCIAIQBEEEIAgiAEEQRACCIIgA
BEEQAQiCIAIQBEEEIAiCCEAAx3HkIAjzAmMhxq/P57NN0wSwpvkdNV2gW5ZFUVGRo5S67mcej8fxeDzo
uo7jOMTjcbnCBBHA14zYT37yk3N1dXUPANnJQT7h6yklYNs2FRUValwgBUzTVH/2Z3+mP/PMMyilyGaz
nDp1KtXV1eUkEglXNpvVlFIMDAw4bW1tdjabVZZlaY7joJQilUqRyWTkihRuK2qhfeBwOEwwGPxz4C9u
w8vZmUzGyWQymm3bSilFLBazLl26lIpGo/rY2JjLsiyllOLy5cvW4cOHndHRUaOpqckZHBxU0oK4o0SB
7wG/EQHMI8bv6H8B/PnX7a2lUinS6TTt7e1WZ2enfvz48cy5c+eM3t5e1draSiaTESmIAEQA81QAU71X
O5FIqHA4bDc3Nzujo6P64cOHrfPnz+vNzc3O0NCQSqVSSroOIoCbZcGNAYz3ue+KYXyllObz+fD5fHpV
VRUATz31lJ5IJOjq6rK6u7v1zs5O+/Dhw3R1dWmtra1OOp3WpJUgzPkaW4gC4C5pAcz1IyWTSSKRiNPa
2podHBw0P/7442x7e7vR19dHS0sLiURCWgk3jnQB5inuv/qrv/rZ2rVrX7iZfL7jOFRWVjrbtm1ThvFF
A8qyLOfMmTPO1atX8fv96UAgYFdXV7t9Pp/uOA6apjmGYTiGYTiapmlf5bG3bdtOJpPayMiI1dzcrC5c
uOAcPnzYHhkZMZuamuyhoSEtk8mQTqclzEUAC45ij8fzqq7rD97MH1uWxbPPPpv92c9+pnu93sLxS6VS
9o9+9KPsr371K9PlctmGYVBfX6+Vl5crx3HQdd32er3pQCBgbdu2zVNdXa1bloWmaU4gEMisWrVKD4VC
usfjcXRd/7LPi5NKpZx0Oq06Ojqyly5dMjo7O+1Dhw6pS5cuqZaWFhlgXKACWIh1ACSTyVsaA0ilUtN+
P5FIqEQioQMcPXp04o81wANgmiYejyffHVGGYRhr1qxRixcvdlasWGHt2bNHD4VCdmNjI+NSsMdbDTeL
crvdyu12s3nzZnPz5s0A2ksvvcTEAcYPP/zQamtr05ubm53BwUEZYFwALEgB3Gkymczkoh/t+PHjhXPy
05/+FNM0tbVr11JZWemsWrXKuu+++1RJSUm2oaFBCwQCmtfrdZRStyQFr9eL1+vVKysrgS8GGLu7u63O
zk69q6vLPnTokBOJRIyzZ886Q0ND0koQAQhfNeNBpiZIwfzJT36CaZrGunXrqKysdOrr661du3ap0tLS
7Nq1a/NSgFvo1um6rvx+Pw0NDWZDQwOA8+KLL5JOp53z589bXV1d+rFjx7Lnz5/X87UJ8XhcWgkiAOF2
SeHYsWP5INd8Ph8ul0tfu3atWrZsmfPAAw84y5cv15YsWWKtXr1az3c1bkEKyuPx4PF42LZtm7Ft2zae
fvppPZlMaqOjo1ZzczMXLlxQH374oTU8PGw2NTXZg4ODWjqdlrJmEYBwO6QQj8e1Y8eOcezYMfX6669j
mialpaV6Y2OjCgaD1v3338/y5cu16urq7IoVKwyXy4Xb7b5pKWiaVqhNWLJkCYDzgx/8QE+lUs7Fixet
np4eNV6boLq7u5XUJogAhNtEOp0mnU4Ti8VUd3c3gP7KK6/gcrkKUiguLs7ef//9qqamRi1fvtyqqakx
3G6343K51E1KQblcLuVyudi4caO5ceNGmDDA2NLSYg8PD6sjR45kOzo6jL6+PlpbW6U2QQQg3A7yA46x
WEwbl4Lx61//Grfb7eSlUFJSkt27d69WV1enGhoanJKSEt3tdjuGYdxq10FfvHixDrkBxlQqpYaHh62m
piZ18eJF+9ChQ044HJbJTyIA4Q5IQUWjUdXV1QVg/vKXv8Tr9Tpr165VlZWVTl1dnbV37149FArZDQ0N
FBcX626329Z1/aYyD7quF7oO1dXVMGGAMT/56dixY9m2tjZdJj+JAIQ7JIUTJ04Uro2//du/vSYduXLl
Smv37t2quLjYamhoUMFg8FZqFJTb7cbtdrNlyxZjy5YtPP300/pMk59kgFEEINxGpkpH/vVf/zWmaerj
6Uh79erVhXTkunXrtEAgoHk8npuqUZhp8lNnZ6fV3d2turq6ZPKTCEC401KYLh1ZVVVlr1mzxtqxY4e5
fPlya9WqVbrL5brpdKRhGCoQCLBhwwZzw4YNANoPf/hDIpGI3draag8ODiqZ/CQCEO6wFPLpSEAHdJ/P
R2lpqb5+/XoVCASsBx54gJqaGq26ujq7cuVK4xZqFAoDjBUVFTqQr01QIyMjhQHGCZOfnKGhISWTn0QA
wu2Xgurp6QHQX3311WvSkaFQ6Jp05PLly286HTmxNmHp0qWQq03Q0um0M2Hyk3Po0CF6enpkgFEEINxu
pkpHvvzyy7hcLqesrOyadGRNTQ21tbXWsmXLXB6P52bSkYUBxgmTn5g8+enw4cNWW1ub3tLSsmAnP4kA
hDstBRWLxa5JR7rdbqesrEytW7fOWb16tXX//ffrwWDQbmxsvJV05HWTn5588kk9mUzS1dVldXV1XTP5
6cyZM/T19c376fIiAOFrKYVoNKo6Ozt5++23jZ/97GcYhqGtW7eOxYsXOytXrrT27NmjQqGQ1dDQoG52
yrRhGMrv99PY2Gg2NjbCeG1CJpPhl7/85aE/+ZM/aREBCMIdZqp05N/8zd9gmqaer1FYvXq1de+996pF
ixZl161bpwWDwZtJRxYmP7300ksnduzY0TFe2iwCEISvuxQmpSOd+vr67M6dO81ly5ZZ9fX1umma3MCU
abV+/fp5fxxFAMK8ksKEdKQCXBPTkX6/33rggQdYvny5tnTp0uyqVatmTEcuhLShCEBYCFIopCNfe+21
fDrSmJSO1GpqarK1tbWGy+VSSik1Pm1aBCAI84UJ6Ug1KR1JPh0ZDAatvr6+fQcPHvwV0CQCEISFIQVt
PB2pA9uAuvkuAG0+fzhBuAVs4K7YQUoEIAiCCEAQBBGAIAgiAEEQRACCIIgABEEQAQiCIAIQBEEEIAgi
AEEQRACCIIgABEEQAQiCIAIQBEEEIAiCCEAQBBGAIAgiAEEQRACCIIgABEEQAQiCIAIQBOFuQPYFEL68
i8kwCAaDVFRUUFZWRlVVFalUijNnzjC+M48gAhDmE0VFRVRVVbFq1Spqa2sJBAJYlsXw8DADAwMYhsET
TzzB4cOHOXv2rBwwEYBwt+P1eqmurmbjxo0sW7YMwzDo7+/n888/p7+/n0gkAoCmaaTTaaqrq3nkkUcY
HBykr6/vhl9PKUUoFMI0TZLJJGNjY3ISRADC7WbRokWsX7+eLVu2oJSip6eH999/n8HBQWzbxuv14vP5
qK6uxjByl1Y8Hqenp4fu7m527drFa6+9dkOvaZomu3btYseOHZimSTQaJRwO09bWxrlz5wiHwzjOvN/A
RwQg3DlCoRBbt25l586djIyMcOzYMcb30CMQCFBVVYVhGGiahm3bOI5T+L9pmgSDQc6ePctzzz3HkSNH
GBwcnPNr33PPPVRXV/PWW28Ri8Xw+XyUlZWxevVqduzYwfnz5zlx4gTDw8NyokQAwpd6cRgGa9eu5bHH
HiMSifDb3/6Wvr4+fD4fVVVVuFwulFJYloVlWWSz2Smfp6ioiP7+fsbGxli5cuWcBVBXV0d9fT3vvfce
LpeL4uJiEokEFy9epK2tDZ/PR0NDA88//zzNzc2cPHmSRCIhJ04EINwq5eXlPPjgg5SWlnL06FHa29sJ
hULU1tai6zq2bZPNZmdsfjuOg1IK0zTRdZ2uri7Wrl3LiRMnZm22+/1+9uzZw+nTpzEMg8rKSjKZDKZp
EggE8rv5curUKVpaWti6dSvf/OY3+eijj25qnGGhInUAwnWsWrWKF198kVQqxcsvv8yVK1eora2lvLwc
gHQ6TSaTKTTzp3vkUUrh9Xrp6Ohg6dKl+P3+Wd/D5s2bCYfDXL58mfLy8kILI/+ahmEQCoVYvHgxtm1z
6NAhuru7efjhh9mwYQNKKTmRIgDhRlBKsX79ep588klOnjzJRx99REVFBUuXLkXTNFKp1DWBPxsTReB2
uxkaGsK2bZYvXz5jgOZTip988gmLFy9G13XS6fSUr6nrOiUlJZSXl9PR0cHBgwfZvHkzjz76KC6XS07q
LEgXQChQVVXF3r17effddxkdHaWurg7TNEmlUti2fV1w3wj55+np6eHpp59m165djI6O0t/fTzgcZmBg
gLGxMRzHYceOHTQ3NwO5Ach0On3d60/G5XKxePFiRkZG+OCDD3j44YfZv38/7777LqlUSk6uCECYjcrK
SgCuXLlCXV0duq6TTCZvKs02+W80TcPr9fKb3/yGJUuWUFJSQiAQoK6uDp/Ph9/vx7IsMpkM3d3d9PT0
UF1dTTabnXZwcfJrGYbBokWLCIfDvPnmm+zfv59HH32U3/3ud6TTaTnBIgBhJlKpFB6PB13XSaVS1/Xl
pwvuuaCUoqSkBL/fTzKZpKuri2w2SzqdRimF2+2mqKgIv99Pd3c35eXlhVbDjbympmmEQiGUUrz//vs8
++yzfPvb3+aNN96YVSQLERkDEApcunQJXdcpLS0lFovNOrg3E5P/Jp8NKCoqIhgMUlZWxuLFi1m6dCmV
lZWFFsDAwAClpaUEg8FC03/ya+a/nu69KaUIBALous7rr79OVVUV9957r5xgEYAwE5FIhO7ubtasWUMk
Epn2jjnTyP9UknAcp9C8T6VShUd+QFHTNDweD36/n9LSUvx+P+l0upBmnOq5Z3vtvATS6TRvv/02W7du
ZeXKlXKSJyFdAOGaQP3ss8/49re/zYkTJ0gkEhQVFd3w8+RrBFKpVC5lmM6QyWawLRuHfJAqNE2h6zqG
YWCaJm63G9M0MQzjmizBjXQ58q0NyHUHSkpKGBgY4OjRo3zjG9/g5z//OSMjI3KyRQDCVHR2dhKJRFi7
di1/+MMf8Hq9aJp2XYBNdZdPp9Mkk0lisTipVJJMJjseiApd13C5dUzTQNM1MhkLK2uRSqWIxxNYlo2u
KUyXicfjwev14vV6C3MKJr/WbBLIk08TtrS0sGzZMvbt28frr78u4wEiAGEqUqkUx48f5/HHH+fcuXMk
Egl8Pt+0AeY4Dslkkmg0SjQaI5NOoxs6oWIvS5dXsmJ1GdW1IUpKPYRKPARCXjSlkc1aREZTDA8muNwd
pufiCN0Xh+m9PEokMsbY2Bhut7uQITBNc9b3PpUYlFK4XC4CgQAff/wxL7zwAnV1dZw/f15OtghAmIpz
586xd+9eNmzYwCeffILb7UbX9esCLJVKEYlEcoGfyRAMeWnYVMPOvbVs2r6EFatLKC714nLr6Pqkwp/x
Lx3bIZOxScSzXOkeo/Xzq5w40s2ZEz0MXh1jeHiEWCyG3+/H7/djGMas5cdTfc/lcjE8PEw4HCYYDMpJ
FgEI05FKpXj//fd5/PHH+fTTT0mlUte0AmzbJhaLMTIyQjKZwh/wsmNPLd96roGt9y6lvNKHYWjj/X3A
AduePmgNQyMYchHaWMbaDaU88sQqLp4f5f3ftPHB221c7hlheHiYRCJBKBTC4/HM6XPkBwUtyyIcDlNZ
WUk6naajo0NOsghAmC14stkslmXhOA6appHNZslkMoTDYSKRMRzHZt36JTz/g23sfXQ5ZYu9oBSO7cwY
8FO/3hd3b3/QZOM9FdQ3LuKxp9bw25ebee+tVq72Rkin0wSDQQKBwHVjE1N9BsuyiEQi6LrOxo0bOX78
OKOjo3KCRQDCdFRVVbFx40YOHDiAx+OhuLi4ULQzNDRELBqjyO/hgW+s4YU/3craDWVfDAx+CYtz5GXg
9ug0bi5nRf19bN25lP/wVx9xsX2AcDiMZVkEg0F0Xb8m4PPvY2Lwa5rG/v37aW9v59y5c3KCRQDCdHg8
Hh5++GFaW1sZGhpi2bJlhSb/0NAQ8XiC8ooQ//ile3jqnzRQWu655u79ZZJ/Xo/X4MHHVzI8lODf/y+H
iEVTjI2NYds2oVDoGglMXJAkEolg2zZPPPEEly5d4vjx47POKVhoSCGQcA2bNm0inU7T2dlJZWUljuMQ
jUYZHBwkkUhQtbSEf/6v9vLCn26mtNzL7ViNy3FA1xW79y1n+YpF5GoINOLxOJFIpNBNmXznNwyD/fv3
09fXx6FDhyT4p0BaAAsAn89HeXk5SikSiUQhX5/JZK7Jh1dUVLBhwwbefvvtwiKc0WiUkZEREokkVUtL
+Bf/3R72P1OPy63d1rX4HMchWOymtCI3GJlffiwWixWq/pRShe85jsNTTz1Fe3s7hw4dkry/CGBhUlJS
wuOPP05NTQ3pdBqXy0UmkwFgZGSEwcFBLl26RE9PDzt37qSvr49kMkl5eTnJZJLR0VGi0Rj+gJcXfrR9
QvDf2PtQChQql/7LFQJOKOudowSUQrm+aO5PlICu6/h8vkJBUk1NDYsWLeLkyZMS/CKABXpyDYOHHnqI
K1eu8Lvf/Q5N09B1Ha/Xi8vlorS0lIqKCrZu3cpjjz3G2NgYL7/8MqWlpTiOw9jYGJHIGC6XwTefXc+3
n1+Hy63P+c6fq8hVZC2HaDzLaDRJKm1jO+AydLwenVCRicelYegKZwYZKKW4OpzkytXYNWXCeQlEo9FC
SbHP56Ovrw/Lsqivr+fUqVNyMYgAFh5lZWXU1tZy9OhRQqEQhmGQyWSwLItoNMrw8DBNTU0opfD5fNi2
XVjeOx6PEw6HsW2bTdtq+eMfbyNU4p5T8CsFlg3Do2nOdYf5Q9sw7RdHGOyPEI/nWh+6oRMKeqioCtCw
ahEb68tYXuXD783d4Se+jFKQztp8dPIKl7tGmbyYUF4C8XicQCBQ6LocOXKEXbt20dzcTDwelwtCBLCw
WLduHT09PWQyGYqKirAsq5A7nzirLp/is22bsrKyQuFMMpmitCzAsy9sonp5cM7BPxLJcPhMH4eO9nD+
D32M9oTJhFOQzOJknVw3QIEyNJTX4Eipj7LaErZur2b/A7WsWR7A59FRgO3AaDTD4U96ef1XZ0mPpqZc
TkwpRSqVwuVyFUqIW1pa2L59O42NjZw8eVIuCBHAwkHXdVauXMmnn35aWBtvulV8890CXddRShGLxYjF
Ymiaxv2Prmb3wzXkOu4z4wCtnTF+8ZtzHPugnfD5YeyxNE7WHq/8VQXpFGbtxTLEBhPEO0a48mkvp452
s+3eajasK6fIqzMcSfFp0yCfftTF4Ok+sJxCGfFkAdi2TSKRKHQFotEox44dY/PmzXz22WeyKpAIYOFQ
Xl6Oy+UqrOM/MVU21Wy+iYKIRqNks1kqKovZ/8xagiVubGtmAVi2w8mmYf7+P39O8+ELZPpjkLVBqUlT
e6G8ykfFEh+d58PEIhmUpiDrkOmPcWmok76z/bxfWYThMckkMiT7Y1jDScjYUwZ/Hk3TCusOuFwufD4f
7e3t7Nmzh5UrV9LS0iIXhghgYbB06VJSqVzBTDAYLAggF4TXzuabSCaTGd9cQ7FzTy0NmypmLetVCk63
jvKTn57i/MEL2JH0eDP/+mg1DMU/enENjz9Xx9svX+D/+XdnScatL7IEVk4Emavx3J87E+b4TxH8ubef
m3OQf7lUKoVpmpimSSwWo7W1lS1btnDhwoVCLUB+vGOhbysmApiHKKWoqanh0qVLmKZZ2L1nLpt45Ffq
8Qe83LevjmCxa0YBKAVdvQn+0z98TtvvO7DH0rk7+pQvkusm2KZGqNTNt59fyfmmEd57s/u695///fzX
EwM9n0bUNIXLreP1mYSKvcTG0gwPxQp7COi6jtvtprm5mRdffJEf//jHJBKJa+Y1jI6OMjw8zPnz5+nt
7V1wQhABzENM06S6upoPPvgAt9s95/X8LCu3QIdjO9SuLKNhU8UsooGxuMUvXmvlzDvnsKMzBD+5oM1m
bd55/wqb9lSxaU2Qh75Vw5H3r5CIZa9rMOTfr65ruL0GHrdJqMRL2eIiliwLUFEZpGyxn6U1QcoqXZz6
qIP/6y8/IZXMCUDTNEzTpL+/n7/7u7+jpKQE0zSxbRuPx4NhGBQXF7Ns2TLWr19PZ2cnhw4dIhqNigCE
u5d8fXw4HMblcl13959OBJZl5Vbp1TTWNC6mcqkfexZpfN46zO9fbyE9EJ/Tbjwa0HN6kFdf6cT83gou
DKaxJ0kjf7cvKS3invuWsXbDYpbWBCkt9xIq8VG8yIvPZ2C4dBySpO0BEvZ5Kod7CJbAQK8im83icrnQ
dZ1AIEA0Gi1sKz5x89L8sQkGg+zevZv9+/fz5ptvLpi9BEQA85Di4mIAotEopaWl0/Z1J38vP/3X43Wx
dkMFpkubdvBfKYgnbT54/wIjF4Zz/fe5oBRWIsOHr17gfHeMkUtR0rFM4e5v2w66oXHPvcv5zh9vZtt9
S/AH3OSyl7nBS9vJkrHCjGX6SGZ7SVkDOCpNyWKbimrFYK8qBHm+FZDvCk3+/HkJxONxPv74Y77zne9Q
XV29YNYMEAHMQ8rLy4lEIuPxpmYd7Mr/LJPJ4DgORX43y1ctQtPUtP1/BVzpj3PmSBdOIjtz0/86BygS
V+N0HujCsRyU/YVnyir8PP5MA8+/uInK6gCMB2nWypC1Y6StIZJWLugtJ4aDnZOPoygKaiyp02g+lRvo
syxr2vULJ78ft9tNOBymt7eX+vp6EYBw97J48WIikUhhYG8mAUxMC+bSgBAqcVNcqnAci1yjPR/cXzyH
jaKleYCBrhG4iX04FbnUX67Yx8HtNtixp47n/ulGtt5bhceryGSjZO0oaWuIlHWVjD1K1onhkC08x8SW
h24oKmt0dD0LzF18eQk4jkNPTw9btmzBNM3CnAkRgHDXoJTC7/fT19dXKJGdbQAw31zOpcgUuitF2jzN
UKIYQ1uEqYUwlB9dc6MwUErDtqG9dZDEaBLtJnfidRxwbChd7OXZFxr55vN1LFrskLZaiSZGydpjZJ0o
tpPCwRoPdjVtd0PTYPEyHZcHMiltxs89VatAKUV/fz9+vx+fz0c4HBYBCHcXmqYRDAZpa2srLOQ5Vf5/
OgkopXB5MqTsq8SygziOQlNudOVFUx4M5cfQfKRTPq50XcWxHNBuXAC2DS431G8yeOKfBtnx4BiaeZLB
eAKH7BdN+5zWUHNcusIX1NFMhZbRcJwby/NrmlbYC9Hr9YoAhLvwhBpGYTvtictjTRXwk78upN0Mhcs9
XrAP2E4S20kyPjiPUhAZM+jtjc998G8SZVWKfc+6eehpN+VLs1jOAJZF4TUnBvwXA4RT1hZdQ9YGpSl0
TcOynWs2CplNgrnXytVCuN3uhXG9SMjML/Kj3slk8rrAnikIJn5P03JN8wlh8cV/1XgQ2ll0KzOXKQLX
v0cddn7Dwzf/2EsgMCnKJ72qg0M8qdHTa5DNwtoVGbQZGgOmAdgOStNQ4x9iLinQ/PfzgZ8/fiIA4a4T
gGVZ16yNdyPNYEWub65maXG7XOBxOzcT/9g2nPzEIPErH+vX29QsyRIosnG7HLRcNTDJpEY4qnGlX6fl
nM75sxYP7EqxbuXMbz6VAmd8yTDbVjc0BgC5iVETdyUWAQh3FY7jFDbPmDgAON0EoMkB4ADplENmholz
DqAbECi5yQ6AA4OtUT7sy3K62kdwiZuScg1PkcIwFMkkJGIOYyM2Y31p4r0RVDSBb4cbTfdMap1M/AwQ
jUImrfAY2pSBPu3nHj9O+UrBhTJzUAQwz8hfvF6v95oKwLksiKmUAsdhbNQhEc+1yqeMHwdMU7FspY5u
3ORK4JaDNRgnPJwg0qRx2W2gDA10lVszIGvhZGzIWNiWw6IKjeoV+iyfHa72gmPn9iLMB/Z08pvcNbBt
G5fLVSgOEgEIdx352Xx+v59sNjtlF2C6u2JuPYAMsajDQL/DshXTv46mw+qNBoESRXjQmbXLMI1xUA6Q
sXEyaa7vUKjCrMIldTpLavUZxxyyWbja6+BYGpqm3VAGJC+AUChEPB5fEDUAIMuCzzssy2JgYIDKykos
yyqMB0x8TJwcNPGhaRooiEdsrl6aucXgOFCzWmfVeoNbnj+XTzgoNekBOGCYsOV+E39Qm2HNQBiLKq50
WrjGNxLNt3qm+7xTPXw+X2E/ARGAcFfS0dFBdXU1pmkyNjZWWAo8X+s/nRTU+OIdmYzDhXM2M42DOQ4E
SzTu/YYLr4+vbH8A24HKGo2te020Wdqr/X3Q323hdpnXBfYX79u5TgoTvy4rK6O/v3/BXCsigHlIe3s7
AwMDfO9732Pjxo0UFxcXRrYTiQRjY2NEo1EikQixWKzQ3NW0XNPZtmwuNGcZGZ49775lr8mmPeZX8jkc
B9xe2PesmyW1xrSDf5DL/5/91CE5mkvlZTKZKVs7E4N94r9t28Y0Tfx+P4ODgwvmWpExgHlIIpHg1Vdf
ZePGjTQ2NrJ79+7C2vjxeJx0Os3Y2BjJZJLm5mb6+voKs+V0XcfKWvR2Zmk7B4urmLbf7TgQWqTx9Ese
+rptOlutGXP0N8Om3SYPPOnGMJmx+R8JKz4/kUW3DDRdK0xsmin7MVEElmVRUlKC1+ulr69PBCDc/RI4
fvw4p0+fxuPxEAgE8Hq9lJaWFv7d2NhIbW0tf//3f18oA9Z1PTcOMJLlxEGLLdsN/D5n2uBzHFjZaPLc
jzz8p3+b4OoV+9YlML5yUMM9Bt/5Uy/FpTNvRGI7cLZJ43JLBr/PTyaTKbRq5pIGzY/6l5WVFZZREwEI
84J8MOQv6onTXE+dOsX3v/99ioqKSKfTmKZZ2DzEsiyajqY412KybdvsawLufNSNrsPP/32CSx0WoLiZ
OUL5GN14r8Ef/UsfKxqMGYNfKRiLaXz0e4fMCHhKPYyOjl6XxpspG5AfB6mvr6e9vX1BrR4sYwALmJGR
EaLRKLW1taTT6Wuq4cBh9FKCD36TZTQyezDrOmx/2M0P/7WPdVuNXH2AfQPbfjm5PH6wRPHwsy5++K+L
WNk4+/3JtuH0aY32E0mC3tzeB4lEYtpR/slSyPf/3W43lZWVdHV1LahrQFoAC5hUKkVraysbNmzg7Nmz
hY1DdF3PDQZmLD47mODYrhCPPZKdUQL5VXk37HJRWaPz0dtpPno7zeWLNpmUg5OfyDNhaYF8OGoqV1W4
ar3OQ8+42XyfC19AzSoPTUFXr867r1tkBhxKy/yMjI5cI7OZlinL/042m2X16tVks1kuX74sAhAWDmfP
nmXTpk2Ul5czMDCAx+PJXRiGQTqdJtaX5MCvPNStcLFmVRbHmb1dX7FU54nve9j5qItzZ7I0nchw6YJF
ZNgmmRi/8AyFxweLKjRWNOps2OVixTqd4CJt+grECeQWJFW8d0Cj51Sc0kCIdCY3uJlf3CSbzRbGNTRN
K6Q5Jwog/1i7di09PT3EYjERgLBw6O/vp7Ozkz179vDKK68UWgFfjAVk6T41xiv/sIgX/4VOZbk1qwQc
JzeleMlynarlOvftdxEN24SHHJKJXGvAW6Tw+BRFQUVRQGG41PgeAHMIfnJVf4eOuvjo9RhFthuP10Nf
X19hizOATZs2YRgGHR0djI2NFZYIy++ABLm7fygUorKykrfeemvBnX8RgMDHH3/MD37wA1asWEFHRwce
j6cQKLZtk42n+fydMK9XFPPdf6JTEszt8Dsb+UB2exRuj05Z5YSfTfhHfmWguWI58MlZF2//Movd71Bc
WlyoacgH9bJly9i3bx8jIyPs3LmTRCJBR0cHfX19DA0NEY/HsSwLn8/Hrl276Ovro6enRwQgLDyGhobo
7e2ltraWtra2wgaieQlks1mSw0k+/HUUTyDEk09kKQlYOHOcC5gXwa1WCyqVu/Mf/9TNK/+fRaQpSeWi
XOpuaGioUOXo8XjYtWsXhw8f5vTp05SXl1NVVUV9fT0bN25E0zQMwyCZTOLxeOjt7eW3v/3tgtwlSASw
wHG73ezbt49wOMzx48fx+/243e7C0lgT04LxKzEO/L8asUSQZ56Eqgr7msG8rxKlIJ2BD096eP3nFiOn
Y1SESrEsi6tXrxYG/jKZDNu2bSOTyXDmzBmy2Sy9vb309vZy+vRp3G43oVAIv9+P3+9nbGyM3t7eBbMA
iAhAKOByuXjwwQcpLS3lzTffBMDr9ZJOp6/Joys1vsCGZRHvHuOj/2wRHirmm0/CulVpXOZXNxcgNyDo
MDCic/ioi/deyRBvS1IRKgWgt7eXeDxeGPhbtmwZdXV1fPDBB1PO6EulUly9epWrV6/KBSACWLiYpslD
Dz2E2+3mrbfeQimFx+MhlUpNuY14vlvg2DaJvjhnXnPo7Q7x8FMe9mxPUxLKVQB+mSLQVG45sLPn3Rw6
rNP0QQzVb1NZXEYmm6Wvr68Q/JlMhoqKCh555BGOHz9Ob2+vnGQRgDAd27Ztw+v18t5772EYRqHZn58z
AFNvoIEGjmOTHY3T+1GGV3sDnP3Mz+77bTatSxMKOIVFgm9GBrnBeYdUWtF1xcXRkybHD2aJnAtTlHFR
XFJCPB5nYGBgfBfjXB1/MBjkW9/6Ft3d3TQ1NckJFgEI01FdXU1jYyPvvPMOmqbhcrmuC/6pmFhc4zgO
VipDtG2Uz68k6Pw8wNFtXjZvcWhYnaFikYXb7aBr+XkE0w8YqvGlQDJZRXhMo/OywdkWg8+O2wy1RdFH
Hco8AVwBFyMjIwwPD19T629ZFtXV1VRUVPDrX/9aTrAIQJiJxsZGkskkAwMDBAKBQrN/cqDPhuM42Fkb
J5Jk9LMMn3a4OfeRl7KVXmrXuFm5wqKywqa02KbIa+MyHcarjIHcFN5EQmN0TKN/UKerR6PzIlxuyxC7
FEULWwTcXnxBH4lEgoErV4jFYtct1qFpGl1dXTiOw4YNGzhy5IicZBGAMB26rpPJZLAs65rlwycH95wk
gINjOzgZB2fUJj6WoudilCvHTU6WevCWmvgXmfiLNQIBB93MzSuwbUU67TAWhshgluhQlvRwGsayuCyd
oMuNO+AmnUrR399PNBqdtoWiaRrRaJT33nuPHTt2cPr0aeLxuJxoEYAwFT09PXzrW98iFAoRjUbHJ//M
EuhzWF3XxkazFcqycJJZ7OEU6QsaYUPLLfjp0nN9/Pxooe2gsg66o2EqjYBuoutuMHKj9aOjo4WCndle
X9M0mpqauPfee9m4cSPHjh2TEz0HZDbgAqStrY3BwUH27t1bWB5scjDPNItushAm/p5l22SzWTLZDOl0
mkwqjZVIY8fSqHAKI2phjlmYURt3UuHFxIWOYzvEE3GGhnNFSf39/UQikSkzElOhlCKRSHDs2DE2b968
YHb2uVWkBbAASaVSvPHGGzz33HOsXr2atrY2DMMopPqmYi4SmMjk+fj5iTgTHxPlMdsmpnORgKZpnDt3
jr1797Jq1SrJBswBaQEsUK5evcrhw4fZvXs3ZWVl1ywhPlMLYC4/n2r1Ydu2sSwr1zrI5FoH6XSaTCZT
WKx0Lq8/E0opIpEI7e3trF+/Xk6yCECYiZaWFtrb23nuueeoqKiYdiHN2RbUmO738qsR5Wv0Jz4mv85s
zGVJ7zznzp2jtraWQGHjQWE6pAuwgLFtu5Aye+SRRzhw4AD9/f3XdAduZIJMvhy3rq6O++67j+HhYQYG
BhgZGSnc6fNN/6GhIdLp9HXdjpudkDPx7wYGBjBNE6/Xu6DW9xMBCDeMZVkcPnyYLVu2sG/fPk6dOkVH
R8cXG4XMEHCTF9q0bZtgMMiOHTuIRCL4/X5qamrw+/1Arvw4k8mwZMkS3nnnHQ4cOFDYwWeuwT2X3ysr
K6O3t7dQKSiIAIRZAufMmTOMjY2xfft2iouL+fTTT8lmszOmCCf3/TVN48EHH2RgYICDBw8W1trPlxpD
rp++fft2Vq1axcGDBwuLdMxlA9OZyGcyVq5cyYMPPsjvf/97ufuLAIQbkcD58+cZHh7m4YcfZsWKFRw6
dIi+vr7CCkEzCcCyLNasWUNFRQUffPBBISDz4wAT78ZNTU1s376dUCjE4ODgrN2NubQQXC4X69evZ/Pm
zZw4cYL29nY5qSIA4UYZGhrizTffZPPmzTz00ENcvHiRs2fPEo1GC+vqTcayLEpLS9m4cSMHDx6c9c6b
HxdYvXr1Nbvw3Ojdf2KT//HHH8fr9XLgwAEuXrwoJ3KOSBZAuI5EIsHRo0c5cuQIK1as4KmnnmLdunWY
pnndCH6+mf/QQw9x5cqVOd150+k0zc3NNDQ0YBjGDaX68oGf38hz+/btfP/738e2bX7xi19I8N8g0gIQ
pqWnp4df/OIXrFu3jj179rBjxw5OnTrFhQsXCk16Xde57777ADh9+vScn7u1tZWdO3eyZMkSuru757R8
d55AIMCqVavYvXs3tm1z4MABmpqaris+EkQAwi1iWRZnz56lo6ODNWvWcN9993H//ffT0tLC5cuXqa+v
Z9GiRbz55ps3NOre399Pa2srW7Zsobu7e9YWgK7rVFVVsWHDBhoaGojH43zyySd8/vnnC24pbxGAcNtJ
JBJ8+umntLa2snz5crZs2cLWrVuJxWK89tprjI6O3tDzOY7D0aNHeeGFF9i0aROfffbZdQHv8XioqKhg
xYoVrF69mvLycrq7uzlw4ABtbW0Ldh0/EYBwx0gmk5w7d462tjbcbjeO45BKpW7qua5evcrBgwe5//77
MQyDq1ev4vP5KC4upqqqiqVLl+L3+xkZGaGtrY033niDvr6+6yYvCSIA4TbjOM6Xcgc+ffo0w8PDPPDA
AwQCARzHIZ1OMzAwwNGjR7l06VJhyW9BBCDMQzo7OxkcHKSoKLe5ZywWu25lYkEEIMxjotEo0WhUDsRt
RuoABEEEIAiCCEAQBBGA8JXgADFARraErw0yCHj7SAH/K9ALPArsB0JyWIQ7ibQAbh8msBWIA38J/LfA
yPjPwuMPQRABzFN04BngPwK/HBfBh+M/OwC8KYdIEAHMf0ygHtgNDIx/L0lufEAQRAAL6NhPPP5KDokg
Alg4OHIIBBHAwiELtJFr7guCCGCBkQR+CvSMf23zRStAmv+CCGABEB8PfIBi4AOgHegj10IQBBHAPD/e
+WP+8HjQPwH8B6QoSLgDSCXg7UORKwPOz3mtGg/8D4H0uBAEQQQwT/EB5cD/DvwXwBpgEfCkHBrhTiFd
gNuHAl4gNxj4/fHA/zPgdSAih0cQAcx/6smVAv8dub5/J/A/Av8VuUlCgiACmMeMAUeAncD/APwc+BW5
dODv5fAIIoD5L4A/B94Y/9oLrCM3PVjmAggigAVACfA2cHnSeZBiIEEEMM+xgVpgB/AKXxQF2RP+LQgi
gHmMAzxObirwqfHvLQOWyKERbjdSB3BnBBAilwZ8HWgA9iJrBQp3AGkB3F708WPuAPcAi8mNB+iASw6P
IAKYv2SBd4EucpN/LOAfAWfI1QMIgghgHmMDfwAOA98FXgReAzzAPyCzAYU7gIwB3D5cwJ8CF8n1+ZuA
nwFXx3/+CLnsgCCIAL5CJi7EcbtZRq4CcBu5vP/AuAg+A9xyOQoigK+eKnKz8u4EXnJlwHkqxx8yFfjr
ybxft3GhjQE0Av8OWC/XtjAH5n115kISwL3kZuF9YyGcWOGW8ZHbvq1IBHD38/h48O+U61q4gdj4E+C/
J5epEQHchejAHwF/Q27WnSDcCB7gX5Fbr8EUAdxduIEfk+vzL5NrWbhJfMD/BPwzcjeUecV8zQIEyJn7
vwH8cg0Lt0gQ+J/JLev+H5lH2YH5KIAy4C/IGVvq64Uvi1Jy27rHye3uLAL4GlID/G/A80iZs/DlUwn8
m3EJvDUfPtB8CpJGcltvfU+CX/gKqQH+D2CfCODrw8QcvyB81awiN7h8rwjgziM5fuFOsB74P4EtIoA7
g+T4hTvNPeMSuGuvv7tVAJLjF74u7Bm/DleIAG4PIXK76fwludSMINxpHiU3MFhzt73xuy0N6AH+a+C/
JNcFSEz4mbrBf9/M7804iUipWecYObf48y/rOb6ur+fcpvf8Zb4nZ/y6eBD4l+RuTvG7JaD+fxt46exd
p639AAAAAElFTkSuQmCC
</value>
</data>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
p639AAAAAElFTkSuQmCC
</value>
</data>
</root>

View File

@ -1,72 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Specifying requestedExecutionLevel element will disable file and registry virtualization.
Remove this element if your application requires this virtualization for backwards
compatibility.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of the Windows versions that this application has been tested on
and is designed to work with. Uncomment the appropriate elements
and Windows will automatically select the most compatible environment. -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- Lie to windows and say GayMaker is GPI-Aware so that windows wont rescale my shit.. -->
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Specifying requestedExecutionLevel element will disable file and registry virtualization.
Remove this element if your application requires this virtualization for backwards
compatibility.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of the Windows versions that this application has been tested on
and is designed to work with. Uncomment the appropriate elements
and Windows will automatically select the most compatible environment. -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- Lie to windows and say GayMaker is GPI-Aware so that windows wont rescale my shit.. -->
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BouncyCastle" version="1.8.4" targetFramework="net461" />
<package id="DotNetZip" version="1.13.3" targetFramework="net461" />
<package id="HtmlAgilityPack" version="1.9.2" targetFramework="net461" />
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BouncyCastle" version="1.8.4" targetFramework="net461" />
<package id="DotNetZip" version="1.13.3" targetFramework="net461" />
<package id="HtmlAgilityPack" version="1.9.2" targetFramework="net461" />
</packages>