diff --git a/LICENSE b/LICENSE
index d6b0436..fa134bf 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,5 +1,28 @@
MIT License
+Copyright (c) 2022-present diamond3500
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+------------------------------------------------------------------------------------------
+MIT License
+
Copyright (c) 2021-present Malte0621
Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/ProjectSrc/App.config b/ProjectSrc/App.config
index 9702f41..5dfab54 100644
--- a/ProjectSrc/App.config
+++ b/ProjectSrc/App.config
@@ -1,11 +1,63 @@
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProjectSrc/Bootstrapper/FileManifest.cs b/ProjectSrc/Bootstrapper/FileManifest.cs
index 81160aa..8552319 100644
--- a/ProjectSrc/Bootstrapper/FileManifest.cs
+++ b/ProjectSrc/Bootstrapper/FileManifest.cs
@@ -5,6 +5,8 @@
using System.Runtime.Serialization;
using System.Threading.Tasks;
+using RobloxDeployHistory;
+
namespace RobloxPlayerModManager
{
[Serializable]
@@ -14,7 +16,7 @@ internal class FileManifest : Dictionary
protected FileManifest(SerializationInfo info, StreamingContext context)
: base(info, context) { }
-
+
private FileManifest(string data, bool remapExtraContent = false)
{
using (var reader = new StringReader(data))
@@ -41,16 +43,31 @@ private FileManifest(string data, bool remapExtraContent = false)
else if (remapExtraContent && path.StartsWith("ExtraContent", Program.StringFormat))
path = path.Replace("ExtraContent", "content");
+ // ~~ AWFUL TEMPORARY HACK. ~~
+ //
+ // This is necessary because SourceSansPro gets incorrectly listed in the root directory,
+ // but also MUST be extracted to both 'PlayerFonts/' and 'content/fonts/', so I need to
+ // make sure it unambiguously extracts to the correct locations.
+
+ if (path.EndsWith(".ttf") && !path.Contains("\\"))
+ path = "PlayerFonts\\" + path;
+
+ if (remapExtraContent && ContainsKey(path))
+ continue;
+
Add(path, signature);
}
}
-
+
RawData = data;
}
- public static async Task Get(string branch, string versionGuid, bool remapExtraContent = false)
+ public static async Task Get(ClientVersionInfo info, bool remapExtraContent = false)
{
- string fileManifestUrl = $"https://s3.amazonaws.com/setup.{branch}.com/{versionGuid}-rbxManifest.txt";
+ Channel channel = info.Channel;
+ string versionGuid = info.VersionGuid;
+
+ string fileManifestUrl = $"{channel.BaseUrl}/{versionGuid}-rbxManifest.txt";
string fileManifestData;
using (WebClient http = new WebClient())
@@ -61,7 +78,5 @@ public static async Task Get(string branch, string versionGuid, bo
return new FileManifest(fileManifestData, remapExtraContent);
}
-
-
}
}
diff --git a/ProjectSrc/Bootstrapper/PackageManifest.cs b/ProjectSrc/Bootstrapper/PackageManifest.cs
index ff605b7..536f99c 100644
--- a/ProjectSrc/Bootstrapper/PackageManifest.cs
+++ b/ProjectSrc/Bootstrapper/PackageManifest.cs
@@ -4,6 +4,8 @@
using System.Net;
using System.Threading.Tasks;
+using RobloxDeployHistory;
+
namespace RobloxPlayerModManager
{
internal class PackageManifest : List
@@ -64,19 +66,37 @@ private PackageManifest(string data)
Add(package);
}
}
-
+
RawData = data;
}
- public static async Task Get(string branch, string versionGuid)
+ public static async Task Get(ClientVersionInfo info)
{
- string pkgManifestUrl = $"https://s3.amazonaws.com/setup.{branch}.com/{versionGuid}-rbxPkgManifest.txt";
+ Channel channel = info.Channel;
+ string versionGuid = info.VersionGuid;
+
+ string pkgManifestUrl = $"{channel.BaseUrl}/{versionGuid}-rbxPkgManifest.txt";
string pkgManifestData;
using (WebClient http = new WebClient())
{
var getData = http.DownloadStringTaskAsync(pkgManifestUrl);
pkgManifestData = await getData.ConfigureAwait(false);
+ int pkgManifestIndex = pkgManifestData.IndexOf("RobloxPlayerLauncher.exe");
+ int pkgManifestIndexNew = pkgManifestData.IndexOf("RobloxPlayerInstaller.exe");
+ if (pkgManifestIndex != pkgManifestIndex + 3)
+ {
+ //TODO: Maybe make this better in the future.
+ try
+ {
+ pkgManifestData = pkgManifestData.Remove(pkgManifestIndex);
+ }
+ catch (ArgumentOutOfRangeException)
+ {
+ pkgManifestData = pkgManifestData.Remove(pkgManifestIndexNew);
+ }
+ }
+
}
return new PackageManifest(pkgManifestData);
diff --git a/ProjectSrc/Bootstrapper/PlayerBootstrapper.cs b/ProjectSrc/Bootstrapper/PlayerBootstrapper.cs
index 3047e25..c1b825b 100644
--- a/ProjectSrc/Bootstrapper/PlayerBootstrapper.cs
+++ b/ProjectSrc/Bootstrapper/PlayerBootstrapper.cs
@@ -2,21 +2,22 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
-using System.Diagnostics.Contracts;
using System.Linq;
using System.IO;
using System.IO.Compression;
using System.Net;
using System.Runtime.InteropServices;
-using System.Security.Cryptography;
using System.Threading.Tasks;
using System.Windows.Forms;
-using Microsoft.Win32;
+using Newtonsoft.Json;
using RobloxDeployHistory;
+using Konscious.Security.Cryptography;
namespace RobloxPlayerModManager
{
+ public delegate void MessageFeed(string message);
+
public class PlayerBootstrapper
{
[DllImport("user32.dll")]
@@ -25,178 +26,85 @@ public class PlayerBootstrapper
[DllImport("user32.dll")]
static extern bool FlashWindow(IntPtr hWnd, bool bInvert);
- private const string appSettingsXml =
- "\n" +
- " content\n" +
- " http://www.roblox.com\n" +
- "";
-
- private const string clientSettingsJson =
- "{\n" +
- "\n" +
- "}";
+ private static string AppSettings_XML;
+ private static string OAuth2Config_JSON;
+
+ private const string RepoBranch = "main";
+ private const string RepoOwner = "diamond3500";
+ private const string RepoName = "Roblox-Studio-Mod-Manager";
private const string UserAgent = "RobloxPlayerModManager";
public const string StartEvent = "RobloxPlayerModManagerStart";
- private static readonly WebClient http = new WebClient()
- {
- Headers = new WebHeaderCollection
- {
- { HttpRequestHeader.UserAgent, UserAgent }
- }
- };
-
- public event MessageEventHandler EchoFeed;
- public event MessageEventHandler StatusChanged;
+ public event MessageFeed EchoFeed;
+ public event MessageFeed StatusFeed;
- public event ChangeEventHandler ProgressChanged;
- public event ChangeEventHandler ProgressBarStyleChanged;
-
- private readonly RegistryKey mainRegistry;
- private readonly RegistryKey versionRegistry;
- private readonly RegistryKey pkgRegistry;
- private readonly RegistryKey fileRegistry;
+ private readonly IBootstrapperState mainState;
+ private readonly VersionManifest versionRegistry;
+ private readonly Dictionary fileRegistry;
+ private readonly Dictionary pkgRegistry;
+ private Dictionary bySignature;
private Dictionary newManifestEntries;
private HashSet writtenFiles;
private FileManifest fileManifest;
private string buildVersion;
private string status;
- private int _progress = -1;
- private int _maxProgress = -1;
- private ProgressBarStyle _progressBarStyle;
-
- public static readonly IReadOnlyDictionary KnownRoots = new Dictionary()
- {
- { "content-platform-fonts.zip", @"PlatformContent\pc\fonts\" },
- { "content-terrain.zip", @"PlatformContent\pc\terrain\" },
- { "content-textures3.zip", @"PlatformContent\pc\textures\" },
-
- { "extracontent-translations.zip", @"ExtraContent\translations\" },
- { "extracontent-luapackages.zip", @"ExtraContent\LuaPackages\" },
- { "extracontent-models.zip", @"ExtraContent\models\" },
- { "extracontent-places.zip", @"ExtraContent\places\" },
- { "extracontent-textures.zip", @"ExtraContent\textures\" },
- { "extracontent-scripts.zip", @"ExtraContent\scripts\" },
-
- { "content-sky.zip", @"content\sky\" },
- { "content-fonts.zip", @"content\fonts\" },
- { "content-avatar.zip", @"content\avatar\" },
- { "content-models.zip", @"content\models\" },
- { "content-sounds.zip", @"content\sounds\" },
- { "content-configs.zip", @"content\configs\" },
- { "content-textures2.zip", @"content\textures\" },
-
- { "ssl.zip", @"ssl\" },
-
- { "RobloxPlayer.zip", @"" },
- };
-
- public static readonly IReadOnlyList BadManifests = new List()
- {
- };
-
- public int Progress
- {
- get => _progress;
-
- private set
- {
- if (_progress == value)
- return;
+ public static readonly List BadManifests = new List();
+ public static readonly Dictionary KnownRoots = new Dictionary();
- var change = new ChangeEventArgs(value, "Progress");
- ProgressChanged?.Invoke(this, change);
-
- _progress = value;
- }
- }
-
- public int MaxProgress
- {
- get => _maxProgress;
-
- private set
- {
- if (_maxProgress == value)
- return;
-
- if (value < Progress)
- return;
-
- var change = new ChangeEventArgs(value, "MaxProgress");
- ProgressChanged?.Invoke(this, change);
-
- _maxProgress = value;
- }
- }
+ public int Progress = 0;
+ public int MaxProgress = 0;
+ public ProgressBarStyle ProgressBarStyle = ProgressBarStyle.Continuous;
+ public object ProgressLock = new object();
- public ProgressBarStyle ProgressBarStyle
- {
- get => _progressBarStyle;
-
- private set
- {
- if (_progressBarStyle == value)
- return;
-
- var change = new ChangeEventArgs(value);
- ProgressBarStyleChanged?.Invoke(this, change);
-
- _progressBarStyle = value;
- }
- }
-
- public string Branch { get; set; } = "roblox";
+ public Channel Channel { get; set; } = "LIVE";
public string OverridePlayerDirectory { get; set; } = "";
public bool CanShutdownPlayer { get; set; } = true;
public bool CanForcePlayerShutdown { get; set; } = false;
public bool ForceInstall { get; set; } = false;
- public bool dontUpdate { get; set; } = false;
public bool SetStartEvent { get; set; } = false;
public bool GenerateMetadata { get; set; } = false;
public bool RemapExtraContent { get; set; } = false;
public bool ApplyModManagerPatches { get; set; } = false;
- public PlayerBootstrapper(RegistryKey workRegistry = null)
+ public static async Task FetchKnownChannels()
{
- if (workRegistry == null)
- mainRegistry = Program.MainRegistry;
- else
- mainRegistry = workRegistry;
-
- Contract.Requires(mainRegistry != null);
-
- if (!mainRegistry.GetBool("Deprecate MD5"))
+ using (var http = new WebClient())
{
- // The manifest registry needs to be reset.
- mainRegistry.SetValue("Deprecate MD5", true);
- mainRegistry.DeleteSubKeyTree("VersionData", false);
- mainRegistry.DeleteSubKeyTree("FileManifest", false);
- mainRegistry.DeleteSubKeyTree("PackageManifest", false);
+ var getJson = http.DownloadStringTaskAsync($"https://raw.githubusercontent.com/{RepoOwner}/{RepoName}/{RepoBranch}/Config/KnownChannels.json");
+ var json = await getJson.ConfigureAwait(false);
+
+ var result = JsonConvert.DeserializeObject(json);
+ return result;
}
+ }
- versionRegistry = mainRegistry.GetSubKey("VersionData");
- pkgRegistry = mainRegistry.GetSubKey("PackageManifest");
- fileRegistry = mainRegistry.GetSubKey("FileManifest");
+ public PlayerBootstrapper(IBootstrapperState state = null)
+ {
+ if (state == null)
+ mainState = Program.State;
+ else
+ mainState = state;
+
+ versionRegistry = mainState.VersionData;
+ pkgRegistry = mainState.PackageManifest;
+ fileRegistry = mainState.FileManifest;
}
private void echo(string message)
{
- var args = new MessageEventArgs(message);
- EchoFeed(this, args);
+ EchoFeed.Invoke(message);
}
private void setStatus(string newStatus)
{
if (status != newStatus)
{
- var args = new MessageEventArgs(newStatus);
- StatusChanged(this, args);
+ StatusFeed?.Invoke(newStatus);
status = newStatus;
}
}
@@ -213,9 +121,9 @@ private static string getDirectory(params string[] paths)
private static string computeSignature(Stream source)
{
- using (SHA256 sha256 = SHA256.Create())
+ using (var blake2b = new HMACBlake2B(16 * 8))
{
- byte[] hash = sha256.ComputeHash(source);
+ byte[] hash = blake2b.ComputeHash(source);
string result = BitConverter
.ToString(hash)
@@ -230,12 +138,12 @@ private static string computeSignature(ZipArchiveEntry entry)
{
string signature;
- using (Stream stream = entry.Open())
+ using (var stream = entry.Open())
signature = computeSignature(stream);
return signature;
}
-
+
private void appendNewManifestEntry(string key, string value)
{
if (newManifestEntries == null)
@@ -323,20 +231,24 @@ private void deleteUnusedFiles()
string key = pair.Key,
value = pair.Value;
+ if (key == null || value == null)
+ continue;
+
if (fileManifest.ContainsKey(key))
continue;
- fileRegistry.SetValue(key, value);
+ fileRegistry[key] = value;
fileManifest[key] = value;
}
}
- var fileNames = fileRegistry
- .GetValueNames()
- .ToList();
+ var fileNames = fileRegistry.Keys.ToList();
foreach (string fileName in fileNames)
{
+ if (fileName == null)
+ continue;
+
string filePath = Path.Combine(PlayerDir, fileName);
string lookupKey = fileName;
@@ -349,17 +261,17 @@ private void deleteUnusedFiles()
if (File.Exists(filePath))
{
var info = new FileInfo(filePath);
- string oldHash = fileRegistry.GetString(fileName);
-
+ string oldHash = fileRegistry[fileName];
+
if (oldHash?.Length > 32)
- if (info.Extension == ".dll" || info.Name == "qmldir")
+ if (info.Extension == ".dll" || info.Name == "qmldir" || filePath.Contains("api-docs"))
continue;
echo($"Deleting unused file {fileName}");
try
{
- fileRegistry.DeleteValue(fileName);
+ fileRegistry.Remove(fileName);
File.Delete(filePath);
}
catch (IOException)
@@ -371,30 +283,29 @@ private void deleteUnusedFiles()
Console.WriteLine($"UnauthorizedAccessException thrown while trying to delete {fileName}");
}
}
- else if (fileNames.Contains(fileName))
+ else if (fileRegistry.ContainsKey(fileName))
{
- fileRegistry.DeleteValue(fileName);
+ fileRegistry.Remove(fileName);
}
}
}
}
- public static async Task GetTargetVersionInfo(string branch, string targetVersion, RegistryKey versionRegistry = null)
+ public static async Task GetTargetVersionInfo(Channel channel, string targetVersion, VersionManifest versionRegistry = null)
{
if (versionRegistry == null)
- versionRegistry = Program.VersionRegistry;
+ versionRegistry = Program.State.VersionData;
var logData = await PlayerDeployLogs
- .Get(branch)
+ .Get(channel)
.ConfigureAwait(false);
HashSet targets;
- //if (Environment.Is64BitOperatingSystem)
- // targets = logData.CurrentLogs_x64;
- //else
- // targets = logData.CurrentLogs_x86;
- targets = logData.CurrentLogs_x86; // No 64-bit player yet.
+ if (Environment.Is64BitOperatingSystem)
+ targets = logData.CurrentLogs_x86;
+ else
+ targets = logData.CurrentLogs_x86;
DeployLog target = targets
.Where(log => log.VersionId == targetVersion)
@@ -402,21 +313,21 @@ public static async Task GetTargetVersionInfo(string branch,
if (target == null)
{
- var result = GetCurrentVersionInfo(branch, versionRegistry);
+ var result = GetCurrentVersionInfo(channel, versionRegistry);
return await result.ConfigureAwait(false);
}
return new ClientVersionInfo(target);
}
- public static async Task GetCurrentVersionInfo(string branch, RegistryKey versionRegistry = null, string targetVersion = "")
+ public static async Task GetCurrentVersionInfo(Channel channel, VersionManifest versionRegistry = null, string targetVersion = "")
{
if (versionRegistry == null)
- versionRegistry = Program.VersionRegistry;
+ versionRegistry = Program.State.VersionData;
if (!string.IsNullOrEmpty(targetVersion))
{
- var result = GetTargetVersionInfo(branch, targetVersion, versionRegistry);
+ var result = GetTargetVersionInfo(channel, targetVersion, versionRegistry);
return await result.ConfigureAwait(false);
}
@@ -424,25 +335,27 @@ public static async Task GetCurrentVersionInfo(string branch,
ClientVersionInfo info;
var logData = await PlayerDeployLogs
- .Get(branch)
+ .Get(channel)
.ConfigureAwait(false);
- DeployLog build_x86 = logData.CurrentLogs_x86.Last();
- // DeployLog build_x64 = logData.CurrentLogs_x64.Last();
+ DeployLog build_x86 = logData.CurrentLogs_x86.LastOrDefault();
+ DeployLog build_x64 = logData.CurrentLogs_x64.LastOrDefault();
- //if (is64Bit)
- // info = new ClientVersionInfo(build_x64);
- //else
- // info = new ClientVersionInfo(build_x86);
- info = new ClientVersionInfo(build_x86); // No 64-bit player yet.
+ if (is64Bit && build_x64 != null)
+ info = new ClientVersionInfo(build_x64);
+ else
+ info = new ClientVersionInfo(build_x86);
- versionRegistry.SetValue("LatestGuid_x86", build_x86.VersionGuid);
- // versionRegistry.SetValue("LatestGuid_x64", build_x64.VersionGuid);
+ if (build_x86 != null)
+ versionRegistry.LatestGuid_x86 = build_x86.VersionGuid;
+
+ if (build_x64 != null)
+ versionRegistry.LatestGuid_x64 = build_x64.VersionGuid;
return info;
}
- private static string fixFilePath(string pkgName, string filePath)
+ private string fixFilePath(string pkgName, string filePath)
{
string pkgDir = pkgName.Replace(".zip", "");
@@ -450,25 +363,28 @@ private static string fixFilePath(string pkgName, string filePath)
if (!filePath.StartsWith(pkgDir, Program.StringFormat))
filePath = pkgDir + '\\' + filePath;
+ if (RemapExtraContent)
+ filePath = filePath.Replace("ExtraContent", "content");
+
return filePath.Replace('/', '\\');
}
private bool shouldFetchPackage(Package package)
{
string pkgName = package.Name;
- var pkgInfo = pkgRegistry.GetSubKey(pkgName);
- string oldSig = pkgInfo.GetString("Signature");
+ if (!pkgRegistry.TryGetValue(pkgName, out var pkgInfo))
+ {
+ pkgInfo = new PackageState();
+ pkgRegistry[pkgName] = pkgInfo;
+ }
+
+ string oldSig = pkgInfo.Signature;
string newSig = package.Signature;
- if (oldSig == newSig && !ForceInstall && File.Exists(GetPlayerPath()))
+ if (oldSig == newSig && !ForceInstall)
{
- int fileCount = pkgInfo.GetInt("NumFiles");
echo($"Package '{pkgName}' hasn't changed between builds, skipping.");
-
- MaxProgress += fileCount;
- Progress += fileCount;
-
return false;
}
@@ -480,14 +396,14 @@ private async Task packageExists(Package package)
echo($"Verifying availability of: {package.Name}");
string pkgName = package.Name;
- var zipFileUrl = new Uri($"https://s3.amazonaws.com/setup.{Branch}.com/{buildVersion}-{pkgName}");
+ var zipFileUrl = new Uri($"{Channel.BaseUrl}/{buildVersion}-{pkgName}");
var request = WebRequest.Create(zipFileUrl) as HttpWebRequest;
request.Headers.Set("UserAgent", UserAgent);
request.Method = "HEAD";
var response = await request
- .GetResponseAsync()
+ .GetResponseAsync()
.ConfigureAwait(false)
as HttpWebResponse;
@@ -501,24 +417,41 @@ private async Task installPackage(Package package)
{
byte[] result = null;
string pkgName = package.Name;
- string zipFileUrl = $"https://s3.amazonaws.com/setup.{Branch}.com/{buildVersion}-{pkgName}";
+ string zipFileUrl = $"{Channel.BaseUrl}/{buildVersion}-{pkgName}";
using (var localHttp = new WebClient())
{
+ int lastProgress = 0;
+ bool setMaxProgress = false;
localHttp.Headers.Set("UserAgent", UserAgent);
+
+ localHttp.DownloadProgressChanged += new DownloadProgressChangedEventHandler((sender, e) =>
+ {
+ if (!setMaxProgress)
+ {
+ MaxProgress += (int)e.TotalBytesToReceive;
+ setMaxProgress = true;
+ }
+ int progress = (int)e.BytesReceived;
+ if (progress > lastProgress)
+ {
+ int diff = progress - lastProgress;
+ lastProgress = progress;
+ Progress += diff;
+ }
+ });
+
echo($"Installing package {zipFileUrl}");
- MaxProgress++;
-
+
var getFile = localHttp.DownloadDataTaskAsync(zipFileUrl);
byte[] fileContents = await getFile.ConfigureAwait(false);
-
+
// If the size of the file we downloaded does not match the packed
// size specified in the manifest, then this file isn't valid.
if (fileContents.Length != package.PackedSize)
throw new InvalidDataException($"{pkgName} expected packed size: {package.PackedSize} but got: {fileContents.Length}");
- Progress++;
result = fileContents;
}
@@ -529,195 +462,169 @@ private void extractPackage(Package package)
{
var data = package.Data;
string pkgName = package.Name;
-
- var pkgInfo = pkgRegistry.GetSubKey(pkgName);
string PlayerDir = GetLocalPlayerDirectory();
+ if (!pkgRegistry.TryGetValue(pkgName, out var pkgInfo))
+ {
+ pkgInfo = new PackageState();
+ pkgRegistry[pkgName] = pkgInfo;
+ }
+
string downloads = getDirectory(PlayerDir, "downloads");
string zipExtractPath = Path.Combine(downloads, pkgName);
+ echo($"Writing {zipExtractPath}...");
File.WriteAllBytes(zipExtractPath, data);
- if (zipExtractPath.EndsWith(".zip"))
+ using (var archive = ZipFile.OpenRead(zipExtractPath))
{
- using (var archive = ZipFile.OpenRead(zipExtractPath))
+ var deferred = new Dictionary();
+
+ lock (ProgressLock)
+ MaxProgress += archive.Entries.Count;
+
+ int numFiles = archive.Entries
+ .Select(entry => entry.FullName)
+ .Where(name => !name.EndsWith("/", Program.StringFormat))
+ .Count();
+
+ string localRootDir = null;
+
+ if (KnownRoots.ContainsKey(pkgName))
+ localRootDir = KnownRoots[pkgName];
+
+ foreach (ZipArchiveEntry entry in archive.Entries)
{
- var deferred = new Dictionary();
+ bool skip = false;
+ Progress++;
- int numFiles = archive.Entries
- .Select(entry => entry.FullName)
- .Where(name => !name.EndsWith("/", Program.StringFormat))
- .Count();
+ if (entry.Length == 0)
+ skip = true;
- string localRootDir = null;
- MaxProgress += numFiles;
+ if (entry.Name.EndsWith(".robloxrc", Program.StringFormat))
+ skip = true;
- if (KnownRoots.ContainsKey(pkgName))
- localRootDir = KnownRoots[pkgName];
+ if (entry.Name.EndsWith(".luarc", Program.StringFormat))
+ skip = true;
- foreach (ZipArchiveEntry entry in archive.Entries)
- {
- if (entry.Length == 0)
- {
- Progress++;
- continue;
- }
+ if (skip)
+ continue;
- string newFileSig = null;
- string entryPath = entry.FullName.Replace('/', '\\');
+ string newFileSig = null;
+ string entryPath = entry.FullName.Replace('/', '\\');
- // If we have figured out what our root directory is, try to resolve
- // what the signature of this file is.
+ // If we have figured out what our root directory is, try to resolve
+ // what the signature of this file is.
- if (localRootDir != null)
- {
- bool hasEntryPath = fileManifest.ContainsKey(entryPath);
+ if (localRootDir != null)
+ {
+ // Append local directory to our path.
+ var manifestKey = localRootDir + entryPath;
+ bool hasEntryPath = fileManifest.ContainsKey(manifestKey);
+ if (!hasEntryPath)
+ {
// If we can't find this file in the signature lookup table,
- // try appending the local directory to it. This resolves some
- // edge cases relating to the fixFilePath function above.
+ // try falling back to the entryPath.
- if (!hasEntryPath)
- {
- entryPath = localRootDir + entryPath;
- hasEntryPath = fileManifest.ContainsKey(entryPath);
- }
+ manifestKey = entryPath;
+ hasEntryPath = fileManifest.ContainsKey(manifestKey);
+ }
- // If we can find this file path in the file manifest, then we will
- // use its pre-computed signature to check if the file has changed.
+ // If we can find this file path in the file manifest, then we will
+ // use its pre-computed signature to check if the file has changed.
- newFileSig = hasEntryPath ? fileManifest[entryPath] : null;
+ newFileSig = hasEntryPath ? fileManifest[manifestKey] : null;
+ }
+ else
+ {
+ if (fileManifest.ContainsKey(entryPath))
+ {
+ // rooted?
+ newFileSig = fileManifest[entryPath];
}
else
{
- var query = fileManifest.Where(pair => pair.Key.EndsWith(entryPath, Program.StringFormat));
+ var query = fileManifest.SkipWhile(pair => !pair.Key.EndsWith(entryPath, Program.StringFormat)).Take(1);
newFileSig = query.Any() ? query.First().Value : null;
}
+ }
- // If we couldn't pre-determine the file signature from the manifest,
- // then we have to compute it manually. This is slower.
+ // If we couldn't pre-determine the file signature from the manifest,
+ // then we have to compute it manually. This is slower.
- if (newFileSig == null)
- newFileSig = computeSignature(entry);
+ if (newFileSig == null)
+ newFileSig = computeSignature(entry);
- // Now check what files this signature corresponds with.
- var files = fileManifest
- .Where(pair => pair.Value == newFileSig)
- .Select(pair => pair.Key);
+ // Now check what files this signature corresponds with.
- if (files.Any())
+ if (bySignature.TryGetValue(newFileSig, out var files))
+ {
+ foreach (string file in files)
{
- foreach (string file in files)
- {
- // Write the file from this signature.
- WritePackageFile(PlayerDir, pkgName, file, newFileSig, entry);
+ // Write the file from this signature.
+ WritePackageFile(PlayerDir, pkgName, file, newFileSig, entry);
- if (localRootDir == null)
- {
- string filePath = fixFilePath(pkgName, file);
+ if (localRootDir == null)
+ {
+ string filePath = fixFilePath(pkgName, file);
- if (filePath != file)
- appendNewManifestEntry(filePath, newFileSig);
+ if (filePath != file)
+ appendNewManifestEntry(filePath, newFileSig);
- if (filePath.EndsWith(entryPath, Program.StringFormat))
- {
- // We can infer what the root extraction
- // directory is for the files in this package!
- localRootDir = filePath.Replace(entryPath, "");
- }
+ if (filePath.EndsWith(entryPath, Program.StringFormat))
+ {
+ // We can infer what the root extraction
+ // directory is for the files in this package!
+ localRootDir = filePath.Replace(entryPath, "");
}
}
}
- else
- {
- string file = entry.FullName;
-
- if (string.IsNullOrEmpty(localRootDir))
- {
- // Check back on this file after we extract the regular files,
- // so we can make sure this is extracted to the correct directory.
- deferred.Add(entry, newFileSig);
- }
- else
- {
- // Append the local root directory.
- file = localRootDir + file;
- WritePackageFile(PlayerDir, pkgName, file, newFileSig, entry);
- }
- }
}
-
- // Process any files that we deferred from writing immediately.
- foreach (ZipArchiveEntry entry in deferred.Keys)
+ else
{
string file = entry.FullName;
- string newFileSig = deferred[entry];
- if (localRootDir != null)
+ if (string.IsNullOrEmpty(localRootDir))
+ {
+ // Check back on this file after we extract the regular files,
+ // so we can make sure this is extracted to the correct directory.
+ deferred.Add(entry, newFileSig);
+ }
+ else
+ {
+ // Append the local root directory.
file = localRootDir + file;
-
- if (!fileManifest.ContainsKey(file))
- appendNewManifestEntry(file, newFileSig);
-
- WritePackageFile(PlayerDir, pkgName, file, newFileSig, entry);
+ WritePackageFile(PlayerDir, pkgName, file, newFileSig, entry);
+ }
}
-
- // Update the signature in the package registry so we can check
- // if this zip file needs to be updated in future versions.
-
- pkgInfo.SetValue("Signature", package.Signature);
- pkgInfo.SetValue("NumFiles", numFiles);
}
- }
- else
- {
- string localRootDir = null;
- if (KnownRoots.ContainsKey(pkgName))
- localRootDir = KnownRoots[pkgName];
- if (localRootDir != null)
- {
- if (zipExtractPath.EndsWith(".robloxrc", Program.StringFormat))
- return;
-
- if (zipExtractPath.EndsWith(".luarc", Program.StringFormat))
- return;
- string filePath = fixFilePath(pkgName, zipExtractPath);
-
- if (writtenFiles.Contains(filePath))
- return;
+ // Process any files that we deferred from writing immediately.
+ foreach (ZipArchiveEntry entry in deferred.Keys)
+ {
+ string file = entry.FullName;
+ string newFileSig = deferred[entry];
- Progress++;
+ if (localRootDir != null)
+ file = localRootDir + file;
- string extractPath = Path.Combine(PlayerDir, filePath);
- string extractDir = Path.GetDirectoryName(extractPath);
+ if (!fileManifest.ContainsKey(file))
+ appendNewManifestEntry(file, newFileSig);
- getDirectory(extractDir);
+ WritePackageFile(PlayerDir, pkgName, file, newFileSig, entry);
+ }
- if (File.Exists(extractPath))
- File.Delete(extractPath);
+ // Update the signature in the package registry so we can check
+ // if this zip file needs to be updated in future versions.
- echo($"Writing {filePath}...");
- try
- {
- File.Copy(zipExtractPath, extractPath);
- }
- catch
- {
- echo($"FILE WRITE FAILED: {filePath} (This build may not run as expected!)");
- }
- }
+ pkgInfo.Signature = package.Signature;
+ pkgInfo.NumFiles = numFiles;
}
}
private void WritePackageFile(string PlayerDir, string pkgName, string file, string newFileSig, ZipArchiveEntry entry)
{
- if (file.EndsWith(".robloxrc", Program.StringFormat))
- return;
-
- if (file.EndsWith(".luarc", Program.StringFormat))
- return;
-
string filePath = fixFilePath(pkgName, file);
if (writtenFiles.Contains(filePath))
@@ -728,11 +635,11 @@ private void WritePackageFile(string PlayerDir, string pkgName, string file, str
if (!ForceInstall)
{
- string oldFileSig = fileRegistry.GetString(filePath);
+ if (!fileRegistry.TryGetValue(filePath, out string oldFileSig))
+ oldFileSig = "";
if (oldFileSig == newFileSig)
{
- Progress++;
return;
}
}
@@ -750,14 +657,13 @@ private void WritePackageFile(string PlayerDir, string pkgName, string file, str
echo($"Writing {filePath}...");
entry.ExtractToFile(extractPath);
- fileRegistry.SetValue(filePath, newFileSig);
+ fileRegistry[filePath] = newFileSig;
}
catch (UnauthorizedAccessException)
{
echo($"FILE WRITE FAILED: {filePath} (This build may not run as expected!)");
}
- Progress++;
writtenFiles.Add(filePath);
}
@@ -822,7 +728,7 @@ private async Task shutdownPlayerProcesses()
{
DialogResult result = DialogResult.OK;
- if (mainRegistry == Program.MainRegistry)
+ if (mainState == Program.State)
{
result = MessageBox.Show
(
@@ -857,220 +763,251 @@ public async Task Bootstrap(string targetVersion = "")
setStatus("Checking for updates");
echo("Checking build installation...");
- string currentVersion = versionRegistry.GetString("VersionGuid");
- string currentBranch;
+ string baseConfigUrl = $"https://raw.githubusercontent.com/{RepoOwner}/{RepoName}/{RepoBranch}/Config/";
+ string currentVersion = versionRegistry.VersionGuid;
+ string currentChannel;
- if (mainRegistry.Name.EndsWith(Branch, Program.StringFormat))
- currentBranch = Branch;
+ if (mainState == Program.State)
+ currentChannel = mainState.Channel;
else
- currentBranch = mainRegistry.GetString("BuildBranch", "roblox");
+ currentChannel = Channel;
- var getVersionInfo = GetCurrentVersionInfo(currentBranch, versionRegistry, targetVersion);
+ var getVersionInfo = GetCurrentVersionInfo(currentChannel, versionRegistry, targetVersion);
ClientVersionInfo versionInfo = await getVersionInfo.ConfigureAwait(true);
-
+
+ string PlayerDir = GetLocalPlayerDirectory();
buildVersion = versionInfo.VersionGuid;
- if (currentVersion != buildVersion || ForceInstall || !File.Exists(GetPlayerPath()))
+ if (currentVersion != buildVersion || ForceInstall)
{
- if (dontUpdate && File.Exists(GetPlayerPath()))
+ echo("This build needs to be installed!");
+ bool PlayerClosed = true;
+
+ if (CanShutdownPlayer)
{
- echo("dontUpdate: true, ignoring update.");
+ var closePlayer = shutdownPlayerProcesses();
+ PlayerClosed = await closePlayer.ConfigureAwait(true);
}
- else
- {
- echo("This build needs to be installed!");
- bool PlayerClosed = true;
-
- if (CanShutdownPlayer)
- {
- var closePlayer = shutdownPlayerProcesses();
- PlayerClosed = await closePlayer.ConfigureAwait(true);
- }
-
- if (PlayerClosed)
- {
- string binaryType = GetPlayerBinaryType();
- string PlayerDir = GetLocalPlayerDirectory();
- string versionId = versionInfo.Version;
- setStatus($"Installing Version {versionId} of Roblox Player...");
- echo("Grabbing package manifest...");
-
- var pkgManifest = await PackageManifest
- .Get(Branch, buildVersion)
- .ConfigureAwait(true);
+ if (PlayerClosed)
+ {
+ string binaryType = GetPlayerBinaryType();
+ string versionId = versionInfo.Version;
- echo("Grabbing file manifest...");
+ var installVersion = versionId
+ .Split('.')
+ .Select(int.Parse)
+ .Skip(1)
+ .First();
- fileManifest = await FileManifest
- .Get(Branch, buildVersion, RemapExtraContent)
- .ConfigureAwait(true);
+ KnownRoots.Clear();
+ BadManifests.Clear();
+ setStatus($"Fetching Known Roots...");
- var taskQueue = new List();
- writtenFiles = new HashSet();
+ using (var http = new WebClient())
+ {
+ var json = await http
+ .DownloadStringTaskAsync(baseConfigUrl + "KnownRoots.json")
+ .ConfigureAwait(false);
- Progress = 0;
- MaxProgress = 0;
- ProgressBarStyle = ProgressBarStyle.Continuous;
+ var knownRoots = JsonConvert.DeserializeObject>(json);
- foreach (Package package in pkgManifest)
+ foreach (var pair in knownRoots)
{
- package.ShouldInstall = shouldFetchPackage(package);
+ string name = pair.Key;
+ var knownRoot = pair.Value;
- if (!package.ShouldInstall)
- {
- package.Exists = true;
+ if (installVersion < knownRoot.MinVersion)
continue;
- }
- Task verify = Task.Run(async () =>
- {
- var doesExist = packageExists(package);
- package.Exists = await doesExist.ConfigureAwait(false);
- });
+ string file = name + ".zip";
+ string extractPath = knownRoot.ExtractTo;
- taskQueue.Add(verify);
- }
+ if (!string.IsNullOrEmpty(extractPath))
+ extractPath += '/';
- await Task
- .WhenAll(taskQueue)
- .ConfigureAwait(true);
+ if (knownRoot.BadManifest)
+ BadManifests.Add(name);
- taskQueue.Clear();
+ KnownRoots.Add(file, extractPath);
+ }
+ }
- foreach (Package package in pkgManifest)
- {
- if (!package.Exists)
- {
- setStatus("Installation Failed!");
- echo($"ERROR WHILE INSTALLING: Package {package.Name} could not be fetched! Skipping installation for now.");
+ setStatus($"Installing Packages...");
+ echo("Grabbing package manifest...");
- Progress = 1;
- MaxProgress = 1;
- ProgressBarStyle = ProgressBarStyle.Marquee;
+ var pkgManifest = await PackageManifest
+ .Get(versionInfo)
+ .ConfigureAwait(true);
- var timeout = Task.Delay(2000);
- await timeout.ConfigureAwait(false);
+ echo("Grabbing file manifest...");
- return false;
- }
+ fileManifest = await FileManifest
+ .Get(versionInfo, RemapExtraContent)
+ .ConfigureAwait(true);
- if (!package.ShouldInstall)
- continue;
+ var taskQueue = new List();
+ writtenFiles = new HashSet();
- var installer = Task.Run(async () =>
- {
- var install = installPackage(package);
- package.Data = await install.ConfigureAwait(false);
+ bySignature =
+ (from pair in fileManifest
+ let key = pair.Key
+ let value = pair.Value
+ group key by value)
+ .ToDictionary(group => group.Key, group => group.ToArray());
- extractPackage(package);
- return true;
- });
+ Progress = 0;
+ MaxProgress = 0;
+ ProgressBarStyle = ProgressBarStyle.Continuous;
- taskQueue.Add(installer);
- }
+ // Verify all of these packages are available to install.
+ foreach (Package package in pkgManifest)
+ {
+ package.ShouldInstall = shouldFetchPackage(package);
- await Task
- .WhenAll(taskQueue)
- .ConfigureAwait(true);
+ if (!package.ShouldInstall)
+ {
+ package.Exists = true;
+ continue;
+ }
- foreach (var task in taskQueue)
+ Task verify = Task.Run(async () =>
{
- bool passed = true;
+ var doesExist = packageExists(package);
+ package.Exists = await doesExist.ConfigureAwait(false);
+ });
- if (task is Task boolTask)
- if (!boolTask.Result)
- passed = false;
+ taskQueue.Add(verify);
+ }
- if (task.IsFaulted)
- passed = false;
+ await Task
+ .WhenAll(taskQueue)
+ .ConfigureAwait(true);
- if (!passed)
- {
- setStatus("Installation Failed!");
- echo("One or more packages failed to install correctly! Skipping update for now...");
+ taskQueue.Clear();
+
+ // Install packages, abort if any of them don't exist.
+ foreach (Package package in pkgManifest)
+ {
+ if (!package.Exists)
+ {
+ setStatus("Installation Failed!");
+ echo($"ERROR WHILE INSTALLING: Package {package.Name} could not be fetched! Skipping installation for now.");
- await Task
- .Delay(500)
- .ConfigureAwait(false);
+ Progress = 1;
+ MaxProgress = 1;
+ ProgressBarStyle = ProgressBarStyle.Marquee;
- return false;
- }
+ var timeout = Task.Delay(2000);
+ await timeout.ConfigureAwait(false);
+
+ return false;
}
- taskQueue.Clear();
+ if (!package.ShouldInstall)
+ continue;
- foreach (Package package in pkgManifest)
+ var installer = Task.Run(async () =>
{
- if (!package.ShouldInstall)
- continue;
+ var install = installPackage(package);
+ package.Data = await install.ConfigureAwait(false);
+ return true;
+ });
- var extract = Task.Run(() => extractPackage(package));
- taskQueue.Add(extract);
- }
+ taskQueue.Add(installer);
+ }
- await Task
- .WhenAll(taskQueue)
- .ConfigureAwait(true);
+ await Task
+ .WhenAll(taskQueue)
+ .ConfigureAwait(true);
- echo("Writing AppSettings.xml...");
+ // Make sure the packages were installed without errors.
+ foreach (var task in taskQueue)
+ {
+ bool passed = true;
- string appSettings = Path.Combine(PlayerDir, "AppSettings.xml");
- File.WriteAllText(appSettings, appSettingsXml);
+ if (task is Task boolTask)
+ if (!boolTask.Result)
+ passed = false;
- echo("Writing ClientSettings...");
+ if (task.IsFaulted)
+ passed = false;
- try
+ if (!passed)
{
- Directory.CreateDirectory(Path.Combine(PlayerDir, "ClientSettings"));
+ setStatus("Installation Failed!");
+ echo("One or more packages failed to install correctly! Skipping update for now...");
+
+ await Task
+ .Delay(500)
+ .ConfigureAwait(false);
+
+ return false;
}
- catch {}
+ }
- string clientSettings = Path.Combine(PlayerDir, "ClientSettings", "ClientAppSettings.json");
- File.WriteAllText(clientSettings, clientSettingsJson);
+ // Extract all of the packages
+ setStatus($"Extracting Packages...");
+ taskQueue.Clear();
- setStatus("Deleting unused files...");
- deleteUnusedFiles();
+ Progress = 0;
+ MaxProgress = 0;
- if (GenerateMetadata)
+ foreach (Package package in pkgManifest)
+ {
+ if (package.ShouldInstall)
{
- echo("Writing metadata...");
+ var extract = Task.Run(() => extractPackage(package));
+ taskQueue.Add(extract);
+ }
+ }
- string pkgManifestPath = Path.Combine(PlayerDir, "rbxPkgManifest.txt");
- File.WriteAllText(pkgManifestPath, pkgManifest.RawData);
+ await Task
+ .WhenAll(taskQueue)
+ .ConfigureAwait(true);
- string fileManifestPath = Path.Combine(PlayerDir, "rbxManifest.txt");
- File.WriteAllText(fileManifestPath, fileManifest.RawData);
+ setStatus("Deleting unused files...");
+ deleteUnusedFiles();
- string versionPath = Path.Combine(PlayerDir, "version.txt");
- File.WriteAllText(versionPath, versionId);
+ if (GenerateMetadata)
+ {
+ echo("Writing metadata...");
- string versionGuidPath = Path.Combine(PlayerDir, "version-guid.txt");
- File.WriteAllText(versionGuidPath, buildVersion);
+ string pkgManifestPath = Path.Combine(PlayerDir, "rbxPkgManifest.txt");
+ File.WriteAllText(pkgManifestPath, pkgManifest.RawData);
- echo("Dumping API...");
+ string fileManifestPath = Path.Combine(PlayerDir, "rbxManifest.txt");
+ File.WriteAllText(fileManifestPath, fileManifest.RawData);
- string PlayerPath = GetLocalPlayerPath();
- string apiPath = Path.Combine(PlayerDir, "API-Dump.json");
+ string versionPath = Path.Combine(PlayerDir, "version.txt");
+ File.WriteAllText(versionPath, versionId);
- var dumpApi = Process.Start(PlayerPath, $"-API \"{apiPath}\"");
- dumpApi.WaitForExit();
- }
+ string versionGuidPath = Path.Combine(PlayerDir, "version-guid.txt");
+ File.WriteAllText(versionGuidPath, buildVersion);
- ProgressBarStyle = ProgressBarStyle.Marquee;
+ echo("Dumping API...");
+ await Task.Delay(2000);
- if (mainRegistry.Name != Branch)
- mainRegistry.SetValue("BuildBranch", Branch);
+ string PlayerPath = GetLocalPlayerPath();
+ string apiPath = Path.Combine(PlayerDir, "API-Dump.json");
- versionRegistry.SetValue("Version", versionId);
- versionRegistry.SetValue("VersionGuid", buildVersion);
- versionRegistry.SetValue("VersionOverload", targetVersion);
- }
- else
- {
- ProgressBarStyle = ProgressBarStyle.Marquee;
- echo("Update cancelled. Launching on current branch and version.");
+ var dumpApi = Process.Start(PlayerPath, $"-API \"{apiPath}\"");
+ dumpApi.WaitForExit();
}
+
+ ProgressBarStyle = ProgressBarStyle.Marquee;
+
+ if (mainState == Program.State)
+ mainState.Channel = Channel;
+
+ versionRegistry.Version = versionId;
+ versionRegistry.VersionGuid = buildVersion;
+ versionRegistry.VersionOverload = targetVersion;
+ }
+ else
+ {
+ ProgressBarStyle = ProgressBarStyle.Marquee;
+ echo("Update cancelled. Launching on current branch and version.");
}
}
else
@@ -1078,10 +1015,26 @@ await Task
echo("This version of Roblox Player has been installed!");
}
+ using (var http = new WebClient())
+ {
+ OAuth2Config_JSON = await http.DownloadStringTaskAsync(baseConfigUrl + "OAuth2Config.json");
+ AppSettings_XML = await http.DownloadStringTaskAsync(baseConfigUrl + "AppSettings.xml");
+ }
+
+ string appSettings = Path.Combine(PlayerDir, "AppSettings.xml");
+ string oAuth2Config = Path.Combine(PlayerDir, "ApplicationConfig", "OAuth2Config.json");
+
+ echo("Writing AppSettings.xml...");
+ File.WriteAllText(appSettings, AppSettings_XML);
+
+ echo("Writing OAuth2Config.json...");
+ getDirectory(PlayerDir, "ApplicationConfig");
+ File.WriteAllText(oAuth2Config, OAuth2Config_JSON);
+
// Only update the registry protocols if the main registry
// is the global one assigned to the program itself.
- if (mainRegistry == Program.MainRegistry)
+ if (mainState == Program.State)
{
setStatus("Configuring Roblox Player...");
echo("Updating registry protocols...");
@@ -1091,18 +1044,22 @@ await Task
if (ApplyModManagerPatches && string.IsNullOrEmpty(OverridePlayerDirectory))
{
- // echo("Applying flag configuration...");
- // FlagEditor.ApplyFlags();
+ echo("Applying flag configuration...");
+ FlagEditor.ApplyFlags();
// Secret feature only for me :(
// Feel free to patch in your own thing if you want.
# if ROBLOX_INTERNAL
- var rbxInternal = Task.Run(() => RobloxInternal.Patch(this));
- await rbxInternal.ConfigureAwait(false);
+ var rbxInternal = Task.Run(() => RobloxInternal.Patch(this));
+ await rbxInternal.ConfigureAwait(false);
# endif
}
+ ProgressBarStyle = ProgressBarStyle.Marquee;
+ MaxProgress = 1;
+ Progress = 1;
+
setStatus("Starting Roblox Player...");
echo("Roblox Player is up to date!");
@@ -1129,7 +1086,7 @@ await Task
start.Dispose();
});
}
-
+ await Task.Delay(1000);
return true;
}
}
diff --git a/ProjectSrc/BuildRelease.bat b/ProjectSrc/BuildRelease.bat
new file mode 100644
index 0000000..7bc7b9e
--- /dev/null
+++ b/ProjectSrc/BuildRelease.bat
@@ -0,0 +1 @@
+MSBuild.exe -t:Rebuild -p:Configuration=Release
\ No newline at end of file
diff --git a/ProjectSrc/Events/ChangeEvent.cs b/ProjectSrc/Events/ChangeEvent.cs
deleted file mode 100644
index 46ad9ef..0000000
--- a/ProjectSrc/Events/ChangeEvent.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-namespace RobloxPlayerModManager
-{
- public delegate void ChangeEventHandler(object sender, ChangeEventArgs e);
-
- public class ChangeEventArgs
- {
- public string Context { get; }
- public T Value { get; }
-
- public ChangeEventArgs(T value, string context = "N/A")
- {
- Value = value;
- Context = context;
- }
- }
-}
diff --git a/ProjectSrc/Events/MessageEvent.cs b/ProjectSrc/Events/MessageEvent.cs
deleted file mode 100644
index 215f89a..0000000
--- a/ProjectSrc/Events/MessageEvent.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-namespace RobloxPlayerModManager
-{
- public delegate void MessageEventHandler(object sender, MessageEventArgs e);
-
- public class MessageEventArgs
- {
- public string Message { get; }
-
- public MessageEventArgs(string message)
- {
- Message = message;
- }
- }
-}
diff --git a/ProjectSrc/Forms/BootstrapperForm.Designer.cs b/ProjectSrc/Forms/BootstrapperForm.Designer.cs
index 567338b..c8fde01 100644
--- a/ProjectSrc/Forms/BootstrapperForm.Designer.cs
+++ b/ProjectSrc/Forms/BootstrapperForm.Designer.cs
@@ -28,11 +28,12 @@ protected override void Dispose(bool disposing)
///
private void InitializeComponent()
{
+ this.components = new System.ComponentModel.Container();
this.progressBar = new System.Windows.Forms.ProgressBar();
this.logo = new System.Windows.Forms.PictureBox();
this.statusLbl = new System.Windows.Forms.Label();
this.log = new System.Windows.Forms.RichTextBox();
- this.progressMetric = new System.Windows.Forms.Label();
+ this.progressTimer = new System.Windows.Forms.Timer(this.components);
((System.ComponentModel.ISupportInitialize)(this.logo)).BeginInit();
this.SuspendLayout();
//
@@ -40,11 +41,11 @@ private void InitializeComponent()
//
this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- this.progressBar.Location = new System.Drawing.Point(9, 291);
- this.progressBar.Margin = new System.Windows.Forms.Padding(2);
+ this.progressBar.Location = new System.Drawing.Point(6, 194);
+ this.progressBar.Margin = new System.Windows.Forms.Padding(1);
this.progressBar.MarqueeAnimationSpeed = 1;
this.progressBar.Name = "progressBar";
- this.progressBar.Size = new System.Drawing.Size(873, 44);
+ this.progressBar.Size = new System.Drawing.Size(582, 29);
this.progressBar.Step = 0;
this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
this.progressBar.TabIndex = 1;
@@ -58,9 +59,10 @@ private void InitializeComponent()
this.logo.BackgroundImage = global::RobloxPlayerModManager.Properties.Resources.Logo;
this.logo.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.logo.InitialImage = global::RobloxPlayerModManager.Properties.Resources.Logo;
- this.logo.Location = new System.Drawing.Point(9, 12);
+ this.logo.Location = new System.Drawing.Point(6, 8);
+ this.logo.Margin = new System.Windows.Forms.Padding(2);
this.logo.Name = "logo";
- this.logo.Size = new System.Drawing.Size(182, 229);
+ this.logo.Size = new System.Drawing.Size(121, 153);
this.logo.TabIndex = 9;
this.logo.TabStop = false;
this.logo.WaitOnLoad = true;
@@ -70,10 +72,10 @@ private void InitializeComponent()
this.statusLbl.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.statusLbl.AutoSize = true;
this.statusLbl.Font = new System.Drawing.Font("Segoe UI Light", 16F);
- this.statusLbl.Location = new System.Drawing.Point(0, 244);
+ this.statusLbl.Location = new System.Drawing.Point(0, 163);
this.statusLbl.Margin = new System.Windows.Forms.Padding(0);
this.statusLbl.Name = "statusLbl";
- this.statusLbl.Size = new System.Drawing.Size(327, 45);
+ this.statusLbl.Size = new System.Drawing.Size(225, 30);
this.statusLbl.TabIndex = 11;
this.statusLbl.Text = "Checking for updates...";
this.statusLbl.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@@ -86,31 +88,23 @@ private void InitializeComponent()
this.log.BackColor = System.Drawing.Color.White;
this.log.Font = new System.Drawing.Font("Consolas", 8.25F);
this.log.ForeColor = System.Drawing.Color.Black;
- this.log.Location = new System.Drawing.Point(197, 12);
+ this.log.Location = new System.Drawing.Point(131, 8);
+ this.log.Margin = new System.Windows.Forms.Padding(2);
this.log.Name = "log";
this.log.ReadOnly = true;
- this.log.Size = new System.Drawing.Size(685, 229);
+ this.log.Size = new System.Drawing.Size(458, 154);
this.log.TabIndex = 12;
this.log.Text = "";
//
- // progressMetric
+ // progressTimer
//
- this.progressMetric.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.progressMetric.AutoSize = true;
- this.progressMetric.BackColor = System.Drawing.Color.Transparent;
- this.progressMetric.Font = new System.Drawing.Font("Segoe UI Light", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.progressMetric.Location = new System.Drawing.Point(4, 339);
- this.progressMetric.Name = "progressMetric";
- this.progressMetric.Size = new System.Drawing.Size(52, 25);
- this.progressMetric.TabIndex = 13;
- this.progressMetric.Text = "0/100";
+ this.progressTimer.Enabled = true;
//
// BootstrapperForm
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(144F, 144F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
- this.ClientSize = new System.Drawing.Size(894, 373);
- this.Controls.Add(this.progressMetric);
+ this.ClientSize = new System.Drawing.Size(596, 249);
this.Controls.Add(this.log);
this.Controls.Add(this.statusLbl);
this.Controls.Add(this.logo);
@@ -119,8 +113,8 @@ private void InitializeComponent()
this.Font = new System.Drawing.Font("Consolas", 8.25F);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = global::RobloxPlayerModManager.Properties.Resources.Icon;
- this.Margin = new System.Windows.Forms.Padding(2);
- this.MinimumSize = new System.Drawing.Size(668, 288);
+ this.Margin = new System.Windows.Forms.Padding(1);
+ this.MinimumSize = new System.Drawing.Size(451, 205);
this.Name = "BootstrapperForm";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
@@ -128,6 +122,7 @@ private void InitializeComponent()
this.TopMost = true;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BootstrapperForm_FormClosing);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.BootstrapperForm_FormClosed);
+ this.Load += new System.EventHandler(this.BootstrapperForm_Load);
((System.ComponentModel.ISupportInitialize)(this.logo)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -140,6 +135,6 @@ private void InitializeComponent()
private System.Windows.Forms.PictureBox logo;
private System.Windows.Forms.Label statusLbl;
private System.Windows.Forms.RichTextBox log;
- private System.Windows.Forms.Label progressMetric;
+ private System.Windows.Forms.Timer progressTimer;
}
}
\ No newline at end of file
diff --git a/ProjectSrc/Forms/BootstrapperForm.cs b/ProjectSrc/Forms/BootstrapperForm.cs
index 4c11ed5..6cf277a 100644
--- a/ProjectSrc/Forms/BootstrapperForm.cs
+++ b/ProjectSrc/Forms/BootstrapperForm.cs
@@ -1,13 +1,18 @@
using System;
+using System.Collections.Concurrent;
using System.Diagnostics.Contracts;
+using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
+using RobloxDeployHistory;
+
namespace RobloxPlayerModManager
{
public partial class BootstrapperForm : Form
{
public PlayerBootstrapper Bootstrapper { get; private set; }
+ private ConcurrentBag logQueue = new ConcurrentBag();
private readonly bool exitOnClose = false;
public BootstrapperForm(PlayerBootstrapper bootstrapper, bool exitWhenClosed = false)
@@ -18,11 +23,8 @@ public BootstrapperForm(PlayerBootstrapper bootstrapper, bool exitWhenClosed = f
Bootstrapper = bootstrapper;
exitOnClose = exitWhenClosed;
- bootstrapper.EchoFeed += new MessageEventHandler(Bootstrapper_EchoFeed);
- bootstrapper.StatusChanged += new MessageEventHandler(Bootstrapper_StatusChanged);
-
- bootstrapper.ProgressChanged += new ChangeEventHandler(Bootstrapper_ProgressChanged);
- bootstrapper.ProgressBarStyleChanged += new ChangeEventHandler(Bootstrapper_ProgressBarStyleChanged);
+ bootstrapper.EchoFeed += new MessageFeed(echo);
+ bootstrapper.StatusFeed += new MessageFeed(setStatus);
Show();
BringToFront();
@@ -30,32 +32,61 @@ public BootstrapperForm(PlayerBootstrapper bootstrapper, bool exitWhenClosed = f
public async Task Bootstrap()
{
- string targetVersion = Program.GetString("TargetVersion");
- var bootstrap = Bootstrapper.Bootstrap(targetVersion);
+ var state = Program.State;
+ var targetVersion = state.TargetVersion;
+
+ progressTimer.Tick += new EventHandler((sender, args) =>
+ {
+ var progress = Bootstrapper.Progress;
+ progressBar.Style = Bootstrapper.ProgressBarStyle;
+ var maxProgress = Bootstrapper.MaxProgress;
+ progressBar.Maximum = maxProgress;
+ if (progress > maxProgress)
+ {
+ progressBar.Value = Math.Max(0, maxProgress - 1);
+ return;
+ }
+ if (!logQueue.IsEmpty)
+ {
+ string blob = string.Join("\n", logQueue) + '\n';
+ var newQueue = new ConcurrentBag();
+ Interlocked.Exchange(ref logQueue, newQueue);
+ log.AppendText(blob);
+ }
+ progressBar.Value = Math.Min(progress, maxProgress);
+ Refresh();
+ });
+ var bootstrap = Bootstrapper.Bootstrap(targetVersion);
await bootstrap.ConfigureAwait(true);
}
- public static async Task BringUpToDate(string branch, string expectedVersion, string updateReason)
+ public static async Task BringUpToDate(Channel channel, string expectedVersion, string updateReason)
{
- string currentVersion = Program.VersionRegistry.GetString("VersionGuid");
+ var versionData = Program.State.VersionData;
+ string currentVersion = versionData.VersionGuid;
if (currentVersion != expectedVersion)
{
- DialogResult check = MessageBox.Show
- (
- "Roblox Player is out of date!\n"
- + updateReason +
- "\nWould you like to update now?",
+ DialogResult check = DialogResult.Yes;
- "Out of date!",
- MessageBoxButtons.YesNo,
- MessageBoxIcon.Warning
- );
+ if (!string.IsNullOrEmpty(currentVersion))
+ {
+ check = MessageBox.Show
+ (
+ "Roblox Player is out of date!\n"
+ + updateReason +
+ "\nWould you like to update now?",
+
+ "Out of date!",
+ MessageBoxButtons.YesNo,
+ MessageBoxIcon.Warning
+ );
+ }
if (check == DialogResult.Yes)
{
- var bootstrapper = new PlayerBootstrapper() { Branch = branch };
+ var bootstrapper = new PlayerBootstrapper() { Channel = channel };
using (var installer = new BootstrapperForm(bootstrapper))
{
@@ -66,109 +97,30 @@ public static async Task BringUpToDate(string branch, string expectedVersion, st
}
}
- private void UpdateStatusMetric()
- {
- string text = "";
-
- if (progressBar.Style == ProgressBarStyle.Continuous)
- {
- int progress = progressBar.Value;
- int progressMax = progressBar.Maximum;
-
- text = $"(Progress Metric: {progress}/{progressMax})";
- }
-
- if (progressMetric.Text == text)
- return;
-
- progressMetric.Text = text;
- progressMetric.Refresh();
- }
-
- private void Bootstrapper_StatusChanged(object sender, MessageEventArgs e)
+ private void setStatus(string status)
{
if (statusLbl.InvokeRequired)
{
- var inThread = new MessageEventHandler(Bootstrapper_StatusChanged);
- statusLbl.Invoke(inThread, sender, e);
+ var action = new Action(setStatus);
+ statusLbl.Invoke(action, status);
}
else
{
- statusLbl.Text = e.Message;
+ statusLbl.Text = status;
statusLbl.Refresh();
-
BringToFront();
- UpdateStatusMetric();
}
}
- private void Bootstrapper_EchoFeed(object sender, MessageEventArgs e)
+ private void echo(string msg)
{
- if (log.InvokeRequired)
- {
- var inThread = new MessageEventHandler(Bootstrapper_EchoFeed);
- log.Invoke(inThread, sender, e);
- }
- else
- {
- if (!string.IsNullOrEmpty(log.Text))
- log.AppendText("\n");
-
- log.AppendText(e.Message);
- }
- }
-
- private void Bootstrapper_ProgressChanged(object sender, ChangeEventArgs e)
- {
- if (progressBar.InvokeRequired)
- {
- var inThread = new ChangeEventHandler(Bootstrapper_ProgressChanged);
- progressBar.Invoke(inThread, sender, e);
- }
- else
- {
- int value = e.Value;
- var context = e.Context;
-
- switch (context)
- {
- case "Progress":
- {
- progressBar.Value = Math.Min(value, progressBar.Maximum);
- break;
- }
- case "MaxProgress":
- {
- if (progressBar.Value > value)
- progressBar.Value = (value - 1);
-
- progressBar.Maximum = value;
- break;
- }
- }
-
- UpdateStatusMetric();
- }
- }
-
- private void Bootstrapper_ProgressBarStyleChanged(object sender, ChangeEventArgs e)
- {
- if (progressBar.InvokeRequired)
- {
- var inThread = new ChangeEventHandler(Bootstrapper_ProgressBarStyleChanged);
- progressBar.Invoke(inThread, sender, e);
- }
- else
- {
- var style = e.Value;
- progressBar.Style = style;
-
- UpdateStatusMetric();
- }
+ logQueue.Add(msg);
}
private void BootstrapperForm_FormClosed(object sender, FormClosedEventArgs e)
{
+ Program.SaveState();
+
if (exitOnClose && e.CloseReason == CloseReason.UserClosing)
{
Application.Exit();
@@ -199,8 +151,13 @@ private void BootstrapperForm_FormClosing(object sender, FormClosingEventArgs e)
Environment.Exit(0);
return;
}
-
+
e.Cancel = true;
}
+
+ private void BootstrapperForm_Load(object sender, EventArgs e)
+ {
+
+ }
}
}
diff --git a/ProjectSrc/Forms/BootstrapperForm.resx b/ProjectSrc/Forms/BootstrapperForm.resx
new file mode 100644
index 0000000..fffb0d8
--- /dev/null
+++ b/ProjectSrc/Forms/BootstrapperForm.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/ProjectSrc/Forms/Extra.Designer.cs b/ProjectSrc/Forms/Extra.Designer.cs
new file mode 100644
index 0000000..7861551
--- /dev/null
+++ b/ProjectSrc/Forms/Extra.Designer.cs
@@ -0,0 +1,436 @@
+namespace RobloxPlayerModManager.Forms
+{
+ partial class Extra
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Extra));
+ this.tabControl1 = new System.Windows.Forms.TabControl();
+ this.extraPatchesPage = new System.Windows.Forms.TabPage();
+ this.graphicsApisComboBox = new System.Windows.Forms.ComboBox();
+ this.label6 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.disableDpiCheckBox = new System.Windows.Forms.CheckBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.ApplyButton = new System.Windows.Forms.Button();
+ this.label2 = new System.Windows.Forms.Label();
+ this.fpsNumberTextBox = new System.Windows.Forms.TextBox();
+ this.serversPage = new System.Windows.Forms.TabPage();
+ this.label1 = new System.Windows.Forms.Label();
+ this.placeIdTextBox = new System.Windows.Forms.TextBox();
+ this.button1 = new System.Windows.Forms.Button();
+ this.dataGridView1 = new System.Windows.Forms.DataGridView();
+ this.serverId = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.ping = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.players = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.setServerJoin = new System.Windows.Forms.DataGridViewButtonColumn();
+ this.deploymentLogsPage = new System.Windows.Forms.TabPage();
+ this.label7 = new System.Windows.Forms.Label();
+ this.channelTextBox = new System.Windows.Forms.TextBox();
+ this.deploymentLogsDataGridView = new System.Windows.Forms.DataGridView();
+ this.changelist = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.version = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.date = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.fileVersion = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.gitHash = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.label8 = new System.Windows.Forms.Label();
+ this.tabControl1.SuspendLayout();
+ this.extraPatchesPage.SuspendLayout();
+ this.serversPage.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
+ this.deploymentLogsPage.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.deploymentLogsDataGridView)).BeginInit();
+ this.SuspendLayout();
+ //
+ // tabControl1
+ //
+ this.tabControl1.Controls.Add(this.extraPatchesPage);
+ this.tabControl1.Controls.Add(this.serversPage);
+ this.tabControl1.Controls.Add(this.deploymentLogsPage);
+ this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tabControl1.Location = new System.Drawing.Point(0, 0);
+ this.tabControl1.Name = "tabControl1";
+ this.tabControl1.SelectedIndex = 0;
+ this.tabControl1.Size = new System.Drawing.Size(784, 411);
+ this.tabControl1.TabIndex = 4;
+ //
+ // extraPatchesPage
+ //
+ this.extraPatchesPage.Controls.Add(this.graphicsApisComboBox);
+ this.extraPatchesPage.Controls.Add(this.label6);
+ this.extraPatchesPage.Controls.Add(this.label5);
+ this.extraPatchesPage.Controls.Add(this.label4);
+ this.extraPatchesPage.Controls.Add(this.disableDpiCheckBox);
+ this.extraPatchesPage.Controls.Add(this.label3);
+ this.extraPatchesPage.Controls.Add(this.ApplyButton);
+ this.extraPatchesPage.Controls.Add(this.label2);
+ this.extraPatchesPage.Controls.Add(this.fpsNumberTextBox);
+ this.extraPatchesPage.Location = new System.Drawing.Point(4, 22);
+ this.extraPatchesPage.Name = "extraPatchesPage";
+ this.extraPatchesPage.Padding = new System.Windows.Forms.Padding(3);
+ this.extraPatchesPage.Size = new System.Drawing.Size(776, 385);
+ this.extraPatchesPage.TabIndex = 1;
+ this.extraPatchesPage.Text = "Extra Patches";
+ this.extraPatchesPage.UseVisualStyleBackColor = true;
+ //
+ // graphicsApisComboBox
+ //
+ this.graphicsApisComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.graphicsApisComboBox.FormattingEnabled = true;
+ this.graphicsApisComboBox.Items.AddRange(new object[] {
+ "DirectX11",
+ "DirectX10",
+ "OpenGL (⚠️)",
+ "Vulkan"});
+ this.graphicsApisComboBox.Location = new System.Drawing.Point(85, 49);
+ this.graphicsApisComboBox.Name = "graphicsApisComboBox";
+ this.graphicsApisComboBox.Size = new System.Drawing.Size(98, 21);
+ this.graphicsApisComboBox.TabIndex = 9;
+ this.graphicsApisComboBox.SelectedIndexChanged += new System.EventHandler(this.graphicsApisComboBox_SelectedIndexChanged);
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(192, 46);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(542, 26);
+ this.label6.TabIndex = 8;
+ this.label6.Text = "Changes which graphics API Roblox uses for rendering. Some of these APIs might ma" +
+ "ke your Roblox run faster so\r\ntry them at your own leisure and figure which one " +
+ "is best for you";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(10, 53);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(69, 13);
+ this.label5.TabIndex = 7;
+ this.label5.Text = "Graphics API";
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(192, 83);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(452, 39);
+ this.label4.TabIndex = 5;
+ this.label4.Text = resources.GetString("label4.Text");
+ //
+ // disableDpiCheckBox
+ //
+ this.disableDpiCheckBox.AutoSize = true;
+ this.disableDpiCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.disableDpiCheckBox.Location = new System.Drawing.Point(10, 94);
+ this.disableDpiCheckBox.Name = "disableDpiCheckBox";
+ this.disableDpiCheckBox.Size = new System.Drawing.Size(170, 17);
+ this.disableDpiCheckBox.TabIndex = 4;
+ this.disableDpiCheckBox.Text = "Disable Automatic DPI Scaling";
+ this.disableDpiCheckBox.UseVisualStyleBackColor = true;
+ this.disableDpiCheckBox.CheckedChanged += new System.EventHandler(this.disableDpiCheckBox_CheckedChanged);
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(192, 10);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(572, 26);
+ this.label3.TabIndex = 3;
+ this.label3.Text = resources.GetString("label3.Text");
+ //
+ // ApplyButton
+ //
+ this.ApplyButton.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.ApplyButton.ForeColor = System.Drawing.SystemColors.ControlText;
+ this.ApplyButton.Location = new System.Drawing.Point(3, 357);
+ this.ApplyButton.Name = "ApplyButton";
+ this.ApplyButton.Size = new System.Drawing.Size(770, 25);
+ this.ApplyButton.TabIndex = 2;
+ this.ApplyButton.Text = "Apply";
+ this.ApplyButton.UseVisualStyleBackColor = true;
+ this.ApplyButton.Click += new System.EventHandler(this.ApplyButton_Click);
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(10, 16);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(50, 13);
+ this.label2.TabIndex = 1;
+ this.label2.Text = "Max FPS";
+ //
+ // fpsNumberTextBox
+ //
+ this.fpsNumberTextBox.Location = new System.Drawing.Point(66, 13);
+ this.fpsNumberTextBox.Name = "fpsNumberTextBox";
+ this.fpsNumberTextBox.Size = new System.Drawing.Size(117, 20);
+ this.fpsNumberTextBox.TabIndex = 0;
+ this.fpsNumberTextBox.Leave += new System.EventHandler(this.fpsNumberTextBox_TextChanged);
+ //
+ // serversPage
+ //
+ this.serversPage.Controls.Add(this.label8);
+ this.serversPage.Controls.Add(this.label1);
+ this.serversPage.Controls.Add(this.placeIdTextBox);
+ this.serversPage.Controls.Add(this.button1);
+ this.serversPage.Controls.Add(this.dataGridView1);
+ this.serversPage.Location = new System.Drawing.Point(4, 22);
+ this.serversPage.Name = "serversPage";
+ this.serversPage.Padding = new System.Windows.Forms.Padding(3);
+ this.serversPage.Size = new System.Drawing.Size(776, 385);
+ this.serversPage.TabIndex = 0;
+ this.serversPage.Text = "Servers";
+ this.serversPage.UseVisualStyleBackColor = true;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(444, 10);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(43, 13);
+ this.label1.TabIndex = 7;
+ this.label1.Text = "PlaceId";
+ //
+ // placeIdTextBox
+ //
+ this.placeIdTextBox.Location = new System.Drawing.Point(338, 6);
+ this.placeIdTextBox.Name = "placeIdTextBox";
+ this.placeIdTextBox.Size = new System.Drawing.Size(100, 20);
+ this.placeIdTextBox.TabIndex = 6;
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(257, 5);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(75, 23);
+ this.button1.TabIndex = 5;
+ this.button1.Text = "Find Servers";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // dataGridView1
+ //
+ this.dataGridView1.AllowUserToAddRows = false;
+ this.dataGridView1.AllowUserToDeleteRows = false;
+ this.dataGridView1.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
+ this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.serverId,
+ this.ping,
+ this.players,
+ this.setServerJoin});
+ this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
+ this.dataGridView1.Location = new System.Drawing.Point(3, 32);
+ this.dataGridView1.Name = "dataGridView1";
+ this.dataGridView1.RowHeadersVisible = false;
+ this.dataGridView1.Size = new System.Drawing.Size(770, 350);
+ this.dataGridView1.TabIndex = 4;
+ //
+ // serverId
+ //
+ this.serverId.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.serverId.HeaderText = "Server ID";
+ this.serverId.MinimumWidth = 8;
+ this.serverId.Name = "serverId";
+ this.serverId.ReadOnly = true;
+ this.serverId.Resizable = System.Windows.Forms.DataGridViewTriState.False;
+ this.serverId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+ //
+ // ping
+ //
+ this.ping.HeaderText = "Ping";
+ this.ping.Name = "ping";
+ this.ping.Resizable = System.Windows.Forms.DataGridViewTriState.False;
+ //
+ // players
+ //
+ this.players.HeaderText = "Players";
+ this.players.Name = "players";
+ this.players.Resizable = System.Windows.Forms.DataGridViewTriState.False;
+ //
+ // setServerJoin
+ //
+ this.setServerJoin.HeaderText = "Join Server";
+ this.setServerJoin.Name = "setServerJoin";
+ this.setServerJoin.Resizable = System.Windows.Forms.DataGridViewTriState.False;
+ this.setServerJoin.Text = "Join Server";
+ //
+ // deploymentLogsPage
+ //
+ this.deploymentLogsPage.Controls.Add(this.label7);
+ this.deploymentLogsPage.Controls.Add(this.channelTextBox);
+ this.deploymentLogsPage.Controls.Add(this.deploymentLogsDataGridView);
+ this.deploymentLogsPage.Location = new System.Drawing.Point(4, 22);
+ this.deploymentLogsPage.Name = "deploymentLogsPage";
+ this.deploymentLogsPage.Padding = new System.Windows.Forms.Padding(3);
+ this.deploymentLogsPage.Size = new System.Drawing.Size(776, 385);
+ this.deploymentLogsPage.TabIndex = 2;
+ this.deploymentLogsPage.Text = "Deployment Logs";
+ this.deploymentLogsPage.UseVisualStyleBackColor = true;
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(268, 10);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(46, 13);
+ this.label7.TabIndex = 2;
+ this.label7.Text = "Channel";
+ //
+ // channelTextBox
+ //
+ this.channelTextBox.Location = new System.Drawing.Point(320, 6);
+ this.channelTextBox.Name = "channelTextBox";
+ this.channelTextBox.Size = new System.Drawing.Size(137, 20);
+ this.channelTextBox.TabIndex = 1;
+ this.channelTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.channelTextBox_KeyDown);
+ //
+ // deploymentLogsDataGridView
+ //
+ this.deploymentLogsDataGridView.AllowUserToAddRows = false;
+ this.deploymentLogsDataGridView.AllowUserToDeleteRows = false;
+ this.deploymentLogsDataGridView.AllowUserToResizeColumns = false;
+ this.deploymentLogsDataGridView.AllowUserToResizeRows = false;
+ this.deploymentLogsDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.deploymentLogsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.changelist,
+ this.version,
+ this.date,
+ this.fileVersion,
+ this.gitHash});
+ this.deploymentLogsDataGridView.Location = new System.Drawing.Point(3, 29);
+ this.deploymentLogsDataGridView.Name = "deploymentLogsDataGridView";
+ this.deploymentLogsDataGridView.RowHeadersVisible = false;
+ this.deploymentLogsDataGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
+ this.deploymentLogsDataGridView.Size = new System.Drawing.Size(770, 353);
+ this.deploymentLogsDataGridView.TabIndex = 0;
+ //
+ // changelist
+ //
+ this.changelist.HeaderText = "Changelist N°";
+ this.changelist.Name = "changelist";
+ this.changelist.ReadOnly = true;
+ this.changelist.Width = 130;
+ //
+ // version
+ //
+ this.version.HeaderText = "Version";
+ this.version.Name = "version";
+ this.version.ReadOnly = true;
+ //
+ // date
+ //
+ this.date.HeaderText = "Date";
+ this.date.Name = "date";
+ this.date.ReadOnly = true;
+ this.date.Width = 153;
+ //
+ // fileVersion
+ //
+ this.fileVersion.HeaderText = "File Version";
+ this.fileVersion.Name = "fileVersion";
+ this.fileVersion.ReadOnly = true;
+ this.fileVersion.Width = 90;
+ //
+ // gitHash
+ //
+ this.gitHash.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.gitHash.HeaderText = "Git Hash";
+ this.gitHash.Name = "gitHash";
+ this.gitHash.ReadOnly = true;
+ //
+ // label8
+ //
+ this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label8.Location = new System.Drawing.Point(509, 6);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(261, 20);
+ this.label8.TabIndex = 0;
+ this.label8.Text = "The \"Join Server\" Feature isn\'t done yet";
+ //
+ // Extra
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.Control;
+ this.ClientSize = new System.Drawing.Size(784, 411);
+ this.Controls.Add(this.tabControl1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.Name = "Extra";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Extra";
+ this.Load += new System.EventHandler(this.extraSettingsPage_Load);
+ this.tabControl1.ResumeLayout(false);
+ this.extraPatchesPage.ResumeLayout(false);
+ this.extraPatchesPage.PerformLayout();
+ this.serversPage.ResumeLayout(false);
+ this.serversPage.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
+ this.deploymentLogsPage.ResumeLayout(false);
+ this.deploymentLogsPage.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.deploymentLogsDataGridView)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TabControl tabControl1;
+ private System.Windows.Forms.TabPage serversPage;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.TextBox placeIdTextBox;
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.DataGridView dataGridView1;
+ private System.Windows.Forms.DataGridViewTextBoxColumn serverId;
+ private System.Windows.Forms.DataGridViewTextBoxColumn ping;
+ private System.Windows.Forms.DataGridViewTextBoxColumn players;
+ private System.Windows.Forms.DataGridViewButtonColumn setServerJoin;
+ private System.Windows.Forms.TabPage extraPatchesPage;
+ private System.Windows.Forms.Button ApplyButton;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.TextBox fpsNumberTextBox;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.CheckBox disableDpiCheckBox;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.ComboBox graphicsApisComboBox;
+ private System.Windows.Forms.TabPage deploymentLogsPage;
+ private System.Windows.Forms.DataGridView deploymentLogsDataGridView;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.TextBox channelTextBox;
+ private System.Windows.Forms.DataGridViewTextBoxColumn changelist;
+ private System.Windows.Forms.DataGridViewTextBoxColumn version;
+ private System.Windows.Forms.DataGridViewTextBoxColumn date;
+ private System.Windows.Forms.DataGridViewTextBoxColumn fileVersion;
+ private System.Windows.Forms.DataGridViewTextBoxColumn gitHash;
+ private System.Windows.Forms.Label label8;
+ }
+}
\ No newline at end of file
diff --git a/ProjectSrc/Forms/Extra.cs b/ProjectSrc/Forms/Extra.cs
new file mode 100644
index 0000000..47668fa
--- /dev/null
+++ b/ProjectSrc/Forms/Extra.cs
@@ -0,0 +1,281 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Globalization;
+using System.IO;
+using System.Net;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Forms;
+using Microsoft.Build.Tasks;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using RobloxDeployHistory;
+using MessageBox = System.Windows.Forms.MessageBox;
+using SystemColors = System.Drawing.SystemColors;
+
+namespace RobloxPlayerModManager.Forms
+{
+ public partial class Extra : Form
+ {
+ private Dictionary changedFflagsList;
+
+ private const string apiEndpoint = "https://games.roblox.com/v1/games/";
+ private const int serverLimit = 100;
+ private string placeId = new Launcher(Program.appArguments).placeId;
+
+ private List> serverData;
+
+ public Extra()
+ {
+ InitializeComponent();
+ if (placeId != null)
+ {
+ placeIdTextBox.Text = placeId;
+ }
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ string placeId = placeIdTextBox.Text;
+ string settingsPath = Program.RootDir + "serverList.json";
+
+ try
+ {
+ DownloadSettingsFile(placeId, settingsPath);
+ serverData = ReadJsonFile(settingsPath);
+ }
+ catch
+ {
+ MessageBox.Show("An error occured while trying to get the server list.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ // Use the 'serverData' list of dictionaries as needed
+ if (serverData.Count > 0)
+ {
+ dataGridView1.Rows.Clear();
+ foreach (Dictionary server in serverData)
+ {
+ string serverId = server["id"].ToString();
+ int maxPlayers = Convert.ToInt32(server["maxPlayers"], CultureInfo.InvariantCulture);
+ List playerTokens = ((JArray)server["playerTokens"]).ToObject>();
+ int currentPlayers = Convert.ToInt32(server["playing"], CultureInfo.InvariantCulture);
+ int ping = Convert.ToInt32(server["ping"], CultureInfo.InvariantCulture);
+
+ // Example output to demonstrate accessing the values for each server
+ //MessageBox.Show($"Server ID: {serverId}\nMax Players: {maxPlayers}\nCurrent Players: {currentPlayers}\nFirst Player Token: {(playerTokens.Count > 0 ? playerTokens[0] : "N / A")}");
+ dataGridView1.Rows.Add(serverId, ping, $"{currentPlayers}/{maxPlayers}", "Set Server");
+ }
+ }
+ else
+ {
+ MessageBox.Show("No server data found.");
+ }
+ }
+
+ private static void DownloadSettingsFile(string placeId, string settingsPath)
+ {
+ string url = $"{apiEndpoint}{placeId}/servers/0?sortOrder=2&excludeFullGames=false&limit={serverLimit}";
+
+ using (var client = new WebClient())
+ {
+ try
+ {
+ client.DownloadFile(url, settingsPath);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "An error has occured!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
+ return;
+ }
+ }
+ }
+
+ private static List> ReadJsonFile(string filePath)
+ {
+ string jsonContent = File.ReadAllText(filePath);
+ JObject data = JObject.Parse(jsonContent);
+
+ if (data.TryGetValue("data", out var dataArray))
+ {
+ JArray servers = (JArray)dataArray;
+ return servers.ToObject>>();
+ }
+
+ return new List>();
+ }
+
+ // #### Extra options methods #### //
+
+ private void AddFVariable(string type, string name, string value)
+ {
+ if (value == null)
+ {
+ value = 0.ToString(CultureInfo.InvariantCulture);
+ }
+
+ FVariable variable = new FVariable(type, value, true)
+ {
+ Name = name
+ };
+
+ if (changedFflagsList == null)
+ {
+ changedFflagsList = new Dictionary();
+ }
+
+ if (changedFflagsList.ContainsKey(variable.Key))
+ {
+ // Update existing entry
+ changedFflagsList[variable.Key].Value = variable.Value;
+ }
+ else
+ {
+ // Add new entry
+ try
+ {
+ changedFflagsList.Add(variable.Key, variable);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"An exception occured while trying to add the FFlag {name} of type {type} with the value {value} \n" + ex.Message, "An Exception Occurred", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ private void extraSettingsPage_Load(object sender, EventArgs e)
+ {
+ if (Program.State.extraMaxFPS != null)
+ {
+ fpsNumberTextBox.Text = Program.State.extraMaxFPS;
+ }
+
+ if (Program.State.extraSelectedRendererIndex != null)
+ {
+ graphicsApisComboBox.SelectedIndex = Program.State.extraSelectedRendererIndex;
+ }
+
+ if (Program.State.extraDPIDisabled != null)
+ {
+ disableDpiCheckBox.Checked = Program.State.extraDPIDisabled;
+ }
+ }
+
+ private void ApplyButton_Click(object sender, EventArgs e)
+ {
+ using (FlagEditor flagEditor = new FlagEditor())
+ {
+ flagEditor.InitializeEditor();
+
+ //go through the dictionary and apply the values
+ if (changedFflagsList != null)
+ {
+ foreach (var kvp in changedFflagsList)
+ {
+ flagEditor.addFlagOverride(kvp.Value, false);
+
+ Program.State.extraMaxFPS = fpsNumberTextBox.Text;
+ Program.State.extraSelectedRendererIndex = graphicsApisComboBox.SelectedIndex;
+ Program.State.extraDPIDisabled = disableDpiCheckBox.Checked;
+
+ Program.SaveState();
+ }
+ }
+ }
+
+ try
+ {
+ ApplyButton.Text = $"Applied {changedFflagsList.Count} FFlags!";
+ ApplyButton.Enabled = false;
+ ApplyButton.Refresh();
+ }
+ catch (NullReferenceException)
+ {
+ MessageBox.Show("No options were changed, no FFLags were applied", "No option changed", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+
+ //reset the dictionary
+ changedFflagsList = null;
+
+ Task.Delay(500).ContinueWith(_ =>
+ {
+ this.Invoke((MethodInvoker)delegate
+ {
+ ApplyButton.Text = "Apply";
+ ApplyButton.ForeColor = SystemColors.ControlText;
+ ApplyButton.Enabled = true;
+ ApplyButton.Refresh();
+ });
+ }, TaskScheduler.FromCurrentSynchronizationContext());
+ }
+
+ private void fpsNumberTextBox_TextChanged(object sender, EventArgs e)
+ {
+ AddFVariable("DFInt", "TaskSchedulerTargetFps", fpsNumberTextBox.Text);
+ }
+
+ private void disableDpiCheckBox_CheckedChanged(object sender, EventArgs e)
+ {
+ if (disableDpiCheckBox.Checked)
+ {
+ AddFVariable("DFFlag", "DisableDPIScale", "True");
+ }
+ else
+ {
+ AddFVariable("DFFlag", "DisableDPIScale", "False");
+ }
+ }
+
+ private void graphicsApisComboBox_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ switch (graphicsApisComboBox.SelectedIndex)
+ {
+ case 0:
+ AddFVariable("FFlag", "DebugGraphicsPreferOpenGL", "False");
+ AddFVariable("FFlag", "DebugGraphicsPreferVulkan", "False");
+ AddFVariable("FFlag", "DebugGraphicsPreferPreferD3D11FL10", "False");
+ AddFVariable("FFlag", "DebugGraphicsPreferD3D11", "True");
+ break;
+
+ case 1:
+ AddFVariable("FFlag", "DebugGraphicsPreferOpenGL", "False");
+ AddFVariable("FFlag", "DebugGraphicsPreferVulkan", "False");
+ AddFVariable("FFlag", "DebugGraphicsPreferPreferD3D11FL10", "True");
+ AddFVariable("FFlag", "DebugGraphicsPreferD3D11", "False");
+ break;
+
+ case 2:
+ AddFVariable("FFlag", "DebugGraphicsPreferOpenGL", "True");
+ AddFVariable("FFlag", "DebugGraphicsPreferVulkan", "False");
+ AddFVariable("FFlag", "DebugGraphicsPreferPreferD3D11FL10", "False");
+ AddFVariable("FFlag", "DebugGraphicsPreferD3D11", "False");
+ break;
+
+ case 3:
+ AddFVariable("FFlag", "DebugGraphicsPreferOpenGL", "False");
+ AddFVariable("FFlag", "DebugGraphicsPreferVulkan", "True");
+ AddFVariable("FFlag", "DebugGraphicsPreferPreferD3D11FL10", "False");
+ AddFVariable("FFlag", "DebugGraphicsPreferD3D11", "False");
+ break;
+ }
+ }
+
+ private async void channelTextBox_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter)
+ {
+ PlayerDeployLogs channelLogs = await PlayerDeployLogs.Get(channelTextBox.Text, true).ConfigureAwait(true);
+
+ if (channelLogs != null)
+ {
+ deploymentLogsDataGridView.Rows.Clear();
+
+ foreach (var item in channelLogs.CurrentLogs_x86)
+ {
+ deploymentLogsDataGridView.Rows.Add(item.Changelist, item.VersionId, item.TimeStamp, item.Version, item.GitHash);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/ProjectSrc/Forms/Extra.resx b/ProjectSrc/Forms/Extra.resx
new file mode 100644
index 0000000..349b564
--- /dev/null
+++ b/ProjectSrc/Forms/Extra.resx
@@ -0,0 +1,3183 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ Disables Roblox's automatic DPI Scaling so the game renders at hgher resolutions than 1080p.
+While this makes the game look better it can be heavy on performance.
+You need a monitor that renders resolutions higher than 1920x1080 for this option to work
+
+
+
+ Overrides roblox's max FPS. (May be removed in the future due to roblox soon including this option in the game's settings
+Warning: if you set this too high it can cause the physics's framerate to be too high and increase the ping
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ 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
+ H9AAPAATAt/74hgca7gNt+G2yLYIBBa/5/fz0sECc+Av7/MdB3u+j+E23IbbO2SLgZsHcOkzBzySA8Bw
+ G27D7R26xQD3X5cGiFlBLv7cv/shA4KU/n9ZD+gGR01h0gAAAABJRU5ErkJggigAAACAAAAAAAEAAAEA
+ IAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAACAAAAAwAA
+ AAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAIAAAADAAAAAgAAAAQAAAAJAAAADAAAAA8AAAAQAAAADQAAAAgAAAAEAAAAAgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAHAAAACwAAABAAAAAVAAAAHQAAACYAAAAwAAAAOQAA
+ B0AAAB5CAAALLgAAABkAAAALAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAEAAAABwAAAAoAAAAOAAAAFAAA
+ ABsAAAAkAAAALwAAADwAAABLAAANYQIAJXoGAFGgCABstw0AjdcJAGSLAAAJNAAAABYAAAAHAAAAAQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAA
+ AAYAAAAJAAAADQAAABMAAAAaAAAAIgAAACsAAAA2AAAARAAAAFkAAAB4AAAEogEAFb4EADblCABY8QwA
+ gv8OAJL/DwCb/w0AjuICACFbAAAAJQAAAAwAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAgAAAAMAAAAFAAAACAAAAAwAAAARAAAAFwAAAB8AAAApAAAANAAAAEMAAAtWAAAObAAA
+ DJAAAAevAAAA1QAAAPAAAAT/AQAP/wMAJP8GAD//CQBc/wsAd/8NAIn/DQCP+QUARo0AAAA1AAAAFAAA
+ AAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAcAAAALAAAAEAAAABYAAAAdAAAAJgAA
+ ADAAAAA9AAAGTQIAIGYFAEePBwBWrggAXNUGAE7rBAAt+gIAF/8AAAj/AAAD/wAAAf8AAAP/AAAK/wIA
+ GP8EAC3/BgBI/woAZf8LAHn/BQBTuwAAA0kAAAAcAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAQAAAAHAAAACgAA
+ AA4AAAAUAAAAGwAAACQAAAAvAAAAPAAAA0sAAA1hAgAlewYAUaMJAGi/DQCN5w8AmPkOAJf/DQCK/wsA
+ dP8JAFr/BQA8/wMAIv8BABH/AAAG/wAAAf8AAAD/AAAF/wEADf8DAB7/BQA1/wcATf8FAFDlAAAPYQAA
+ ACYAAAAMAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
+ AAIAAAADAAAABQAAAAgAAAAMAAAAEgAAABgAAAAhAAAAKwAAADYAAABEAAAAWQAAAHgAAASiAQAYvgQA
+ PeUJAF3xDACF/w4AlP8PAJz/EACe/xAAnv8PAJr/DgCS/wwAgv8LAGz/BwBQ/wUANf8DAB7/AQAN/wAA
+ Bf8AAAD/AAAB/wAABv8BABH/AwAi/wMAKfEAAAp7AAAAMgAAABEAAAAEAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAUAAAAIAAAADAAAABEAAAAWAAAAHgAAACcAAAAyAAAAPwAA
+ DFQAAA5rAAAKkAAABK8AAADVAAAA8AAABv8BABL/AwAp/wYARP8KAGL/CwB7/w0Ajf8OAJj/DwCc/xAA
+ n/8QAJ7/DwCY/w0Ajv8MAH3/CgBm/wYASP8EAC3/AgAY/wAACv8AAAP/AAAB/wAAA/8AAAj/AQAP/wAA
+ B6cAAAA/AAAAGQAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAEAAAABwAAAAoAAAAPAAAAFQAA
+ AB0AAAAmAAAAMAAAADwAAAZMAgAcYgQAL3wGAFKnCABZ1AYASOsEACn6AgAU/wAAB/8AAAH/AAAA/wAA
+ Bf8BAAv/AgAa/wUAMv8HAE7/CgBp/wwAgP8OAJD/DwCa/xAAnv8QAJ7/DwCc/w4Alv8NAIn/CwB3/wkA
+ XP8GAEH/AwAm/wIAFP8AAAj/AAAC/wAAAP8AAAP/AAAC1AAAAFUAAAAhAAAACgAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAABAAA
+ AAcAAAAKAAAADgAAABMAAAAaAAAAIgAAACwAAAA4AAADSQAADWACACd6BgBRowkAZ74NAIzlDACP8Q4A
+ lf8MAIf/CwBx/wgAU/8FADf/AwAe/wEADv8AAAX/AAAB/wAAAf8AAAX/AQAP/wMAIf8FADn/CABW/wsA
+ cf8MAIX/DgCU/w8Am/8QAJ7/EACe/w8Am/8OAJT/DACF/wsAcP8IAFT/BQA4/wMAIf8BAA//AAAF/wAA
+ Af8AAADrAAAAawAAACsAAAAOAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAABAAAAAgAAAAMAAAAFAAAACAAAAAwAAAASAAAAGAAAACEAAAArAAAANgAAAEMAAABXAAAAbQAA
+ BZIBABu7BABA5QkAYvEMAIj/DgCW/w8AnP8QAJ7/EACe/w8AmP8NAI//DAB//woAZ/8HAEv/BAAw/wIA
+ Gf8BAAv/AAAD/wAAAP8AAAL/AAAI/wIAFP8DACf/BgBB/wkAXP8LAHf/DQCL/w4Alv8PAJz/EACe/xAA
+ nv8PAJr/DgCQ/wwAgP8KAGn/BwBO/wUAMv8CABr/AQAL/wAAA/kAAACQAAAANgAAABMAAAAEAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABQAAAAgAAAAMAAAAEQAAABYAAAAeAAAAJwAA
+ ADIAAAA/AAAMVAAAC2sAAAiQAAAErwAAANUAAADrAAAG+gIAFf8EAC3/BwBJ/woAZv8MAH//DQCP/w8A
+ mP8QAJ7/EACe/w8AnP8OAJf/DQCL/wsAeP8JAGD/BgBC/wQAKf8CABX/AAAI/wAAAv8AAAD/AAAD/wAA
+ Cv8CABj/BAAu/wcASf8KAGb/DAB9/w0Aj/8PAJj/EACe/xAAn/8PAJz/DgCX/w0AjP8LAHr/CQBh/wYA
+ RP8EACr/AgAY/wAAC68AAABDAAAAGgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAQAAAAHAAAACgAA
+ AA8AAAAVAAAAHQAAACYAAAAwAAAAPAAABkwCABxiBAAvfAYAT6cHAFTUBgBD6wMAJPoBABH/AAAF/wAA
+ Af8AAAD/AAAF/wEADv8DAB7/BQA3/wgAU/8LAG7/DACE/w4Akv8PAJv/EACe/xAAnv8PAJz/DgCU/wwA
+ h/8LAHL/CABY/wUAO/8DACL/AQAQ/wAABf8AAAH/AAAA/wAABf8BAA3/AwAe/wUANf8HAFH/CwBs/wwA
+ gv8OAJL/DwCa/xAAnv8QAJ7/DwCc/w4Alf8NAIj/CwBz/wgAWf8FAED/AwAt1QAABVYAAAAiAAAACgAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
+ AAIAAAADAAAABgAAAAkAAAANAAAAEwAAABoAAAAiAAAALAAAADgAAANJAAAPYAIAJ3oGAFGjCQBnvg0A
+ jOUMAI7xDgCU/wwAg/8LAGv/BwBP/wUAMv8CABr/AQAL/wAABf8AAAD/AAAB/wAAB/8BABL/AwAl/wYA
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAABIbAAAaQwsA
+ k68WAOP/FgDj/xYA4/8WAOP/FgDj/xYA4/8VANX/EACo/woAbP8FADz/AgAb/wAACv8AAAP/AAAF/wEA
+ D/8EACj/BwBP/w0AiP8TAMX/FgDi/xYA4/8WAOP/FgDj/xYA4/8WAOP/FgDj/xYA4/8WAOP/FQDg/xMA
+ wf8NAIP/BwBM/wMAI/8BAAz/AAAD/wAABP8CABH/BAAv+ggAbOsOAJ3UDACJpwQAV3sCAD9hAAAlSwAA
+ GTsAABUvAAAOJAAACRsAAAAUAAAADgAAAAoAAAAHAAAABQAAAAMAAAACAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAABQAADBQAABc2CAB0kBUA3PoWAOP/FgDj/xYA4/8WAOP/FgDj/xYA
+ 4/8WAOP/FADM/w8Al/8JAF//BAA0/wIAF/8AAAj/AAAD/wAABv8CABT/BAAx/wkAX/8PAJ7/FADU/xYA
+ 4/8WAOP/FgDj/xYA4/8WAOP/FgDj/xYA4/8WAOP/FgDj/xUA3f8RALD/CQBj/wQAL/8BAAvwAAAC1QAA
+ Aa8AAAqPAAAYagAAHlQAABQ/AAAUMQAAGicAABkeAAAWFwAADxEAAAALAAAACAAAAAUAAAADAAAAAgAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAASDgAA
+ ESsCAEBrEgDK6xYA4/8WAOP/FgDj/xYA4/8WAOP/FgDj/xYA4/8WAOP/FQDg/xMAxP8NAIv/CABT/wQA
+ Kv8CABH/AAAF/wAABP8AAAn/AgAc/wYAP/8LAHL/EgC1/xUA3f8WAOP/FgDj/xYA4/8WAOP/FgDj/xYA
+ 4/8WAOP/FADR8REAyeUJAG++AwApoQAACncAAABYAAAARAAAADYAAAArAAAHIQAAChkAAA4SAAATDQAA
+ HAkAAAAGAAAABAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAALAAAHIgAAIVUNAIzVEgC6/xUA3P8WAOP/FgDj/xYA
+ 4/8WAOP/FgDj/xYA4/8WAOP/FgDj/xUA3f8SALj/CwB7/wcASf8DACT/AQAO/wAABP8AAAT/AQAO/wQA
+ Jf8HAE3/DQCF/xMAxf8WAOP/FgDj/xQA0fERAMnlDQChvgsAh6IEAFV6AgA1YAAAFEsAAAQ7AAAALwAA
+ ACQAAAAbAAAAFAAAAA4AAAAKAAAABgAAAAQAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
+ AAcAAAAaAAAHQgQANK8JAFr/DQCJ/xMAwf8VAN//FgDj/xYA4/8WAOP/FgDj/xYA4/8WAOP/FgDj/xYA
+ 4/8VANj/EQCt/woAb/8FAD3/AgAb/wAACf8AAAP/AAAF/wIAFf8EADX6CABw6w4AntQMAIynBABXewIA
+ P2EAACVLAAAZPAAAFTAAAA0mAAAIHgAAABcAAAARAAAACwAAAAgAAAAFAAAAAwAAAAIAAAABAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAABMAAAA2AAAOjwIAHPoFADT/CQBf/w8A
+ mf8UAND/FgDj/xYA4/8WAOP/FgDj/xYA4/8WAOP/FgDj/xYA4/8WAOP/FADP/w4Alf8IAFL/AwAk/wAA
+ CPAAAADVAAAErwAADI8AABpqAAAeVAAAFD8AABQxAAAaJwAAGR4AABYXAAAPEQAAFQwAAAAJAAAABgAA
+ AAQAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAADAAAADgAAACoAAABqAAAD6wAACv8CABz/BgA//wsAcf8RAK7/FQDb/xYA4/8WAOP/FgDj/xYA
+ 4/8WAOP/FgDj/xYA4/8UANHxEAC/5QgAXL4BACGhAAAGdwAAAFgAAABEAAAANgAAACsAAAchAAAKGQAA
+ DhIAABMNAAAcCQAAAAYAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAKAAAAIQAAAFMAAAHTAAAC/wAA
+ Bf8BAA//BAAn/wgAUP8NAIj/EwDE/xYA4v8WAOP/FADd+REAzOcNAKC/CQCIowQAU3oCADJgAAAQSwAA
+ BDsAAAAvAAAAJAAAABsAAAAUAAAADgAAAAoAAAAGAAAABAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAQAAAAYAAAAXAAAAOgAABqABAA3/AAAG/wAAA/8AAAb/AgAY/wUAOvoIAHXrDgCe1QsA
+ kq4HAHaOAgBBZQAAJE0AABk9AAAPMAAADSYAAAgeAAAAFwAAABEAAAALAAAACAAAAAUAAAADAAAAAgAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA8AAAAnAAAKZAMA
+ JOUCABn/AAAF8AAAAOQAAAW7AAAMkgAAHGwAAB1WAAAXQgAAEzQAABgpAAAYHwAAFhcAAA8RAAAADAAA
+ AAkAAAAGAAAABAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABUAAAAvAAAdbwAAFpEAAAR1AAAAYAAAAEoAAAA5AAAALAAA
+ ByIAAAkaAAANEwAAEg4AABwJAAAABgAAAAQAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAA
+ AAYAAAAQAAAAHAAAACIAAAAdAAAAFgAAAA4AAAAHAAAABAAAAAcAAAAFAAAAAwAAAAIAAAABAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////
+ ////////////////////////////////////////////////////////D///////////////////8A//
+ /////////////////wAH//////////////////AAB/////////////////+AAAf////////////////4
+ AAAH////////////////gAAAA////////////////AAAAAP//////////////8AAAAAD////////////
+ //wAAAAAAf/////////////AAAAAAAH////////////+AAAAAAAB////////////4AAAAAAAAf//////
+ /////gAAAAAAAAD//////////+AAAAAAAAAA//////////8AAAAAAAAAAP/////////wAAAAAAAAAAD/
+ ////////AAAAAAAAAAAAf///////8AAAAAAAAAAAAH///////4AAAAAAAAAAAAB///////gAAAAAAAAA
+ AAAAP/////+AAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAP////AAAAAAA
+ AAAAAAAAAB///+AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AA
+ AAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAP
+ ///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAA
+ AAAAA///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAA///+AAAAAAA
+ AAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///wA
+ AAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAA
+ ///+AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAA
+ AAAAAH///4AAAAAAAAAAAAAAAAD///+AAAAAAAAAfAAAAAAH////gAAAAAAAB/4AAAAAf////4AAAAAA
+ AH/+AAAAB//////AAAAAAAP//gAAAD//////wAAAAAA///4AAAP//////8AAAAAD////AAA////////A
+ AAAAP////wAB///4H///4AAAAf////8AH///wA///+AAAB//////gf///AAP///gAAH//////8///8AA
+ D///4AAP///B//////wAAAf///AA///+Af/////gAAAH///wD///4AD////+AAAAB///+H///gAA////
+ 4AAAAAf//////+AAAP///wAAAAAD//////8AAAD///AAAAAAA//////wAAAAf/8AAAAAAAP/////AAAA
+ AH/wAAAAAAAB////+AAAAAB/gAAAAAAAAf///4AAAAAAOAAAAAAAAAH///4AAAAAAAAAAAAAAAAB///+
+ AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAA
+ AP///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAA
+ AAAAAAB///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAA///+AAAAA
+ AAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///
+ wAAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAA
+ AA///+AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAAAAA
+ AAAAAAAH///4AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAf///gAAAAAAAAAAAAAAAAP///4AAAA
+ AAAAAAAAAAAA/////AAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAP/////8AAAAAAAAAAAAAAf/////
+ /AAAAAAAAAAAAAB///////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAf////////gAAAAAAAAAAA///
+ //////4AAAAAAAAAAD//////////AAAAAAAAAAP//////////wAAAAAAAAA///////////8AAAAAAAAB
+ ////////////gAAAAAAAH////////////4AAAAAAAf////////////+AAAAAAB//////////////gAAA
+ AAD//////////////8AAAAAP///////////////AAAAA////////////////wAAAD///////////////
+ /8AAAH/////////////////gAAf/////////////////4AB//////////////////+AD////////////
+ ///////wP///////////////////+/////////////////////////////////////8oAAAAgAAAAAAB
+ AAABAAgAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/xAA5v8AAAj/AAAZ/xAArf8AABD/AABz/wAA
+ Y/8IANb/CADF/wAAMf8AAEL/CABK/wAAKf8QAKX/AACM/xAAlP8AAJT/5hBS/+YQGf9rGc7/axmE/xnO
+ hP97MVL/ezEZ/0IxUv9CMRn/tTFS/7UxGf9rSs7/a0qE/5wZzv+cGYT/7xnO/+8ZhP/FGc7/xRmE/+Yx
+ Uv/vjFL/a4xS/62MUv8pjFL/5jEZ/++MGf9rjBn/rYwZ/ymMGf/vWlL/a1pS/61aUv8pWlL/71oZ/2ta
+ Gf+tWhn/KVoZ/2sZ7/9rGaX/771S/2u9Uv+tvVL/Kb1S/++9Gf9rvRn/rb0Z/ym9Gf/OjFL/SoxS/4yM
+ Uv8IjFL/zowZ/0qMGf+MjBn/CIwZ/85aUv9KWlL/jFpS/whaUv/OWhn/SloZ/4xaGf8IWhn/zr1S/0q9
+ Uv+MvVL/CL1S/869Gf9KvRn/jL0Z/wi9Gf/epe//WqXv/96lpf9apaX/nKXv/xml7/+cpaX/GaWl/957
+ 7/9ae+//3nul/1p7pf+ce+//GXvv/5x7pf8Ze6X/3u/O/1rvzv/e74T/Wu+E/5zvzv8Z787/nO+E/xnv
+ hP/ezu//Ws7v/97Opf9azqX/nM7v/xnO7/+czqX/Gc6l/xBSrf8QUoT/ECmt/xAphP/vSs7/nErO/5xK
+ hP/vSoT/xUrO/8VKhP86CIz/a0rv/2tKpf8QIe//ECHO/+/vUv9r71L/re9S/ynvUv8AAJz/7+8Z/2vv
+ Gf+t7xn/Ke8Z/5wZ7/+cGaX/7xnv/+8Zpf/FGe//xRml/87vUv9K71L/jO9S/wjvUv/O7xn/Su8Z/4zv
+ Gf8I7xn/exBC/3sQCP9CEEL/QhAI/7UQQv+1EAj/3u/v/1rv7/8xAN7/3u+l/1rvpf+c7+//Ge/v/5zv
+ pf8Z76X/QlKt/0JShP9CKa3/QimE/+9K7/8QMVL/ECEI/5xK7/+cSqX/70ql/0Ih7//FSu//xUql/xBS
+ 7/8QEFL/QiHO/xBSzv97EGP/exAp/0IQY/9CECn/tRBj/7UQKf9CUu//EDEp/++lzv9rpc7/76WE/2ul
+ hP+tpc7/KaXO/62lhP8ppYT/73vO/2t7zv/ve4T/a3uE/617zv8pe87/rXuE/yl7hP/vzs7/a87O/+/O
+ hP9rzoT/rc7O/ynOzv+tzoT/QlLO/xAQKf/Opc7/SqXO/86lhP9KpYT/jKXO/wilzv+MpYT/CKWE/857
+ zv9Ke87/znuE/0p7hP+Me87/CHvO/4x7hP8Ie4T/zs7O/0rOzv/OzoT/Ss6E/4zOzv8Izs7/jM6E/zEI
+ tf8IAPf/EAAI/xAAMf8ZAGP/EAAZ/wAA5v8QCOb/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBQMFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFDQz7EPsCAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwr7BhAQEPwAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgX5BQIAAAIF/Az7BhAQCwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAwwMBwcKAwIAAAAFAwoM
+ BxAMAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgUNDAcQEBAQ+wz6
+ DQUCAgAC+QP6DAwFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8CvsQ
+ EBAODhAQEAYMCwMCAAACAgUNDQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUF
+ AAAAAgMNDAcGEA4QDg4QEAb7DAoDAgAAAgIFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAIDCgwMDA0DAgAAAAX8Cgz7BhAQEA4QEBD7BwwNBQIAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAACBQ0MBxAQEBD7B/oNBQACAAIFDfr7Bg8QEA4OEBAQ+wwLAwMCAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAgML+xAQEA4OEBAG+wwNAwICAAACBQ0L+wYQEBAODhAQD/sMCgMCAgAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAFBQUCAAACBQoMBxAQEBAODhAQBvsL+gUCAgACAvwKDAcQEBAODhAQEAb7Cwr8
+ AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAACAgMKDAwMDQUCAAAC+Q36DAcQEBAQDhAQEAYMCw0FAgAAAgUD+gz7BhAQ
+ Dg4QEBD7Bwv6AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFCgz7EBAQD/sMCgMCAAAAAgUNC/sGEBAODhAOEA/7DPoDBQIA
+ AAIDDQv7Bg8QEA4OEBAP+wwFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwwHEBAQDhAQEAb7DA0DAgIAAgL8DQwHBhAQEA4O
+ EBAGBwwNA/kAAAAFBQ0M+wYQEBAOEBAQDwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgAAAAID+gz7DxAQDg4QEBAG+wr6BQIAAAIF
+ A/oM+xAQEA4QEBAQBvsKDQUCAAACBfwKDPsPEBAODg4Q+wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw0MDAoNBQIAAAIFDQv7BhAQEA4OEBAQ
+ BgwKAwUAAAACBQ0LDAYQEA4ODhAQEAYMCwP8AAAAAgUN+gf7DxAQEA4GBQAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAINDAYQEBAQ+wz6/AIAAAIC/A0M
+ BxAQDg4ODg4QEPsM+gMFAgAAAgX6DPsGEBAODhAQEBD7DAoDAgAAAAIFDQv7BhAQDhADAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDDAYQEA4ODhAQBgcL
+ DQMCAAAABfwKDPsQEA4ODg4OEBAHDA0FAgAAAgUDCgz7EBAODg4OEBAG+wwNBQICAAIC/AoM+wYQEAwA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAgAABQP6B/sQ
+ EBAODg4QEPv7CgoDAgIAAgUN+gcGEBAODg4ODhD7+wsNA/kAAAIF/AsM+xAQDg4ODhAQBvsLDQUCAAAC
+ BQP6DAYQDAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCgwMCgMC
+ AAAAAgMNC/sPEA4ODg4ODhD7DAoDAgIAAgIF+gv7EBAOBAQEBA4Q+wwLAwUCAAACAw0L+wYQEA4ODg4Q
+ D/sMCg0CAgAAAgX8DAwHBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQMM
+ BhAQEAb7C/oF+QAAAAL8Cgz7DxAODgQODhAQ+wz6BQIAAAICAwoMBhAQDgQEBAQOEPsM+gUCAAAABQMK
+ DAcQEA4ODgQOEBD7DPr8AgAAAgIFDfoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAABQMM+xAQDg4QEBAGBwsNAwIAAAICDfoH+xAODgQEBAQQD/sL+gUCAAAC+Q0K+wYQDgQEBAQEEBAG
+ DA0FAgAAAvkN+gwGEBAODg4ODhAGBwwNAwIAAAICAwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AwUCAAX6Bg4QDAsNAwMFAgIAAAAAAAACBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMGAQEBAacIAacJEAf6/AIAAAUK+w4IAacB
+ pwEBAQGnAQT7+gICAgUDAwMDAwMDAwUFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwUDAwwJpwEBAQEBAQGnCRAM+gUC
+ AgUDDPsEAQEBAacBAQEBCQYNBQAAAAACBQUDAwMDAwUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUCAxAEAQGnAacB
+ AQEBCAQGDA35AAAFDQwPCacBCAkOEAwKAwIAAAAAAgIFAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIF
+ +gcQCQEBAacBpwEBpwEEBgwDAgICA/oGDhAMCw0DAwMCAgAAAAAAAgIFAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAIAAgAFA/r7EAgBAQEBAQEBAQH3EAz6AgACBQMNBQMDAwMDBQUCAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAgMM+wQIpwGnAacBAQgJBwMCAAAAAAIFBQMDAwMDBQICAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgUNDBAJAQEBCQ4QDAoDAgAAAAACAgUDAwMDAwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgUCAgID+gYOEAYLDQMDBQIAAAAAAAACAgUA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDQMAAAIFAw0FAwMDAwMFBQIA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDAwIAAAACAgUD
+ AwMDAwUFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAACBQUDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////
+ //////////////////////////////////////////////////8P///////////////////wD///////
+ ////////////AAf/////////////////8AAH/////////////////4AAB/////////////////gAAAf/
+ //////////////+AAAAD///////////////8AAAAA///////////////wAAAAAP//////////////AAA
+ AAAB/////////////8AAAAAAAf////////////4AAAAAAAH////////////gAAAAAAAB///////////+
+ AAAAAAAAAP//////////4AAAAAAAAAD//////////wAAAAAAAAAA//////////AAAAAAAAAAAP//////
+ //8AAAAAAAAAAAB////////wAAAAAAAAAAAAf///////gAAAAAAAAAAAAH//////+AAAAAAAAAAAAAA/
+ /////4AAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAA////8AAAAAAAAAAAA
+ AAAAH///4AAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAA
+ AAAAAAAAAA///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAA///+AA
+ AAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAD
+ ///4AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAA
+ AAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAA
+ AAAAAAAAAAD///4AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4A
+ AAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA
+ f///gAAAAAAAAAAAAAAAAP///4AAAAAAAAB8AAAAAAf///+AAAAAAAAH/gAAAAB/////gAAAAAAAf/4A
+ AAAH/////8AAAAAAA//+AAAAP//////AAAAAAD///gAAA///////wAAAAAP///8AAD///////8AAAAA/
+ ////AAH///gf///gAAAB/////wAf///AD///4AAAH/////+B///8AA///+AAAf//////z///wAAP///g
+ AA///8H//////AAAB///8AD///4B/////+AAAAf///AP///gAP////4AAAAH///4f//+AAD////gAAAA
+ B///////4AAA////AAAAAAP//////wAAAP//8AAAAAAD//////AAAAB//wAAAAAAA/////8AAAAAf/AA
+ AAAAAAH////4AAAAAH+AAAAAAAAB////gAAAAAA4AAAAAAAAAf///gAAAAAAAAAAAAAAAAH///4AAAAA
+ AAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAA///+
+ AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAA
+ AH///4AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAA
+ AAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAAf///AAAAA
+ AAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAD///
+ 4AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAA
+ AAf///gAAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAB///+AAAAAAAAAAAAAAAAA////gAAAAAAAAA
+ AAAAAAD////8AAAAAAAAAAAAAAAP/////AAAAAAAAAAAAAAA//////wAAAAAAAAAAAAAB//////8AAAA
+ AAAAAAAAAH///////gAAAAAAAAAAAAf///////4AAAAAAAAAAAB////////+AAAAAAAAAAAD////////
+ /gAAAAAAAAAAP/////////8AAAAAAAAAA///////////AAAAAAAAAD///////////wAAAAAAAAH/////
+ //////+AAAAAAAAf////////////gAAAAAAB/////////////4AAAAAAH/////////////+AAAAAAP//
+ ////////////wAAAAA///////////////8AAAAD////////////////AAAAP////////////////wAAA
+ f////////////////+AAB//////////////////gAH//////////////////4AP/////////////////
+ //A////////////////////7/////////////////////////////////////ygAAABAAAAAgAAAAAEA
+ IAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAAEAAAAAgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAANAAAAGQAAACsAAABCAgAjZAYA
+ VHAAAAAZAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAUAAAAKAAAAFQAAACYAAAA8AAACYQAA
+ AKcAAAjrBgBD/wwAfv8PAJj/AAAHRQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAJAAAAEgAAACEAAAA2AAARVgUA
+ SZIMAIXlCwBw/wUANP8BAAz/AAAA/wAAB/8DACX/CABa/wMAMI4AAAATAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAHAAAADgAAABsAAAAvAAAASwAA
+ AHsAAALUAwAo+goAaP8OAJH/EACe/w8AnP8NAIn/CQBb/wMAJf8AAAf/AAAA/wEAC/8BABXVAAAAIwAA
+ AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAADAAAABcAAAApAAAAQgIA
+ IWsHAGCvCgB88AgATv8CABj/AAAD/wAAA/8CABX/BgBD/wsAef8OAJf/EACe/w8AmP8MAH//BwBL/wIA
+ Gf8AAAP/AAAB/wAAADsAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACgAAABQAAAAkAAAAOwAA
+ AGAAAACjAQAP5wcATf8MAIT/DwCb/xAAnv8OAJT/CwBw/wUAOf8BAA//AAAB/wAABf8DAB7/CABT/wwA
+ hf8PAJv/EACe/w4AlP8LAHL/BQA7/wEAEP8AAABgAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACAAAABEAAAAfAAAANAAA
+ EVYFAEiQCQB21QoAZv8EACr/AAAI/wAAAf8AAAr/BAAu/woAZv8NAI7/EACe/w8AnP8NAIz/CQBh/wQA
+ Kv8AAAn/AAAB/wAACf8EACv/CgBi/w0Ajf8PAJz/DwCc/w0Ajv8KAGP/AwAnogAAABcAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAA4AAAAaAAAALAAA
+ AEkAAAB6AAABvwQANPkLAHL/DgCW/xAAnv8PAJv/DACD/wcAUf8DAB7/AAAF/wAAAf8BABH/BQA9/wsA
+ c/8OAJX/EACe/w8Am/8MAIP/BwBR/wMAHv8AAAX/AAAB/wEAEP8FADv/CwBy/w4AlP8QAJ7/DwCb/wwA
+ gOUAAAAmAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABQAAAAwAAAAXAAAAJwAA
+ AD8CACRqBwBgrwkAeOsGAET/AQAS/wAAAf8AAAX/AgAb/wcAUP8MAIX/DwCe/xAApP8PAJz/DAB7/wYA
+ Qv8CABT/AAAC/wAAA/8CABr/BwBP/wwAgv8PAJz/EACg/w4Al/8LAHj/BgBC/wIAFf8AAAL/AAAD/wIA
+ Gf8HAEv/DAB//w8AmP8QAJ//AAAAPQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAkAAAATAAAAIgAA
+ ADgAAABfAAAAogEAFeUJAFr/DQCO/xAAoP8QAKL/DgCU/wsAa/8FADH/AQAL/wAAAP8AAAn/BAAq/woA
+ Y/8OAJP/EACn/xEAqP8PAJn/CwBv/wUANP8BAAz/AAAA/wAACP8DACf/CQBg/w0Ajv8QAKL/EACi/w4A
+ lf8LAGv/BQAz/wEADP8AAAD/AAAH/wMAJf8JAFv/DQCI/wAAG2cAAAAOAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAgAAAARAAAAHgAA
+ ADAAAAZNBQBJjgkAddUIAFn6AwAh/wAABf8AAAH/AQAO/wUAOf8LAHX/DwCb/xEAqP8QAKb/DgCR/wkA
+ X/8DACX/AAAG/wAAAf8BAA7/BQA6/wsAdv8PAKD/EQCt/xEAq/8OAJT/CQBh/wMAJv8AAAf/AAAA/wEA
+ Dv8FADj/CwBx/w8Amv8RAKf/EACk/w0Ajv8JAF7/AwAm/wAAB/8AAAD/AQAL/wUAMv8EADK7AAAAHAAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAYAAAAOAAAAGgAA
+ ACsAAABEAAAAdwAABb4EADPxCwB5/w8AmP8QAKH/DwCb/wwAf/8GAEf/AgAX/wAAA/8AAAP/AgAZ/wcA
+ Tf8NAIf/EACn/xIAr/8QAKn/DQCJ/wcAT/8CABr/AAAD/wAAA/8CABj/BwBN/w0Aiv8QAKr/EgC0/xEA
+ qv8NAI3/CABR/wIAGv8AAAP/AAAD/wIAFv8HAEn/DACC/xAAov8RAKj/EACi/wwAhP8HAE3/AgAa/wAA
+ A/8AAAL/AAAJ8QAAADAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
+ ABoAAAA5AgAgZQcAX64IAG/rBQA6/wEADf8AAAD/AAAG/wMAJP8JAFv/DQCN/xAApf8RAKj/DwCd/wsA
+ dv8FADv/AQAO/wAAAf8AAAb/AwAm/wkAYv8PAJj/EgCx/xIAtv8QAKn/DACA/wYAQP8BABL/AAAB/wAA
+ Bv8DACb/CQBh/w8Amf8SALP/EgC2/xEAqf8MAID/BgBB/wEAEv8AAAH/AAAF/wMAIv8JAFv/DgCQ/xAA
+ p/8RAKv/DwCf/wsAef8FAD7/AQAR/wAAAf8AAABLAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAkBABShCgBk/w4Akf8QAJ7/DwCc/w0Aiv8JAFz/AwAm/wAACP8AAAD/AQAM/wUA
+ NP8LAHD/DwCd/xEArf8RAK7/DwCb/woAa/8EAC7/AAAJ/wAAAf8BAA3/BQA3/wwAeP8QAKj/EwC6/xIA
+ uf8QAKX/CwBy/wUAMv8AAAn/AAAB/wEADP8FADb/DAB4/xAAp/8TALj/EgC3/xAApP8LAHH/BQAy/wEA
+ C/8AAAH/AQAL/wUAMf8LAG7/DwCc/xEArf8RAKv/DwCZ/woAaf8EAC//AAAKegAAABEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAC6AIAFf8GAEL/CwB4/w4Al/8QAKH/DwCe/w0A
+ hv8IAFH/AwAc/wAAA/8AAAL/AgAV/wYAR/8NAIb/EQCs/xIAtv8SALT/DwCX/wkAXP8DACH/AAAF/wAA
+ Av8CABX/BwBM/w0AjP8SALX/EwC//xIAu/8QAJ//CQBg/wMAJP8AAAX/AAAC/wIAFf8HAEj/DQCL/xEA
+ s/8TAL//EgC5/w8AnP8JAGD/AwAj/wAABf8AAAH/AQAS/wYAQf8MAH//EACk/xIArv8QAKj/DgCP/wUA
+ UL4AAAAeAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAa4AAAH/AAAF/wMA
+ Hv8IAFP/DQCJ/xAAo/8RAKr/EACi/wwAf/8GAEL/AgAU/wAAAv8AAAX/AwAi/wkAXf8PAJn/EgC4/xMA
+ vv8SALT/DQCM/wcATf8CABb/AAAC/wAABf8DACH/CQBg/xAAoP8TAMH/FADG/xIAvP8OAJP/CABQ/wIA
+ F/8AAAP/AAAF/wMAIf8JAF7/DwCb/xIAu/8TAMD/EgC1/w4AkP8IAE//AgAY/wAAA/8AAAX/AwAc/wgA
+ VP8OAI7/EQCr/xIAr/8NAJvxAAAAMgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAQAAAdmAwAp/wAACv8AAAH/AAAJ/wQALf8KAGn/DwCa/xEAr/8SALL/EACi/wsAdf8FADb/AQAM/wAA
+ Af8AAAn/BQAy/wsAc/8RAKr/EwDC/xQAxP8SALP/DACB/wUAO/8BAA7/AAAB/wAACv8FADP/DAB3/xEA
+ sf8UAMj/FADK/xIAuP8NAIX/BgA//wEAD/8AAAH/AAAJ/wQAMP8LAHT/EQCr/xMAwv8TAML/EQCy/wwA
+ gf8FAD3/AQAO/wAAAf8AAAj/BAAq/woAaP8PAJn/EQCu/wAAFVQAAAALAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAADAAAAPA0Ahf8IAFf/AwAh/wAABf8AAAH/AQAR/wUAP/8MAID/EACq/xMA
+ uf8SALf/EACg/woAZv8EACj/AAAH/wAAAf8BABH/BgBF/w0AjP8SALr/FADK/xQAyf8RAK3/CwBx/wQA
+ Lf8AAAj/AAAC/wEAEv8GAEb/DQCN/xMAv/8UAM//FADM/xIAsf8LAHP/BAAt/wAACf8AAAH/AQAR/wYA
+ Qv8NAIf/EgC3/xQAxf8TAML/EQCo/wsAb/8EAC3/AAAJ/wAAAf8BAA7/BQA5/wwAeP8FAECSAAAAFQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAACQNAIbVEACj/w0AhP8HAEv/AgAX/wAA
+ A/8AAAP/AwAc/wgAV/8OAJX/EgC5/xQAwv8SALv/DwCa/wkAV/8DAB7/AAAD/wAABP8DAB//CQBc/xAA
+ of8UAMf/FQDS/xQAyf8QAKX/CQBe/wMAIP8AAAX/AAAD/wMAHf8JAFz/EACj/xQAy/8VANT/FADL/xAA
+ p/8JAGH/AwAg/wAABf8AAAP/AgAb/wgAVf8PAJr/EwC+/xQAyP8TAMD/DwCc/wkAXP8DAB//AAAF/wAA
+ A/8CABf/AwAu5QAAACYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATBwBMkBEA
+ q/8SALH/EACl/wwAe/8FAD3/AQAP/wAAAf8AAAj/BAAq/woAbf8RAKn/FADF/xQAyf8TAL3/DgCP/wYA
+ R/8CABP/AAAC/wAACP8EAC3/CwB1/xIAtv8UANP/FQDW/xMAyP8PAJf/BwBN/wIAFf8AAAP/AAAI/wQA
+ Lf8LAHL/EgC1/xQA0/8VANb/EwDI/w8Alv8HAE3/AgAV/wAAA/8AAAb/BAAo/woAbP8RAKr/FADF/xQA
+ x/8SALn/DQCO/wcASf8CABX/AAAB/wAAA/8AAAA8AAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAACgAADlYMAHv/EACm/xIAt/8SALf/EACl/wsAb/8EAC7/AAAJ/wAAAf8BAA7/BQA//w0A
+ hv8SALr/FADP/xQA0P8SALn/DAB+/wUAN/8BAAv/AAAC/wEAD/8GAD//DgCN/xMAx/8VANz/FQDa/xMA
+ xP8NAIf/BQA6/wEADP8AAAL/AQAO/wYAP/8OAI3/EwDE/xUA2f8VANj/EwDB/w0Ahf8FADr/AQAN/wAA
+ Av8BAA3/BQA4/wwAgP8SALb/FADI/xQAx/8RALH/DAB7/wUANv8BAAz/AAAAZQAAAA4AAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA2AgAb+gcATf8NAI3/EgC1/xMAwf8TAL3/EACf/wkA
+ Yv8DACL/AAAF/wAAA/8CABj/CABV/w8Anv8UAMz/FQDY/xQA0/8SALL/CgBt/wMAJ/8AAAX/AAAD/wIA
+ Gf8JAFn/EACl/xQA1P8WAOL/FQDc/xIAuv8LAHP/BAAr/wAAB/8AAAP/AgAY/wgAVP8QAKH/FADR/xYA
+ 3v8VANf/EgC3/wsAcf8EACn/AAAG/wAAA/8CABX/BwBN/w4AlP8TAMD/FADM/xMAxP8QAKf/CgBo/wMA
+ JaoAAAAYAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAIgAAANUAAAX/AwAk/wkA
+ Y/8QAKP/EwDC/xQAyv8TAMD/DgCW/wgAT/8CABf/AAAD/wAABv8EACj/CgBt/xIAtf8VANj/FgDg/xQA
+ 1P8QAKb/CQBb/wIAGv8AAAP/AAAG/wQAKP8LAHL/EwC8/xYA4P8WAOP/FQDc/xEArf8JAF7/AwAc/wAA
+ A/8AAAX/AwAn/woAbv8SALX/FQDZ/xYA4P8UANP/EACm/wkAXP8DABz/AAAD/wAABf8DACH/CQBh/xAA
+ pv8UAMb/FADK/xMAwP8OAJblAAAAJwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ABMAAAePAQAL/wAAAf8AAAr/BQA2/wwAfP8SALf/FADO/xQA0v8TAL//DQCK/wYAP/8BAA7/AAAC/wEA
+ DP8FADr/DQCH/xMAyf8WAOL/FgDj/xQA0v8PAJf/BgBF/wEAEf8AAAL/AQAM/wUAPP8OAIv/FADP/xYA
+ 4/8WAOP/FQDW/w8Am/8HAEr/AQAR/wAAAv8BAAv/BQA3/w0Ahf8TAMf/FgDg/xYA4P8UAM7/DwCV/wYA
+ Rv8BABH/AAAC/wAACf8EADH/DAB3/xEAsf8UAMn/FADK/wAAAD8AAAAGAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAJAAADTQkAYf8EACj/AAAH/wAAAv8CABX/BwBK/w4Alv8TAMj/FQDZ/xUA
+ 1/8TALv/CwB4/wQAL/8AAAn/AAAD/wIAFf8IAFD/EACj/xUA2f8WAOP/FgDj/xQAy/8NAIX/BQA0/wAA
+ Cf8AAAP/AgAV/wgAUf8QAKT/FQDc/xYA4/8WAOP/FADO/w0Ahf8FADX/AAAK/wAAAv8CABX/BwBN/w8A
+ nP8UANP/FgDi/xUA3/8TAML/DACA/wUANP8AAAn/AAAC/wEAEP8GAEL/DQCK/xIAuv8CACljAAAADAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAC8RAKvwDwCc/wkAWP8DABz/AAAD/wAA
+ Bf8DACH/CQBk/xEAsP8UANf/FgDi/xUA2v8SALP/CgBl/wMAI/8AAAX/AAAF/wMAI/8KAGn/EgC8/xYA
+ 4v8WAOP/FgDi/xMAvv8LAGz/AwAl/wAABf8AAAT/AwAh/woAbP8TAMT/FgDj/xYA4/8WAOL/EwDA/wsA
+ b/8DACX/AAAF/wAABP8DACD/CQBi/xEAsP8VANz/FgDj/xUA2/8SALP/CgBp/wMAI/8AAAX/AAAD/wIA
+ Gf8IAFb/BQBLjgAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAbCgB9rxQA
+ zv8TAMH/DgCQ/wcASf8CABP/AAAC/wAACf8EADH/DACA/xMAxf8WAOL/FgDj/xUA2v8QAKX/CABS/wIA
+ Ff8AAAP/AAAJ/wUANP8NAIj/FADS/xYA4/8WAOP/FgDh/xEArv8HAFH/AQAQ+gAAANQAAAp9AAAKZg0A
+ i+oUANL/FgDj/xYA4/8VAOD/EQCt/wkAV/8CABj/AAAD/wAACP8EAC7/DAB6/xMAw/8WAOH/FgDj/xQA
+ 1P8QAKH/BwBN/wEAD/oAAADUAAAGdQAABSsAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAADgIAKmwTAML/FQDV/xUA1f8TAMD/DACB/wUANv8AAAv/AAAC/wEAEf8HAEn/DwCc/xUA
+ 2P8WAOP/FgDj/xUA1v8OAJL/BgBA/wEADf8AAAL/AgAS/wcASv8QAKb/FgDj/w8AudUIAG+QAAAUVgAA
+ ADYAAAAhAAAAEwAAAB8BABWkBwBJ/xAAof8VAN7/FgDj/xYA4/8VANv/DwCY/wYAQ/8BAA//AAAC/wEA
+ D/8GAEH/DgCU/xQA1f8PALnVCABokAAAEVYAAAA2AAAAIQAAABEAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAABDCQBf/xAAo/8UANH/FgDf/xUA2v8SALj/CwBw/wQA
+ KP8AAAX/AAAE/wMAHP8JAGL/EgC3/xYA4v8WAOP/FgDj/xQAzv8MAHr/AwAj/wAAAesAAAeuAAAUZgAA
+ ETwAABUkAAAMFAAAAAoAAAAEAAAAAQAAAAAAAAAMAAAAYAAAA/8DABz/CQBf/xIAuf8WAOP/FgDj/xYA
+ 4/8UANH/DAB//wMAJf8AAAHrAAAErgAAD2YAAAw8AAAOJAAADBQAAAAMAAAACQAAAAsAAA8RAAAMFAAA
+ AA0AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAKwAAB+sEACn/CwBy/xMA
+ u/8WAN//FgDj/xUA3P8RAK3/CQBb/wIAGv8AAAP/AAAI/wQAL/8MAID/FADW/xMA0vALAJCvAgAxbAAA
+ AEMAAAArAAAAGgAAAA4AAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAADcBABL5AAAE/wAA
+ Bv8EACz/DAB+/xQA1f8UANHxDQCfuwIAMW0AAABDAAAAKwAAABoAAAAOAAAACQAAAAkAAAAPAAAAGgAA
+ ACwAABRJBABVdwkAi6MGAFtwAAAAEwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ABkAAACnAAAC/wEADP8FAD3/DgCP/xQA0v8WAOP/FgDj/xUA2/8QAJ7/BgBC/wAACfoAAAHVAAAQjwAA
+ EE0AABUvAAASGwAAAA8AAAAJAAAACQAAEw0AABEPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAEAAAAeCgBrzAcAUf8BAAv6AAAB1QAAEI8AABBNAAAVMAAAER0AAAAQAAAACQAAAAkAABIOAAALFwAA
+ ACcAAAA/AAAAagAACq8HAF3rEwDD/xYA4f8WAOH/EwDO+QAACjIAAAAEAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAMAAAHYQQAK/8AAAn/AAAD/wIAGP8IAFb/EQCu/xYA4/8RAMnlCABukgAA
+ FFcAAAA2AAAAIgAAABQAAAALAAAACAAAAAwAAAAUAAAAIgAACTgCADteDACUkAAAMjcAABwJAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAACQAACy0DAB9QAAAANwAAACIAAAAUAAAACwAAAAkAAAAMAAAAFAAA
+ ACIAAAk4AgA7XwsAh6IOAJ7lBgBA/wEADP8AAAL/AgAT/wcASv8PAJr/FADQ/xYA4P8AACdVAAAACwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADMPAKL4CQBh/wIAGv8AAADrAAAHrgAA
+ FmYAABA9AAAUJgAADBUAAAAMAAAACQAAAAsAAA4SAAAIHgAAADIAAABUAAABjwQAQ9UTAML6FgDj/xYA
+ 4/8OAKW2AAASGwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAACQAAAAgAAAAKAAAPEQAA
+ CB4AAAAyAAAAVAAAAY8DAD3VEQCy+hYA4/8WAOP/FgDj/xQAyP8LAHX/BAAo/wAABf8AAAT/AwAc/wkA
+ X/8RAKz/CABckAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAATCQB0aQIA
+ KGYAAANHAAAALAAAABoAAAAOAAAACQAAAAkAAAAPAAAAGgAABSwAAB9JBABYeQ0Amr4JAGvxAgAa/wAA
+ A/8AAAr/BQA8/w8Am/8VAOD/FADR8QAAFTAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAADgAA
+ ABoAAAUrAAAWRAQAV3cNAJ6+CQB08QMAHf8AAAP/AAAJ/wQAMv8NAIj/FQDX/xYA4/8WAOP/FgDi/xEA
+ tP8JAFv/AgAa/wAAA/8AAAf/BAAt/wMAO9YAAAAkAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAgAAAAoAAAANAAAACgAAAAgAABMNAAALFwAAACYAAAA9AAAAZQEAE64KAILrFgDj/xYA
+ 4/8WAOP/FgDi/xAApv8HAEj/AQAP/wAAAv8CABX/CABU/xEAsf8AAA1NAAAACgAAAAIAAAAFAAAXCwAA
+ FhcAAAYmAAAAPQAAAGUBABGuCgCE6xYA4/8WAOP/FgDj/xYA4/8QAKr/BwBM/wEAEP8AAAL/AQAQ/wcA
+ SP8QAKH/FQDf/xYA4/8WAOP/FQDc/w8Anv8GAEX/AQAP/wAAAv8AAAj/AAAAPwAAAAYAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADAAAAB8AAAk1AAAxWAsAiKENAI/lBQAz/wAA
+ Bv8AAAT/AwAg/wsAbv8UAMz/FgDj/xYA4/8WAOP/FQDe/w4Aj/8EADL/AAAJ/wAABP8DACD/AAASlgAA
+ ACgAAAAjAAAONgAAMVgLAIuhDgCo5QYAPv8AAAn/AAAE/wMAIP8KAGv/FADM/xYA4/8WAOP/FgDj/xUA
+ 3v8OAJD/BAA0/wAACf8AAAP/AgAa/wkAYP8SALr/FgDj/xYA4/8WAOP/FADQ/wwAgP8EADH/AAAJ/wAA
+ AGoAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAEcGAE7QEwDB+hYA
+ 4/8WAOP/FgDj/xMAxP8KAGb/AwAf/wAABP8AAAn/BAAy/w4AjP8VAN7/FgDj/xYA4/8WAOP/FQDU/wsA
+ df8DACL/AAAE/wAAAfEAAAaiCABW1RQA1foWAOP/FgDj/xYA4/8VANf/CwB4/wMAI/8AAAX/AAAI/wQA
+ MP8OAIz/FQDc/xYA4/8WAOP/FgDj/xQAz/8LAHT/AwAj/wAABP8AAAb/BAAp/wsAeP8UAMz/FgDj/xYA
+ 4/8WAOL/EgC9/woAZ/8BACSvAAAAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ABYAAADKAQAO/wYARf8PAKD/FgDh/xYA4/8WAOP/FgDj/xEAs/8IAFH/AgAV/wAAAv8BAA//BwBL/xEA
+ rv8WAOP/FgDj/xYA4/8WAOP/EwDD/wgAWP8CABb/AAAC/wEAD/8HAEn/EQCx/xYA4/8WAOP/FgDj/xYA
+ 4/8TAMX/CQBe/wIAFv8AAAL/AQAP/wYARf8QAKb/FgDj/xYA4/8WAOP/FgDj/xIAuv8JAFf/AgAW/wAA
+ A/8BAAz/BQA9/w4Akv8VANf/FgDj/xYA4/8VAN3/DwCi6wAABSsAAAADAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAARAAACegAACf8AAAP/AgAa/wkAX/8TAL//FgDj/xYA4/8WAOP/FgDh/w8A
+ nv8FAD3/AAAL/wAAA/8CABr/CgBm/xQAz/8WAOP/FgDj/xYA4/8WAOP/EACp/wYAQ/8BAA7/AAAD/wIA
+ Gv8KAGf/FADN/xYA4/8WAOP/FgDj/xYA4/8QAKn/BgBC/wEADv8AAAP/AgAX/wkAXP8TAMH/FgDj/xYA
+ 4/8WAOP/FQDg/w8Anv8GAED/AQAM/wAAA/8CABT/CABQ/xAApv8VAN7/FgDj/xYA4/8AABdCAAAABwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA0kKAGf/AwAj/wAABf8AAAX/BAAq/wwA
+ f/8VANn/FgDj/xYA4/8WAOP/FQDb/wwAgf8EACz/AAAG/wAABv8EAC3/DQCH/xUA3v8WAOP/FgDj/xYA
+ 4/8VAOD/DgCQ/wQAMP8AAAb/AAAF/wQAKv8NAIb/FQDe/xYA4/8WAOP/FgDj/xUA3/8OAI3/BAAv/wAA
+ CP8AAAX/BAAn/wwAef8VANT/FgDj/xYA4/8WAOP/FQDX/wwAfv8EACv/AAAG/wAABP8DAB//CgBm/xIA
+ uf8WAOL/AgA9awAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAUsEgDK6xIA
+ tv8JAFv/AgAY/wAAA/8BAA3/BgA//w8AoP8WAOP/FgDj/xYA4/8WAOP/FADP/woAaf8CABv/AAAD/wEA
+ DP8GAEH/EQCt/xYA4/8WAOP/FgDj/xYA4/8VANb/CgBw/wMAIf8AAAP/AQAM/wYAQP8QAKX/FgDj/xYA
+ 4/8WAOP/FgDj/xUA1P8KAG7/AwAf/wAAA/8AAAn/BQA5/w8Alf8VAN//FgDj/xYA4/8WAOP/EwDD/woA
+ Y/8DABz/AAAD/wAACP8EADD/DAB8/wcAZ68AAAAbAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAATGgsAka8WAOP/FgDh/xAAo/8GAEX/AQAP/wAAAv8CABb/CQBc/xMAxP8WAOP/FgDj/xYA
+ 4/8WAOP/EgC5/wgAUf8BABD/AAAD/wIAF/8JAF3/EwDL/xYA4/8WAOP/FgDj/xYA4/8TAMP/CABV/wIA
+ Ef8AAAP/AgAV/wkAW/8TAMb/FgDj/xYA4/8WAOP/FgDj/xIAu/8IAFL/AgAU/wAAA/8CABP/CABP/xEA
+ rv8WAOP/FgDj/xYA4/8WAOL/EACq/wcAS/8BABD/AAAC/wEADv8DACfwAAAAMAAAAAQAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEg4CAD5mFgDj/xYA4/8WAOP/FQDc/w4Ajf8EADL/AAAI/wAA
+ Bf8DACP/DAB6/xUA2v8WAOP/FgDj/xYA4/8WAOP/DwCf/wUAOf8AAAn/AAAF/wQAJv8MAIL/FQDe/xYA
+ 4/8WAOP/FgDj/xYA4/8QAKX/BQA+/wAACv8AAAX/AwAj/wsAdv8VANn/FgDj/xYA4/8WAOP/FgDj/w8A
+ nf8FADn/AAAJ/wAAA/8DAB7/CgBo/xMAyf8WAOP/FgDj/xYA4/8VANr/DQCJ/wUANf8AAAn/AAAB/wAA
+ AFQAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAALQA4Alf8VAN7/FgDj/xYA
+ 4/8WAOP/FADS/wsAcf8DACL/AAAF/wAACf8FADb/DwCc/xYA4/8WAOP/FgDj/xYA4/8VAN7/DACD/wQA
+ J/8AAAX/AAAJ/wUAOf8QAKL/FgDj/xYA4/8WAOP/FgDj/xUA3/8NAIX/BAAn/wAABf8AAAn/BQA2/w8A
+ mf8WAOL/FgDj/xYA4/8WAOP/FQDZ/wwAff8EACf/AAAF/wAACP8EACz/DACB/xUA1v8WAOP/FgDj/xYA
+ 4/8UAMj/CwBu/wMAIv8AAAWPAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
+ ACgCABfnBwBL/xEAsP8WAOP/FgDj/xYA4/8WAOP/EwDE/wkAW/8CABf/AAAD/wIAEf8IAFP/EwDA/xYA
+ 4/8WAOP/FgDj/xYA4/8UANH/CQBj/wIAGf8AAAP/AQAQ/wgAUf8TAML/FgDj/xYA4/8WAOP/FgDj/xQA
+ 0/8KAGf/AgAZ/wAAA/8BAA//BwBM/xIAtf8WAOP/FgDj/xYA4/8WAOP/EwDF/wkAXv8CABf/AAAD/wEA
+ Df8GAD7/DwCZ/xUA3/8WAOP/FgDj/xYA4v8RAKz/CABj1QAAByIAAAACAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAXAAAAowAAA/8DAB7/CgBo/xQAzv8WAOP/FgDj/xYA4/8WAOP/EQCu/wYA
+ RP8BAAz/AAAD/wIAHf8LAHL/FQDb/xYA4/8WAOP/FgDj/xYA4/8SALz/BwBL/wEAD/8AAAP/AwAf/wsA
+ cv8VANj/FgDj/xYA4/8WAOP/FgDj/xIAuP8HAEn/AQAP/wAAA/8CABn/CQBk/xQAzP8WAOP/FgDj/xYA
+ 4/8WAOP/EACp/wYARf8BAA7/AAAC/wIAFf8IAFX/EQCx/xYA4v8WAOP/FgDj/xUA2/oAABI2AAAABQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB2ADACP/AAAF/wAABv8EAC7/DgCN/xUA
+ 4P8WAOP/FgDj/xYA4/8WAOH/DgCP/wQAMf8AAAb/AAAG/wQAMv8OAJT/FgDj/xYA4/8WAOP/FgDj/xYA
+ 4/8PAJ//BAA1/wAACP8AAAb/BAAu/w4Akv8WAOP/FgDj/xYA4/8WAOP/FgDj/w8Al/8EADP/AAAJ/wAA
+ Bf8EACn/DQCC/xUA3P8WAOP/FgDj/xYA4/8VAN3/DQCG/wQALv8AAAj/AAAF/wMAIf8KAGv/EwDD/xYA
+ 4/8WAOP/AAAwVQAAFwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAQ4EQCs+gkA
+ ZP8CABr/AAAD/wEADv8GAET/EQCv/xYA4/8WAOP/FgDj/xYA4/8VANr/CwBz/wMAH/8AAAP/AQAO/wcA
+ Sv8SAL7/FgDj/xYA4/8WAOP/FgDj/xUA3v8MAHv/AwAj/wAABP8BAA7/BwBH/xEAtP8WAOP/FgDj/xYA
+ 4/8WAOP/FQDc/wsAeP8DACH/AAAD/wAACv8FADv/DwCf/xYA4/8WAOP/FgDj/xYA4/8UAMz/CgBo/wMA
+ H/8AAAP/AAAI/wQAMf8NAIP/FADQ/wcAbo8AAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAABAAAPIg8AudUWAOP/EQCx/wcASv8BAA//AAAD/wIAGP8JAGX/FADR/xYA4/8WAOP/FgDj/xYA
+ 4/8TAMf/CABZ/wIAFP8AAAP/AgAZ/wkAZv8VANf/FgDj/xYA4/8WAOP/FgDj/xQA0P8JAF3/AgAU/wAA
+ A/8CABf/CQBi/xQA0/8WAOP/FgDj/xYA4/8WAOP/EwDF/wgAWP8CABX/AAAD/wIAFP8IAFP/EgC4/xYA
+ 4/8WAOP/FgDj/xYA4/8RALL/BwBP/wEAEP8AAAL/AQAO/wYAQ/8HAFvOAAAAGAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRMHAHePFgDj/xYA4/8WAOH/DwCY/wUANv8AAAn/AAAF/wQA
+ J/8NAIX/FQDf/xYA4/8WAOP/FgDj/xYA4/8RAK//BgA+/wAACv8AAAX/BAAq/w4AkP8WAOP/FgDj/xYA
+ 4/8WAOP/FgDj/xIAtP8GAET/AAAL/wAABf8EACf/DAB+/xUA3v8WAOP/FgDj/xYA4/8WAOP/EACm/wUA
+ Pf8AAAr/AAAD/wMAH/8KAG7/FADQ/xYA4/8WAOP/FgDj/xUA3v8OAI//BQAz/wAABv8AAALkAAAWcQAA
+ AA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwJAAAgTxYA4/8WAOP/FgDj/xYA
+ 4/8VANv/DAB6/wMAJP8AAAX/AAAK/wUAPP8QAKr/FgDj/xYA4/8WAOP/FgDj/xYA4/8OAJL/BAAr/wAA
+ Bf8AAAv/BgA//xEAs/8WAOP/FgDj/xYA4/8WAOP/FgDj/w4AkP8EACv/AAAF/wAACf8FADb/DwCe/xYA
+ 4/8WAOP/FgDj/xYA4/8VAN7/DQCD/wQAKf8AAAX/AAAI/wQAL/8NAIb/FQDe/xYA4/8RAMvnCQCDowAA
+ FWEAAAA8AAAAJQAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA
+ BTMJAGD5EgC+/xYA4/8WAOP/FgDj/xYA4/8UAM7/CQBh/wIAGf8AAAP/AgAU/wgAW/8UAMz/FgDj/xYA
+ 4/8WAOP/FgDj/xUA2/8KAGz/AgAc/wAABP8CABP/CABY/xQAz/8WAOP/FgDj/xYA4/8WAOP/FQDZ/woA
+ bv8CABr/AAAD/wEAD/8IAFD/EgC//xYA4/8WAOP/FgDj/xYA4/8UAMz/CQBf/wIAE/8AAADxAQATuwIA
+ Km0AABZDAAAYKQAACxcAAAAMAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAEAAAAfAAAFvwMAH/8KAG//FQDX/xYA4/8WAOP/FgDj/xYA4/8SALv/BwBK/wEA
+ Dv8AAAP/AwAg/wwAfP8VAN//FgDj/xYA4/8WAOP/FgDj/xQAyf8IAFL/AgAR/wAABP8DACH/DAB8/xUA
+ 3v8WAOP/FgDj/xYA4/8WAOP/EwDA/wcATf8BAA//AAAD/wIAGf8KAGn/FADU/xYA4/8UAN35DQCdvwQA
+ RnsAAANMAAAAMAAAAB0AAAAPAAAABwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAHoAAAX/AAAG/wQAMf8OAJb/FgDj/xYA
+ 4/8WAOP/FgDj/xYA4/8PAJr/BQA1/wAACP8AAAj/BQA3/xAAof8WAOP/FgDj/xYA4/8WAOP/FgDj/xEA
+ r/8FADr/AAAJ/wAAB/8EADL/DwCe/xYA4/8WAOP/FgDj/xYA4/8WAOP/DwCf/wQAMv8AAAT/AAAG5QQA
+ OKIAAC1ZAAAYNQAAEB8AAA8RAAAACAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAANJCQBe/wIA
+ G/8AAAP/AQAP/wcASP8SALr/FgDj/xYA4/8WAOP/FgDj/xUA3v8MAHz/AwAh/wAABP8BAA//CABR/xQA
+ y/8WAOP/FgDj/xYA4/8WAOP/FgDi/w0Ahv8EACf/AAAE/wEADv8HAEv/EgC9/xYA4/8WAOP/EwDO6wwA
+ iacAABdiAAAAPAAAACYAAAAWAAAACwAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAADAAAFLBIAzesSALv/CABO/wEAD/8AAAP/AgAZ/wkAZv8VANX/FgDj/xYA4/8WAOP/FgDj/xQA
+ 0P8JAGH/AgAU/wAABP8CABz/CgBw/xUA3f8WAOP/FgDj/xYA4/8WAOP/FQDY/wkAYP8BAA//AAAB8QEA
+ JL4EAER4AAAaRAAAFysAAAoYAAAADAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBkMAIynFgDj/xYA4/8QAKL/BQA6/wAACf8AAAX/BAAp/w4A
+ jv8WAOP/FgDj/xYA4/8WAOP/FgDj/xIAuf8GAEP/AAAL/wAABf8EACz/DwCU/xYA4/8WAOP/FQDc+g8A
+ utQEAEd8AAADTAAAADAAAAAdAAAAEAAAAAcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUMAgA7YhYA4/8WAOP/FgDj/xUA
+ 3v8MAID/BAAn/wAABf8AAAr/BgA//xEAs/8WAOP/FgDj/xYA4/8WAOP/FgDj/w8AnP8EACv/AAAD/wEA
+ DuUGAFCiAAAwWQAAFzYAABchAAAOEgAAAAgAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAA
+ ETwUANH/FgDj/xYA4/8WAOP/FgDj/xQA1P8JAGX/AgAZ/wAABP8CABT/CQBf/xQA0v8WAOP/FgDj/xMA
+ zusLAI2vAgAeawAAAD8AAAAnAAAAFgAAFwsAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAIAAAAmAwAq5QsAcv8VANv/FgDj/xYA4/8WAOP/FgDj/xMAwP8HAEr/AQAL/wAA
+ BPEEADC+BABMeAAAGkQAABcrAAATGgAAAA4AAAAHAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAKEAAAb/BAAy/w8Am/8WAOP/FgDj/xUA
+ 3PoPALnVCABjkAAABlQAAAAyAAAAHgAADxAAAAAHAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAABOAgAV/wAA
+ Af8CABbnBgBWowIAOmAAABY4AAAWIgAADRMAAAAKAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAACAAAADgAAC0IAAABBAAAAKQAAABMAABUMAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////+D////////+A
+ H////////AAf///////AAB///////AAAH//////AAAAP/////gAAAA/////gAAAAD////gAAAAAP///g
+ AAAAAAf//wAAAAAAB//wAAAAAAAH/4AAAAAAAAf/gAAAAAAAA/+AAAAAAAAD/8AAAAAAAAP/wAAAAAAA
+ Af/AAAAAAAAB/8AAAAAAAAH/4AAAAAAAAf/gAAAAAAAA/+AAAAAAAAD/4AAAAAAAAP/wAAAAAAAA//AA
+ AAAAAAB/8AAAAGAAAf/4AAAD4AAP//gAAD/wAP//+AAD//AP/3/4AB//8H/wP/wB/9///wA//B/8D//w
+ AB///+AP/4AAH//+AA/4AAAf/+AAB4AAAB//AAAAAAAAD/4AAAAAAAAP/wAAAAAAAA//AAAAAAAAD/8A
+ AAAAAAAH/wAAAAAAAAf/gAAAAAAAB/+AAAAAAAAD/4AAAAAAAAP/gAAAAAAAA//AAAAAAAAD/8AAAAAA
+ AAH/wAAAAAAAAf/AAAAAAAAD/+AAAAAAAB//4AAAAAAB///gAAAAAB////AAAAAA////8AAAAA/////w
+ AAAA//////AAAA//////+AAAf//////4AAf///////gAf///////+AP////////8P///////////////
+ //8oAAAAQAAAAIAAAAABAAgAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAACP8IAOb/EADO/wgA
+ jP8IAK3/AAAZ/wAAOv8AAFL/WhDe/xBSEP8QIRD/AAAp/1JCjP/OWoz/hFqM/xlCjP9rUin/axkp/2tS
+ CP9rGQj/a1JK/2sZSv/erYz/Wq2M/5ytjP8ZrYz/7xmM/6UZjP/e74z/Wu+M/96M7/9ajO//nO+M/xnv
+ jP+cjO//GYzv/97OKf/OGe//Ws4p/4QZ7//ehCn/WoQp/5zOKf8Zzin/nIQp/xmEKf/ejK3/Woyt/5yM
+ rf8ZjK3/zhmt/4QZrf/ezoz/Ws6M/96Mzv9ajM7/nM6M/xnOjP+cjM7/GYzO/97OCP/OGc7/Ws4I/4QZ
+ zv/ehAj/WoQI/5zOCP8Zzgj/nIQI/xmECP9CUhD/CABr/0IhEP8QOmP/EDo6/zoQjP+cUin/71Ip/5wZ
+ Kf/vGSn/xVIp/8UZKf9SY4z/71qM/6VajP8ZY4z/785a/85a7/9SQu//a85a/4Ra7//vhFr/a4Ra/63O
+ Wv8pzlr/rYRa/ymEWv8ZQu//UkKt/85arf+EWq3/GUKt/5xSCP/vUgj/nBkI/+8ZCP/FUgj/xRkI/87O
+ Wv/OWs7/UkLO/0rOWv+EWs7/zoRa/0qEWv+Mzlr/CM5a/4yEWv8IhFr/GULO/+9SSv+cUkr/nBlK/+8Z
+ Sv/FUkr/xRlK/97v7/9a7+//3u+t/1rvrf/era3/Wq2t/96t7/9are//nK2t/xmtrf+c763/Ge+t/5yt
+ 7/8Zre//7xmt/6UZrf+c7+//Ge/v/97vKf/vGe//Wu8p/6UZ7//epSn/WqUp/5zvKf8Z7yn/nKUp/xml
+ Kf/e787/Wu/O/5zvzv8Z787/3s7v/1rO7//ezq3/Ws6t/96tzv9arc7/nM6t/xnOrf+crc7/Ga3O/5zO
+ 7/8Zzu//3u8I/+8Zzv9a7wj/pRnO/96lCP9apQj/nO8I/xnvCP+cpQj/GaUI/97Ozv9azs7/nM7O/xnO
+ zv9rUmv/axlr/xAZjP9COmP/Qjo6/xBaY/8QWjr/WhCM/zoQ7/86EK3/OhDO/+/vWv/vWu//UmPv/2vv
+ Wv+lWu//UmOt/++lWv9rpVr/71qt/6Varf+t71r/Ke9a/62lWv8ppVr/GWOt/xlj7//O71r/71rO/1Jj
+ zv9K71r/pVrO/86lWv9KpVr/jO9a/wjvWv+MpVr/CKVa/xljzv/vUmv/nFJr/5wZa//vGWv/xVJr/8UZ
+ a/9CWmP/KQAQ/0IQY/8QGa3/EBnv/xAZzv9CWjr/QhA6/++MjP9rjIz/rYyM/ymMjP/OKYz/hCmM/yEQ
+ Y/8hEDr/zoyM/0qMjP+MjIz/CIyM/84IjP+ECIz/WhCt/xkA7/8ACAD/AAAA/wAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYI9AEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAEHSAQMAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEMSEhI9QYAAQz0BwAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEBAAEM9AQFBAQIDAEBAQYAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGB0hICAYBAAYHSATCBAQIBgEAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAGBwQEwgRIBwYBAQwIBARMBEgH
+ BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDEhISAwBAAH1SAQFBAT0DAEBAQf0
+ BAUFBPQHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQABB/QEBUwESAYBAAYH9AQFTAQI
+ BgEABgf0BAQFSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvVISPUMAAEGCAQEBQT0CAYBAQYI
+ BAQFBPQIBgABBggETAQGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQgEBAUE9AcBAQEM9AQFBQT0
+ BwEBAQz0BAUFBPQHAQABDAgEBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAxISPQGAQEGB/QFBQQESAwBAAYH
+ SMIFBQRIDAEABgdIBMIFBAgMAAABB/UAAAAAAAAAAAAAAAAAAAAAAQEAAfVIBAUEBPUGAQAM9QQFwgQE
+ 9AYAAQYIBAXCBAT0BgAABghIBcIFBPQMAQEBAAAAAAAAAAAAAAAAAAYHSEgHAQABDAgEwgUEBAcGAQEM
+ SAQFAwVICAYAAQxIBAUDBUgIBgABDAgEBQUESAcGAAAAAAAAAAAAAAAAAAH0BAVMBEgMAQAGB/QEBcIE
+ SAwBAQYH9AXCBQVIBwEABgf0BQXCBUgHAQEBB/QEBcIESAwGAAAAAAAAAAAAAAABBghIBAUEBPUMAQEG
+ CAQFBQUF9AYAAAYIBAUDwgT0DAABBggEBQMFTEgMAAAGBwQFBQUESAABAAAAAAAAAAAAAAABDPUEBQXC
+ SAcGAQEGSEwFBQUE9AYBAQxIBAMDAwQIBgEBBvQEAwXCBPQGAQEG9AQFwgQBAAAAAAAAAAAAAAYMAQEB
+ B0gEBQUFSAcGAQYHSAXDAwVIBwYAAfVIBQMDwgT1BgEGB0gFAwMFSAcGAAEMSAQFBwAAAAAAAAAAAAAG
+ SPQMAQAG9QQFwgUESAwBAAYHBAXDAwVIBwEBBvUEBQMDBfQMAQEG9QQFA8IF9AcBAAb1SAgAAAAAAAAA
+ AAAAAAQEBPUMAQEMCAQDA8IECAwBAQxIBAMDA8IIDAAADAgFAwMDBUgGAQEG9AQDAwMECAwBAQYMAAAA
+ AAAAAAAAAAD0BQUFSAcGAQEM9AUDwwUEBwYAAQdIBQMDAwQIBgAB9UgFwwMDBAgGAQEMSAQDA8IECAYB
+ AAAAAAAAAAAAAAAADAQEwgUFSAwBAQYHBAUDA8IE9QEBBvUEAwPDAwQH5wEGBwQDAwPCBAcGAQb1BAUD
+ AwVI9QYBAAAAAAAAAAAAAAEGCAQFwgME9AwAAAb0BQMDAwVIDAEBBggFA/0DA0gMAQAG9AUD/QMFSAwB
+ AQYIBMIDAwT0DAAAAAAAAAAAAAAAAAEMSAUDAwUE9AYAAQxIBQP9A8IIBgHnDEgDA/0DBUgMAQEMSAUD
+ A8MFCAwBAQxIBAMDAwQAAAAAAAAAAAAAAAEGAQEMBMIDAwMECAYABvUEAwP9AwQIBgAGB0wDA/3DBAgG
+ AAb1BAP9AwNMCAYABgf0BQMDBgAAAAAAAAAAAAAGCAznAQYIBAMDAwVI9QEABggFA/39A0gHAQEGCAUD
+ /QMDBPUBAAYIBAP9AwUE9QEBBgcEBfQAAAAAAAAAAAAAAQUECAYAAQxIwgP9AwX0DAEBDEgFw/0DA0gM
+ AQEM9AMDAwMDSAwBAQz0Bf0D/QVIDAEBBgj0AAAAAAAAAAAAAAAEwwME9AYAAQdIAwP9AwUIBucBBwQD
+ /f0DBfUGAAYGBAP9/QMF9AYBAQwEBf0DAwQI5wAGBgAAAAAAAAAAAAAACAMDAwUEBwYBBvQEA/39AwQH
+ BgEGCAXDBQQHAQAAAAb0BAP9/QMECAYB5wgEwwUEBwABAAABAAAAAAAAAAAAAAZIBAP9A8JIDAEADEgF
+ /cMDA/QGAAEMDAYGAQAAAAAAAQxIBQP9A8NIDAABBgwBBgAAAQEBAAAAAAAAAAAAAAAABgz0AwP9AwVI
+ DAEBDAQDAwVIBgAAAAEGBgEAAAAAAAYBAfUEAwMFSAEAAAEBAQAAAQcEBUgBAQAAAAAAAAAAAAABBgcE
+ A/0DAwT1AQEGDAwGAQABBgYGBgAAAAAAAAD0CAEBBgwMBgEBAQYBAQEABgjC/QMDDAYAAAAAAAAAAAAG
+ DAEBBkjCAwMEBwAAAAEBAQABBkgFSAYGAAAAAAAABwcBAAABAQAAAAZIBAQHBgEGCAQDAwgGAQAAAAAA
+ AAAAAQT0BgABDAwGAQEBBgYBAAAABwX9/QUGBgEAAAAAAAAAAAEGBgEBAQcF/f39A/QMAQEMSAX0AQAA
+ AAAAAAAAAQEECAYAAAEBAQEAAQcEBUgMAQb1BAMDBgEAAAYGAQAAAAH1SAVIDAEB9QQDA/39BfQGAQEH
+ BwAAAAAAAAAAAAEBAQEAAQYBAQAABkj9w/0DBfUGAQZIBPUBAQYGAQEAAAZI/f39AwX1BgEG9QUD/QMD
+ BAjnAAEAAAAAAAAAAAAAAQAAAQb0BAQHAQEMSAP9A/0DBPUBAQwGAAAG9AUECAEBDEgF/f0DAwQHAQEG
+ SAMD/QMDBAcBAAAAAAAAAAAAAAAAAQcF/f0DA0gMAAEHBAP9/QMDSAwBAQEIBf0D/QNIBwEBBwQD/f39
+ A0gHAQEMSAP9/QMFSAwAAAAAAAAAAAAAAAAGCAT9A/3DBUgGAQb1Bf0D/f0F9AYBAfQFA/39wwVIDAEG
+ 9QUD/QPDBUgGAQb1BAP9/cMFBgYAAAAAAAAAAAABAQAGSAX9A/0DBPUGAAxIAwP9A/0ECAEBDEgDA/39
+ /QT1BgEGSAX9/f0DBPUGAQYIBQP9AwcGBgAAAAAAAAAABvQMAQH1BAP9A/0DBAcBAfUEA/0D/QMEBwEB
+ 9QQDA/39AwT1BgEMBAMD/f0DSAcBAQxIBf1IAQEAAAAAAAAAAQEDBUgGAQEIBP39A/0FSAwBAQgF/f0D
+ /QP0DAEGBwUD/f0DA0gMAQEHBAP9A/3CSAYBAQdISAEAAAAAAAAAAAYGBALDBAgGAQb0Bf0D/cMFSAYB
+ BkjC/f0D/QVIBgEG9AX9AwLDBUgGAQb0Bf0D/QPCCAYABgwAAAAAAAAAAAAGBkj9/f0DBPUBAQwEA/39
+ A/0E9QEBDAQD/f0D/QT1BgAMBAP9/f0DBPUBAAZIA/39AwME9QEBAAAAAAAAAAAABgEMBAMD/QMDSAwB
+ AQcFA/0D/QMEBwEBBwT9A/0DAwQMAQEHBAP9/QMDBAcBAQwEA/39AwP0DAEAAAAAAAAAAAABAAb0Bf0D
+ /f0F9AYA5wgF/f0D/QX0DAEG9AX9/f39A0gG5wYIBQP9Av0F9AYABgcEA/39AwUIAQEAAAAAAAAAAAAA
+ AQxIAwP9/QMFCAYBDEgD/QP9AwX0BgEMSAP9A/0DBQgGAQxIwv0D/QMFCOcABkgFA/39AwwGAAAAAAAA
+ AAAAAQwBAfUEA/39/QME9QEB9QT9/f39AwQHBgEHBMP9/f0DBAznAQcEA/39AwMEDAEBDPQDAwP0BgAA
+ AAAAAAAAAAYESAYABvUFA/39AwNIDAAGCAUD/QP9A0gMAAYIBQP9/f0DSAwBAQcFA/39/QP0DAAB9QQD
+ BAEAAAAAAAAAAAYGBf0F9AYBDEgDA/39/QVIBgEMSAP9/QP9A0gGAAb0AwP9/f0F9AYBBgjCA/0DAwUI
+ BgAGCAgBAAAAAAAAAAAGBgT9AwMEBwEA9QQDA/0DA8IHAQEHBMP9A/3DBQgBAfUEAwP9/QMF9QYBDEgD
+ /f39AwQHAQEGAAAAAAAAAAAABgYHA/39/QNI9QAGBwX9/f39AwT1AQEIBQP9/QP9BAwBAQcE/QP9AwME
+ BgABBwQDAwMEBwAAAAAAAAAAAAAAAAABBvQF/QP9AwNIBgAG9AX9A/0DA0gMAAZIAwP9A/0D9AwBBvQF
+ /f39/QNIBgAGCAcGAQEAAAAAAAAAAAAAAAAAAAABDEgD/f39AwX0BgEMBAP9/f39BfQGAQwEA/0D/f0F
+ CAEBDEgDAwMFSAYAAAEGBgYBAAAAAAAAAAAAAAAAAAAAAQEBBwQD/QP9AwT1AQEHBQMD/QMDBfUBAfUF
+ A/0D/f0EBwEBCAgMBgEAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAYIDOcGCAX9/QP9AwQMAAYIA/39/f0D
+ BAwABggF/QMDBAcAAAEBBgYGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAwUIBgEGSAP9A/0DA0jnAQz0
+ A/0D/f0DSAYAB0gHDAYBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgT9AwT1AQH1BAP9/QP9
+ BQgGAQcEA/0DBUgGAAABBgYGAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgZIA/39AwQMAQb1
+ Bf0D/f0DBAcBBkgIDAYBAAAAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBDAP9A/39
+ BUgGAAZIA/0DAwUHAQABBgYGBgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEM
+ BAMD/f39AwgBAQdIBwYGAQAAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAEHBP0DAwVIBgABAQYGBgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAEGAQZISAwGAQEAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAABgAAAQYGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAD////////////////////////////4P////////4Af///////8AB///////8AAH//////8AAAf////
+ /8AAAA/////+AAAAD////+AAAAAP///+AAAAAA///+AAAAAAB///AAAAAAAH//AAAAAAAAf/gAAAAAAA
+ B/+AAAAAAAAD/4AAAAAAAAP/wAAAAAAAA//AAAAAAAAB/8AAAAAAAAH/wAAAAAAAAf/gAAAAAAAB/+AA
+ AAAAAAD/4AAAAAAAAP/gAAAAAAAA//AAAAAAAAD/8AAAAAAAAH/wAAAAYAAB//gAAAPgAA//+AAAP/AA
+ ///4AAP/8A//f/gAH//wf/A//AH/3///AD/8H/wP//AAH///4A//gAAf//4AD/gAAB//4AAHgAAAH/8A
+ AAAAAAAP/gAAAAAAAA//AAAAAAAAD/8AAAAAAAAP/wAAAAAAAAf/AAAAAAAAB/+AAAAAAAAH/4AAAAAA
+ AAP/gAAAAAAAA/+AAAAAAAAD/8AAAAAAAAP/wAAAAAAAAf/AAAAAAAAB/8AAAAAAAAP/4AAAAAAAH//g
+ AAAAAAH//+AAAAAAH///8AAAAAD////wAAAAD/////AAAAD/////8AAAD//////4AAB///////gAB///
+ ////+AB////////4A/////////w//////////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAAEgAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAKAAAAAwAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACAAAABQAAAAqAAAAUwEAK6YLAIftCABSfAAA
+ AAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAADwAAACMAAABBAwBAiwkAaPECAB7/AAAC/wAA
+ Cf8FADv/CQBt8gAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAANAAAAHQAAADoAAARxAAAA1wEAGf8KAGT/DgCV/xAA
+ n/8NAI3/BwBP/wEAEP8AAAD/AQAO/wAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAkAAAAYAAAAMAAAAF0FAEW3DgCW+Q8Amv8LAG//AwAn/wAA
+ BP8AAAT/BAAv/wsAdv8PAJr/DwCc/wwAf/8FADn/AAAI/wAAAGYAAAAEAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAABgAAABIAAAAoAAADSgUARZcHAE/3AAAM/wAAAP8CABX/CABX/w0A
+ kf8QAJ7/DQCT/wgAWv8BABb/AAAA/wEAC/8GAEP/DACG/xAAnf8OAJj/CgBu/wIALMkAAAAMAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAEAAAAFAAAADwAAACIAAABAAAADhQAAAOEEADT/CwB9/w8AnP8PAJz/DAB7/wQA
+ Mv8AAAb/AAAC/wIAJf8LAGz/DgCY/xAAnf8MAIj/BgBG/wEAC/8AAAD/AQAV/wgAW/8OAJH/EACe/w8A
+ l/8AAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAQAAAAQAAAAMAAAAHQAAADcAAARoCABx0xAAn/8OAJH/CABU/wIAE/8AAAD/AQAP/wcA
+ UP8NAJH/EQCm/w8Anf8KAGz/AwAi/wAAAv8AAAf/BAA4/wwAgf8QAJ//DwCd/wwAev8EADL/AAAF/wAA
+ Av8DACX/CgBt/w4AmP8AAAA4AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAQAAAAgAAAAVAAAAKwAADlgIAFm5BAAv+gAAA/8AAAT/BAAs/wsAev8QAKP/EACn/w0A
+ i/8FAEL/AAAK/wAAAf8DAB3/CgBp/xAAof8RAK3/DgCb/wgAWf8BABL/AAAA/wEAEP8HAFL/DgCT/xEA
+ pv8OAJz/CgBp/wMAIP8AAAD/AQAI/wQAN/8AABh7AAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAABQAAABIAAAAoAAAASAAAAJIAAAjwBwBS/w0Aj/8QAKP/DwCZ/wkAYv8CABz/AAAB/wAA
+ Cv8GAET/DQCP/xEArf8RAKz/DAB//wQAL/8AAAT/AAAD/wMAMf8MAIT/EQCu/xIAr/8NAJP/BgBD/wEA
+ CP8AAAH/AgAe/woAa/8PAJ//EQCp/w4Alf8HAFT/AQAS/wAAAP8AAAPiAAAAEgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAHAAAcagsAgd0PAJ3/DAB9/wUANf8AAAb/AAAB/wIAI/8KAG//EACh/xEA
+ rP8OAJj/CABR/wEAEf8AAAD/AQAX/wkAYf8QAKb/EwC4/xEArP8KAG//AwAf/wAAAf8BAAz/BgBL/w4A
+ m/8SALb/EQCy/w0Agv8EAC//AAAF/wAABf8EADH/CwCA/xAAp/8RAKn/DQCK/wYAP/8AAAn/AAAAJgAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAQAN/wYASP8NAIn/EACf/w8Am/8KAG//AwAl/wAA
+ Af8BAAf/BAA4/w0AjP8SALH/EQCz/w4Akf8FAD7/AAAH/wAAAf8EACj/DACA/xIAtv8TAL7/EACn/wgA
+ V/8BABL/AAAA/wIAF/8KAGX/EQCs/xMAvv8QAK//CgBw/wIAHP8AAAD/AQAL/wYASP8OAJT/EQCt/xAA
+ pv8LAHr/AAAARQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAQAH/wAAAP8CABn/CQBg/w4A
+ m/8RAK3/DwCd/wkAYP8CABf/AAAA/wEAEP8IAFX/DwCj/xMAvv8SALj/DACD/wQAKv8AAAL/AAAG/wUA
+ QP8PAJv/EwDD/xQAxP8OAJr/BgBC/wEACP8AAAP/AwAq/wsAgv8SALn/EwDA/xAApv8IAFn/AQAQ/wAA
+ AP8BABX/CQBh/w8Ao/8SAK//BQBGigAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBQA8vgQA
+ Lv8AAAT/AAAD/wMALf8MAH3/EQCt/xIAtv8PAJz/BwBN/wEADP8AAAD/AgAe/woAc/8SALj/FADI/xIA
+ t/8KAG3/AgAa/wAAAf8BABL/CABe/xAAsv8UAM3/EwDE/w0Aif8EACz/AAAD/wAACP8GAEL/DgCb/xMA
+ wf8TAMD/DgCW/wUAPf8AAAj/AAAB/wMAKP8LAHr/DgCU6wAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAACAAAaYQ8An/8KAGv/AgAg/wAAAf8BAAj/BQBE/w4Amf8TAL//EgC9/w4Akv8EADj/AAAH/wAA
+ BP8EADb/DQCS/xQAyP8UAND/EQCv/wgAVP8AAA7/AAAC/wMAIf8MAH3/FADF/xUA0/8SAL7/CgBx/wIA
+ Gv8AAAH/AQAR/wgAXv8RALD/FADG/xIAvf8LAIL/AwAo/wAAA/8BAAf/BQA6/wAAADAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAMRAApf8SALP/DwCg/wgAWv8BABL/AAAA/wEAFP8KAGT/EQC0/xQA
+ yv8TAMH/DACB/wQAJf8AAAL/AAAM/wcAUv8RALD/FQDV/xUA0/8PAKD/BQA//wEAB/8AAAX/BAA4/w4A
+ m/8UANL/FQDV/xIAs/8HAFX/AQAO/wAAAv8DACH/CwB6/xIAvP8UAMj/EgC1/woAaP8BABf/AAAA/wAA
+ AFgAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQUAPPcNAIv/EgC2/xMAvf8OAJv/BgBF/wEA
+ Cv8AAAH/AwAo/wwAhv8UAMj/FQDV/xMAvv8JAGn/AgAW/wAAAv8CABn/CgBx/xMAyf8WAN//FADT/w0A
+ if8DACf/AAAD/wEADf8HAFX/EQC2/xUA2f8UANb/DwCg/wUAPf8AAAb/AAAE/wQANv8OAJX/FADF/xQA
+ yP8QAKT/BwBO/wEAEb4AAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAALkBAA7/BwBT/xAA
+ p/8UAMb/EwDE/w0Ajv8DADD/AAAE/wAABv8GAEP/EACn/xUA2P8VANz/EQCz/wcAUP8AAAr/AAAC/wMA
+ Lf8OAJb/FQDb/xYA4/8TAM7/CgBv/wEAFv8AAAL/AgAa/wsAeP8UAMr/FgDf/xQA0f8MAIX/AwAm/wAA
+ Av8BAA3/BgBQ/xAArP8UAMv/EwDE/w8AnfwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA
+ AFgBAA7/AAAA/wIAHP8LAHT/EgC//xUA1P8TAMT/CwB6/wMAHv8AAAL/AQAS/wkAYv8TAMT/FgDj/xYA
+ 3/8PAKD/BAA2/wAABf8AAAr/BgBK/xEAtv8WAOP/FgDj/xIAvP8HAFH/AQAK/wAABP8EAC//DgCW/xQA
+ 2f8WAOL/EwDF/woAaP8BABX/AAAC/wEAGP8LAG3/EgC5/xQAy/8AAAAxAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAC0NAJT/BgA//wAACP8AAAP/BAAy/w4Alv8VANT/FgDe/xMAv/8JAGH/AQAR/wAA
+ Av8CACL/DACI/xQA2v8WAOP/FQDc/w0Ah/8DACL/AAAC/wEAE/8JAGr/EwDP/xYA4/8WAOL/EACk/wUA
+ OP8AAAX/AAAJ/wYASP8RALL/FgDg/xYA4P8RALP/BwBN/wEACv8AAAP/AwAr/wwAhv8AAA1NAAAAAwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQOAK7jEwDF/wwAhv8DACv/AAAD/wEADP8HAE//EgC5/xYA
+ 4v8VAOL/EgC2/wYAR/8AAAj/AAAE/wQAO/8RAK3/FgDj/xYA4/8UANT/CgBp/wEAD/8AAAHqAQAkjAkA
+ e9UWAOP/FgDj/xUA4P8MAIj/AgAg/wAAAv8CABL/CQBn/xMAyP8WAOP/FADa/w8Amf8DAC//AAAB/wAA
+ CrIAAAAoAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcFAEaKEwDI/xUA2f8TAMb/CwBy/wIA
+ GP8AAAL/AQAY/woAdv8UANX/FgDj/xYA4/8PAJ7/BAAw/wAAAv8BAAz/CQBd/xIA1/cGAHKXAAANTAAA
+ ACsAAAAVAAAADQAAAmoFAD//EQCy/xYA4/8WAOP/FADS/woAZ/8BABL/AAAC/wIAJf8NAIz+DgC01AIA
+ Om0AAAA6AAAAIAAAAA4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAABGBQA//w8A
+ pP8VANv/FgDh/xMAvf8IAFf/AQAN/wAAA/8EAC7/DgCe/xYA4v8WAOP/FADR+QEALLcAAABkAAAANAAA
+ ChgAABwJAAAAAgAAAAAAAAAAAAAAAQAAADYAAAP/AQAN/wgAXv8UAND/FgDj/xYA4/8NAI/nAAAMkAAA
+ AEcAAAAlAAAPEQAAAAkAAAAKAAAAFQAAESsAAA42AAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAkAAAA/wEADv8JAF//EwDG/xYA4/8VAOL/EQCv/wUAPv8AAAL/AAAM3QAAKnMAABI4AAASHAAA
+ AAwAAAAHAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgKAG//AgAa/wAAAP8BACKqAAAfUAAA
+ EioAAAATAAAACQAAAAgAAA8QAAAAIwAAAEYAAA2HDQCa6RYA4v8VANz/BgBadgAAAAYAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAPAwA43AIAFf8AAAL/AgAg/w0Aiv8UANXwBwBoiwAAA0MAAAAlAAAAEwAA
+ AAoAAAAKAAAAFgAAACwAABxRCQCInwUAb2UAACQHAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAmAAAAMgAA
+ ABsAAAAMAAAACQAAAA8AAAAfAAAEOwQAWnwQALrcDQCJ/wIAG/8AAAL/AQAY/woAc/8TAMz/EwDE4wAA
+ DhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAxUwsAlOwAABOsAAAAVgAAACwAAAwUAAAACgAA
+ AAkAAA8RAAAUJQAAEkQBABiJAAAA6wIAH/8OAJn/FgDj/xYA4/8AABQZAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAEAAAACwAAChkAABkyAgAkYQAACsMAAAP/BgBK/xIAw/8WAOP/FgDj/xQAyf8IAFr/AQAN/wAA
+ A/8DACv/DQCL/wAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABIAAAAKAAAABwAA
+ Ew0AAAAcAAAAOAAABHQJAIXSFgDj/xYA4/8UANb/CABZ/wAACv8AAAX/BQBB/xIAwf8AAAQ0AAAAAQAA
+ AAEAAAAHAAANEwAAACgAAABNBAA8qBMA2vcWAOP/FgDj/w8An/8DACv/AAAC/wEAE/8KAG7/FQDZ/xYA
+ 4/8WAOL/EQCv/wUAO/8AAAT/AQAH/wAAAE0AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AA4AAAUvAAAkWg8ArcgPAJz/AwAh/wAAAv8CABr/DACC/xUA4v8WAOP/FgDj/xIAvf8EADr/AAAF/wAA
+ Dv8AAAZ7AAAALAAAE0MFAGSHEQDF5wkAYv8BAAz/AAAG/wUAQv8TAMT/FgDj/xYA4/8WAOL/CwB5/wIA
+ Fv8AAAL/AwAl/w4AlP8VAOH/FgDj/xYA4v8MAIr/AwAl/wAAA50AAAAJAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAABAAAAIIFAED/EgC7/xYA4/8WAOP/FQDa/woAbP8BABL/AAAC/wMAMP8RALH/FgDj/xYA
+ 4/8WAOP/DwCc/wMAI/8AAAH+AQAU/w0Aiv8WAOP/FgDj/xYA4/8TAMD/BgA9/wAABP8BAA7/CABl/xQA
+ 2/8WAOP/FgDj/xUA0/8IAFb/AAAK/wAABv8FADz/EACx/xYA4/8WAOP/FADQ/wsAe/YAAAAWAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAF4AAAL/AQAQ/woAaf8WAN3/FgDj/xYA4/8UAND/BwBQ/wAA
+ CP8BAAj/BwBR/xUA2P8WAOP/FgDj/xUA4f8LAHb/AQAU/wAAA/8EADT/EgC6/xYA4/8WAOP/FgDj/w8A
+ m/8CACL/AAAC/wIAHf8MAIn/FgDj/xYA4/8WAOP/EgCx/wQAN/8AAAT/AQAN/wgAWf8UAMn/FgDj/xYA
+ 4/8AAAstAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADILAHj/AgAZ/wAAAv8DACL/DgCX/xYA
+ 4v8WAOP/FgDj/xEAsf8EADT/AAAD/wEAFP8LAHj/FgDi/xYA4/8WAOP/FQDc/wcAVP8AAAf/AAAH/wgA
+ V/8VAN3/FgDj/xYA4/8WAOP/CwBz/wIAE/8AAAP/AwA0/xEArv8WAOP/FgDj/xYA4/8MAIn/AwAg/wAA
+ Av8CABj/CwB4/xQA2P8AABZQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChgSANb2FQDV/wkA
+ Xv8AAA3/AAAE/wUAPf8SAMT/FgDj/xYA4/8WAOP/DgCP/wMAHv8AAAL/AgAo/xAAqf8WAOP/FgDj/xYA
+ 4/8TAMH/BQA2/wAABP8BABT/CwB+/xYA4/8WAOP/FgDj/xUA1f8HAE//AAAJ/wAACP8HAFL/EwDM/xYA
+ 4/8WAOP/FQDY/woAZv8BABD/AAAC/wMAK/8BADKrAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAkIAHmZFgDj/xYA4/8SAMD/BgBC/wAABf8BAA7/CQBh/xUA4P8WAOP/FgDj/xUA4f8KAGv/AAAN/wAA
+ Bf8GAEX/FADX/xYA4/8WAOP/FgDj/w4Alv8CAB7/AAAC/wMAKf8QAKj/FgDj/xYA4/8WAOP/EgC1/wQA
+ MP8AAAL/AQAS/wsAcv8WAOP/FgDj/xYA4/8SAL3/BgBD/wAABf8AAAL6AAAAHgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAIAABBPEACj/xYA4/8WAOP/FgDj/w8Aof8DACj/AAAC/wIAGf8NAI7/FgDj/xYA
+ 4/8WAOP/FQDX/wYASP8AAAb/AAAN/woAbf8WAOH/FgDj/xYA4/8WAOP/CgBr/wEADv8AAAX/BgBH/xQA
+ 0f8WAOP/FgDj/xYA4/8NAIr/AgAa/wAAAv8DACT/DgCW/xUA4v8WAOP/FgDj/w4Al/8DACj/AAAAOgAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAG/wYAS/8UAM//FgDj/xYA4/8WAOP/DQCD/wIA
+ GP8AAAP/BAAz/xIAwP8WAOP/FgDj/xYA4/8RALb/BAAt/wAAA/8CAB3/DgCb/xYA4/8WAOP/FgDj/xUA
+ 1P8GAEf/AAAF/wEADf8JAGb/FQDe/xYA4/8WAOP/FQDc/wkAX/8AAA3/AAAE/wUAOv8RALT/FgDj/xYA
+ 4/8VANn/AgAyawAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAQAb6AAAA/8BABD/CgBx/xYA
+ 4/8WAOP/FgDj/xUA3v8JAFv/AAAM/wAAB/8HAFf/FgDf/xYA4/8WAOP/FgDj/w4AkP8BABj/AAAC/wQA
+ Nv8TAMb/FgDj/xYA4/8WAOP/EQCz/wMAKv8AAAL/AgAb/w0AkP8WAOP/FgDj/xYA4/8SAMD/BQA8/wAA
+ Bf8BAAz/BwBX/xMAzP8WAOP/DgCmxAAAEg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAwBKgg0A
+ kv8CAB//AAAC/wIAIv8QAKP/FgDj/xYA4/8WAOP/FADN/wUAPP8AAAT/AQAU/w0Ah/8WAOP/FgDj/xYA
+ 4/8WAOP/CQBl/wEADP8AAAr/CABY/xUA3/8WAOP/FgDj/xYA4/8MAIT/AQAU/wAAAv8EADL/EQC3/xYA
+ 4/8WAOP/FgDj/w4AmP8DACT/AAAC/wEAGP8LAHb/FADW/wAACB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAABAAAbQRYA4/8VAOH/CgBu/wEAEf8AAAT/BQBC/xMAzv8WAOP/FgDj/xYA4/8QAKv/AwAk/wAA
+ Av8DACn/EQC4/xYA4/8WAOP/FgDj/xQA0v8GAD//AAAF/wEAFf8MAIT/FgDj/xYA4/8WAOP/FQDd/wgA
+ W/8AAAr/AAAI/wcATv8UANL/FgDj/xYA4/8VAN//CwBu/wEAEv8AAAL/AwAr/wAAACEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAPIRUA3/sWAOP/FgDj/xUA2v8GAEv/AAAH/wEADP8JAGX/FgDj/xYA
+ 4/8WAOP/FgDj/wwAgv8AABL/AAAF/wYASP8WAN//FgDj/xYA4/8WAOP/EQCr/wMAIf8AAAL/AwAo/xAA
+ qv8WAOP/FgDj/xYA4/8SAMH/BQA4/wAAA/8CABP/CgBv/xUA4f8WAOP/EADE6AMAN48AAABJAAAAIwAA
+ AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwMAO9oRALH/FgDj/xYA4/8WAOP/EgC6/wQA
+ NP8AAAP/AgAc/w8AmP8WAOP/FgDj/xYA4/8WAOH/CABW/wEAB/8BAAz/CgBw/xUA4v8WAOP/FgDj/xYA
+ 4/8MAHv/AQAR/wAABP8GAET/FADS/xYA4/8WAOP/FgDj/w0Ajv8BAA/4AAABvQAACVMAABAvAAALFgAA
+ AAgAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAHEAAAf/BgBL/xQA
+ 1/8WAOP/FgDj/xYA4/8OAJf/AgAc/wAAA/8EADX/EwDL/xYA4/8WAOP/FgDj/xQAzP8FADn/AAAD/wIA
+ Hv8PAJ//FgDj/xYA4/8WAOP/FQDb/wcAUf8AAAb/AQAN/woAcP8OAKbEAgA+ZgAACjMAAAAaAAAACwAA
+ AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
+ ADoFAD3/AAAE/wEAEv8LAHb/FgDj/xYA4/8WAOP/FgDi/wsAbf8AAAz/AQAI/wgAWv8WAOP/FgDj/xYA
+ 4/8WAOP/EACi/wMAHv8AAAL/BAA4/xMAy/8WAOP/FgDj/xEAweAAACB8AAAAPwAAACEAABIOAAAABAAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAACB0WAOP/DwCj/wMAJP8AAAL/AwAi/xAAqf8WAOP/FgDj/xYA4/8VAN7/BgBJ/wAA
+ Bf8BABT/DQCM/xYA4/8WAOP/FgDj/xYA4/8KAGf/AAAD9gAAC58AABBLAAATKAAADRMAAAAGAAAAAQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJAIOlFgDj/xYA4/8MAHz/AgAU/wAABP8FAEL/FADT/xYA
+ 4/8WAOP/FgDj/xIAvv8EAC7/AAAD/wMAKv8TAM78CwCTrwAAN1wAAAUtAAAAFgAAAAkAAAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAACRVFgDj/xYA4/8WAOP/FQDf/wgA
+ V/8AAAj/AQAL/woAav8WAOP/FgDj/xYA4/8PALXYAAAPdAAAADcAAAkcAAAXCwAAAAMAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAwAu/xEA
+ tP8WAOP/FgDj/xYA4/8TAM3/BAAw/wAAAOIAAB2AAAATQAAAFiIAAA8QAAAABgAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAVAAAF7QAABv8HAFH/EwDT8AkAhqEAACBPAAAFKwAAABMAAAAGAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAEAAAIPAAAAFsAAAAzAAALFwAAHAkAAAACAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//
+ ///n/wAA/////gP/AAD////wA/8AAP///wAD/wAA///wAAH/AAD//wAAAf8AAP/4AAAB/wAA/4AAAAH/
+ AAD4AAAAAP8AAMAAAAAA/wAAgAAAAAD/AACAAAAAAH8AAIAAAAAAfwAAwAAAAAB/AADAAAAAAH8AAMAA
+ AAAAPwAAwAAAAAA/AADgAAAAAD8AAOAAAAAAPwAA4AAAAAA/AADgAAPgA/8AAPAAP+Af/wAA8AP/4f4f
+ AADwH+//8A8AAPn+B/8ADwAA//AH8AAPAAD/AAcAAAcAAPgAAAAABwAA/AAAAAAHAAD8AAAAAAcAAPwA
+ AAAAAwAA/AAAAAADAAD+AAAAAAMAAP4AAAAAAwAA/gAAAAABAAD+AAAAAAEAAP8AAAAAAQAA/wAAAAAH
+ AAD/AAAAAH8AAP+AAAAH/wAA/4AAAH//AAD/gAAD//8AAP+AAD///wAA/8AD////AAD/wB////8AAP/B
+ /////wAA////////AAAoAAAAMAAAAGAAAAABAAgAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA
+ CP8AADr/CABr/0oxEP8QAK3/CADO/wAAGf8IAIz/SmMQ/xAA5v8ZQmv/GUJC/3sZa/97GSn/3ozv/96M
+ a/9ajO//Woxr/96Mrf/ejCn/Woyt/1qMKf+cjO//nIxr/xmM7/8ZjGv/nIyt/5yMKf8ZjK3/GYwp/84Z
+ a/8ZQu//jBnv/xlCrf/OGSn/jBmt/6UZSv+lGQj/exlK/3sZCP/ejM7/3oxK/1qMzv9ajEr/3oyM/96M
+ CP9ajIz/WowI/5yMzv+cjEr/GYzO/xmMSv+cjIz/nIwI/xmMjP8ZjAj/zhlK/xlCzv+MGc7/GUKM/84Z
+ CP+MGYz/SkJr/0pCQv8hCBD/CDEQ/6Vaa/+lWin/GWNr/xljQv97Wmv/e1op/85aa/9aQu//jFrv/1pC
+ rf/OWin/jFqt/6VaSv+lWgj/e1pK/3taCP/OWkr/WkLO/4xazv9aQoz/zloI/4xajP/e7+//3u9r/1rv
+ 7/9a72v/3q3v/96ta/9are//Wq1r/96trf/erSn/Wq2t/1qtKf/e763/3u8p/1rvrf9a7yn/nK3v/5yt
+ a/8Zre//Ga1r/5ytrf+crSn/Ga2t/xmtKf+c7+//nO9r/xnv7/8Z72v/nO+t/5zvKf8Z763/Ge8p/+8Z
+ a/8ZY+//rRnv/xljrf/vGSn/rRmt/94p7//eKa3/3u/O/97vSv9a787/Wu9K/97vjP/e7wj/Wu+M/1rv
+ CP+c787/nO9K/xnvzv8Z70r/nO+M/5zvCP8Z74z/Ge8I/94pzv/eKYz/3s7v/97Oa/9azu//Ws5r/96t
+ zv/erUr/Wq3O/1qtSv/erYz/3q0I/1qtjP9arQj/3s6t/97OKf9azq3/Ws4p/5ytzv+crUr/Ga3O/xmt
+ Sv+crYz/nK0I/xmtjP8ZrQj/nM7v/5zOa/8Zzu//Gc5r/5zOrf+czin/Gc6t/xnOKf/vGUr/GWPO/60Z
+ zv8ZY4z/7xkI/60ZjP/eCO//3git/97Ozv/ezkr/Ws7O/1rOSv/ezoz/3s4I/1rOjP9azgj/nM7O/5zO
+ Sv8Zzs7/Gc5K/5zOjP+czgj/Gc6M/xnOCP/eCM7/3giM/0pja/9SCBD/UhBr/0pjQv9SEEL/QhCt/0IQ
+ 7/8xEGv/MRBC/0IQjP9CEM7/CGMQ/+9aa//vWu//WmPv/61a7/9aY63/71op/61arf/vWq3/71rO/+9a
+ jP/vWkr/zlrv/1pjzv+tWs7/WmOM/+9aCP+tWoz/zlqt/85azv/OWoz/KTEQ/xAZa/8QGUL/YxCt/2MQ
+ 7/8QGa3/EBnv/xAZjP8QGc7/YxCM/2MQzv8pYxD/pSlr/6UpKf+lCGv/pQgp/yEAzv8AEAD/AAAA/wAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAABAgMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
+ AQAAAUEDAwcBAQIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB0EBBwMIBQjVBwEH
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQIICAMHAQECAwgFAwJBAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAECA+8HAQcDCAgIA0EBBwIIBQgDAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ QQcBAAIICAUDAgcHBwMFCAjvBwEHAggFCAEAAAAAAAAAAAAAAAAAAAAAAAAAAAcDCAgDQQAH7wgFCANB
+ AUECCAgFAwJBAAIDCAcBAAAAAAAAAAAAAAEAAQEH1QMCAQECAwgFCAIHAQfUCAUIAwcBB+8IBQgDAgFB
+ AgIAAAAAAAAAAAAAAEEHAQECCAUIA0EBB+8IBQUDAkEBAggFBQjvBwECAwgFCNUHAAEAAAAAAAAAAAEC
+ AwgDAgEAAgMFBQgCBwFBAwUFBQMHAQEDCAUF1AIBAQIICAUIAkEAAAAAAAAAAAAHAggFCNQCAQECCAUF
+ CAIHAQIDBf0FAwcBBwMFBQUDB0EBAgUFBQMCAAAAAAAAAAABAAcDCAUIAwcBQQMF/QUDAgEHAggFBQUC
+ AQECCAUFBQMHAQcDCAUDAAAAAAAAAAACAkEAAgMFBQXvBwAHAwX9BQMCAAcDBf0FCAIBBwIFBQUIAgEB
+ AgMIAAAAAAAAAAADCAMHAQfvCAUFCAIBAQIIBf0IAwcBAgP9/QUDBwEHAwX9BQgCAUECAQAAAAAAAAAH
+ BQUFA0EBBwMF/QUIAgEHAwX9/QgCAQECCP39BQMBAQID/QUFAwcBAAAAAAAAAAABAggFBQgDBwECCP39
+ BQMHAAID/Qr9CAIHBwMFBv0FAgEBAggF/QgDBwAAAAAAAAAAAAcDCP0FCAIHAQIF/f0FAwEBAgj9/f0D
+ BwEHA/39/QgCAAcDBf0FCAEAAAAAAAAABwcBAgMF/QUIAgEHAwUK/QUCAQEDBQr9BQMHBwII/Qr9AwcH
+ BwMFBQIAAAAAAAAABwMCBwECCP39BQMHBwII/Qr9CAIBBwP9Cv0FAgEHAgX9/QUCB0ECAwMAAAAAAAAA
+ AAUFCAIBAQMF/QoFAgEHAgX9CgUDBwECCP0K/QgCQQcD/Qr9CAIBBwIAAAAAAAAAAQP9/f0DAgEHA/0K
+ /QUCAQcDBQUDAAAAB+8F/QoFAwcBAggFCAcBAAAAAAAAAAAAAAcCBf39BQMHAQII/f0FAgABAQcHAAAA
+ AAAHA/0K/QMHAAEBAQABAgMHAQAAAAAAAAAABwMFCv0FAgAHAwMHAAEHBwcAAAAAAAMHAQIDAgEABwEB
+ AAcI/f0IBwAAAAAAAQACBwECCAUFAgAAAAAABwMFBQcHAAAAAQIHAQEBAQECCAUIBwEHA/0FAQEAAAAA
+ AAADCAcAAQEHAAECAwIABwj9/QcHAAcBAAABB+8DBwEC/Qr9/QMHAQIIAQAAAAAAAAEBBwABQQEABwj9
+ /f0DAQfvBQcBAQcBAAECBQr9CAIHBwP9Cv0FAgEBAQAAAAAAAAAAAAcIBQgCAQcI/QoKBQMBBwEBAwj9
+ AwcBAgUKCv0DBwECCP0K/QgCAQAAAAAAAAAAAQIFCgr9AwcBAgX9Cv0IAgEHCP0KCgUDAQcD/QoK/QMH
+ BwIF/Qr9AwEBAAAAAAAAAQEHA/0K/f0DAQcDBQoK/QgHBwIF/Qr9CAIBAgj9Cv0FAgcHAwX9CgIHAAAA
+ AAAAAQMHAQIICgr9BQIHBwP9CgoFAwcHA/0KCv0DBwECBf0K/QgCAQID/QMBAAAAAAABB/0FAwcH7wUK
+ Cv0IAgACBf0K/QUCBwcI/Qr9/QMBBwMFCv39AwcHAgIBAAAAAAAHBwUKCgUCBwcD/f0K/QMHAQP9Cgr9
+ CAJBAgUKCgoFAgcHA/0KCgUCAQAAAAAAAAAAAQIF/Qr9CAIBAggKCgr9AwEHA/0K/f0DBwfvBQr9/QgH
+ BwII/Qr9BQIBAQAAAAAAAAEBA/0KCv0IB0ECBf0K/QUCAQIFCgoKBQMBBwP9Cgr9AwcHAgX9Cv0DAQAA
+ AAAAAAAHAQcD/Qr9/QMHBwP9Cgr9CAcBAgX9CgoFAgECCP0K/QUDAQcDBQoFBwAAAAAAAAADCAIBAgX9
+ CgoFAgcHCP0KCv0DBwcD/f0K/QgHAQIF/Qr9CAIBAgMFBwAAAAAAAAcDCv0DAgEC/Qr9CgUCAQIF/QoK
+ BQMBBwj9Cgr9AwcHAwUKCv0DBwACBwAAAAAAAAcC/f0KBQMHBwP9Cgr9CAcBA/0KCv0FAgECBf0KCgUC
+ AQIDBv0FAwEAAAAAAAAAAAEBAgUKCv0FAgcCCAoK/f0DBwcD/Qr9/QgHAQL9Cgr9CAEBAgIHAAAAAAAA
+ AAAAAAAAAQcC/QoK/QgCQQIFCgr9/QIBAgUKCgoGAwcHAwUIAgEAAAcHBwAAAAAAAAAAAAAAAQIHBwj9
+ Cgr9AwcHA/0KCgoIAgECBQr9BQIAAQcHBwAAAAAAAAAAAAAAAAAAAAABBwUFAgECCP0KCgUDBwcI/QoK
+ /QMBBwMHBwEAAAEAAAAAAAAAAAAAAAAAAAAAAAAHBwUK/QgHAQMFCgoKBQIBAgUFCAcBAAEHBwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAABwP9Cv39AwcHA/0K/QUHAQEHBwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAQECBQoKCgUCAQIDBwcBAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQMF
+ BQMHAAEBBwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAQEHBwcBAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA/////+f/AAD////+A/8AAP////AD/wAA////AAP/
+ AAD///AAAf8AAP//AAAB/wAA//gAAAH/AAD/gAAAAf8AAPgAAAAA/wAAwAAAAAD/AACAAAAAAP8AAIAA
+ AAAAfwAAgAAAAAB/AADAAAAAAH8AAMAAAAAAfwAAwAAAAAA/AADAAAAAAD8AAOAAAAAAPwAA4AAAAAA/
+ AADgAAAAAD8AAOAAA+AD/wAA8AA/4B//AADwA//h/h8AAPAf7//wDwAA+f4H/wAPAAD/8AfwAA8AAP8A
+ BwAABwAA+AAAAAAHAAD8AAAAAAcAAPwAAAAABwAA/AAAAAADAAD8AAAAAAMAAP4AAAAAAwAA/gAAAAAD
+ AAD+AAAAAAEAAP4AAAAAAQAA/wAAAAABAAD/AAAAAAcAAP8AAAAAfwAA/4AAAAf/AAD/gAAAf/8AAP+A
+ AAP//wAA/4AAP///AAD/wAP///8AAP/AH////wAA/8H/////AAD///////8AACgAAAAgAAAAQAAAAAEA
+ IAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA
+ ABIAAAAlAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAOAAAALAIA
+ JXkAAAfxAQAN/wsAbv8AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACQAAACIAABFYAQAQ5QAA
+ Bv8IAFj/DwCc/w4Akv8FADf/AAAB/wAAAHcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAaAAADRAEAHb4AAAH/BgBB/w4A
+ lv8PAJr/BwBO/wAAA/8BABL/CwB2/xAAnv8MAIH/AgAh8QAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEgAAADYBACGSAAAA/wQAK/8NAI//EACg/woA
+ Z/8AAAr/AAAJ/woAYf8QAJ7/DQCP/wQALv8AAAD/BAAp/w0Ai/8QAJ7/AAAAEQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAwAAAApAgAZbAAAA/ECABj/DACD/xAApv8MAH//AgAW/wAA
+ A/8HAE//EACk/xAApP8HAEr/AAAD/wIAGf8MAIP/EACl/wwAfv8CABf/AAAD/wYARv8AAAA3AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAEAAAAHwAADlYAAAjVAQAL/wsAbf8QAKP/DgCP/wMAJv8AAAD/BQA4/xAA
+ ov8RALH/CgBo/wAACf8BAA3/DAB4/xIAs/8PAJz/BAAr/wAAAP8FADT/DwCb/xAAp/8KAGP/AAAJ/wAA
+ AKIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmoIAFf/DwCb/w4Alf8FADr/AAAB/wMAJP8OAJT/EgCz/wwA
+ g/8CABP/AAAF/wkAYf8SALn/EQCy/wYAR/8AAAL/AwAk/w8Am/8TALz/DQCI/wIAFf8AAAX/CABY/xEA
+ qv8PAKH/BwBL/wAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAMwAABf8BABL/DAB7/xIArv8OAJL/AwAi/wAA
+ Av8GAEf/EQCz/xMAvf8KAGb/AAAF/wIAFf8NAI//FADI/xEAqf8EACj/AAAB/wYARf8SALX/EwC9/woA
+ af8AAAf/AQAP/wwAfv8SALD/AAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAIDgCW/wUAM/8AAAD/BAAt/xAA
+ ov8TAL3/DACB/wEAD/8AAAn/CwB0/xQAy/8TAL//BgBD/wAAAv8EAC7/EgC0/xQA0f8NAI3/AgAT/wAA
+ Cf8LAG//FADD/xIAtv8GAEL/AAAB/wMAJv8AAANIAAAAAAAAAAAAAAAAAAAAAAAAAAMNAIXrEgC0/w4A
+ kv8DAB3/AAAD/wgAVf8TAML/FADI/wkAYf8AAAX/AwAc/xAAo/8VANn/EQCx/wMAJf8AAAP/CQBY/xQA
+ z/8UANL/CgBo/wAABf8CABj/DwCX/xQAyP8QAKP/AwAi/wAAAL8AAAABAAAAAAAAAAAAAAAAAAAAAAAA
+ AGwFADf/EQCu/xQAxf8MAHz/AQAM/wEADf8NAIn/FQDZ/xMAxv8FAD3/AAAC/wYAPv8TAMv/FgDi/w4A
+ k/8BAA//AQAM/w0Aif8VAN3/EwDI/wYAP/8AAAL/BQA2/xIAtf8UAMj/DQCG/wAAAAkAAAAAAAAAAAAA
+ AAAAAAAAAAAAKQIAFv8AAAX/CQBl/xQAzv8UAM3/CQBa/wAAA/8DACT/EgC4/xYA4/8RALL/AwAg/wAA
+ Bf8LAG//FgDi/xUA4P8KAGX/AAAE/wMAI/8SALX/FgDj/xEAr/8DACD/AAAF/wkAXP8TAMT/AAAAIAAA
+ AAAAAAAAAAAAAAAAAAAAAAALFADI/wsAdf8AAAn/AgAT/w8AmP8WAOP/EwDJ/wUAOP8AAAL/BwBO/xUA
+ 3v8WAOP/DgCQ/wEADP8CABX/BwBrxxYA4/8VANb/BQA7/wAAAv8GAEX/FADS/xYA4f8NAIX/AQAM/wEA
+ D/8AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAEKAHrVFADU/xQAz/8IAFD/AAAD/wQAMf8UAMv/FgDj/xEA
+ tP8CABj/AAAI/wkAeb8AABZEAAAAGgAAAAcAAAAxBAAw/xQA0P8WAOP/EgC3/wMAHP8AAAb/CQBsvwAA
+ EkQAAAAaAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUCABj/EACn/xYA4/8TAMf/BAAw/wAA
+ A/8IAGznAAAwWQAAACIAAAAMAAAABAAAAAAAAAAAAAAAAAAAAA4FADX/AAAC/wgAbOcCADpgAAAAIgAA
+ AAwAAAALAAAAIQAACFYRAMjlEwDH/wAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAHAcASP8AAAL/BgBA+QQA
+ VXoAAAUsAAAADwAAAAkAAAAZAAAAQw0An7sTANzzAAAABAAAAAAAAAAAAAAAAAAAABkAAAAQAAAACQAA
+ ABkAAABDDQCeuxYA4/8IAFb/AAAD/wQAMP8TAML/AAAFKwAAAAAAAAAAAAAAAAAAAAAAAAACAAAGJgAA
+ ABUAAAAJAAAAEgAAADQIAG6SFgDj/wwAgP8AAAf/BAAm/xUA0/8AAAsXAAAAAAAAAAQAAAARAAAANAgA
+ b5AWAOP/DQCI/wAACP8DAB//EwDA/xYA4/8UAMz/BAAu/wAAA/8AAAh5AAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAPAgApaRMA0vAQAKX/AQAP/wIAEv8RAK7/FgDj/xYA4/8IAFD/AAAD/wAAAGkCAC9rEwDS8BMA
+ v/8CABT/AQAP/xEArv8WAOP/FgDj/wgAUP8AAAL/BgBE/xUA3f8WAOP/EACf/wIAFvoAAAAFAAAAAAAA
+ AAAAAAAAAAAAAAAAADkAAAb/DACC/xYA4/8WAOP/CwB2/wAABf8EAC//FQDf/xYA4/8VANr/BAAp/wAA
+ Bv8OAI3/FgDj/xYA4/8NAIL/AAAF/wQAK/8VANn/FgDj/xUA1P8EACj/AAAF/wsAb/8WAOP/FgDi/wAA
+ DRMAAAAAAAAAAAAAAAAAAAAAAAAAFQ4Ak/8BAAz/AgAY/xMAwf8WAOP/FgDj/wcARv8AAAP/CQBi/xYA
+ 4/8WAOP/EgC4/wEAD/8CABf/EwDK/xYA4/8WAOP/BwBO/wAAAv8IAFT/FgDj/xYA4/8PAKL/AQAP/wEA
+ EP8QAJ//AAAENgAAAAAAAAAAAAAAAAAAAAAAAAAEFADd+RYA4/8KAGX/AAAD/wUAPf8WAOP/FgDj/xUA
+ 2P8DACH/AAAK/xAAqP8WAOP/FgDj/wsAef8AAAX/BQA9/xYA4/8WAOP/FQDX/wMAIv8AAAn/DgCM/xYA
+ 4/8WAOP/CgBo/wAABP8AAAamAAAAAQAAAAAAAAAAAAAAAAAAAAABACSNFADM/xYA4/8WAOH/BQA6/wAA
+ A/8LAHb/FgDj/xYA4/8RAK3/AAAL/wMAIv8VANv/FgDj/xYA4/8GAET/AAAD/woAbv8WAOP/FgDj/xAA
+ pP8AAAv/AgAY/xIAu/8WAOP/FQDa/wUAPP8AAAAHAAAAAAAAAAAAAAAAAAAAAAAAADAAAAL/BwBH/xYA
+ 4/8WAOP/FADR/wIAGf8BAA//EwDA/xYA4/8WAOP/CwBz/wAAA/8HAEv/FgDj/xYA4/8VANb/AgAc/wEA
+ DP8QAKz/FgDj/xYA4/8JAGP/AAAD/wUAOP8VANn/FgDj/wAAExoAAAAAAAAAAAAAAAAAAAAAAAAADxUA
+ 3f8EAC//AAAF/w0Aif8WAOP/FgDj/w8Anf8AAAn/BAAu/xYA4/8WAOP/FgDj/wUAPP8AAAX/DQCK/xYA
+ 4/8WAOP/DwCf/wAACf8DACP/FQDW/xYA4/8VAN7/BAA0/wAAA/8JAF//AAAIPgAAAAAAAAAAAAAAAAAA
+ AAAAAAACEQDL5xYA4/8TAMH/AgAS/wIAFv8UAMz/FgDj/xYA4/8JAGP/AAAD/wkAY/8WAOP/FgDj/xUA
+ 1/8CABj/AgAU/xMAxv8WAOP/FgDj/wkAXP8AAAP/BwBM/xYA4/8WAOP/DACK8QAAAHoAAAAVAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAApmDwCY/xYA4/8WAOP/DgCO/wAABf8FADj/FgDj/xYA4/8WAOP/BAAy/wAA
+ Cf8QAKr/FgDj/xYA4/8PAJj/AAAG/wQAMf8WAOL/FgDj/xUA3f8AAASjAAAAOAAADRMAAAADAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYBAA//AgAc/xUA1v8WAOP/FgDj/wgAVf8AAAT/CwB3/xYA
+ 4/8WAOP/FADS/wIAE/8CABz/FQDb/xYA4/8WAOP/AQAcvgAAAEsAABMaAAAABgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChYA4/8LAHP/AAAD/wYAQ/8WAOP/FgDj/xYA
+ 4/8EACj/AQAN/xMAwv8WAOP/FgDj/wYAUuUAAABhAAAOJAAAGQoAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDQChvhYA4/8WAOP/BgBD/wAA
+ BP8NAIj/FgDj/xYA4/8RALD6AAAAfAAACi8AABIOAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLBwBO/xYA
+ 4/8WAOP/FQDZ/wAAAacAAAg8AAAMFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ABMBABLPAAADTgAAER0AAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////H///8B///wAP//A
+ AD/+AAA/4AAAH4AAAB+AAAAfgAAAH4AAAA/AAAAPwAAAD8AAAA/AA8B/4D/H5+Pz/gf/A+AH+AMAA/AA
+ AAPwAAAD8AAAAfAAAAH4AAAB+AAAAfgAAAP8AAAf/AAB//wAH//8Af///g////7///8oAAAAIAAAAEAA
+ AAABAAgAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAGf9aYxn/EABj/xAArf8QAM7/CABC/xAA
+ jP/ejGv/Woxr/1pKrf/ejCn/Wowp/0oZ7/+cjGv/GYxr/xlKrf+cjCn/GYwp/xljSv+MGWv/jBkp/96M
+ Sv9ajEr/WkqM/96MCP9ajAj/ShnO/5yMSv8ZjEr/GUqM/5yMCP8ZjAj/GUJK/4wZSv+MGQj/MRAI/xkh
+ a/9aY0r/jFpr/0oZrf+MWin/YxlK/ylCGf8ZKc7/WkJK/4xaSv9KGYz/jFoI/0IZSv8IQhn/WkII/xAI
+ 7//e7+//3u9r/95r7/9a72v/Wmvv/1rv7//erWv/Wq1r/1prrf/e763/3mut/1rvrf/erSn/Wq0p/2sZ
+ 7//ere//3u8p/94p7/9a7yn/Wq3v/96trf/eKa3/Wq2t/5yta/8ZrWv/GWut/5ytKf8ZrSn/nO/v/5zv
+ a/+ca+//Ge9r/xlr7/8Z7+//nO+t/5xrrf8Z763/nK3v/5zvKf+cKe//Ge8p/xmt7/+cra3/nCmt/xmt
+ rf8ZY2v/rRlr/60ZKf/eKWv/3ikp/97vzv/e70r/3mvO/1rvSv9aa87/Wu/O/97vjP/ea4z/Wu+M/96t
+ zv/e7wj/3inO/1rvCP9arc7/3q2M/94pjP9arYz/nO/O/5zvSv+ca87/Ge9K/xlrzv8Z787/nO+M/5xr
+ jP8Z74z/nK3O/5zvCP+cKc7/Ge8I/xmtzv+crYz/nCmM/xmtjP/eKUr/3ikI/97O7//ezmv/3krv/1rO
+ a/9aSu//Ws7v/96tSv9arUr/WmuM/97Orf/eSq3/Ws6t/96tCP9arQj/axnO/96M7//ezin/3gjv/1rO
+ Kf9ajO//3oyt/94Irf9ajK3/nK1K/xmtSv8Za4z/nK0I/xmtCP+czu//nM5r/5xK7/8Zzmv/GUrv/xnO
+ 7/+czq3/nEqt/xnOrf+cjO//nM4p/5wI7/8Zzin/GYzv/5yMrf+cCK3/GYyt/xlCa/+tGUr/rRkI/94I
+ a//eCCn/3s7O/97OSv/eSs7/Ws5K/1pKzv9azs7/3s6M/95KjP9azoz/3ozO/97OCP/eCM7/Ws4I/1qM
+ zv/ejIz/3giM/1qMjP+czs7/nM5K/5xKzv8Zzkr/GUrO/xnOzv+czoz/nEqM/xnOjP+cjM7/nM4I/5wI
+ zv8Zzgj/GYzO/5yMjP+cCIz/GYyM/94ISv/eCAj/YxAI/+9aa/9aY2v/rVpr/2sZrf+tWin/Yxlr/+9a
+ Kf8ZKe//GSGt/yljGf8ZIUL/GSGM/+9aSv/vWgj/zlpr/1pCa/+tWkr/axmM/61aCP9CGWv/zlop/whj
+ Gf/OWkr/zloI/zEQKf9aQin/CBkh/2MQKf8IGQD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYB
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGAwEBAwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgMBAAMH
+ BwYBAAAAAAAAAAAAAAAAAAAAAAAAAAEDBgAGBwcGAQEDBwMGAAAAAAAAAAAAAAAAAAAAAwYBAQcHAwEB
+ AwcHBgAGBwcAAAAAAAAAAAAAAAYGAQEDBAMGAAMHBwYBAQcHAwYABgYAAAAAAAABAwEBAwcHBgEGBwQD
+ AQEDBAcGAAYHBwMBAAAAAAAAAQYHBwYBAQcEAwEBAwQEBgEGBwQDBgEDBwQGAAAAAAAAAQEDBAcGAAME
+ BAMBAQcFBwYAAwQEAwEBAwQBAAAAAAAHBgAGBwQHAQEDBAQGAQYHBQcBAQMEBAYABgYAAAAAAAcEBwEB
+ AwQEAwEGBwUEBgEDBAUDAQYHBQcGAAAAAAAAAQYHBAcBAQcFBAYBBgQFB/oBBwUEBgEGBAQDAAAAAAAA
+ BgEDBAQDAQYEBQQGAQMFBQMBBgQFBwYBAwQGAAAAAAAEAwEGBwUEBgEDBQUHAQYEBQUGAQMEBQcBBgYA
+ AAAAAAMFBAMBBgQ0BwYBBwcBAAEGBAUHBgEHBwEAAQAAAAAAAAYHBQQGAQcHBgABAQAAAAYABwQGAAAA
+ AQQEAQAAAAABBgEDBAMAAAABBAQBAAAABgAAAAEHBQMBBgQDAAAAAAADAQAAAQcFBwEGBAEBAQABBwUH
+ AQYEBQQGAQEAAAAAAAADBQcBAQQFBQMBAQMFBAEGBzQFAwEDBTQHAQAAAAAAAAEHBQUHAQYFNAQGAQcF
+ BQcBBgQFBAYBAwUFBgEAAAAABwEGBAUFAwEDBTQEAQYEBQUDAQMFNAcGAQcDAAAAAAEFBQMBAwQ0BAYB
+ BAUFBwEDBDQEBgEHBQUDAQEAAAAAAQYENAQDAQMFNAcBBgQ0BAMBBwU0BwEGBDQEAwAAAAAAAAEDBTQE
+ BgYHBQUHAQMFNAQGAQc0BQMBBgUFBgAAAAABBAYBBwUFBwYGBTQFBgEHBTQHAQYEBQUGAQMDAAAAAAEE
+ NAcGAQQ0BQMBAwU0BAYGBzQFAwEDBQUDAAEAAAAAAAYHNAUHAQMFBQUGAQc0BQcGBgU0BwAGAQEAAAAA
+ AAAAAAEGBDQFAwEHBTQEBgYEBQQBAQYBAAAAAAAAAAAAAAABBAMBAwUFBQYBBAUFBgEDAQAAAAAAAAAA
+ AAAAAAAAAAEENAUDAQcFNAMBAwEBAAAAAAAAAAAAAAAAAAAAAAAAAAEDBQUHAQYBAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAEGBgEAAAEAAAAAAAAAAAAAAAAAAAAAAAD////////8f///wH///AA//8AAP/4A
+ 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
+ AADgfwAA5/8AACgAAAAQAAAAIAAAAAEACAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAE/wUA
+ Nv8RALH/CABR/wUAQv8AAA7/AAAF/wAAE/8RALL/CgBm/w4AlP8RAK3/CQBZ/xIAvv8EAC3/AAAK/wMA
+ Jf8LAHL/EgC8/woAa/8OAJH/EQCz/xEAqv8OAJD/CgBi/xAAq/8CABf/AgAm/w8Aov8MAHr/CwBx/xIA
+ vf8LAG3/DgCM/xIAtP8QAKP/DwCa/wkAXv8HAEj/AAAI/wgAVP8MAH//DQCF/wkAX/8PAJz/CQBX/xAA
+ qP8OAJL/AQAU/w0Aiv8JAFj/EQCv/w0Agv8KAGn/CQBc/w8Amf8IAFD/BAAr/woAbP8RAKv/DQCE/wUA
+ Nf8LAGz/DAB3/xEAsP8OAIr/DwCd/wIAH/8HAEX/BAAu/w4Amf8HAEP/AgAi/wAACf8GAEL/CABT/wgA
+ Uv8AAAH/DgCL/wcAS/8BAAv/EQCs/wQAJv8KAGj/DwCf/wkAWv8QAKD/DAB7/wcATP8NAIb/CABP/xAA
+ of8KAGf/BgA7/wgATP8NAIP/CwBw/w0AiP8NAIH/DgCN/woAZf8GADn/BgA4/wwAff8JAFv/CABL/wgA
+ Tv8KAGT/DgCO/wcAQv8MAHb/BgA8/wUAMv8MAHT/CwBq/wUAL/8FADD/BAAp/wcASf8GADr/DAB4/wcA
+ Sv8LAHP/BQA3/wMAJv8DABr/CQBg/wcAR/8HAEb/BQA0/wAAA/8CABX/CABV/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAA
+ AAAAg0yEhQAAAAAAAAAAACd+f4CBH4IAAAAAAHV2dyZ4eUV6e3wzfQAAZj9xcg1IK1AuY3Blc3QAAGZn
+ aGlqGGtsbW5Ab3A3AABfYDdMJU1hOCdiY0VkZU4AUUxWV0xYQ1lXWltcXS5eAE42JE1PO1AUUU1SUzZU
+ VQAARUYmR0gySUo5GEsXTE0AAAE7LS48PT4DP0BBM0JDRAAxMjM0NTYTISoWNws4OToAKCkJKiEgISsj
+ LC0lLi8wAAAdHh8gISIjGSQlJgMKJwAAERITFBUWChcYGRobHAAAAAgJCgsMDQ4PBQcQAAAAAAABAgME
+ BQYHAAAAAAAAAP//AAD/BwAA8AcAAIAHAAAAAwAAgAMAAIADAACDjwAA+eEAAMABAADAAQAAwAEAAOAA
+ AADgDwAA4H8AAOf/AAA=
+
+
+
\ No newline at end of file
diff --git a/ProjectSrc/Forms/FlagEditor.Designer.cs b/ProjectSrc/Forms/FlagEditor.Designer.cs
index e3c7ff0..12aec2c 100644
--- a/ProjectSrc/Forms/FlagEditor.Designer.cs
+++ b/ProjectSrc/Forms/FlagEditor.Designer.cs
@@ -16,7 +16,7 @@ partial class FlagEditor
///
private void InitializeComponent()
{
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
this.tabs = new System.Windows.Forms.TabControl();
this.viewFlagsTab = new System.Windows.Forms.TabPage();
this.addCustom = new System.Windows.Forms.Button();
@@ -48,10 +48,10 @@ private void InitializeComponent()
this.tabs.Controls.Add(this.overridesTab);
this.tabs.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabs.Location = new System.Drawing.Point(0, 0);
- this.tabs.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.tabs.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.tabs.Name = "tabs";
this.tabs.SelectedIndex = 0;
- this.tabs.Size = new System.Drawing.Size(770, 844);
+ this.tabs.Size = new System.Drawing.Size(513, 563);
this.tabs.TabIndex = 0;
//
// viewFlagsTab
@@ -62,21 +62,21 @@ private void InitializeComponent()
this.viewFlagsTab.Controls.Add(this.flagSearchFilter);
this.viewFlagsTab.Controls.Add(this.searchTitle);
this.viewFlagsTab.Controls.Add(this.flagDataGridView);
- this.viewFlagsTab.Location = new System.Drawing.Point(4, 29);
- this.viewFlagsTab.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.viewFlagsTab.Location = new System.Drawing.Point(4, 22);
+ this.viewFlagsTab.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.viewFlagsTab.Name = "viewFlagsTab";
- this.viewFlagsTab.Padding = new System.Windows.Forms.Padding(4, 6, 4, 6);
- this.viewFlagsTab.Size = new System.Drawing.Size(762, 811);
+ this.viewFlagsTab.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.viewFlagsTab.Size = new System.Drawing.Size(505, 537);
this.viewFlagsTab.TabIndex = 0;
this.viewFlagsTab.Text = "View Flags";
this.viewFlagsTab.UseVisualStyleBackColor = true;
//
// addCustom
//
- this.addCustom.Location = new System.Drawing.Point(302, 56);
- this.addCustom.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.addCustom.Location = new System.Drawing.Point(210, 37);
+ this.addCustom.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.addCustom.Name = "addCustom";
- this.addCustom.Size = new System.Drawing.Size(195, 30);
+ this.addCustom.Size = new System.Drawing.Size(143, 22);
this.addCustom.TabIndex = 5;
this.addCustom.Text = "Add Custom";
this.addCustom.UseVisualStyleBackColor = true;
@@ -85,18 +85,17 @@ private void InitializeComponent()
// overrideStatus
//
this.overrideStatus.AutoSize = true;
- this.overrideStatus.Location = new System.Drawing.Point(93, 99);
- this.overrideStatus.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.overrideStatus.Location = new System.Drawing.Point(62, 66);
this.overrideStatus.Name = "overrideStatus";
- this.overrideStatus.Size = new System.Drawing.Size(0, 20);
+ this.overrideStatus.Size = new System.Drawing.Size(0, 13);
this.overrideStatus.TabIndex = 4;
//
// overrideSelected
//
- this.overrideSelected.Location = new System.Drawing.Point(97, 56);
- this.overrideSelected.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.overrideSelected.Location = new System.Drawing.Point(65, 37);
+ this.overrideSelected.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.overrideSelected.Name = "overrideSelected";
- this.overrideSelected.Size = new System.Drawing.Size(195, 30);
+ this.overrideSelected.Size = new System.Drawing.Size(139, 22);
this.overrideSelected.TabIndex = 3;
this.overrideSelected.Text = "Override Selected";
this.overrideSelected.UseVisualStyleBackColor = true;
@@ -106,10 +105,10 @@ private void InitializeComponent()
//
this.flagSearchFilter.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.flagSearchFilter.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
- this.flagSearchFilter.Location = new System.Drawing.Point(98, 20);
- this.flagSearchFilter.Margin = new System.Windows.Forms.Padding(2, 6, 4, 6);
+ this.flagSearchFilter.Location = new System.Drawing.Point(65, 13);
+ this.flagSearchFilter.Margin = new System.Windows.Forms.Padding(1, 4, 3, 4);
this.flagSearchFilter.Name = "flagSearchFilter";
- this.flagSearchFilter.Size = new System.Drawing.Size(642, 26);
+ this.flagSearchFilter.Size = new System.Drawing.Size(429, 20);
this.flagSearchFilter.TabIndex = 2;
this.flagSearchFilter.KeyDown += new System.Windows.Forms.KeyEventHandler(this.flagSearchFilter_KeyDown);
this.flagSearchFilter.Leave += new System.EventHandler(this.flagSearchFilter_Leave);
@@ -118,10 +117,10 @@ private void InitializeComponent()
//
this.searchTitle.AutoSize = true;
this.searchTitle.Font = new System.Drawing.Font("Segoe UI Semilight", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.searchTitle.Location = new System.Drawing.Point(10, 15);
- this.searchTitle.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+ this.searchTitle.Location = new System.Drawing.Point(7, 10);
+ this.searchTitle.Margin = new System.Windows.Forms.Padding(1, 0, 1, 0);
this.searchTitle.Name = "searchTitle";
- this.searchTitle.Size = new System.Drawing.Size(80, 30);
+ this.searchTitle.Size = new System.Drawing.Size(56, 20);
this.searchTitle.TabIndex = 1;
this.searchTitle.Text = "Search:";
//
@@ -140,15 +139,15 @@ private void InitializeComponent()
this.valueColumn});
this.flagDataGridView.Dock = System.Windows.Forms.DockStyle.Bottom;
this.flagDataGridView.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
- this.flagDataGridView.Location = new System.Drawing.Point(4, 130);
- this.flagDataGridView.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.flagDataGridView.Location = new System.Drawing.Point(3, 83);
+ this.flagDataGridView.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.flagDataGridView.MultiSelect = false;
this.flagDataGridView.Name = "flagDataGridView";
this.flagDataGridView.RowHeadersVisible = false;
this.flagDataGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
this.flagDataGridView.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.flagDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
- this.flagDataGridView.Size = new System.Drawing.Size(754, 675);
+ this.flagDataGridView.Size = new System.Drawing.Size(499, 450);
this.flagDataGridView.TabIndex = 0;
this.flagDataGridView.VirtualMode = true;
this.flagDataGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.flagDataGridView_CellFormatting);
@@ -191,21 +190,21 @@ private void InitializeComponent()
this.overridesTab.Controls.Add(this.removeAll);
this.overridesTab.Controls.Add(this.removeSelected);
this.overridesTab.Controls.Add(this.overrideDataGridView);
- this.overridesTab.Location = new System.Drawing.Point(4, 29);
- this.overridesTab.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.overridesTab.Location = new System.Drawing.Point(4, 22);
+ this.overridesTab.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.overridesTab.Name = "overridesTab";
- this.overridesTab.Padding = new System.Windows.Forms.Padding(4, 6, 4, 6);
- this.overridesTab.Size = new System.Drawing.Size(762, 811);
+ this.overridesTab.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.overridesTab.Size = new System.Drawing.Size(505, 537);
this.overridesTab.TabIndex = 1;
this.overridesTab.Text = "Overrides";
this.overridesTab.UseVisualStyleBackColor = true;
//
// removeAll
//
- this.removeAll.Location = new System.Drawing.Point(382, 12);
- this.removeAll.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.removeAll.Location = new System.Drawing.Point(255, 8);
+ this.removeAll.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.removeAll.Name = "removeAll";
- this.removeAll.Size = new System.Drawing.Size(362, 44);
+ this.removeAll.Size = new System.Drawing.Size(241, 29);
this.removeAll.TabIndex = 3;
this.removeAll.Text = "Remove All";
this.removeAll.UseVisualStyleBackColor = true;
@@ -213,10 +212,10 @@ private void InitializeComponent()
//
// removeSelected
//
- this.removeSelected.Location = new System.Drawing.Point(10, 12);
- this.removeSelected.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.removeSelected.Location = new System.Drawing.Point(7, 8);
+ this.removeSelected.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.removeSelected.Name = "removeSelected";
- this.removeSelected.Size = new System.Drawing.Size(362, 44);
+ this.removeSelected.Size = new System.Drawing.Size(241, 29);
this.removeSelected.TabIndex = 2;
this.removeSelected.Text = "Remove Selected";
this.removeSelected.UseVisualStyleBackColor = true;
@@ -237,18 +236,18 @@ private void InitializeComponent()
this.initialOverrideValueColumn});
this.overrideDataGridView.Dock = System.Windows.Forms.DockStyle.Bottom;
this.overrideDataGridView.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;
- this.overrideDataGridView.Location = new System.Drawing.Point(4, 68);
- this.overrideDataGridView.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.overrideDataGridView.Location = new System.Drawing.Point(3, 42);
+ this.overrideDataGridView.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.overrideDataGridView.MultiSelect = false;
this.overrideDataGridView.Name = "overrideDataGridView";
this.overrideDataGridView.RowHeadersVisible = false;
this.overrideDataGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
- dataGridViewCellStyle5.BackColor = System.Drawing.Color.Silver;
- this.overrideDataGridView.RowsDefaultCellStyle = dataGridViewCellStyle5;
+ dataGridViewCellStyle2.BackColor = System.Drawing.Color.Silver;
+ this.overrideDataGridView.RowsDefaultCellStyle = dataGridViewCellStyle2;
this.overrideDataGridView.RowTemplate.DefaultCellStyle.BackColor = System.Drawing.Color.White;
this.overrideDataGridView.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.overrideDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
- this.overrideDataGridView.Size = new System.Drawing.Size(754, 737);
+ this.overrideDataGridView.Size = new System.Drawing.Size(499, 491);
this.overrideDataGridView.TabIndex = 1;
this.overrideDataGridView.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.overrideDataGridView_CellEndEdit);
this.overrideDataGridView.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.overrideDataGridView_CellMouseEnter);
@@ -287,13 +286,13 @@ private void InitializeComponent()
//
// FlagEditor
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(144F, 144F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
- this.ClientSize = new System.Drawing.Size(770, 844);
+ this.ClientSize = new System.Drawing.Size(513, 563);
this.Controls.Add(this.tabs);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = global::RobloxPlayerModManager.Properties.Resources.Icon;
- this.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
+ this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.MaximizeBox = false;
this.Name = "FlagEditor";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
diff --git a/ProjectSrc/Forms/FlagEditor.cs b/ProjectSrc/Forms/FlagEditor.cs
index 1d65c40..3f11e35 100644
--- a/ProjectSrc/Forms/FlagEditor.cs
+++ b/ProjectSrc/Forms/FlagEditor.cs
@@ -11,6 +11,7 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
+using RobloxPlayerModManager.Forms;
namespace RobloxPlayerModManager
{
@@ -99,11 +100,11 @@ private bool rowMatchesSelectedRow(DataGridViewRow row)
DataGridViewRow selectedRow = flagDataGridView.SelectedRows[0];
selectedFlag = flags[selectedRow.Index];
}
-
+
return selectedFlag?.Key == getFlagKeyByRow(row);
}
- private void addFlagOverride(FVariable flag, bool init = false)
+ public void addFlagOverride(FVariable flag, bool init = false)
{
string key = flag.Key;
@@ -181,8 +182,21 @@ private void refreshFlags()
flagDataGridView.RowCount = flags.Count;
}
- private async void InitializeEditor()
+ public async void InitializeEditor()
{
+ LoadingForm loadingForm = new LoadingForm("Loading FFlag Editor...", ProgressBarStyle.Marquee, null);
+
+ loadingForm.Show();
+
+ loadingForm.TopMost = true;
+ loadingForm.Location = new Point(
+ this.Location.X + this.Width / 2 - loadingForm.ClientSize.Width / 2,
+ this.Location.Y + this.Height / 2 - loadingForm.ClientSize.Height / 2);
+
+ loadingForm.BringToFront();
+
+ Task.Delay(500).Wait();
+
string localAppData = Environment.GetEnvironmentVariable("LocalAppData");
string settingsDir = Path.Combine(localAppData, "Roblox", "ClientSettings");
@@ -227,7 +241,7 @@ private async void InitializeEditor()
info.Refresh();
}
- File.WriteAllText(settingsPath, File.ReadAllText(settingsPath).Replace("\"applicationSettings\":{","").Replace("}}", "}"));
+ File.WriteAllText(settingsPath, File.ReadAllText(settingsPath).Replace("\"applicationSettings\":{", "").Replace("}}", "}"));
/*
// Create some system events for player so we can hide the splash screen.
@@ -270,7 +284,7 @@ private async void InitializeEditor()
string settings = File.ReadAllText(settingsPath);
Dictionary json;
-
+
using (var reader = new StringReader(settings))
using (var jsonReader = new JsonTextReader(reader))
{
@@ -332,6 +346,8 @@ private async void InitializeEditor()
overrideStatus.Visible = true;
overrideDataGridView.DataSource = overrideView;
+
+ loadingForm.Close();
}
private async void FlagEditor_Load(object sender, EventArgs e)
@@ -342,7 +358,7 @@ private async void FlagEditor_Load(object sender, EventArgs e)
TopMost = true;
BringToFront();
- Refresh();
+ //Refresh();
var init = Task.Run(() =>
{
@@ -635,7 +651,7 @@ private void addCustom_Click(object sender, EventArgs e)
flagCreator.BringToFront();
flagCreator.ShowDialog();
-
+
Enabled = true;
UseWaitCursor = false;
diff --git a/ProjectSrc/Forms/FlagEditor.resx b/ProjectSrc/Forms/FlagEditor.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/ProjectSrc/Forms/FlagEditor.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/ProjectSrc/Forms/Form1.Designer.cs b/ProjectSrc/Forms/Form1.Designer.cs
new file mode 100644
index 0000000..3a49c48
--- /dev/null
+++ b/ProjectSrc/Forms/Form1.Designer.cs
@@ -0,0 +1,36 @@
+namespace RobloxPlayerModManager.Forms
+{
+ partial class Form1
+ {
+ ///
+ /// Variable nécessaire au concepteur.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Nettoyage des ressources utilisées.
+ ///
+ /// true si les ressources managées doivent être supprimées ; sinon, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Code généré par le Concepteur Windows Form
+
+ ///
+ /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
+ /// le contenu de cette méthode avec l'éditeur de code.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ }
+
+ #endregion
+ }
+}
diff --git a/ProjectSrc/Forms/Form1.cs b/ProjectSrc/Forms/Form1.cs
new file mode 100644
index 0000000..ca83345
--- /dev/null
+++ b/ProjectSrc/Forms/Form1.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+
+namespace RobloxPlayerModManager.Forms
+{
+ public partial class Form1 : RobloxPlayerModManager.Launcher
+ {
+ public Form1()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/ProjectSrc/Forms/Launcher.Designer.cs b/ProjectSrc/Forms/Launcher.Designer.cs
index b1d6782..8cd33cb 100644
--- a/ProjectSrc/Forms/Launcher.Designer.cs
+++ b/ProjectSrc/Forms/Launcher.Designer.cs
@@ -30,18 +30,19 @@ private void InitializeComponent()
{
this.launchPlayer = new System.Windows.Forms.Button();
this.manageMods = new System.Windows.Forms.Button();
- this.branchSelect = new System.Windows.Forms.ComboBox();
- this.branchLabel = new System.Windows.Forms.Label();
+ this.channelSelect = new System.Windows.Forms.ComboBox();
+ this.channelLabel = new System.Windows.Forms.Label();
this.forceRebuild = new System.Windows.Forms.CheckBox();
+ this.openFlagEditor = new System.Windows.Forms.Button();
this.openPlayerDirectory = new System.Windows.Forms.CheckBox();
this.targetVersionLabel = new System.Windows.Forms.Label();
this.title = new System.Windows.Forms.Label();
this.targetVersion = new System.Windows.Forms.ComboBox();
this.logo = new System.Windows.Forms.PictureBox();
- this.dontUpdate1 = new System.Windows.Forms.CheckBox();
- this.revertButton = new System.Windows.Forms.Button();
- this.openFlagEditor = new System.Windows.Forms.Button();
- this.linkLabel1 = new System.Windows.Forms.LinkLabel();
+ this.label1 = new System.Windows.Forms.Label();
+ this.LaunchBetaApp = new System.Windows.Forms.CheckBox();
+ this.versionstate = new System.Windows.Forms.Label();
+ this.button1 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.logo)).BeginInit();
this.SuspendLayout();
//
@@ -52,10 +53,10 @@ private void InitializeComponent()
this.launchPlayer.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.launchPlayer.Cursor = System.Windows.Forms.Cursors.Default;
this.launchPlayer.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.launchPlayer.Location = new System.Drawing.Point(16, 177);
- this.launchPlayer.Margin = new System.Windows.Forms.Padding(9, 5, 4, 5);
+ this.launchPlayer.Location = new System.Drawing.Point(11, 130);
+ this.launchPlayer.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
this.launchPlayer.Name = "launchPlayer";
- this.launchPlayer.Size = new System.Drawing.Size(213, 35);
+ this.launchPlayer.Size = new System.Drawing.Size(142, 23);
this.launchPlayer.TabIndex = 6;
this.launchPlayer.Text = "Launch Player";
this.launchPlayer.UseVisualStyleBackColor = true;
@@ -67,71 +68,82 @@ private void InitializeComponent()
this.manageMods.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.manageMods.Cursor = System.Windows.Forms.Cursors.Default;
this.manageMods.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.manageMods.Location = new System.Drawing.Point(16, 216);
- this.manageMods.Margin = new System.Windows.Forms.Padding(9, 5, 4, 5);
+ this.manageMods.Location = new System.Drawing.Point(11, 159);
+ this.manageMods.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
this.manageMods.Name = "manageMods";
- this.manageMods.Size = new System.Drawing.Size(213, 35);
+ this.manageMods.Size = new System.Drawing.Size(142, 23);
this.manageMods.TabIndex = 9;
this.manageMods.Text = "Open Mod Folder";
this.manageMods.UseVisualStyleBackColor = true;
this.manageMods.Click += new System.EventHandler(this.manageMods_Click);
//
- // branchSelect
- //
- this.branchSelect.AccessibleName = "Branch Selector";
- this.branchSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.branchSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.branchSelect.FormattingEnabled = true;
- this.branchSelect.Items.AddRange(new object[] {
- "roblox",
- "sitetest1.robloxlabs",
- "sitetest2.robloxlabs",
- "sitetest3.robloxlabs"});
- this.branchSelect.Location = new System.Drawing.Point(264, 196);
- this.branchSelect.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
- this.branchSelect.Name = "branchSelect";
- this.branchSelect.Size = new System.Drawing.Size(226, 28);
- this.branchSelect.TabIndex = 10;
- this.branchSelect.SelectedIndexChanged += new System.EventHandler(this.branchSelect_SelectedIndexChanged);
- //
- // branchLabel
- //
- this.branchLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.branchLabel.AutoSize = true;
- this.branchLabel.BackColor = System.Drawing.Color.Transparent;
- this.branchLabel.CausesValidation = false;
- this.branchLabel.Font = new System.Drawing.Font("Segoe UI", 9F);
- this.branchLabel.ForeColor = System.Drawing.SystemColors.ControlText;
- this.branchLabel.Location = new System.Drawing.Point(259, 166);
- this.branchLabel.Margin = new System.Windows.Forms.Padding(0);
- this.branchLabel.Name = "branchLabel";
- this.branchLabel.Size = new System.Drawing.Size(126, 25);
- this.branchLabel.TabIndex = 11;
- this.branchLabel.Text = "Player Branch: ";
- this.branchLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ // channelSelect
+ //
+ this.channelSelect.AccessibleName = "Channel Selector";
+ this.channelSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.channelSelect.FormattingEnabled = true;
+ this.channelSelect.Items.AddRange(new object[] {
+ "LIVE",
+ "zCanary"});
+ this.channelSelect.Location = new System.Drawing.Point(174, 139);
+ this.channelSelect.Name = "channelSelect";
+ this.channelSelect.Size = new System.Drawing.Size(152, 21);
+ this.channelSelect.TabIndex = 10;
+ this.channelSelect.SelectedIndexChanged += new System.EventHandler(this.channelSelect_SelectedIndexChanged);
+ this.channelSelect.KeyDown += new System.Windows.Forms.KeyEventHandler(this.channelSelect_KeyDown);
+ //
+ // channelLabel
+ //
+ this.channelLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.channelLabel.AutoSize = true;
+ this.channelLabel.BackColor = System.Drawing.Color.Transparent;
+ this.channelLabel.CausesValidation = false;
+ this.channelLabel.Font = new System.Drawing.Font("Segoe UI", 9F);
+ this.channelLabel.ForeColor = System.Drawing.SystemColors.ControlText;
+ this.channelLabel.Location = new System.Drawing.Point(171, 121);
+ this.channelLabel.Margin = new System.Windows.Forms.Padding(0);
+ this.channelLabel.Name = "channelLabel";
+ this.channelLabel.Size = new System.Drawing.Size(57, 15);
+ this.channelLabel.TabIndex = 11;
+ this.channelLabel.Text = "Channel: ";
+ this.channelLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// forceRebuild
//
this.forceRebuild.AccessibleName = "Force Client Rebuild";
this.forceRebuild.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.forceRebuild.AutoSize = true;
- this.forceRebuild.Location = new System.Drawing.Point(262, 331);
- this.forceRebuild.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.forceRebuild.Location = new System.Drawing.Point(174, 207);
+ this.forceRebuild.Margin = new System.Windows.Forms.Padding(2);
this.forceRebuild.Name = "forceRebuild";
- this.forceRebuild.Size = new System.Drawing.Size(176, 24);
+ this.forceRebuild.Size = new System.Drawing.Size(119, 17);
this.forceRebuild.TabIndex = 12;
this.forceRebuild.Text = "Force Reinstallation";
this.forceRebuild.UseVisualStyleBackColor = true;
//
+ // openFlagEditor
+ //
+ this.openFlagEditor.AccessibleName = "Open Flag Editor";
+ this.openFlagEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.openFlagEditor.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.openFlagEditor.Location = new System.Drawing.Point(11, 188);
+ this.openFlagEditor.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
+ this.openFlagEditor.Name = "openFlagEditor";
+ this.openFlagEditor.Size = new System.Drawing.Size(142, 23);
+ this.openFlagEditor.TabIndex = 15;
+ this.openFlagEditor.Text = "Edit Fast Flags";
+ this.openFlagEditor.UseVisualStyleBackColor = true;
+ this.openFlagEditor.Click += new System.EventHandler(this.editFVariables_Click);
+ //
// openPlayerDirectory
//
this.openPlayerDirectory.AccessibleName = "Just Open Player Path";
this.openPlayerDirectory.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.openPlayerDirectory.AutoSize = true;
- this.openPlayerDirectory.Location = new System.Drawing.Point(261, 359);
- this.openPlayerDirectory.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.openPlayerDirectory.Location = new System.Drawing.Point(174, 228);
+ this.openPlayerDirectory.Margin = new System.Windows.Forms.Padding(2);
this.openPlayerDirectory.Name = "openPlayerDirectory";
- this.openPlayerDirectory.Size = new System.Drawing.Size(222, 24);
+ this.openPlayerDirectory.Size = new System.Drawing.Size(151, 17);
this.openPlayerDirectory.TabIndex = 14;
this.openPlayerDirectory.Text = "Just Open Player Directory";
this.openPlayerDirectory.UseVisualStyleBackColor = true;
@@ -144,10 +156,9 @@ private void InitializeComponent()
this.targetVersionLabel.CausesValidation = false;
this.targetVersionLabel.Font = new System.Drawing.Font("Segoe UI", 9F);
this.targetVersionLabel.ForeColor = System.Drawing.SystemColors.ControlText;
- this.targetVersionLabel.Location = new System.Drawing.Point(259, 230);
- this.targetVersionLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.targetVersionLabel.Location = new System.Drawing.Point(171, 163);
this.targetVersionLabel.Name = "targetVersionLabel";
- this.targetVersionLabel.Size = new System.Drawing.Size(127, 25);
+ this.targetVersionLabel.Size = new System.Drawing.Size(84, 15);
this.targetVersionLabel.TabIndex = 17;
this.targetVersionLabel.Text = "Target Version:";
//
@@ -155,10 +166,9 @@ private void InitializeComponent()
//
this.title.AutoSize = true;
this.title.Font = new System.Drawing.Font("Segoe UI Light", 20F);
- this.title.Location = new System.Drawing.Point(204, 41);
- this.title.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.title.Location = new System.Drawing.Point(136, 27);
this.title.Name = "title";
- this.title.Size = new System.Drawing.Size(260, 108);
+ this.title.Size = new System.Drawing.Size(176, 74);
this.title.TabIndex = 20;
this.title.Text = "Roblox Player\r\nMod Manager";
this.title.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@@ -169,12 +179,12 @@ private void InitializeComponent()
this.targetVersion.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.targetVersion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.targetVersion.FormattingEnabled = true;
+ this.targetVersion.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.targetVersion.Items.AddRange(new object[] {
"(Use Latest)"});
- this.targetVersion.Location = new System.Drawing.Point(263, 256);
- this.targetVersion.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.targetVersion.Location = new System.Drawing.Point(174, 181);
this.targetVersion.Name = "targetVersion";
- this.targetVersion.Size = new System.Drawing.Size(226, 28);
+ this.targetVersion.Size = new System.Drawing.Size(152, 21);
this.targetVersion.TabIndex = 18;
this.targetVersion.SelectedIndexChanged += new System.EventHandler(this.targetVersion_SelectedIndexChanged);
//
@@ -182,93 +192,88 @@ private void InitializeComponent()
//
this.logo.BackgroundImage = global::RobloxPlayerModManager.Properties.Resources.Logo;
this.logo.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.logo.Location = new System.Drawing.Point(56, 28);
- this.logo.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.logo.Location = new System.Drawing.Point(37, 18);
+ this.logo.Margin = new System.Windows.Forms.Padding(2);
this.logo.Name = "logo";
- this.logo.Size = new System.Drawing.Size(135, 135);
+ this.logo.Size = new System.Drawing.Size(90, 88);
this.logo.TabIndex = 22;
this.logo.TabStop = false;
//
- // dontUpdate1
- //
- this.dontUpdate1.AccessibleName = "Dont Update";
- this.dontUpdate1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.dontUpdate1.AutoSize = true;
- this.dontUpdate1.Location = new System.Drawing.Point(261, 300);
- this.dontUpdate1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.dontUpdate1.Name = "dontUpdate1";
- this.dontUpdate1.Size = new System.Drawing.Size(127, 24);
- this.dontUpdate1.TabIndex = 23;
- this.dontUpdate1.Text = "Dont Update";
- this.dontUpdate1.UseVisualStyleBackColor = true;
- //
- // revertButton
- //
- this.revertButton.AccessibleName = "Open Mod Folder";
- this.revertButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.revertButton.Cursor = System.Windows.Forms.Cursors.Default;
- this.revertButton.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.revertButton.Location = new System.Drawing.Point(16, 294);
- this.revertButton.Margin = new System.Windows.Forms.Padding(9, 5, 4, 5);
- this.revertButton.Name = "revertButton";
- this.revertButton.Size = new System.Drawing.Size(216, 35);
- this.revertButton.TabIndex = 28;
- this.revertButton.Text = "Revert To Normal Roblox";
- this.revertButton.UseVisualStyleBackColor = true;
- this.revertButton.Click += new System.EventHandler(this.revertButton_Click);
+ // label1
//
- // openFlagEditor
+ this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label1.Location = new System.Drawing.Point(8, 249);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(82, 13);
+ this.label1.TabIndex = 24;
+ this.label1.Text = "Version 0.4.0";
+ this.label1.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
//
- this.openFlagEditor.AccessibleName = "Open Flag Editor";
- this.openFlagEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.openFlagEditor.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.openFlagEditor.Location = new System.Drawing.Point(16, 256);
- this.openFlagEditor.Margin = new System.Windows.Forms.Padding(9, 5, 4, 5);
- this.openFlagEditor.Name = "openFlagEditor";
- this.openFlagEditor.Size = new System.Drawing.Size(213, 35);
- this.openFlagEditor.TabIndex = 29;
- this.openFlagEditor.Text = "Edit Fast Flags";
- this.openFlagEditor.UseVisualStyleBackColor = true;
- this.openFlagEditor.Click += new System.EventHandler(this.openFlagEditor_ClickAsync);
- //
- // linkLabel1
- //
- this.linkLabel1.AutoSize = true;
- this.linkLabel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.linkLabel1.LinkColor = System.Drawing.Color.Red;
- this.linkLabel1.Location = new System.Drawing.Point(35, 350);
- this.linkLabel1.Name = "linkLabel1";
- this.linkLabel1.Size = new System.Drawing.Size(169, 25);
- this.linkLabel1.TabIndex = 30;
- this.linkLabel1.TabStop = true;
- this.linkLabel1.Text = "[Project on github]";
- this.linkLabel1.VisitedLinkColor = System.Drawing.Color.DarkRed;
- this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
+ // LaunchBetaApp
+ //
+ this.LaunchBetaApp.AccessibleName = "Just Open Player Path";
+ this.LaunchBetaApp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.LaunchBetaApp.AutoSize = true;
+ this.LaunchBetaApp.Location = new System.Drawing.Point(174, 249);
+ this.LaunchBetaApp.Margin = new System.Windows.Forms.Padding(2);
+ this.LaunchBetaApp.Name = "LaunchBetaApp";
+ this.LaunchBetaApp.Size = new System.Drawing.Size(121, 17);
+ this.LaunchBetaApp.TabIndex = 25;
+ this.LaunchBetaApp.Text = "Launch In Beta App";
+ this.LaunchBetaApp.UseVisualStyleBackColor = true;
+ //
+ // versionstate
+ //
+ this.versionstate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.versionstate.AutoSize = true;
+ this.versionstate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.versionstate.Location = new System.Drawing.Point(8, 114);
+ this.versionstate.Name = "versionstate";
+ this.versionstate.Size = new System.Drawing.Size(79, 13);
+ this.versionstate.TabIndex = 26;
+ this.versionstate.Text = "VersionState";
+ this.versionstate.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // button1
+ //
+ this.button1.AccessibleName = "Open Extra Options/Tools Window";
+ this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.button1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.button1.Location = new System.Drawing.Point(11, 217);
+ this.button1.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(142, 23);
+ this.button1.TabIndex = 27;
+ this.button1.Text = "Extra Options/Tools";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.extraButton_Click);
//
// Launcher
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Control;
- this.ClientSize = new System.Drawing.Size(502, 384);
- this.Controls.Add(this.linkLabel1);
- this.Controls.Add(this.openFlagEditor);
- this.Controls.Add(this.revertButton);
- this.Controls.Add(this.dontUpdate1);
+ this.ClientSize = new System.Drawing.Size(335, 271);
+ this.Controls.Add(this.button1);
+ this.Controls.Add(this.versionstate);
+ this.Controls.Add(this.LaunchBetaApp);
+ this.Controls.Add(this.label1);
this.Controls.Add(this.logo);
this.Controls.Add(this.title);
this.Controls.Add(this.targetVersion);
this.Controls.Add(this.targetVersionLabel);
+ this.Controls.Add(this.openFlagEditor);
this.Controls.Add(this.openPlayerDirectory);
this.Controls.Add(this.forceRebuild);
- this.Controls.Add(this.branchLabel);
- this.Controls.Add(this.branchSelect);
+ this.Controls.Add(this.channelLabel);
+ this.Controls.Add(this.channelSelect);
this.Controls.Add(this.manageMods);
this.Controls.Add(this.launchPlayer);
this.DoubleBuffered = true;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = global::RobloxPlayerModManager.Properties.Resources.Icon;
- this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.MaximizeBox = false;
this.Name = "Launcher";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
@@ -284,18 +289,19 @@ private void InitializeComponent()
private System.Windows.Forms.Button launchPlayer;
private System.Windows.Forms.Button manageMods;
- private System.Windows.Forms.ComboBox branchSelect;
- private System.Windows.Forms.Label branchLabel;
+ private System.Windows.Forms.ComboBox channelSelect;
+ private System.Windows.Forms.Label channelLabel;
private System.Windows.Forms.CheckBox forceRebuild;
+ private System.Windows.Forms.Button openFlagEditor;
private System.Windows.Forms.CheckBox openPlayerDirectory;
private System.Windows.Forms.Label targetVersionLabel;
private System.Windows.Forms.Label title;
private System.Windows.Forms.ComboBox targetVersion;
private System.Windows.Forms.PictureBox logo;
- private System.Windows.Forms.CheckBox dontUpdate1;
- private System.Windows.Forms.Button revertButton;
- private System.Windows.Forms.Button openFlagEditor;
- private System.Windows.Forms.LinkLabel linkLabel1;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.CheckBox LaunchBetaApp;
+ private System.Windows.Forms.Label versionstate;
+ private System.Windows.Forms.Button button1;
}
}
diff --git a/ProjectSrc/Forms/Launcher.cs b/ProjectSrc/Forms/Launcher.cs
index 6d08106..3ca8733 100644
--- a/ProjectSrc/Forms/Launcher.cs
+++ b/ProjectSrc/Forms/Launcher.cs
@@ -2,23 +2,44 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
+using System.Globalization;
using System.IO;
using System.Linq;
using System.Media;
using System.Net;
-using System.Threading.Tasks;
+using System.Security.Cryptography.X509Certificates;
+using System.Security.Policy;
+using System.Text.RegularExpressions;
using System.Windows.Forms;
-
-using Microsoft.Win32;
+using Microsoft.Build.Framework;
+using Newtonsoft.Json;
+using RestSharp;
using RobloxDeployHistory;
+using RobloxPlayerModManager.Forms;
namespace RobloxPlayerModManager
{
public partial class Launcher : Form
{
- private static RegistryKey versionRegistry => Program.GetSubKey("VersionData");
+ public string Version { get; private set; }
+ private static VersionManifest versionRegistry => Program.State.VersionData;
private readonly string[] args = null;
+ public Dictionary argMap = new Dictionary();
+
+ public RobloxDeployHistory.ClientVersionInfo VersionInfo;
+
+ public string gameinfo;
+ public string launchtime;
+ public string placelauncherurl;
+ public string placeId;
+ public string browsertrackerid;
+ public string robloxLocale;
+ public string gameLocale;
+ public string rchannel;
+
+
+
public Launcher(params string[] mainArgs)
{
if (mainArgs.Length > 0)
@@ -27,30 +48,46 @@ public Launcher(params string[] mainArgs)
InitializeComponent();
}
- private string getSelectedBranch()
+ private Channel getSelectedChannel()
{
- var result = branchSelect.SelectedItem;
+ var result = channelSelect.SelectedItem;
return result.ToString();
}
- private void Launcher_Load(object sender, EventArgs e)
+ private async void Launcher_Load(object sender, EventArgs e)
{
+ Enabled = false;
+ UseWaitCursor = true;
+
if (args != null)
+ {
openPlayerDirectory.Enabled = false;
+ LaunchBetaApp.Enabled = false;
+ }
+
+ var channels = await PlayerBootstrapper.FetchKnownChannels();
+
+ var setChannels = new Action(() =>
+ {
+ var items = channelSelect.Items;
+ var channel = Program.State.Channel;
+
+ items.Clear();
+ items.AddRange(channels);
- string build = Program.GetString("BuildBranch");
- int buildIndex = branchSelect.Items.IndexOf(build);
- branchSelect.SelectedIndex = Math.Max(buildIndex, 0);
+ selectChannel(channel);
+ });
+
+ Invoke(setChannels);
}
public static string getModPath()
{
- string appData = Environment.GetEnvironmentVariable("AppData");
- string root = Path.Combine(appData, "RbxModManager", "ModFiles");
+ string root = Path.Combine(Program.RootDir, "ModFiles");
if (!Directory.Exists(root))
{
- // Build a folder structure so the usage of my mod manager is more clear.
+ // Build a folder structure so the usage is more clear.
Directory.CreateDirectory(root);
string[] folderPaths = new string[]
@@ -70,7 +107,7 @@ public static string getModPath()
foreach (string f in folderPaths)
{
- string path = Path.Combine(root, f.Replace("/", "\\"));
+ string path = Path.Combine(root, f);
Directory.CreateDirectory(path);
}
}
@@ -98,8 +135,8 @@ private static Form createFlagWarningPrompt()
{
Text = "WARNING: HERE BE DRAGONS",
- Width = 700,
- Height = 400,
+ Width = 425,
+ Height = 250,
MaximizeBox = false,
MinimizeBox = false,
@@ -111,18 +148,17 @@ private static Form createFlagWarningPrompt()
var errorIcon = new PictureBox()
{
- BackgroundImage = SystemIcons.Error.ToBitmap(),
- BackgroundImageLayout = ImageLayout.Zoom,
+ Image = SystemIcons.Error.ToBitmap(),
Location = new Point(12, 12),
- Size = new Size(48, 48),
+ Size = new Size(32, 32),
};
var dontShowAgain = new CheckBox()
{
AutoSize = true,
- Location = new Point(85, 235),
+ Location = new Point(54, 145),
Text = "Do not show this warning again.",
- Font = new Font("Segoe UI", 11f),
+ Font = new Font("Microsoft Sans Serif", 9.75f),
};
var buttonPanel = new FlowLayoutPanel()
@@ -131,32 +167,31 @@ private static Form createFlagWarningPrompt()
BackColor = SystemColors.ControlLight,
Padding = new Padding(4),
Dock = DockStyle.Bottom,
- Size = new Size(0, 60)
+ Size = new Size(0, 40)
};
var infoLabel = new Label()
{
AutoSize = true,
- Font = new Font("Segoe UI", 11f),
-
+ Font = new Font("Microsoft Sans Serif", 9.75f),
Text = "Editing flags can make Roblox Player unstable, and could potentially corrupt your places and game data.\n\n" +
"You should not edit them unless you are just experimenting with new features locally, and you know what you're doing.\n\n" +
"Are you sure you would like to continue?",
- Location = new Point(80, 14),
- MaximumSize = new Size(600, 0),
+ Location = new Point(50, 14),
+ MaximumSize = new Size(350, 0),
};
var yes = new Button()
{
- Size = new Size(150, 40),
+ Size = new Size(100, 23),
Text = "Yes",
};
var no = new Button()
{
- Size = new Size(150, 40),
+ Size = new Size(100, 23),
Text = "No",
};
@@ -185,18 +220,88 @@ private static Form createFlagWarningPrompt()
return warningForm;
}
- private async void launchPlayer_Click(object sender = null, EventArgs e = null)
+ private async void editFVariables_Click(object sender, EventArgs e)
+ {
+ bool allow = true;
+
+ // Create a warning prompt if the user hasn't disabled this warning.
+ var warningDisabled = Program.State.DisableFlagWarning;
+
+ if (!warningDisabled)
+ {
+ SystemSounds.Hand.Play();
+ allow = false;
+
+ using (Form warningPrompt = createFlagWarningPrompt())
+ {
+ warningPrompt.ShowDialog();
+
+ if (warningPrompt.DialogResult == DialogResult.Yes)
+ {
+ Program.State.DisableFlagWarning = warningPrompt.Enabled;
+ allow = true;
+ }
+ }
+ }
+
+ if (allow)
+ {
+ var channel = getSelectedChannel();
+
+ Enabled = false;
+ UseWaitCursor = true;
+
+ var infoTask = PlayerBootstrapper.GetCurrentVersionInfo(channel);
+ var info = await infoTask.ConfigureAwait(true);
+
+ Hide();
+
+ var updateTask = BootstrapperForm.BringUpToDate(channel, info.VersionGuid, "Some newer flags might be missing.");
+ await updateTask.ConfigureAwait(true);
+
+ using (FlagEditor editor = new FlagEditor())
+ editor.ShowDialog();
+
+ Show();
+ BringToFront();
+
+ Enabled = true;
+ UseWaitCursor = false;
+ }
+ }
+
+ private static string GetQueryParameterValue(Uri uri, string paramName)
+ {
+ string query = uri.Query;
+ if (query.StartsWith("?", System.StringComparison.InvariantCulture))
+ {
+ query = query.Substring(1);
+ }
+
+ string[] parameters = query.Split('&');
+ foreach (string parameter in parameters)
+ {
+ string[] parts = parameter.Split('=');
+ if (parts.Length == 2 && parts[0] == paramName)
+ {
+ return parts[1];
+ }
+ }
+
+ return null;
+ }
+
+ private async void launchPlayer_Click(object sender = null, EventArgs e = null)
{
- string branch = getSelectedBranch();
+ var channel = getSelectedChannel();
var bootstrapper = new PlayerBootstrapper
{
ForceInstall = forceRebuild.Checked,
- dontUpdate = dontUpdate1.Checked,
ApplyModManagerPatches = true,
SetStartEvent = true,
- Branch = branch
+ Channel = channel
};
Hide();
@@ -206,20 +311,33 @@ private async void launchPlayer_Click(object sender = null, EventArgs e = null)
var install = installer.Bootstrap();
await install.ConfigureAwait(true);
}
-
+
string PlayerRoot = PlayerBootstrapper.GetPlayerDirectory();
string modPath = getModPath();
- string[] modFiles = Directory.GetFiles(modPath, "*.*", SearchOption.AllDirectories);
+ var modFiles = Directory.GetFiles(modPath, "*.*", SearchOption.AllDirectories);
- foreach (string modFile in modFiles)
+ foreach (string file in modFiles)
{
try
{
- byte[] fileContents = File.ReadAllBytes(modFile);
- FileInfo modFileControl = new FileInfo(modFile);
+ var info = new FileInfo(file);
+ var filePath = file;
+ var delete = false;
+
+ if (info.Length == 0 && info.Name.StartsWith("DELETE",System.StringComparison.CurrentCulture))
+ {
+ var dir = info.DirectoryName;
- string relativeFile = modFile.Replace(modPath, PlayerRoot);
+ var realName = info.Name
+ .Substring(6)
+ .TrimStart();
+
+ filePath = Path.Combine(dir, realName);
+ delete = true;
+ }
+
+ string relativeFile = filePath.Replace(modPath, PlayerRoot);
string relativeDir = Directory
.GetParent(relativeFile)
@@ -228,22 +346,37 @@ private async void launchPlayer_Click(object sender = null, EventArgs e = null)
if (!Directory.Exists(relativeDir))
Directory.CreateDirectory(relativeDir);
+ byte[] contents = info.Length > 0
+ ? File.ReadAllBytes(file)
+ : Array.Empty();
+
if (File.Exists(relativeFile))
{
- byte[] relativeContents = File.ReadAllBytes(relativeFile);
+ byte[] relative = File.ReadAllBytes(relativeFile);
- if (fileContents.SequenceEqual(relativeContents))
+ if (relative.Length == contents.Length)
+ if (relative.SequenceEqual(contents))
+ continue;
+
+ if (delete)
+ {
+ File.Delete(relativeFile);
continue;
+ }
- modFileControl.CopyTo(relativeFile, true);
- continue;
+ info.CopyTo(relativeFile, true);
}
+ else
+ {
+ if (delete)
+ continue;
- File.WriteAllBytes(relativeFile, fileContents);
+ File.WriteAllBytes(relativeFile, contents);
+ }
}
- catch (IOException)
+ catch
{
- Console.WriteLine("Failed to overwrite {0}!", modFile);
+ Console.WriteLine("Failed to overwrite {0}!", file);
}
}
@@ -253,15 +386,24 @@ private async void launchPlayer_Click(object sender = null, EventArgs e = null)
Arguments = $"-startEvent {PlayerBootstrapper.StartEvent}"
};
+ // Beta App launch arguments
+
+ if (LaunchBetaApp.Checked == true)
+ {
+ robloxPlayerInfo.Arguments = "--app";
+ }
+ else
+ {
+ robloxPlayerInfo.Arguments = "";
+ }
+
if (args != null)
{
string firstArg = args[0];
if (firstArg != null && firstArg.StartsWith("roblox-player", Program.StringFormat))
{
- // Arguments were passed by URI.
- var argMap = new Dictionary();
-
+ // Arguments were passed by URI
foreach (string commandPair in firstArg.Split('+'))
{
if (commandPair.Contains(':'))
@@ -279,8 +421,8 @@ private async void launchPlayer_Click(object sender = null, EventArgs e = null)
//else
//{
argMap.Add(key, val);
- // robloxPlayerInfo.Arguments += " -" + key + ' ' + val;
- // }
+ // robloxPlayerInfo.Arguments += " -" + key + ' ' + val;
+ //}
}
}
@@ -290,13 +432,18 @@ private async void launchPlayer_Click(object sender = null, EventArgs e = null)
if (launchMode == "play")
{
- string gameinfo = argMap["gameinfo"];
- string launchtime = argMap["launchtime"];
- string placelauncherurl = argMap["placelauncherurl"].Replace("%3A",":").Replace("%2F","/").Replace("%3F","?").Replace("%3D","=").Replace("%26","&");
- string browsertrackerid = argMap["browsertrackerid"];
- string robloxLocale = argMap["robloxLocale"];
- string gameLocale = argMap["gameLocale"];
- robloxPlayerInfo.Arguments += " --play -t " + gameinfo + " -j " + placelauncherurl + " -b " + browsertrackerid + " --launchtime " + launchtime + " --rloc " + robloxLocale + " --gloc " + gameLocale;
+
+
+ gameinfo = argMap["gameinfo"];
+ launchtime = argMap["launchtime"];
+ placelauncherurl = argMap["placelauncherurl"].Replace("%3A", ":").Replace("%2F", "/").Replace("%3F", "?").Replace("%3D", "=").Replace("%26", "&");
+ Uri uri = new Uri(placelauncherurl);
+ placeId = GetQueryParameterValue(uri, "placeId");
+ browsertrackerid = argMap["browsertrackerid"];
+ robloxLocale = argMap["robloxLocale"];
+ gameLocale = argMap["gameLocale"];
+ rchannel = argMap["channel"];
+ robloxPlayerInfo.Arguments += " --app -t " + gameinfo + " -j " + placelauncherurl + " -b " + browsertrackerid + " --launchtime " + launchtime + " --rloc " + robloxLocale + " --gloc " + gameLocale + " -channel " + rchannel;
}
}
}
@@ -322,31 +469,50 @@ private async void launchPlayer_Click(object sender = null, EventArgs e = null)
}
else
{
- string currentVersion = versionRegistry.GetString("VersionGuid");
- versionRegistry.SetValue("LastExecutedVersion", currentVersion);
+ string currentVersion = versionRegistry.VersionGuid;
+ versionRegistry.LastExecutedVersion = currentVersion;
Process.Start(robloxPlayerInfo);
}
}
- private async void branchSelect_SelectedIndexChanged(object sender, EventArgs e)
+ private async void channelSelect_SelectedIndexChanged(object sender, EventArgs e)
{
// Save the user's branch preference.
- string branch = getSelectedBranch();
- Program.SetValue("BuildBranch", branch);
+ var channel = getSelectedChannel();
+ Program.State.Channel = channel;
+ Program.SaveState();
// Grab the version currently being targetted.
- string targetId = Program.GetString("TargetVersion");
+ string targetId = Program.State.TargetVersion;
+
+ try
+ {
+ VersionInfo = await ClientVersionInfo.Get(channel, "WindowsPlayer").ConfigureAwait(true);
+ }
+ catch (Exception)
+ {
+ MessageBox.Show("Error fetching version information\n\nResetting channel to LIVE.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ channelSelect.SelectedIndex = 0;
+ channel = "LIVE";
+ Program.State.Channel = channel;
+ Program.SaveState();
+
+ VersionInfo = await ClientVersionInfo.Get(channel, "WindowsPlayer").ConfigureAwait(true);
+ }
+
+ var latest = VersionInfo.Version;
// Clear the current list of target items.
targetVersion.Items.Clear();
- targetVersion.Items.Add("(Use Latest)");
+ targetVersion.Items.Add(latest);
// Populate the items list using the deploy history.
Enabled = false;
UseWaitCursor = true;
- var getDeployLogs = PlayerDeployLogs.Get(branch);
+ var getDeployLogs = PlayerDeployLogs.Get(channel);
var deployLogs = await getDeployLogs.ConfigureAwait(true);
Enabled = true;
@@ -354,20 +520,30 @@ private async void branchSelect_SelectedIndexChanged(object sender, EventArgs e)
HashSet targets;
- //if (Environment.Is64BitOperatingSystem)
- // targets = deployLogs.CurrentLogs_x64;
- //else
- // targets = deployLogs.CurrentLogs_x86;
+ if (Environment.Is64BitOperatingSystem)
+ targets = deployLogs.CurrentLogs_x86;
+ else
+ targets = deployLogs.CurrentLogs_x86;
- targets = deployLogs.CurrentLogs_x86; // No 64-bit player yet.
- var items = targets
- .OrderByDescending(log => log.Changelist)
- .Cast