From 859b7b035bd451b78779eba60c2a10b0c3afc8cf Mon Sep 17 00:00:00 2001 From: MattNL Date: Sat, 5 Feb 2022 06:07:12 -0500 Subject: [PATCH] Added and programmed an Audio.Pck Editor --- MinecraftUSkinEditor/Forms/Form1.cs | 7126 +++++++++-------- .../addCategory.Designer.cs | 84 + .../Forms/Skins-And-Textures/addCategory.cs | 45 + .../Forms/Skins-And-Textures/addCategory.resx | 2436 ++++++ .../Skins-And-Textures/rename.Designer.cs | 83 + .../Forms/Skins-And-Textures/rename.cs | 36 + .../Forms/Skins-And-Textures/rename.resx | 2436 ++++++ .../Forms/Utilities/AudioEditor.Designer.cs | 186 + .../Forms/Utilities/AudioEditor.cs | 253 + .../Forms/Utilities/AudioEditor.resx | 386 + .../Forms/Utilities/COLEditor.Designer.cs | 528 +- .../Forms/Utilities/COLEditor.resx | 871 +- .../Forms/Utilities/LOCEditor.Designer.cs | 174 +- .../Forms/Utilities/LOCEditor.ja.resx | 6 +- .../Forms/Utilities/LOCEditor.resx | 58 +- MinecraftUSkinEditor/PckStudio.csproj | 34 +- 16 files changed, 10307 insertions(+), 4435 deletions(-) create mode 100644 MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.Designer.cs create mode 100644 MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.cs create mode 100644 MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.resx create mode 100644 MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.Designer.cs create mode 100644 MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.cs create mode 100644 MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.resx create mode 100644 MinecraftUSkinEditor/Forms/Utilities/AudioEditor.Designer.cs create mode 100644 MinecraftUSkinEditor/Forms/Utilities/AudioEditor.cs create mode 100644 MinecraftUSkinEditor/Forms/Utilities/AudioEditor.resx diff --git a/MinecraftUSkinEditor/Forms/Form1.cs b/MinecraftUSkinEditor/Forms/Form1.cs index 4fd7e702..4cf59511 100644 --- a/MinecraftUSkinEditor/Forms/Form1.cs +++ b/MinecraftUSkinEditor/Forms/Form1.cs @@ -16,3575 +16,3609 @@ using RichPresenceClient; namespace PckStudio { - public partial class FormMain : MetroFramework.Forms.MetroForm - { - #region Variables - string saveLocation;//Save location for pck file - int fileCount = 0;//variable for number of minefiles - string Version = "6.1";//template for program version - string hosturl = ""; - string basurl = ""; - string PCKFile = ""; - string PCKFileBCKUP = "x"; - loadedTexture tex = new loadedTexture(); //3DS feature variable - - - PCK.MineFile mf;//Template minefile variable - PCK currentPCK;//currently opened pck - LOC l;//Locdata - PCK.MineFile mfLoc;//LOC minefile - Dictionary types;//Template list for metadata of a individual minefiles metadata - PCK.MineFile file;//template for a selected minefile - bool needsUpdate = false; - bool saved = true; - string appData = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/PCK Studio/"; - public static bool correct = false; - bool isdebug = false; - - public class displayId - { - public string id; - public string defaultName; - } - #endregion - - #region form startup page - public FormMain() - { - - - Directory.CreateDirectory(Environment.CurrentDirectory + "\\template"); - if (!File.Exists(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck")) - File.WriteAllBytes(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck", Resources.UntitledSkinPCK); - if (!File.Exists(Environment.CurrentDirectory + "\\settings.ini")) - File.WriteAllText(Environment.CurrentDirectory + "\\settings.ini", Resources.settings); - hosturl = File.ReadAllText(Environment.CurrentDirectory + "\\settings.ini").Split(new[] { "\r\n", "\n" }, StringSplitOptions.None)[0]; - - - InitializeComponent(); - - if (Program.IsDev) - isdebug = true; - - FormBorderStyle = FormBorderStyle.None; - labelVersion.Text += Version; - pckOpen.AllowDrop = true; - } - #endregion - - #region opens and loads pck file - - - - - - private void openToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - using (var ofd = new OpenFileDialog()) - { - ofd.CheckFileExists = true; //makes sure opened pck exists - ofd.Filter = "PCK (Minecraft Console Package)|*.pck"; - - if (ofd.ShowDialog() == DialogResult.OK) - { - PCKFile = Path.GetFileName(ofd.FileName); - openPck(ofd.FileName); - } - } - } - catch (Exception err) - { - MessageBox.Show("The PCK you're trying to use currently isn't supported\n" + err.StackTrace + "\n\n" + err.Message);//Error handling for PCKs that give errors when trying to be opened - } - } - - private void openPck(string filePath) - { - new TabPage(); - treeViewMain.Nodes.Clear(); - PCK pCK = (currentPCK = new PCK(filePath)); - foreach (PCK.MineFile mineFile in pCK.mineFiles) - { - Console.WriteLine(mineFile.name); - if (!(mineFile.name == "0")) - { - continue; - } - foreach (object[] entry in mineFile.entries) - { - if (entry[0].ToString() == "LOCK") - { - if((new pckLocked(entry[1].ToString(), correct).ShowDialog() != DialogResult.OK || !correct)) - { - return; - } - } - } - } - addPasswordToolStripMenuItem.Enabled = true; - openedPCKS.SelectedTab.Text = Path.GetFileName(filePath); - saveLocation = filePath; - _ = treeViewMain; - _ = pictureBoxImagePreview; - _ = treeMeta; - _ = textBox1; - _ = label1; - _ = label2; - _ = tabDataDisplay; - ImageList imageList = new ImageList(); - imageList.ColorDepth = ColorDepth.Depth32Bit; - imageList.ImageSize = new Size(20, 20); - imageList.Images.Add(Resources.ZZFolder); - imageList.Images.Add(Resources.BINKA_ICON); - imageList.Images.Add(Resources.IMAGE_ICON); - imageList.Images.Add(Resources.LOC_ICON); - imageList.Images.Add(Resources.PCK_ICON); - imageList.Images.Add(Resources.ZUnknown); - treeViewMain.ImageList = imageList; - foreach (PCK.MineFile mineFile2 in pCK.mineFiles) - { - TreeNode treeNode = new TreeNode(); - treeNode.Text = mineFile2.name; - treeNode.Tag = mineFile2; - string text = ""; - int num = 0; - new List(); - TreeNodeCollection nodes = treeViewMain.Nodes; - do - { - text = ""; - string name = mineFile2.name; - for (int i = 0; i < name.Length; i++) - { - char c = name[i]; - bool flag = false; - if (c == '/') - { - foreach (TreeNode item in nodes) - { - if (item.Text == text) - { - nodes = nodes[item.Index].Nodes; - flag = true; - } - } - if (!flag) - { - nodes.Add(text); - nodes = nodes[nodes.Count - 1].Nodes; - } - flag = false; - text = ""; - } - else - { - text += c; - } - num++; - } - } - while (num != mineFile2.name.Length); - if (Path.GetExtension(text) == ".binka") - { - treeNode.ImageIndex = 1; - treeNode.SelectedImageIndex = 1; - } - else if (Path.GetExtension(text) == ".png") - { - treeNode.ImageIndex = 2; - treeNode.SelectedImageIndex = 2; - } - else if (Path.GetExtension(text) == ".loc") - { - treeNode.ImageIndex = 3; - treeNode.SelectedImageIndex = 3; - } - else if (Path.GetExtension(text) == ".pck") - { - treeNode.ImageIndex = 4; - treeNode.SelectedImageIndex = 4; - } - else - { - treeNode.ImageIndex = 5; - treeNode.SelectedImageIndex = 5; - } - treeNode.Text = text; - nodes.Add(treeNode); - saved = false; - } - myTablePanelStartScreen.Visible = false; - pckOpen.Visible = false; - label5.Visible = false; - labelAmount.Visible = true; - richTextBoxChangelog.Visible = false; - openedPCKS.Visible = true; - openedPCKS.AllowDrop = true; - foreach (ToolStripMenuItem dropDownItem in fileToolStripMenuItem.DropDownItems) - { - dropDownItem.Enabled = true; - } - foreach (ToolStripMenuItem dropDownItem2 in editToolStripMenuItem.DropDownItems) - { - dropDownItem2.Enabled = true; - } - foreach (TreeNode node in treeViewMain.Nodes) - { - if (node.Text == "languages.loc") - { - mfLoc = (PCK.MineFile)treeViewMain.Nodes[node.Index].Tag; - } - if (node.Text == "localisation.loc") - { - mfLoc = (PCK.MineFile)treeViewMain.Nodes[node.Index].Tag; - } - } - fileCount = 0; - foreach (PCK.MineFile mineFile3 in currentPCK.mineFiles) - { - _ = mineFile3; - fileCount++; - } - labelAmount.Text = "Files:" + fileCount; - saved = false; - LittleEndianCheckBox.Visible = true; - LittleEndianCheckBox.Checked = currentPCK.IsLittleEndian; - } - #endregion - - #region deciphers what happens when certain pck entries are selected - private void selectNode(object sender, TreeViewEventArgs e) - { - treeMeta.Enabled = true; - int pictureBoxMaxHeight = (tabPage1.Height / 2) - (tabPage1.Height / 10); - if (treeViewMain.SelectedNode.Tag != null) //"Selects" node if it has data/isn't a folder - { - fileCount = 0;//Resets file count - //Gets file count based of all existing minefiles - foreach (PCK.MineFile file in currentPCK.mineFiles) - { - fileCount += 1; - } - labelAmount.Text = "Files:" + fileCount;//Displays amount - Dictionary pckTypes = currentPCK.types; //Retrieves metadatabase - - PCK.MineFile mf = (PCK.MineFile)e.Node.Tag; //Sets current minefile being read - - types = currentPCK.types; //metadatabase - file = mf; //minefile - - treeMeta.Nodes.Clear(); //clears minefile metadata treeview - - comboBox1.Items.Clear(); //clears metacombo(entry name) - textBox1.Text = ""; //clears metatextbox(entry value) - - foreach (int type in types.Keys) - comboBox1.Items.Add(types[type]); //Adds available metadata names from metadatabase to the metacombo - - //Retrieves metadata for currently selected mineifile and displays it within metatreeview - int boxes = 0; - foreach (object[] entry in file.entries) //object = metadata entry(name:value) - { - object[] strings = (object[])entry; - TreeNode meta = new TreeNode(); - - foreach (object[] entryy in file.entries) - meta.Text = (string)strings[0]; - meta.Tag = entry; - treeMeta.Nodes.Add(meta); - - //Check for if file contains model data - if (entry[0].ToString()=="BOX") - { - boxes += 1; - buttonEdit.Text = "EDIT BOXES"; - buttonEdit.Visible = true; - } - else if (entry[0].ToString() == "ANIM") - { - Console.WriteLine(entry[1]); - Console.WriteLine((entry[1].ToString() == "0x80000").ToString() + " - " + entry[1]); - Console.WriteLine((entry[1].ToString() == "0x40000").ToString() + " - "+ entry[1]); - - - if ((entry[1].ToString() == "0x40000") || (entry[1].ToString() == "0x80000")) - { - buttonEdit.Text = "View Skin"; - boxes += 1; - buttonEdit.Visible = true; - } - } - else if(boxes == 0) - { - buttonEdit.Visible = false; - } - } - - //If selected item is a image, its displayed with proper dimensions in image box - if (Path.GetExtension(mf.name) == ".png") - { - pictureBoxImagePreview.SizeMode = PictureBoxSizeMode.StretchImage; - pictureBoxImagePreview.InterpolationMode = InterpolationMode.NearestNeighbor; - MemoryStream png = new MemoryStream(mf.data); //Gets image data from minefile data - Image skinPicture = Image.FromStream(png); //Constructs image data into image - pictureBoxImagePreview.Image = skinPicture; //Sets image preview to image - - - if (skinPicture.Size.Height == skinPicture.Size.Width / 2) - { - pictureBoxImagePreview.Size = new Size(pictureBoxMaxHeight * 2, pictureBoxMaxHeight); //Sets 64x32 ratio images to appear at largest relative size to program window size - labelImageSize.Text = skinPicture.Size.Width.ToString() + "x" + skinPicture.Size.Height.ToString(); - return; - } - else if (skinPicture.Size.Height == skinPicture.Size.Width) - { - pictureBoxImagePreview.Size = new Size(pictureBoxMaxHeight, pictureBoxMaxHeight); //SWets 64x64 ratio images to appear at largest relative size to program window size - labelImageSize.Text = skinPicture.Size.Width.ToString() + "x" + skinPicture.Size.Height.ToString(); - return; - } - else - { - //Sets images to appear at largest relative size to program window size - Size maxDisplay = new Size(tabPage1.Size.Width / 2 - 5, tabPage1.Size.Height / 2 - 5); - if (skinPicture.Size.Width > maxDisplay.Width) - { - //calculate aspect ratio - float aspect = skinPicture.Width / (float)skinPicture.Height; - int newWidth, newHeight; - - //calculate new dimensions based on aspect ratio - newWidth = (int)(maxDisplay.Height * aspect); - newHeight = (int)(newWidth / aspect); - - //if one of the two dimensions exceed the box dimensions - if (newWidth > skinPicture.Width || newHeight > skinPicture.Height) - { - //depending on which of the two exceeds the box dimensions set it as the box dimension and calculate the other one based on the aspect ratio - if (newWidth > newHeight) - { - newWidth = maxDisplay.Width; - newHeight = (int)(newWidth / aspect); - } - else - { - newHeight = maxDisplay.Height; - newWidth = (int)(newHeight * aspect); - } - } - pictureBoxImagePreview.Size = new Size(newWidth, newHeight); - } - else if (skinPicture.Size.Height > maxDisplay.Height) - { - //calculate aspect ratio - float aspect = skinPicture.Width / (float)skinPicture.Height; - int newWidth, newHeight; - - //calculate new dimensions based on aspect ratio - newWidth = (int)(maxDisplay.Width * aspect); - newHeight = (int)(newWidth / aspect); - - //if one of the two dimensions exceed the box dimensions - if (newWidth > skinPicture.Width || newHeight > skinPicture.Height) - { - //depending on which of the two exceeds the box dimensions set it as the box dimension and calculate the other one based on the aspect ratio - if (newWidth > newHeight) - { - newWidth = maxDisplay.Width; - newHeight = (int)(newWidth / aspect); - } - else - { - newHeight = maxDisplay.Height; - newWidth = (int)(newHeight * aspect); - } - } - pictureBoxImagePreview.Size = new Size(newWidth, newHeight); - } - else - { - pictureBoxImagePreview.Size = new Size(skinPicture.Size.Width, skinPicture.Size.Height); - } - labelImageSize.Text = skinPicture.Size.Width.ToString() + "x" + skinPicture.Size.Height.ToString(); - return; - } - } - else if (Path.GetExtension(mf.name) == ".loc") - { - buttonEdit.Text = "EDIT LOC"; - buttonEdit.Visible = true; - } - else - { - buttonEdit.Visible = false; - //Sets preview image to "NO IMAGE" if selected file data isn't image data - pictureBoxImagePreview.Image = (Image)Resources.NoImageFound; - pictureBoxImagePreview.Size = new Size(pictureBoxMaxHeight, pictureBoxMaxHeight); - labelImageSize.Text = ""; - } - } - else - { - //Sets preview image to "NO IMAGE" if selected file data isn't image data - pictureBoxImagePreview.Image = (Image)Resources.NoImageFound; - pictureBoxImagePreview.Size = new Size(pictureBoxMaxHeight, pictureBoxMaxHeight); - } - labelImageSize.Text = "";//Resets image size display if theres no image - } - #endregion - - #region Parses boxes and opens model generator - public void editModel(PCK.MineFile skin) - { - List otherData = new List();//Creates list for backup data to be added to - List generatedData = new List();//Creates list for model data to be added to - foreach (object[] entry in skin.entries) //object = metadata entry(name:value) - { - //parses and sorts - if (entry[0].ToString() == "BOX") - { - generatedData.Add(entry); - } - else if (entry[0].ToString() == "OFFSET") - { - generatedData.Add(entry); - } - else if (entry[0].ToString() != "BOX" && entry[0].ToString() != "OFFSET") - { - otherData.Add(entry); - } - } - skin.entries = otherData; - generateModel generate = new generateModel(generatedData, new PictureBox()); - generate.ShowDialog();//Opens Model Generator Dialog - //Adds model data - foreach (object[] entry in generatedData) //object = metadata entry(name:value) - { - skin.entries.Add(entry); - } - - treeMeta.Nodes.Clear(); //clears minefile metadata treeview - - comboBox1.Items.Clear(); //clears metacombo(entry name) - textBox1.Text = ""; //clears metatextbox(entry value) - - foreach (int type in types.Keys) - comboBox1.Items.Add(types[type]); //Adds available metadata names from metadatabase to the metacombo - - //Retrieves metadata for currently selected mineifile and displays it within metatreeview - int boxes = 0; - foreach (object[] entry in file.entries) //object = metadata entry(name:value) - { - object[] strings = (object[])entry; - TreeNode meta = new TreeNode(); - - foreach (object[] entryy in file.entries) - meta.Text = (string)strings[0]; - meta.Tag = entry; - treeMeta.Nodes.Add(meta); - } - saved = false; - } - #endregion - - #region extracts pck entry - private void extractToolStripMenuItem_Click(object sender, EventArgs e) - { - - if(treeViewMain.SelectedNode.Nodes.Count > 0) - { - MessageBox.Show("Cannot extract folders!"); - return; - } - if (treeViewMain.SelectedNode.Tag is PCK.MineFile)//Makes sure item being extracted is minefile and not folder or null item - { - SaveFileDialog exFile = new SaveFileDialog();//extract location - exFile.FileName = treeViewMain.SelectedNode.Text; - exFile.Filter = Path.GetExtension(treeViewMain.SelectedNode.Text).Replace(".", "") + " File|*" + Path.GetExtension(treeViewMain.SelectedNode.Text); - exFile.ShowDialog(); - - string appPath = exFile.FileName;//Chosen file path - string extractPath = exFile.FileName; - - if (!String.IsNullOrWhiteSpace(Path.GetDirectoryName(extractPath)))//Makes sure chosen directory isn't null or whitespace AKA makes sure its usable - { - File.WriteAllBytes(extractPath, ((PCK.MineFile)treeViewMain.SelectedNode.Tag).data);//extracts minefile data to directory - - //Generates metadata file in form of txt file if metadata for the file exists - if (treeViewMain.SelectedNode.Tag.ToString() != "") - { - try - { - string metaData = ""; - types = currentPCK.types; - file = (PCK.MineFile)treeViewMain.SelectedNode.Tag; - - var ms = new MemoryStream(File.ReadAllBytes(extractPath).ToArray()); - - MemoryStream ico = new MemoryStream(); - Bitmap bmp = new Bitmap(Image.FromFile(extractPath)); - bmp.Save(ico, System.Drawing.Imaging.ImageFormat.Png); - - foreach (object[] entry in file.entries) - { - object[] strings = (object[])entry; - metaData += (string)strings[0] + ":" + (string)strings[1] + Environment.NewLine; - } - - File.WriteAllText(extractPath + ".txt", metaData); - } - catch (Exception) - { - - } - MessageBox.Show("File Extracted");//Verification that file extraction path was successful - } - } - } - else if (treeViewMain.SelectedNode != null) - { - SaveFileDialog exFile = new SaveFileDialog();//extract location - exFile.ShowDialog(); - string appPath = exFile.FileName;//Chosen file path - - foreach (TreeNode item in treeViewMain.SelectedNode.Nodes) - { - if (item.Tag is PCK.MineFile)//Makes sure item being extracted is minefile and not folder or null item - { - string extractPath = Path.Combine(appPath, ((PCK.MineFile)item.Tag).name);//combines file path with file path & name of minefile being extracted - - if (!String.IsNullOrWhiteSpace(Path.GetDirectoryName(extractPath)))//Makes sure chosen directory isn't null or whitespace AKA makes sure its usable - { - Directory.CreateDirectory(Path.GetDirectoryName(extractPath));//Creates directory variable out of generated/chosen extract path - File.WriteAllBytes(extractPath, ((PCK.MineFile)item.Tag).data);//extracts minefile data to directory - - //Generates metadata file in form of txt file if metadata for the file exists - if (item.Tag.ToString() != "") - { - try - { - string metaData = ""; - types = currentPCK.types; - file = mf; - - var ms = new MemoryStream(File.ReadAllBytes(extractPath).ToArray()); - - MemoryStream ico = new MemoryStream(); - Bitmap bmp = new Bitmap(Image.FromFile(extractPath)); - bmp.Save(ico, System.Drawing.Imaging.ImageFormat.Png); - - foreach (object[] entry in file.entries) - { - object[] strings = (object[])entry; - metaData += (string)strings[0] + ":" + (string)strings[1] + Environment.NewLine; - } - - File.WriteAllText(extractPath + ".txt", metaData); - } - catch (Exception) - { - - } - MessageBox.Show("Path Extracted");//Verification that file extraction path was successful - } - } - } - } - } - } - #endregion - - #region saves pck - private void save(string saveType) - { - TreeView saveStructure = new TreeView();//Temporary new treeview to properly store minefiles in writable form - //structures minefile data based on wether it has parent nodes or not and with its proper minefile data - foreach (TreeNode item in treeViewMain.Nodes) - { - TreeNode add = new TreeNode(); - if (item.Parent != null) - { - string itemPath = "";//item path template - List path = new List();//directory template - GetPathToRoot(treeViewMain.SelectedNode, path);//gets all parents nodes - //generates minefile directory to properly store in minedata - foreach (TreeNode dire in path) - { - itemPath += dire.Text + "/"; - } - add.Text = itemPath + item.Text; - } - else - { - add.Text = item.Text; - } - add.Tag = item.Tag; - saveStructure.Nodes.Add(add); - add.Remove(); - } - - //Reassignes each node with its minefile data to make sure everything is synced - foreach (TreeNode item in saveStructure.Nodes) - { - currentPCK.mineFiles[item.Index] = (PCK.MineFile)item.Tag; - } - - //Syncs minefile name with nodes name - for (int i = 0; i < saveStructure.Nodes.Count; i++) - currentPCK.mineFiles[i].name = saveStructure.Nodes[i].Text; - - if (saveLocation == Application.StartupPath + @"\templates\UntitledSkinPCK.pck") - { - //writes pck data if pck is actually opened - using (var ofd = new SaveFileDialog()) - { - ofd.Filter = "PCK (Minecraft Console Package)|*.pck"; - - if (ofd.ShowDialog() == DialogResult.OK) - { - try - { - Console.WriteLine(currentPCK.IsLittleEndian.ToString() + "--"); - if (LittleEndianCheckBox.Checked) - { - byte[] oouput = currentPCK.RebuildVita(); - oouput[0] = 0x03; - File.WriteAllBytes(ofd.FileName, currentPCK.RebuildVita()); - } - else - { - byte[] oouput = currentPCK.Rebuild(); - File.WriteAllBytes(ofd.FileName, currentPCK.Rebuild()); - } - saveLocation = ofd.FileName; - openedPCKS.SelectedTab.Text = Path.GetFileName(ofd.FileName); - saved = true; - MessageBox.Show("PCK Saved!"); - PCKFile = Path.GetFileName(ofd.FileName); - } - catch (Exception) - { - MessageBox.Show("No PCK loaded"); - } - } - } - } - else if (saveType == "Save As") - { - //writes pck data if pck is actually opened - using (var ofd = new SaveFileDialog()) - { - ofd.Filter = "PCK (Minecraft Console Package)|*.pck"; - - if (ofd.ShowDialog() == DialogResult.OK) - { - try - { - Console.WriteLine(currentPCK.IsLittleEndian.ToString() + "--"); - if (LittleEndianCheckBox.Checked) - { - byte[] oouput = currentPCK.RebuildVita(); - oouput[0] = 0x03; - File.WriteAllBytes(ofd.FileName, currentPCK.RebuildVita()); - } - else - { - byte[] oouput = currentPCK.Rebuild(); - File.WriteAllBytes(ofd.FileName, currentPCK.Rebuild()); - } - saveLocation = ofd.FileName; - openedPCKS.SelectedTab.Text = Path.GetFileName(ofd.FileName); - saved = true; - MessageBox.Show("PCK Saved!"); - } - catch (Exception) - { - MessageBox.Show("No PCK loaded"); - } - } - } - } - else - { - if (MessageBox.Show("Are you sure you wanna save?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) - { - try - { - Console.WriteLine(currentPCK.IsLittleEndian.ToString() + "--"); - if (LittleEndianCheckBox.Checked) - { - byte[] oouput = currentPCK.RebuildVita(); - oouput[0] = 0x03; - File.WriteAllBytes(saveLocation, currentPCK.RebuildVita()); - } - else - { - byte[] oouput = currentPCK.Rebuild(); - File.WriteAllBytes(saveLocation, currentPCK.Rebuild()); - } - } - catch (Exception) - { - for (int i = 0; i < saveStructure.Nodes.Count; i++) - currentPCK.mineFiles[i].name = saveStructure.Nodes[i].Text; - - using (var ofd = new SaveFileDialog()) - { - ofd.Filter = "PCK (Minecraft Console Package)|*.pck"; - - if (ofd.ShowDialog() == DialogResult.OK) - { - try - { - File.WriteAllBytes(ofd.FileName, currentPCK.Rebuild()); - saved = true; - MessageBox.Show("PCK Saved!"); - } - catch (Exception) - { - MessageBox.Show("No PCK loaded"); - } - } - } - } - } - } - saveStructure.Dispose();//disposes temporarily made treeview - } - #endregion - - #region replaces pck entry with selected file - private void replaceToolStripMenuItem_Click(object sender, EventArgs e) - { - if (treeViewMain.SelectedNode.Tag is PCK.MineFile)//Makes sure file being replaced is an actual minefile or not null - { - PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag;//backups minefile data for node - using (var ofd = new OpenFileDialog()) - { - if (ofd.ShowDialog() == DialogResult.OK) - { - mf.data = File.ReadAllBytes(ofd.FileName);//overwrites minefile data with chosen files data - mf.filesize = mf.data.Length;//updates file size - } - } - } - saved = false; - } - #endregion - - #region ignore - private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) - { - //Does not work as intended. Renaming moved to save function - saved = false; - } - #endregion - - #region deletes pck entry from treeview and pck.minefiles - private void deleteFileToolStripMenuItem_Click(object sender, EventArgs e) - { - //Removes selected from current pcks minefiles list and nodes - if (treeViewMain.SelectedNode.Tag is PCK.MineFile) - { - PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; - treeViewMain.Nodes.Remove(treeViewMain.SelectedNode); - currentPCK.mineFiles.Remove(mf); - } - else - { - if (MessageBox.Show("Are you sure want to delete this folder? All contents will be deleted", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) - { - foreach (TreeNode item in treeViewMain.SelectedNode.Nodes) - { - if (item.Tag == null) - { - MessageBox.Show("Can't fully delete directory with subdirectories"); - return; - } - if (item.Tag is PCK.MineFile)//makes sure selected node is a minefile - { - //removes minefile from minefile list - PCK.MineFile mf = (PCK.MineFile)item.Tag; - currentPCK.mineFiles.Remove(mf); - //removes minefile node - item.Remove(); - } - } - treeViewMain.SelectedNode.Remove(); - } - } - saved = false; - } - #endregion - - #region renames pck entry from treeview and pck.minefiles - private void renameFileToolStripMenuItem_Click(object sender, EventArgs e) - { - PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; - string old_name = treeViewMain.SelectedNode.Text; - string new_name = Microsoft.VisualBasic.Interaction.InputBox("Please insert the new file name", "Rename File", mf.name); - - if (new_name == "") new_name = old_name; - currentPCK.mineFiles[currentPCK.mineFiles.IndexOf(mf)].name = new_name; - mf.name = new_name; - treeViewMain.SelectedNode.Text = Path.GetFileName(new_name); - } - #endregion - - #region clones pck entry from treeview and pck.minefiles - private void cloneFileToolStripMenuItem_Click(object sender, EventArgs e) - { - if (treeViewMain.SelectedNode.Tag == null) return; - - PCK.MineFile mfO = (PCK.MineFile)treeViewMain.SelectedNode.Tag; - FileInfo mfCO = new FileInfo(mfO.name); - - PCK.MineFile mf = new PCK.MineFile();//Creates new minefile template - mf.data = mfO.data;//adds file data to minefile - mf.filesize = mfO.data.Length;//gets filesize for minefile - mf.name = Path.GetDirectoryName(mfO.name).Replace("\\", "/") + "/" + Path.GetFileNameWithoutExtension(mfO.name) + "_clone" + mfCO.Extension;//sets minfile name to file name - if (treeViewMain.SelectedNode.Parent == null && mf.name.StartsWith("/")) mf.name = mf.name.Remove(0, 1); - mf.entries = mfO.entries; - mf.type = 0;//sets minefile type to default - TreeNode add = new TreeNode(Path.GetFileName(mf.name)) { Tag = mf };//creates node for minefile - - //Gets proper file icon for minefile - if (Path.GetExtension(add.Text) == ".binka") - { - add.ImageIndex = 1; - add.SelectedImageIndex = 1; - } - else if (Path.GetExtension(add.Text) == ".png") - { - add.ImageIndex = 2; - add.SelectedImageIndex = 2; - } - else if (Path.GetExtension(add.Text) == ".loc") - { - add.ImageIndex = 3; - add.SelectedImageIndex = 3; - } - else if (Path.GetExtension(add.Text) == ".pck") - { - add.ImageIndex = 4; - add.SelectedImageIndex = 4; - } - else - { - add.ImageIndex = 5; - add.SelectedImageIndex = 5; - } - - currentPCK.mineFiles.Insert(currentPCK.mineFiles.IndexOf(mfO) + 1, mf); //inserts minefile into proper list index - if (treeViewMain.SelectedNode.Parent == null) treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.Index + 1, add); //adds generated minefile node - else treeViewMain.SelectedNode.Parent.Nodes.Insert(treeViewMain.SelectedNode.Index + 1, add);//adds generated minefile node to selected folder - } - #endregion - - #region adds file to treeview and pck.minefiles - private void addFileToolStripMenuItem_Click(object sender, EventArgs e) - { - using (var ofd = new OpenFileDialog()) - { - if (ofd.ShowDialog() == DialogResult.OK) - { - PCK.MineFile mf = new PCK.MineFile();//Creates new minefile template - mf.data = File.ReadAllBytes(ofd.FileName);//adds file data to minefile - mf.filesize = mf.data.Length;//gets filesize for minefile - mf.name = Path.GetFileName(ofd.FileName);//sets minfile name to file name - mf.type = 0;//sets minefile type to default - TreeNode add = new TreeNode(mf.name) { Tag = mf };//creates node for minefile - - //Gets proper file icon for minefile - if (Path.GetExtension(add.Text) == ".binka") - { - add.ImageIndex = 1; - add.SelectedImageIndex = 1; - } - else if (Path.GetExtension(add.Text) == ".png") - { - add.ImageIndex = 2; - add.SelectedImageIndex = 2; - } - else if (Path.GetExtension(add.Text) == ".loc") - { - add.ImageIndex = 3; - add.SelectedImageIndex = 3; - } - else if (Path.GetExtension(add.Text) == ".pck") - { - add.ImageIndex = 4; - add.SelectedImageIndex = 4; - } - else - { - add.ImageIndex = 5; - add.SelectedImageIndex = 5; - } - - if (treeViewMain.SelectedNode.Tag == null)//Detects if user selected a folder to add file to - { - treeViewMain.SelectedNode.Nodes.Add(add);//adds generated minefile node to selected folder - currentPCK.mineFiles.Insert(treeViewMain.SelectedNode.Nodes.Count - 1, mf);//inserts minefile into proper list index - - string itemPath = "";//item path template - List path = new List();//directory template - GetPathToRoot(treeViewMain.SelectedNode, path);//gets all parents nodes - //generates minefile directory to properly store in minedata - foreach (TreeNode dire in path) - { - itemPath += dire.Text + "/"; - } - - currentPCK.mineFiles[treeViewMain.SelectedNode.Nodes.Count - 1].name = itemPath + treeViewMain.SelectedNode.Nodes[treeViewMain.SelectedNode.Nodes.Count - 1].Text;//updates minefile name with directory - } - else//adds minefile to root of the pck - { - currentPCK.mineFiles.Add(mf); - treeViewMain.Nodes.Add(add); - } - } - } - saved = false; - } - - - private void GetPathToRoot(TreeNode node, List path) - { - //gets all parents nodes of a file - if (node == null) return; // previous node was the root. - else - { - path.Insert(0, node); - GetPathToRoot(node.Parent, path); - } - } - #endregion - - #region starts up form to create and add a new skin - private void createSkinToolStripMenuItem_Click(object sender, EventArgs e) - { - int i = treeViewMain.Nodes.Count - 1;//Gets index of last item in treeview - int tempIDD;//sets variables for a temporary skin/cape id - - try - { - string tempID = treeViewMain.Nodes[i].Text.Remove(treeViewMain.Nodes[i].Text.Length - 4, 4);//gets id of last skin/cape in treeview if the last item is a skin or cape - - tempID = tempID.Remove(0, 8);//removes text from id - - tempIDD = int.Parse(tempID) + 1;//adds to skin/cape id index to presets the next skin/cape id - } - catch (Exception) - { - tempIDD = 00000000;//sets temporary id to 0 if an id can't be generated off the treeviews last item - } - PCK.MineFile mf = mfLoc;//Sets loc minefile - - try - { - l = new LOC(mf.data);//sets loc data - } - catch - { - //error handling for if pck doesn't have a loc file - MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - PckStudio.addnewskin add = new PckStudio.addnewskin(currentPCK, treeViewMain, tempIDD.ToString(), l);//Sets dialog data for skin creator - add.ShowDialog();//opens skin creator - mf.data = l.Rebuild();//rebuilds loc data - add.Dispose();//disposes generated skin creator data - saved = false; - } - #endregion - - #region starts up form to create and add a animated texture - private void createAnimatedTextureToolStripMenuItem_Click(object sender, EventArgs e) - { - using (var ofd = new OpenFileDialog()) - { - ofd.Filter = "PNG Files | *.png"; - ofd.Title = "Select a PNG File"; - - if (ofd.ShowDialog() == DialogResult.OK) - { - PckStudio.addAnimatedTexture add = new PckStudio.addAnimatedTexture(currentPCK, treeViewMain, ofd.FileName, Path.GetFileName(ofd.FileName).Remove(Path.GetFileName(ofd.FileName).Length - 4, 4));//presets texture generator dialog with needed data including selected picture - add.ShowDialog();//Shows dialog - add.Dispose();//Diposes generated dialog data - } - } - saved = false; - } - #endregion - - #region deciphers what happens when certain pck entries are double clicked - private void treeView1_DoubleClick(object sender, EventArgs e) - { - if (treeViewMain.SelectedNode.Tag != null) - { - mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; - - //Checks to see if selected minefile is a loc file - if (Path.GetExtension(mf.name) == ".loc") - { - if (treeViewMain.SelectedNode.Tag is PCK.MineFile) - { - LOC l; - try - { - l = new LOC(mf.data); - } - catch - { - MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, - MessageBoxIcon.Error); - return; - } - (new LOCEditor(l)).ShowDialog();//Opens LOC Editor - mf.data = l.Rebuild();//Rebuilds loc file with locdata in grid view after closing dialog - } - } - - //Checks to see if selected minefile is a col file - if (Path.GetExtension(mf.name) == ".col") - { - //MessageBox.Show(".COL Editor Coming Soon!"); - - if (treeViewMain.SelectedNode.Tag is PCK.MineFile) - { - try - { - PckStudio.Forms.Utilities.COLEditor diag = new PckStudio.Forms.Utilities.COLEditor(mf.data, mf); - diag.Show(); - } - catch - { - MessageBox.Show("No Color data found.", "Error", MessageBoxButtons.OK, - MessageBoxIcon.Error); - return; - } - //mf.data = l.Rebuild();//Rebuilds loc file with locdata in grid view after closing dialog - } - } - - //Checks to see if selected minefile is a binka file - System.Threading.ThreadStart starter; - - System.Threading.Thread binkam; - if (Path.GetExtension(mf.name) == ".binka") - { - MessageBox.Show(".binka Editor Coming Soon!"); - } - - } - } - #endregion - - #region updates combo and text boxes for metadata when a metadata entry is selected - private void treeMeta_AfterSelect(object sender, TreeViewEventArgs e) - { - comboBox1.Items.Clear();//Resets metadata combobox of selectable entry names - object[] strings = (object[])e.Node.Tag; - foreach (int type in types.Keys) - comboBox1.Items.Add(types[type]);//fills combobox with metadata from the main metadatabase - comboBox1.Text = (string)strings[0];//Sets currently selected metadata type to type selected in selected metadata node - textBox1.Text = (string)strings[1];//Sets currently selected metadata value to value selected in selected metadata node - } - #endregion - - #region updates metadata when combo option is selected - private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) - { - if (treeMeta.SelectedNode != null) - { - //Sets metadata type to new chosen one - object[] strings = (object[])treeMeta.SelectedNode.Tag; - strings[0] = comboBox1.Text; - } - saved = false; - } - #endregion - - #region updates metadata value when text box value changes - private void textBox1_TextChanged(object sender, EventArgs e) - { - if (treeMeta.SelectedNode != null) - { - //sets metadata value to new value - object[] strings = (object[])treeMeta.SelectedNode.Tag; - strings[1] = textBox1.Text; - } - saved = false; - } - #endregion - - #region deletes metadata entry - private void deleteEntryToolStripMenuItem_Click(object sender, EventArgs e) - { - if (treeMeta.SelectedNode != null)//Makes sure selected node is a minefile - { - object[] temp = (object[])treeMeta.SelectedNode.Tag; - file.entries.Remove(temp);//removes minefile from minefile list - treeMeta.Nodes.Remove(treeMeta.SelectedNode);//removes minefile node - - treeMeta.Nodes.Clear();//Resets metadata treeview - } - saved = false; - } - #endregion - - #region adds metadata entry - private void addEntryToolStripMenuItem_Click_1(object sender, EventArgs e) - { - mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag;//Sets minefile to selected node - PckStudio.addMeta add = new PckStudio.addMeta(mf, currentPCK);//sets metadata adding dialog - add.ShowDialog();//displays metadata adding dialog - add.Dispose();//diposes generated metadata adding dialog data - - //Sets up combobox for metadata entries from main metadatabase - treeMeta.Nodes.Clear(); - foreach (int type in types.Keys) - comboBox1.Items.Add(types[type]); - - //loads all of selected minefiles metadata into metadata treeview - foreach (object[] entry in file.entries) - { - object[] strings = (object[])entry; TreeNode meta = new TreeNode(); - - foreach (object[] entryy in file.entries) - meta.Text = (string)strings[0]; - meta.Tag = entry; - treeMeta.Nodes.Add(meta); - } - saved = false; - } - #endregion - - #region moves node up and arranges minefile indexes - private void moveUpToolStripMenuItem_Click(object sender, EventArgs e) - { - if (treeViewMain.SelectedNode != null)//makes sure selected node is a minefile - { - if (treeViewMain.SelectedNode.Tag != null) - { - if (treeViewMain.SelectedNode.Index - 1 >= 0)//Makes sure selected node isn't already at the top - { - //rearranges nodes minefile data indexes in minefiles list - currentPCK.mineFiles[treeViewMain.SelectedNode.Index - 1] = (PCK.MineFile)treeViewMain.SelectedNode.Tag; - currentPCK.mineFiles[treeViewMain.SelectedNode.Index] = (PCK.MineFile)treeViewMain.Nodes[treeViewMain.SelectedNode.Index - 1].Tag; - //switches selected node with node above it - TreeNode move = (TreeNode)treeViewMain.SelectedNode.Clone(); - treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.Index - 1, move); - //removes node because a clone was inserted into its new index - treeViewMain.SelectedNode.Remove(); - } - } - } - saved = false; - } - #endregion - - #region moves node down and arranges minefile indexes - private void moveDownToolStripMenuItem_Click(object sender, EventArgs e) - { - if (treeViewMain.SelectedNode != null)//makes sure selected node is a minefile - { - if (treeViewMain.SelectedNode.Tag != null) - { - if (treeViewMain.Nodes[treeViewMain.SelectedNode.Index + 1] != null)//Makes sure selected node isn't already at the bottom - { - //rearranges nodes minefile data indexes in minefiles list - currentPCK.mineFiles[treeViewMain.SelectedNode.Index + 1] = (PCK.MineFile)treeViewMain.SelectedNode.Tag; - currentPCK.mineFiles[treeViewMain.SelectedNode.Index] = (PCK.MineFile)treeViewMain.Nodes[treeViewMain.SelectedNode.Index + 1].Tag; - //switches selected node with node below it - TreeNode move = (TreeNode)treeViewMain.SelectedNode.Clone(); - treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.Index + 2, move); - //removes node because a clone was inserted into its new index - treeViewMain.SelectedNode.Remove(); - } - } - } - saved = false; - } - #endregion - - #region Loads all pck metadata into a main metadatabase and opens manageable dialog for it - private void metaToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - PckStudio.meta edit = new PckStudio.meta(currentPCK); - edit.TopMost = true; - edit.TopLevel = true; - edit.Show(); - } - catch (Exception) - { - MessageBox.Show("No PCK Data Loaded"); - } - saved = false; - } - #endregion - - #region opens presets - private void addPresetToolStripMenuItem1_Click(object sender, EventArgs e) - { - mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag;//Sets selected minefile from node - PckStudio.presetMeta add = new PckStudio.presetMeta(mf, currentPCK);//sets data for preset adding dialog - add.ShowDialog();//displays preset adding dialog - add.Dispose();//disposes generated preset adding data - - //reloads treemeta data - treeMeta.Nodes.Clear(); - foreach (int type in types.Keys) - comboBox1.Items.Add(types[type]); - - foreach (object[] entry in file.entries) - { - object[] strings = (object[])entry; - TreeNode meta = new TreeNode(); - - foreach (object[] entryy in file.entries) - meta.Text = (string)strings[0]; - meta.Tag = entry; - treeMeta.Nodes.Add(meta); - } - saved = false; - } - #endregion - - #region loads empty pck template - private void skinPackToolStripMenuItem_Click(object sender, EventArgs e) - { - //Loads skin pack template - PCKFile = Path.GetFileName(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck"); - openPck(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck"); - saveLocation = ""; - saved = false; - } - #endregion - - #region open advanced metadata bulk editing window - private void advancedMetaAddingToolStripMenuItem_Click(object sender, EventArgs e) - { - if (openedPCKS.Visible == true) - { - //opens dialog for bulk minefile editing - PckStudio.AdvancedOptions advanced = new PckStudio.AdvancedOptions(currentPCK); - advanced.ShowDialog(); - advanced.Dispose(); - saved = false; - } - else if (openedPCKS.Visible == false) - { - MessageBox.Show("Open PCK file first!"); - } - } - #endregion - - #region closes tool - private void buttonShutdown_Click(object sender, EventArgs e) - { - this.Close();//closes PCK Studio - } - #endregion - - #region open program info/credits window - private void programInfoToolStripMenuItem_Click(object sender, EventArgs e) - { - //open program info dialog - PckStudio.programInfo info = new PckStudio.programInfo(); - info.ShowDialog(); - info.Dispose(); - } - #endregion - - #region checks for updates - private void Form1_Load(object sender, EventArgs e) - { - try - { - RPC.SetRPC("825875166574673940", "Sitting alone", "Program by PhoenixARC", "pcklgo", "PCK Studio", "pcklgo"); - timer1.Start(); - timer1.Enabled = true; - } - catch - { - Console.WriteLine("ERROR WITH RPC"); - } - try - { - label1.Theme = this.Theme; - labelVersion.Theme = this.Theme; - label2.Theme = this.Theme; - label3.Theme = this.Theme; - labelImageSize.Theme = this.Theme; - labelAmount.Theme = this.Theme; - labelEntryType.Theme = this.Theme; - labelEntryData.Theme = this.Theme; - DBGLabel.Theme = this.Theme; - label4.Theme = this.Theme; - label6.Theme = this.Theme; - label7.Theme = this.Theme; - label8.Theme = this.Theme; - label9.Theme = this.Theme; - label10.Theme = this.Theme; - label11.Theme = this.Theme; - ChangeURL.Theme = this.Theme; - label5.Theme = this.Theme; - openedPCKS.Theme = this.Theme; - tabPage1.Theme = this.Theme; - metroTabControl1.Theme = this.Theme; - metroTabPage1.Theme = this.Theme; - LittleEndianCheckBox.Theme = this.Theme; - - new WebClient().DownloadString(Program.baseurl + ChangeURL.Text); - basurl = Program.baseurl; - Console.WriteLine(basurl + ChangeURL.Text); - } - catch - { - try - { - new WebClient().DownloadString(Program.backurl + ChangeURL.Text); - basurl = Program.backurl; - Console.WriteLine(basurl + ChangeURL.Text); - } - catch - { - try - { - new WebClient().DownloadString("https://google.com"); - MessageBox.Show("PCK Studio Service is offline, the domain may have changed.\nOpening website"); - Process.Start("https://phoenixarc.github.io/pckstudio.tk/"); - } - catch - { - MessageBox.Show("Could not connect to service, internet may be offline"); - } - } - } - - - Directory.CreateDirectory(Environment.CurrentDirectory + "\\template"); - if (!File.Exists(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck")) - File.WriteAllBytes(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck", Resources.UntitledSkinPCK); - - - if (isdebug) - DBGLabel.Visible = true; - //runs creator spotlight once per day - //if (!File.Exists(appData + "date.txt")) - //{ - // File.WriteAllText(appData + "date.txt", DateTime.Now.ToString("MM/dd/yyyy")); - // creatorSpotlight shoutout = new creatorSpotlight(); - // shoutout.ShowDialog(); - //} - //else if (DateTime.Now.ToString("MM/dd/yyyy") != File.ReadAllText(appData + "date.txt")) - //{ - // creatorSpotlight shoutout = new creatorSpotlight(); - // File.WriteAllText(appData + "date.txt", DateTime.Now.ToString("MM/dd/yyyy")); - // shoutout.ShowDialog(); - //} - - - //Promo shoutout = new Promo(); - //shoutout.ShowDialog(); - - - //Makes sure appdata exists - if (!Directory.Exists(appData)) - { - Directory.CreateDirectory(appData); - } - - if (!Directory.Exists(Environment.CurrentDirectory + "\\cache\\mods\\")) - { - Directory.CreateDirectory(Environment.CurrentDirectory + "\\cache\\mods\\"); - } - - - //Checks to see if program version file exists, and creates one if it doesn't - //Latest changelog on program start-up - try - { - using (WebClient client = new WebClient()) - { - if(isdebug) - File.WriteAllText(appData + "pckStudioChangelog.txt", File.ReadAllText("C:\\WEBSITES\\PCKStudio\\studio\\PCK\\api\\" + ChangeURL.Text)); - else - File.WriteAllText(appData + "pckStudioChangelog.txt", client.DownloadString(basurl + ChangeURL.Text)); - richTextBoxChangelog.Text = File.ReadAllText(appData + "pckStudioChangelog.txt"); - } - } - catch - { - MessageBox.Show("Could not load changelog"); - } - - if (!File.Exists(Application.StartupPath + @"\ver.txt")) - { - File.WriteAllText(Application.StartupPath + @"\ver.txt", Version); - } - try - { - if (float.Parse(new WebClient().DownloadString(basurl + "updatePCKStudio.txt").Replace("\n", "")) > float.Parse(Version)) - { - Console.WriteLine(new WebClient().DownloadString(basurl + "updatePCKStudio.txt").Replace("\n", "") + " != " + Version); - if (MessageBox.Show("Update avaliable!\ndo you want to update?", "UPDATE", MessageBoxButtons.YesNo) == DialogResult.Yes) - Process.Start(Environment.CurrentDirectory + "\\nobleUpdater.exe"); - else - uPDATEToolStripMenuItem1.Visible = true; - } - else - { - uPDATEToolStripMenuItem1.Visible = false; - } - } - catch - { - MessageBox.Show("Could not load Version Information"); - } - } - #endregion - - #region deletes pck entires through the del key - private void treeViewMain_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyData == Keys.Delete)//checks to make sure pressed key was del - { - if (treeViewMain.SelectedNode.Tag is PCK.MineFile)//makes sure selected node is a minefile - { - //removes minefile from minefile list - PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; - currentPCK.mineFiles.Remove(mf); - //removes minefile node - treeViewMain.Nodes.Remove(treeViewMain.SelectedNode); - } - else - { - if (MessageBox.Show("Are you sure want to delete this folder? All contents will be deleted", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) - { - foreach (TreeNode item in treeViewMain.SelectedNode.Nodes) - { - if (item.Tag == null) - { - MessageBox.Show("Can't fully delete directory with subdirectories"); - return; - } - if (item.Tag is PCK.MineFile)//makes sure selected node is a minefile - { - //removes minefile from minefile list - PCK.MineFile mf = (PCK.MineFile)item.Tag; - currentPCK.mineFiles.Remove(mf); - //removes minefile node - item.Remove(); - } - } - treeViewMain.SelectedNode.Remove(); - } - } - } - saved = false; - } - #endregion - - #region extracts a selected pck without opening the pck - private void extractToolStripMenuItem1_Click(object sender, EventArgs e) - { - try - { - //Extracts a chosen pck file to a chosen destincation - OpenFileDialog ofd = new OpenFileDialog(); - FolderBrowserDialog sfd = new FolderBrowserDialog(); - ofd.CheckFileExists = true; - ofd.Filter = "PCK (Minecraft Wii U Package)|*.pck"; - - if (ofd.ShowDialog() == DialogResult.OK) - { - if (sfd.ShowDialog() == DialogResult.OK) - { - foreach (PCK.MineFile mf in new PCK(ofd.FileName).mineFiles) - { - foreach (object[] entry in mf.entries) - { - if (entry[0].ToString() == "LOCK") // Check for lock on PCK File - { - if ((new pckLocked(entry[1].ToString(), correct).ShowDialog() != DialogResult.OK || !correct)) - { - return; // cancel extraction if password not provided - } - } - } - System.IO.FileInfo file = new System.IO.FileInfo(sfd.SelectedPath + @"\" + mf.name); - file.Directory.Create(); // If the directory already exists, this method does nothing. - File.WriteAllBytes(sfd.SelectedPath + @"\" + mf.name, mf.data); //writes minefile to file - //attempts to generate reimportable metadata file out of minefiles metadata - string metaData = ""; - - foreach (object[] entry in mf.entries) - { - object[] strings = (object[])entry; - metaData += (string)strings[0] + ":" + (string)strings[1] + Environment.NewLine; - } - - File.WriteAllText(sfd.SelectedPath + @"\" + mf.name + ".txt", metaData); - } - } - } - } catch (Exception) - { - MessageBox.Show("Unsupported PCK"); - } - } - #endregion - - #region deletes metadata entries through the del key - private void treeMeta_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyData == Keys.Delete)//makes sure pressed key was del - { - if (treeMeta.SelectedNode != null)//makes sure selected node is a minefile - { - //removes selected treemeta entry - object[] temp = (object[])treeMeta.SelectedNode.Tag; - file.entries.Remove(temp); - treeMeta.Nodes.Remove(treeMeta.SelectedNode); - - //reloads treemeta data - treeMeta.Nodes.Clear(); - foreach (int type in types.Keys) - comboBox1.Items.Add(types[type]); - - foreach (object[] entry in file.entries) - { - object[] strings = (object[])entry; - TreeNode meta = new TreeNode(); - - foreach (object[] entryy in file.entries) - meta.Text = (string)strings[0]; - meta.Tag = entry; - treeMeta.Nodes.Add(meta); - } - } - } - saved = false; - } - #endregion - - #region imports a folder of skins to pck - private void importExtractedSkinsFolder(object sender, EventArgs e) - { - FolderBrowserDialog contents = new FolderBrowserDialog();//Creates folder browser instance - - if (contents.ShowDialog() == DialogResult.OK) - { - //checks to make sure selected path exist - if (!Directory.Exists(contents.SelectedPath)) - { - MessageBox.Show("Directory Lost"); - return; - } - - string filepath = contents.SelectedPath;//sets filepath to selected path - DirectoryInfo d = new DirectoryInfo(contents.SelectedPath);//sets directory info - - bool mashupStructure = false;//creates variable to indicate wether current pck skin structure is mashup or regular skin - int skinsFolder = 0;//temporary index for skins folder for if structure is mashup - - //checks to see if pck contains a skins folder - foreach (TreeNode item in treeViewMain.Nodes) - { - if (item.Text == "Skins") - { - mashupStructure = true;//sets mashup structure to true - skinsFolder = item.Index;//keeps note of skins folder index - } - } - - //gets all png files in selected path - foreach (var file in d.GetFiles("*.png")) - { - PCK.MineFile mfNew = new PCK.MineFile();//new minefile template - ListViewItem Import = new ListViewItem();//listviewitem to store temporary data - Import.Text = file.Name.Remove(file.Name.Length - 4, 4);//gets file name without extension - mfNew.data = File.ReadAllBytes(contents.SelectedPath + @"\" + file.Name.Remove(file.Name.Length - 4, 4) + ".png");//sets minefile data to image data of current skin - - TreeNode skin = new TreeNode();//create template treenode for minefile - - currentPCK.mineFiles.Add(mfNew);//adds new minefile to minefile list for skin - mfNew.filesize = mfNew.data.Length;//gets filesize of the skin image - - //Sets minefile directory based on pcks structure/type - if (mashupStructure == true) - { - mfNew.name = "Skins/" + Import.Text + ".png"; - } - else - { - mfNew.name = Import.Text + ".png"; - } - - //sets minefile type based on wether cape or skin - if (Import.Text.Remove(7, Import.Text.Length - 7) == "dlccape") - { - mfNew.type = 1; - } - else if (Import.Text.Remove(7, Import.Text.Length - 7) == "DLCCAPE") - { - mfNew.type = 1; - } - else - { - mfNew.type = 0; - } - skin.Text = Import.Text + ".png";//adds file extension to minefile - skin.Tag = mfNew;//sets nodes minefile data - - //presest variables for minefile skin data about to be imported - string entryName = ""; - string entryValue = ""; - string locNameId = ""; - string locName = ""; - string locThemeId = ""; - string locTheme = ""; - bool entryStart = true;//assistant for parcing through metadata file data to import - int i = 0; - - foreach (char entry in File.ReadAllText(contents.SelectedPath + @"\" + Import.Text + ".png.txt").ToList()) - { - //imports current skins metadata from metadata file - if (entry.ToString() != ":" && entry.ToString() != "\n" && entryStart == true) - { - entryName += entry.ToString(); - } - else if (entry.ToString() != ":" && entry.ToString() != "\n" && entryStart == false) - { - entryValue += entry.ToString(); - } - else if (entry.ToString() == ":" && entryStart == true) - { - entryStart = false; - } - else - { - //adds minefiles metadata and presets loc data for minefile - object[] ENTRY = { entryName, entryValue }; - mfNew.entries.Add(ENTRY); - - if (entryName == "DISPLAYNAMEID") - { - locNameId = entryValue; - } - - if (entryName == "DISPLAYNAME") - { - locName = entryValue; - } - - if (entryName == "THEMENAMEID") - { - locThemeId = entryValue; - } - - if (entryName == "THEMENAME") - { - locTheme = entryValue; - } - - //creates displayname id in loc file - if (locNameId != "" && locName != "") - { - LOC l; - - try - { - l = new LOC(mfLoc.data); - } - catch - { - MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - - displayId dis = new displayId(); - dis.id = locNameId; - dis.defaultName = locName; - - l.ids.names.Add(dis.id); - - foreach (LOC.Language lo in l.langs) - lo.names.Add(dis.defaultName); - mfLoc.data = l.Rebuild(); - locNameId = ""; - locName = ""; - } - - //creates metadata id in loc file - if (locThemeId != "" && locTheme != "") - { - LOC l; - - try - { - l = new LOC(mfLoc.data); - } - catch - { - MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - - displayId b = new displayId(); - b.id = locThemeId; - b.defaultName = locTheme; - - l.ids.names.Add(b.id); - - foreach (LOC.Language lo in l.langs) - lo.names.Add(b.defaultName); - - mfLoc.data = l.Rebuild(); - locThemeId = ""; - locTheme = ""; - } - entryName = ""; - entryValue = ""; - entryStart = true; - } - } - //sets file icon - skin.ImageIndex = 2; - skin.SelectedImageIndex = 2; - //Adds new minefile node to a destination based on pcks skin structure type - if (mashupStructure == true) - { - treeViewMain.Nodes[skinsFolder].Nodes.Add(skin); - } - else - { - treeViewMain.Nodes.Add(skin); - } - } - } - contents.Dispose();//disposes temporary data - saved = false; - } - #endregion - - #region imports individual skin to pck - private void importSkin(object sender, EventArgs e) - { - OpenFileDialog contents = new OpenFileDialog(); - contents.Title = "Select Extracted Skin Data File"; - contents.Filter = "Text Files (*.txt)|*.txt"; - - if (contents.ShowDialog() == DialogResult.OK) - { - try - { - string skinNameImport = System.IO.Path.GetFileName(contents.FileName);//Gets skin name - PCK.MineFile mfNew = new PCK.MineFile();//new minefile template - ListViewItem Import = new ListViewItem();//listviewitem to store temporary data - Import.Text = skinNameImport.Remove(skinNameImport.Length - 4, 4);//gets file name without extension - mfNew.data = File.ReadAllBytes(contents.FileName.Remove(contents.FileName.Length - 4, 4));//sets minefile data to image data of current skin - - bool mashupStructure = false;//creates variable to indicate wether current pck skin structure is mashup or regular skin - int skinsFolder = 0;//temporary index for skins folder for if structure is mashup - - //checks to see if pck contains a skins folder - foreach (TreeNode item in treeViewMain.Nodes) - { - if (item.Text == "Skins") - { - mashupStructure = true; - skinsFolder = item.Index; - } - } - - TreeNode skin = new TreeNode();//create template treenode for minefile - - currentPCK.mineFiles.Add(mfNew);//Adds minefile to minefile list - mfNew.filesize = mfNew.data.Length;//gets and sets minefile filesize - if (mashupStructure == true) - { - mfNew.name = "Skins/" + Import.Text; - } - else - { - mfNew.name = Import.Text; - } - mfNew.type = 0;//sets file type to default - - skin.Text = Import.Text;//sets nodes minefile name - skin.Tag = mfNew;//sets nodes minefile data - - //presest variables for minefile skin data about to be imported - string entryName = ""; - string entryValue = ""; - string locNameId = ""; - string locName = ""; - string locThemeId = ""; - string locTheme = ""; - bool entryStart = true;//assistant for parcing through metadata file data to import - int i = 0; - - foreach (char entry in File.ReadAllText(contents.FileName).ToList()) - { - //imports current skins metadata from metadata file - if (entry.ToString() != ":" && entry.ToString() != "\n" && entryStart == true) - { - entryName += entry.ToString(); - } - else if (entry.ToString() != ":" && entry.ToString() != "\n" && entryStart == false) - { - entryValue += entry.ToString(); - } - else if (entry.ToString() == ":" && entryStart == true) - { - entryStart = false; - } - else - { - //adds minefiles metadata and presets loc data for minefile - object[] ENTRY = { entryName, entryValue }; - mfNew.entries.Add(ENTRY); - - if (entryName == "DISPLAYNAMEID") - { - locNameId = entryValue; - } - - if (entryName == "DISPLAYNAME") - { - locName = entryValue; - } - - if (entryName == "THEMENAMEID") - { - locThemeId = entryValue; - } - - if (entryName == "THEMENAME") - { - locTheme = entryValue; - } - - //creates displayname id in loc file - if (locNameId != "" && locName != "") - { - LOC l; - - try - { - l = new LOC(mfLoc.data); - } - catch - { - MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - - displayId dis = new displayId(); - dis.id = locNameId; - dis.defaultName = locName; - - l.ids.names.Add(dis.id); - - foreach (LOC.Language lo in l.langs) - lo.names.Add(dis.defaultName); - mfLoc.data = l.Rebuild(); - locNameId = ""; - locName = ""; - } - - //creates metadata id in loc file - if (locThemeId != "" && locTheme != "") - { - LOC l; - - try - { - l = new LOC(mfLoc.data); - } - catch - { - MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - - displayId b = new displayId(); - b.id = locThemeId; - b.defaultName = locTheme; - - l.ids.names.Add(b.id); - - foreach (LOC.Language lo in l.langs) - lo.names.Add(b.defaultName); - - mfLoc.data = l.Rebuild(); - locThemeId = ""; - locTheme = ""; - } - entryName = ""; - entryValue = ""; - entryStart = true; - } - } - //sets file icon - skin.ImageIndex = 2; - skin.SelectedImageIndex = 2; - //Adds new minefile node to a destination based on pcks skin structure type - if (mashupStructure == true) - { - treeViewMain.Nodes[skinsFolder].Nodes.Add(skin); - } - else - { - treeViewMain.Nodes.Add(skin); - } - } catch (Exception) - { - MessageBox.Show("Something went wrong");//error handling - } - } - contents.Dispose();//disposes temporary data - saved = false; - } - #endregion - - #region adds folder/directory entry to pck - private void folderToolStripMenuItem_Click(object sender, EventArgs e) - { - TreeNode NEW = new TreeNode(); - NEW.ImageIndex = 0; - NEW.SelectedImageIndex = 0; - NEW.Text = "New Folder"; - if (treeViewMain.SelectedNode.Tag == null) - { - treeViewMain.SelectedNode.Nodes.Add(NEW); - } - else - { - treeViewMain.Nodes.Add(NEW); - } - saved = false; - } - #endregion - - #region opens pck installation page - private void installationToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start(hosturl + "pckStudio#install"); - } - #endregion - - #region opens pck binka tutorial video - private void binkaConversionToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=v6EYr4zc7rI"); - } - #endregion - - #region opens pck donation page - private void donateToolStripMenuItem_Click(object sender, EventArgs e) - { - } - #endregion - - #region opens pck faq page - private void fAQToolStripMenuItem1_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start(hosturl + "pckStudio#faq"); - } - #endregion - - #region items class for use in bedrock skin conversion - public class Item - { - public string Id { get; set; } - public string Name { get; set; } - } - #endregion - - #region converts and ports all skins in pck to mc bedrock format - private void convertToBedrockToolStripMenuItem_Click(object sender, EventArgs e) - { - if (openedPCKS.Visible == true && MessageBox.Show("Convert " + openedPCKS.SelectedTab.Text + " to a Bedrock Edition format?", "Convert", MessageBoxButtons.YesNo, MessageBoxIcon.None) == DialogResult.Yes) - { - try - { - bool latest = true; - - string packName = openedPCKS.SelectedTab.Text.Remove(openedPCKS.SelectedTab.Text.Count() - 4, 4);//Determines skin packs name off of pck file name - - //Lets user choose were to put generated pack - SaveFileDialog convert = new SaveFileDialog(); - convert.Filter = "PCK (Minecarft Bedrock DLC)|*.mcpack"; - convert.FileName = packName; - - if (convert.ShowDialog() == DialogResult.OK) - { - //creates directory for conversion - string root = Path.GetDirectoryName(convert.FileName) + "\\" + packName; - string rootFinal = Path.GetDirectoryName(convert.FileName) + "\\"; - - //creates pack uuid off of the last skin id detected - string uuid = "99999999";//default - - //creates list of skin display names - List skinDisplayNames = new List(); - - //MessageBox.Show(root);//debug thingy to make sure filepath is correct - - //add all skins to a list - List skinsList = new List(); - List capesList = new List(); - foreach (PCK.MineFile skin in currentPCK.mineFiles) - { - if (skin.name.Count() == 19) - { - if (skin.name.Remove(7, skin.name.Count() - 7) == "dlcskin") - { - skinsList.Add(skin); - uuid = skin.name.Remove(12, 7); - uuid = uuid.Remove(0, 7); - uuid = "abcdefa" + uuid; - } - if (skin.name.Remove(7, skin.name.Count() - 7) == "dlccape") - { - capesList.Add(skin); - } - } - } - - if (skinsList.Count() == 0) - { - MessageBox.Show("No skins were found"); - return; - } - - Directory.CreateDirectory(root);//Creates directory for skin pack - Directory.CreateDirectory(root + "/texts");//create directory for skin pack text files - - //create skins json file - using (StreamWriter writeSkins = new StreamWriter(root + "/skins.json")) - { - writeSkins.WriteLine("{"); - writeSkins.WriteLine(" \"skins\": ["); - - int skinAmount = 0; - foreach (PCK.MineFile newSkin in skinsList) - { - skinAmount += 1; - string skinName = "skinName"; - string capePath = ""; - bool hasCape = false; - - foreach (Object[] entry in newSkin.entries) - { - if (entry[0].ToString() == "DISPLAYNAME") - { - skinName = entry[1].ToString(); - skinDisplayNames.Add(new Item() { Id = newSkin.name.Remove(15, 4), Name = entry[1].ToString() }); - } - if (entry[0].ToString() == "CAPEPATH") - { - hasCape = true; - capePath = entry[1].ToString(); - } - } - - writeSkins.WriteLine(" {"); - writeSkins.WriteLine(" \"localization_name\": " + "\"" + newSkin.name.Remove(15, 4) + "\","); - - MemoryStream png = new MemoryStream(newSkin.data); //Gets image data from minefile data - Image skinPicture = Image.FromStream(png); //Constructs image data into image - if (skinPicture.Height == skinPicture.Width) - { - writeSkins.WriteLine(" \"geometry\": \"geometry." + packName + "." + newSkin.name.Remove(15, 4) + "\","); - } - writeSkins.WriteLine(" \"texture\": " + "\"" + newSkin.name + "\","); - if (hasCape == true) - { - writeSkins.WriteLine(" \"cape\":" + "\"" + capePath + "\","); - } - writeSkins.WriteLine(" \"type\": \"free\""); - if (skinAmount != skinsList.Count) - { - writeSkins.WriteLine(" },"); - } - else - { - writeSkins.WriteLine(" }"); - } - } - - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"serialize_name\": \"" + packName + "\","); - writeSkins.WriteLine(" \"localization_name\": \"" + packName + "\""); - writeSkins.WriteLine("}"); - } - - //Create geometry file - using (StreamWriter writeSkins = new StreamWriter(root + "/geometry.json")) - { - writeSkins.WriteLine("{"); - int newSkinCount = 0; - foreach (PCK.MineFile newSkin in skinsList) - { - - newSkinCount += 1; - string skinType = "steve"; - MemoryStream png = new MemoryStream(newSkin.data); //Gets image data from minefile data - Image skinPicture = Image.FromStream(png); //Constructs image data into image - - if (skinPicture.Height == skinPicture.Width / 2) - { - skinType = "64x32"; - continue; - } - - double offsetHead = 0; - double offsetBody = 0; - double offsetArms = 0; - double offsetLegs = 0; - - //creates list of skin model data - List modelDataHead = new List(); - List modelDataBody = new List(); - List modelDataLeftArm = new List(); - List modelDataRightArm = new List(); - List modelDataLeftLeg = new List(); - List modelDataRightLeg = new List(); - List modelData = new List(); - - - if (skinPicture.Height == skinPicture.Width) - { - //determines skin type based on image dimensions, existence of BOX tags, and the ANIM value - foreach (Object[] entry in newSkin.entries) - { - if (entry[0].ToString() == "BOX") - { - string mClass = ""; - string mData = ""; - foreach (char dCheck in entry[1].ToString()) - { - if (dCheck.ToString() != " ") - { - mClass += dCheck.ToString(); - } - else - { - mData = entry[1].ToString().Remove(0, mClass.Count() + 1); - break; - } - } - - if (mClass == "HEAD") - { - mClass = "head"; - modelDataHead.Add(new Item() { Id = mClass, Name = mData }); - } - else if (mClass == "BODY") - { - mClass = "body"; - modelDataBody.Add(new Item() { Id = mClass, Name = mData }); - } - else if (mClass == "ARM0") - { - mClass = "rightArm"; - modelDataRightArm.Add(new Item() { Id = mClass, Name = mData }); - } - else if (mClass == "ARM1") - { - mClass = "leftArm"; - modelDataLeftArm.Add(new Item() { Id = mClass, Name = mData }); - } - else if (mClass == "LEG0") - { - mClass = "leftLeg"; - modelDataLeftLeg.Add(new Item() { Id = mClass, Name = mData }); - } - else if (mClass == "LEG1") - { - mClass = "rightLeg"; - modelDataRightLeg.Add(new Item() { Id = mClass, Name = mData }); - } - } - - if (entry[0].ToString() == "OFFSET") - { - string oClass = ""; - string oData = ""; - foreach (char oCheck in entry[1].ToString()) - { - oData = entry[1].ToString(); - if (oCheck.ToString() != " ") - { - oClass += oCheck.ToString(); - } - else - { - break; - } - - if (oClass == "HEAD") - { - offsetHead += Double.Parse(oData.Remove(0, 7)) * -1; - } - else if (oClass == "BODY") - { - offsetBody += Double.Parse(oData.Remove(0, 7)) * -1; - } - else if (oClass == "ARM0") - { - offsetArms += Double.Parse(oData.Remove(0, 7)) * -1; - } - else if (oClass == "LEG0") - { - offsetLegs += Double.Parse(oData.Remove(0, 7)) * -1; - } - } - } - - if (entry[0].ToString() == "ANIM") - { - if (entry[1].ToString() == "0x40000") - { - - } - else if (entry[1].ToString() == "0x80000") - { - skinType = "alex"; - } - } - } - - if (modelDataHead.Count + modelDataBody.Count + modelDataLeftArm.Count + modelDataRightArm.Count + modelDataLeftLeg.Count + modelDataRightLeg.Count > 0) - { - skinType = "custom"; - } - } - - writeSkins.WriteLine(" \"" + "geometry." + packName + "." + newSkin.name.Remove(15, 4) + "\": {"); - - //makes skin model depending on what skin type the skin is - if (skinType == "custom") - { - writeSkins.WriteLine(" \"bones\": ["); - - //Head Data - writeSkins.WriteLine(" {"); - writeSkins.WriteLine(" \"pivot\": [ 0, 24, 0 ],"); - writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); - writeSkins.WriteLine(" \"cubes\": [ "); - //Creates bones for each head box - int modelAmount = 0; - foreach (Item model in modelDataHead) - { - modelAmount += 1; - - string xo = ""; - string yo = ""; - string zo = ""; - string xs = ""; - string ys = ""; - string zs = ""; - string xv = ""; - string yv = ""; - - int spaceCheck = 0; - - foreach (char value in model.Name.ToString()) - { - //0X1Y2Z3X4Y5Z6X7Y - if (value.ToString() != " " && spaceCheck == 0) - { - xo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 1) - { - yo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 2) - { - zo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 3) - { - xs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 4) - { - ys += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 5) - { - zs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 6) - { - xv += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 7) - { - yv += value.ToString(); - } - else if (value.ToString() == " ") - { - spaceCheck += 1; - } - } - - writeSkins.WriteLine(" {"); - try - { - writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo)) + ", " + ((Double.Parse(yo) + 0) * -1 + offsetHead + 24 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); - writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + (Double.Parse(ys)) + ", " + Double.Parse(zs) + " ],"); - writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); - writeSkins.WriteLine(" \"inflate\": 0,"); - writeSkins.WriteLine(" \"mirror\": false"); - } - catch (Exception) - { - MessageBox.Show("A HEAD BOX tag in " + newSkin.name + " has an invalid value!"); - } - if (modelAmount != modelDataHead.Count) - { - writeSkins.WriteLine(" },"); - } - else - { - writeSkins.WriteLine(" }"); - } - } - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"META_BoneType\": \"" + "clothing" + "\","); - writeSkins.WriteLine(" \"name\": \"" + "head" + "\","); - writeSkins.WriteLine(" \"parent\":" + " null"); - writeSkins.WriteLine(" },"); - - - //Body Data - writeSkins.WriteLine(" {"); - writeSkins.WriteLine(" \"pivot\": [ 0, 12, 0 ],"); - writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); - writeSkins.WriteLine(" \"cubes\": [ "); - //Creates bones for each body box - modelAmount = 0; - foreach (Item model in modelDataBody) - { - modelAmount += 1; - - string xo = ""; - string yo = ""; - string zo = ""; - string xs = ""; - string ys = ""; - string zs = ""; - string xv = ""; - string yv = ""; - - int spaceCheck = 0; - - foreach (char value in model.Name.ToString()) - { - //0X1Y2Z3X4Y5Z6X7Y - if (value.ToString() != " " && spaceCheck == 0) - { - xo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 1) - { - yo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 2) - { - zo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 3) - { - xs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 4) - { - ys += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 5) - { - zs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 6) - { - xv += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 7) - { - yv += value.ToString(); - } - else if (value.ToString() == " ") - { - spaceCheck += 1; - } - } - writeSkins.WriteLine(" {"); - try - { - writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo)) + ", " + ((Double.Parse(yo) + 0) * -1 + offsetBody + 24 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); - writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); - writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); - writeSkins.WriteLine(" \"inflate\": 0,"); - writeSkins.WriteLine(" \"mirror\": false"); - } - catch (Exception) - { - MessageBox.Show("A BODY BOX tag in " + newSkin.name + " has an invalid value!"); - } - if (modelAmount != modelDataBody.Count) - { - writeSkins.WriteLine(" },"); - } - else - { - writeSkins.WriteLine(" }"); - } - } - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); - writeSkins.WriteLine(" \"name\": \"" + "body" + "\","); - writeSkins.WriteLine(" \"parent\":" + " null"); - writeSkins.WriteLine(" },"); - - - //LeftArm Data - writeSkins.WriteLine(" {"); - writeSkins.WriteLine(" \"pivot\": [ 5, 22, 0 ],"); - writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); - writeSkins.WriteLine(" \"cubes\": [ "); - //Creates bones for each arm1 box - modelAmount = 0; - foreach (Item model in modelDataLeftArm) - { - modelAmount += 1; - - string xo = ""; - string yo = ""; - string zo = ""; - string xs = ""; - string ys = ""; - string zs = ""; - string xv = ""; - string yv = ""; - - int spaceCheck = 0; - - foreach (char value in model.Name.ToString()) - { - //0X1Y2Z3X4Y5Z6X7Y - if (value.ToString() != " " && spaceCheck == 0) - { - xo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 1) - { - yo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 2) - { - zo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 3) - { - xs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 4) - { - ys += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 5) - { - zs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 6) - { - xv += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 7) - { - yv += value.ToString(); - } - else if (value.ToString() == " ") - { - spaceCheck += 1; - } - } - writeSkins.WriteLine(" {"); - try - { - writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo) + 5) + ", " + ((Double.Parse(yo)) * -1 + offsetArms + 22 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); - writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); - writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); - writeSkins.WriteLine(" \"inflate\": 0,"); - writeSkins.WriteLine(" \"mirror\": false"); - } - catch (Exception) - { - MessageBox.Show("A ARM0 BOX tag in " + newSkin.name + " has an invalid value!"); - } - if (modelAmount != modelDataLeftArm.Count) - { - writeSkins.WriteLine(" },"); - } - else - { - writeSkins.WriteLine(" }"); - } - } - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); - writeSkins.WriteLine(" \"name\": \"" + "leftArm" + "\","); - writeSkins.WriteLine(" \"parent\":" + " null"); - writeSkins.WriteLine(" },"); - - //RightArm Data - writeSkins.WriteLine(" {"); - writeSkins.WriteLine(" \"pivot\": [ -5, 22, 0 ],"); - writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); - writeSkins.WriteLine(" \"cubes\": [ "); - //Creates bones for each arm0 box - modelAmount = 0; - foreach (Item model in modelDataRightArm) - { - modelAmount += 1; - - string xo = ""; - string yo = ""; - string zo = ""; - string xs = ""; - string ys = ""; - string zs = ""; - string xv = ""; - string yv = ""; - - int spaceCheck = 0; - - foreach (char value in model.Name.ToString()) - { - //0X1Y2Z3X4Y5Z6X7Y - if (value.ToString() != " " && spaceCheck == 0) - { - xo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 1) - { - yo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 2) - { - zo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 3) - { - xs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 4) - { - ys += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 5) - { - zs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 6) - { - xv += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 7) - { - yv += value.ToString(); - } - else if (value.ToString() == " ") - { - spaceCheck += 1; - } - } - writeSkins.WriteLine(" {"); - try - { - writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo) - 5) + ", " + ((Double.Parse(yo)) * -1 + offsetArms + 22 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); - writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); - writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); - writeSkins.WriteLine(" \"inflate\": 0,"); - writeSkins.WriteLine(" \"mirror\": false"); - } - catch (Exception) - { - MessageBox.Show("A ARM1 BOX tag in " + newSkin.name + " has an invalid value!"); - } - if (modelAmount != modelDataRightArm.Count) - { - writeSkins.WriteLine(" },"); - } - else - { - writeSkins.WriteLine(" }"); - } - } - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); - writeSkins.WriteLine(" \"name\": \"" + "rightArm" + "\","); - writeSkins.WriteLine(" \"parent\":" + " null"); - writeSkins.WriteLine(" },"); - - //LeftLeg Data - writeSkins.WriteLine(" {"); - writeSkins.WriteLine(" \"pivot\": [ 1.9, 12, 0 ],"); - writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); - writeSkins.WriteLine(" \"cubes\": [ "); - //Creates bones for each leg1 box - modelAmount = 0; - foreach (Item model in modelDataLeftLeg) - { - modelAmount += 1; - - string xo = ""; - string yo = ""; - string zo = ""; - string xs = ""; - string ys = ""; - string zs = ""; - string xv = ""; - string yv = ""; - - int spaceCheck = 0; - - foreach (char value in model.Name.ToString()) - { - //0X1Y2Z3X4Y5Z6X7Y - if (value.ToString() != " " && spaceCheck == 0) - { - xo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 1) - { - yo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 2) - { - zo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 3) - { - xs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 4) - { - ys += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 5) - { - zs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 6) - { - xv += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 7) - { - yv += value.ToString(); - } - else if (value.ToString() == " ") - { - spaceCheck += 1; - } - } - writeSkins.WriteLine(" {"); - try - { - writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo) - 1.9) + ", " + ((Double.Parse(yo)) * -1 + offsetLegs + 12 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); - writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); - writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); - writeSkins.WriteLine(" \"inflate\": 0,"); - writeSkins.WriteLine(" \"mirror\": false"); - } - catch (Exception) - { - MessageBox.Show("A LEG1 BOX tag in " + newSkin.name + " has an invalid value!"); - } - if (modelAmount != modelDataLeftLeg.Count) - { - writeSkins.WriteLine(" },"); - } - else - { - writeSkins.WriteLine(" }"); - } - } - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); - writeSkins.WriteLine(" \"name\": \"" + "leftLeg" + "\","); - writeSkins.WriteLine(" \"parent\":" + " null"); - writeSkins.WriteLine(" },"); - - //RightLeg Data - writeSkins.WriteLine(" {"); - writeSkins.WriteLine(" \"pivot\": [ -1.9, 12, 0 ],"); - writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); - writeSkins.WriteLine(" \"cubes\": [ "); - //Creates bones for each leg0 box - modelAmount = 0; - foreach (Item model in modelDataRightLeg) - { - modelAmount += 1; - - string xo = ""; - string yo = ""; - string zo = ""; - string xs = ""; - string ys = ""; - string zs = ""; - string xv = ""; - string yv = ""; - - int spaceCheck = 0; - - foreach (char value in model.Name.ToString()) - { - //0X1Y2Z3X4Y5Z6X7Y - if (value.ToString() != " " && spaceCheck == 0) - { - xo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 1) - { - yo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 2) - { - zo += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 3) - { - xs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 4) - { - ys += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 5) - { - zs += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 6) - { - xv += value.ToString(); - } - else if (value.ToString() != " " && spaceCheck == 7) - { - yv += value.ToString(); - } - else if (value.ToString() == " ") - { - spaceCheck += 1; - } - } - writeSkins.WriteLine(" {"); - try - { - writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo) + 1.9) + ", " + ((Double.Parse(yo)) * -1 + offsetLegs + 12 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); - writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); - writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); - writeSkins.WriteLine(" \"inflate\": 0,"); - writeSkins.WriteLine(" \"mirror\": false"); - } - catch (Exception) - { - MessageBox.Show("A LEG0 BOX tag in " + newSkin.name + " has an invalid value!"); - } - if (modelAmount != modelDataRightLeg.Count) - { - writeSkins.WriteLine(" },"); - } - else - { - writeSkins.WriteLine(" }"); - } - } - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); - writeSkins.WriteLine(" \"name\": \"" + "rightLeg" + "\","); - writeSkins.WriteLine(" \"parent\":" + " null"); - writeSkins.WriteLine(" }"); - writeSkins.WriteLine(" ],"); - } - else if (skinType == "64x32") - { - writeSkins.Write(" \"bones\": [ ],"); - } - else if (skinType == "steve") - { - writeSkins.Write(" \"bones\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"body\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"bodyArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"belt\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 24, -4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 8, 8 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"head\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 24, -4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 8, 8 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 32, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.5, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"hat\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"helmet\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 32, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArm\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -8, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 40, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArm\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArmArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArmArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 48, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftSleeve\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -8, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 40, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightSleeve\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -0.1, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLeg\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -3.9, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLeg\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLegging\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLegging\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -0.1, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftPants\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -3.9, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightPants\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"jacket\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"helmetArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"bodyArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArmArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArmArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"waist\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLegArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLegArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightBootArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftBootArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -6, 15, 1 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"item\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightItem\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 6, 15, 1 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"item\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftItem\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ],"); - } - else if (skinType == "alex") - { - writeSkins.Write(" \"bones\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"body\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"bodyArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"belt\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 24, -4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 8, 8 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"head\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 24, -4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 8, 8 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 32, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.5, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"hat\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"helmet\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 4, 11.5, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 3, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 32, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArm\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -7, 11.5, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 3, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 40, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArm\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArmArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArmArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 4, 11.5, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 3, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 48, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftSleeve\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -7, 11.5, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 3, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 40, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightSleeve\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -0.1, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLeg\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -3.9, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLeg\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLegArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLegging\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -0.1, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftPants\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -3.9, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightPants\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"jacket\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"helmetArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"bodyArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArmArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArmArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"waist\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLegArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLegArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightBootArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftBootArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -6, 14.5, 1 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"item\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightItem\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 6, 14.5, 1 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"item\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftItem\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ],"); - } - - - writeSkins.WriteLine(" \"texturewidth\": 64 , "); - writeSkins.WriteLine(" \"textureheight\": 64,"); - writeSkins.WriteLine(" \"META_ModelVersion\": \"1.0.6\","); - writeSkins.WriteLine(" \"rigtype\": \"normal\","); - writeSkins.WriteLine(" \"animationArmsDown\": false,"); - writeSkins.WriteLine(" \"animationArmsOutFront\": false,"); - writeSkins.WriteLine(" \"animationStatueOfLibertyArms\": false,"); - writeSkins.WriteLine(" \"animationSingleArmAnimation\": false,"); - writeSkins.WriteLine(" \"animationStationaryLegs\": false,"); - writeSkins.WriteLine(" \"animationSingleLegAnimation\": false,"); - writeSkins.WriteLine(" \"animationNoHeadBob\": false,"); - writeSkins.WriteLine(" \"animationDontShowArmor\": false,"); - writeSkins.WriteLine(" \"animationUpsideDown\": false,"); - writeSkins.WriteLine(" \"animationInvertedCrouch\": false"); - if (newSkinCount != skinsList.Count) - { - writeSkins.WriteLine(" },"); - } - else - { - writeSkins.WriteLine(" }"); - } - } - Console.WriteLine(writeSkins); - } - Random rnd = new Random(); - int month = rnd.Next(1, 13); // creates a number between 1 and 12 - int dice = rnd.Next(1, 7); // creates a number between 1 and 6 - int card = rnd.Next(52); - - string randomPlus = month.ToString() + dice.ToString() + card.ToString(); - if (randomPlus.Count() > 12) - { - randomPlus.Remove(0, randomPlus.Count() - 12); - } - else if (randomPlus.Count() < 12) - { - int ii = 12 - randomPlus.Count(); - for (int i = 0; i < ii; i++) - { - randomPlus += 0; - } - } - else if (randomPlus.Count() == 12) - { - } - - //Create Manifest file - using (StreamWriter writeSkins = new StreamWriter(root + "/manifest.json")) - { - writeSkins.WriteLine("{"); - writeSkins.WriteLine(" \"header\": {"); - writeSkins.WriteLine(" \"version\": ["); - writeSkins.WriteLine(" 1,"); - writeSkins.WriteLine(" 0,"); - writeSkins.WriteLine(" 0"); - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"description\": \"Template by Ultmate_Mario, Conversion by Nobledez\","); - writeSkins.WriteLine(" \"name\": \"" + packName + "\","); - writeSkins.WriteLine(" \"uuid\": \"" + uuid.Remove(0, 4) + "-" + uuid.Remove(0, 8) + "-" + uuid.Remove(1, 8) + "-" + uuid.Remove(2, 8) + "-" + randomPlus + "\""); //8-4-4-4-12 - writeSkins.WriteLine(" },"); - writeSkins.WriteLine(" \"modules\": ["); - writeSkins.WriteLine(" {"); - writeSkins.WriteLine(" \"version\": ["); - writeSkins.WriteLine(" 1,"); - writeSkins.WriteLine(" 0,"); - writeSkins.WriteLine(" 0"); - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"type\": \"skin_pack\","); - writeSkins.WriteLine(" \"uuid\": \"8dfd1d65-b3ca-4726-b9e0-9b46a40b72a4\""); - writeSkins.WriteLine(" }"); - writeSkins.WriteLine(" ],"); - writeSkins.WriteLine(" \"format_version\": 1"); - writeSkins.WriteLine("}"); - } - - //create lang file - using (StreamWriter writeSkins = new StreamWriter(root + "/texts/en_US.lang")) - { - writeSkins.WriteLine("skinpack." + packName + "=" + Path.GetFileNameWithoutExtension(convert.FileName)); - foreach (Item displayName in skinDisplayNames) - { - writeSkins.WriteLine("skin." + packName + "." + displayName.Id + "=" + displayName.Name); - } - } - - //adds skin textures - foreach (PCK.MineFile skinTexture in skinsList) - { - var ms = new MemoryStream(skinTexture.data); - Bitmap saveSkin = new Bitmap(Image.FromStream(ms)); - if (saveSkin.Width == saveSkin.Height) - { - ResizeImage(saveSkin, 64, 64); - } - else if (saveSkin.Height == saveSkin.Width / 2) - { - ResizeImage(saveSkin, 64, 32); - } - else - { - ResizeImage(saveSkin, 64, 64); - } - saveSkin.Save(root + "/" + skinTexture.name, ImageFormat.Png); - } - - //adds cape textures - foreach (PCK.MineFile capeTexture in capesList) - { - File.WriteAllBytes(root + "/" + capeTexture.name, capeTexture.data); - } - - string startPath = root; - string zipPath = rootFinal + "content.zipe"; - - try - { - ZipFile.CreateFromDirectory(startPath, zipPath);//Creates contents zipe - }catch (Exception) - { - File.Delete(zipPath); - ZipFile.CreateFromDirectory(startPath, zipPath);//Creates contents zipe - } - - rootFinal = root + "temp/"; - Directory.CreateDirectory(rootFinal); - File.Move(zipPath, rootFinal + "content.zipe"); - File.Copy(root + "/manifest.json", rootFinal + "/manifest.json"); - ZipFile.CreateFromDirectory(rootFinal, convert.FileName);//Creates mcpack - Directory.Delete(root, true); - Directory.Delete(rootFinal, true); - - MessageBox.Show("Conversion Complete"); - } - } - catch (Exception convertEr) - { - MessageBox.Show(convertEr.ToString()); - } - } - else if (openedPCKS.Visible == false) - { - MessageBox.Show("Open PCK file first!"); - } - } - - - public static Bitmap ResizeImage(Image image, int width, int height) - { - var destRect = new Rectangle(0, 0, width, height); - var destImage = new Bitmap(width, height); - - destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); - - using (var graphics = Graphics.FromImage(destImage)) - { - graphics.CompositingMode = CompositingMode.SourceCopy; - graphics.CompositingQuality = CompositingQuality.HighQuality; - graphics.InterpolationMode = InterpolationMode.NearestNeighbor; - graphics.SmoothingMode = SmoothingMode.HighQuality; - graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; - - using (var wrapMode = new ImageAttributes()) - { - wrapMode.SetWrapMode(WrapMode.TileFlipXY); - graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode); - } - } - - return destImage; - } - #endregion - - #region 3ds feature in testing - - private struct loadedTexture - { - public bool modified; - public uint gpuCommandsOffset; - public uint gpuCommandsWordCount; - public uint offset; - public int length; - public RenderBase.OTexture texture; - } - - private struct loadedMaterial - { - public string texture0; - public string texture1; - public string texture2; - public uint gpuCommandsOffset; - public uint gpuCommandsWordCount; - } - - private class loadedBCH - { - public uint mainHeaderOffset; - public uint gpuCommandsOffset; - public uint dataOffset; - public uint relocationTableOffset; - public uint relocationTableLength; - public List textures; - public List materials; - - public loadedBCH() - { - textures = new List(); - materials = new List(); - } - } - - private byte[] align(byte[] input) - { - int length = input.Length; - while ((length & 0x7f) > 0) length++; - byte[] output = new byte[length]; - Buffer.BlockCopy(input, 0, output, 0, input.Length); - return output; - } - - private void replaceData(Stream data, uint offset, int length, byte[] newData) - { - data.Seek(offset + length, SeekOrigin.Begin); - byte[] after = new byte[data.Length - data.Position]; - data.Read(after, 0, after.Length); - data.SetLength(offset); - data.Seek(offset, SeekOrigin.Begin); - data.Write(newData, 0, newData.Length); - data.Write(after, 0, after.Length); - } - - private void updateTexture(int index, loadedTexture newTex) - { - bch.textures.RemoveAt(index); - bch.textures.Insert(index, newTex); - } - - private void replaceCommand(Stream data, BinaryWriter output, uint newVal) - { - data.Seek(-8, SeekOrigin.Current); - output.Write(newVal); - data.Seek(4, SeekOrigin.Current); - } - - private void updateAddress(Stream data, BinaryReader input, BinaryWriter output, int diff) - { - uint offset = input.ReadUInt32(); - offset = (uint)(offset + diff); - data.Seek(-4, SeekOrigin.Current); - output.Write(offset); - } - - loadedBCH bch; - - private void create3dstToolStripMenuItem_Click(object sender, EventArgs e) - { - if (treeViewMain.SelectedNode != null) - { - - SaveFileDialog exportDs = new SaveFileDialog(); - exportDs.ShowDialog(); - string currentFile = exportDs.FileName; - - bch = new loadedBCH(); - - using (FileStream data = new FileStream(currentFile, FileMode.Open)) - { - BinaryReader input = new BinaryReader(data); - BinaryWriter output = new BinaryWriter(data); - - MemoryStream png = new MemoryStream(((PCK.MineFile)(treeViewMain.SelectedNode.Tag)).data); //Gets image data from minefile data - Image skinPicture = Image.FromStream(png); //Constructs image data into image - pictureBoxImagePreview.Image = skinPicture; //Sets image preview to image - - byte[] buffer = new byte[skinPicture.Width * skinPicture.Height * 4]; - input.Read(buffer, 0, buffer.Length); - Bitmap texture = TextureCodec.decode(buffer, skinPicture.Width, skinPicture.Height, RenderBase.OTextureFormat.rgba8); - tex.texture = new RenderBase.OTexture(texture, "Texure"); - - //tex.texture = treeViewMain.SelectedNode.Tag; - - for (int i = 0; i < bch.textures.Count; i++) - { - tex = bch.textures[i]; - tex.modified = true; - - if (tex.modified) - { - byte[] bufferx = align(TextureCodec.encode(tex.texture.texture, RenderBase.OTextureFormat.rgba8)); - int diff = bufferx.Length - tex.length; - - replaceData(data, tex.offset, tex.length, bufferx); - - //Update offsets of next textures - tex.length = bufferx.Length; - tex.modified = false; - updateTexture(i, tex); - for (int j = i; j < bch.textures.Count; j++) - { - loadedTexture next = bch.textures[j]; - next.offset = (uint)(next.offset + diff); - updateTexture(j, next); - } - - //Update all addresses poiting after the replaced data - bch.relocationTableOffset = (uint)(bch.relocationTableOffset + diff); - for (int index = 0; index < bch.relocationTableLength; index += 4) - { - data.Seek(bch.relocationTableOffset + index, SeekOrigin.Begin); - uint value = input.ReadUInt32(); - uint offset = value & 0x1ffffff; - byte flags = (byte)(value >> 25); - - if ((flags & 0x20) > 0 || flags == 7 || flags == 0xc) - { - if ((flags & 0x20) > 0) - data.Seek((offset * 4) + bch.gpuCommandsOffset, SeekOrigin.Begin); - else - data.Seek((offset * 4) + bch.mainHeaderOffset, SeekOrigin.Begin); - - uint address = input.ReadUInt32(); - if (address + bch.dataOffset > tex.offset) - { - address = (uint)(address + diff); - data.Seek(-4, SeekOrigin.Current); - output.Write(address); - } - } - } - - uint newSize = (uint)((tex.texture.texture.Width << 16) | tex.texture.texture.Height); - - //Update texture format - data.Seek(tex.gpuCommandsOffset, SeekOrigin.Begin); - for (int index = 0; index < tex.gpuCommandsWordCount * 3; index++) - { - uint command = input.ReadUInt32(); - - switch (command) - { - case 0xf008e: - case 0xf0096: - case 0xf009e: - replaceCommand(data, output, 0); //Set texture format to 0 = RGBA8888 - break; - case 0xf0082: - case 0xf0092: - case 0xf009a: - replaceCommand(data, output, newSize); //Set new texture size - break; - } - } - - //Update material texture format - foreach (loadedMaterial mat in bch.materials) - { - data.Seek(mat.gpuCommandsOffset, SeekOrigin.Begin); - for (int index = 0; index < mat.gpuCommandsWordCount; index++) - { - uint command = input.ReadUInt32(); - - switch (command) - { - case 0xf008e: if (mat.texture0 == tex.texture.name || mat.texture0 == "") replaceCommand(data, output, 0); break; - case 0xf0096: if (mat.texture1 == tex.texture.name || mat.texture1 == "") replaceCommand(data, output, 0); break; - case 0xf009e: if (mat.texture2 == tex.texture.name || mat.texture2 == "") replaceCommand(data, output, 0); break; - } - } - } - - //Patch up BCH header for new offsets and lengths - data.Seek(4, SeekOrigin.Begin); - byte backwardCompatibility = input.ReadByte(); - byte forwardCompatibility = input.ReadByte(); - - //Update Data Extended and Relocation Table offsets - data.Seek(18, SeekOrigin.Current); - if (backwardCompatibility > 0x20) updateAddress(data, input, output, diff); - updateAddress(data, input, output, diff); - - //Update data length - data.Seek(12, SeekOrigin.Current); - updateAddress(data, input, output, diff); - } - } - using (Stream file = File.Create(currentFile + ".tmp")) - { - CopyStream(output.BaseStream, file); - } - - } - - MessageBox.Show("Done!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - - } - - - public static void CopyStream(Stream input, Stream output) - { - byte[] buffer = new byte[8 * 1024]; - int len; - while ((len = input.Read(buffer, 0, buffer.Length)) > 0) - { - output.Write(buffer, 0, len); - } - } - - #endregion - - #region Tool/MenuStrips - - private void openToolStripMenuItem1_Click(object sender, EventArgs e) - { - pckCenter open = new pckCenter(); - open.Show(); - } - - private void tutorialsToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start(hosturl + "pckStudio#tutorials"); - } - - private void wiiUPCKInstallerToolStripMenuItem_Click(object sender, EventArgs e) - { - installWiiU install = new installWiiU(null); - install.ShowDialog(); - } - - private void howToMakeABasicSkinPackToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=A43aHRHkKxk"); - } - - private void howToMakeACustomSkinModelToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=pEC_ug55lag"); - } - - private void howToMakeCustomSkinModelsbedrockToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=6z8NTogw5x4"); - } - - private void howToMakeCustomMusicToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=v6EYr4zc7rI"); - } - - private void howToInstallPcksDirectlyToWiiUToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=hRQagnEplec"); - } - - private void pCKCenterReleaseToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=E_6bXSh6yqw"); - } - - private void howPCKsWorkToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=hTlImrRrCKQ"); - } - - private void PS3PCKInstallerToolStripMenuItem_Click(object sender, EventArgs e) - { - - installPS3 install = new installPS3(null); - install.ShowDialog(); - } - - private void settingsToolStripMenuItem_Click(object sender, EventArgs e) - { - Pref setting = new Pref(); - setting.Show(); - } - - private void administrativeToolsToolStripMenuItem_Click(object sender, EventArgs e) - { - PCK_Manager pckm = new PCK_Manager(); - pckm.Show(); - } - - private void uPDATEToolStripMenuItem1_Click(object sender, EventArgs e) - { - - if (new WebClient().DownloadString(basurl + "updatePCKStudio.txt").Replace("\n", "") != Version) - { - Console.WriteLine(new WebClient().DownloadString(basurl + "updatePCKStudio.txt").Replace("\n", "") + " != " + Version); - if (MessageBox.Show("Update avaliable!\ndo you want to update?", "UPDATE", MessageBoxButtons.YesNo) == DialogResult.Yes) - Process.Start(Environment.CurrentDirectory + "\\nobleUpdater.exe"); - else - uPDATEToolStripMenuItem1.Visible = true; - } - else - { - uPDATEToolStripMenuItem1.Visible = false; - } - } - - private void VitaPCKInstallerToolStripMenuItem_Click(object sender, EventArgs e) - { - - installVita install = new installVita(null); - install.ShowDialog(); - } - - private void toPhoenixARCDeveloperToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://cash.app/$PhoenixARC"); - } - - private void toNobledezJackToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.paypal.me/realnobledez"); - } - - private void menuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) - { - - } - - private void addPasswordToolStripMenuItem_Click(object sender, EventArgs e) - { - treeViewMain.SelectedNode = treeViewMain.Nodes[0]; - mf = (PCK.MineFile)treeViewMain.Nodes[0].Tag;//Sets minefile to selected node - foreach (object[] entry in mf.entries) - { - if (entry[0].ToString() == "LOCK") - { - MessageBox.Show("Remove current LOCK before adding a new one!"); - return; - } - } - AddPCKPassword add = new AddPCKPassword(mf, currentPCK);//sets metadata adding dialog - add.ShowDialog();//displays metadata adding dialog - add.Dispose();//diposes generated metadata adding dialog data - - //Sets up combobox for metadata entries from main metadatabase - treeMeta.Nodes.Clear(); - foreach (int type in types.Keys) - comboBox1.Items.Add(types[type]); - - //loads all of selected minefiles metadata into metadata treeview - foreach (object[] entry in file.entries) - { - object[] strings = (object[])entry; TreeNode meta = new TreeNode(); - - foreach (object[] entryy in file.entries) - meta.Text = (string)strings[0]; - meta.Tag = entry; - treeMeta.Nodes.Add(meta); - } - saved = false; - } - - private void joinDevelopmentDiscordToolStripMenuItem_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://discord.gg/Byh4hcq25w"); - } - - private void tSTToolStripMenuItem_Click(object sender, EventArgs e) - { - Testx_12 form1 = new Testx_12(); - form1.Show(); - } - - private void convertPCTextrurePackToolStripMenuItem_Click(object sender, EventArgs e) - { - PckStudio.Forms.Utilities.TextureConverterUtility tex = new PckStudio.Forms.Utilities.TextureConverterUtility(treeViewMain, currentPCK); - tex.ShowDialog(); - } + public partial class FormMain : MetroFramework.Forms.MetroForm + { + #region Variables + string saveLocation;//Save location for pck file + int fileCount = 0;//variable for number of minefiles + string Version = "6.3";//template for program version + string hosturl = ""; + string basurl = ""; + string PCKFile = ""; + string PCKFileBCKUP = "x"; + loadedTexture tex = new loadedTexture(); //3DS feature variable + + + PCK.MineFile mf;//Template minefile variable + PCK currentPCK;//currently opened pck + LOC l;//Locdata + PCK.MineFile mfLoc;//LOC minefile + Dictionary types;//Template list for metadata of a individual minefiles metadata + PCK.MineFile file;//template for a selected minefile + bool needsUpdate = false; + bool saved = true; + string appData = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/PCK Studio/"; + public static bool correct = false; + bool isdebug = false; + + public class displayId + { + public string id; + public string defaultName; + } + #endregion + + #region form startup page + public FormMain() + { + + + Directory.CreateDirectory(Environment.CurrentDirectory + "\\template"); + if (!File.Exists(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck")) + File.WriteAllBytes(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck", Resources.UntitledSkinPCK); + if (!File.Exists(Environment.CurrentDirectory + "\\settings.ini")) + File.WriteAllText(Environment.CurrentDirectory + "\\settings.ini", Resources.settings); + hosturl = File.ReadAllText(Environment.CurrentDirectory + "\\settings.ini").Split(new[] { "\r\n", "\n" }, StringSplitOptions.None)[0]; + + + InitializeComponent(); + + if (Program.IsDev) + isdebug = true; + + FormBorderStyle = FormBorderStyle.None; + labelVersion.Text += Version; + pckOpen.AllowDrop = true; + } + #endregion + + #region opens and loads pck file + + + + + + private void openToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + using (var ofd = new OpenFileDialog()) + { + ofd.CheckFileExists = true; //makes sure opened pck exists + ofd.Filter = "PCK (Minecraft Console Package)|*.pck"; + + if (ofd.ShowDialog() == DialogResult.OK) + { + PCKFile = Path.GetFileName(ofd.FileName); + openPck(ofd.FileName); + } + } + } + catch (Exception err) + { + MessageBox.Show("The PCK you're trying to use currently isn't supported\n" + err.StackTrace + "\n\n" + err.Message);//Error handling for PCKs that give errors when trying to be opened + } + } + + private void openPck(string filePath) + { + new TabPage(); + treeViewMain.Nodes.Clear(); + PCK pCK = (currentPCK = new PCK(filePath)); + foreach (PCK.MineFile mineFile in pCK.mineFiles) + { + Console.WriteLine(mineFile.name); + if (!(mineFile.name == "0")) + { + continue; + } + foreach (object[] entry in mineFile.entries) + { + if (entry[0].ToString() == "LOCK") + { + if((new pckLocked(entry[1].ToString(), correct).ShowDialog() != DialogResult.OK || !correct)) + { + return; + } + } + } + } + addPasswordToolStripMenuItem.Enabled = true; + openedPCKS.SelectedTab.Text = Path.GetFileName(filePath); + saveLocation = filePath; + _ = treeViewMain; + _ = pictureBoxImagePreview; + _ = treeMeta; + _ = textBox1; + _ = label1; + _ = label2; + _ = tabDataDisplay; + ImageList imageList = new ImageList(); + imageList.ColorDepth = ColorDepth.Depth32Bit; + imageList.ImageSize = new Size(20, 20); + imageList.Images.Add(Resources.ZZFolder); + imageList.Images.Add(Resources.BINKA_ICON); + imageList.Images.Add(Resources.IMAGE_ICON); + imageList.Images.Add(Resources.LOC_ICON); + imageList.Images.Add(Resources.PCK_ICON); + imageList.Images.Add(Resources.ZUnknown); + treeViewMain.ImageList = imageList; + foreach (PCK.MineFile mineFile2 in pCK.mineFiles) + { + TreeNode treeNode = new TreeNode(); + treeNode.Text = mineFile2.name; + treeNode.Tag = mineFile2; + string text = ""; + int num = 0; + new List(); + TreeNodeCollection nodes = treeViewMain.Nodes; + do + { + text = ""; + string name = mineFile2.name; + for (int i = 0; i < name.Length; i++) + { + char c = name[i]; + bool flag = false; + if (c == '/') + { + foreach (TreeNode item in nodes) + { + if (item.Text == text) + { + nodes = nodes[item.Index].Nodes; + flag = true; + } + } + if (!flag) + { + nodes.Add(text); + nodes = nodes[nodes.Count - 1].Nodes; + } + flag = false; + text = ""; + } + else + { + text += c; + } + num++; + } + } + while (num != mineFile2.name.Length); + if (Path.GetExtension(text) == ".binka") + { + treeNode.ImageIndex = 1; + treeNode.SelectedImageIndex = 1; + } + else if (Path.GetExtension(text) == ".png") + { + treeNode.ImageIndex = 2; + treeNode.SelectedImageIndex = 2; + } + else if (Path.GetExtension(text) == ".loc") + { + treeNode.ImageIndex = 3; + treeNode.SelectedImageIndex = 3; + } + else if (Path.GetExtension(text) == ".pck") + { + treeNode.ImageIndex = 4; + treeNode.SelectedImageIndex = 4; + } + else + { + treeNode.ImageIndex = 5; + treeNode.SelectedImageIndex = 5; + } + treeNode.Text = text; + nodes.Add(treeNode); + saved = false; + } + myTablePanelStartScreen.Visible = false; + pckOpen.Visible = false; + label5.Visible = false; + labelAmount.Visible = true; + richTextBoxChangelog.Visible = false; + openedPCKS.Visible = true; + openedPCKS.AllowDrop = true; + foreach (ToolStripMenuItem dropDownItem in fileToolStripMenuItem.DropDownItems) + { + dropDownItem.Enabled = true; + } + foreach (ToolStripMenuItem dropDownItem2 in editToolStripMenuItem.DropDownItems) + { + dropDownItem2.Enabled = true; + } + foreach (TreeNode node in treeViewMain.Nodes) + { + if (node.Text == "languages.loc") + { + mfLoc = (PCK.MineFile)treeViewMain.Nodes[node.Index].Tag; + } + if (node.Text == "localisation.loc") + { + mfLoc = (PCK.MineFile)treeViewMain.Nodes[node.Index].Tag; + } + } + fileCount = 0; + foreach (PCK.MineFile mineFile3 in currentPCK.mineFiles) + { + _ = mineFile3; + fileCount++; + } + labelAmount.Text = "Files:" + fileCount; + saved = false; + LittleEndianCheckBox.Visible = true; + LittleEndianCheckBox.Checked = currentPCK.IsLittleEndian; + } + #endregion + + #region deciphers what happens when certain pck entries are selected + private void selectNode(object sender, TreeViewEventArgs e) + { + treeMeta.Enabled = true; + int pictureBoxMaxHeight = (tabPage1.Height / 2) - (tabPage1.Height / 10); + if (treeViewMain.SelectedNode.Tag != null) //"Selects" node if it has data/isn't a folder + { + fileCount = 0;//Resets file count + //Gets file count based of all existing minefiles + foreach (PCK.MineFile file in currentPCK.mineFiles) + { + fileCount += 1; + } + labelAmount.Text = "Files:" + fileCount;//Displays amount + Dictionary pckTypes = currentPCK.types; //Retrieves metadatabase + + PCK.MineFile mf = (PCK.MineFile)e.Node.Tag; //Sets current minefile being read + + types = currentPCK.types; //metadatabase + file = mf; //minefile + + treeMeta.Nodes.Clear(); //clears minefile metadata treeview + + comboBox1.Items.Clear(); //clears metacombo(entry name) + textBox1.Text = ""; //clears metatextbox(entry value) + + foreach (int type in types.Keys) + comboBox1.Items.Add(types[type]); //Adds available metadata names from metadatabase to the metacombo + + //Retrieves metadata for currently selected mineifile and displays it within metatreeview + int boxes = 0; + foreach (object[] entry in file.entries) //object = metadata entry(name:value) + { + object[] strings = (object[])entry; + TreeNode meta = new TreeNode(); + + foreach (object[] entryy in file.entries) + meta.Text = (string)strings[0]; + meta.Tag = entry; + treeMeta.Nodes.Add(meta); + + //Check for if file contains model data + if (entry[0].ToString()=="BOX") + { + boxes += 1; + buttonEdit.Text = "EDIT BOXES"; + buttonEdit.Visible = true; + } + else if (entry[0].ToString() == "ANIM") + { + Console.WriteLine(entry[1]); + Console.WriteLine((entry[1].ToString() == "0x80000").ToString() + " - " + entry[1]); + Console.WriteLine((entry[1].ToString() == "0x40000").ToString() + " - "+ entry[1]); + + + if ((entry[1].ToString() == "0x40000") || (entry[1].ToString() == "0x80000")) + { + buttonEdit.Text = "View Skin"; + boxes += 1; + buttonEdit.Visible = true; + } + } + else if(boxes == 0) + { + buttonEdit.Visible = false; + } + } + + //If selected item is a image, its displayed with proper dimensions in image box + if (Path.GetExtension(mf.name) == ".png") + { + pictureBoxImagePreview.SizeMode = PictureBoxSizeMode.StretchImage; + pictureBoxImagePreview.InterpolationMode = InterpolationMode.NearestNeighbor; + MemoryStream png = new MemoryStream(mf.data); //Gets image data from minefile data + Image skinPicture = Image.FromStream(png); //Constructs image data into image + pictureBoxImagePreview.Image = skinPicture; //Sets image preview to image + + + if (skinPicture.Size.Height == skinPicture.Size.Width / 2) + { + pictureBoxImagePreview.Size = new Size(pictureBoxMaxHeight * 2, pictureBoxMaxHeight); //Sets 64x32 ratio images to appear at largest relative size to program window size + labelImageSize.Text = skinPicture.Size.Width.ToString() + "x" + skinPicture.Size.Height.ToString(); + return; + } + else if (skinPicture.Size.Height == skinPicture.Size.Width) + { + pictureBoxImagePreview.Size = new Size(pictureBoxMaxHeight, pictureBoxMaxHeight); //SWets 64x64 ratio images to appear at largest relative size to program window size + labelImageSize.Text = skinPicture.Size.Width.ToString() + "x" + skinPicture.Size.Height.ToString(); + return; + } + else + { + //Sets images to appear at largest relative size to program window size + Size maxDisplay = new Size(tabPage1.Size.Width / 2 - 5, tabPage1.Size.Height / 2 - 5); + if (skinPicture.Size.Width > maxDisplay.Width) + { + //calculate aspect ratio + float aspect = skinPicture.Width / (float)skinPicture.Height; + int newWidth, newHeight; + + //calculate new dimensions based on aspect ratio + newWidth = (int)(maxDisplay.Height * aspect); + newHeight = (int)(newWidth / aspect); + + //if one of the two dimensions exceed the box dimensions + if (newWidth > skinPicture.Width || newHeight > skinPicture.Height) + { + //depending on which of the two exceeds the box dimensions set it as the box dimension and calculate the other one based on the aspect ratio + if (newWidth > newHeight) + { + newWidth = maxDisplay.Width; + newHeight = (int)(newWidth / aspect); + } + else + { + newHeight = maxDisplay.Height; + newWidth = (int)(newHeight * aspect); + } + } + pictureBoxImagePreview.Size = new Size(newWidth, newHeight); + } + else if (skinPicture.Size.Height > maxDisplay.Height) + { + //calculate aspect ratio + float aspect = skinPicture.Width / (float)skinPicture.Height; + int newWidth, newHeight; + + //calculate new dimensions based on aspect ratio + newWidth = (int)(maxDisplay.Width * aspect); + newHeight = (int)(newWidth / aspect); + + //if one of the two dimensions exceed the box dimensions + if (newWidth > skinPicture.Width || newHeight > skinPicture.Height) + { + //depending on which of the two exceeds the box dimensions set it as the box dimension and calculate the other one based on the aspect ratio + if (newWidth > newHeight) + { + newWidth = maxDisplay.Width; + newHeight = (int)(newWidth / aspect); + } + else + { + newHeight = maxDisplay.Height; + newWidth = (int)(newHeight * aspect); + } + } + pictureBoxImagePreview.Size = new Size(newWidth, newHeight); + } + else + { + pictureBoxImagePreview.Size = new Size(skinPicture.Size.Width, skinPicture.Size.Height); + } + labelImageSize.Text = skinPicture.Size.Width.ToString() + "x" + skinPicture.Size.Height.ToString(); + return; + } + } + else if (Path.GetExtension(mf.name) == ".loc") + { + buttonEdit.Text = "EDIT LOC"; + buttonEdit.Visible = true; + } + else if (Path.GetFileName(mf.name) == "audio.pck") + { + buttonEdit.Text = "EDIT AUDIO"; + buttonEdit.Visible = true; + } + else + { + buttonEdit.Visible = false; + //Sets preview image to "NO IMAGE" if selected file data isn't image data + pictureBoxImagePreview.Image = (Image)Resources.NoImageFound; + pictureBoxImagePreview.Size = new Size(pictureBoxMaxHeight, pictureBoxMaxHeight); + labelImageSize.Text = ""; + } + } + else + { + //Sets preview image to "NO IMAGE" if selected file data isn't image data + pictureBoxImagePreview.Image = (Image)Resources.NoImageFound; + pictureBoxImagePreview.Size = new Size(pictureBoxMaxHeight, pictureBoxMaxHeight); + } + labelImageSize.Text = "";//Resets image size display if theres no image + } + #endregion + + #region Parses boxes and opens model generator + public void editModel(PCK.MineFile skin) + { + List otherData = new List();//Creates list for backup data to be added to + List generatedData = new List();//Creates list for model data to be added to + foreach (object[] entry in skin.entries) //object = metadata entry(name:value) + { + //parses and sorts + if (entry[0].ToString() == "BOX") + { + generatedData.Add(entry); + } + else if (entry[0].ToString() == "OFFSET") + { + generatedData.Add(entry); + } + else if (entry[0].ToString() != "BOX" && entry[0].ToString() != "OFFSET") + { + otherData.Add(entry); + } + } + skin.entries = otherData; + generateModel generate = new generateModel(generatedData, new PictureBox()); + generate.ShowDialog();//Opens Model Generator Dialog + //Adds model data + foreach (object[] entry in generatedData) //object = metadata entry(name:value) + { + skin.entries.Add(entry); + } + + treeMeta.Nodes.Clear(); //clears minefile metadata treeview + + comboBox1.Items.Clear(); //clears metacombo(entry name) + textBox1.Text = ""; //clears metatextbox(entry value) + + foreach (int type in types.Keys) + comboBox1.Items.Add(types[type]); //Adds available metadata names from metadatabase to the metacombo + + //Retrieves metadata for currently selected mineifile and displays it within metatreeview + foreach (object[] entry in file.entries) //object = metadata entry(name:value) + { + object[] strings = (object[])entry; + TreeNode meta = new TreeNode(); + + foreach (object[] entryy in file.entries) + meta.Text = (string)strings[0]; + meta.Tag = entry; + treeMeta.Nodes.Add(meta); + } + saved = false; + } + #endregion + + #region extracts pck entry + private void extractToolStripMenuItem_Click(object sender, EventArgs e) + { + + if(treeViewMain.SelectedNode.Nodes.Count > 0) + { + MessageBox.Show("Cannot extract folders!"); + return; + } + if (treeViewMain.SelectedNode.Tag is PCK.MineFile)//Makes sure item being extracted is minefile and not folder or null item + { + SaveFileDialog exFile = new SaveFileDialog();//extract location + exFile.FileName = treeViewMain.SelectedNode.Text; + exFile.Filter = Path.GetExtension(treeViewMain.SelectedNode.Text).Replace(".", "") + " File|*" + Path.GetExtension(treeViewMain.SelectedNode.Text); + exFile.ShowDialog(); + + string appPath = exFile.FileName;//Chosen file path + string extractPath = exFile.FileName; + + if (!String.IsNullOrWhiteSpace(Path.GetDirectoryName(extractPath)))//Makes sure chosen directory isn't null or whitespace AKA makes sure its usable + { + File.WriteAllBytes(extractPath, ((PCK.MineFile)treeViewMain.SelectedNode.Tag).data);//extracts minefile data to directory + + //Generates metadata file in form of txt file if metadata for the file exists + if (treeViewMain.SelectedNode.Tag.ToString() != "") + { + try + { + string metaData = ""; + types = currentPCK.types; + file = (PCK.MineFile)treeViewMain.SelectedNode.Tag; + + var ms = new MemoryStream(File.ReadAllBytes(extractPath).ToArray()); + + MemoryStream ico = new MemoryStream(); + Bitmap bmp = new Bitmap(Image.FromFile(extractPath)); + bmp.Save(ico, System.Drawing.Imaging.ImageFormat.Png); + + foreach (object[] entry in file.entries) + { + object[] strings = (object[])entry; + metaData += (string)strings[0] + ":" + (string)strings[1] + Environment.NewLine; + } + + File.WriteAllText(extractPath + ".txt", metaData); + } + catch (Exception) + { + + } + MessageBox.Show("File Extracted");//Verification that file extraction path was successful + } + } + } + else if (treeViewMain.SelectedNode != null) + { + SaveFileDialog exFile = new SaveFileDialog();//extract location + exFile.ShowDialog(); + string appPath = exFile.FileName;//Chosen file path + + foreach (TreeNode item in treeViewMain.SelectedNode.Nodes) + { + if (item.Tag is PCK.MineFile)//Makes sure item being extracted is minefile and not folder or null item + { + string extractPath = Path.Combine(appPath, ((PCK.MineFile)item.Tag).name);//combines file path with file path & name of minefile being extracted + + if (!String.IsNullOrWhiteSpace(Path.GetDirectoryName(extractPath)))//Makes sure chosen directory isn't null or whitespace AKA makes sure its usable + { + Directory.CreateDirectory(Path.GetDirectoryName(extractPath));//Creates directory variable out of generated/chosen extract path + File.WriteAllBytes(extractPath, ((PCK.MineFile)item.Tag).data);//extracts minefile data to directory + + //Generates metadata file in form of txt file if metadata for the file exists + if (item.Tag.ToString() != "") + { + try + { + string metaData = ""; + types = currentPCK.types; + file = mf; + + var ms = new MemoryStream(File.ReadAllBytes(extractPath).ToArray()); + + MemoryStream ico = new MemoryStream(); + Bitmap bmp = new Bitmap(Image.FromFile(extractPath)); + bmp.Save(ico, System.Drawing.Imaging.ImageFormat.Png); + + foreach (object[] entry in file.entries) + { + object[] strings = (object[])entry; + metaData += (string)strings[0] + ":" + (string)strings[1] + Environment.NewLine; + } + + File.WriteAllText(extractPath + ".txt", metaData); + } + catch (Exception) + { + + } + MessageBox.Show("Path Extracted");//Verification that file extraction path was successful + } + } + } + } + } + } + #endregion + + #region saves pck + private void save(string saveType) + { + TreeView saveStructure = new TreeView();//Temporary new treeview to properly store minefiles in writable form + //structures minefile data based on wether it has parent nodes or not and with its proper minefile data + foreach (TreeNode item in treeViewMain.Nodes) + { + TreeNode add = new TreeNode(); + if (item.Parent != null) + { + string itemPath = "";//item path template + List path = new List();//directory template + GetPathToRoot(treeViewMain.SelectedNode, path);//gets all parents nodes + //generates minefile directory to properly store in minedata + foreach (TreeNode dire in path) + { + itemPath += dire.Text + "/"; + } + add.Text = itemPath + item.Text; + } + else + { + add.Text = item.Text; + } + add.Tag = item.Tag; + saveStructure.Nodes.Add(add); + add.Remove(); + } + + //Reassignes each node with its minefile data to make sure everything is synced + foreach (TreeNode item in saveStructure.Nodes) + { + currentPCK.mineFiles[item.Index] = (PCK.MineFile)item.Tag; + } + + //Syncs minefile name with nodes name + for (int i = 0; i < saveStructure.Nodes.Count; i++) + currentPCK.mineFiles[i].name = saveStructure.Nodes[i].Text; + + if (saveLocation == Application.StartupPath + @"\templates\UntitledSkinPCK.pck") + { + //writes pck data if pck is actually opened + using (var ofd = new SaveFileDialog()) + { + ofd.Filter = "PCK (Minecraft Console Package)|*.pck"; + + if (ofd.ShowDialog() == DialogResult.OK) + { + try + { + Console.WriteLine(currentPCK.IsLittleEndian.ToString() + "--"); + if (LittleEndianCheckBox.Checked) + { + byte[] oouput = currentPCK.RebuildVita(); + oouput[0] = 0x03; + File.WriteAllBytes(ofd.FileName, currentPCK.RebuildVita()); + } + else + { + byte[] oouput = currentPCK.Rebuild(); + File.WriteAllBytes(ofd.FileName, currentPCK.Rebuild()); + } + saveLocation = ofd.FileName; + openedPCKS.SelectedTab.Text = Path.GetFileName(ofd.FileName); + saved = true; + MessageBox.Show("PCK Saved!"); + PCKFile = Path.GetFileName(ofd.FileName); + } + catch (Exception) + { + MessageBox.Show("No PCK loaded"); + } + } + } + } + else if (saveType == "Save As") + { + //writes pck data if pck is actually opened + using (var ofd = new SaveFileDialog()) + { + ofd.Filter = "PCK (Minecraft Console Package)|*.pck"; + + if (ofd.ShowDialog() == DialogResult.OK) + { + try + { + Console.WriteLine(currentPCK.IsLittleEndian.ToString() + "--"); + if (LittleEndianCheckBox.Checked) + { + byte[] oouput = currentPCK.RebuildVita(); + oouput[0] = 0x03; + File.WriteAllBytes(ofd.FileName, currentPCK.RebuildVita()); + } + else + { + byte[] oouput = currentPCK.Rebuild(); + File.WriteAllBytes(ofd.FileName, currentPCK.Rebuild()); + } + saveLocation = ofd.FileName; + openedPCKS.SelectedTab.Text = Path.GetFileName(ofd.FileName); + saved = true; + MessageBox.Show("PCK Saved!"); + } + catch (Exception) + { + MessageBox.Show("No PCK loaded"); + } + } + } + } + else + { + if (MessageBox.Show("Are you sure you wanna save?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) + { + try + { + Console.WriteLine(currentPCK.IsLittleEndian.ToString() + "--"); + if (LittleEndianCheckBox.Checked) + { + byte[] oouput = currentPCK.RebuildVita(); + oouput[0] = 0x03; + File.WriteAllBytes(saveLocation, currentPCK.RebuildVita()); + } + else + { + byte[] oouput = currentPCK.Rebuild(); + File.WriteAllBytes(saveLocation, currentPCK.Rebuild()); + } + } + catch (Exception) + { + for (int i = 0; i < saveStructure.Nodes.Count; i++) + currentPCK.mineFiles[i].name = saveStructure.Nodes[i].Text; + + using (var ofd = new SaveFileDialog()) + { + ofd.Filter = "PCK (Minecraft Console Package)|*.pck"; + + if (ofd.ShowDialog() == DialogResult.OK) + { + try + { + File.WriteAllBytes(ofd.FileName, currentPCK.Rebuild()); + saved = true; + MessageBox.Show("PCK Saved!"); + } + catch (Exception) + { + MessageBox.Show("No PCK loaded"); + } + } + } + } + } + } + saveStructure.Dispose();//disposes temporarily made treeview + } + #endregion + + #region replaces pck entry with selected file + private void replaceToolStripMenuItem_Click(object sender, EventArgs e) + { + if (treeViewMain.SelectedNode.Tag is PCK.MineFile)//Makes sure file being replaced is an actual minefile or not null + { + PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag;//backups minefile data for node + using (var ofd = new OpenFileDialog()) + { + if (ofd.ShowDialog() == DialogResult.OK) + { + mf.data = File.ReadAllBytes(ofd.FileName);//overwrites minefile data with chosen files data + mf.filesize = mf.data.Length;//updates file size + } + } + } + saved = false; + } + #endregion + + #region ignore + private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) + { + //Does not work as intended. Renaming moved to save function + saved = false; + } + #endregion + + #region deletes pck entry from treeview and pck.minefiles + private void deleteFileToolStripMenuItem_Click(object sender, EventArgs e) + { + //Removes selected from current pcks minefiles list and nodes + if (treeViewMain.SelectedNode.Tag is PCK.MineFile) + { + PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; + treeViewMain.Nodes.Remove(treeViewMain.SelectedNode); + currentPCK.mineFiles.Remove(mf); + } + else + { + if (MessageBox.Show("Are you sure want to delete this folder? All contents will be deleted", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) + { + foreach (TreeNode item in treeViewMain.SelectedNode.Nodes) + { + if (item.Tag == null) + { + MessageBox.Show("Can't fully delete directory with subdirectories"); + return; + } + if (item.Tag is PCK.MineFile)//makes sure selected node is a minefile + { + //removes minefile from minefile list + PCK.MineFile mf = (PCK.MineFile)item.Tag; + currentPCK.mineFiles.Remove(mf); + //removes minefile node + item.Remove(); + } + } + treeViewMain.SelectedNode.Remove(); + } + } + saved = false; + } + #endregion + + #region renames pck entry from treeview and pck.minefiles + private void renameFileToolStripMenuItem_Click(object sender, EventArgs e) + { + PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; + PckStudio.rename diag = new PckStudio.rename(mf); + diag.ShowDialog(this); + diag.Dispose();//diposes generated metadata adding dialog data + treeViewMain.SelectedNode.Text = Path.GetFileName(mf.name); + } + #endregion + + #region clones pck entry from treeview and pck.minefiles + private void cloneFileToolStripMenuItem_Click(object sender, EventArgs e) + { + if (treeViewMain.SelectedNode.Tag == null) return; + + PCK.MineFile mfO = (PCK.MineFile)treeViewMain.SelectedNode.Tag; + FileInfo mfCO = new FileInfo(mfO.name); + + PCK.MineFile mf = new PCK.MineFile();//Creates new minefile template + mf.data = mfO.data;//adds file data to minefile + mf.filesize = mfO.data.Length;//gets filesize for minefile + mf.name = Path.GetDirectoryName(mfO.name).Replace("\\", "/") + "/" + Path.GetFileNameWithoutExtension(mfO.name) + "_clone" + mfCO.Extension;//sets minfile name to file name + if (treeViewMain.SelectedNode.Parent == null && mf.name.StartsWith("/")) mf.name = mf.name.Remove(0, 1); + mf.entries = mfO.entries; + mf.type = 0;//sets minefile type to default + TreeNode add = new TreeNode(Path.GetFileName(mf.name)) { Tag = mf };//creates node for minefile + + //Gets proper file icon for minefile + if (Path.GetExtension(add.Text) == ".binka") + { + add.ImageIndex = 1; + add.SelectedImageIndex = 1; + } + else if (Path.GetExtension(add.Text) == ".png") + { + add.ImageIndex = 2; + add.SelectedImageIndex = 2; + } + else if (Path.GetExtension(add.Text) == ".loc") + { + add.ImageIndex = 3; + add.SelectedImageIndex = 3; + } + else if (Path.GetExtension(add.Text) == ".pck") + { + add.ImageIndex = 4; + add.SelectedImageIndex = 4; + } + else + { + add.ImageIndex = 5; + add.SelectedImageIndex = 5; + } + + currentPCK.mineFiles.Insert(currentPCK.mineFiles.IndexOf(mfO) + 1, mf); //inserts minefile into proper list index + if (treeViewMain.SelectedNode.Parent == null) treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.Index + 1, add); //adds generated minefile node + else treeViewMain.SelectedNode.Parent.Nodes.Insert(treeViewMain.SelectedNode.Index + 1, add);//adds generated minefile node to selected folder + } + #endregion + + #region adds file to treeview and pck.minefiles + private void addFileToolStripMenuItem_Click(object sender, EventArgs e) + { + using (var ofd = new OpenFileDialog()) + { + if (ofd.ShowDialog() == DialogResult.OK) + { + PCK.MineFile mf = new PCK.MineFile();//Creates new minefile template + mf.data = File.ReadAllBytes(ofd.FileName);//adds file data to minefile + mf.filesize = mf.data.Length;//gets filesize for minefile + mf.name = Path.GetFileName(ofd.FileName);//sets minfile name to file name + mf.type = 0;//sets minefile type to default + TreeNode add = new TreeNode(mf.name) { Tag = mf };//creates node for minefile + + //Gets proper file icon for minefile + if (Path.GetExtension(add.Text) == ".binka") + { + add.ImageIndex = 1; + add.SelectedImageIndex = 1; + } + else if (Path.GetExtension(add.Text) == ".png") + { + add.ImageIndex = 2; + add.SelectedImageIndex = 2; + } + else if (Path.GetExtension(add.Text) == ".loc") + { + add.ImageIndex = 3; + add.SelectedImageIndex = 3; + } + else if (Path.GetExtension(add.Text) == ".pck") + { + add.ImageIndex = 4; + add.SelectedImageIndex = 4; + } + else + { + add.ImageIndex = 5; + add.SelectedImageIndex = 5; + } + + if (treeViewMain.SelectedNode.Tag == null)//Detects if user selected a folder to add file to + { + treeViewMain.SelectedNode.Nodes.Add(add);//adds generated minefile node to selected folder + currentPCK.mineFiles.Insert(treeViewMain.SelectedNode.Nodes.Count - 1, mf);//inserts minefile into proper list index + + string itemPath = "";//item path template + List path = new List();//directory template + GetPathToRoot(treeViewMain.SelectedNode, path);//gets all parents nodes + //generates minefile directory to properly store in minedata + foreach (TreeNode dire in path) + { + itemPath += dire.Text + "/"; + } + + currentPCK.mineFiles[treeViewMain.SelectedNode.Nodes.Count - 1].name = itemPath + treeViewMain.SelectedNode.Nodes[treeViewMain.SelectedNode.Nodes.Count - 1].Text;//updates minefile name with directory + } + else//adds minefile to root of the pck + { + currentPCK.mineFiles.Add(mf); + treeViewMain.Nodes.Add(add); + } + } + } + saved = false; + } + + + private void GetPathToRoot(TreeNode node, List path) + { + //gets all parents nodes of a file + if (node == null) return; // previous node was the root. + else + { + path.Insert(0, node); + GetPathToRoot(node.Parent, path); + } + } + #endregion + + #region starts up form to create and add a new skin + private void createSkinToolStripMenuItem_Click(object sender, EventArgs e) + { + int i = treeViewMain.Nodes.Count - 1;//Gets index of last item in treeview + int tempIDD;//sets variables for a temporary skin/cape id + + try + { + string tempID = treeViewMain.Nodes[i].Text.Remove(treeViewMain.Nodes[i].Text.Length - 4, 4);//gets id of last skin/cape in treeview if the last item is a skin or cape + + tempID = tempID.Remove(0, 8);//removes text from id + + tempIDD = int.Parse(tempID) + 1;//adds to skin/cape id index to presets the next skin/cape id + } + catch (Exception) + { + tempIDD = 00000000;//sets temporary id to 0 if an id can't be generated off the treeviews last item + } + PCK.MineFile mf = mfLoc;//Sets loc minefile + + try + { + l = new LOC(mf.data);//sets loc data + } + catch + { + //error handling for if pck doesn't have a loc file + MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + PckStudio.addnewskin add = new PckStudio.addnewskin(currentPCK, treeViewMain, tempIDD.ToString(), l);//Sets dialog data for skin creator + add.ShowDialog();//opens skin creator + mf.data = l.Rebuild();//rebuilds loc data + add.Dispose();//disposes generated skin creator data + saved = false; + } + #endregion + + #region starts up form to create and add a animated texture + private void createAnimatedTextureToolStripMenuItem_Click(object sender, EventArgs e) + { + using (var ofd = new OpenFileDialog()) + { + ofd.Filter = "PNG Files | *.png"; + ofd.Title = "Select a PNG File"; + + if (ofd.ShowDialog() == DialogResult.OK) + { + PckStudio.addAnimatedTexture add = new PckStudio.addAnimatedTexture(currentPCK, treeViewMain, ofd.FileName, Path.GetFileName(ofd.FileName).Remove(Path.GetFileName(ofd.FileName).Length - 4, 4));//presets texture generator dialog with needed data including selected picture + add.ShowDialog();//Shows dialog + add.Dispose();//Diposes generated dialog data + } + } + saved = false; + } + #endregion + + #region deciphers what happens when certain pck entries are double clicked + private void treeView1_DoubleClick(object sender, EventArgs e) + { + if (treeViewMain.SelectedNode.Tag != null) + { + mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; + + //Checks to see if selected minefile is a loc file + if (Path.GetExtension(mf.name) == ".loc") + { + if (treeViewMain.SelectedNode.Tag is PCK.MineFile) + { + LOC l; + try + { + l = new LOC(mf.data); + } + catch + { + MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + return; + } + (new LOCEditor(l)).ShowDialog();//Opens LOC Editor + mf.data = l.Rebuild();//Rebuilds loc file with locdata in grid view after closing dialog + } + } + + //Checks to see if selected minefile is an audio file + if (Path.GetFileName(mf.name) == "audio.pck") + { + if (treeViewMain.SelectedNode.Tag is PCK.MineFile) + { + try + { + PckStudio.Forms.Utilities.AudioEditor diag = new PckStudio.Forms.Utilities.AudioEditor(mf.data, mf); + diag.ShowDialog(this); + } + catch(Exception ex) + { + MessageBox.Show("Error", ex.Message, MessageBoxButtons.OK, + MessageBoxIcon.Error); + return; + } + } + } + + //Checks to see if selected minefile is a col file + if (Path.GetExtension(mf.name) == ".col") + { + //MessageBox.Show(".COL Editor Coming Soon!"); + + if (treeViewMain.SelectedNode.Tag is PCK.MineFile) + { + try + { + PckStudio.Forms.Utilities.COLEditor diag = new PckStudio.Forms.Utilities.COLEditor(mf.data, mf); + diag.Show(); + } + catch + { + MessageBox.Show("No Color data found.", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + return; + } + //mf.data = l.Rebuild();//Rebuilds loc file with locdata in grid view after closing dialog + } + } + + //Checks to see if selected minefile is a binka file + System.Threading.ThreadStart starter; + + System.Threading.Thread binkam; + if (Path.GetExtension(mf.name) == ".binka") + { + MessageBox.Show(".binka Editor Coming Soon!"); + } + + } + } + #endregion + + #region updates combo and text boxes for metadata when a metadata entry is selected + private void treeMeta_AfterSelect(object sender, TreeViewEventArgs e) + { + comboBox1.Items.Clear();//Resets metadata combobox of selectable entry names + object[] strings = (object[])e.Node.Tag; + foreach (int type in types.Keys) + comboBox1.Items.Add(types[type]);//fills combobox with metadata from the main metadatabase + comboBox1.Text = (string)strings[0];//Sets currently selected metadata type to type selected in selected metadata node + textBox1.Text = (string)strings[1];//Sets currently selected metadata value to value selected in selected metadata node + } + #endregion + + #region updates metadata when combo option is selected + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + if (treeMeta.SelectedNode != null) + { + //Sets metadata type to new chosen one + object[] strings = (object[])treeMeta.SelectedNode.Tag; + strings[0] = comboBox1.Text; + } + saved = false; + } + #endregion + + #region updates metadata value when text box value changes + private void textBox1_TextChanged(object sender, EventArgs e) + { + if (treeMeta.SelectedNode != null) + { + //sets metadata value to new value + object[] strings = (object[])treeMeta.SelectedNode.Tag; + strings[1] = textBox1.Text; + } + saved = false; + } + #endregion + + #region deletes metadata entry + private void deleteEntryToolStripMenuItem_Click(object sender, EventArgs e) + { + if (treeMeta.SelectedNode != null)//Makes sure selected node is a minefile + { + object[] temp = (object[])treeMeta.SelectedNode.Tag; + file.entries.Remove(temp);//removes minefile from minefile list + treeMeta.Nodes.Remove(treeMeta.SelectedNode);//removes minefile node + +// treeMeta.Nodes.Clear();//Resets metadata treeview + } + saved = false; + } + #endregion + + #region adds metadata entry + private void addEntryToolStripMenuItem_Click_1(object sender, EventArgs e) + { + mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag;//Sets minefile to selected node + PckStudio.addMeta add = new PckStudio.addMeta(mf, currentPCK);//sets metadata adding dialog + add.ShowDialog();//displays metadata adding dialog + add.Dispose();//diposes generated metadata adding dialog data + + //Sets up combobox for metadata entries from main metadatabase + treeMeta.Nodes.Clear(); + foreach (int type in types.Keys) + comboBox1.Items.Add(types[type]); + + //loads all of selected minefiles metadata into metadata treeview + foreach (object[] entry in file.entries) + { + object[] strings = (object[])entry; TreeNode meta = new TreeNode(); + + foreach (object[] entryy in file.entries) + meta.Text = (string)strings[0]; + meta.Tag = entry; + treeMeta.Nodes.Add(meta); + } + saved = false; + } + #endregion + + #region moves node up and arranges minefile indexes + private void moveUpToolStripMenuItem_Click(object sender, EventArgs e) + { + if (treeViewMain.SelectedNode != null)//makes sure selected node is a minefile + { + if (treeViewMain.SelectedNode.Tag != null) + { + if (treeViewMain.SelectedNode.Index - 1 >= 0)//Makes sure selected node isn't already at the top + { + //rearranges nodes minefile data indexes in minefiles list + currentPCK.mineFiles[treeViewMain.SelectedNode.Index - 1] = (PCK.MineFile)treeViewMain.SelectedNode.Tag; + currentPCK.mineFiles[treeViewMain.SelectedNode.Index] = (PCK.MineFile)treeViewMain.Nodes[treeViewMain.SelectedNode.Index - 1].Tag; + //switches selected node with node above it + TreeNode move = (TreeNode)treeViewMain.SelectedNode.Clone(); + treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.Index - 1, move); + //removes node because a clone was inserted into its new index + treeViewMain.SelectedNode.Remove(); + } + } + } + saved = false; + } + #endregion + + #region moves node down and arranges minefile indexes + private void moveDownToolStripMenuItem_Click(object sender, EventArgs e) + { + if (treeViewMain.SelectedNode != null)//makes sure selected node is a minefile + { + if (treeViewMain.SelectedNode.Tag != null) + { + if (treeViewMain.Nodes[treeViewMain.SelectedNode.Index + 1] != null)//Makes sure selected node isn't already at the bottom + { + //rearranges nodes minefile data indexes in minefiles list + currentPCK.mineFiles[treeViewMain.SelectedNode.Index + 1] = (PCK.MineFile)treeViewMain.SelectedNode.Tag; + currentPCK.mineFiles[treeViewMain.SelectedNode.Index] = (PCK.MineFile)treeViewMain.Nodes[treeViewMain.SelectedNode.Index + 1].Tag; + //switches selected node with node below it + TreeNode move = (TreeNode)treeViewMain.SelectedNode.Clone(); + treeViewMain.Nodes.Insert(treeViewMain.SelectedNode.Index + 2, move); + //removes node because a clone was inserted into its new index + treeViewMain.SelectedNode.Remove(); + } + } + } + saved = false; + } + #endregion + + #region Loads all pck metadata into a main metadatabase and opens manageable dialog for it + private void metaToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + PckStudio.meta edit = new PckStudio.meta(currentPCK); + edit.TopMost = true; + edit.TopLevel = true; + edit.Show(); + } + catch (Exception) + { + MessageBox.Show("No PCK Data Loaded"); + } + saved = false; + } + #endregion + + #region opens presets + private void addPresetToolStripMenuItem1_Click(object sender, EventArgs e) + { + mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag;//Sets selected minefile from node + PckStudio.presetMeta add = new PckStudio.presetMeta(mf, currentPCK);//sets data for preset adding dialog + add.ShowDialog();//displays preset adding dialog + add.Dispose();//disposes generated preset adding data + + //reloads treemeta data + treeMeta.Nodes.Clear(); + foreach (int type in types.Keys) + comboBox1.Items.Add(types[type]); + + foreach (object[] entry in file.entries) + { + object[] strings = (object[])entry; + TreeNode meta = new TreeNode(); + + foreach (object[] entryy in file.entries) + meta.Text = (string)strings[0]; + meta.Tag = entry; + treeMeta.Nodes.Add(meta); + } + saved = false; + } + #endregion + + #region loads empty pck template + private void skinPackToolStripMenuItem_Click(object sender, EventArgs e) + { + //Loads skin pack template + PCKFile = Path.GetFileName(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck"); + openPck(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck"); + saveLocation = ""; + saved = false; + } + #endregion + + #region open advanced metadata bulk editing window + private void advancedMetaAddingToolStripMenuItem_Click(object sender, EventArgs e) + { + if (openedPCKS.Visible == true) + { + //opens dialog for bulk minefile editing + PckStudio.AdvancedOptions advanced = new PckStudio.AdvancedOptions(currentPCK); + advanced.ShowDialog(); + advanced.Dispose(); + saved = false; + } + else if (openedPCKS.Visible == false) + { + MessageBox.Show("Open PCK file first!"); + } + } + #endregion + + #region closes tool + private void buttonShutdown_Click(object sender, EventArgs e) + { + this.Close();//closes PCK Studio + } + #endregion + + #region open program info/credits window + private void programInfoToolStripMenuItem_Click(object sender, EventArgs e) + { + //open program info dialog + PckStudio.programInfo info = new PckStudio.programInfo(); + info.ShowDialog(); + info.Dispose(); + } + #endregion + + #region checks for updates + private void Form1_Load(object sender, EventArgs e) + { + try + { + RPC.SetRPC("825875166574673940", "Sitting alone", "Program by PhoenixARC", "pcklgo", "PCK Studio", "pcklgo"); + timer1.Start(); + timer1.Enabled = true; + } + catch + { + Console.WriteLine("ERROR WITH RPC"); + } + try + { + label1.Theme = this.Theme; + labelVersion.Theme = this.Theme; + label2.Theme = this.Theme; + label3.Theme = this.Theme; + labelImageSize.Theme = this.Theme; + labelAmount.Theme = this.Theme; + labelEntryType.Theme = this.Theme; + labelEntryData.Theme = this.Theme; + DBGLabel.Theme = this.Theme; + label4.Theme = this.Theme; + label6.Theme = this.Theme; + label7.Theme = this.Theme; + label8.Theme = this.Theme; + label9.Theme = this.Theme; + label10.Theme = this.Theme; + label11.Theme = this.Theme; + ChangeURL.Theme = this.Theme; + label5.Theme = this.Theme; + openedPCKS.Theme = this.Theme; + tabPage1.Theme = this.Theme; + metroTabControl1.Theme = this.Theme; + metroTabPage1.Theme = this.Theme; + LittleEndianCheckBox.Theme = this.Theme; + + new WebClient().DownloadString(Program.baseurl + ChangeURL.Text); + basurl = Program.baseurl; + Console.WriteLine(basurl + ChangeURL.Text); + } + catch + { + try + { + new WebClient().DownloadString(Program.backurl + ChangeURL.Text); + basurl = Program.backurl; + Console.WriteLine(basurl + ChangeURL.Text); + } + catch + { + try + { + new WebClient().DownloadString("https://google.com"); + MessageBox.Show("PCK Studio Service is offline, the domain may have changed.\nOpening website"); + Process.Start("https://phoenixarc.github.io/pckstudio.tk/"); + } + catch + { + MessageBox.Show("Could not connect to service, internet may be offline"); + } + } + } + + + Directory.CreateDirectory(Environment.CurrentDirectory + "\\template"); + if (!File.Exists(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck")) + File.WriteAllBytes(Environment.CurrentDirectory + "\\template\\UntitledSkinPCK.pck", Resources.UntitledSkinPCK); + + + if (isdebug) + DBGLabel.Visible = true; + //runs creator spotlight once per day + //if (!File.Exists(appData + "date.txt")) + //{ + // File.WriteAllText(appData + "date.txt", DateTime.Now.ToString("MM/dd/yyyy")); + // creatorSpotlight shoutout = new creatorSpotlight(); + // shoutout.ShowDialog(); + //} + //else if (DateTime.Now.ToString("MM/dd/yyyy") != File.ReadAllText(appData + "date.txt")) + //{ + // creatorSpotlight shoutout = new creatorSpotlight(); + // File.WriteAllText(appData + "date.txt", DateTime.Now.ToString("MM/dd/yyyy")); + // shoutout.ShowDialog(); + //} + + + //Promo shoutout = new Promo(); + //shoutout.ShowDialog(); + + + //Makes sure appdata exists + if (!Directory.Exists(appData)) + { + Directory.CreateDirectory(appData); + } + + if (!Directory.Exists(Environment.CurrentDirectory + "\\cache\\mods\\")) + { + Directory.CreateDirectory(Environment.CurrentDirectory + "\\cache\\mods\\"); + } + + + //Checks to see if program version file exists, and creates one if it doesn't + //Latest changelog on program start-up + try + { + using (WebClient client = new WebClient()) + { + if(isdebug) + File.WriteAllText(appData + "pckStudioChangelog.txt", File.ReadAllText("C:\\WEBSITES\\PCKStudio\\studio\\PCK\\api\\" + ChangeURL.Text)); + else + File.WriteAllText(appData + "pckStudioChangelog.txt", client.DownloadString(basurl + ChangeURL.Text)); + richTextBoxChangelog.Text = File.ReadAllText(appData + "pckStudioChangelog.txt"); + } + } + catch + { + MessageBox.Show("Could not load changelog"); + } + + if (!File.Exists(Application.StartupPath + @"\ver.txt")) + { + File.WriteAllText(Application.StartupPath + @"\ver.txt", Version); + } + try + { + if (float.Parse(new WebClient().DownloadString(basurl + "updatePCKStudio.txt").Replace("\n", "")) > float.Parse(Version) && !System.Diagnostics.Debugger.IsAttached) + { + Console.WriteLine(new WebClient().DownloadString(basurl + "updatePCKStudio.txt").Replace("\n", "") + " != " + Version); + if (MessageBox.Show("Update avaliable!\ndo you want to update?", "UPDATE", MessageBoxButtons.YesNo) == DialogResult.Yes) + Process.Start(Environment.CurrentDirectory + "\\nobleUpdater.exe"); + else + uPDATEToolStripMenuItem1.Visible = true; + } + else + { + uPDATEToolStripMenuItem1.Visible = false; + } + } + catch + { + MessageBox.Show("Could not load Version Information"); + } + } + #endregion + + #region deletes pck entires through the del key + private void treeViewMain_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyData == Keys.Delete)//checks to make sure pressed key was del + { + if (treeViewMain.SelectedNode.Tag is PCK.MineFile)//makes sure selected node is a minefile + { + //removes minefile from minefile list + PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; + currentPCK.mineFiles.Remove(mf); + //removes minefile node + treeViewMain.Nodes.Remove(treeViewMain.SelectedNode); + } + else + { + if (MessageBox.Show("Are you sure want to delete this folder? All contents will be deleted", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) + { + foreach (TreeNode item in treeViewMain.SelectedNode.Nodes) + { + if (item.Tag == null) + { + MessageBox.Show("Can't fully delete directory with subdirectories"); + return; + } + if (item.Tag is PCK.MineFile)//makes sure selected node is a minefile + { + //removes minefile from minefile list + PCK.MineFile mf = (PCK.MineFile)item.Tag; + currentPCK.mineFiles.Remove(mf); + //removes minefile node + item.Remove(); + } + } + treeViewMain.SelectedNode.Remove(); + } + } + } + saved = false; + } + #endregion + + #region extracts a selected pck without opening the pck + private void extractToolStripMenuItem1_Click(object sender, EventArgs e) + { + try + { + //Extracts a chosen pck file to a chosen destincation + OpenFileDialog ofd = new OpenFileDialog(); + FolderBrowserDialog sfd = new FolderBrowserDialog(); + ofd.CheckFileExists = true; + ofd.Filter = "PCK (Minecraft Wii U Package)|*.pck"; + + if (ofd.ShowDialog() == DialogResult.OK) + { + if (sfd.ShowDialog() == DialogResult.OK) + { + foreach (PCK.MineFile mf in new PCK(ofd.FileName).mineFiles) + { + foreach (object[] entry in mf.entries) + { + if (entry[0].ToString() == "LOCK") // Check for lock on PCK File + { + if ((new pckLocked(entry[1].ToString(), correct).ShowDialog() != DialogResult.OK || !correct)) + { + return; // cancel extraction if password not provided + } + } + } + System.IO.FileInfo file = new System.IO.FileInfo(sfd.SelectedPath + @"\" + mf.name); + file.Directory.Create(); // If the directory already exists, this method does nothing. + File.WriteAllBytes(sfd.SelectedPath + @"\" + mf.name, mf.data); //writes minefile to file + //attempts to generate reimportable metadata file out of minefiles metadata + string metaData = ""; + + foreach (object[] entry in mf.entries) + { + object[] strings = (object[])entry; + metaData += (string)strings[0] + ":" + (string)strings[1] + Environment.NewLine; + } + + File.WriteAllText(sfd.SelectedPath + @"\" + mf.name + ".txt", metaData); + } + } + } + } catch (Exception) + { + MessageBox.Show("Unsupported PCK"); + } + } + #endregion + + #region deletes metadata entries through the del key + private void treeMeta_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyData == Keys.Delete)//makes sure pressed key was del + { + if (treeMeta.SelectedNode != null)//makes sure selected node is a minefile + { + //removes selected treemeta entry + object[] temp = (object[])treeMeta.SelectedNode.Tag; + file.entries.Remove(temp); + treeMeta.Nodes.Remove(treeMeta.SelectedNode); + + //reloads treemeta data + treeMeta.Nodes.Clear(); + foreach (int type in types.Keys) + comboBox1.Items.Add(types[type]); + + foreach (object[] entry in file.entries) + { + object[] strings = (object[])entry; + TreeNode meta = new TreeNode(); + + foreach (object[] entryy in file.entries) + meta.Text = (string)strings[0]; + meta.Tag = entry; + treeMeta.Nodes.Add(meta); + } + } + } + saved = false; + } + #endregion + + #region imports a folder of skins to pck + private void importExtractedSkinsFolder(object sender, EventArgs e) + { + FolderBrowserDialog contents = new FolderBrowserDialog();//Creates folder browser instance + + if (contents.ShowDialog() == DialogResult.OK) + { + //checks to make sure selected path exist + if (!Directory.Exists(contents.SelectedPath)) + { + MessageBox.Show("Directory Lost"); + return; + } + + string filepath = contents.SelectedPath;//sets filepath to selected path + DirectoryInfo d = new DirectoryInfo(contents.SelectedPath);//sets directory info + + bool mashupStructure = false;//creates variable to indicate wether current pck skin structure is mashup or regular skin + int skinsFolder = 0;//temporary index for skins folder for if structure is mashup + + //checks to see if pck contains a skins folder + foreach (TreeNode item in treeViewMain.Nodes) + { + if (item.Text == "Skins") + { + mashupStructure = true;//sets mashup structure to true + skinsFolder = item.Index;//keeps note of skins folder index + } + } + + //gets all png files in selected path + foreach (var file in d.GetFiles("*.png")) + { + PCK.MineFile mfNew = new PCK.MineFile();//new minefile template + ListViewItem Import = new ListViewItem();//listviewitem to store temporary data + Import.Text = file.Name.Remove(file.Name.Length - 4, 4);//gets file name without extension + mfNew.data = File.ReadAllBytes(contents.SelectedPath + @"\" + file.Name.Remove(file.Name.Length - 4, 4) + ".png");//sets minefile data to image data of current skin + + TreeNode skin = new TreeNode();//create template treenode for minefile + + currentPCK.mineFiles.Add(mfNew);//adds new minefile to minefile list for skin + mfNew.filesize = mfNew.data.Length;//gets filesize of the skin image + + //Sets minefile directory based on pcks structure/type + if (mashupStructure == true) + { + mfNew.name = "Skins/" + Import.Text + ".png"; + } + else + { + mfNew.name = Import.Text + ".png"; + } + + //sets minefile type based on wether cape or skin + if (Import.Text.Remove(7, Import.Text.Length - 7) == "dlccape") + { + mfNew.type = 1; + } + else if (Import.Text.Remove(7, Import.Text.Length - 7) == "DLCCAPE") + { + mfNew.type = 1; + } + else + { + mfNew.type = 0; + } + skin.Text = Import.Text + ".png";//adds file extension to minefile + skin.Tag = mfNew;//sets nodes minefile data + + //presest variables for minefile skin data about to be imported + string entryName = ""; + string entryValue = ""; + string locNameId = ""; + string locName = ""; + string locThemeId = ""; + string locTheme = ""; + bool entryStart = true;//assistant for parcing through metadata file data to import + int i = 0; + + foreach (char entry in File.ReadAllText(contents.SelectedPath + @"\" + Import.Text + ".png.txt").ToList()) + { + //imports current skins metadata from metadata file + if (entry.ToString() != ":" && entry.ToString() != "\n" && entryStart == true) + { + entryName += entry.ToString(); + } + else if (entry.ToString() != ":" && entry.ToString() != "\n" && entryStart == false) + { + entryValue += entry.ToString(); + } + else if (entry.ToString() == ":" && entryStart == true) + { + entryStart = false; + } + else + { + //adds minefiles metadata and presets loc data for minefile + object[] ENTRY = { entryName, entryValue }; + mfNew.entries.Add(ENTRY); + + if (entryName == "DISPLAYNAMEID") + { + locNameId = entryValue; + } + + if (entryName == "DISPLAYNAME") + { + locName = entryValue; + } + + if (entryName == "THEMENAMEID") + { + locThemeId = entryValue; + } + + if (entryName == "THEMENAME") + { + locTheme = entryValue; + } + + //creates displayname id in loc file + if (locNameId != "" && locName != "") + { + LOC l; + + try + { + l = new LOC(mfLoc.data); + } + catch + { + MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + displayId dis = new displayId(); + dis.id = locNameId; + dis.defaultName = locName; + + l.ids.names.Add(dis.id); + + foreach (LOC.Language lo in l.langs) + lo.names.Add(dis.defaultName); + mfLoc.data = l.Rebuild(); + locNameId = ""; + locName = ""; + } + + //creates metadata id in loc file + if (locThemeId != "" && locTheme != "") + { + LOC l; + + try + { + l = new LOC(mfLoc.data); + } + catch + { + MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + displayId b = new displayId(); + b.id = locThemeId; + b.defaultName = locTheme; + + l.ids.names.Add(b.id); + + foreach (LOC.Language lo in l.langs) + lo.names.Add(b.defaultName); + + mfLoc.data = l.Rebuild(); + locThemeId = ""; + locTheme = ""; + } + entryName = ""; + entryValue = ""; + entryStart = true; + } + } + //sets file icon + skin.ImageIndex = 2; + skin.SelectedImageIndex = 2; + //Adds new minefile node to a destination based on pcks skin structure type + if (mashupStructure == true) + { + treeViewMain.Nodes[skinsFolder].Nodes.Add(skin); + } + else + { + treeViewMain.Nodes.Add(skin); + } + } + } + contents.Dispose();//disposes temporary data + saved = false; + } + #endregion + + #region imports individual skin to pck + private void importSkin(object sender, EventArgs e) + { + OpenFileDialog contents = new OpenFileDialog(); + contents.Title = "Select Extracted Skin Data File"; + contents.Filter = "Text Files (*.txt)|*.txt"; + + if (contents.ShowDialog() == DialogResult.OK) + { + try + { + string skinNameImport = System.IO.Path.GetFileName(contents.FileName);//Gets skin name + PCK.MineFile mfNew = new PCK.MineFile();//new minefile template + ListViewItem Import = new ListViewItem();//listviewitem to store temporary data + Import.Text = skinNameImport.Remove(skinNameImport.Length - 4, 4);//gets file name without extension + mfNew.data = File.ReadAllBytes(contents.FileName.Remove(contents.FileName.Length - 4, 4));//sets minefile data to image data of current skin + + bool mashupStructure = false;//creates variable to indicate wether current pck skin structure is mashup or regular skin + int skinsFolder = 0;//temporary index for skins folder for if structure is mashup + + //checks to see if pck contains a skins folder + foreach (TreeNode item in treeViewMain.Nodes) + { + if (item.Text == "Skins") + { + mashupStructure = true; + skinsFolder = item.Index; + } + } + + TreeNode skin = new TreeNode();//create template treenode for minefile + + currentPCK.mineFiles.Add(mfNew);//Adds minefile to minefile list + mfNew.filesize = mfNew.data.Length;//gets and sets minefile filesize + if (mashupStructure == true) + { + mfNew.name = "Skins/" + Import.Text; + } + else + { + mfNew.name = Import.Text; + } + mfNew.type = 0;//sets file type to default + + skin.Text = Import.Text;//sets nodes minefile name + skin.Tag = mfNew;//sets nodes minefile data + + //presest variables for minefile skin data about to be imported + string entryName = ""; + string entryValue = ""; + string locNameId = ""; + string locName = ""; + string locThemeId = ""; + string locTheme = ""; + bool entryStart = true;//assistant for parcing through metadata file data to import + int i = 0; + + foreach (char entry in File.ReadAllText(contents.FileName).ToList()) + { + //imports current skins metadata from metadata file + if (entry.ToString() != ":" && entry.ToString() != "\n" && entryStart == true) + { + entryName += entry.ToString(); + } + else if (entry.ToString() != ":" && entry.ToString() != "\n" && entryStart == false) + { + entryValue += entry.ToString(); + } + else if (entry.ToString() == ":" && entryStart == true) + { + entryStart = false; + } + else + { + //adds minefiles metadata and presets loc data for minefile + object[] ENTRY = { entryName, entryValue }; + mfNew.entries.Add(ENTRY); + + if (entryName == "DISPLAYNAMEID") + { + locNameId = entryValue; + } + + if (entryName == "DISPLAYNAME") + { + locName = entryValue; + } + + if (entryName == "THEMENAMEID") + { + locThemeId = entryValue; + } + + if (entryName == "THEMENAME") + { + locTheme = entryValue; + } + + //creates displayname id in loc file + if (locNameId != "" && locName != "") + { + LOC l; + + try + { + l = new LOC(mfLoc.data); + } + catch + { + MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + displayId dis = new displayId(); + dis.id = locNameId; + dis.defaultName = locName; + + l.ids.names.Add(dis.id); + + foreach (LOC.Language lo in l.langs) + lo.names.Add(dis.defaultName); + mfLoc.data = l.Rebuild(); + locNameId = ""; + locName = ""; + } + + //creates metadata id in loc file + if (locThemeId != "" && locTheme != "") + { + LOC l; + + try + { + l = new LOC(mfLoc.data); + } + catch + { + MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + displayId b = new displayId(); + b.id = locThemeId; + b.defaultName = locTheme; + + l.ids.names.Add(b.id); + + foreach (LOC.Language lo in l.langs) + lo.names.Add(b.defaultName); + + mfLoc.data = l.Rebuild(); + locThemeId = ""; + locTheme = ""; + } + entryName = ""; + entryValue = ""; + entryStart = true; + } + } + //sets file icon + skin.ImageIndex = 2; + skin.SelectedImageIndex = 2; + //Adds new minefile node to a destination based on pcks skin structure type + if (mashupStructure == true) + { + treeViewMain.Nodes[skinsFolder].Nodes.Add(skin); + } + else + { + treeViewMain.Nodes.Add(skin); + } + } catch (Exception) + { + MessageBox.Show("Something went wrong");//error handling + } + } + contents.Dispose();//disposes temporary data + saved = false; + } + #endregion + + #region adds folder/directory entry to pck + private void folderToolStripMenuItem_Click(object sender, EventArgs e) + { + TreeNode NEW = new TreeNode(); + NEW.ImageIndex = 0; + NEW.SelectedImageIndex = 0; + NEW.Text = "New Folder"; + if (treeViewMain.SelectedNode.Tag == null) + { + treeViewMain.SelectedNode.Nodes.Add(NEW); + } + else + { + treeViewMain.Nodes.Add(NEW); + } + saved = false; + } + #endregion + + #region opens pck installation page + private void installationToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start(hosturl + "pckStudio#install"); + } + #endregion + + #region opens pck binka tutorial video + private void binkaConversionToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=v6EYr4zc7rI"); + } + #endregion + + #region opens pck donation page + private void donateToolStripMenuItem_Click(object sender, EventArgs e) + { + } + #endregion + + #region opens pck faq page + private void fAQToolStripMenuItem1_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start(hosturl + "pckStudio#faq"); + } + #endregion + + #region items class for use in bedrock skin conversion + public class Item + { + public string Id { get; set; } + public string Name { get; set; } + } + #endregion + + #region converts and ports all skins in pck to mc bedrock format + private void convertToBedrockToolStripMenuItem_Click(object sender, EventArgs e) + { + if (openedPCKS.Visible == true && MessageBox.Show("Convert " + openedPCKS.SelectedTab.Text + " to a Bedrock Edition format?", "Convert", MessageBoxButtons.YesNo, MessageBoxIcon.None) == DialogResult.Yes) + { + try + { + bool latest = true; + + string packName = openedPCKS.SelectedTab.Text.Remove(openedPCKS.SelectedTab.Text.Count() - 4, 4);//Determines skin packs name off of pck file name + + //Lets user choose were to put generated pack + SaveFileDialog convert = new SaveFileDialog(); + convert.Filter = "PCK (Minecarft Bedrock DLC)|*.mcpack"; + convert.FileName = packName; + + if (convert.ShowDialog() == DialogResult.OK) + { + //creates directory for conversion + string root = Path.GetDirectoryName(convert.FileName) + "\\" + packName; + string rootFinal = Path.GetDirectoryName(convert.FileName) + "\\"; + + //creates pack uuid off of the last skin id detected + string uuid = "99999999";//default + + //creates list of skin display names + List skinDisplayNames = new List(); + + //MessageBox.Show(root);//debug thingy to make sure filepath is correct + + //add all skins to a list + List skinsList = new List(); + List capesList = new List(); + foreach (PCK.MineFile skin in currentPCK.mineFiles) + { + if (skin.name.Count() == 19) + { + if (skin.name.Remove(7, skin.name.Count() - 7) == "dlcskin") + { + skinsList.Add(skin); + uuid = skin.name.Remove(12, 7); + uuid = uuid.Remove(0, 7); + uuid = "abcdefa" + uuid; + } + if (skin.name.Remove(7, skin.name.Count() - 7) == "dlccape") + { + capesList.Add(skin); + } + } + } + + if (skinsList.Count() == 0) + { + MessageBox.Show("No skins were found"); + return; + } + + Directory.CreateDirectory(root);//Creates directory for skin pack + Directory.CreateDirectory(root + "/texts");//create directory for skin pack text files + + //create skins json file + using (StreamWriter writeSkins = new StreamWriter(root + "/skins.json")) + { + writeSkins.WriteLine("{"); + writeSkins.WriteLine(" \"skins\": ["); + + int skinAmount = 0; + foreach (PCK.MineFile newSkin in skinsList) + { + skinAmount += 1; + string skinName = "skinName"; + string capePath = ""; + bool hasCape = false; + + foreach (Object[] entry in newSkin.entries) + { + if (entry[0].ToString() == "DISPLAYNAME") + { + skinName = entry[1].ToString(); + skinDisplayNames.Add(new Item() { Id = newSkin.name.Remove(15, 4), Name = entry[1].ToString() }); + } + if (entry[0].ToString() == "CAPEPATH") + { + hasCape = true; + capePath = entry[1].ToString(); + } + } + + writeSkins.WriteLine(" {"); + writeSkins.WriteLine(" \"localization_name\": " + "\"" + newSkin.name.Remove(15, 4) + "\","); + + MemoryStream png = new MemoryStream(newSkin.data); //Gets image data from minefile data + Image skinPicture = Image.FromStream(png); //Constructs image data into image + if (skinPicture.Height == skinPicture.Width) + { + writeSkins.WriteLine(" \"geometry\": \"geometry." + packName + "." + newSkin.name.Remove(15, 4) + "\","); + } + writeSkins.WriteLine(" \"texture\": " + "\"" + newSkin.name + "\","); + if (hasCape == true) + { + writeSkins.WriteLine(" \"cape\":" + "\"" + capePath + "\","); + } + writeSkins.WriteLine(" \"type\": \"free\""); + if (skinAmount != skinsList.Count) + { + writeSkins.WriteLine(" },"); + } + else + { + writeSkins.WriteLine(" }"); + } + } + + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"serialize_name\": \"" + packName + "\","); + writeSkins.WriteLine(" \"localization_name\": \"" + packName + "\""); + writeSkins.WriteLine("}"); + } + + //Create geometry file + using (StreamWriter writeSkins = new StreamWriter(root + "/geometry.json")) + { + writeSkins.WriteLine("{"); + int newSkinCount = 0; + foreach (PCK.MineFile newSkin in skinsList) + { + + newSkinCount += 1; + string skinType = "steve"; + MemoryStream png = new MemoryStream(newSkin.data); //Gets image data from minefile data + Image skinPicture = Image.FromStream(png); //Constructs image data into image + + if (skinPicture.Height == skinPicture.Width / 2) + { + skinType = "64x32"; + continue; + } + + double offsetHead = 0; + double offsetBody = 0; + double offsetArms = 0; + double offsetLegs = 0; + + //creates list of skin model data + List modelDataHead = new List(); + List modelDataBody = new List(); + List modelDataLeftArm = new List(); + List modelDataRightArm = new List(); + List modelDataLeftLeg = new List(); + List modelDataRightLeg = new List(); + List modelData = new List(); + + + if (skinPicture.Height == skinPicture.Width) + { + //determines skin type based on image dimensions, existence of BOX tags, and the ANIM value + foreach (Object[] entry in newSkin.entries) + { + if (entry[0].ToString() == "BOX") + { + string mClass = ""; + string mData = ""; + foreach (char dCheck in entry[1].ToString()) + { + if (dCheck.ToString() != " ") + { + mClass += dCheck.ToString(); + } + else + { + mData = entry[1].ToString().Remove(0, mClass.Count() + 1); + break; + } + } + + if (mClass == "HEAD") + { + mClass = "head"; + modelDataHead.Add(new Item() { Id = mClass, Name = mData }); + } + else if (mClass == "BODY") + { + mClass = "body"; + modelDataBody.Add(new Item() { Id = mClass, Name = mData }); + } + else if (mClass == "ARM0") + { + mClass = "rightArm"; + modelDataRightArm.Add(new Item() { Id = mClass, Name = mData }); + } + else if (mClass == "ARM1") + { + mClass = "leftArm"; + modelDataLeftArm.Add(new Item() { Id = mClass, Name = mData }); + } + else if (mClass == "LEG0") + { + mClass = "leftLeg"; + modelDataLeftLeg.Add(new Item() { Id = mClass, Name = mData }); + } + else if (mClass == "LEG1") + { + mClass = "rightLeg"; + modelDataRightLeg.Add(new Item() { Id = mClass, Name = mData }); + } + } + + if (entry[0].ToString() == "OFFSET") + { + string oClass = ""; + string oData = ""; + foreach (char oCheck in entry[1].ToString()) + { + oData = entry[1].ToString(); + if (oCheck.ToString() != " ") + { + oClass += oCheck.ToString(); + } + else + { + break; + } + + if (oClass == "HEAD") + { + offsetHead += Double.Parse(oData.Remove(0, 7)) * -1; + } + else if (oClass == "BODY") + { + offsetBody += Double.Parse(oData.Remove(0, 7)) * -1; + } + else if (oClass == "ARM0") + { + offsetArms += Double.Parse(oData.Remove(0, 7)) * -1; + } + else if (oClass == "LEG0") + { + offsetLegs += Double.Parse(oData.Remove(0, 7)) * -1; + } + } + } + + if (entry[0].ToString() == "ANIM") + { + if (entry[1].ToString() == "0x40000") + { + + } + else if (entry[1].ToString() == "0x80000") + { + skinType = "alex"; + } + } + } + + if (modelDataHead.Count + modelDataBody.Count + modelDataLeftArm.Count + modelDataRightArm.Count + modelDataLeftLeg.Count + modelDataRightLeg.Count > 0) + { + skinType = "custom"; + } + } + + writeSkins.WriteLine(" \"" + "geometry." + packName + "." + newSkin.name.Remove(15, 4) + "\": {"); + + //makes skin model depending on what skin type the skin is + if (skinType == "custom") + { + writeSkins.WriteLine(" \"bones\": ["); + + //Head Data + writeSkins.WriteLine(" {"); + writeSkins.WriteLine(" \"pivot\": [ 0, 24, 0 ],"); + writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); + writeSkins.WriteLine(" \"cubes\": [ "); + //Creates bones for each head box + int modelAmount = 0; + foreach (Item model in modelDataHead) + { + modelAmount += 1; + + string xo = ""; + string yo = ""; + string zo = ""; + string xs = ""; + string ys = ""; + string zs = ""; + string xv = ""; + string yv = ""; + + int spaceCheck = 0; + + foreach (char value in model.Name.ToString()) + { + //0X1Y2Z3X4Y5Z6X7Y + if (value.ToString() != " " && spaceCheck == 0) + { + xo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 1) + { + yo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 2) + { + zo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 3) + { + xs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 4) + { + ys += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 5) + { + zs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 6) + { + xv += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 7) + { + yv += value.ToString(); + } + else if (value.ToString() == " ") + { + spaceCheck += 1; + } + } + + writeSkins.WriteLine(" {"); + try + { + writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo)) + ", " + ((Double.Parse(yo) + 0) * -1 + offsetHead + 24 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); + writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + (Double.Parse(ys)) + ", " + Double.Parse(zs) + " ],"); + writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); + writeSkins.WriteLine(" \"inflate\": 0,"); + writeSkins.WriteLine(" \"mirror\": false"); + } + catch (Exception) + { + MessageBox.Show("A HEAD BOX tag in " + newSkin.name + " has an invalid value!"); + } + if (modelAmount != modelDataHead.Count) + { + writeSkins.WriteLine(" },"); + } + else + { + writeSkins.WriteLine(" }"); + } + } + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"META_BoneType\": \"" + "clothing" + "\","); + writeSkins.WriteLine(" \"name\": \"" + "head" + "\","); + writeSkins.WriteLine(" \"parent\":" + " null"); + writeSkins.WriteLine(" },"); + + + //Body Data + writeSkins.WriteLine(" {"); + writeSkins.WriteLine(" \"pivot\": [ 0, 12, 0 ],"); + writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); + writeSkins.WriteLine(" \"cubes\": [ "); + //Creates bones for each body box + modelAmount = 0; + foreach (Item model in modelDataBody) + { + modelAmount += 1; + + string xo = ""; + string yo = ""; + string zo = ""; + string xs = ""; + string ys = ""; + string zs = ""; + string xv = ""; + string yv = ""; + + int spaceCheck = 0; + + foreach (char value in model.Name.ToString()) + { + //0X1Y2Z3X4Y5Z6X7Y + if (value.ToString() != " " && spaceCheck == 0) + { + xo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 1) + { + yo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 2) + { + zo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 3) + { + xs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 4) + { + ys += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 5) + { + zs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 6) + { + xv += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 7) + { + yv += value.ToString(); + } + else if (value.ToString() == " ") + { + spaceCheck += 1; + } + } + writeSkins.WriteLine(" {"); + try + { + writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo)) + ", " + ((Double.Parse(yo) + 0) * -1 + offsetBody + 24 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); + writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); + writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); + writeSkins.WriteLine(" \"inflate\": 0,"); + writeSkins.WriteLine(" \"mirror\": false"); + } + catch (Exception) + { + MessageBox.Show("A BODY BOX tag in " + newSkin.name + " has an invalid value!"); + } + if (modelAmount != modelDataBody.Count) + { + writeSkins.WriteLine(" },"); + } + else + { + writeSkins.WriteLine(" }"); + } + } + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); + writeSkins.WriteLine(" \"name\": \"" + "body" + "\","); + writeSkins.WriteLine(" \"parent\":" + " null"); + writeSkins.WriteLine(" },"); + + + //LeftArm Data + writeSkins.WriteLine(" {"); + writeSkins.WriteLine(" \"pivot\": [ 5, 22, 0 ],"); + writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); + writeSkins.WriteLine(" \"cubes\": [ "); + //Creates bones for each arm1 box + modelAmount = 0; + foreach (Item model in modelDataLeftArm) + { + modelAmount += 1; + + string xo = ""; + string yo = ""; + string zo = ""; + string xs = ""; + string ys = ""; + string zs = ""; + string xv = ""; + string yv = ""; + + int spaceCheck = 0; + + foreach (char value in model.Name.ToString()) + { + //0X1Y2Z3X4Y5Z6X7Y + if (value.ToString() != " " && spaceCheck == 0) + { + xo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 1) + { + yo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 2) + { + zo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 3) + { + xs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 4) + { + ys += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 5) + { + zs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 6) + { + xv += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 7) + { + yv += value.ToString(); + } + else if (value.ToString() == " ") + { + spaceCheck += 1; + } + } + writeSkins.WriteLine(" {"); + try + { + writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo) + 5) + ", " + ((Double.Parse(yo)) * -1 + offsetArms + 22 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); + writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); + writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); + writeSkins.WriteLine(" \"inflate\": 0,"); + writeSkins.WriteLine(" \"mirror\": false"); + } + catch (Exception) + { + MessageBox.Show("A ARM0 BOX tag in " + newSkin.name + " has an invalid value!"); + } + if (modelAmount != modelDataLeftArm.Count) + { + writeSkins.WriteLine(" },"); + } + else + { + writeSkins.WriteLine(" }"); + } + } + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); + writeSkins.WriteLine(" \"name\": \"" + "leftArm" + "\","); + writeSkins.WriteLine(" \"parent\":" + " null"); + writeSkins.WriteLine(" },"); + + //RightArm Data + writeSkins.WriteLine(" {"); + writeSkins.WriteLine(" \"pivot\": [ -5, 22, 0 ],"); + writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); + writeSkins.WriteLine(" \"cubes\": [ "); + //Creates bones for each arm0 box + modelAmount = 0; + foreach (Item model in modelDataRightArm) + { + modelAmount += 1; + + string xo = ""; + string yo = ""; + string zo = ""; + string xs = ""; + string ys = ""; + string zs = ""; + string xv = ""; + string yv = ""; + + int spaceCheck = 0; + + foreach (char value in model.Name.ToString()) + { + //0X1Y2Z3X4Y5Z6X7Y + if (value.ToString() != " " && spaceCheck == 0) + { + xo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 1) + { + yo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 2) + { + zo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 3) + { + xs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 4) + { + ys += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 5) + { + zs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 6) + { + xv += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 7) + { + yv += value.ToString(); + } + else if (value.ToString() == " ") + { + spaceCheck += 1; + } + } + writeSkins.WriteLine(" {"); + try + { + writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo) - 5) + ", " + ((Double.Parse(yo)) * -1 + offsetArms + 22 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); + writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); + writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); + writeSkins.WriteLine(" \"inflate\": 0,"); + writeSkins.WriteLine(" \"mirror\": false"); + } + catch (Exception) + { + MessageBox.Show("A ARM1 BOX tag in " + newSkin.name + " has an invalid value!"); + } + if (modelAmount != modelDataRightArm.Count) + { + writeSkins.WriteLine(" },"); + } + else + { + writeSkins.WriteLine(" }"); + } + } + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); + writeSkins.WriteLine(" \"name\": \"" + "rightArm" + "\","); + writeSkins.WriteLine(" \"parent\":" + " null"); + writeSkins.WriteLine(" },"); + + //LeftLeg Data + writeSkins.WriteLine(" {"); + writeSkins.WriteLine(" \"pivot\": [ 1.9, 12, 0 ],"); + writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); + writeSkins.WriteLine(" \"cubes\": [ "); + //Creates bones for each leg1 box + modelAmount = 0; + foreach (Item model in modelDataLeftLeg) + { + modelAmount += 1; + + string xo = ""; + string yo = ""; + string zo = ""; + string xs = ""; + string ys = ""; + string zs = ""; + string xv = ""; + string yv = ""; + + int spaceCheck = 0; + + foreach (char value in model.Name.ToString()) + { + //0X1Y2Z3X4Y5Z6X7Y + if (value.ToString() != " " && spaceCheck == 0) + { + xo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 1) + { + yo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 2) + { + zo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 3) + { + xs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 4) + { + ys += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 5) + { + zs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 6) + { + xv += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 7) + { + yv += value.ToString(); + } + else if (value.ToString() == " ") + { + spaceCheck += 1; + } + } + writeSkins.WriteLine(" {"); + try + { + writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo) - 1.9) + ", " + ((Double.Parse(yo)) * -1 + offsetLegs + 12 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); + writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); + writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); + writeSkins.WriteLine(" \"inflate\": 0,"); + writeSkins.WriteLine(" \"mirror\": false"); + } + catch (Exception) + { + MessageBox.Show("A LEG1 BOX tag in " + newSkin.name + " has an invalid value!"); + } + if (modelAmount != modelDataLeftLeg.Count) + { + writeSkins.WriteLine(" },"); + } + else + { + writeSkins.WriteLine(" }"); + } + } + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); + writeSkins.WriteLine(" \"name\": \"" + "leftLeg" + "\","); + writeSkins.WriteLine(" \"parent\":" + " null"); + writeSkins.WriteLine(" },"); + + //RightLeg Data + writeSkins.WriteLine(" {"); + writeSkins.WriteLine(" \"pivot\": [ -1.9, 12, 0 ],"); + writeSkins.WriteLine(" \"rotation\": [ 0, 0, 0 ],"); + writeSkins.WriteLine(" \"cubes\": [ "); + //Creates bones for each leg0 box + modelAmount = 0; + foreach (Item model in modelDataRightLeg) + { + modelAmount += 1; + + string xo = ""; + string yo = ""; + string zo = ""; + string xs = ""; + string ys = ""; + string zs = ""; + string xv = ""; + string yv = ""; + + int spaceCheck = 0; + + foreach (char value in model.Name.ToString()) + { + //0X1Y2Z3X4Y5Z6X7Y + if (value.ToString() != " " && spaceCheck == 0) + { + xo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 1) + { + yo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 2) + { + zo += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 3) + { + xs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 4) + { + ys += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 5) + { + zs += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 6) + { + xv += value.ToString(); + } + else if (value.ToString() != " " && spaceCheck == 7) + { + yv += value.ToString(); + } + else if (value.ToString() == " ") + { + spaceCheck += 1; + } + } + writeSkins.WriteLine(" {"); + try + { + writeSkins.WriteLine(" \"origin\": [ " + (Double.Parse(xo) + 1.9) + ", " + ((Double.Parse(yo)) * -1 + offsetLegs + 12 - Double.Parse(ys)) + ", " + (Double.Parse(zo)) + " ],"); + writeSkins.WriteLine(" \"size\": [ " + Double.Parse(xs) + ", " + Double.Parse(ys) + ", " + Double.Parse(zs) + " ],"); + writeSkins.WriteLine(" \"uv\": [ " + Double.Parse(xv) + ", " + Double.Parse(yv) + " ],"); + writeSkins.WriteLine(" \"inflate\": 0,"); + writeSkins.WriteLine(" \"mirror\": false"); + } + catch (Exception) + { + MessageBox.Show("A LEG0 BOX tag in " + newSkin.name + " has an invalid value!"); + } + if (modelAmount != modelDataRightLeg.Count) + { + writeSkins.WriteLine(" },"); + } + else + { + writeSkins.WriteLine(" }"); + } + } + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"META_BoneType\": \"" + "base" + "\","); + writeSkins.WriteLine(" \"name\": \"" + "rightLeg" + "\","); + writeSkins.WriteLine(" \"parent\":" + " null"); + writeSkins.WriteLine(" }"); + writeSkins.WriteLine(" ],"); + } + else if (skinType == "64x32") + { + writeSkins.Write(" \"bones\": [ ],"); + } + else if (skinType == "steve") + { + writeSkins.Write(" \"bones\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"body\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"bodyArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"belt\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 24, -4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 8, 8 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"head\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 24, -4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 8, 8 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 32, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.5, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"hat\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"helmet\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 32, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArm\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -8, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 40, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArm\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArmArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArmArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 48, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftSleeve\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -8, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 40, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightSleeve\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -0.1, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLeg\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -3.9, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLeg\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLegging\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLegging\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -0.1, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftPants\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -3.9, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightPants\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"jacket\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"helmetArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"bodyArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArmArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 22, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArmArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"waist\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLegArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLegArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightBootArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftBootArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -6, 15, 1 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"item\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightItem\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 6, 15, 1 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"item\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftItem\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ],"); + } + else if (skinType == "alex") + { + writeSkins.Write(" \"bones\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"body\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"bodyArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"belt\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 24, -4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 8, 8 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"head\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 24, -4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 8, 8 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 32, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.5, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"hat\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"helmet\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 4, 11.5, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 3, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 32, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArm\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -7, 11.5, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 3, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 40, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArm\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArmArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArmArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 4, 11.5, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 3, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 48, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftSleeve\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -7, 11.5, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 3, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 40, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightSleeve\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -0.1, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLeg\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -3.9, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 16 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"base\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLeg\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": null " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLegArmor\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLegging\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -0.1, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 48 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftPants\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -3.9, 0, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 4, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 0, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightPants\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [ " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"origin\": [ -4, 12, -2 ], " + Environment.NewLine + " " + Environment.NewLine + " \"size\": [ 8, 12, 4 ], " + Environment.NewLine + " " + Environment.NewLine + " \"uv\": [ 16, 32 ], " + Environment.NewLine + " " + Environment.NewLine + " \"inflate\": 0.25, " + Environment.NewLine + " " + Environment.NewLine + " \"mirror\": false " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"clothing\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"jacket\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"helmetArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"head\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 24, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"bodyArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightArmArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 5, 21.5, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftArmArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 0, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"waist\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"body\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightLegArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftLegArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightBootArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 1.9, 12, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"armor_offset\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftBootArmorOffset\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftLeg\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ -6, 14.5, 1 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"item\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"rightItem\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"rightArm\" " + Environment.NewLine + " " + Environment.NewLine + " }, " + Environment.NewLine + " " + Environment.NewLine + " { " + Environment.NewLine + " " + Environment.NewLine + " \"pivot\": [ 6, 14.5, 1 ], " + Environment.NewLine + " " + Environment.NewLine + " \"rotation\": [ 0, 0, 0 ], " + Environment.NewLine + " " + Environment.NewLine + " \"cubes\": [], " + Environment.NewLine + " " + Environment.NewLine + " \"META_BoneType\": \"item\", " + Environment.NewLine + " " + Environment.NewLine + " \"name\": \"leftItem\", " + Environment.NewLine + " " + Environment.NewLine + " \"parent\": \"leftArm\" " + Environment.NewLine + " " + Environment.NewLine + " } " + Environment.NewLine + " " + Environment.NewLine + " ],"); + } + + + writeSkins.WriteLine(" \"texturewidth\": 64 , "); + writeSkins.WriteLine(" \"textureheight\": 64,"); + writeSkins.WriteLine(" \"META_ModelVersion\": \"1.0.6\","); + writeSkins.WriteLine(" \"rigtype\": \"normal\","); + writeSkins.WriteLine(" \"animationArmsDown\": false,"); + writeSkins.WriteLine(" \"animationArmsOutFront\": false,"); + writeSkins.WriteLine(" \"animationStatueOfLibertyArms\": false,"); + writeSkins.WriteLine(" \"animationSingleArmAnimation\": false,"); + writeSkins.WriteLine(" \"animationStationaryLegs\": false,"); + writeSkins.WriteLine(" \"animationSingleLegAnimation\": false,"); + writeSkins.WriteLine(" \"animationNoHeadBob\": false,"); + writeSkins.WriteLine(" \"animationDontShowArmor\": false,"); + writeSkins.WriteLine(" \"animationUpsideDown\": false,"); + writeSkins.WriteLine(" \"animationInvertedCrouch\": false"); + if (newSkinCount != skinsList.Count) + { + writeSkins.WriteLine(" },"); + } + else + { + writeSkins.WriteLine(" }"); + } + } + Console.WriteLine(writeSkins); + } + Random rnd = new Random(); + int month = rnd.Next(1, 13); // creates a number between 1 and 12 + int dice = rnd.Next(1, 7); // creates a number between 1 and 6 + int card = rnd.Next(52); + + string randomPlus = month.ToString() + dice.ToString() + card.ToString(); + if (randomPlus.Count() > 12) + { + randomPlus.Remove(0, randomPlus.Count() - 12); + } + else if (randomPlus.Count() < 12) + { + int ii = 12 - randomPlus.Count(); + for (int i = 0; i < ii; i++) + { + randomPlus += 0; + } + } + else if (randomPlus.Count() == 12) + { + } + + //Create Manifest file + using (StreamWriter writeSkins = new StreamWriter(root + "/manifest.json")) + { + writeSkins.WriteLine("{"); + writeSkins.WriteLine(" \"header\": {"); + writeSkins.WriteLine(" \"version\": ["); + writeSkins.WriteLine(" 1,"); + writeSkins.WriteLine(" 0,"); + writeSkins.WriteLine(" 0"); + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"description\": \"Template by Ultmate_Mario, Conversion by Nobledez\","); + writeSkins.WriteLine(" \"name\": \"" + packName + "\","); + writeSkins.WriteLine(" \"uuid\": \"" + uuid.Remove(0, 4) + "-" + uuid.Remove(0, 8) + "-" + uuid.Remove(1, 8) + "-" + uuid.Remove(2, 8) + "-" + randomPlus + "\""); //8-4-4-4-12 + writeSkins.WriteLine(" },"); + writeSkins.WriteLine(" \"modules\": ["); + writeSkins.WriteLine(" {"); + writeSkins.WriteLine(" \"version\": ["); + writeSkins.WriteLine(" 1,"); + writeSkins.WriteLine(" 0,"); + writeSkins.WriteLine(" 0"); + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"type\": \"skin_pack\","); + writeSkins.WriteLine(" \"uuid\": \"8dfd1d65-b3ca-4726-b9e0-9b46a40b72a4\""); + writeSkins.WriteLine(" }"); + writeSkins.WriteLine(" ],"); + writeSkins.WriteLine(" \"format_version\": 1"); + writeSkins.WriteLine("}"); + } + + //create lang file + using (StreamWriter writeSkins = new StreamWriter(root + "/texts/en_US.lang")) + { + writeSkins.WriteLine("skinpack." + packName + "=" + Path.GetFileNameWithoutExtension(convert.FileName)); + foreach (Item displayName in skinDisplayNames) + { + writeSkins.WriteLine("skin." + packName + "." + displayName.Id + "=" + displayName.Name); + } + } + + //adds skin textures + foreach (PCK.MineFile skinTexture in skinsList) + { + var ms = new MemoryStream(skinTexture.data); + Bitmap saveSkin = new Bitmap(Image.FromStream(ms)); + if (saveSkin.Width == saveSkin.Height) + { + ResizeImage(saveSkin, 64, 64); + } + else if (saveSkin.Height == saveSkin.Width / 2) + { + ResizeImage(saveSkin, 64, 32); + } + else + { + ResizeImage(saveSkin, 64, 64); + } + saveSkin.Save(root + "/" + skinTexture.name, ImageFormat.Png); + } + + //adds cape textures + foreach (PCK.MineFile capeTexture in capesList) + { + File.WriteAllBytes(root + "/" + capeTexture.name, capeTexture.data); + } + + string startPath = root; + string zipPath = rootFinal + "content.zipe"; + + try + { + ZipFile.CreateFromDirectory(startPath, zipPath);//Creates contents zipe + }catch (Exception) + { + File.Delete(zipPath); + ZipFile.CreateFromDirectory(startPath, zipPath);//Creates contents zipe + } + + rootFinal = root + "temp/"; + Directory.CreateDirectory(rootFinal); + File.Move(zipPath, rootFinal + "content.zipe"); + File.Copy(root + "/manifest.json", rootFinal + "/manifest.json"); + ZipFile.CreateFromDirectory(rootFinal, convert.FileName);//Creates mcpack + Directory.Delete(root, true); + Directory.Delete(rootFinal, true); + + MessageBox.Show("Conversion Complete"); + } + } + catch (Exception convertEr) + { + MessageBox.Show(convertEr.ToString()); + } + } + else if (openedPCKS.Visible == false) + { + MessageBox.Show("Open PCK file first!"); + } + } + + + public static Bitmap ResizeImage(Image image, int width, int height) + { + var destRect = new Rectangle(0, 0, width, height); + var destImage = new Bitmap(width, height); + + destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); + + using (var graphics = Graphics.FromImage(destImage)) + { + graphics.CompositingMode = CompositingMode.SourceCopy; + graphics.CompositingQuality = CompositingQuality.HighQuality; + graphics.InterpolationMode = InterpolationMode.NearestNeighbor; + graphics.SmoothingMode = SmoothingMode.HighQuality; + graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; + + using (var wrapMode = new ImageAttributes()) + { + wrapMode.SetWrapMode(WrapMode.TileFlipXY); + graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode); + } + } + + return destImage; + } + #endregion + + #region 3ds feature in testing + + private struct loadedTexture + { + public bool modified; + public uint gpuCommandsOffset; + public uint gpuCommandsWordCount; + public uint offset; + public int length; + public RenderBase.OTexture texture; + } + + private struct loadedMaterial + { + public string texture0; + public string texture1; + public string texture2; + public uint gpuCommandsOffset; + public uint gpuCommandsWordCount; + } + + private class loadedBCH + { + public uint mainHeaderOffset; + public uint gpuCommandsOffset; + public uint dataOffset; + public uint relocationTableOffset; + public uint relocationTableLength; + public List textures; + public List materials; + + public loadedBCH() + { + textures = new List(); + materials = new List(); + } + } + + private byte[] align(byte[] input) + { + int length = input.Length; + while ((length & 0x7f) > 0) length++; + byte[] output = new byte[length]; + Buffer.BlockCopy(input, 0, output, 0, input.Length); + return output; + } + + private void replaceData(Stream data, uint offset, int length, byte[] newData) + { + data.Seek(offset + length, SeekOrigin.Begin); + byte[] after = new byte[data.Length - data.Position]; + data.Read(after, 0, after.Length); + data.SetLength(offset); + data.Seek(offset, SeekOrigin.Begin); + data.Write(newData, 0, newData.Length); + data.Write(after, 0, after.Length); + } + + private void updateTexture(int index, loadedTexture newTex) + { + bch.textures.RemoveAt(index); + bch.textures.Insert(index, newTex); + } + + private void replaceCommand(Stream data, BinaryWriter output, uint newVal) + { + data.Seek(-8, SeekOrigin.Current); + output.Write(newVal); + data.Seek(4, SeekOrigin.Current); + } + + private void updateAddress(Stream data, BinaryReader input, BinaryWriter output, int diff) + { + uint offset = input.ReadUInt32(); + offset = (uint)(offset + diff); + data.Seek(-4, SeekOrigin.Current); + output.Write(offset); + } + + loadedBCH bch; + + private void create3dstToolStripMenuItem_Click(object sender, EventArgs e) + { + if (treeViewMain.SelectedNode != null) + { + + SaveFileDialog exportDs = new SaveFileDialog(); + exportDs.ShowDialog(); + string currentFile = exportDs.FileName; + + bch = new loadedBCH(); + + using (FileStream data = new FileStream(currentFile, FileMode.Open)) + { + BinaryReader input = new BinaryReader(data); + BinaryWriter output = new BinaryWriter(data); + + MemoryStream png = new MemoryStream(((PCK.MineFile)(treeViewMain.SelectedNode.Tag)).data); //Gets image data from minefile data + Image skinPicture = Image.FromStream(png); //Constructs image data into image + pictureBoxImagePreview.Image = skinPicture; //Sets image preview to image + + byte[] buffer = new byte[skinPicture.Width * skinPicture.Height * 4]; + input.Read(buffer, 0, buffer.Length); + Bitmap texture = TextureCodec.decode(buffer, skinPicture.Width, skinPicture.Height, RenderBase.OTextureFormat.rgba8); + tex.texture = new RenderBase.OTexture(texture, "Texure"); + + //tex.texture = treeViewMain.SelectedNode.Tag; + + for (int i = 0; i < bch.textures.Count; i++) + { + tex = bch.textures[i]; + tex.modified = true; + + if (tex.modified) + { + byte[] bufferx = align(TextureCodec.encode(tex.texture.texture, RenderBase.OTextureFormat.rgba8)); + int diff = bufferx.Length - tex.length; + + replaceData(data, tex.offset, tex.length, bufferx); + + //Update offsets of next textures + tex.length = bufferx.Length; + tex.modified = false; + updateTexture(i, tex); + for (int j = i; j < bch.textures.Count; j++) + { + loadedTexture next = bch.textures[j]; + next.offset = (uint)(next.offset + diff); + updateTexture(j, next); + } + + //Update all addresses poiting after the replaced data + bch.relocationTableOffset = (uint)(bch.relocationTableOffset + diff); + for (int index = 0; index < bch.relocationTableLength; index += 4) + { + data.Seek(bch.relocationTableOffset + index, SeekOrigin.Begin); + uint value = input.ReadUInt32(); + uint offset = value & 0x1ffffff; + byte flags = (byte)(value >> 25); + + if ((flags & 0x20) > 0 || flags == 7 || flags == 0xc) + { + if ((flags & 0x20) > 0) + data.Seek((offset * 4) + bch.gpuCommandsOffset, SeekOrigin.Begin); + else + data.Seek((offset * 4) + bch.mainHeaderOffset, SeekOrigin.Begin); + + uint address = input.ReadUInt32(); + if (address + bch.dataOffset > tex.offset) + { + address = (uint)(address + diff); + data.Seek(-4, SeekOrigin.Current); + output.Write(address); + } + } + } + + uint newSize = (uint)((tex.texture.texture.Width << 16) | tex.texture.texture.Height); + + //Update texture format + data.Seek(tex.gpuCommandsOffset, SeekOrigin.Begin); + for (int index = 0; index < tex.gpuCommandsWordCount * 3; index++) + { + uint command = input.ReadUInt32(); + + switch (command) + { + case 0xf008e: + case 0xf0096: + case 0xf009e: + replaceCommand(data, output, 0); //Set texture format to 0 = RGBA8888 + break; + case 0xf0082: + case 0xf0092: + case 0xf009a: + replaceCommand(data, output, newSize); //Set new texture size + break; + } + } + + //Update material texture format + foreach (loadedMaterial mat in bch.materials) + { + data.Seek(mat.gpuCommandsOffset, SeekOrigin.Begin); + for (int index = 0; index < mat.gpuCommandsWordCount; index++) + { + uint command = input.ReadUInt32(); + + switch (command) + { + case 0xf008e: if (mat.texture0 == tex.texture.name || mat.texture0 == "") replaceCommand(data, output, 0); break; + case 0xf0096: if (mat.texture1 == tex.texture.name || mat.texture1 == "") replaceCommand(data, output, 0); break; + case 0xf009e: if (mat.texture2 == tex.texture.name || mat.texture2 == "") replaceCommand(data, output, 0); break; + } + } + } + + //Patch up BCH header for new offsets and lengths + data.Seek(4, SeekOrigin.Begin); + byte backwardCompatibility = input.ReadByte(); + byte forwardCompatibility = input.ReadByte(); + + //Update Data Extended and Relocation Table offsets + data.Seek(18, SeekOrigin.Current); + if (backwardCompatibility > 0x20) updateAddress(data, input, output, diff); + updateAddress(data, input, output, diff); + + //Update data length + data.Seek(12, SeekOrigin.Current); + updateAddress(data, input, output, diff); + } + } + using (Stream file = File.Create(currentFile + ".tmp")) + { + CopyStream(output.BaseStream, file); + } + + } + + MessageBox.Show("Done!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + } + + + public static void CopyStream(Stream input, Stream output) + { + byte[] buffer = new byte[8 * 1024]; + int len; + while ((len = input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, len); + } + } + + #endregion + + #region Tool/MenuStrips + + private void openToolStripMenuItem1_Click(object sender, EventArgs e) + { + pckCenter open = new pckCenter(); + open.Show(); + } + + private void tutorialsToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start(hosturl + "pckStudio#tutorials"); + } + + private void wiiUPCKInstallerToolStripMenuItem_Click(object sender, EventArgs e) + { + installWiiU install = new installWiiU(null); + install.ShowDialog(); + } + + private void howToMakeABasicSkinPackToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=A43aHRHkKxk"); + } + + private void howToMakeACustomSkinModelToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=pEC_ug55lag"); + } + + private void howToMakeCustomSkinModelsbedrockToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=6z8NTogw5x4"); + } + + private void howToMakeCustomMusicToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=v6EYr4zc7rI"); + } + + private void howToInstallPcksDirectlyToWiiUToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=hRQagnEplec"); + } + + private void pCKCenterReleaseToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=E_6bXSh6yqw"); + } + + private void howPCKsWorkToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://www.youtube.com/watch?v=hTlImrRrCKQ"); + } + + private void PS3PCKInstallerToolStripMenuItem_Click(object sender, EventArgs e) + { + + installPS3 install = new installPS3(null); + install.ShowDialog(); + } + + private void settingsToolStripMenuItem_Click(object sender, EventArgs e) + { + Pref setting = new Pref(); + setting.Show(); + } + + private void administrativeToolsToolStripMenuItem_Click(object sender, EventArgs e) + { + PCK_Manager pckm = new PCK_Manager(); + pckm.Show(); + } + + private void uPDATEToolStripMenuItem1_Click(object sender, EventArgs e) + { + + if (new WebClient().DownloadString(basurl + "updatePCKStudio.txt").Replace("\n", "") != Version) + { + Console.WriteLine(new WebClient().DownloadString(basurl + "updatePCKStudio.txt").Replace("\n", "") + " != " + Version); + if (MessageBox.Show("Update avaliable!\ndo you want to update?", "UPDATE", MessageBoxButtons.YesNo) == DialogResult.Yes) + Process.Start(Environment.CurrentDirectory + "\\nobleUpdater.exe"); + else + uPDATEToolStripMenuItem1.Visible = true; + } + else + { + uPDATEToolStripMenuItem1.Visible = false; + } + } + + private void VitaPCKInstallerToolStripMenuItem_Click(object sender, EventArgs e) + { + + installVita install = new installVita(null); + install.ShowDialog(); + } + + private void toPhoenixARCDeveloperToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://cash.app/$PhoenixARC"); + } + + private void toNobledezJackToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://www.paypal.me/realnobledez"); + } + + private void menuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) + { + + } + + private void addPasswordToolStripMenuItem_Click(object sender, EventArgs e) + { + treeViewMain.SelectedNode = treeViewMain.Nodes[0]; + mf = (PCK.MineFile)treeViewMain.Nodes[0].Tag;//Sets minefile to selected node + foreach (object[] entry in mf.entries) + { + if (entry[0].ToString() == "LOCK") + { + MessageBox.Show("Remove current LOCK before adding a new one!"); + return; + } + } + AddPCKPassword add = new AddPCKPassword(mf, currentPCK);//sets metadata adding dialog + add.ShowDialog();//displays metadata adding dialog + add.Dispose();//diposes generated metadata adding dialog data + + //Sets up combobox for metadata entries from main metadatabase + treeMeta.Nodes.Clear(); + foreach (int type in types.Keys) + comboBox1.Items.Add(types[type]); + + //loads all of selected minefiles metadata into metadata treeview + foreach (object[] entry in file.entries) + { + object[] strings = (object[])entry; TreeNode meta = new TreeNode(); + + foreach (object[] entryy in file.entries) + meta.Text = (string)strings[0]; + meta.Tag = entry; + treeMeta.Nodes.Add(meta); + } + saved = false; + } + + private void joinDevelopmentDiscordToolStripMenuItem_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://discord.gg/Byh4hcq25w"); + } + + private void tSTToolStripMenuItem_Click(object sender, EventArgs e) + { + Testx_12 form1 = new Testx_12(); + form1.Show(); + } + + private void convertPCTextrurePackToolStripMenuItem_Click(object sender, EventArgs e) + { + PckStudio.Forms.Utilities.TextureConverterUtility tex = new PckStudio.Forms.Utilities.TextureConverterUtility(treeViewMain, currentPCK); + tex.ShowDialog(); + } #endregion - private void buttonEditModel_Click(object sender, EventArgs e) - { - PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; + private void buttonEditModel_Click(object sender, EventArgs e) + { + PCK.MineFile mf = (PCK.MineFile)treeViewMain.SelectedNode.Tag; - if (Path.GetExtension(mf.name) == ".png") - { - if (buttonEdit.Text == "EDIT BOXES") - editModel(mf); - else if (buttonEdit.Text == "View Skin") - { - using (var ms = new MemoryStream(mf.data)) - { - SkinPreview frm = new SkinPreview(Image.FromStream(ms)); - frm.Show(); - } - } - } + if (Path.GetExtension(mf.name) == ".png") + { + if (buttonEdit.Text == "EDIT BOXES") + editModel(mf); + else if (buttonEdit.Text == "View Skin") + { + using (var ms = new MemoryStream(mf.data)) + { + SkinPreview frm = new SkinPreview(Image.FromStream(ms)); + frm.Show(); + } + } + } - if (Path.GetExtension(mf.name) == ".loc") - { - LOC l; - try - { - l = new LOC(mf.data); - } - catch - { - MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, - MessageBoxIcon.Error); - return; - } - (new LOCEditor(l)).ShowDialog();//Opens LOC Editor - mf.data = l.Rebuild();//Rebuilds loc file with locdata in grid view after closing dialog - } + if (Path.GetFileName(mf.name) == "audio.pck") + { + try + { + PckStudio.Forms.Utilities.AudioEditor diag = new PckStudio.Forms.Utilities.AudioEditor(mf.data, mf); + diag.Show(); + } + catch + { + MessageBox.Show("Invalid data", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + return; + } + } - } + if (Path.GetExtension(mf.name) == ".loc") + { + LOC l; + try + { + l = new LOC(mf.data); + } + catch + { + MessageBox.Show("No localization data found.", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + return; + } + (new LOCEditor(l)).ShowDialog();//Opens LOC Editor + mf.data = l.Rebuild();//Rebuilds loc file with locdata in grid view after closing dialog + } + } - private void OpenPck_MouseEnter(object sender, EventArgs e) - { - pckOpen.Image = Resources.pckOpen; - } + private void OpenPck_MouseEnter(object sender, EventArgs e) + { + pckOpen.Image = Resources.pckOpen; + } - private void OpenPck_MouseLeave(object sender, EventArgs e) - { - pckOpen.Image = Resources.pckClosed; - } + private void OpenPck_MouseLeave(object sender, EventArgs e) + { + pckOpen.Image = Resources.pckClosed; + } - private void FormMain_FormClosed(object sender, FormClosedEventArgs e) - { - if (saved == false) - { - if (MessageBox.Show("Save PCK?", "Unsaved PCK", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) - { - if (saveLocation == Application.StartupPath + @"\templates\UntitledSkinPCK.pck") - { - save("Save As"); - } - else - { - save("Save"); - } - } - } - if (needsUpdate) - { - Process UPDATE = new Process();//sets up updater - UPDATE.StartInfo.FileName = Application.StartupPath + @"\nobleUpdater.exe";//updater program path - UPDATE.Start();//starts updater - Application.Exit();//closes PCK Studio to let updatear finish the job - } - } + private void FormMain_FormClosed(object sender, FormClosedEventArgs e) + { + if (saved == false) + { + if (MessageBox.Show("Save PCK?", "Unsaved PCK", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) + { + if (saveLocation == Application.StartupPath + @"\templates\UntitledSkinPCK.pck") + { + save("Save As"); + } + else + { + save("Save"); + } + } + } + if (needsUpdate) + { + Process UPDATE = new Process();//sets up updater + UPDATE.StartInfo.FileName = Application.StartupPath + @"\nobleUpdater.exe";//updater program path + UPDATE.Start();//starts updater + Application.Exit();//closes PCK Studio to let updatear finish the job + } + } - private void OpenPck_DragEnter(object sender, DragEventArgs e) - { - pckOpen.Image = Resources.pckDrop; - string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); - foreach (var file in files) - { - var ext = System.IO.Path.GetExtension(file); - if (ext.Equals(".pck", StringComparison.CurrentCultureIgnoreCase)) - e.Effect = DragDropEffects.Copy; - return; - } - } + private void OpenPck_DragEnter(object sender, DragEventArgs e) + { + pckOpen.Image = Resources.pckDrop; + string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); + foreach (var file in files) + { + var ext = System.IO.Path.GetExtension(file); + if (ext.Equals(".pck", StringComparison.CurrentCultureIgnoreCase)) + e.Effect = DragDropEffects.Copy; + return; + } + } - private void OpenPck_DragDrop(object sender, DragEventArgs e) - { - string[] FileList = (string[])e.Data.GetData(DataFormats.FileDrop, false); + private void OpenPck_DragDrop(object sender, DragEventArgs e) + { + string[] FileList = (string[])e.Data.GetData(DataFormats.FileDrop, false); - foreach (string pck in FileList) - { - openPck(pck); - } - } + foreach (string pck in FileList) + { + openPck(pck); + } + } - private void OpenPck_DragLeave(object sender, EventArgs e) - { - pckOpen.Image = Resources.pckClosed; - } + private void OpenPck_DragLeave(object sender, EventArgs e) + { + pckOpen.Image = Resources.pckClosed; + } - private void savePCK(object sender, EventArgs e) - { - save("Save"); - } + private void savePCK(object sender, EventArgs e) + { + save("Save"); + } - private void saveAsPCK(object sender, EventArgs e) - { - save("Save As"); - } + private void saveAsPCK(object sender, EventArgs e) + { + save("Save As"); + } - private void openPck(object sender, EventArgs e) - { + private void openPck(object sender, EventArgs e) + { - } + } - private void timer1_Tick(object sender, EventArgs e) - { - if (PCKFile != PCKFileBCKUP) - { - RPC.CloseRPC(); - if (string.IsNullOrWhiteSpace(PCKFile)) - try - { - RPC.SetRPC("825875166574673940", "Sitting alone", "Program by PhoenixARC", "pcklgo", "PCK Studio", "pcklgo"); - } - catch - { - Console.WriteLine("ERROR WITH RPC"); - } - else + private void timer1_Tick(object sender, EventArgs e) + { + if (PCKFile != PCKFileBCKUP) + { + RPC.CloseRPC(); + if (string.IsNullOrWhiteSpace(PCKFile)) + try + { + RPC.SetRPC("825875166574673940", "Sitting alone", "Program by PhoenixARC", "pcklgo", "PCK Studio", "pcklgo"); + } + catch + { + Console.WriteLine("ERROR WITH RPC"); + } + else - try - { - RPC.SetRPC("825875166574673940", "Developing " + PCKFile, "Program by PhoenixARC", "pcklgo", "PCK Studio", "pcklgo"); - } - catch - { - Console.WriteLine("ERROR WITH RPC"); - } - PCKFileBCKUP = PCKFile; - } - } + try + { + RPC.SetRPC("825875166574673940", "Developing " + PCKFile, "Program by PhoenixARC", "pcklgo", "PCK Studio", "pcklgo"); + } + catch + { + Console.WriteLine("ERROR WITH RPC"); + } + PCKFileBCKUP = PCKFile; + } + } - private void FormMain_FormClosing(object sender, FormClosingEventArgs e) - { - try - { - RPC.CloseRPC(); - } - catch { } - } + private void FormMain_FormClosing(object sender, FormClosingEventArgs e) + { + try + { + RPC.CloseRPC(); + } + catch { } + } - private void FormMain_Deactivate(object sender, EventArgs e) - { - try - { - RPC.CloseRPC(); - timer1.Stop(); - timer1.Enabled = false; - } - catch { } - } + private void FormMain_Deactivate(object sender, EventArgs e) + { + try + { + RPC.CloseRPC(); + timer1.Stop(); + timer1.Enabled = false; + } + catch { } + } - private void FormMain_Activated(object sender, EventArgs e) - { - try - { - RPC.SetRPC("825875166574673940", "Sitting alone", "Program by PhoenixARC", "pcklgo", "PCK Studio", "pcklgo"); - timer1.Start(); - timer1.Enabled = true; - } - catch { } - } - } + private void FormMain_Activated(object sender, EventArgs e) + { + try + { + RPC.SetRPC("825875166574673940", "Sitting alone", "Program by PhoenixARC", "pcklgo", "PCK Studio", "pcklgo"); + timer1.Start(); + timer1.Enabled = true; + } + catch { } + } + } } diff --git a/MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.Designer.cs b/MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.Designer.cs new file mode 100644 index 00000000..8537f076 --- /dev/null +++ b/MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.Designer.cs @@ -0,0 +1,84 @@ +namespace PckStudio +{ + partial class addCategory + { + /// + /// 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(addCategory)); + this.label2 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.SuspendLayout(); + // + // label2 + // + resources.ApplyResources(this.label2, "label2"); + this.label2.ForeColor = System.Drawing.Color.White; + this.label2.Name = "label2"; + // + // button1 + // + resources.ApplyResources(this.button1, "button1"); + this.button1.ForeColor = System.Drawing.Color.White; + this.button1.Name = "button1"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + resources.ApplyResources(this.comboBox1, "comboBox1"); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + // + // addCategory + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ControlBox = false; + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.label2); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "addCategory"; + this.Resizable = false; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.Load += new System.EventHandler(this.addCategory_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.ComboBox comboBox1; + } +} \ No newline at end of file diff --git a/MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.cs b/MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.cs new file mode 100644 index 00000000..edf80ec9 --- /dev/null +++ b/MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +// Audio Editor by MattNL + +namespace PckStudio +{ + public partial class addCategory : MetroFramework.Forms.MetroForm + { + PckStudio.Forms.Utilities.AudioEditor audio; + public addCategory(PckStudio.Forms.Utilities.AudioEditor audioIn) + { + InitializeComponent(); + audio = audioIn; + if(!audio.cats.Contains(0)) comboBox1.Items.Add("Overworld"); + if(!audio.cats.Contains(1)) comboBox1.Items.Add("Nether"); + if(!audio.cats.Contains(2)) comboBox1.Items.Add("End"); + if(!audio.cats.Contains(3)) comboBox1.Items.Add("Creative"); + if(!audio.cats.Contains(4)) comboBox1.Items.Add("Menu"); + if(!audio.cats.Contains(5)) comboBox1.Items.Add("Battle"); + if(!audio.cats.Contains(6)) comboBox1.Items.Add("Tumble"); + if(!audio.cats.Contains(7)) comboBox1.Items.Add("Glide"); + FormBorderStyle = FormBorderStyle.None; + } + + private void button1_Click(object sender, EventArgs e) + { + audio.cat = comboBox1.Text; + if(comboBox1.SelectedIndex > -1) this.Close(); + } + + private void addCategory_Load(object sender, EventArgs e) + { + + } + + } +} diff --git a/MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.resx b/MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.resx new file mode 100644 index 00000000..2140f0ef --- /dev/null +++ b/MinecraftUSkinEditor/Forms/Skins-And-Textures/addCategory.resx @@ -0,0 +1,2436 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 5, 41 + + + 49, 13 + + + 3 + + + Category + + + label2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + + Flat + + + 96, 78 + + + 75, 23 + + + 4 + + + Create + + + button1 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + 60, 38 + + + 192, 21 + + + 5 + + + comboBox1 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + True + + + 6, 13 + + + 264, 105 + + + + AAABAAYAEBAAAAEAIABoBAAAZgAAACAgAAABACAAqBAAAM4EAAAwMAAAAQAgAKglAAB2FQAAQEAAAAEA + IAAoQgAAHjsAAICAAAABACAAKAgBAEZ9AAAAAAAAAQAgAOOBAABuhQEAKAAAABAAAAAgAAAAAQAgAAAA + AAAABAAAwg4AAMIOAAAAAAAAAAAAAO3t7QCTk5MA4ODgf8/Pz+DMzMzcysrK3MnJydzHx8fcxsbG3MTE + xNzDw8PcwcHB3MLCwuDX19d/bWxtAOzs7AD7+/sAAAAAANfX15y6urr/tbW1/7Ozs/+xsbH/r6+v/6ys + rP+qqqr/qKio/6Wlpf+np6f/ysrKnAAAAAD6+voA/Pz8AAAAAADZ2dmcwMDA/7u7u/+3t7f/tra2/7e3 + t/+0tLT/r6+v/62trf+rq6v/q6ur/8zMzJwAAAAA+vr6APz8/AAAAAAA3t7enL+/v/++vr7/v7+//7q6 + uv+ZmZn/oqKi/7q6uv+2trb/sbGx/7a2tv/Qz8+cAAAAAPv7+wD9/f0AAAAAAObm5pyenp7/pKSk/8zM + zP+Wlpb/cnJy/29vb/+fn5//lJSU/4SFhf+4uLj/0tLSnAAAAAD7+/sA/f39AAAAAADp6emcnJyc/4aG + hv++vr7/l5eX/5ubm/+srKz/pKSk/2ZmZv+ZmZn/v76+/9TU1JwAAAAA+/v7AP39/QAAAAAA7OzsnJ2d + nf9paWn/bGxs/5CQkP+Wlpb/1dXV/6ampv8+Pj7/ubm5/729vf/V1dWcAAAAAPv7+wD9/f0AERERAO/u + 7pyhoaH/paWl/35+fv+MjIz/np6e/7i4uP+oqKj/W1tb/6CgoP/BwcH/1tbWnAAAAAD7+/sA/f39AC8v + LwDx8fGcpKSk/3l5ef9ubm7/lZWV/3d3d/9zc3P/pKSk/5GRkf+EhIT/w8PD/9nZ2ZwAAAAA+/v7AP39 + /QBDQ0MA7+/vnNXV1f+0tLT/vr6+/9LS0v+ysrL/ubm5/87Ozv/Kysr/wsLC/8nJyf/c3NycAAAAAPz8 + /AD9/f0AW1tbAO/v75zl5eX/5OTk/+Hh4f/d3d3/3d3d/9rb2v/V1dX/0tLS/9DQ0P/Q0ND/4+PjlG5u + bwD6+voA/v7+AHd3dwDy8vKc6eno/+Xl5f/j4+P/4eHh/97e3v/f39//4+Pj/+Hh4f/g4OD/5+fnze/v + 7zDs7OwA8fHxAP7+/gCVlZQA9fX1nO3t7f/q6ur/6Ojo/+bm5v/j4+P/5OTk/+fn5//n5+f/7OzszPPz + 8zHu7u4A+vr6AAAAAAD+/v4AtLS0APj4+Jzy8vL/7+/v/+3t7f/r6+v/6Ojo/+jo6P/s7Oz/8PDwy/X1 + 9TDy8vIA+/v7AAAAAAAAAAAA/f39ANbW1QD7+/uc9/f3//T09P/y8vL/8PDw/+3t7f/u7u7/8vLyyfT0 + 9C7u7u4A/f39AAAAAAAAAAAAAAAAAO/v7wD///8A+vr6f/v7++D6+vrc+Pj43Pf399z19fXe9fX1xvPz + 8zX5+fkA4+TkAAAAAAAAAAAAAAAAAAAAAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAD + AADAAwAAwAMAAMADAADABwAAwA8AAMAfAADAPwAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAwg4AAMIO + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOvr6wDo6Ogd7OzsnOnp6bLo6Oix6Ojosejo6LHn5+ex5+fnsefn + 57Hm5uax5ubmsebm5rHl5eWx5eXlseXl5bHk5OSx5OTkseTk5LHj4+Ox4+PjsePj47Hj4+Oy6enpnOjo + 6B7q6uoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8vLyAPPz80fb29v4w8PD/8HBwf/AwcD/v7/A/7+/ + v/++vr7/vb29/7y8vP+7u7v/urq6/7m5uf+4uLj/t7e3/7a2tv+1tbX/tLS0/7Ozs/+ysrL/srGx/7Gx + sf/Q0ND48PHwR+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADy8vIA9fX1SdPT0/m2trb/tbW1/7S0 + tP+zsrP/sbGx/7CwsP+vr6//rq6u/62trf+srKz/qqqq/6mpqf+oqKj/p6en/6ampv+lpaX/pKSk/6Kj + o/+hoaH/oKCg/8XFxfnx8fFJ7e3tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gD19fVJ1dXV+bm5 + uf+4uLj/t7e3/7a2tv+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/rays/6urq/+qqqr/qamp/6io + qP+np6f/pqam/6SlpP+kpKT/x8fH+fLy8knu7u4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8/PzAPb2 + 9knW1tb5vLy8/7q6uv+5ubn/uLi4/7e3t/+2trb/tbW0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t + rf+rq6v/qqqq/6mpqf+oqKj/p6en/6ampv/IyMj58vLySe7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADz8/MA9vb2SdjY2Pm+vr7/vLy8/7u7u/+6urr/ubm5/7i4uP+3t7f/trW2/7S0tP+zs7P/srKy/7Gx + sf+wsLD/r6+v/62trf+tra3/q6ur/6qqqv+pqan/qKio/8rKyvny8vJJ7+/vAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPT09AD29vZJ2dnZ+cPDw//Ozs7/zc3N/8DAwP+8vLz/u7u7/7q6uv/ExMT/zMzM/8vL + y//Kysr/xMTE/7e3t/+/v7//xMTE/7a2tv+3t7f/w8PD/7q6uv+srKz/y8vL+fPz80nw8PAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA9PT0APf390na29v50tLS/6Kiov+vr6//0NDQ/76+vv+9vb3/ycnJ/729 + vf96enr/cnJy/3Nzc/+ioqL/1tbW/7S0tP+Xl5f/0tLS/8jIyP+Kior/xcXF/7e3t//MzMz58/PzSfDw + 8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA9/f3Sdzc3PnZ2dn/XFxc/3Z2dv/Z2dn/wMDA/7+/ + v//U1NT/ZmZm/yIiIv9fX1//Pz8//zU1Nf/h4eH/jo6O/0ZGRv/o6Oj/lZWV/zs7O//Kysr/tbW1/87O + zvnz8/NJ8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD39/dJ3d7d+dra2v9cXFz/dnZ2/9ra + 2v/CwsL/wcHB/9XV1f9aWlr/XFxc/+7u7v+oqKj/NTU1/+Li4v+Pj4//SEhI/+rq6v9MTEz/i4uL/8rK + yv+ysrL/0M/Q+fT09Enx8fEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vX2APj4+Enf39/53Nzc/1xc + XP94eHj/5OTl/9DQ0P/Ly8v/19fX/1tbW/9aWlr/4+Pj/6ampv86Ojr/4+Li/4+Pj/9LS0v/tLS0/zw8 + PP/Jycn/vLy8/7S0tP/R0dH59PT0SfHx8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vYA+Pj4SeHg + 4fnd3t3/XV1d/1NTU/+srKz/p6en/8fHx//l5eX/W1tb/1paWv/d3d3/zs3O/7S0tP/i4uL/jo6O/0VF + Rf9dXV3/gYGB/9DQ0P+4uLj/t7e3/9PT0/n09PRJ8vLyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb2 + 9wD4+PhJ4uLi+d/f3/9fX1//FxcX/zg4OP8hISH/SUlJ/+rq6v9cXFz/W1tb/9jY2P/Jycn/y8zL/9PT + 0/+Pj4//GRkZ/zg4OP/Gxsf/w8PD/7q6uv+5ubn/0tPT+fT09Enx8fEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA9/f3APn5+Unj4+P54eHh/11dXf9vb2//4+Pj/4iIiP8wMDD/5ubm/11dXf9bW1v/2dnZ/8jI + yP/Jycn/09PT/5CQkP8HBwf/PDw8/9TU1P/CwsL/vLy8/7i4uP/R0dH59PT0SfHx8QAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD39/cA+fn5SeXl5fni4uL/XV1d/3R0dP/j4+P/jIyM/zExMf/n5+f/XV1d/1tb + W//f39//2NjY/9DQ0P/j4+P/j4+P/zs7O/9GRkb/mZmZ/9HR0f+7u7v/t7e3/9LS0vn09PRJ8vLyAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AD5+flJ5ubm+eTk5P9dXV3/dHR0/+Hh4f+Li4v/MTEx/+fn + 5/9dXV3/W1tb/+np6f+vr6//TExM/+bm5v+RkZH/S0tL/5KSkv9MTEz/1dXV/76+vv+5urr/1NTU+fX1 + 9Uny8vIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Pj4APn5+Uno6Oj55ubm/11dXf92dnb/7u7u/4+P + j/8xMTH/6Ojo/11dXf9cXFz/9PTz/6qqqv81NTX/5ubm/5GRkf9JSUn/3Nzc/zU1Nf+ioqL/zc3N/7y8 + vP/W1tb59fX1SfLy8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PgA+vr6Senp6fnn5+f/X19f/yws + LP9jY2P/ODg4/zs7O//r6+v/bGxs/yMjI/9jY2P/QkJC/zc3N//n5+f/kZGR/0dHR//x8fH/c3Nz/0xM + TP/V1dX/wcHB/9fX1/n19fVJ8/PzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn5+QD6+vpJ6+vr+ebm + 5v+7u7v/k5OT/5KSkv+SkpL/urq6/+np6f/Ly8v/lZWV/5GRkf+RkZH/srKy/+Tk5P/IyMj/rq6u/+Li + 4v/MzMz/oqKi/9bW1v/FxcX/2dnZ+fX29Unz8/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+fn5APr6 + +kns7Oz54eHh/+jo6P/q6ur/6enp/+jo6P/j4+P/2tra/9/f3//l5eX/5OTk/+Pj4//e3t7/1NTU/9jY + 2P/Z2tn/zs7O/9DQ0P/X19f/zc3N/8XFxf/a2tr59vb2SfP09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD6+voA+/v7Se7u7vni4uL/4eHh/+Dg4P/e3t7/3d3d/9zc3P/b29v/2tra/9nZ2f/Y2Nj/1tbW/9XV + 1f/S0tL/zs7O/83Nzf/MzMz/ysrK/8nJyf/Ix8f/x8fH/9zc3Pn39/ZJ9PT0AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPr6+gD7+/tJ7+/v+eXl5f/k5OT/4uLi/+Hh4f/g4OD/39/f/97e3v/d3d3/3Nzc/9ra + 2v/Z2dn/2dnZ/9fX1//W1tb/1NXU/9PT0//S0tL/0dHR/9DQ0P/S0tL/5ubm8vf39z/19fUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+/v7APv7+0nx8fH55+fn/+bm5v/l5eX/5OTk/+Pj4//h4eH/4ODg/9/f + 3//e3t7/3d3d/9zc3P/h4eH/4+Pj/+Li4v/h4eH/4ODg/9/f3//e3t7/4ODg/+vr6/fy8vKB6ejoCOvr + 6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA/Pz8SfLy8vnq6un/6Ojo/+fn5//m5ub/5eXl/+Tk + 5P/j4+P/4uLi/+Dg4P/f39//3t7e/+Pj4//l5eX/5OTk/+Pj4//i4uL/4eHh/+Pj4//t7e338/Pzf+rq + 6gjt7e0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD8/PxJ9PT0+ezs7P/r6+v/6urq/+jo + 6P/n5+f/5ubm/+Xl5f/k5OT/4+Pj/+Li4v/h4OH/5eXl/+fn5//m5ub/5eXl/+Tk5P/l5eX/7u7u9/T0 + 9H7s7OwI7+/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Un19fX57u7u/+3t + 7f/s7Oz/6+vr/+rq6v/p6en/5+fn/+bm5v/l5eX/5OTk/+Pj4//n5+f/6enp/+jo6P/n5+f/6Ojo//Dw + 8Pb19fV87e3tB/Dw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA/f39Sff3 + 9/nx8fH/8PDw/+/v7//t7u3/7Ozs/+vr6//q6ur/6enp/+jo6P/n5uf/5uXl/+np6f/q6ur/6enp/+rq + 6v/x8fL29vb2e/Dw8Afy8vIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD9/f1J+Pj4+fPz8//y8vL/8fHx//Dw8P/v7+//7u7u/+zt7P/r6+v/6urq/+np6f/o6Oj/6+vr/+zs + 7P/t7e3/8/Pz9vf493ry8vIH9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/f39AP39/Un6+vr59vb2//T09f/z8/P/8vLy//Hx8f/w8PD/7+/v/+7u7v/t7e3/6+vr/+rq + 6v/t7e3/8PDw//T09PXz8/N49PT0Bvb29gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v4A/v7+Sfv7+/n4+Pj/9/f3//b29v/19fX/8/Pz//Ly8v/x8fH/8PDw/+/v + 7//u7u7/7e3t//Dw8P/29vX18vLyd9jY2Abi4uIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+wD6+vpH/Pz8+Pv7+//6+vr/+fn5//j4+P/39/f/9vb2//X1 + 9f/09fX/8/T0//Pz8//y8vL/9vb28/Ly8nTZ2dkF4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7u7uAOrq6h74+Pic/v7+sv39/bH9/f2x/f39sfz8 + /LH8/Pyx/Pz8sfv7+7H7+/ux+/v7sfv7+7P09fRy3NzcB+Tk5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA + AA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA + AB/wAAA/8AAAf/AAAP/wAAH/8AAD//AAB//wAA//8AAf/ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAMIO + AADCDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeHhwD///8A5eXlNPLy8n729vaB9fX1gfX1 + 9YH19fWB9fX1gfX19YH19fWB9fX1gfX19YH09PSB9PT0gfT09IH09PSB9PT0gfT09IH09PSB8/PzgfPz + 84Hz8/OB8/PzgfPz84Hz8/OB8/PzgfPz84Hz8/OB8/PzgfLy8oHy8vKB8vLygfPz84Hw8PB+5eXlNP// + /wCHh4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANra2gDa29sK7+/vtuXl + 5f/a2tr/2dnZ/9jY2P/Y2Nj/2NjY/9fX1//X19f/19fX/9bW1v/W1tb/1dXV/9XV1f/V1dX/1NTU/9TU + 1P/U1NT/09PT/9PT0//T0tP/0tLS/9LS0v/R0dH/0dHR/9DQ0P/Q0ND/0NDQ/8/Pz//Pz8//z8/O/8/P + z//e3t7/7O3tttzc3ArZ2dkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6 + +gD///8Q7u7uzc3Nzf+5ubn/uLi4/7e3t/+3t7b/tra2/7W1tf+0tLT/tLS0/7Ozs/+ysrL/srKy/7Gx + sf+wsLD/r6+v/66urv+urq7/ra2t/6ysrP+srKz/q6ur/6qqqv+qqqr/qamp/6ioqP+nqKf/p6en/6am + pv+lpaX/pKSk/6SkpP+9vb3/6enpzf///xD5+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPv7+wD///8Q7e3tzcrJyv+2trb/tbW1/7S0tf+0tLT/s7Oz/7Kysv+ysbH/sbGx/7Cw + sP+vr6//rq6v/66urv+tra3/rKys/6urq/+rqqv/qqqq/6mpqf+oqKj/qKeo/6enp/+mpqb/paWl/6Wl + pf+kpKT/o6Oj/6Kiov+hoqL/oaCh/6CgoP+4uLj/5+fnzf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+wD///8Q7u7uzcvLy/+4uLj/t7e3/7e3t/+2trb/tbW1/7S0 + tP+ztLT/s7Oz/7Kysv+xsbH/sLCx/7CwsP+vr6//rq6u/62urv+tra3/rKys/6urq/+qqqr/qqmq/6mp + qf+oqKj/p6en/6enpv+mpqb/paWl/6SkpP+kpKT/o6Oj/6Kiov+6urr/5+fnzf///xD6+voAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+wD///8Q7u7uzczMzP+6urr/ubm5/7i4 + uP+3uLf/t7e3/7a2tv+1tbX/tLS0/7S0tP+zs7P/srKy/7Gxsf+xsbH/sLCw/6+vr/+urq7/rq6u/62t + rf+srKz/q6ur/6qqqv+qqqr/qamp/6ioqP+np6f/p6en/6ampv+lpaX/pKSk/6SkpP+7u7v/6Ojozf// + /xD6+voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q7u7uzc3N + zf+7u7v/u7u7/7q6uv+5ubn/uLi4/7i4uP+3t7f/tra2/7W1tf+0tLT/tLS0/7Ozs/+ysrL/sbGx/7Gx + sf+wsLD/r6+v/66urv+urq7/ra2t/6ysrP+rq6v/qqqq/6qqqv+pqan/qKio/6enp/+np6f/pqam/6Wl + pf+8vLz/6Ojozf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8 + /AD///8Q7+/vzc/Pz/+9vb3/vLy8/7u7u/+7u7v/urq6/7m5uf+4uLj/uLi4/7e3t/+2trb/tbW1/7S0 + tP+0tLT/s7Oz/7Kysv+xsbH/sbGx/7CwsP+vr6//rq6u/66urv+tra3/rKys/6urq/+qqqv/qqqq/6mp + qf+oqKj/p6en/6enp/++vb7/6enpzf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPz8/AD///8Q7+/vzdDQ0P++vr7/vr69/729vf+8vLz/u7u7/7u7u/+6urr/ubm5/7m4 + uP+4uLj/t7e3/7a2tv+1tbX/tLS0/7OztP+zs7P/srKy/7Gxsf+xsbH/sLCw/6+vr/+urq7/rq6u/62t + rf+srKz/q6ur/6qqqv+qqqr/qamp/6ioqP+/vr//6enpzf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8PDwzdHR0f/AwMD/wsLC/8XFxf/ExMT/wMDA/7y8 + vP+7u7v/u7u7/7q6uv+5ubn/ubm5/7y8vP++vr7/vr6+/729vf+8vL3/vLy8/7i4uP+zs7P/s7Oz/7e3 + t/+4uLj/tbS1/6+vr/+vr6//s7Oz/7W1tf+ysrL/rKys/6qqqv/AwMD/6urqzf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8PDwzdLS0v/FxcX/1tXW/9/f + 3//g4OD/1dTU/8LCwv+9vb3/vLy8/7y8u/+8vLz/x8fH/9zc3P/f39//3d3d/93d3f/d3d3/3d3d/9nZ + 2f/CwsL/xMTF/9fX1//b29v/09PT/7y8vP/AwMD/1tbW/9nZ2f/U1NT/vr6+/62trf/BwcH/6urqzf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8PHwzdPT + 0//Nzc3/2tra/2BgYP94eHj/5eXl/8nJyf++vr7/vr6+/729vf/DwsL/3t7e/6Ojo/9OTk7/RERE/0VF + Rf9ERET/TU1N/6Wlpf/e3d3/3t7e/5GRkf9PT0//zMzM/9LT0//b29v/l5eX/0tLS/++vr7/zs7O/7Cw + sP/CwsL/6urqzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8 + /AD///8Q8fHxzdTU1P/Q0ND/2NjY/yMjI/9FRUX/5+fn/8zMzP/AwMD/v8DA/76+vv/Jycn/29vb/zQ0 + NP8CAgL/ICAg/yMjI/8hISH/AwMD/z4+Pv/j5OP/6urq/2xsbP8LCwv/w8PD/+Xl5f/Y2Nj/Ly8v/y4u + Lv/W1tb/xcXF/6+vr//Dw8P/6+vrzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPz8/AD///8Q8fHxzdXV1f/R0tH/2NjY/yMjI/9FRUX/5+jn/83Nzf/CwsL/wcHB/8DA + wP/MzMz/1tbW/yUlJf8hISH/z8/P/9/f3//T09P/Jycn/zc3N//l5eX/7e3t/2xsbP8LCwv/xsbG//j4 + +P+enp7/BgYG/4aGhv/d3d3/uLi4/7CwsP/ExMT/6+vrzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8fLxzdfX1//T09P/2NjY/yMjI/9FRUX/6Ojo/87O + zv/Dw8P/w8PD/8LCwv/Nzc3/1tbW/yUlJf8lJSX/2tra/+Li4v/h4eH/Kysr/zc3N//l5eX/7e3t/2xs + bP8LCwv/y8vL//b29v9JSUn/KSkp/9PT0//Kysr/tLS0/7Kysv/Gxcb/6+vrzf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8vLyzdjY2P/U1NT/2dnZ/yMj + I/9FRUX/6enp/9HR0f/Gxsb/xsbG/8TExP/Ozs7/19fX/yUlJf8lJSX/1tbW/9vb2//e3t7/Kysr/zc3 + N//m5ub/7e3u/2xsbP8LCwv/z8/P/8PDw/8ODg7/fHx8/+Hh4f+8vL3/tLS0/7S0tP/Hx8f/7Ozszf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8vLyzdnZ + 2f/W1db/2dnZ/yMjI/9GRkb/8/Pz/+fn5//h4eH/39/f/9XV1f/U1NT/19fX/yUlJf8lJSX/1tbW/9ra + 2v/f39//U1NT/11dXf/m5ub/7O3s/2xsbP8LCwv/ycnJ/2NjY/8cHBz/ycnJ/9HR0f+4uLj/tra2/7W1 + tf/IyMj/7Ozszf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8 + /QD///8Q8/Pzzdra2v/X19f/2tra/yUlJf8pKSn/lpaW/5eXl/+VlZX/oqKi/9fX1//m5ub/2tra/yQk + JP8lJSX/19fX/9TU1P/b29v/3d3d/93d3f/c3dz/5+fn/21sbf8ODg7/n5+f/x0dHf90dHT/4+Pj/8LC + wv+4uLj/uLi4/7e3t//Jycn/7e3tzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD///8Q8/Pzzdvc2//Y2Nj/2tra/ycnJ/8AAAD/AQEB/wEBAf8BAQH/AAAA/2Zm + Zv/x8fH/3t7e/yQkJP8lJSX/2NjY/9DQ0P/IyMf/zMzL/8rKyv/Jycj/4uLi/21tbf8LCwv/SkpK/xgY + GP/Dw8P/1tbW/7y8vP+6urr/ubm5/7m5uf/Kysr/7Ozszf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9PT0zd3d3f/Z2dn/29vb/yQkJP8tLS3/oqKi/6Wl + pf+NjY3/CwsL/zw8PP/s7Oz/4ODg/yQkJP8lJSX/2NjY/9DR0f/ExMT/xMTE/8PDw//FxcX/4uPj/25u + bv8AAAD/AAAA/1hYWP/o6Oj/ycnJ/7y8vP+8vLz/u7u7/7m5uf/HyMj/7Ozszf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9PT0zd7e3v/b29v/29vb/yMj + I/9GRkb/7+/v/+np6f/Pz8//ExMT/zo6Ov/t7e3/4ODg/yQkJP8lJSX/2NjY/9LS0v/IyMj/ysrK/8nJ + yf/Jycn/5OPj/25ubv8CAgL/FRUV/zs7O//e3t7/z8/P/76+vv+9vb3/u7u7/7a2tv/Hx8f/7Ozszf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9PT0zd/f + 3//c3Nz/3Nzc/yMjI/9ERET/4+Pj/9XV1f/Gxsb/ExMT/zo6Ov/t7e3/4ODg/yQkJP8lJSX/2dnZ/9bW + 1v/Z2dn/5+fn/+bm5v/a2tr/5+fn/21tbf8ODg7/enp6/w8PD/+YmJj/4eHh/8TExP+9vr7/uLm4/7a2 + tv/Jycj/7Ozszf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD///8Q9fX1zeDg4P/d3d3/3Nzc/yMjI/9ERET/4+Pj/9TU1P/Gxsb/ExMT/zo6Ov/t7e3/4eHh/yQk + JP8lJSX/2dnZ/97e3v/k5OT/jo6O/5SUlP/o6Oj/7u7u/21tbf8MDAz/ubm5/zY2Nv8/Pz//4uLi/87O + zv+7u7v/ubm5/7i4uP/Kysr/7e3tzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD///8Q9fX1zeHh4f/f39//3d3d/yMjI/9ERET/4+Pj/9TU1P/Gxsb/ExMT/zo6 + Ov/u7u7/4eHh/yQkJP8lJSX/2tra/+Li4v/g4OD/Kysr/zc3N//o6Oj/8fHx/21tbf8LCwv/zs7O/42N + jf8KCgr/q6ur/93d3f+/vr//urq6/7q6uv/Ly8v/7e3tzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9fX1zePj4v/g4OD/3d3d/yMjI/9FRUX/6Ojo/97e + 3v/Kysr/ExMT/zo6Ov/u7u7/4eHh/yQkJP8lJSX/3t7e/+rq6v/k5OT/Kysr/zc3N//p6en/8vLy/21t + bf8LCwv/zs7O/9vb2/8dHR3/SUlJ/+Dg4P/Kysr/vLy8/7u7u//MzMz/7u7uzf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9vb2zeTk5P/h4uH/3t7e/yQk + JP8/Pz//3d3d/93d3f/AwMD/ERER/zs7O//u7u7/4uLi/yUlJf8hISH/0NDQ/+Li4v/V1dX/Jycn/zg4 + OP/p6en/8vLy/21tbf8LCwv/ysrK//39/f9paWn/BwcH/6qqqv/c3Nz/wMDA/729vf/Ozs7/7u7uzf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9vb2zeXl + 5f/j4+P/3t7e/ycnJ/8HBwf/IiIi/yMjI/8eHh7/AAAA/09PT//x8fH/6Ofn/zg4OP8CAgL/ICAg/yMj + I/8hISH/AwMD/0BAQP/p6en/8fHx/21tbf8LCwv/x8fH//b29v+3t7f/CgoK/1JSUv/i4uL/ysrK/7+/ + v//Pz8//7u7uzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD///8Q9vb3zebm5v/j4+P/5ubm/4WFhf9tbW3/bW1t/21tbf9tbW3/cXFx/8DAwP/t7e3/7e3t/7Ky + sv9ubm7/bW1t/21tbf9tbW3/bW1t/7CwsP/p6en/6urq/6qqqv91dXX/19fX/+Tk5P/i4uL/ioqK/319 + ff/b29v/0NDQ/8HBwf/Q0ND/7+/vzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD///8Q9/f3zefn5//g4OD/6enp//Py8//09PT/8/Pz//Pz8//z8/P/8fHy/+rq + 6v/d3d3/3t7e/+rq6v/w8PD/8fHx//Hw8f/w8PD/7+/v/+jo6P/Z2dn/29vb/+np6f/s7Oz/4uLi/9LS + 0v/X19f/5+jo/+np6f/d3d3/ysrK/8LCwv/S0tL/7+/vzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9/f3zenp6f/g4OD/4eHh/+Li4v/h4eH/4eHh/+Dg + 4P/f39//3t7e/9zc3P/a2tr/2dnZ/9ra2v/b29v/29vb/9ra2v/Z2dn/2NjY/9bW1v/T09P/0tLS/9HR + 0f/Q0ND/zs7O/8rKyv/Kysr/zMzM/8zMzP/Jycn/xsbG/8XFxf/T09P/8PDwzf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q+Pj4zerq6v/i4uL/4eHh/+Dg + 4P/f39//39/f/97e3v/d3d3/3dzc/9zc3P/b29v/29ra/9rZ2v/Z2dn/2NjY/9fX1//W1tb/1dXV/9XV + 1f/U09P/0NDP/83Nzf/Nzc3/zMzM/8zLzP/Ky8r/ycnJ/8jIyP/IyMj/x8fH/8bGxv/U1NT/8PDwzf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q+Pj4zevr + 6//k5OT/4+Pj/+Li4v/h4eH/4OHh/+Dg4P/f39//3t7e/93d3f/d3d3/3Nzc/9vb2//b29v/2tra/9nZ + 2f/Y2Nj/2NjY/9bW1v/S0tL/0NDQ/8/Pz//Ozs7/zc7O/83Nzf/MzMz/y8vL/8rKy//Kycn/yMjI/8jI + yP/X19f/8vLyzf///xD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD///8Q+fn5zezs7P/l5eX/5eXl/+Tk5P/j4+P/4uLi/+Li4f/g4eH/4ODg/9/f3//e3t7/3t7e/93d + 3f/c3Nz/29vb/9vb2//a2tr/2tra/9ra2v/Z2dn/2NjY/9jY2P/X19f/1tbW/9XV1f/V1dX/1NTU/9PT + 0//T0tP/0tLS/9XV1f/n5+f/9PT0uPf39wr19fUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD///8Q+fn5ze7t7f/n5+f/5ubm/+bl5f/l5eX/5OTk/+Pj4//i4+P/4uLi/+Hh + 4f/g4OD/39/f/97e3//e3t7/3d3d/9zc3P/b29v/3Nzc/+Pj4//j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg + 4P/g4OD/39/f/97e3v/e3t7/4eHh/+zs7f/09PTO6+vrNP///wDBwcEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+fn5ze/v7//p6ej/6Ojo/+fn5//m5ub/5ubm/+Xl + 5f/k5OT/4+Pj/+Pj4//i4uL/4eHh/+Dg4P/f39//39/f/97e3v/d3d3/3t7e/+Tk5P/k5OT/5OTk/+Pj + 4//i4uL/4uLi/+Hh4f/h4eH/4ODg/+Dg4P/i4uL/7e3t//T09M7t7e0y////ALS0tAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+vr6zfDw8P/q6ur/6enp/+np + 6f/o6Oj/5+fn/+bm5v/m5ub/5eXl/+Tk5P/j4+P/4+Pj/+Li4v/h4eH/4ODg/9/f3//f39//39/f/+Xl + 5f/l5eX/5eXl/+Tk5P/k5OT/4+Pj/+Li4v/i4uL/4eHh/+Tk5P/u7u7/9fX1zO7u7jH///8Azc3NAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+vr6zfHx + 8f/s7Oz/6+vr/+rq6v/p6en/6enp/+jo6P/n5+f/5ubm/+bm5v/l5eX/5OTk/+Pj4//j4+P/4uLi/+Hh + 4f/g4OD/4eHh/+bm5v/m5+b/5ubm/+Xl5f/l5eX/5OTk/+Tk5P/j4+P/5ubm/+/v7//19fXL7u7uMf// + /wDExMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD///8Q+/v7zfLy8v/t7e3/7e3t/+zs7P/r6+v/6urq/+np6f/p6en/6Ojo/+fn5//m5ub/5ubm/+Xl + 5f/k5OT/4+Pj/+Pj4//i4uL/4uLi/+jo6P/o6Oj/5+fn/+bm5//m5ub/5eXl/+Xl5f/n5+f/8PDw//b2 + 9srw8PAv////ALCwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gD///8Q+/v7zfP08//v7+//7u7u/+3t7f/t7e3/7Ozs/+vr6//q6ur/6enp/+np + 6f/o6Oj/5+fn/+bn5//m5ub/5eXl/+Tk5P/k4+T/5OTk/+np6f/p6en/6Ojo/+jo6P/n5+f/5+fn/+np + 6f/x8fH/9/f3yfLx8S7///8Az8/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+/v7zfX19f/w8PH/8PDw/+/v7//u7u7/7u7u/+3t + 7f/s7Oz/6+vr/+rq6v/q6ur/6enp/+jo6P/n5+f/5+fn/+bm5v/l5eX/5uXm/+rq6v/q6ur/6urp/+np + 6f/o6Oj/6urq//Ly8v/39/fI8vLyLf///wDGxsYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q/Pz8zfb29v/y8vL/8fHx//Hw + 8f/w8PD/7+/v/+7v7v/u7u7/7e3t/+zs7P/r7Oz/6uvr/+rq6v/p6en/6Ojo/+fo6P/n5+f/5+fn/+vr + 6//r6+v/6+vr/+rq6v/s7Oz/8/Pz//j4+Mf09PQs/Pz8AN/f3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q/Pz8zff3 + 9//09PT/8/Pz//Ly8v/y8fL/8fHx//Dw8P/v7+//7+7v/+7u7v/t7e3/7ezs/+zs7P/r6+v/6urq/+np + 6f/o6Oj/6enp/+zt7f/t7e3/7Ozs/+7u7v/19fX/+fn5xvX19Sv///8A1NTTAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD///8Q/Pz8zfj4+P/29vb/9fX1//T09P/z8/P/8vLy//Hy8v/x8fH/8PDw/+/v8P/v7+//7u7u/+3t + 7f/s7ez/7Ozs/+vr6//q6ur/6urq/+7u7v/u7u7/8PDw//b29v/09PTF8vLyK/n5+QDKysoAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gD///8Q/f39zfn5+f/39/f/9vb3//b29v/19fX/9PT0//Pz8//z8vL/8vLy//Hx + 8f/w8PD/8PDw/+/v7//u7u7/7e3t/+3t7f/s7Oz/7Ozs/+/v7//x8fH/9/f3//Pz88Tj4uMp9PT0ALW1 + tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v8Q/f39zfv6+v/5+fn/+Pj4//f39//29/f/9vb2//X1 + 9f/09PT/8/Pz//Py8//y8vL/8fHx//Dw8P/v8PD/7+/v/+7u7v/t7e3/7e3t//Ly8v/3+Pf/9PT0w+Li + 4ij4+PgAlpaWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f0Q/f39zfz8/P/6+vr/+vr6//n5 + +f/4+Pj/+Pj4//f39//29vb/9fX1//T19P/09PT/8/Pz//Ly8//y8vL/8fHx//Dw8P/v8PD/8fHx//j4 + +P/09PTC5OTjKPPz8wCvr68AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANvb2wDW1tYK9vb2tv39 + /f/9/f3//Pz8//z8/P/8/Pz/+/v7//v7+//7+/v/+vr6//r6+v/5+vr/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/3+Pj/+fn5//T09MDk5OQm9PT0AK6urgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeH + hwD///8A5ubmNPf3937+/v6B/v7+gf7+/oH+/v6B/v7+gf7+/oH+/v6B/f39gf39/YH9/f2B/f39gf39 + /YH9/f2B/f39gf39/YH9/f2B+vr6fObm5ij9/f0AfX19AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+AAAAAH8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAH8AAPwAAAAA/wAA/AAAAAH/AAD8AAAAA/8AAPwAAAAH/wAA/AAAAA// + AAD8AAAAH/8AAPwAAAA//wAA/AAAAH//AAD8AAAA//8AAPwAAAH//wAA/AAAA///AAD8AAAH//8AAPwA + AA///wAA/gAAH///AAAoAAAAQAAAAIAAAAABACAAAAAAAABAAADCDgAAwg4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDw8MAvLy8Atvb2zL29vZT+/v7Uvr6+lL6+vpS+vr6Uvr6 + +lL6+vpS+vr6Uvr6+lL6+vpS+vr6Uvr6+lL6+vpS+vr6Uvr6+lL6+vpS+vr6Uvr6+lL6+vpS+fr5Uvn5 + +VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5 + +VL5+flS+Pn5Uvj5+VL5+flS+fn5UvX19VPc29wyvLy8AsPCwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8/PzAOHh4UDx8fHf7u7u+erq + 6vjp6en46enp+Onp6fjp6en46enp+Onp6Pjo6Oj46Ojo+Ojo6Pjo6Oj46Ojo+Ofo6Pjn5+f45+fn+Ofn + 5/jn5+f45+fn+Ofn5/jm5ub45ubm+Obm5vjm5ub45ubm+Obm5vjl5eX45eXl+OXl5fjl5eX45eXl+OTl + 5fjk5OT45OTk+OTk5Pjk5OT45OTk+OPk4/jj4+P44+Pj+OTk5Pjp6ur57/Dw3+Hh4UHy8vIAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn5 + +QDx8fF97Ozs/9XV1f/Jycn/yMjI/8fHx//Hx8f/xsfG/8bGxv/Gxsb/xcXF/8XFxf/FxMX/xMTE/8TE + xP/Dw8P/w8PD/8LCwv/CwsL/wsLC/8HBwf/BwcH/wMDA/8DAwP+/v7//v7+//7+/v/++vr7/vr6+/76+ + vv+9vb3/vb29/7y8vP+8vLz/u7u7/7u7u/+6urr/urq6/7q6uv+5ubn/ubm5/7i4uP+5ubn/yMjI/+bm + 5v/w8PB99vb2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADz8vMA+Pj4f+Xk5P/ExMT/tra2/7a1tf+1tbX/tbW0/7S0tP+zs7P/s7Oz/7Ky + sv+ysrL/sbGx/7Gwsf+wsLD/r6+v/6+vr/+urq//rq6u/62trf+sraz/rKys/6urq/+rq6v/qqqq/6qq + qv+pqan/qamp/6ioqP+oqKj/p6en/6anpv+mpqb/paWl/6Wlpf+kpaT/o6Sk/6Ojo/+ioqL/oqKi/6Gh + of+hoaH/oKGh/7Kysv/c3Nz/9vb2f+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8vLyAPj4+H/k5OT/w8PD/7a2tv+2trb/tbW1/7S0 + tP+0tLT/s7Oz/7Ozs/+ysrL/srGx/7Gxsf+xsbH/sLCw/6+vr/+vr6//rq6u/66urv+tra3/ra2t/6ys + rP+rq6v/q6qr/6qqqv+qqqr/qamp/6ipqP+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+kpaT/pKSk/6Oj + o/+jo6P/oqKi/6Kiov+hoaH/oKCg/6CgoP+wsLD/2tra//X19X/t7e0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gD4+Ph/5OTk/8TE + xf+4uLj/t7e3/7a2tv+2trb/tbW1/7W0tf+0tLT/tLSz/7Ozs/+ysrP/srKy/7Gxsf+xsbH/sLCw/7Cw + sP+vr6//rq6u/66urv+tra7/ra2t/6ysrP+rq6v/q6ur/6qqqv+qqqr/qamp/6mpqf+oqKj/p6eo/6en + p/+np6b/pqam/6Wlpf+kpaT/pKSk/6SkpP+jo6P/oqKj/6Kiov+hoaH/sbGx/9vb2//19fV/7e3tAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADz8vMA+Pj4f+Tk5f/FxcX/ubm5/7i4uP+4uLj/t7e3/7e3t/+2trb/tbW1/7S0tf+0tLT/tLS0/7Oz + s/+zsrL/srKy/7Gxsf+xsbH/sLCw/6+wr/+vr6//r66u/66urv+urq3/ra2t/6ysrP+sq6v/q6ur/6qq + qv+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+jo6P/o6Oj/7Ky + sv/b29v/9fX1f+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA8/LzAPj4+H/l5eX/xsbG/7q6uv+5ubn/ubm5/7i4uP+4uLj/t7e3/7e3 + t/+2trb/tbW1/7S1tf+0tLT/tLS0/7Ozs/+ysrL/srKy/7Gxsf+xsbH/sLCw/7CwsP+vr6//rq+u/66u + rv+urq7/ra2t/6ysrP+srKv/q6ur/6qqqv+qqqr/qamp/6mpqf+oqKj/qKeo/6enp/+np6f/pqam/6Wl + pf+lpaX/pKSk/6SkpP+ztLP/3Nzc//X19X/u7u4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPz8wD4+Ph/5eXl/8fHx/+7u7v/u7u7/7q6 + uv+6ubn/ubm5/7i4uP+4uLj/uLe3/7e3t/+2trb/tbW1/7W1tf+0tLT/tLS0/7Ozs/+zsrP/srKy/7Gx + sf+xsbH/sLGx/7CwsP+vr6//rq+u/66urv+urq7/ra2t/6ysrP+srKz/q6ur/6qqqv+qqqr/qqqq/6mp + qf+oqKj/qKeo/6enp/+np6f/pqam/6alpv+lpaX/tLS0/9zc3P/19fV/7u7uAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADz8/MA+Pj4f+bm + 5v/JyMj/vLy8/7y8vP+7u7v/u7u7/7q6uv+5urr/ubm5/7i4uP+4uLj/t7i3/7e3t/+2trb/tbW1/7W1 + tf+0tLT/tLS0/7Ozs/+zs7P/srKy/7Gxsf+xsbH/sLCx/7CwsP+vr6//r6+v/66urv+urq7/ra2t/62t + rP+srKz/q6ur/6qqqv+qqqr/qqqq/6mpqf+oqKj/qKio/6enp/+np6f/pqam/7W1tf/d3d3/9vb2f+/v + 7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA8/PzAPn5+X/m5ub/ycnJ/76+vv+9vb3/vLy8/7y8vP+7u7v/u7u7/7q6uv+6urr/ubm5/7i4 + uP+4uLj/uLi4/7e3t/+2trb/tbW2/7W1tf+0tLT/tLS0/7Ozs/+zs7P/srKy/7Gxsf+xsbH/sbGx/7Cw + sP+vr6//r6+v/66urv+urq7/ra2t/62srP+srKz/q6ur/6qqq/+qqqr/qqqq/6mpqf+oqKj/qKio/6en + p/+2trb/3d3d//b29n/v7+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPz8wD5+fl/5+fn/8rKyv+/vr7/vr6+/76+vv+9vb3/vLy8/7y8 + vP+7u7v/u7u7/7q6uv+6urr/ubm5/7m4uP+4uLj/uLi4/7e3t/+2trb/tbW1/7W1tf+0tLT/tLS0/7Oz + s/+zsrP/srKy/7Gxsf+xsbH/sbGx/7CwsP+vr6//rq6u/66urv+urq7/ra2t/62trf+srKz/q6ur/6qq + qv+qqqr/qqqq/6mpqf+pqan/t7e3/97e3v/29vZ/7+/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADz8/MA+fn5f+fn5//Ly8v/wMDA/8C/ + v//AwMD/wcHB/8HBwf+/v7//vb29/7y8vP+7u7v/u7u7/7u6uv+6urr/ubm5/7m4uf+4uLj/urq6/7q6 + uv+5urn/ubm5/7i4uP+4uLj/uLe4/7e3t/+0tbT/srKy/7Kysv+ysrL/tLS0/7S0tP+zsrL/sLCw/66u + rv+urq7/r6+v/7CwsP+wsLD/rq6u/6ysrP+qqqr/qqqq/7i4uP/e3t7/9vb2f/Dw8AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9PT0APn5 + +X/o6Oj/zMzM/8LCwv/Hx8f/0tLS/9nY2P/Y2Nj/0NDQ/8XFxf++vr7/vb29/7y8vP+7u7v/u7u7/7q7 + uv+7vLv/w8PD/83Nzf/T09P/1NTU/9TU1P/U1NT/09PT/9PT0//Q0ND/x8bH/7q6uv+2trb/wcHB/83N + zf/Q0ND/zMzM/7+/v/+zs7P/tLW0/8LBwv/MzMz/zs7O/8nJyf+8vLz/r6+v/6urq/+5ubn/39/f//f3 + 93/w8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPT09AD5+fl/6Ojo/83Nzf/FxcX/1tbW/+Hh4f/V1dX/2NjY/+Xl5f/U1NT/wsLB/76+ + vv+9vb3/vb29/7y8vP+8vLz/xsbG/9vb2//p6en/2tra/9TU1P/U1NT/1NTU/9TU1P/U09P/3t7e/+Xl + 5f/Pz8//xsbG/9jZ2f/X19f/0tLS/93d3f/Y2Nj/wMDA/8bGxv/e3t7/2NjY/9HR0f/b29v/1dXV/7m5 + uf+tra3/urq6/9/f3//39/d/8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD09PQA+fn5f+np6f/Ozs7/ycnJ/+Li4v+3t7f/ISEh/zc3 + N//b29v/39/f/8XFxf+/v7//vr6+/76+vv+9vb3/wMDA/9XU1f/l5eX/dnZ2/ycnJ/8dHR3/Hh4e/x4e + Hv8eHh7/HR0d/zY2Nv+rq6v/5eXl/9nZ2f/l5eX/XFxc/xcXF/+Kior/6urq/87Ozv/a2tr/z8/P/zc3 + N/8gICD/qKio/+Hh4f+8vLz/rq6u/7u7u//f39//9/f3f/Dw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9fX1APn5+X/p6en/z8/P/8vL + yv/l5uX/sLCw/wMDA/8dHR3/2dnZ/+Li4v/Hx8f/wMDA/8DAwP+/v7//vr6+/8TExP/f39//w8PD/xIS + Ev8AAAD/AgIC/wMDA/8DAwP/AwMD/wEBAf8AAAD/S0tL/+rq6v/j4+P/6enp/0dHR/8AAAD/fHx8/+/v + 7//b29v/6urr/4WFhf8AAAD/Li4u/9vb2//X19f/uLe3/6+ur/+8vLz/4ODg//f393/w8PAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX1 + 9QD5+fl/6enp/9DQ0P/MzMz/5ubm/7CwsP8DAwP/HR0d/9nZ2f/i4uL/yMjI/8HCwv/BwcH/wMHB/7+/ + wP/FxcX/4+Pj/6+vsP8FBQX/AwMD/4KCgv+2trb/sbGx/7e3t/9XV1f/AAAA/0VFRf/s7Oz/5+fn/+rq + 6v9HR0f/AAAA/3x8fP/19fX/6+vr/93d3f81NTX/AAAA/3t7e//p6en/x8fH/7Ozs/+wsLD/vb29/+Dg + 4f/39/d/8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD19fUA+fn5f+rq6v/R0dH/zc3N/+fn5/+wsLD/AwMD/x0dHf/Z2dn/4+Pj/8nJ + yf/CwsP/wsLC/8LCwv/BwcH/x8fH/+Pj4/+wsLD/BQUF/wUFBf+1tbX/9/f3/+7u7v/8/Pz/enp6/wAA + AP9FRUX/7e3t/+fn5//q6ur/R0dH/wAAAP98fHz//Pz8//r6+v+lpaX/AwMD/yMjI//Q0ND/29vb/7y8 + vP+xsbH/sbGx/76+vv/h4eH/9/f3f/Hx8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9fX1APr6+n/q6ur/0tLS/87Ozv/n5+f/sLCw/wMD + A/8dHR3/2dnZ/+Tk5P/Kysr/xMTE/8PDw//Dw8P/wsLC/8jIyP/k5OT/sLCw/wUFBf8FBQX/sLCw/+fn + 5//b29v/8fHx/3h4eP8AAAD/RUVF/+3t7f/o6Oj/6urq/0dHR/8AAAD/fX19///////z8/P/S0tL/wAA + AP98fHz/6urq/8rKyv+2trb/s7Oy/7Kysv+/v7//4eHh//f393/x8fEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD6+vp/6+vr/9PT + 0//Pz8//6Ojo/7Gxsf8DAwP/HR0d/9nZ2f/k5OT/y8vL/8XFxf/FxcX/xMTE/8PDw//Iycj/5OTk/7Cw + sP8FBQX/BQUF/6+vr//k5OT/1tfX//Dw8P94eHj/AAAA/0VFRf/t7e3/6Ojo/+rq6v9HR0f/AAAA/319 + ff//////xMTE/w8PD/8ZGRn/zc3N/97e3v+/v7//tLS0/7S0tP+0s7T/wMDA/+Li4v/39/d/8fHxAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD29vYA+vr6f+zr7P/U1NT/0NDQ/+jo6f+xsbH/AwMD/x0dHf/a2tr/6urq/9XV1f/Q0ND/0NDQ/87O + zv/Jycn/y8vL/+Xl5f+wsLD/BQUF/wUFBf+wsLD/5eXl/9fX1//w7/D/eHh4/wAAAP9FRUX/7e3t/+jo + 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 + fP/39/f/7u7u/+Pj4/83Nzf/AAAA/1xcXP/r6+v/1dXV/8LCwv+/v7//ysrK/+bm5v/4+Ph/8/PzAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD5+fkA+/v7f/Ly8v/j4+P/4ODg/+/v7//Gxsb/S0tL/0dHR/9HR0f/R0dH/0dHR/9HR0f/RkZG/1hY + WP/Nzc3/8PDw/+vr6//v7+//jIyM/0ZGRv9HR0f/R0dH/0dHR/9HR0f/R0dH/0xMTP+2trb/7u7u/+bl + 5f/t7e3/e3t7/0JCQv+fn5//8PDw/+Li4v/t7e3/pKSk/0VFRf9bW1v/2NjY/93d3f/Gxsb/wcHB/8vL + y//m5ub/+Pj4f/Pz8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+fn5APv7+3/z8/P/5OTk/+Dg4P/o6Oj/8vLy//Pz8//z8/P/8/Pz//Pz + 8//z8/P/8/Pz//Ly8v/y8vL/7+/v/+Li4v/e3t7/6Ojo//Lx8v/x8fH/8vLy//Ly8v/y8fL/8fHx//Hx + 8f/w8PD/7u7u/+Dg4P/b29v/5+fn/+/v7//w8PD/7u7u/+Pj4//V1dX/3Nzd/+zs7P/u7u7/7e3t/+jo + 6P/W1tb/xcXF/8LBwv/MzMz/5+fn//j4+H/z8/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn5+QD7+/t/8/Pz/+Xl5f/f39//4uLi/+fn + 5//q6ur/6urq/+rq6v/p6en/6enp/+np6f/o6Oj/5uXm/+Dg4P/a2tr/2dnZ/9zc3P/h4eH/5eXl/+bm + 5v/l5eX/5eXl/+Tk5f/k5OT/4uLi/9zc3P/V1dX/09PT/9nZ2f/e3t7/3t7e/9vc2//T09P/y8vL/87O + zv/X19f/29vb/9vb2//V1dX/y8vL/8TExP/Dw8P/zc3N/+fn5//4+Ph/8/PzAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA+/v7f/T0 + 8//m5ub/4eHh/+Dg4P/g4OD/4ODg/+Dg4P/f39//39/f/97e3v/d3t3/3d3d/9zc3P/b29v/2tra/9nZ + 2f/Z2dn/2dnZ/9nZ2f/Z2dn/2NjY/9fY1//X19f/1tbW/9bW1v/U1NT/09PT/9LS0v/Q0ND/z87O/87O + zv/Nzc3/y8vL/8rKyf/Jycn/ysrK/8rKyv/Jycn/yMjI/8bGxv/FxcX/xcXF/87Ozv/o6Oj/+Pn4f/T0 + 9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA+vr6APz8/H/09PT/5+fn/+Li4v/h4uH/4eHh/+Dg4P/f39//39/f/97e3v/e3t7/3d3d/93c + 3P/c3Nz/3Nzc/9vb2//b29v/2tra/9nZ2f/Z2dn/2NjY/9jY2P/X19f/1tbW/9bW1f/V1dX/1dXV/9TU + 1P/R0dH/zs7O/83Nzf/Nzc3/zMzM/8zMzP/Ly8v/ysrK/8nKyf/Jycn/yMjI/8fHyP/Hx8f/x8fH/8bG + xv/Pz9D/6Ojp//n5+X/09PQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6+gD8/Px/9fX1/+jo6P/j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg + 4P/f4OD/39/f/9/f3//e3t7/3d3d/93d3f/c3Nz/3Nzc/9vb2//b29v/2tra/9nZ2f/Z2dn/2NnY/9jY + 2P/X19f/1tbX/9bW1v/T09P/0NDQ/9DQz//Pz8//zs7O/83Nzf/Nzc3/zc3N/8zMzP/Ly8v/ysrL/8rK + yv/Jycn/yMjI/8jIyP/Hx8f/0NDR/+np6f/5+fl/9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA/Pz8f/X19f/p6en/5OTk/+Tk + 5P/j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg4P/f4OD/39/f/9/f3//e3t7/3t3e/93d3f/c3Nz/3Nzc/9vb + 2//b29v/2tra/9na2f/Z2dn/2dnZ/9jY2P/V1dX/0tLS/9LS0v/R0dH/0NDQ/8/Pz//Pz8//zs7O/83N + zf/Nzc3/zM3M/8zMzP/Ly8v/y8rL/8rKyv/Jycn/ycnJ/9XV1f/t7e3/+vr6f/f39wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+/v7APz8 + /H/19fX/6urq/+bm5v/l5eX/5eXk/+Tk5P/j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg4P/g4OD/39/f/9/f + 3//e3t7/3d7e/93d3f/c3Nz/3Nzc/9vb2//b29v/2tra/9nZ2f/b29v/29zc/9vb2//b29r/2tra/9rZ + 2f/Z2dn/2NnY/9jY2P/X19f/19fX/9bW1v/W1tb/1dXV/9XV1f/U1NT/1NTU/9nZ2f/n5+f/9PT0+PT0 + 9GL29vYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPv7+wD8/Px/9vb2/+vr6//n5+f/5ubm/+bm5v/l5eX/5eXl/+Tk5P/j4+P/4+Pj/+Li + 4//i4uL/4eHh/+Dg4P/g4OD/39/f/9/f3//e3t7/3t3e/93d3f/c3Nz/3Nzc/9vc2//b29v/397e/+Tk + 4//j4+P/4+Li/+Li4v/i4uL/4eHh/+Hh4f/h4eH/4ODg/+Dg4P/f39//39/f/97e3v/e3t7/3t7e/+Li + 4v/t7e3/9fX19+/v74PNzc0J3d3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA/Pz8f/b29v/s7Oz/6Ojo/+fn5//n5+f/5ubm/+bm + 5v/l5eX/5eXl/+Tk5P/j4+P/4+Pj/+Lj4//i4uL/4eHh/+Dg4P/g4OD/39/f/9/f3//e3t7/3t7e/93d + 3f/c3N3/3Nzc/9/f3//k5OT/5OTk/+Tj4//j4+P/4uLi/+Li4v/h4eL/4eHh/+Hh4f/h4OD/4ODg/+Dg + 4P/f39//39/f/+Pj4//t7e3/9fX19/Dw8IDOzs4J3t7eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+/v7AP39/X/39/f/7e3t/+np + 6f/p6en/6Ojo/+fn5//n5+f/5ubm/+bm5v/l5eX/5eXl/+Tk5P/j4+P/4+Pj/+Lj4//i4uL/4eHh/+Hh + 4f/g4OD/39/f/9/f3//e3t//3t7e/93d3f/g4OD/5eXl/+Xl5f/k5OT/5OTk/+Pj5P/j4+P/4uLi/+Li + 4v/i4uH/4eHh/+Hh4f/g4OD/4ODg/+Tk5P/u7u7/9vb29/Hx8YDS0tII39/fAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7 + +wD9/f1/9/f3/+7u7v/q6ur/6urp/+np6f/p6en/6Ojo/+jn6P/n5+f/5ubm/+bm5v/l5eX/5eXl/+Tk + 5P/k4+P/4+Pj/+Pj4//i4uL/4eHh/+Hh4f/g4OD/39/f/9/f3//e3t7/4eHh/+bm5v/l5uX/5eXl/+Xl + 5f/k5OT/5OTk/+Tk5P/j4+P/4uLi/+Li4v/i4uL/4uLi/+bm5v/u7u7/9vb29vLy8n7T09MI4ODgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD8/PwA/f39f/j4+P/v7+//7Ozs/+vr6//q6ur/6urq/+np6f/p6en/6Ojo/+jo + 6P/n5+f/5+bn/+bm5v/l5uX/5eXl/+Tk5P/j5OT/4+Pj/+Pj4//i4uL/4eHi/+Hh4f/g4OD/39/f/+Li + 4v/n5+f/5ubm/+bm5v/m5eb/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/j4+P/4+Pj/+fn5//v7+//9vb29vLy + 8n3X19cI4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/X/4+Pj/8PDw/+3t7f/t7e3/7Ozs/+vr + 6//q6+r/6urq/+np6f/p6en/6Ojo/+jo6P/n5+f/5ufm/+bm5v/m5ub/5eXl/+Tk5P/k5OT/4+Pj/+Pj + 4//i4uL/4uHi/+Hg4f/j4+P/6Ojo/+fn5//n5+f/5ubm/+bm5v/m5ub/5eXl/+Xl5f/k5OT/5OTk/+jo + 6P/w8PD/9/f39vPz83vY2NgH4uLiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f1/+fn5//Hx + 8f/u7u7/7e3t/+3t7f/t7e3/7Ozs/+vr6//r6+v/6urq/+np6f/p6en/6Ojo/+jo6P/n5+f/5ubn/+bm + 5v/m5ub/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//i4uL/5eXl/+np6f/o6Oj/6Ojo/+jo6P/n5+f/5ubm/+bm + 5v/m5ub/5ubm/+np6f/w8fD/9/f39fPz83rZ2dkH4uLiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD8/PwA/f39f/n5+f/y8vL/7+/v/+/v7//u7u7/7e3u/+3t7f/t7e3/7Ozs/+vr6//r6+v/6urq/+np + 6f/p6en/6eno/+jo6P/n5+f/5ufn/+bm5v/m5ub/5eXl/+Xl5P/k5OT/4+Pj/+bm5v/p6un/6enp/+np + 6f/o6Oj/6Ojo/+jn6P/n5+f/5+fn/+rq6v/x8fH/+Pj49fX19Xjc3NwG5eXlAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/X/5+fn/8/Pz//Dw8P/w8PD/8O/w/+/v7//u7u7/7u7u/+3t + 7f/t7e3/7Ozs/+vr6//r6+v/6urq/+np6f/p6en/6ejp/+jo6P/n5+f/5+fn/+bm5v/m5ub/5eXl/+Tk + 5P/n5+f/6urq/+rq6v/q6ur/6enp/+np6f/o6Oj/6Ojo/+vr6//y8vL/+Pj49PX19Xfd3d0G5eXlAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f1/+vr6//T09P/y8vL/8fHx//Dw + 8P/w8PD/8O/w/+/v7//u7u7/7u7u/+3t7f/t7e3/7Ozs/+zs6//r6+v/6urq/+np6f/p6en/6enp/+jo + 6P/n5+f/5+fn/+bm5v/m5ub/6Ojo/+vs6//r6+v/6urq/+rq6v/q6er/6enp/+zs7P/z8vP/+Pj49Pb2 + 9nXf398G6OjnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/f39f/v6 + +//19fX/8/Pz//Lz8v/y8vL/8fHx//Hw8P/w8PD/8PDw/+/v7//u7u7/7u7u/+3t7f/t7e3/7Ozs/+zs + 7P/r6+v/6urq/+np6v/p6en/6enp/+jo6P/o5+f/5+fn/+np6f/s7Oz/7Ozs/+zs7P/r6+v/6+vr/+3t + 7v/z8/P/+fn59Pb29nXf398G6OjoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/f39AP39/X/7+/v/9vb2//T09P/z8/P/8/Pz//Pz8//y8vL/8fHx//Hw8f/w8PD/8PDw/+/v + 7//v7u//7u7u/+3t7f/t7e3/7ezs/+zs7P/r6+v/6urq/+rq6v/p6en/6enp/+jo6P/q6ur/7e3t/+3t + 7f/s7Oz/7Ozt/+/v7//19fX/+fn58/j4+HPk5OQF7OzsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f1/+/v7//f39//29vX/9fX1//T09P/z8/P/8/Pz//Pz + 8v/y8vL/8fHx//Hx8f/w8PD/8PDw/+/v7//u7+//7u7u/+3t7f/t7e3/7O3s/+zs7P/r6+v/6urq/+rq + 6v/p6en/6+vr/+7u7v/u7e7/7u7u//Hx8f/29vb/9/f38vLy8nLr6+sF7OzsAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+f/z8/P/4+Pj/9/f3//b2 + 9v/19vb/9fX1//T09P/z8/P/8/Pz//Pz8//y8vL/8fHx//Hx8f/w8PD/8PDw/+/v7//v7+//7u7u/+7t + 7f/t7e3/7O3s/+zs7P/r6+v/6urq/+zs7P/v7+//7+/v//Ly8v/39/f/9/f38ujo6G+0tLQFy8vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+ + /n/8/Pz/+fn5//j4+P/39/f/9/f3//b29v/19vb/9fX1//T09P/09PT/8/Pz//Pz8//y8vL/8fHy//Hx + 8f/w8PD/8PDw/+/v7//v7+//7u7u/+3t7f/t7e3/7e3t/+zs7P/t7e3/8PDw//Pz8//4+Pj/9/f38ujo + 6G+0tLQFy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP3+/QD+/v5//f39//r6+v/5+fn/+Pn5//j4+P/39/f/9/f3//b29v/29vb/9fX1//T0 + 9P/09PT/8/Pz//Pz8//y8vL/8vHy//Hx8f/w8PD/8PDw/+/v7//v7+//7u7u/+7t7v/t7e3/7+/v//T0 + 9P/4+Pj/9/f38ejo6G2wsLAEy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+f/39/f/7+/v/+vr6//r6+v/5+fn/+Pn4//j4 + +P/39/f/9/f3//f29//29vb/9fX1//T09f/09PT/8/Pz//Pz8//y8vP/8vLy//Hx8f/x8fD/8PDw/+/w + 8P/v7+//7+/v//Py8v/5+fn/+Pj48ejo6GyxsbEEy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////APX19X39/f3//f39//z8 + /P/8+/z/+/v7//v7+//6+vr/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//f39//29/f/9vb2//b2 + 9v/19vX/9fX1//T09P/09PT/9PT0//T09f/4+Pj/+Pj48enp6WusrKwEy8vLAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT0 + 9ADi4uJB9/f33/39/fn+/v74/v79+P39/fj9/f34/f39+P39/fj9/f34/f39+P39/fj8/Pz4/Pz8+Pz8 + /Pj8/Pz4/Pz8+Pz8/Pj8/Pz4+/v7+Pv7+/j7+/v4+/v7+Pv7+/j7+/v5+Pj46+np6Wmtra0Ey8vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADBwcEAubm5Atzc3DL4+PhT/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+ + /lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+U/Dw + 8EDBwcEGysrKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+A + AAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAA + Af//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+A + AAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAA + Af//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+A + AAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAA + Af//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+A + AAAAAAP//4AAAAAAB///gAAAAAAP//+AAAAAAB///4AAAAAAP///gAAAAAB///+AAAAAAP///4AAAAAB + ////gAAAAAP///+AAAAAB////4AAAAAP////gAAAAB////+AAAAAP////4AAAAB/////gAAAAP////+A + AAAB/////4AAAAP/////gAAAB/////+AAAAP////KAAAAIAAAAAAAQAAAQAgAAAAAAAAAAEAwg4AAMIO + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3AAAA + AADCwsIfx8fHa/X19X/8/Px/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7 + +3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7 + +3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+vr6f/r6+n/6+vp/+vr6f/r6 + +n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6 + +n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6 + +n/6+vp/+fr6f/r6+n/5+vp/+fr6f/n6+n/6+vl/+vr6f/n6+n/7+/t/9fX1f8fGxmvCwsIfAAAAAHp6 + egAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJiYgDa2toAzMzMMe/v78Xz8/P99vb2//T09P/z8/P/8vLy//Ly + 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vHy//Lx + 8f/y8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx + 8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8PHw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw + 8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw/+/w + 8P/v8O//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v + 7//v7+//7+/v//Hx8f/09PT/8vLz/e/v78bMzMwx29raAGFhYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaGhAHd3 + dwrh4eGp+vr6//Pz8//s7Oz/5ubm/+Pj4//i4uL/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh + 4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/g4eH/4eDh/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f + 4P/f39//39/f/9/f3//f39//39/f/9/f3//e397/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e + 3v/e3t7/3t3d/97d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3dzc/9zc3P/c3Nz/3Nzc/9zc + 3P/c3Nz/3Nzc/9zc3P/c3Nz/29zb/9vc3P/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb + 2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/b29v/39/f/+bm5v/w8PD/+fn5/+Hh + 4al4eHgKoaGhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NQAzs7OG+rq6uH19fX/6urq/9/f4P/X19f/0dLR/9DQ + 0P/P0M//z8/P/8/Pz//Pz8//z8/P/87Pzv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/83Ozf/Nzc3/zc3N/83N + zf/Nzc3/zc3N/83NzP/MzMz/zMzM/8zMzP/LzMz/y8vL/8vLy//Ly8v/y8vK/8vKyv/Kysr/ysrK/8rK + yv/Kysr/ysrK/8rKyv/Kysr/ysrK/8nJyv/Jycn/ycnJ/8nJyf/Jycn/yMnJ/8jIyP/IyMj/yMjI/8jI + x//Ix8j/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/xsfH/8bGxv/Gxsb/xsbG/8bGxv/FxcX/xcXF/8XF + xf/ExcT/xMTE/8TExP/ExMT/xMTE/8TExP/ExMT/xMPD/8PDw//Dw8P/w8PD/8PDwv/DwsL/wsLC/8LC + wv/CwsL/wsLC/8TExP/Ly8v/1tbW/+Pk4//y8vL/6erq4c7OzhvU1NQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD///8c+vr64/Dw8P/i4uL/1NXV/8jIyP/BwcH/wMDA/8DAwP/AwL//v7+//7+/v/+/vr7/vr6+/76+ + vv++vr7/vr6+/76+vv+9vb3/vb29/729vf+8vLz/vLy8/7y8vP+8vLz/u7y8/7u7u/+7u7v/u7u7/7u7 + uv+7u7r/urq6/7q6uv+6urn/ubm5/7m5uf+5ubn/uLm5/7i4uf+4uLj/uLi4/7i4uP+3uLj/t7e3/7e3 + t/+3t7b/t7a2/7a2tv+2trb/tbW2/7W1tv+1tbX/tbW1/7W1tf+1tbX/tbW1/7W0tP+0tLT/tLS0/7O0 + s/+zs7T/s7Oz/7Ozs/+zsrP/s7Ky/7Kysv+ysrL/srKx/7Gysf+xsbH/sLCx/7CwsP+wsLD/sLCw/6+v + r/+vr6//r6+v/6+vr/+vr6//r6+v/6+vrv+urq7/rq6u/66urf+trq3/rq6u/7e3t//Hx8f/2dnZ/+vr + 6//5+fnj////HP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Rz5+fnj7e3t/93d3f/MzMz/vr6+/7e3 + t/+2trb/tra2/7a2tv+2tbX/tbW1/7W1tf+0tbT/tLS0/7S0tP+0tLT/s7Oz/7Ozs/+zs7P/s7Kz/7Ky + sv+ysrL/srKy/7Kysf+xsbH/sbCx/7CwsP+wsLD/sLCw/7CwsP+wsK//r7Cw/6+vr/+vr6//rq6v/66u + rv+urq7/rq2u/62trf+tra3/ra2s/6ysrP+srKz/rKys/6usq/+rq6v/q6ur/6uqqv+qqqr/qqqq/6mq + qv+pqar/qamp/6mpqf+pqan/qamp/6mpqf+oqKj/qKio/6inqP+np6f/p6en/6anpv+mpqb/pqam/6am + pv+mpqb/pqam/6alpf+lpaX/pKWk/6SkpP+kpKT/o6Oj/6Ojo/+jo6P/o6Kj/6Kiov+ioqL/oqKi/6Ki + ov+hoaH/oaGh/6Ghof+hoaH/qamp/7y8vP/S0tL/5+fn//b29uP8/fwc+/v7AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD8/PwA/f39HPn5+ePs7Oz/29ra/8nJyf+7u7v/tba1/7W1tf+1tbX/tLS0/7S0tP+0tLT/tLS0/7S0 + s/+0s7P/s7Oz/7Ozsv+ysrP/srKy/7Gxsv+xsbL/sbGx/7Gxsf+xsbH/sbGx/7CwsP+wsLD/r6+w/6+v + r/+vr6//rq6u/66urv+urq7/rq6u/66urv+ura7/ra2t/62trf+trKz/rKys/6usq/+rq6v/q6ur/6qr + q/+qqqr/qqqq/6qqqv+qqqr/qqqq/6mpqv+pqan/qaip/6ioqP+oqKj/p6in/6enp/+np6f/p6en/6em + p/+npqf/pqam/6ampv+lpqb/paal/6WlpP+kpaT/pKSk/6SkpP+kpKT/pKSk/6Oko/+jo6P/oqOj/6Ki + ov+ioqL/oaKh/6Ghof+hoaH/oKCh/6CgoP+goKD/oKCg/6CgoP+foKD/n6Cf/5+fn/+mpqb/uLi4/8/P + z//l5eX/9vb24/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f0c+fn54+zs7P/b2tr/ycnJ/7y7 + vP+2trb/tra1/7a1tf+1tbX/tbW1/7W0tf+0tLT/tLS0/7S0tP+0tLT/s7Oz/7Ozs/+zs7P/srKy/7Ky + sv+ysrL/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+wsbD/sLCw/7CwsP+wr6//r6+v/6+urv+urq7/rq6u/66u + rv+urq7/ra2u/62trf+tra3/rays/6ysrP+srKz/rKur/6urq/+rq6v/qqqr/6qqqv+qqqr/qqqq/6qq + qv+pqar/qamp/6mpqf+oqKj/qKio/6iop/+np6f/p6en/6enp/+np6f/p6en/6amp/+mpqb/pqal/6Wl + pf+lpaX/paSl/6SkpP+kpKT/pKSk/6SkpP+ko6T/o6Oj/6Ojo/+io6P/oqKi/6Kiov+ioaL/oaGh/6Gh + of+goKD/oKCg/6CgoP+goKD/oKCg/6enp/+4uLj/zs7O/+Xl5f/29vbj/f39HPv7+wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AP39/Rz5+fnj7Ozs/9vb2//Kysr/vLy8/7e3t/+2t7f/tra2/7a2tv+2tbX/tbW1/7W1 + tf+0tLT/tLS0/7S0tP+0tLT/tLS0/7SztP+zs7P/s7Oz/7Kysv+ysrL/srKy/7Gxsf+xsbH/sbGx/7Gx + sf+xsbH/sLCw/7CwsP+wsLD/r6+v/6+vr/+vr6//rq6u/66urv+urq7/rq6u/66urf+tra3/ra2t/6yt + rf+srKz/rKys/6yrq/+rq6v/q6ur/6uqqv+qqqr/qqqq/6qqqv+qqqr/qaqq/6mpqf+pqan/qaip/6io + qP+np6j/p6en/6enp/+np6f/p6en/6enp/+np6b/pqam/6ampv+lpaX/paWl/6SlpP+kpaT/pKSk/6Sk + pP+kpKT/pKSk/6Oko/+jo6P/o6Oi/6Kiov+ioqL/oqKi/6Ghof+hoaH/oaCg/6CgoP+goKD/p6en/7i4 + uP/Pz8//5eXl//b29uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA/f39HPn5+ePs7Oz/29vb/8rK + yv+9vb3/uLi4/7e4uP+3t7f/t7e3/7a2tv+1trb/tba2/7W1tf+1tbX/tbS0/7W0tP+0tLT/tLS0/7S0 + tP+0tLP/s7Oz/7Oys/+ysrP/srKy/7Kxsv+xsbL/sbGx/7Gxsf+xsbH/sbCx/7Cwsf+wsLD/sK+w/6+v + r/+vr6//r6+v/66urv+urq7/rq6u/66urv+urq7/ra2t/62trf+tra3/rKys/6ysrP+sq6v/q6ur/6ur + qv+rq6r/qquq/6qqqv+qqqr/qqqq/6mqqv+pqan/qamp/6moqf+oqKj/qKeo/6enp/+np6f/p6en/6en + p/+npqf/pqen/6ampv+mpqX/paal/6Wlpf+lpaX/pKSk/6SkpP+kpKT/pKSk/6SkpP+jo6P/o6Oj/6Kj + o/+ioqL/oqKi/6Kiof+hoaH/oaGh/6Ghof+np6j/ubm5/8/Pz//l5eX/9vb24/39/Rz7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPz8/AD9/f0c+fn54+zs7f/b29v/y8vL/76+vv+4uLj/uLi4/7i4uP+4t7f/t7e3/7e2 + t/+2trb/tra2/7a2tv+1tbX/tbS1/7W0tf+0tLT/tLS0/7S0tP+0tLT/tLO0/7Ozs/+zs7P/s7Kz/7Ky + sv+ysrL/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+wsbH/sLCw/7CwsP+wr7D/r6+v/6+vr/+vrq7/rq6u/66u + rv+urq7/rq6u/62trv+tra3/ra2s/6ysrP+srKz/rKyr/6urq/+rq6v/qqqr/6qqqv+qqqr/qqqq/6qq + qv+qqqr/qqmp/6mpqf+pqKn/qKio/6inqP+op6j/p6en/6enp/+np6f/p6en/6empv+mpqb/pqal/6Wl + pf+lpaX/pKWl/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKOk/6Ojo/+jo6P/oqKj/6Giov+hoqL/oaGh/6io + qP+5ubn/z9DP/+bm5v/29vbj/f39HPv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Rz5+fnj7e3t/9zc + 3P/Ly8v/vr6+/7i4uf+4uLj/uLi4/7i4uP+3uLj/uLe4/7e3t/+3t7f/tre2/7a2tv+2trX/tbW1/7W1 + tf+0tbX/tLS0/7S0tP+0tLT/tLS0/7S0tP+ztLP/s7Oz/7Ozsv+zsrL/srKy/7Kysf+xsbH/sbGx/7Gx + sf+xsbH/sLGw/7CwsP+vsLD/r7Cv/6+vr/+vr6//rq6v/66urv+urq7/rq6u/62urv+trq3/ra2t/62t + rf+srKz/rKys/6yrq/+sq6v/q6ur/6qrqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6mpqf+pqan/qKip/6io + qP+oqKj/p6in/6enp/+np6f/p6en/6enp/+npqb/pqam/6ampv+lpqX/paWl/6Slpf+lpKX/pKSk/6Sk + pP+kpKT/pKSk/6SjpP+jo6P/o6Oj/6Kiov+ioqL/qaip/7m5uf/Qz8//5ubm//b29uP9/f0c+/v7AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD8/PwA/f39HPn5+ePt7e3/3Nzc/8zMzP+/v7//ubm5/7m5uf+4ubj/uLi4/7i4 + uP+4uLj/uLi4/7i3uP+3t7f/t7e3/7a3tv+2trb/tra2/7W2tf+1tbX/tbW0/7S0tP+0tLT/tLS0/7S0 + tP+ztLT/tLOz/7Ozs/+zs7P/srKy/7Kysv+ysbL/sbGx/7Gxsf+xsbH/sbGx/7CxsP+wsLD/r7Cw/7Cw + sP+vr6//r66v/6+urv+vrq7/rq6u/66urv+urq7/ra2t/62trf+tra3/rKys/6ysrP+srKz/q6ur/6ur + q/+rqqv/qqqq/6qqqv+qqqr/qqqq/6qqqf+pqan/qamp/6ipqP+oqKj/qKin/6eop/+np6f/p6en/6en + p/+np6f/pqen/6ampv+mpqb/pqWm/6Wlpf+lpaX/pKWk/6SkpP+kpKT/pKSk/6SkpP+jo6P/o6Oj/6Oj + o/+pqqn/urq6/9DQ0P/m5ub/9vb24/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f0c+fn54+3t + 7f/c3Nz/zMzM/7+/v/+6urr/urm6/7m5uf+5ubn/ubi5/7i4uP+4uLj/uLi4/7i4uP+3uLf/t7e3/7e3 + t/+2trf/tra2/7a2tv+1tbb/tbW1/7S1tP+0tbT/tLS0/7S0tP+0tLT/tLS0/7O0s/+zs7P/s7Oz/7Ky + sv+ysrL/srGx/7Gxsf+xsbH/sbGx/7Gxsf+xsLD/sLCw/7CwsP+vr7D/r6+v/6+vr/+urq//rq6u/66u + rv+urq7/rq6u/66trv+tra3/ra2t/62srf+srKz/rKys/6yrq/+rq6v/q6qr/6qqqv+qqqr/qqqq/6qq + qv+qqqr/qamp/6mpqf+pqaj/qKio/6ioqP+oqKj/p6eo/6enp/+np6f/p6en/6enpv+mp6b/pqam/6al + pf+lpaX/paWl/6SlpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6qqqv+6u7r/0NDQ/+bm5v/29vbj/f39HPv7 + +wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Rz5+fnj7e3t/93d3f/MzMz/wMDA/7q7u/+6urr/urq6/7q6 + uv+5ubn/ubm5/7i4uf+4uLj/uLi4/7i4uP+4uLj/t7e4/7e3t/+3t7f/t7a3/7a2t/+2tbb/tbW2/7W1 + tf+1tbX/tLS0/7S0tP+0tLT/tLS0/7S0tP+zs7T/s7Oz/7Ozsv+ysrL/srKy/7Kxsv+xsbH/sbGx/7Gx + sf+xsbH/sbGx/7CwsP+wsLD/sK+w/6+vr/+vr6//rq+u/66urv+urq7/rq6u/66urv+urq3/ra2t/62t + rf+traz/rKys/6ysrP+rq6v/q6ur/6urq/+qqqr/qqqq/6qqqv+qqqr/qqqq/6qpqf+pqan/qamp/6io + qP+oqKj/qKeo/6enp/+np6f/p6en/6enp/+np6b/pqam/6ampv+mpqb/paWl/6Wlpf+lpKX/pKSk/6Sk + pP+kpKT/q6ur/7u8u//R0dH/5ubm//b29uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA/f39HPn5 + +ePt7e3/3d3d/83Nzf/AwcD/u7u7/7u7u/+7u7v/uru6/7q6uv+5urn/urm5/7m5uf+5ubn/uLi4/7i4 + uP+4uLj/uLi4/7i4uP+4t7f/t7e3/7e2t/+2trb/tra2/7W2tf+1tbX/tbW1/7S1tP+0tLT/tLS0/7S0 + tP+0s7T/tLSz/7Ozs/+zs7P/srKy/7Kysv+xsrH/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+wsLH/sLCw/6+w + sP+vr6//r6+v/6+vrv+urq7/rq6u/66urv+urq7/rq6u/62trf+tra3/rK2s/6ysrP+srKz/q6yr/6ur + q/+qq6v/q6qq/6qqqv+qqqr/qqqq/6qqqv+qqqn/qamp/6mpqf+oqKj/qKio/6eoqP+np6f/p6en/6en + p/+np6f/p6en/6anpv+mpqb/pqWm/6Wlpf+lpaX/paWl/6SlpP+rq6v/vLy8/9HR0f/m5ub/9vb24/39 + /Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD+/f4c+fn54+3t7f/d3d3/zc3O/8HBwf+7u7z/u7u7/7u7 + u/+7u7v/u7u7/7u6uv+6urr/urq6/7m5uf+5ubn/ubm5/7m4uP+4uLj/uLi4/7i4uP+4t7j/t7e3/7e3 + t/+2t7b/tra2/7a2tv+2tbb/tbW1/7W0tf+1tLT/tLS0/7S0tP+0tLT/tLS0/7Ozs/+zs7P/s7Oy/7Ky + sv+ysrL/sbKy/7Gysf+xsbH/sbGx/7Gxsf+xsbH/sbCw/7CwsP+wsLD/r7Cv/6+vr/+ur67/rq6u/66u + rv+urq7/rq6u/66trv+tra3/ra2t/62srf+srKz/rKys/6usq/+rq6v/q6ur/6urqv+qqqr/qqqq/6qq + qv+qqqr/qqmp/6mpqf+pqan/qKio/6ioqP+oqKj/p6en/6enp/+np6f/p6en/6enp/+mp6b/pqam/6al + pv+lpaX/paWl/6yrq/+8vLz/0dHR/+fn5//29vbj/f39HPv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP/+ + /xz5+fnj7e3t/97e3f/Ozs7/wcLB/7y8vP+8vLz/vLy7/7u7u/+7u7v/u7u7/7u7u/+7urr/urq6/7q6 + uv+5ubr/ubm5/7m5uf+4ubj/uLi4/7i4uP+4uLj/uLi4/7e4t/+3t7f/t7e3/7a2tv+2trb/tba1/7W1 + tf+1tbX/tbW0/7S0tP+0tLT/tLS0/7S0tP+0s7T/s7Oz/7Ozs/+zsrL/srKy/7Gysv+xsbL/sbGx/7Gx + sf+xsbH/sbGx/7Cwsf+wsLD/sLCw/6+vr/+vr6//rq+v/66vrv+urq7/rq6u/66urv+urq3/ra2t/62t + rf+tra3/rKys/6ysrP+sq6z/q6ur/6urqv+rqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+pqan/qamp/6io + qP+oqKj/qKin/6enp/+np6f/p6en/6enp/+np6f/pqan/6ampv+mpqb/rKys/728vf/S0tL/5+fn//b2 + 9uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPn5+ePu7u7/3t7e/8/Oz//DwsL/vb29/728 + vf+8vLz/vLy8/7u7u/+7u7v/u7u7/7u7u/+7urv/u7q7/7q6uv+5urr/ubq5/7m5uf+5uLn/uLi4/7i4 + uP+4uLj/uLi4/7i4uP+4uLf/t7e3/7e3t/+2t7b/tra2/7a2tf+1trX/tbW1/7W0tf+0tLT/tLS0/7S0 + tP+0tLT/s7Oz/7Ozs/+zs7P/srKz/7Kysv+ysrH/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+xsLH/sLCw/7Cw + sP+wr7D/r6+v/6+vr/+urq7/rq6u/66urv+urq7/rq6u/62urf+tra3/ra2t/62srf+srKz/rKys/6ur + q/+rq6v/qqur/6qqqv+qqqr/qqqq/6qqqv+qqqn/qamp/6mpqf+oqan/qKio/6ioqP+np6f/p6en/6en + p/+np6f/p6en/6enp/+tra3/vb29/9LS0v/n5+f/9vb24/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD+/v4c+fn54+7u7v/e3t7/z8/P/8PDw/++vr7/vb29/729vf+8vL3/vLy8/7y8vP+8u7v/u7u7/7u7 + u/+7u7v/u7u7/7u7uv+6urr/urq6/7m6uf+5ubn/ubi5/7i4uP+4uLj/uLi4/7i4uP+4uLj/t7e4/7e3 + t/+3t7f/tra3/7a2tv+2trb/tbW2/7W1tf+1tbT/tLS0/7S0tP+0tLT/tLS0/7O0tP+zs7P/s7Oz/7Kz + sv+ys7L/srKy/7Kxsv+xsbH/sbGx/7Gxsf+xsbH/sLGw/7CwsP+wsLD/r6+v/6+vr/+ur6//r66u/66u + rv+urq7/rq6u/66urv+tra3/ra2t/62trf+srKz/rKys/6usq/+rq6v/q6ur/6uqq/+qqqr/qqqq/6qq + qv+qqqr/qqqq/6mpqf+pqan/qamo/6ioqP+oqKj/p6en/6enp/+np6f/p6en/66urv++vb7/09LS/+fn + 5//29vbj/f39HPv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz5+fnj7u7u/9/f3//Pz8//w8PD/76+ + vv++vr7/vb2+/729vf+9vb3/vL28/7y8vP+8vLz/u7y7/7u7u/+7u7v/u7u7/7u7u/+7u7v/uru6/7q6 + uv+6urr/ubm5/7m5uf+4uLj/uLi4/7i4uP+4uLj/uLi4/7i3t/+3t7f/t7e3/7a2t/+2trb/tra2/7W1 + tv+1tbX/tbS1/7S0tP+0tLT/tLS0/7S0tP+0tLT/s7O0/7Ozs/+zsrL/srKy/7Kysv+ysbH/sbGx/7Gx + sf+xsbH/sbGx/7CxsP+wsLD/sLCw/6+vsP+vr6//r6+v/6+urv+urq7/rq6u/66urv+trq7/rq6t/62t + rf+tra3/rK2s/6ysrP+srKz/q6ur/6urq/+qqqv/qqqq/6qqqv+qqqr/qqqq/6qpqv+pqan/qamp/6mp + qP+oqKj/p6io/6eoqP+nqKj/rq6u/76+vv/T09P/5+fn//b29uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD9/f0A/v7+HPn5+ePu7u7/39/f/9DP0P/Dw8T/vr6+/76+vv++vr7/vr6+/76+vv+9vb3/vb29/729 + vP+8vLz/vLy8/7u7vP+7u7v/u7u7/7u7u/+7u7v/uru7/7q6uv+6urr/urm5/7m5uf+5ubn/ubi4/7i4 + uP+4uLj/uLi4/7i4uP+4uLj/t7e3/7e3t/+2t7b/tra2/7a2tv+1tbX/tbW1/7W1tf+0tLT/tLS0/7S0 + tP+0tLT/tLS0/7Ozs/+zs7P/s7Oz/7Kysv+ysrL/srKy/7Gxsf+xsbH/sbGx/7Gxsf+xsLH/sLCw/7Cw + sP+wsK//r6+v/6+vr/+urq7/rq6u/66urv+urq7/rq6u/62urf+tra3/ra2t/6ysrP+srKz/q6ys/6us + q/+rq6v/q6qr/6qqqv+qqqr/qqqq/6qqqv+qqqr/qaqp/6mpqf+oqan/qKio/6ioqP+urq7/vr6+/9PT + 0//n6Oj/9vf34/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+fn54+7u7v/f39//0NDQ/8TE + xP+/v7//v7++/76+vv++vr7/vr6+/76+vv++vr7/vb69/729vf+9vbz/vLy8/7y8vP+8vLz/u7u7/7u7 + u/+7u7v/u7u7/7u7u/+6urr/urq6/7m6uv+6ubn/ubm5/7m4uP+4uLn/uLi4/7i4uP+4uLj/uLe4/7e3 + t/+3t7f/t7e2/7a2tv+2trb/tbW1/7W1tf+1tbX/tLW0/7S0tP+0tLT/tLS0/7S0tP+0s7P/s7Oz/7Oz + s/+ysrL/srKy/7Gysv+xsbH/sbGx/7Gxsf+xsbH/sbGx/7CwsP+wsLD/sK+w/6+vr/+vr6//r66u/66u + rv+urq7/rq6u/66urv+ura7/rq2t/62trf+sraz/rKys/6ysrP+rq6v/q6ur/6urqv+qqqr/qqqq/6qq + qv+qqqr/qqqq/6qpqf+pqan/qamp/66ur/++v7//09PT/+jo6P/39/fj/f39HPv7+wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/f39AP7+/hz5+fnj7u7u/9/g3//Q0dH/xcXF/8DAwP+/v7//v7+//7+/vv++vr7/vr6+/76+ + vv++vr7/vr6+/76+vf+9vb3/vb29/728vP+8vLz/vLy8/7u7vP+7u7v/u7u7/7u7u/+7urv/u7q6/7q6 + uv+6urn/ubm5/7m5uf+4uLn/ubi5/7i4uP+4uLj/uLi4/7i3t/+3t7f/t7e3/7a3t/+2trb/tra2/7W2 + tv+1tbX/tbW1/7W0tf+0tLX/tLS0/7S0tP+0tLT/tLO0/7Ozs/+zs7P/srOy/7Kysv+ysrL/sbKx/7Gx + sf+xsbH/sbGx/7Gxsf+wsLD/sLCw/7CwsP+vr6//r6+v/66urv+urq7/rq6u/66urv+urq7/rq6t/62t + rf+tra3/rayt/6ysrP+srKz/rKus/6urq/+rq6v/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqar/r6+v/7+/ + wP/U09T/6Ojo//f39+P9/f4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPn5+ePu7u7/4ODg/9HR + 0f/FxcX/wcDB/8DAwP/AwMD/wMDA/8HBwf/CwsL/w8PD/8PDw//Dw8P/wsPD/8HBwf/Av8D/vr2+/729 + vf+8vL3/vLy8/7y8vP+7u7v/u7u7/7u7u/+7u7v/u7u7/7u6uv+6urr/urq5/7m6uf+5ubn/ubi5/7i4 + uP+5ubn/urq7/7y8vP+8vLz/vLy8/7y8vP+8vLz/u7y7/7u7u/+7u7v/u7u7/7q7u/+6urv/urq6/7q6 + uv+5ubr/uLi4/7e3t/+1tbX/s7Oz/7Kysv+ysrL/srKy/7Kysv+0tLT/tbW2/7a2tv+2trb/tra2/7W1 + tf+0tLT/srKy/6+wsP+vr67/rq6u/66urv+urq7/r6+v/7Gxsf+ysrL/s7Oz/7Kzsv+ysrL/srGy/7Cw + sP+urq7/q6ys/6qqqv+qqqr/qqqq/6qqqv+wsK//wMDA/9TU1P/o6Oj/9/f34/7+/hz8/PwAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD+/v4c+vr64+/v7//g4OD/0dLS/8XGxv/BwcH/wcDB/8LCwv/FxcX/ysrK/83N + zf/Pz8//z8/Q/8/Pz//Ozs7/zMvM/8jIyP/Dw8P/v7+//729vf+9vb3/vLy8/7y8vP+8vLz/u7u7/7u7 + u/+7u7v/u7u7/7u7uv+7u7r/urq6/7q6uv+6urn/vLy8/8DAwP/ExMT/x8fH/8nJyf/Kysr/ysrK/8nJ + yf/Jycn/ycnJ/8nJyf/Jycn/ycjJ/8jIyP/IyMj/yMjI/8fHx//FxcX/wsLC/729vf+4uLf/tLS0/7Oz + s/+0tLT/ubi4/76+vv/CwsL/xMTE/8XFxf/FxcX/xMTD/8HBwf+8vLz/tra2/7Gxsf+vr6//r6+v/7Ky + sv+4uLj/vb29/8DAwP/CwsL/w8LD/8LCwv/BwcH/vb29/7m5uf+ys7L/ra2t/6urq/+qqqv/qqqq/7Gw + sP/AwMD/1NTU/+jo6P/39/fj/v7+HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz6+vrj7+/v/+Dg + 4P/S0tL/xsbG/8LCwv/DwsL/x8fH/87Ozv/U1NX/2tra/93d3f/f39//397e/93c3f/Z2dn/1NTT/8zM + zP/ExMT/v7+//769vv+9vb3/vb29/728vf+8vLz/vLu8/7y7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/76+ + vv/FxcX/zMzM/9LS0v/W1tb/2dnZ/9vb2v/b29v/29vb/9vb2//a29r/2tra/9ra2v/a2tr/2tra/9ra + 2v/a2tr/2NjY/9XW1v/R0dH/ysrK/8LCwv+5ubn/tbW2/7q6uv/Dw8P/y8vL/9LS0v/W1tb/19fX/9fX + 1//V1dX/0dHR/8rKyv/CwcH/uLi4/7Gxsf+zs7P/vLy7/8XFxf/MzMz/0tLS/9XV1f/W1tb/1dXV/9PT + 0//Pz8//yMfH/76+vv+0tLT/ra2t/6urq/+rq6v/sbGx/8HAwf/U1NT/6Ojo//f39+P+/v4c/Pz8AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD9/f0A/v7+HPr6+uPv7+//4OHh/9LS0v/Gx8b/wsLC/8bFxv/Nzc3/19fX/+Dh + 4P/p6en/7u7u//Dv8P/v7+//7u7u/+jo6P/f39//1tbW/8vLy//CwsL/vr6+/76+vv++vb7/vb29/729 + vf+8vbz/vLy8/7y8vP+7vLv/u7u7/7u7u/++vr//xsbG/9DQ0P/Z2dn/4eHh/+fn5//r6+v/7u7u/+7u + 7v/u7u7/7u7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u3t/+3t7f/s7Oz/5+fn/+Hh4f/Z2dn/zs7O/8PD + w/++vr7/w8PD/87Ozv/a2tr/5OTk/+rq6v/s7Oz/7Ozs/+rp6v/i4uL/2djZ/83Nzf/AwMD/t7e3/7u7 + u//Hx8b/0tLT/93d3f/m5ub/6urq/+vr6//r6+v/6Ojo/+Hh4f/X19f/ysrK/7y8vP+xsbL/rKys/6ys + rP+xsrL/wcHB/9TU1P/o6On/9/f34/7+/hz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+vr64+/v + 7//h4eH/0tPS/8fHx//DxMP/ycnJ/9PT0//f39//6+vr/+fn5//d3d3/3t7e/97e3v/g4OD/8fHx/+rq + 6v/e3t7/0dHR/8XGxf+/v7//vr6+/76+vv++vr7/vr6+/769vf+9vb3/vb29/7y8vP+8vLz/vb29/8TE + xf/Qz9D/2tvb/+bm5v/x8fH/+vr6/+zs7P/d3d3/3d3d/93d3f/e3d7/3d7e/97e3v/e3t7/3t7e/93e + 3f/d3d3/3d3d/+Hh4f/19fX/8vLy/+fn5//a29v/zs7P/8nJyf/MzMz/19jY/+fn5//k5OT/29vb/93d + 3f/d3d3/39/f/+7u7v/m5ub/1tbW/8fHx/+/v7//xMTE/9LS0f/g4OD/7u7u/+np6f/c3Nz/3d3d/93d + 3P/e3t7/7e3t/+Pj4//R0dH/wcLC/7W1tf+ura7/rK2s/7Kysv/BwcH/1dXV/+np6f/39/fj/v7+HPz8 + /AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz6+vrj8PDv/+Hi4f/T09P/yMjI/8XFxP/Ly8v/19fX/+Tk + 5P/29vb/i4uL/xcXF/8cHBz/Ghoa/zMzM//g4OD/8/Pz/+Pj4//V1dX/yMjI/8DAwP++v77/vr6+/76+ + vv++vr7/vr6+/769vv+9vb3/vb29/729vf/BwMH/y8rL/9jY2P/l5eX/8/Pz/9zc3P+Ghob/S0tL/xoa + Gv8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8bGxv/JSUl/3d3d//W1tb/8fHx/+bm + 5v/Z2dn/09PT/9XV1f/f39//8/Pz/4qKiv8XFxf/HBwc/xoaGv8zMzP/39/f//Dw8P/d3d3/zc3N/8fH + x//MzM3/29vb/+zs7P/s7Oz/WVlZ/xkZGf8cHBz/GRkZ/z09Pf/i4uH/6urq/9XV1f/DxMT/tra2/6+v + rv+tra3/s7Oz/8LCwf/V1dX/6enp//f39+P+/v4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPr6 + +uPw8PD/4uLi/9TT1P/Iycn/xcXF/83Nzf/Z2dn/5+fn//n5+f9+fn7/AAAA/wAAAP8AAAD/Ghoa/93d + 3f/29vb/5ubm/9fX1//Kysn/wcHB/7+/v/+/v7//v7+//76+vv++vr7/vr6+/76+vv++vr7/vr6+/8TE + xP/Qz9D/3t7e/+7u7v/r6+v/UVFR/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AQEB/y0tLf/V1dX/8fHx/+Hh4f/c3Nv/3Nzc/+Tk5P/39/f/fn5+/wAA + AP8AAAD/AAAA/xoaGv/d3d3/9PT0/+Hh4f/T09P/z8/P/9TU1P/j4+P/9vb2/6ysrP8KCgr/AAAA/wAA + AP8AAAD/fHx8//f39//n5+f/1NTU/8PDwv+1tbX/rq6u/66urv+0s7P/wsLC/9XW1f/p6en/9/f34/7+ + /hz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+vr64/Dw8P/i4uL/1NTU/8nKyf/Gxsb/zs7O/9ra + 2v/o6Oj/+vr6/35+fv8AAAD/AAAA/wAAAP8aGhr/3d3d//b39//n5+f/2NjY/8vLy//CwsL/wMDA/8DA + wP+/v8D/v7+//7+/v/++vr7/vr6+/76+vv+/v7//xsbG/9PT0//i4uL/9PT0/9HR0f8XFxf/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/4KC + gv/39/f/6Ojo/+Hh4f/h4eH/5+fn//j4+P9+fn7/AAAA/wAAAP8AAAD/Ghoa/93d3f/09PT/4uPj/9jY + 2P/X19f/3Nzc/+vr6//s7Oz/SEhI/wAAAP8AAAD/AAAA/yEhIf/S0tL/9PT0/+Hh4f/Q0ND/v7+//7Ky + sv+urq7/rq6u/7S0tP/Dw8P/1tbW/+np6f/39/fj/v7+HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+ + /hz6+vrj8PDw/+Li4v/V1dX/ysrK/8fHxv/Ozs7/2tra/+np6f/6+vr/fn5+/wAAAP8AAAD/AAAA/xoa + Gv/e3t3/9/f3/+fn5//Y2Nn/y8vL/8LCwv/BwcH/wMHB/8DAwP/AwMD/v8DA/7+/v/+/v7//vr6+/7/A + wP/IyMj/1tXW/+Xl5f/4+Pj/iIiI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/dnZ2//r6+v/s7Ov/5OTk/+Tj5P/o6Oj/+Pj4/35+ + fv8AAAD/AAAA/wAAAP8aGhr/3d3d//T09P/m5ub/39/f/97e3v/j4+P/8/Pz/9XV1f8YGBj/AAAA/wAA + AP8AAAD/bm5u//b29v/r6+v/2tra/8nJyf+6urr/sbGx/6+vr/+vrq//tLS0/8PDw//W1tb/6enp//f3 + 9+P+/v4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + x//l5eX/4uLi/+Dg4P/f39//39/f/9/f3//f39//39/f/97e3v/u7u7//Pz8//T09P/q6ur/4uLi/+Dg + 4P/j4+P/6+vr//r6+v9+fn7/AAAA/wAAAP8AAAD/AAAA/35+fv/6+vr/6Ojo/9nZ2f/Q0ND/z8/P/9fX + 1//h4OH/6Ojo/+7u7v/w8O//8PDw/+/v7//r6+v/5OTk/9zc3P/b29v/39/f/+jo6P/5+fn/fn5+/wAA + AP8AAAD/AAAA/xoaGv/g4OD/9fX1/0tLS/8AAAD/AAAA/wAAAP99fX3/+Pj4/+vr6//c3Nz/zc7N/8HB + wf+5urr/uLm4/7i4uP+4uLj/uLi4/7i4uP+4t7j/t7e4/7e3t/+8vLz/ycnJ/9ra2v/r6+v/+Pj44/39 + /Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+vr64/Ly8v/m5ub/29vb/9LS0v/Pz8//1dXV/+Df + 4P/s7Oz/+/v7/35+fv8AAAD/AAAA/wAAAP8DAwP/GBgY/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwc + HP8cHBz/Ghoa/0tLS/+Hh4f/3d3d//X19f/q6uv/5+fn/+jo6P/t7e3/+vr7/35+fv8AAAD/AAAA/wAA + AP8AAAD/fn5+//r6+v/o6Oj/2dnZ/83Nzf/Kysr/z8/P/9bW1v/b29v/3t7e/+Dg3//g4OD/3t7e/9zc + 3P/X19f/0tLS/9PU0//a2tr/5+fn//n5+f9+fn7/AAAA/wAAAP8AAAD/Ghoa/+Li4v+urq7/CgoK/wAA + AP8AAAD/IyMj/9nZ2f/19fX/5OXl/9bW1v/Hx8f/vb29/7m6uv+6ubn/ubm5/7m4uf+4uLj/uLi4/7i4 + uP+4t7j/uLi4/7y8vP/Jycn/2tra/+zs7P/4+Pjj/f39HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+ + /hz7+/vj8vLy/+fn5//c29v/0tLS/9DQ0P/W1tb/4ODg/+zs7P/7+/v/fn5+/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9RUVH/7Ozs//Ly + 8v/s7Oz/7Ozs/+/v7//7+/v/fn5+/wAAAP8AAAD/AAAA/wAAAP9+fn7/+vr6/+jp6f/a2tr/zczN/8XG + xv/IyMj/zMzM/8/Pz//R0dH/0tLR/9HR0f/R0dH/z8/P/8zMzP/Kysn/zc3N/9jY2P/n5+f/+fn5/35+ + fv8AAAD/AAAA/wAAAP8bGxv/3t7e/3BwcP8AAAD/AAAA/wAAAP9tbW3/+fn5/+3t7f/e3t7/0NDQ/8PC + w/+7u7v/urq6/7q6uv+6ubr/urm5/7m5uf+4ubn/uLi4/7i4uP+4uLj/vL29/8rKyv/a29v/6+vr//j4 + +OP+/v4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPv7++Py8/P/5+fn/9zc3P/T09P/0NDQ/9bX + 1//g4OD/7Ozs//v7+/9+fn7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/xcXF//S0tL/9/f3//Dw8P/v7+//8fHx//v7+/9+fn7/AAAA/wAA + AP8AAAD/AAAA/35+fv/6+vr/6enp/9ra2v/Nzc3/xcXF/8TExP/FxcX/x8bG/8fHx//Hx8b/xsbG/8bG + xv/GxcX/xMTE/8TEw//Ly8v/2NjY/+fn5//5+fn/fn5+/wAAAP8AAAD/AAAA/x0dHf+8vLz/JCQk/wAA + AP8AAAD/CgoK/6mpqf/4+Pj/5+fn/9jY2P/Kysr/v7+//7u7u/+7u7v/u7u6/7u6u/+6urr/urq6/7m5 + uf+5ubn/ubm4/7i4uf+9vr7/ysrK/9rZ2v/q6ur/+Pj44/7+/hz8/PwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD+/v4c+/v74/Pz8//n5+f/3Nzc/9PT0//R0dH/19fX/+Hg4f/s7Oz/+/v7/35+fv8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/4mJ + if/7+/v/8vLy//Hx8f/y8/P//Pz8/35+fv8AAAD/AAAA/wAAAP8AAAD/fn5+//r6+v/p6en/29ra/87O + zv/Gxsb/xcTE/8TExP/ExMT/xMTD/8PDw//Dw8P/wsLC/8LCwv/CwsL/w8PD/8vLy//Y2Nj/5+fn//n5 + +f9+fn7/AAAA/wAAAP8AAAD/EBAQ/zs7O/8CAgL/AAAA/wAAAP9JSUn/7e3t//Dw8P/h4eH/0tLT/8XF + xf++vb3/vLu8/7u7u/+7u7v/u7u7/7u7u/+6u7r/urq6/7q6uv+5ubn/ubm5/76+vv/Jycn/2NjY/+rq + 6v/4+Pjj/v7+HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz7+/vj8/Pz/+jn6P/c3dz/1NTU/9LR + 0v/X19f/4eHh/+3s7P/8+/v/fn5+/wAAAP8AAAD/AAAA/w0NDf9vb2//gICA/39/f/9+fn7/fn5+/35+ + fv9/f3//goKC/0BAQP8AAAD/AAAA/wAAAP8AAAD/fn5+//z8/P/z8/P/8fHx//Pz8//8/Pz/fn5+/wAA + AP8AAAD/AAAA/wAAAP9+fn7/+vr6/+np6f/b29v/zs7O/8bGxv/FxcX/xcXF/8TExP/ExMT/xMTE/8PD + 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 + AP8aGhr/3d3d//f39//q6ur/5OTl/+Tk5P/o6Oj/9fX1/9fX1/8iIiL/AAAA/wAAAP8AAAD/ICAg/9XV + 1f/y8vL/4eHh/9TU1P/Iycj/wcLC/8HBwf/AwMD/xMXE/9DQ0P/f39//7e7t//n5+eP9/f0c/Pz8AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD9/f0A/v7+HPz8/OP29vb/7u7u/+fm5//g4OD/3t7e/+Hh4v/o6Oj/7+/v//r6 + +v+9vb3/e3t7/319ff99fX3/fX19/319ff99fX3/fX19/319ff99fX3/fX19/319ff99fX3/fX19/319 + ff94eHj/ra2t/+/v7//29vb/7u7u/+np6f/n5+f/6Ojo/+3u7v/19vb/7+/v/62trf94eHj/fX19/319 + ff99fX3/fX19/319ff99fX3/fX19/319ff99fX3/fX19/319ff95eXn/goKC/+Dg4P/5+fn/7u7u/+bm + 5v/i4uL/5OPj/+rq6v/39/f/vLy8/3t7e/99fX3/fX19/4mJif/n5+f/8/T0/+bm5v/f39//3t7e/+Li + 4//t7e3/9vb2/7Gxsf97e3v/fX19/319ff99fX3/xcXF//Py8v/i4uL/1dXV/8nKyv/CwsL/wcHB/8HB + wf/FxcX/0NDQ/9/f3//u7u7/+fn54/39/Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c/Pz84/b2 + 9v/v7+//5+fn/+Dh4f/f39//4eHh/+fm5v/t7e3/9PP0//v7+/////////////////////////////// + //////////////////////////////////////////////7+/v/7+/v/9fX1/+7u7v/o6Oj/4uLi/9/g + 4P/i4uL/5+fn/+7u7v/09PT/+/v7//39/f////////////////////////////////////////////// + //////////////7+/v/8+/v/9vb2/+/v7//n5+f/4ODg/93d3f/f3t//5ubm/+/v7//5+fn///////// + /////////f39//X19f/s7O3/4eHh/9nZ2f/X19f/29vc/+Xl5f/v7+//+fn5//79/f/+/v7//v7+//39 + /f/29vb/6+vr/9/f3//T09P/ycnI/8LCwv/BwcH/wcHB/8bFxf/Q0dD/39/f/+7u7v/5+fnj/f39HPz8 + /AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz8/Pzj9vb2/+/v7//n5+f/4eHh/9/f3//g4OD/5OTk/+np + 6f/u7u7/8vLy//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X1 + 9f/19PX/8/Pz//Dw8P/s7Oz/6Ojn/+Li4v/d3d3/2tra/9zc3P/h4eH/5ubm/+vr6//v7+//8vHy//Pz + 8//09PT/9PT0//T09P/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8vLy/+/v7//r6+v/5ubm/+Dg + 4P/Z2dr/19fX/9rZ2f/g4OH/5+jo/+3t7f/w8PD/8fHx//Dw8P/u7+7/6+vr/+Tk5P/b29v/09PT/9DQ + 0P/U1NT/3Nzc/+Tk5P/q6ur/7u3u/+/v7//v7+//7e3t/+np6f/i4uL/2dnZ/8/Pz//Hxsb/wsLD/8LC + wv/CwsL/xsbG/9HR0f/g4OD/7u7u//n5+eP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPz8 + /OP39vb/7+/v/+jo6P/h4uL/39/f/9/f3//i4uH/5eXl/+jp6P/r6+v/7e3t/+7u7v/u7u7/7u7u/+3t + 7v/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs7P/s7Oz/7Ozs/+vr6//q6ur/6Ojo/+Xl5f/h4eH/3d3d/9nZ + 2v/Z2Nj/2dnZ/9zc3P/g4OD/4+Pj/+bm5v/o6Oj/6unp/+rq6v/q6ur/6urq/+rp6f/p6en/6enp/+np + 6f/p6en/6Onp/+jo6P/n5+f/5eXl/+Li4v/e3t7/2dnZ/9TU1P/S0tL/1dXV/9rb2v/f39//4+Pj/+Tk + 5P/k5OT/5OTj/+Li4v/f39//2tva/9TU1P/Nzc3/ysrK/83Ozf/U1NT/2dra/97e3v/g4OH/4uLi/+Li + 4v/g4OD/3d3d/9jY1//R0dH/ycnK/8TFxf/Dw8P/w8PD/8PDwv/Hx8f/0tLS/+Dg4P/u7u7/+fn54/39 + /Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c/Pz84/f39v/v8O//6Ojo/+Li4v/g4OD/39/f/9/g + 4P/h4eH/4+Pk/+Xl5f/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eXl/+Xl5f/l5OT/5OTk/+Tk + 5P/k5OT/5OTk/+Li4v/h4eH/397f/9zc3P/a2tn/2dnZ/9nZ2f/Z2Nn/2dnZ/9ra2v/c3N3/3t7e/+Dg + 4P/h4eH/4eHh/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/39/f/9/f3//e39//3t7e/97e3v/c3Nz/2tra/9fX + 1//U09T/0tLS/9LS0v/S0tL/1dXV/9jX1//Y2Nj/2NfY/9jY2P/Y2Nf/19fW/9XV1f/S0tL/zc3N/8rK + yv/IyMj/ycnJ/8zMzf/Q0ND/09PT/9XU1f/V1dX/1dXV/9TU1P/S0dH/zs7O/8rKyv/Gxcb/xMXE/8TE + xP/ExMT/w8PD/8fHx//S0tL/4ODg/+7u7v/5+fnj/f39HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+ + /hz8/Pzj9/f3//Dw8P/p6en/4+Pj/+Hg4P/g4OD/3+Dg/9/g4P/g4OD/4eHg/+Hh4f/h4eH/4OHg/+Dg + 4P/g4OD/4ODg/9/g4P/f4N//39/f/97e3v/e3t7/3t7e/97e3v/e3t7/3d3d/9zc3P/b29v/2tra/9ra + 2v/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2tr/2tra/9ra2v/a2tr/2trZ/9nZ2f/Z2dn/2dnY/9jY + 2P/Y2Nj/19fY/9fX1//X19f/19fX/9bW1v/V1dT/09TT/9PT0v/S0tL/0tLS/9LS0v/S0tL/0NDQ/8/P + z//Qz8//z8/P/8/Pz//Oz87/zc7N/8zMzP/Kysr/ycnJ/8nJyf/Jycn/ycjJ/8rKyv/Ly8v/zMvL/8vL + y//Ly8v/ysrL/8rJyf/IyMj/xsbG/8XGxv/FxcX/xcXF/8XFxP/ExMT/yMjI/9PT0v/h4eD/7u/v//n5 + +eP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v3+HPz8/OP39/f/8PDw/+np6f/k5OT/4eLh/+Hh + 4f/h4OD/4ODg/9/g4P/f3+D/39/f/9/f3//f39//39/f/97e3v/e3t7/3t7e/97d3f/d3d3/3N3d/9zc + 3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nvb/9vb2//b2tv/2tra/9ra2v/a2tr/2dnZ/9nZ2f/Z2dn/2dnZ/9jZ + 2f/Y2Nj/2NjY/9jX2P/X19f/19bX/9bX1v/W1tb/1tbW/9XV1v/V1dX/1dXV/9XV1f/V1dX/1dTV/9TU + 1P/U1NT/09TT/9PT0//T09P/0tLS/9DQ0P/Nzc3/zc3N/83Nzf/MzM3/zMzM/8zMzP/Ly8v/y8vL/8vK + yv/Kysr/ysrK/8nJyf/Jycn/ycnJ/8jIyP/IyMj/x8fI/8fHx//Hx8f/x8fH/8fHx//Gx8b/xsbG/8bG + xv/Gxcb/xcXF/8XFxf/Jycn/09PT/+Hh4f/v7+//+fn54/39/Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD9/f0c/Pz84/f39//x8PD/6erp/+Tk5P/i4uL/4eLh/+Hh4f/h4eH/4OHh/+Dg4P/g4OD/4N/f/9/f + 3//f39//39/f/9/f3//f3t//3t7e/97e3v/d3t3/3d3d/93d3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb + 2//b29v/29vb/9rb2v/a2tr/2trZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dj/2djY/9jY2P/Y19j/19fX/9fX + 1//W19b/1tbW/9bW1v/V1tX/1dXV/9XV1f/V1dX/1dXU/9TU1f/U1NT/1NTU/9PT0//R0dH/zs7O/83N + zf/Nzc3/zc3N/83Nzf/Nzc3/zMzM/8zMzP/MzMv/y8vL/8vLy//Ly8v/ysrK/8rKyv/Jysr/ycnJ/8jJ + yf/IyMn/yMjI/8jIyP/Hx8j/x8fH/8fHx//Hx8f/x8bH/8bGx//Gxsb/xsXG/8nJyf/U1NT/4eHh/+/v + 7//5+fnj/f39HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/Rz8/Pzj+Pj4//Hx8f/q6ur/5eXl/+Pj + 4//i4uL/4uLi/+Li4f/h4eH/4eHh/+Hg4f/g4OD/4ODg/9/g3//f39//39/f/9/f3//f39//3t/e/97e + 3v/e3t7/3t3d/93d3f/d3d3/3N3c/9zc3P/c3Nz/3Nzc/9zc3P/c29z/29vb/9vb2//b29r/2tra/9rZ + 2v/a2dr/2dnZ/9nZ2f/Z2dn/2dnZ/9jZ2P/Y2Nj/19jY/9fX1//X19f/1tbW/9bW1v/W1tb/1dXW/9XV + 1f/V1dX/1dXV/9XV1f/V1NT/0tLS/8/Pz//Ozs7/zs7O/87Ozv/Nzc7/zc3N/83Nzf/Nzc3/zc3N/8zM + zP/MzMz/zMzM/8vLy//Ly8v/y8vK/8rKyv/Kysr/ysnK/8nJyf/Jycn/yMnI/8jIyP/IyMj/yMfH/8fH + x//Hx8f/x8fH/8fHx//Gxsb/ysrK/9XV1f/i4uL/7+/v//n5+eP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD9/f0A/f39HPz8/OP4+Pj/8fHy/+vq6v/l5eX/4+Pj/+Pj4//j4+L/4uLi/+Li4v/i4uL/4eHi/+Hh + 4f/h4eD/4ODg/+Dg4P/g39//39/f/9/f3//f39//39/f/9/f3v/e3t7/3t7e/97d3f/d3d3/3d3d/9zc + 3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nvc/9vb2//b29v/2tvb/9ra2v/a2dr/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ + 2f/Y2Nj/2NjY/9jY2P/X19f/19fX/9fW1v/W1tb/1tbW/9XV1f/V1dX/1dXV/9PT0//Q0ND/0NDP/8/P + z//Pz8//z8/O/87Ozv/Ozs3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/NzMz/zMzM/8zMzP/My8v/y8vL/8vL + y//Kysv/ysrK/8rJyv/Jycn/ycnJ/8nIyf/IyMj/yMjI/8jHx//Hx8f/x8fH/8fHx//Ly8v/1dXV/+Li + 4v/v7+//+fn54/39/Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f0c/Pz84/j4+P/x8vL/6+vr/+bm + 5f/k5OP/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//i4uL/4uLi/+Lh4f/h4eH/4eHh/+Dg4P/g4OD/3+Dg/9/f + 4P/f39//39/f/9/f3//f39//3t7e/97e3v/d3t3/3d3d/93d3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zb + 3P/b29v/29vb/9ra2//a2tr/2tna/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2djY/9jY2P/Y2Nj/19fX/9fX + 1//X19f/1tbW/9bW1v/U09P/0dHR/9HR0f/R0ND/0NDQ/9DQ0P/Qz8//z8/P/8/Pzv/Ozs7/zs7O/83N + zf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/8zMzP/MzMz/y8zL/8vLy//Ly8v/ysrK/8rKyv/Kycr/ycnJ/8nJ + yf/Iycn/yMjI/8jIyP/Ix8j/x8fI/8vLy//W1db/4+Li//Dw7//5+fnj/f39HPz8/AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/f39AP39/Rz8/Pzj+Pj4//Ly8v/r6+v/5ubm/+Tk5P/k5OT/4+Pk/+Pj4//j4+P/4+Pj/+Pj + 4//j4+L/4uLi/+Li4v/h4uH/4eHh/+Hh4f/h4OD/4ODg/+Dg4P/f39//39/f/9/f3//f39//397f/97e + 3v/e3t7/3t7e/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c29z/29vb/9vb2//b2tv/2tra/9ra + 2v/a2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9jZ2f/Y2Nj/2NjY/9jY1//X19f/1dTV/9LS0v/R0tH/0tLS/9LR + 0f/R0dD/0NHQ/9DQ0P/Q0M//z8/P/8/Pz//Oz8//zs/O/87Ozv/Nzc7/zc3N/83Nzf/Nzc3/zc3N/83N + zP/MzMz/zMzM/8vMzP/Ly8v/y8vL/8vKy//Kysr/ysrK/8nJyf/Jycn/ycnJ/8jIyP/IyMj/zc3N/9jY + 2P/l5eX/8fHx//r6+uP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/f39HPz8/OP4+Pj/8vLy/+zr + 7P/n5+f/5eXl/+Tl5f/k5OT/5OTk/+Tk4//j4+P/4+Pj/+Pj4//j4+P/4uPj/+Li4v/h4uL/4eLh/+Hh + 4f/h4eH/4eDg/+Dg4P/f4OD/39/f/9/f3//f39//39/f/9/f3//f3t//3t7e/97e3v/d3d3/3d3c/9zd + 3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb3P/b29v/29vb/9ra2v/a2tr/2dra/9nZ2f/Z2dn/2dnZ/9jZ + 2f/Z2Nn/2NjY/9XV1f/T09P/09PT/9PT0//S0tL/0tLS/9HS0f/R0dH/0dHR/9DQ0P/Q0ND/z9DQ/8/Q + z//Pz8//zs/P/87Ozv/Ozc7/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zMzM/8zMzP/My8z/y8vL/8vL + y//Kysr/ysrK/8nJyv/Jycn/ycnJ/8rLyv/S0tL/3d3d/+jp6f/z8/T/+/v74/7+/hz9/f0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD9/f0c/Pz84/j4+P/y8vL/7Ozs/+fn5//m5ub/5ebm/+Xl5f/l5eX/5OTk/+Tk + 5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Lj4//i4uL/4uLi/+Li4f/h4eH/4OHh/+Dh4P/g4OD/4ODg/9/f + 3//f39//39/f/9/f3//f3t//397e/97e3v/e3t7/3d3d/93d3f/d3N3/3dzc/9zc3P/c3Nz/3Nzc/9zc + 3P/b29z/29vb/9rb2//a2tr/2tra/9ra2v/Z2dn/2dnZ/9nZ2f/Y2Nj/1tbW/9bW1v/V1tX/1dXV/9XV + 1f/V1dX/1dTU/9TU1P/U1NT/1NTT/9PT0//T09P/09PS/9LS0v/S0tL/0tLS/9HR0f/R0dH/0dHQ/9HQ + 0P/Q0ND/0NDQ/9DQ0P/Q0ND/z8/P/8/Pz//Pz8//zs7P/87Ozv/Ozc3/zc3N/83Nzf/Ozs7/09PT/9vb + 2//l5eX/7+7u//f39//7+/vg+fn5G/n5+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/Rz8/Pzj+Pj4//Ly + 8v/t7e3/6Ojo/+bm5v/m5ub/5ebm/+Xl5v/l5eX/5eXk/+Tk5P/k5OT/4+Tj/+Pj4//j4+P/4+Pj/+Pj + 4//j4uP/4uLi/+Li4f/h4uH/4eHi/+Hh4f/h4OD/4ODg/+Df4P/g39//39/f/9/f3//f39//39/f/97f + 3v/e3t7/3t7e/93d3v/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/29vb/9vb2//b29v/2trb/9ra + 2v/a2dn/2tra/+Dg4P/h4uH/4eHh/+Hh4f/h4eD/4OHg/+Dg4P/g4OD/4ODg/+Dg3//g39//39/f/9/f + 3//f39//39/f/97e3v/e3t7/3t7e/97e3v/d3d3/3d3d/93d3f/d3d3/3d3c/9zc3P/c3Nz/3Nzc/9vc + 3P/b29v/29vb/9vb2//b29v/3Nvb/9/f3//k5OX/6urq//Hx8f/39/f/+Pj49+Xl5YXAwMAH0dHRAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD9/f0A/f39HPz8/OP4+Pn/8/Pz/+3t7f/p6Oj/5ubm/+bm5v/m5ub/5ubm/+bm + 5v/m5eX/5eXl/+Xk5f/k5OT/5OTk/+Pk4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Li4v/i4uL/4uLh/+Hh + 4f/h4eH/4ODg/+Dg4P/g4OD/4N/f/9/f3//f39//39/f/9/f3//f39//3t7e/97e3v/e3d3/3d3d/93d + 3f/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vc2//b3Nv/2tva/9ra2v/b29v/4eHh/+Tj4//j4+P/4+Lj/+Li + 4v/i4uL/4uLi/+Li4v/i4uH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4OH/4ODg/+Dg4P/g4OD/4ODg/+Dg + 4P/f4N//39/f/9/e3//e3t7/3t7e/97e3v/e3t7/3d7e/93d3f/d3d3/3d3d/97e3v/h4eH/5ubm/+zs + 7P/y8vL/+Pf4//j4+Pfk5OSHs7OzDcfHxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f4c/Pz84/n4 + +f/z8/P/7u7u/+np6f/n5+f/5+fn/+bn5v/m5ub/5ubm/+bm5v/m5ub/5uXl/+Xl5f/l5eX/5OTk/+Tk + 5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4uL/4uLi/+Li4f/h4eH/4eHh/+Hg4f/g4OD/4ODg/9/g + 3//f39//39/f/9/f3//f39//3t7f/97e3v/e3t7/3d3e/93d3f/d3dz/3Nzc/9zc3P/c3Nz/3Nzc/9zc + 3P/c29v/29vb/9zb3P/i4uL/5OTk/+Tk4//j4+P/4+Pj/+Pj4v/i4uL/4uLi/+Li4v/i4uL/4eHi/+Hh + 4f/h4eH/4eHh/+Hh4f/h4eH/4eDh/+Dg4P/g4OD/4ODg/9/g4P/f39//39/f/9/f3//e3t//3t7e/97e + 3v/e3t7/3t7e/93d3f/e3t//4uLi/+fn5//s7Oz/8vLy//j4+P/4+Pj25OTkh7Ozsw3Hx8cAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+fn5//T09P/u7u7/6urq/+jo6P/o5+j/5+fn/+fn + 5//m5ub/5ubm/+bm5v/m5ub/5ubm/+Xm5f/l5eX/5eXk/+Tk5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj + 4//j4+P/4uLj/+Li4v/i4uL/4eHi/+Hh4f/h4OH/4ODg/+Dg4P/f4N//39/f/9/f3//f39//39/f/9/e + 3//e3t7/3t7e/97d3v/d3d3/3d3d/9zd3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/+Li4v/k5OT/5OTk/+Tk + 5P/k4+T/5OPj/+Pj4//j4+L/4uLj/+Li4v/i4uL/4uLi/+Li4v/h4eL/4eHh/+Hh4f/h4eH/4eHh/+Dh + 4f/g4OD/4ODg/+Dg4P/g4OD/3+Dg/9/g3//f39//3t/f/97e3v/e3t7/39/f/+Pi4v/n5+f/7O3t//Ly + 8v/4+Pj/+Pj49ebm5oGzs7MMycnJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7/HP39 + /eP5+fn/9PT0/+/u7//q6ur/6Onp/+jp6P/o6Oj/6Ojo/+fn5//n5+f/5+fm/+bm5v/m5ub/5ubm/+bm + 5v/m5eb/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4v/i4uL/4uLi/+Hh + 4f/h4eH/4OHh/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/9/f3//f39//3t7e/97e3v/d3t7/3d3e/93d + 3f/c3N3/3Nzc/9zc3P/c3Nz/4uPi/+Xl5f/k5OT/5OTk/+Tk5P/k5OT/4+Tk/+Pj4//j4+P/4+Lj/+Li + 4v/i4uL/4uLi/+Li4v/i4uL/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eD/4ODg/+Dg4P/g4OD/4ODg/+Dg + 3//f39//39/f/+Dg4P/k4+P/6Ojo/+3t7f/y8vL/+Pj4//j4+PXm5uaBs7OzC8nJyQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/n5+f/09PT/7+/v/+vq6//p6en/6enp/+np + 6f/o6Oj/6Ojo/+jn6P/n5+f/5+fn/+bn5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eTl/+Tk + 5P/k5OT/4+Tj/+Pj4//j4+P/4+Pj/+Pj4//i4+L/4uPi/+Li4v/h4uH/4eHh/+Hh4f/g4eD/4ODg/+Df + 4P/f39//39/f/9/f3//f39//39/f/97e3//e3t7/3d7e/93d3f/d3d3/3N3c/93d3f/j4+P/5eXl/+Xk + 5f/l5eT/5eTk/+Tk5P/k5OT/5OTk/+Pk5P/k4+T/4+Pj/+Lj4//i4uL/4uLi/+Li4v/i4uL/4uLi/+Li + 4f/h4eH/4eHh/+Hh4f/h4eH/4OHh/+Dg4f/g4OD/4ODg/+Dg4P/h4eH/5OTk/+jo6P/t7e3/8/Py//j4 + +P/4+Pj15ubmgbOzswvJyckAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+ + /hz9/f3j+fn5//T09P/v7+//6+vr/+np6f/p6en/6enp/+np6f/p6ej/6Ono/+jo6P/o6Oj/5+fn/+fn + 5//n5+f/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk5f/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj + 4//j4+P/4uLj/+Li4v/i4uL/4uLh/+Hh4f/h4eH/4ODh/+Dg4P/g4OD/39/f/9/f3//f39//39/f/9/f + 3//f3t7/3t7e/93e3v/d3d3/3t3d/+Pj4//l5eX/5eXl/+Xl5f/l5eX/5OTl/+Tk5P/k5OT/5OTk/+Tk + 5P/k5OT/4+Tj/+Pj4//j4uP/4+Li/+Li4v/i4uL/4uLi/+Li4f/h4uH/4eHh/+Hh4f/h4eH/4eHh/+Dh + 4P/g4OD/4eHh/+Tk5P/p6On/7e3t//Pz8//4+Pj/+fn59Obm5oGzs7MLycnJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP5+vr/9fX1/+/w8P/s7Oz/6urq/+rq + 6v/q6en/6enp/+np6f/p6en/6enp/+jo6P/o6Oj/5+jo/+jn6P/n5+f/5+bn/+bm5v/m5ub/5ubm/+bm + 5v/m5ub/5eXl/+Xl5f/k5eX/5OTk/+Pk5P/j4+T/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//i4uL/4uLi/+Hh + 4v/h4eH/4eHh/+Dg4f/g4OD/4ODg/9/g3//f39//39/f/9/f3//f39//3t7e/97e3v/e3t7/5OTk/+bm + 5v/l5eb/5eXl/+Xl5f/l5eX/5eXl/+Xl5P/l5eT/5OTk/+Tk5P/k5OT/5OTk/+Tj5P/j4+P/4+Pj/+Li + 4v/i4uL/4uLi/+Li4v/i4uL/4eLi/+Hh4f/h4eH/4eHh/+Li4v/l5eX/6enp/+7u7v/z8/P/+Pj4//n5 + +fPo6Oh8sbGxCsrKygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD+/v4c/f394/r6+v/19fX/8PDw/+zs7P/r6+v/6urr/+rq6v/q6un/6enp/+np6f/p6en/6enp/+jp + 6f/o6On/6Ojo/+jn6P/n5+f/5+fn/+fm5//m5ub/5ubm/+bm5v/m5ub/5ubm/+bl5f/l5eX/5eXl/+Tk + 5P/k5OT/5OPk/+Tj4//j4+P/4+Pj/+Pj4//j4+P/4uPi/+Li4v/i4eH/4eHh/+Hh4f/g4eH/4ODg/+Dg + 4P/f3+D/39/f/9/f3//f39//397f/9/f3//k5OT/5ubm/+bm5v/m5ub/5ubl/+bl5f/l5eX/5eXl/+Xl + 5f/l5eX/5eXk/+Xk5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj4//i4+P/4uLi/+Li4v/i4uL/4uLi/+Li + 4f/i4uL/5ebm/+rq6v/u7u7/8/Tz//j4+P/5+fnz6Ojoe7GxsQnKysoAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+vr6//X19f/w8PH/7e3t/+zs + 6//r6+v/6+vr/+rr6v/q6ur/6urq/+nq6v/p6en/6enp/+np6f/p6en/6ejo/+jo6P/o6Oj/5+jo/+fn + 5//n5+f/5+bm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tl5f/k5eT/5OTk/+Tj5P/j4+P/4+Pj/+Pj + 4//j4+P/4+Pj/+Lj4v/i4uL/4uLi/+Hh4v/h4eH/4OHg/+Dg4P/g4OD/3+Df/9/f3//f39//39/f/+Xl + 5f/n5+b/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5P/k5OT/5OTk/+Tk + 5P/k5OT/5OTk/+Pj4//j4+P/4+Li/+Li4v/i4uL/4+Pj/+bm5v/q6ur/7+7v//T09P/4+Pj/+fn58+jo + 6HuxsbEJysrKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4A/v7+HP39/eP6+vr/9vb2//Hx8f/u7e3/7Ozs/+zs7P/s7Ov/6+vr/+vr6//q6+v/6urq/+rq + 6v/p6un/6enp/+np6f/p6en/6enp/+jp6P/o6Oj/6Ojo/+jo5//n5+f/5+bn/+fm5//m5uf/5ubm/+bm + 5v/m5ub/5eXl/+Xl5f/l5eX/5OXl/+Tk5P/j4+T/4+Pj/+Pj4//j4+P/4+Pj/+Lj4//i4uL/4uLi/+Li + 4v/h4eH/4eHh/+Hh4f/g4OD/4ODg/+Df4P/g4OD/5eXl/+fo5//n5+f/5+fn/+bm5v/m5ub/5ubm/+bm + 5v/m5eb/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/k5OX/5OTk/+Tk5P/k5OT/5OTk/+Tj5P/j4+P/4+Pj/+Tk + 5P/m5uf/6+vr/+/v7//09PT/+Pj4//n5+fLo6Oh6sbGxCcrKygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/r6+v/29vb/8fLy/+7u + 7v/t7e3/7e3t/+zt7f/s7Oz/7Ozs/+vr7P/r6+v/6+vr/+rq6v/q6ur/6urp/+np6f/p6en/6enp/+np + 6f/p6en/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5uf/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eTl/+Xk + 5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj4//j4+L/4uLi/+Li4v/i4uL/4eHh/+Hh4f/h4OH/4ODg/+Dg + 4P/m5ub/6Ojo/+jo6P/n6Of/5+fn/+fn5v/m5ub/5ubm/+bm5v/m5ub/5ebm/+Xl5f/l5eX/5eXl/+Xl + 5f/l5eX/5eXk/+Tk5P/k5OT/5OTk/+Tk5P/l5OT/5+fn/+vr6//v7/D/9PT0//j4+f/5+fny6urqdq6u + rQjKysoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+AP7+/hz9/f3j+vr6//b29v/y8vL/7u/u/+3t7f/t7e3/7e3t/+3t7f/t7O3/7Ozs/+zs + 7P/r7Ov/6+vr/+vr6//q6ur/6urq/+nq6v/p6en/6enp/+np6f/p6en/6Onp/+jp6P/o6Oj/6Ojo/+fn + 6P/n5+f/5+fm/+bm5v/m5ub/5ubm/+bm5v/m5eb/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/k4+P/4+Pj/+Pj + 4//j4+P/4+Pj/+Li4v/i4uL/4uHi/+Lh4v/h4eH/4eHh/+bm5v/o6Oj/6Ojo/+jo6P/n6Oj/5+fn/+fn + 5//n5+f/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eb/5eXl/+Xl5f/l5eX/5eXl/+Xl5P/k5OT/5eXl/+fo + 6P/r6+v/8PDw//T09f/5+fn/+fn58urq6nasrKwIy8vKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP6+vv/9/b3//Ly + 8v/v7+//7u7t/+3t7f/t7e3/7e3t/+3t7f/t7e3/7O3s/+zs7P/s7Oz/6+zr/+vr6//r6uv/6urr/+rq + 6v/q6un/6erp/+np6f/p6en/6enp/+np6f/o6On/6Ojo/+fo6P/n5+f/5+fn/+fm5v/m5ub/5ubm/+bm + 5v/m5ub/5ubm/+Xl5f/l5eX/5OXk/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//i4+L/4uLi/+Lh + 4v/i4uL/5+fn/+np6f/p6ej/6Ojo/+jo6P/o6Oj/6Ojo/+fo5//n5+f/5+fn/+fm5//m5ub/5ubm/+bm + 5v/m5ub/5uXm/+Xl5f/l5eX/5eXl/+Xl5v/o6Oj/7Ozs//Dw8P/19fX/+fn5//r5+vLq6up2rKysCMrK + ygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gD+/v4c/f394/v6+//39/f/8/Pz//Dw8P/v7+7/7u7u/+7u7v/u7e7/7e3t/+3t + 7f/t7e3/7e3t/+zt7P/s7Oz/7Ozs/+vr7P/r6+v/6+vr/+rq6v/q6ur/6urq/+rp6f/p6en/6enp/+np + 6f/p6en/6Ojo/+jo6P/o6Of/5+fn/+fn5//m5uf/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5uX/5eXl/+Xk + 5f/k5OT/5OTk/+Tj5P/j4+P/4+Pj/+Pj4//j4+P/4+Li/+Pj4//n5+f/6enp/+np6f/p6en/6ejp/+jo + 6P/o6Oj/6Ojo/+jo6P/o6Of/5+fn/+fn5//n5uf/5ubm/+bm5v/m5ub/5ubm/+Xm5v/m5ub/6enp/+zs + 7P/x8PD/9fX1//n5+f/6+vrw6+vrdKysrAjKysoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+/v7//f3 + 9//z9PP/8PDw/+/v7//v7+//7+/v/+7u7v/u7u7/7u3t/+3t7f/t7e3/7e3t/+3t7f/s7e3/7Ozs/+zs + 7P/r7Ov/6+vr/+vr6//r6uv/6urq/+nq6f/p6en/6enp/+np6f/p6en/6enp/+np6P/o6Oj/6Ojo/+fn + 5//n5+f/5+fn/+bm5v/m5ub/5ubm/+bm5v/l5ub/5eXl/+Xl5f/k5eX/5OXk/+Tk5P/k4+P/4+Pj/+Pj + 4//j4+P/4+Pj/+jo5//p6un/6enp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+jo6P/o6Oj/6Ofn/+fn + 5//n5+f/5ubn/+bm5v/m5ub/5+fn/+np6f/t7e3/8fHx//X19f/5+fn/+vr68Ozs7HCrq6sHzc3NAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP7+/v/+Pf3//T09P/x8fH/8PDw//Dw8P/v8O//7+/v/+/v + 7//u7u7/7u7u/+3u7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs7P/r7Oz/7Ozs/+vr6//r6+r/6+rq/+rq + 6v/q6ur/6enp/+np6f/p6en/6enp/+np6f/p6Oj/6Ojo/+jo6P/n5+f/5+fn/+fn5//m5ub/5ubm/+bm + 5v/m5ub/5ubm/+Xl5v/l5eX/5eXl/+Tk5P/k5OT/5OTk/+Pj4//j4+T/6Ojo/+rq6v/p6un/6enp/+np + 6f/p6en/6enp/+np6f/o6On/6Ojo/+jo6P/o6Oj/6Ojo/+jo5//n5+f/5+fn/+fn6P/q6ur/7e3t//Hx + 8f/19fX/+fn5//r6+vDs7OxwqqqqBs7OzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/v7 + +//4+Pj/9PT0//Hx8f/w8PD/8PDw//Dw8P/w8PD/7+/w/+/v7//v7+//7u7u/+7u7v/u7u3/7u3t/+3t + 7f/t7e3/7e3t/+3t7f/s7e3/7Ozs/+zs6//r6+v/6+vr/+vr6v/q6ur/6urq/+np6f/p6en/6enp/+np + 6f/p6en/6ejp/+jo6P/o6Oj/5+fn/+fn5//n5+f/5ufm/+bm5v/m5ub/5ubm/+bm5v/l5eb/5eXl/+Xk + 5f/k5OT/5OTk/+Tk5P/o6Oj/6urq/+rq6v/q6ur/6urq/+rq6v/p6en/6enp/+np6f/p6en/6ejp/+jo + 6P/o6Oj/6Ojo/+jo6P/o6Oj/6+rq/+7u7v/y8vL/9fX2//n5+f/6+vrw7OzscKqqqgbOzs4AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+/v7//j4+P/19fX/8vLy//Hx8f/w8PD/8PDw//Dw + 8P/w8PD/8PDw//Dv7//v7+//7+/v/+7u7v/u7u7/7u3u/+3t7f/t7e3/7e3t/+3t7f/t7ez/7Ozs/+zs + 7P/s7Oz/6+vr/+vr6//r6ur/6uvq/+rq6v/q6en/6enp/+np6f/p6en/6enp/+no6f/o6Oj/6Ojo/+fn + 6P/n5+f/5+fm/+fm5//m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eXl/+np6f/r6+v/6urq/+rq + 6v/q6ur/6urq/+rq6v/p6er/6enp/+np6f/p6en/6enp/+no6f/o6Oj/6enp/+vr6//u7u7/8vLy//b2 + 9v/5+vr/+/v77+3u7W6qqqoGzs7OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39 + /eP7+/v/+Pj4//X19f/y8vP/8fHy//Hx8f/x8fH/8fDw//Dw8P/w8PD/8PDw//Dw8P/v8PD/7+/v/+/v + 7//v7u//7u7u/+7u7v/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs7f/s7Oz/7Ozs/+vr6//r6+v/6+vr/+rq + 6v/q6ur/6erq/+np6f/p6en/6enp/+np6f/p6en/6Ojo/+jo6P/n6Oj/5+fn/+fn5//n5ub/5ubm/+bm + 5v/m5ub/5ubm/+Xl5f/m5uX/6urq/+zs6//r6+v/6+vr/+rq6v/q6ur/6urq/+rq6v/q6ur/6enp/+np + 6f/p6en/6enp/+np6f/s6+z/7+7v//Ly8v/29vb/+vr6//v7++/v7+9roKCfBc7OzgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/v7/P/5+fn/9vb2//Pz8//y8vL/8vLy//Hx + 8v/x8fH/8fHx//Hw8P/w8PD/8PDw//Dw8P/w8PD/8O/w/+/v7//v7+//7u7u/+7u7v/u7u7/7e3t/+3t + 7f/t7e3/7e3t/+3s7f/t7Oz/7Ozs/+zs7P/r7Ov/6+vr/+vr6//q6ur/6urq/+nq6f/p6en/6enp/+np + 6f/p6en/6enp/+jo6f/o6Oj/6Ojn/+fn5//n5+f/5+bm/+bm5v/m5ub/5ubm/+bm5v/q6+r/7Ozs/+zs + 7P/r7Ov/6+vr/+vr6//q6ur/6urq/+rq6v/q6ur/6urq/+nq6f/q6ur/7Ozs/+/w7//z8vP/9vb2//r6 + +v/7+/vv7+/va6CgoAXOzs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+ + /hz9/f3j/Pz8//n5+f/29vb/8/P0//Pz8//z8/P/8vPy//Ly8v/y8vL/8fHx//Hx8f/x8PH/8PDw//Dw + 8P/w8PD/8PDw//Dv8P/v7+//7+/u/+7v7v/u7u7/7u7u/+7t7f/t7e3/7e3t/+3t7f/t7e3/7Ozt/+zs + 7P/s7Oz/6+zs/+vr6//r6+v/6uvq/+rq6v/q6ur/6erp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+fo + 6P/o5+f/5+fn/+fm5//m5ub/5ubm/+vr6//s7Oz/7Ozs/+zs7P/s7Oz/6+zs/+vr6//r6+v/6+rr/+rq + 6v/q6ur/6+vr/+zt7f/w8PD/8/Pz//b39v/6+vr/+/v77+/v72ugoKAFzs7OAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP8/Pz/+fn5//b29//09PT/8/Pz//Pz + 8//z8/P/8/Pz//Ly8v/y8vL/8vLy//Lx8f/x8fH/8PDx//Dw8P/w8PD/8PDw//Dw8P/v8PD/7/Dv/+/v + 7//u7+7/7u7u/+7u7v/u7e7/7e3t/+3t7f/t7e3/7e3t/+3t7f/s7Oz/7Ozs/+vs6//r6+v/6+vr/+rq + 6v/q6ur/6unq/+np6f/p6en/6enp/+np6f/o6en/6Ono/+jo6P/o6Of/5+jo/+fn5//n5+f/6+vr/+3t + 7f/s7e3/7Ozs/+zs7P/s7Oz/7Ozs/+vs7P/r6+v/6+vr/+zs7P/u7u7/8fDx//P08//39/f/+vr6//v7 + ++3w8PBpoKCgBc7OzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD+/v4c/f394/z8/P/5+vn/9/f3//X09P/09PT/8/P0//Pz8//z8/P/8/Pz//Lz8//z8vL/8vLy//Ly + 8v/x8fH/8fHx//Hw8f/w8PH/8PDw//Dw8P/w8PD/8PDw/+/w7//v7+//7+/v/+7u7//u7u7/7e3t/+3t + 7f/t7e3/7e3t/+3t7f/t7ez/7O3s/+zs7P/r6+z/6+vr/+rr6//q6uv/6urq/+rq6v/p6en/6enp/+np + 6f/p6en/6ejp/+no6f/o6Oj/6Ojo/+jo6P/s7Oz/7e3t/+3t7f/t7e3/7e3s/+zs7P/s7Oz/7Ozs/+zs + 7P/t7e3/7+/v//Hx8f/09PT/9/j3//r6+v/7+/vt8vLyZpycnAPU1NQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j/Pz8//r6+v/49/f/9fb1//T0 + 9P/09PT/9PT0//Pz8//z8/P/8/Pz//Pz8//z8/P/8vLz//Ly8v/y8vL/8fHy//Hx8f/x8PH/8PDw//Dw + 8P/w8PD/8PDw//Dw8P/w7+//7+/v/+/v7//u7u7/7u7u/+3u7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs + 7P/s7Oz/6+zs/+vr6//r6+v/6urr/+rq6v/q6ur/6enp/+np6f/p6en/6enp/+no6f/o6ej/6eno/+zs + 7P/t7u3/7e3t/+3t7f/t7e3/7e3t/+zs7f/s7O3/7e3t//Dw8P/y8vL/9fX1//j4+P/7+/v/+/v77fLy + 8macnJwD1NTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4A/v7+HP39/eP8/Pz/+vr6//j4+P/29vb/9vb1//X19f/19fX/9PT0//T09P/z8/P/8/Pz//Pz + 8//z8/P/8/Pz//Lz8v/y8vL/8vLy//Hx8v/x8fH/8fHw//Dw8P/w8PD/8PDw//Dw8P/w8PD/7+/w/+/v + 7//v7+//7u7v/+7u7v/u7u7/7e3t/+3t7f/t7e3/7e3t/+zt7f/s7Oz/7Ozs/+vs7P/r6+z/6+vr/+rr + 6//q6ur/6urq/+rp6v/p6en/6enp/+np6f/p6en/7e3t/+7u7v/u7u7/7e3t/+3t7f/t7e3/7e3t/+7u + 7v/w8PD/8/Pz//b29v/5+fn/+/v7//r6+u3y8vJmnJycA9TU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/z8/P/6+vv/+Pj4//f3 + 9//29vb/9vb1//X19v/19fX/9fT1//T09P/09PT/8/Pz//Pz8//z8/P/8/Pz//Pz8v/z8vL/8vPy//Hy + 8v/y8vH/8fHx//Hx8f/w8PD/8PDw//Dw8P/w8PD/8PDw//Dv8P/v7+//7+/v/+7u7v/u7u7/7u7t/+3t + 7f/t7e3/7e3t/+3t7f/t7e3/7O3s/+zs7P/r7Oz/6+vr/+vr6//q6+v/6urq/+rq6v/p6er/6enp/+np + 6f/t7e3/7u7u/+7u7v/u7u7/7u7u/+3t7v/v7+7/8fHx//Tz8//29vb/+fn5//z8/P/v7+/r2dnZY7e3 + twTU1NQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+AP7+/hz9/v3j/fz8//v7+//5+fn/9/f3//f39//39vb/9vb2//b19v/19fX/9fX1//T1 + 9f/09PT/9PT0//Tz8//z8/P/8/Pz//Pz8//z8/P/8vPz//Ly8v/y8vL/8vHx//Hx8f/x8fH/8PDw//Dw + 8P/w8PD/8PDw//Dw8P/w7+//7+/v/+/v7//u7u7/7u7u/+3u7v/t7e7/7e3t/+3t7f/t7e3/7e3t/+zt + 7P/s7Oz/7Ozs/+vr6//r6+v/6+vq/+rq6v/q6ur/6urq/+7u7f/v7+//7u7v/+7u7v/u7u7/7+/v//Hx + 8f/09PT/9/f2//r5+v/8/Pz/7+/v69PT02CEhIQCu7u7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP7+/uP9/f3/+/v7//n5 + +f/3+Pj/9/f3//f39//39/f/9vb3//b29v/29vb/9fX2//X19f/19fX/9PT0//T09P/z9PP/8/Pz//Pz + 8//z8/P/8/Pz//Lz8//y8vL/8vLy//Ly8f/x8fH/8fHx//Hw8P/w8PD/8PDw//Dw8P/w8PD/8PDw/+/v + 7//v7+//7u7v/+7v7v/u7u7/7u3u/+3t7f/t7e3/7e3t/+3t7f/s7ez/7Ozs/+zs7P/s6+v/6+vr/+rr + 6//r6uv/7u7u//Dw8P/v7/D/7+/v//Dw8P/y8vL/9PT0//f39//6+vr//Pz8/+/v7+vT09NghISEAru7 + uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gD+/v4c/v7+4/39/f/7+/v/+vr6//j4+P/39/f/9/f3//f39//39/f/9/f3//b3 + 9//29vb/9vb2//X19v/19fX/9fX1//T09P/09PT/9PT0//Pz8//z8/P/8/Pz//Pz8//z8vP/8/Ly//Ly + 8v/y8fL/8fHx//Hx8f/x8fH/8PDx//Dw8P/w8PD/8PDw/+/w7//v7+//7+/v/+7v7//u7u7/7u7u/+3t + 7f/t7e3/7e3t/+3t7f/t7e3/7O3t/+zs7P/s7Oz/6+vr/+vr6//v7+7/8PDw//Dw8P/x8fD/8vLy//X1 + 9f/49/f/+vr6//z8/P/v7+/q09PTYISEhAK7u7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz+/v7j/f39//z8 + +//6+vr/+fn5//j4+P/3+Pj/+Pf4//f39//39/f/9/f3//f39//29/f/9vb2//b29v/29fX/9fX1//X1 + 9P/09fT/9PT0//T09P/z8/P/8/Pz//Pz8//z8/P/8/Pz//Ly8//y8vL/8vLy//Hx8f/x8fH/8PHx//Dw + 8P/w8PD/8PDw//Dw8P/w7/D/7+/v/+/v7//u7+//7u7u/+7u7v/u7u3/7e3t/+3t7f/t7e3/7e3t/+3t + 7P/s7Oz/7Ozs/+/v7//w8PD/8fHx//Pz8//19fX/+Pj4//r6+v/8/Pz/7+/v6dPT012CgoICurq6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v4A/v7+HP7+/uP9/f3//Pz8//v6+v/6+fr/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/39/f/9/f3//f39//39/f/9/f2//b29v/29vb/9fb2//X19f/19fX/9PT1//T09P/09PT/8/P0//Pz + 8//z8/P/8/Pz//Py8//y8vL/8vLy//Hy8v/x8fL/8fHx//Hx8P/w8PD/8PDw//Dw8P/w8PD/7/Dw/+/w + 7//v7+//7+/v/+7u7v/u7u7/7u7u/+3t7f/t7e3/7e3t/+3t7f/t7e3/8O/v//Ly8v/z8/P/9fX1//j4 + +P/6+vr//Pz8/+/v7+nU1NRcenp6Ar29vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/v7+4/39 + /f/8/Pz/+/v7//r6+v/6+vr/+fn5//n5+f/5+fn/+Pj4//j4+P/39/j/9/f3//f39//39/f/9/f3//f3 + 9//29vb/9vb2//b29f/19fX/9fX1//X09P/09PT/9PT0//P08//z8/P/8/Pz//Pz8//z8/P/8/Lz//Ly + 8v/y8fL/8fHy//Hx8f/x8fH/8PDw//Dw8P/w8PD/8PDw//Dw7//v7+//7+/v/+7v7//u7+7/7u7u/+7t + 7v/t7e3/7e3t/+3t7f/x8fH/9PT0//b29v/4+Pj/+vr6//39/f/v7+/p1NTUXHp6egK9vb0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz+/v7j/f39//39/f/7+/z/+/r6//r6+v/6+vr/+vr6//n5 + +v/5+fn/+fn5//j5+P/3+Pj/9/j4//f39//39/f/9/f3//f39//39/b/9vb2//b29v/29vb/9fX1//X1 + 9f/09PX/9PT0//T09P/z8/T/8/Pz//Pz8//z8/P/8/Lz//Py8//y8vP/8vLy//Hy8v/x8fH/8fHx//Dw + 8P/w8PD/8PDw//Dw8P/w8PD/7/Dw/+/v7//v7+7/7u7u/+7u7v/u7u7/7+/v//Pz8//29vb/+Pn5//v7 + +//9/f3/8PDv6dTU1Ft6enoCvb29AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP7+ + /uP9/v7//f39//z8/P/7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vn/+fr5//n5+f/4+fj/+Pj4//j4 + +P/39/f/9/f3//f39//39/f/9/f3//f29//29vb/9vb1//X19v/19fX/9fX1//T09P/09PT/9PT0//Pz + 8//z8/P/8/Pz//Pz8//z8/P/8vLy//Ly8v/x8vL/8fHx//Hx8f/x8fD/8PDw//Dw8P/w8PD/8PDw/+/w + 7//v7+//7+/v//Dv8P/y8vL/9vb2//n5+f/7+/v//f39/+/v7+fU1NRYenl6Ab+/vwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8c/v7+4/7+/v/9/f3//f39//z8/P/7/Pv/+/v7//v7 + +//7+/v/+/r6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fj5//j4+P/4+Pj/+Pj4//j3 + +P/49/f/9/f3//b39//29/b/9vb2//b29v/29vb/9fX2//X19f/19fX/9fX1//T09f/09PX/9PT0//T0 + 9P/09PT/8/Pz//Pz8//z8/P/8vPy//Ly8v/y8vL/8vLy//Hy8v/y8vL/8/Pz//X19f/4+Pj/+/v7//39 + /f/v7+/n09PTV11dXQG7u7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1dXVAM3N + zRvs7Ozh//////7+/v/9/f3//f39//39/f/9/Pz//Pz9//z8/P/8/Pz//Pz8//v8/P/7/Pz/+/v7//v7 + +//7+/v/+/v6//r7+v/6+vr/+vr6//r6+v/6+vr/+vr6//r5+f/5+fn/+fn5//n5+f/5+fn/+fn5//j4 + +f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/j/9/f3//f39//39/f/9vb2//b29v/29vb/9vb2//b2 + 9v/29vX/9fb2//b29v/39/f/+Pj5//v7+//9/f3/7+/v59PT01ddXV0Bu7u7AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChoaEAd3d3CuLi4qn+/v7//v7+//7+/v/+/v7//v7+//39 + /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//Pz9//z8/f/8/fz//Pz8//z8/P/8/Pz//Pz8//z8 + /P/8/Pz//Pz8//z8/P/7+/z/+/v8//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6 + +//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr5//n6+f/5+fn/+vr6//r6+v/8/Pv//f39//Dw + 8ObT09NXXV1dAbu7uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGFh + YQDb29sAzMzMMfDw8Mb39/f9/f39//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v3+//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f38//z9/P/8/Pz//Pz8//z8 + /P/8/Pz//Pz8//z8/P/8/Pz//f39//39/f/v7+/l1NTUU0ZGRgG+vr4AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHp6egAAAAAAwsLCH8fHx2v39/d//v7+f/7+ + /n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+ + /n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+ + /n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5/+fn5f9TU + 1EWCgoIBvLy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////////////////wAAAAAAAAAAAAAA////// + 4AAAAAAAAAAAAAAH/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAf/////wAAAAAAAAAAAAAAP/////8AAAAAAAAAAAAAAH//////AAAAAAAAAAAAAAD////// + wAAAAAAAAAAAAAB//////8AAAAAAAAAAAAAA///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP/ + /////8AAAAAAAAAAAAAH///////AAAAAAAAAAAAAD///////wAAAAAAAAAAAAB///////8AAAAAAAAAA + AAA////////AAAAAAAAAAAAAf///////wAAAAAAAAAAAAP///////8AAAAAAAAAAAAH////////AAAAA + AAAAAAAD////////wAAAAAAAAAAAB////////8AAAAAAAAAAAA/////////AAAAAAAAAAAAf//////// + wAAAAAAAAAAAP////////8AAAAAAAAAAAH/////////AAAAAAAAAAAD/////////wAAAAAAAAAAB//// + /////8AAAAAAAAAAA//////////AAAAAAAAAAAf/////////wAAAAAAAAAAP/////////8AAAAAAAAAA + H//////////AAAAAAAAAAD//////////wAAAAAAAAAB//////////8AAAAAAAAAA///////////AAAAA + AAAAAf//////////wAAAAAAAAAP//////////8AAAAAAAAAH///////////AAAAAAAAAD/////////// + wAAAAAAAAB///////////8AAAAAAAAA////////////AAAAAAAAAf///////////4AAAAAAAAP////// + //////AAAAAAAAH//////////////////////////////4lQTkcNChoKAAAADUlIRFIAAAEAAAABAAgG + AAAAXHKoZgAAgABJREFUeNrtvTuwLdl5Hvb9q/c+cwfPIYEBxBFcGjwImpmrREOhiwQlMpACUZETSiLN + wIEjh1ZZlqXQkQMnNFVFBs4MB1JJRYKlWIJVZTuiBBT4KEBEYTjggMBwZu7ZvdbvYP3P1d37nHvPOffu + Bs6aunP27t29Xr3+9wt4bI/tsT22x/bYHttje2yP7bH9GDV62RO4TfvN3/zNzz558uSfP3ny5G/8vb/3 + 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 + + + + CenterParent + + + addCategory + + + MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + \ No newline at end of file diff --git a/MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.Designer.cs b/MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.Designer.cs new file mode 100644 index 00000000..6e6b8a8e --- /dev/null +++ b/MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.Designer.cs @@ -0,0 +1,83 @@ +namespace PckStudio +{ + partial class rename + { + /// + /// 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(rename)); + this.label2 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // label2 + // + resources.ApplyResources(this.label2, "label2"); + this.label2.ForeColor = System.Drawing.Color.White; + this.label2.Name = "label2"; + // + // button1 + // + resources.ApplyResources(this.button1, "button1"); + this.button1.ForeColor = System.Drawing.Color.White; + this.button1.Name = "button1"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // textBox1 + // + resources.ApplyResources(this.textBox1, "textBox1"); + this.textBox1.Name = "textBox1"; + // + // rename + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ControlBox = false; + this.Controls.Add(this.textBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.label2); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "rename"; + this.Resizable = false; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.Load += new System.EventHandler(this.addCategory_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox textBox1; + } +} \ No newline at end of file diff --git a/MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.cs b/MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.cs new file mode 100644 index 00000000..964f2f9c --- /dev/null +++ b/MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace PckStudio +{ + public partial class rename : MetroFramework.Forms.MetroForm + { + PCK.MineFile mf; + public rename(PCK.MineFile mfIn) + { + InitializeComponent(); + mf = mfIn; + textBox1.Text = mf.name; + FormBorderStyle = FormBorderStyle.None; + } + + private void button1_Click(object sender, EventArgs e) + { + mf.name = textBox1.Text; + this.Close(); + } + + private void addCategory_Load(object sender, EventArgs e) + { + + } + + } +} diff --git a/MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.resx b/MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.resx new file mode 100644 index 00000000..41fb29d6 --- /dev/null +++ b/MinecraftUSkinEditor/Forms/Skins-And-Textures/rename.resx @@ -0,0 +1,2436 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 19, 41 + + + 35, 13 + + + 3 + + + Name + + + label2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + + Flat + + + 96, 78 + + + 75, 23 + + + 4 + + + Rename + + + button1 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + 60, 38 + + + 181, 20 + + + 0 + + + textBox1 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + True + + + 6, 13 + + + 264, 105 + + + + AAABAAYAEBAAAAEAIABoBAAAZgAAACAgAAABACAAqBAAAM4EAAAwMAAAAQAgAKglAAB2FQAAQEAAAAEA + IAAoQgAAHjsAAICAAAABACAAKAgBAEZ9AAAAAAAAAQAgAOOBAABuhQEAKAAAABAAAAAgAAAAAQAgAAAA + AAAABAAAwg4AAMIOAAAAAAAAAAAAAO3t7QCTk5MA4ODgf8/Pz+DMzMzcysrK3MnJydzHx8fcxsbG3MTE + xNzDw8PcwcHB3MLCwuDX19d/bWxtAOzs7AD7+/sAAAAAANfX15y6urr/tbW1/7Ozs/+xsbH/r6+v/6ys + rP+qqqr/qKio/6Wlpf+np6f/ysrKnAAAAAD6+voA/Pz8AAAAAADZ2dmcwMDA/7u7u/+3t7f/tra2/7e3 + t/+0tLT/r6+v/62trf+rq6v/q6ur/8zMzJwAAAAA+vr6APz8/AAAAAAA3t7enL+/v/++vr7/v7+//7q6 + uv+ZmZn/oqKi/7q6uv+2trb/sbGx/7a2tv/Qz8+cAAAAAPv7+wD9/f0AAAAAAObm5pyenp7/pKSk/8zM + zP+Wlpb/cnJy/29vb/+fn5//lJSU/4SFhf+4uLj/0tLSnAAAAAD7+/sA/f39AAAAAADp6emcnJyc/4aG + hv++vr7/l5eX/5ubm/+srKz/pKSk/2ZmZv+ZmZn/v76+/9TU1JwAAAAA+/v7AP39/QAAAAAA7OzsnJ2d + nf9paWn/bGxs/5CQkP+Wlpb/1dXV/6ampv8+Pj7/ubm5/729vf/V1dWcAAAAAPv7+wD9/f0AERERAO/u + 7pyhoaH/paWl/35+fv+MjIz/np6e/7i4uP+oqKj/W1tb/6CgoP/BwcH/1tbWnAAAAAD7+/sA/f39AC8v + LwDx8fGcpKSk/3l5ef9ubm7/lZWV/3d3d/9zc3P/pKSk/5GRkf+EhIT/w8PD/9nZ2ZwAAAAA+/v7AP39 + /QBDQ0MA7+/vnNXV1f+0tLT/vr6+/9LS0v+ysrL/ubm5/87Ozv/Kysr/wsLC/8nJyf/c3NycAAAAAPz8 + /AD9/f0AW1tbAO/v75zl5eX/5OTk/+Hh4f/d3d3/3d3d/9rb2v/V1dX/0tLS/9DQ0P/Q0ND/4+PjlG5u + bwD6+voA/v7+AHd3dwDy8vKc6eno/+Xl5f/j4+P/4eHh/97e3v/f39//4+Pj/+Hh4f/g4OD/5+fnze/v + 7zDs7OwA8fHxAP7+/gCVlZQA9fX1nO3t7f/q6ur/6Ojo/+bm5v/j4+P/5OTk/+fn5//n5+f/7OzszPPz + 8zHu7u4A+vr6AAAAAAD+/v4AtLS0APj4+Jzy8vL/7+/v/+3t7f/r6+v/6Ojo/+jo6P/s7Oz/8PDwy/X1 + 9TDy8vIA+/v7AAAAAAAAAAAA/f39ANbW1QD7+/uc9/f3//T09P/y8vL/8PDw/+3t7f/u7u7/8vLyyfT0 + 9C7u7u4A/f39AAAAAAAAAAAAAAAAAO/v7wD///8A+vr6f/v7++D6+vrc+Pj43Pf399z19fXe9fX1xvPz + 8zX5+fkA4+TkAAAAAAAAAAAAAAAAAAAAAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAD + AADAAwAAwAMAAMADAADABwAAwA8AAMAfAADAPwAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAwg4AAMIO + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOvr6wDo6Ogd7OzsnOnp6bLo6Oix6Ojosejo6LHn5+ex5+fnsefn + 57Hm5uax5ubmsebm5rHl5eWx5eXlseXl5bHk5OSx5OTkseTk5LHj4+Ox4+PjsePj47Hj4+Oy6enpnOjo + 6B7q6uoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8vLyAPPz80fb29v4w8PD/8HBwf/AwcD/v7/A/7+/ + v/++vr7/vb29/7y8vP+7u7v/urq6/7m5uf+4uLj/t7e3/7a2tv+1tbX/tLS0/7Ozs/+ysrL/srGx/7Gx + sf/Q0ND48PHwR+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADy8vIA9fX1SdPT0/m2trb/tbW1/7S0 + tP+zsrP/sbGx/7CwsP+vr6//rq6u/62trf+srKz/qqqq/6mpqf+oqKj/p6en/6ampv+lpaX/pKSk/6Kj + o/+hoaH/oKCg/8XFxfnx8fFJ7e3tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gD19fVJ1dXV+bm5 + uf+4uLj/t7e3/7a2tv+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/rays/6urq/+qqqr/qamp/6io + qP+np6f/pqam/6SlpP+kpKT/x8fH+fLy8knu7u4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8/PzAPb2 + 9knW1tb5vLy8/7q6uv+5ubn/uLi4/7e3t/+2trb/tbW0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t + rf+rq6v/qqqq/6mpqf+oqKj/p6en/6ampv/IyMj58vLySe7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADz8/MA9vb2SdjY2Pm+vr7/vLy8/7u7u/+6urr/ubm5/7i4uP+3t7f/trW2/7S0tP+zs7P/srKy/7Gx + sf+wsLD/r6+v/62trf+tra3/q6ur/6qqqv+pqan/qKio/8rKyvny8vJJ7+/vAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPT09AD29vZJ2dnZ+cPDw//Ozs7/zc3N/8DAwP+8vLz/u7u7/7q6uv/ExMT/zMzM/8vL + y//Kysr/xMTE/7e3t/+/v7//xMTE/7a2tv+3t7f/w8PD/7q6uv+srKz/y8vL+fPz80nw8PAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA9PT0APf390na29v50tLS/6Kiov+vr6//0NDQ/76+vv+9vb3/ycnJ/729 + vf96enr/cnJy/3Nzc/+ioqL/1tbW/7S0tP+Xl5f/0tLS/8jIyP+Kior/xcXF/7e3t//MzMz58/PzSfDw + 8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA9/f3Sdzc3PnZ2dn/XFxc/3Z2dv/Z2dn/wMDA/7+/ + v//U1NT/ZmZm/yIiIv9fX1//Pz8//zU1Nf/h4eH/jo6O/0ZGRv/o6Oj/lZWV/zs7O//Kysr/tbW1/87O + zvnz8/NJ8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD39/dJ3d7d+dra2v9cXFz/dnZ2/9ra + 2v/CwsL/wcHB/9XV1f9aWlr/XFxc/+7u7v+oqKj/NTU1/+Li4v+Pj4//SEhI/+rq6v9MTEz/i4uL/8rK + yv+ysrL/0M/Q+fT09Enx8fEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vX2APj4+Enf39/53Nzc/1xc + XP94eHj/5OTl/9DQ0P/Ly8v/19fX/1tbW/9aWlr/4+Pj/6ampv86Ojr/4+Li/4+Pj/9LS0v/tLS0/zw8 + PP/Jycn/vLy8/7S0tP/R0dH59PT0SfHx8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vYA+Pj4SeHg + 4fnd3t3/XV1d/1NTU/+srKz/p6en/8fHx//l5eX/W1tb/1paWv/d3d3/zs3O/7S0tP/i4uL/jo6O/0VF + Rf9dXV3/gYGB/9DQ0P+4uLj/t7e3/9PT0/n09PRJ8vLyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb2 + 9wD4+PhJ4uLi+d/f3/9fX1//FxcX/zg4OP8hISH/SUlJ/+rq6v9cXFz/W1tb/9jY2P/Jycn/y8zL/9PT + 0/+Pj4//GRkZ/zg4OP/Gxsf/w8PD/7q6uv+5ubn/0tPT+fT09Enx8fEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA9/f3APn5+Unj4+P54eHh/11dXf9vb2//4+Pj/4iIiP8wMDD/5ubm/11dXf9bW1v/2dnZ/8jI + yP/Jycn/09PT/5CQkP8HBwf/PDw8/9TU1P/CwsL/vLy8/7i4uP/R0dH59PT0SfHx8QAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD39/cA+fn5SeXl5fni4uL/XV1d/3R0dP/j4+P/jIyM/zExMf/n5+f/XV1d/1tb + W//f39//2NjY/9DQ0P/j4+P/j4+P/zs7O/9GRkb/mZmZ/9HR0f+7u7v/t7e3/9LS0vn09PRJ8vLyAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+AD5+flJ5ubm+eTk5P9dXV3/dHR0/+Hh4f+Li4v/MTEx/+fn + 5/9dXV3/W1tb/+np6f+vr6//TExM/+bm5v+RkZH/S0tL/5KSkv9MTEz/1dXV/76+vv+5urr/1NTU+fX1 + 9Uny8vIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Pj4APn5+Uno6Oj55ubm/11dXf92dnb/7u7u/4+P + j/8xMTH/6Ojo/11dXf9cXFz/9PTz/6qqqv81NTX/5ubm/5GRkf9JSUn/3Nzc/zU1Nf+ioqL/zc3N/7y8 + vP/W1tb59fX1SfLy8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PgA+vr6Senp6fnn5+f/X19f/yws + LP9jY2P/ODg4/zs7O//r6+v/bGxs/yMjI/9jY2P/QkJC/zc3N//n5+f/kZGR/0dHR//x8fH/c3Nz/0xM + TP/V1dX/wcHB/9fX1/n19fVJ8/PzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn5+QD6+vpJ6+vr+ebm + 5v+7u7v/k5OT/5KSkv+SkpL/urq6/+np6f/Ly8v/lZWV/5GRkf+RkZH/srKy/+Tk5P/IyMj/rq6u/+Li + 4v/MzMz/oqKi/9bW1v/FxcX/2dnZ+fX29Unz8/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+fn5APr6 + +kns7Oz54eHh/+jo6P/q6ur/6enp/+jo6P/j4+P/2tra/9/f3//l5eX/5OTk/+Pj4//e3t7/1NTU/9jY + 2P/Z2tn/zs7O/9DQ0P/X19f/zc3N/8XFxf/a2tr59vb2SfP09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD6+voA+/v7Se7u7vni4uL/4eHh/+Dg4P/e3t7/3d3d/9zc3P/b29v/2tra/9nZ2f/Y2Nj/1tbW/9XV + 1f/S0tL/zs7O/83Nzf/MzMz/ysrK/8nJyf/Ix8f/x8fH/9zc3Pn39/ZJ9PT0AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPr6+gD7+/tJ7+/v+eXl5f/k5OT/4uLi/+Hh4f/g4OD/39/f/97e3v/d3d3/3Nzc/9ra + 2v/Z2dn/2dnZ/9fX1//W1tb/1NXU/9PT0//S0tL/0dHR/9DQ0P/S0tL/5ubm8vf39z/19fUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+/v7APv7+0nx8fH55+fn/+bm5v/l5eX/5OTk/+Pj4//h4eH/4ODg/9/f + 3//e3t7/3d3d/9zc3P/h4eH/4+Pj/+Li4v/h4eH/4ODg/9/f3//e3t7/4ODg/+vr6/fy8vKB6ejoCOvr + 6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA/Pz8SfLy8vnq6un/6Ojo/+fn5//m5ub/5eXl/+Tk + 5P/j4+P/4uLi/+Dg4P/f39//3t7e/+Pj4//l5eX/5OTk/+Pj4//i4uL/4eHh/+Pj4//t7e338/Pzf+rq + 6gjt7e0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD8/PxJ9PT0+ezs7P/r6+v/6urq/+jo + 6P/n5+f/5ubm/+Xl5f/k5OT/4+Pj/+Li4v/h4OH/5eXl/+fn5//m5ub/5eXl/+Tk5P/l5eX/7u7u9/T0 + 9H7s7OwI7+/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Un19fX57u7u/+3t + 7f/s7Oz/6+vr/+rq6v/p6en/5+fn/+bm5v/l5eX/5OTk/+Pj4//n5+f/6enp/+jo6P/n5+f/6Ojo//Dw + 8Pb19fV87e3tB/Dw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA/f39Sff3 + 9/nx8fH/8PDw/+/v7//t7u3/7Ozs/+vr6//q6ur/6enp/+jo6P/n5uf/5uXl/+np6f/q6ur/6enp/+rq + 6v/x8fL29vb2e/Dw8Afy8vIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD9/f1J+Pj4+fPz8//y8vL/8fHx//Dw8P/v7+//7u7u/+zt7P/r6+v/6urq/+np6f/o6Oj/6+vr/+zs + 7P/t7e3/8/Pz9vf493ry8vIH9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/f39AP39/Un6+vr59vb2//T09f/z8/P/8vLy//Hx8f/w8PD/7+/v/+7u7v/t7e3/6+vr/+rq + 6v/t7e3/8PDw//T09PXz8/N49PT0Bvb29gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v4A/v7+Sfv7+/n4+Pj/9/f3//b29v/19fX/8/Pz//Ly8v/x8fH/8PDw/+/v + 7//u7u7/7e3t//Dw8P/29vX18vLyd9jY2Abi4uIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+wD6+vpH/Pz8+Pv7+//6+vr/+fn5//j4+P/39/f/9vb2//X1 + 9f/09fX/8/T0//Pz8//y8vL/9vb28/Ly8nTZ2dkF4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7u7uAOrq6h74+Pic/v7+sv39/bH9/f2x/f39sfz8 + /LH8/Pyx/Pz8sfv7+7H7+/ux+/v7sfv7+7P09fRy3NzcB+Tk5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA + AA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AA + AB/wAAA/8AAAf/AAAP/wAAH/8AAD//AAB//wAA//8AAf/ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAMIO + AADCDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeHhwD///8A5eXlNPLy8n729vaB9fX1gfX1 + 9YH19fWB9fX1gfX19YH19fWB9fX1gfX19YH09PSB9PT0gfT09IH09PSB9PT0gfT09IH09PSB8/PzgfPz + 84Hz8/OB8/PzgfPz84Hz8/OB8/PzgfPz84Hz8/OB8/PzgfLy8oHy8vKB8vLygfPz84Hw8PB+5eXlNP// + /wCHh4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANra2gDa29sK7+/vtuXl + 5f/a2tr/2dnZ/9jY2P/Y2Nj/2NjY/9fX1//X19f/19fX/9bW1v/W1tb/1dXV/9XV1f/V1dX/1NTU/9TU + 1P/U1NT/09PT/9PT0//T0tP/0tLS/9LS0v/R0dH/0dHR/9DQ0P/Q0ND/0NDQ/8/Pz//Pz8//z8/O/8/P + z//e3t7/7O3tttzc3ArZ2dkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6 + +gD///8Q7u7uzc3Nzf+5ubn/uLi4/7e3t/+3t7b/tra2/7W1tf+0tLT/tLS0/7Ozs/+ysrL/srKy/7Gx + sf+wsLD/r6+v/66urv+urq7/ra2t/6ysrP+srKz/q6ur/6qqqv+qqqr/qamp/6ioqP+nqKf/p6en/6am + pv+lpaX/pKSk/6SkpP+9vb3/6enpzf///xD5+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPv7+wD///8Q7e3tzcrJyv+2trb/tbW1/7S0tf+0tLT/s7Oz/7Kysv+ysbH/sbGx/7Cw + sP+vr6//rq6v/66urv+tra3/rKys/6urq/+rqqv/qqqq/6mpqf+oqKj/qKeo/6enp/+mpqb/paWl/6Wl + pf+kpKT/o6Oj/6Kiov+hoqL/oaCh/6CgoP+4uLj/5+fnzf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+wD///8Q7u7uzcvLy/+4uLj/t7e3/7e3t/+2trb/tbW1/7S0 + tP+ztLT/s7Oz/7Kysv+xsbH/sLCx/7CwsP+vr6//rq6u/62urv+tra3/rKys/6urq/+qqqr/qqmq/6mp + qf+oqKj/p6en/6enpv+mpqb/paWl/6SkpP+kpKT/o6Oj/6Kiov+6urr/5+fnzf///xD6+voAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+wD///8Q7u7uzczMzP+6urr/ubm5/7i4 + uP+3uLf/t7e3/7a2tv+1tbX/tLS0/7S0tP+zs7P/srKy/7Gxsf+xsbH/sLCw/6+vr/+urq7/rq6u/62t + rf+srKz/q6ur/6qqqv+qqqr/qamp/6ioqP+np6f/p6en/6ampv+lpaX/pKSk/6SkpP+7u7v/6Ojozf// + /xD6+voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q7u7uzc3N + zf+7u7v/u7u7/7q6uv+5ubn/uLi4/7i4uP+3t7f/tra2/7W1tf+0tLT/tLS0/7Ozs/+ysrL/sbGx/7Gx + sf+wsLD/r6+v/66urv+urq7/ra2t/6ysrP+rq6v/qqqq/6qqqv+pqan/qKio/6enp/+np6f/pqam/6Wl + pf+8vLz/6Ojozf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8 + /AD///8Q7+/vzc/Pz/+9vb3/vLy8/7u7u/+7u7v/urq6/7m5uf+4uLj/uLi4/7e3t/+2trb/tbW1/7S0 + tP+0tLT/s7Oz/7Kysv+xsbH/sbGx/7CwsP+vr6//rq6u/66urv+tra3/rKys/6urq/+qqqv/qqqq/6mp + qf+oqKj/p6en/6enp/++vb7/6enpzf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPz8/AD///8Q7+/vzdDQ0P++vr7/vr69/729vf+8vLz/u7u7/7u7u/+6urr/ubm5/7m4 + uP+4uLj/t7e3/7a2tv+1tbX/tLS0/7OztP+zs7P/srKy/7Gxsf+xsbH/sLCw/6+vr/+urq7/rq6u/62t + rf+srKz/q6ur/6qqqv+qqqr/qamp/6ioqP+/vr//6enpzf///xD6+voAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8PDwzdHR0f/AwMD/wsLC/8XFxf/ExMT/wMDA/7y8 + vP+7u7v/u7u7/7q6uv+5ubn/ubm5/7y8vP++vr7/vr6+/729vf+8vL3/vLy8/7i4uP+zs7P/s7Oz/7e3 + t/+4uLj/tbS1/6+vr/+vr6//s7Oz/7W1tf+ysrL/rKys/6qqqv/AwMD/6urqzf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8PDwzdLS0v/FxcX/1tXW/9/f + 3//g4OD/1dTU/8LCwv+9vb3/vLy8/7y8u/+8vLz/x8fH/9zc3P/f39//3d3d/93d3f/d3d3/3d3d/9nZ + 2f/CwsL/xMTF/9fX1//b29v/09PT/7y8vP/AwMD/1tbW/9nZ2f/U1NT/vr6+/62trf/BwcH/6urqzf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8PHwzdPT + 0//Nzc3/2tra/2BgYP94eHj/5eXl/8nJyf++vr7/vr6+/729vf/DwsL/3t7e/6Ojo/9OTk7/RERE/0VF + Rf9ERET/TU1N/6Wlpf/e3d3/3t7e/5GRkf9PT0//zMzM/9LT0//b29v/l5eX/0tLS/++vr7/zs7O/7Cw + sP/CwsL/6urqzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8 + /AD///8Q8fHxzdTU1P/Q0ND/2NjY/yMjI/9FRUX/5+fn/8zMzP/AwMD/v8DA/76+vv/Jycn/29vb/zQ0 + NP8CAgL/ICAg/yMjI/8hISH/AwMD/z4+Pv/j5OP/6urq/2xsbP8LCwv/w8PD/+Xl5f/Y2Nj/Ly8v/y4u + Lv/W1tb/xcXF/6+vr//Dw8P/6+vrzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPz8/AD///8Q8fHxzdXV1f/R0tH/2NjY/yMjI/9FRUX/5+jn/83Nzf/CwsL/wcHB/8DA + wP/MzMz/1tbW/yUlJf8hISH/z8/P/9/f3//T09P/Jycn/zc3N//l5eX/7e3t/2xsbP8LCwv/xsbG//j4 + +P+enp7/BgYG/4aGhv/d3d3/uLi4/7CwsP/ExMT/6+vrzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8fLxzdfX1//T09P/2NjY/yMjI/9FRUX/6Ojo/87O + zv/Dw8P/w8PD/8LCwv/Nzc3/1tbW/yUlJf8lJSX/2tra/+Li4v/h4eH/Kysr/zc3N//l5eX/7e3t/2xs + bP8LCwv/y8vL//b29v9JSUn/KSkp/9PT0//Kysr/tLS0/7Kysv/Gxcb/6+vrzf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8vLyzdjY2P/U1NT/2dnZ/yMj + I/9FRUX/6enp/9HR0f/Gxsb/xsbG/8TExP/Ozs7/19fX/yUlJf8lJSX/1tbW/9vb2//e3t7/Kysr/zc3 + N//m5ub/7e3u/2xsbP8LCwv/z8/P/8PDw/8ODg7/fHx8/+Hh4f+8vL3/tLS0/7S0tP/Hx8f/7Ozszf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD///8Q8vLyzdnZ + 2f/W1db/2dnZ/yMjI/9GRkb/8/Pz/+fn5//h4eH/39/f/9XV1f/U1NT/19fX/yUlJf8lJSX/1tbW/9ra + 2v/f39//U1NT/11dXf/m5ub/7O3s/2xsbP8LCwv/ycnJ/2NjY/8cHBz/ycnJ/9HR0f+4uLj/tra2/7W1 + tf/IyMj/7Ozszf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8 + /QD///8Q8/Pzzdra2v/X19f/2tra/yUlJf8pKSn/lpaW/5eXl/+VlZX/oqKi/9fX1//m5ub/2tra/yQk + JP8lJSX/19fX/9TU1P/b29v/3d3d/93d3f/c3dz/5+fn/21sbf8ODg7/n5+f/x0dHf90dHT/4+Pj/8LC + wv+4uLj/uLi4/7e3t//Jycn/7e3tzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD///8Q8/Pzzdvc2//Y2Nj/2tra/ycnJ/8AAAD/AQEB/wEBAf8BAQH/AAAA/2Zm + Zv/x8fH/3t7e/yQkJP8lJSX/2NjY/9DQ0P/IyMf/zMzL/8rKyv/Jycj/4uLi/21tbf8LCwv/SkpK/xgY + GP/Dw8P/1tbW/7y8vP+6urr/ubm5/7m5uf/Kysr/7Ozszf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9PT0zd3d3f/Z2dn/29vb/yQkJP8tLS3/oqKi/6Wl + pf+NjY3/CwsL/zw8PP/s7Oz/4ODg/yQkJP8lJSX/2NjY/9DR0f/ExMT/xMTE/8PDw//FxcX/4uPj/25u + bv8AAAD/AAAA/1hYWP/o6Oj/ycnJ/7y8vP+8vLz/u7u7/7m5uf/HyMj/7Ozszf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9PT0zd7e3v/b29v/29vb/yMj + I/9GRkb/7+/v/+np6f/Pz8//ExMT/zo6Ov/t7e3/4ODg/yQkJP8lJSX/2NjY/9LS0v/IyMj/ysrK/8nJ + yf/Jycn/5OPj/25ubv8CAgL/FRUV/zs7O//e3t7/z8/P/76+vv+9vb3/u7u7/7a2tv/Hx8f/7Ozszf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9PT0zd/f + 3//c3Nz/3Nzc/yMjI/9ERET/4+Pj/9XV1f/Gxsb/ExMT/zo6Ov/t7e3/4ODg/yQkJP8lJSX/2dnZ/9bW + 1v/Z2dn/5+fn/+bm5v/a2tr/5+fn/21tbf8ODg7/enp6/w8PD/+YmJj/4eHh/8TExP+9vr7/uLm4/7a2 + tv/Jycj/7Ozszf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD///8Q9fX1zeDg4P/d3d3/3Nzc/yMjI/9ERET/4+Pj/9TU1P/Gxsb/ExMT/zo6Ov/t7e3/4eHh/yQk + JP8lJSX/2dnZ/97e3v/k5OT/jo6O/5SUlP/o6Oj/7u7u/21tbf8MDAz/ubm5/zY2Nv8/Pz//4uLi/87O + zv+7u7v/ubm5/7i4uP/Kysr/7e3tzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD///8Q9fX1zeHh4f/f39//3d3d/yMjI/9ERET/4+Pj/9TU1P/Gxsb/ExMT/zo6 + Ov/u7u7/4eHh/yQkJP8lJSX/2tra/+Li4v/g4OD/Kysr/zc3N//o6Oj/8fHx/21tbf8LCwv/zs7O/42N + jf8KCgr/q6ur/93d3f+/vr//urq6/7q6uv/Ly8v/7e3tzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9fX1zePj4v/g4OD/3d3d/yMjI/9FRUX/6Ojo/97e + 3v/Kysr/ExMT/zo6Ov/u7u7/4eHh/yQkJP8lJSX/3t7e/+rq6v/k5OT/Kysr/zc3N//p6en/8vLy/21t + bf8LCwv/zs7O/9vb2/8dHR3/SUlJ/+Dg4P/Kysr/vLy8/7u7u//MzMz/7u7uzf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9vb2zeTk5P/h4uH/3t7e/yQk + JP8/Pz//3d3d/93d3f/AwMD/ERER/zs7O//u7u7/4uLi/yUlJf8hISH/0NDQ/+Li4v/V1dX/Jycn/zg4 + OP/p6en/8vLy/21tbf8LCwv/ysrK//39/f9paWn/BwcH/6qqqv/c3Nz/wMDA/729vf/Ozs7/7u7uzf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9vb2zeXl + 5f/j4+P/3t7e/ycnJ/8HBwf/IiIi/yMjI/8eHh7/AAAA/09PT//x8fH/6Ofn/zg4OP8CAgL/ICAg/yMj + I/8hISH/AwMD/0BAQP/p6en/8fHx/21tbf8LCwv/x8fH//b29v+3t7f/CgoK/1JSUv/i4uL/ysrK/7+/ + v//Pz8//7u7uzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD///8Q9vb3zebm5v/j4+P/5ubm/4WFhf9tbW3/bW1t/21tbf9tbW3/cXFx/8DAwP/t7e3/7e3t/7Ky + sv9ubm7/bW1t/21tbf9tbW3/bW1t/7CwsP/p6en/6urq/6qqqv91dXX/19fX/+Tk5P/i4uL/ioqK/319 + ff/b29v/0NDQ/8HBwf/Q0ND/7+/vzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD///8Q9/f3zefn5//g4OD/6enp//Py8//09PT/8/Pz//Pz8//z8/P/8fHy/+rq + 6v/d3d3/3t7e/+rq6v/w8PD/8fHx//Hw8f/w8PD/7+/v/+jo6P/Z2dn/29vb/+np6f/s7Oz/4uLi/9LS + 0v/X19f/5+jo/+np6f/d3d3/ysrK/8LCwv/S0tL/7+/vzf///xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q9/f3zenp6f/g4OD/4eHh/+Li4v/h4eH/4eHh/+Dg + 4P/f39//3t7e/9zc3P/a2tr/2dnZ/9ra2v/b29v/29vb/9ra2v/Z2dn/2NjY/9bW1v/T09P/0tLS/9HR + 0f/Q0ND/zs7O/8rKyv/Kysr/zMzM/8zMzP/Jycn/xsbG/8XFxf/T09P/8PDwzf///xD7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q+Pj4zerq6v/i4uL/4eHh/+Dg + 4P/f39//39/f/97e3v/d3d3/3dzc/9zc3P/b29v/29ra/9rZ2v/Z2dn/2NjY/9fX1//W1tb/1dXV/9XV + 1f/U09P/0NDP/83Nzf/Nzc3/zMzM/8zLzP/Ky8r/ycnJ/8jIyP/IyMj/x8fH/8bGxv/U1NT/8PDwzf// + /xD7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD///8Q+Pj4zevr + 6//k5OT/4+Pj/+Li4v/h4eH/4OHh/+Dg4P/f39//3t7e/93d3f/d3d3/3Nzc/9vb2//b29v/2tra/9nZ + 2f/Y2Nj/2NjY/9bW1v/S0tL/0NDQ/8/Pz//Ozs7/zc7O/83Nzf/MzMz/y8vL/8rKy//Kycn/yMjI/8jI + yP/X19f/8vLyzf///xD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD///8Q+fn5zezs7P/l5eX/5eXl/+Tk5P/j4+P/4uLi/+Li4f/g4eH/4ODg/9/f3//e3t7/3t7e/93d + 3f/c3Nz/29vb/9vb2//a2tr/2tra/9ra2v/Z2dn/2NjY/9jY2P/X19f/1tbW/9XV1f/V1dX/1NTU/9PT + 0//T0tP/0tLS/9XV1f/n5+f/9PT0uPf39wr19fUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD///8Q+fn5ze7t7f/n5+f/5ubm/+bl5f/l5eX/5OTk/+Pj4//i4+P/4uLi/+Hh + 4f/g4OD/39/f/97e3//e3t7/3d3d/9zc3P/b29v/3Nzc/+Pj4//j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg + 4P/g4OD/39/f/97e3v/e3t7/4eHh/+zs7f/09PTO6+vrNP///wDBwcEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+fn5ze/v7//p6ej/6Ojo/+fn5//m5ub/5ubm/+Xl + 5f/k5OT/4+Pj/+Pj4//i4uL/4eHh/+Dg4P/f39//39/f/97e3v/d3d3/3t7e/+Tk5P/k5OT/5OTk/+Pj + 4//i4uL/4uLi/+Hh4f/h4eH/4ODg/+Dg4P/i4uL/7e3t//T09M7t7e0y////ALS0tAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+vr6zfDw8P/q6ur/6enp/+np + 6f/o6Oj/5+fn/+bm5v/m5ub/5eXl/+Tk5P/j4+P/4+Pj/+Li4v/h4eH/4ODg/9/f3//f39//39/f/+Xl + 5f/l5eX/5eXl/+Tk5P/k5OT/4+Pj/+Li4v/i4uL/4eHh/+Tk5P/u7u7/9fX1zO7u7jH///8Azc3NAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+vr6zfHx + 8f/s7Oz/6+vr/+rq6v/p6en/6enp/+jo6P/n5+f/5ubm/+bm5v/l5eX/5OTk/+Pj4//j4+P/4uLi/+Hh + 4f/g4OD/4eHh/+bm5v/m5+b/5ubm/+Xl5f/l5eX/5OTk/+Tk5P/j4+P/5ubm/+/v7//19fXL7u7uMf// + /wDExMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD///8Q+/v7zfLy8v/t7e3/7e3t/+zs7P/r6+v/6urq/+np6f/p6en/6Ojo/+fn5//m5ub/5ubm/+Xl + 5f/k5OT/4+Pj/+Pj4//i4uL/4uLi/+jo6P/o6Oj/5+fn/+bm5//m5ub/5eXl/+Xl5f/n5+f/8PDw//b2 + 9srw8PAv////ALCwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gD///8Q+/v7zfP08//v7+//7u7u/+3t7f/t7e3/7Ozs/+vr6//q6ur/6enp/+np + 6f/o6Oj/5+fn/+bn5//m5ub/5eXl/+Tk5P/k4+T/5OTk/+np6f/p6en/6Ojo/+jo6P/n5+f/5+fn/+np + 6f/x8fH/9/f3yfLx8S7///8Az8/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q+/v7zfX19f/w8PH/8PDw/+/v7//u7u7/7u7u/+3t + 7f/s7Oz/6+vr/+rq6v/q6ur/6enp/+jo6P/n5+f/5+fn/+bm5v/l5eX/5uXm/+rq6v/q6ur/6urp/+np + 6f/o6Oj/6urq//Ly8v/39/fI8vLyLf///wDGxsYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q/Pz8zfb29v/y8vL/8fHx//Hw + 8f/w8PD/7+/v/+7v7v/u7u7/7e3t/+zs7P/r7Oz/6uvr/+rq6v/p6en/6Ojo/+fo6P/n5+f/5+fn/+vr + 6//r6+v/6+vr/+rq6v/s7Oz/8/Pz//j4+Mf09PQs/Pz8AN/f3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD///8Q/Pz8zff3 + 9//09PT/8/Pz//Ly8v/y8fL/8fHx//Dw8P/v7+//7+7v/+7u7v/t7e3/7ezs/+zs7P/r6+v/6urq/+np + 6f/o6Oj/6enp/+zt7f/t7e3/7Ozs/+7u7v/19fX/+fn5xvX19Sv///8A1NTTAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD///8Q/Pz8zfj4+P/29vb/9fX1//T09P/z8/P/8vLy//Hy8v/x8fH/8PDw/+/v8P/v7+//7u7u/+3t + 7f/s7ez/7Ozs/+vr6//q6ur/6urq/+7u7v/u7u7/8PDw//b29v/09PTF8vLyK/n5+QDKysoAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gD///8Q/f39zfn5+f/39/f/9vb3//b29v/19fX/9PT0//Pz8//z8vL/8vLy//Hx + 8f/w8PD/8PDw/+/v7//u7u7/7e3t/+3t7f/s7Oz/7Ozs/+/v7//x8fH/9/f3//Pz88Tj4uMp9PT0ALW1 + tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v8Q/f39zfv6+v/5+fn/+Pj4//f39//29/f/9vb2//X1 + 9f/09PT/8/Pz//Py8//y8vL/8fHx//Dw8P/v8PD/7+/v/+7u7v/t7e3/7e3t//Ly8v/3+Pf/9PT0w+Li + 4ij4+PgAlpaWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f0Q/f39zfz8/P/6+vr/+vr6//n5 + +f/4+Pj/+Pj4//f39//29vb/9fX1//T19P/09PT/8/Pz//Ly8//y8vL/8fHx//Dw8P/v8PD/8fHx//j4 + +P/09PTC5OTjKPPz8wCvr68AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANvb2wDW1tYK9vb2tv39 + /f/9/f3//Pz8//z8/P/8/Pz/+/v7//v7+//7+/v/+vr6//r6+v/5+vr/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/3+Pj/+fn5//T09MDk5OQm9PT0AK6urgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeH + hwD///8A5ubmNPf3937+/v6B/v7+gf7+/oH+/v6B/v7+gf7+/oH+/v6B/f39gf39/YH9/f2B/f39gf39 + /YH9/f2B/f39gf39/YH9/f2B+vr6fObm5ij9/f0AfX19AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+AAAAAH8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/ + AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/AAAAAA/AAD8AAAAAH8AAPwAAAAA/wAA/AAAAAH/AAD8AAAAA/8AAPwAAAAH/wAA/AAAAA// + AAD8AAAAH/8AAPwAAAA//wAA/AAAAH//AAD8AAAA//8AAPwAAAH//wAA/AAAA///AAD8AAAH//8AAPwA + AA///wAA/gAAH///AAAoAAAAQAAAAIAAAAABACAAAAAAAABAAADCDgAAwg4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDw8MAvLy8Atvb2zL29vZT+/v7Uvr6+lL6+vpS+vr6Uvr6 + +lL6+vpS+vr6Uvr6+lL6+vpS+vr6Uvr6+lL6+vpS+vr6Uvr6+lL6+vpS+vr6Uvr6+lL6+vpS+fr5Uvn5 + +VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5+VL5+flS+fn5Uvn5 + +VL5+flS+Pn5Uvj5+VL5+flS+fn5UvX19VPc29wyvLy8AsPCwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8/PzAOHh4UDx8fHf7u7u+erq + 6vjp6en46enp+Onp6fjp6en46enp+Onp6Pjo6Oj46Ojo+Ojo6Pjo6Oj46Ojo+Ofo6Pjn5+f45+fn+Ofn + 5/jn5+f45+fn+Ofn5/jm5ub45ubm+Obm5vjm5ub45ubm+Obm5vjl5eX45eXl+OXl5fjl5eX45eXl+OTl + 5fjk5OT45OTk+OTk5Pjk5OT45OTk+OPk4/jj4+P44+Pj+OTk5Pjp6ur57/Dw3+Hh4UHy8vIAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn5 + +QDx8fF97Ozs/9XV1f/Jycn/yMjI/8fHx//Hx8f/xsfG/8bGxv/Gxsb/xcXF/8XFxf/FxMX/xMTE/8TE + xP/Dw8P/w8PD/8LCwv/CwsL/wsLC/8HBwf/BwcH/wMDA/8DAwP+/v7//v7+//7+/v/++vr7/vr6+/76+ + vv+9vb3/vb29/7y8vP+8vLz/u7u7/7u7u/+6urr/urq6/7q6uv+5ubn/ubm5/7i4uP+5ubn/yMjI/+bm + 5v/w8PB99vb2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADz8vMA+Pj4f+Xk5P/ExMT/tra2/7a1tf+1tbX/tbW0/7S0tP+zs7P/s7Oz/7Ky + sv+ysrL/sbGx/7Gwsf+wsLD/r6+v/6+vr/+urq//rq6u/62trf+sraz/rKys/6urq/+rq6v/qqqq/6qq + qv+pqan/qamp/6ioqP+oqKj/p6en/6anpv+mpqb/paWl/6Wlpf+kpaT/o6Sk/6Ojo/+ioqL/oqKi/6Gh + of+hoaH/oKGh/7Kysv/c3Nz/9vb2f+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8vLyAPj4+H/k5OT/w8PD/7a2tv+2trb/tbW1/7S0 + tP+0tLT/s7Oz/7Ozs/+ysrL/srGx/7Gxsf+xsbH/sLCw/6+vr/+vr6//rq6u/66urv+tra3/ra2t/6ys + rP+rq6v/q6qr/6qqqv+qqqr/qamp/6ipqP+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+kpaT/pKSk/6Oj + o/+jo6P/oqKi/6Kiov+hoaH/oKCg/6CgoP+wsLD/2tra//X19X/t7e0AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gD4+Ph/5OTk/8TE + xf+4uLj/t7e3/7a2tv+2trb/tbW1/7W0tf+0tLT/tLSz/7Ozs/+ysrP/srKy/7Gxsf+xsbH/sLCw/7Cw + sP+vr6//rq6u/66urv+tra7/ra2t/6ysrP+rq6v/q6ur/6qqqv+qqqr/qamp/6mpqf+oqKj/p6eo/6en + p/+np6b/pqam/6Wlpf+kpaT/pKSk/6SkpP+jo6P/oqKj/6Kiov+hoaH/sbGx/9vb2//19fV/7e3tAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADz8vMA+Pj4f+Tk5f/FxcX/ubm5/7i4uP+4uLj/t7e3/7e3t/+2trb/tbW1/7S0tf+0tLT/tLS0/7Oz + s/+zsrL/srKy/7Gxsf+xsbH/sLCw/6+wr/+vr6//r66u/66urv+urq3/ra2t/6ysrP+sq6v/q6ur/6qq + qv+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+jo6P/o6Oj/7Ky + sv/b29v/9fX1f+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA8/LzAPj4+H/l5eX/xsbG/7q6uv+5ubn/ubm5/7i4uP+4uLj/t7e3/7e3 + t/+2trb/tbW1/7S1tf+0tLT/tLS0/7Ozs/+ysrL/srKy/7Gxsf+xsbH/sLCw/7CwsP+vr6//rq+u/66u + rv+urq7/ra2t/6ysrP+srKv/q6ur/6qqqv+qqqr/qamp/6mpqf+oqKj/qKeo/6enp/+np6f/pqam/6Wl + pf+lpaX/pKSk/6SkpP+ztLP/3Nzc//X19X/u7u4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPz8wD4+Ph/5eXl/8fHx/+7u7v/u7u7/7q6 + uv+6ubn/ubm5/7i4uP+4uLj/uLe3/7e3t/+2trb/tbW1/7W1tf+0tLT/tLS0/7Ozs/+zsrP/srKy/7Gx + sf+xsbH/sLGx/7CwsP+vr6//rq+u/66urv+urq7/ra2t/6ysrP+srKz/q6ur/6qqqv+qqqr/qqqq/6mp + qf+oqKj/qKeo/6enp/+np6f/pqam/6alpv+lpaX/tLS0/9zc3P/19fV/7u7uAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADz8/MA+Pj4f+bm + 5v/JyMj/vLy8/7y8vP+7u7v/u7u7/7q6uv+5urr/ubm5/7i4uP+4uLj/t7i3/7e3t/+2trb/tbW1/7W1 + tf+0tLT/tLS0/7Ozs/+zs7P/srKy/7Gxsf+xsbH/sLCx/7CwsP+vr6//r6+v/66urv+urq7/ra2t/62t + rP+srKz/q6ur/6qqqv+qqqr/qqqq/6mpqf+oqKj/qKio/6enp/+np6f/pqam/7W1tf/d3d3/9vb2f+/v + 7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA8/PzAPn5+X/m5ub/ycnJ/76+vv+9vb3/vLy8/7y8vP+7u7v/u7u7/7q6uv+6urr/ubm5/7i4 + uP+4uLj/uLi4/7e3t/+2trb/tbW2/7W1tf+0tLT/tLS0/7Ozs/+zs7P/srKy/7Gxsf+xsbH/sbGx/7Cw + sP+vr6//r6+v/66urv+urq7/ra2t/62srP+srKz/q6ur/6qqq/+qqqr/qqqq/6mpqf+oqKj/qKio/6en + p/+2trb/3d3d//b29n/v7+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPz8wD5+fl/5+fn/8rKyv+/vr7/vr6+/76+vv+9vb3/vLy8/7y8 + vP+7u7v/u7u7/7q6uv+6urr/ubm5/7m4uP+4uLj/uLi4/7e3t/+2trb/tbW1/7W1tf+0tLT/tLS0/7Oz + s/+zsrP/srKy/7Gxsf+xsbH/sbGx/7CwsP+vr6//rq6u/66urv+urq7/ra2t/62trf+srKz/q6ur/6qq + qv+qqqr/qqqq/6mpqf+pqan/t7e3/97e3v/29vZ/7+/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADz8/MA+fn5f+fn5//Ly8v/wMDA/8C/ + v//AwMD/wcHB/8HBwf+/v7//vb29/7y8vP+7u7v/u7u7/7u6uv+6urr/ubm5/7m4uf+4uLj/urq6/7q6 + uv+5urn/ubm5/7i4uP+4uLj/uLe4/7e3t/+0tbT/srKy/7Kysv+ysrL/tLS0/7S0tP+zsrL/sLCw/66u + rv+urq7/r6+v/7CwsP+wsLD/rq6u/6ysrP+qqqr/qqqq/7i4uP/e3t7/9vb2f/Dw8AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9PT0APn5 + +X/o6Oj/zMzM/8LCwv/Hx8f/0tLS/9nY2P/Y2Nj/0NDQ/8XFxf++vr7/vb29/7y8vP+7u7v/u7u7/7q7 + uv+7vLv/w8PD/83Nzf/T09P/1NTU/9TU1P/U1NT/09PT/9PT0//Q0ND/x8bH/7q6uv+2trb/wcHB/83N + zf/Q0ND/zMzM/7+/v/+zs7P/tLW0/8LBwv/MzMz/zs7O/8nJyf+8vLz/r6+v/6urq/+5ubn/39/f//f3 + 93/w8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPT09AD5+fl/6Ojo/83Nzf/FxcX/1tbW/+Hh4f/V1dX/2NjY/+Xl5f/U1NT/wsLB/76+ + vv+9vb3/vb29/7y8vP+8vLz/xsbG/9vb2//p6en/2tra/9TU1P/U1NT/1NTU/9TU1P/U09P/3t7e/+Xl + 5f/Pz8//xsbG/9jZ2f/X19f/0tLS/93d3f/Y2Nj/wMDA/8bGxv/e3t7/2NjY/9HR0f/b29v/1dXV/7m5 + uf+tra3/urq6/9/f3//39/d/8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD09PQA+fn5f+np6f/Ozs7/ycnJ/+Li4v+3t7f/ISEh/zc3 + N//b29v/39/f/8XFxf+/v7//vr6+/76+vv+9vb3/wMDA/9XU1f/l5eX/dnZ2/ycnJ/8dHR3/Hh4e/x4e + Hv8eHh7/HR0d/zY2Nv+rq6v/5eXl/9nZ2f/l5eX/XFxc/xcXF/+Kior/6urq/87Ozv/a2tr/z8/P/zc3 + N/8gICD/qKio/+Hh4f+8vLz/rq6u/7u7u//f39//9/f3f/Dw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9fX1APn5+X/p6en/z8/P/8vL + yv/l5uX/sLCw/wMDA/8dHR3/2dnZ/+Li4v/Hx8f/wMDA/8DAwP+/v7//vr6+/8TExP/f39//w8PD/xIS + Ev8AAAD/AgIC/wMDA/8DAwP/AwMD/wEBAf8AAAD/S0tL/+rq6v/j4+P/6enp/0dHR/8AAAD/fHx8/+/v + 7//b29v/6urr/4WFhf8AAAD/Li4u/9vb2//X19f/uLe3/6+ur/+8vLz/4ODg//f393/w8PAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX1 + 9QD5+fl/6enp/9DQ0P/MzMz/5ubm/7CwsP8DAwP/HR0d/9nZ2f/i4uL/yMjI/8HCwv/BwcH/wMHB/7+/ + wP/FxcX/4+Pj/6+vsP8FBQX/AwMD/4KCgv+2trb/sbGx/7e3t/9XV1f/AAAA/0VFRf/s7Oz/5+fn/+rq + 6v9HR0f/AAAA/3x8fP/19fX/6+vr/93d3f81NTX/AAAA/3t7e//p6en/x8fH/7Ozs/+wsLD/vb29/+Dg + 4f/39/d/8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD19fUA+fn5f+rq6v/R0dH/zc3N/+fn5/+wsLD/AwMD/x0dHf/Z2dn/4+Pj/8nJ + yf/CwsP/wsLC/8LCwv/BwcH/x8fH/+Pj4/+wsLD/BQUF/wUFBf+1tbX/9/f3/+7u7v/8/Pz/enp6/wAA + AP9FRUX/7e3t/+fn5//q6ur/R0dH/wAAAP98fHz//Pz8//r6+v+lpaX/AwMD/yMjI//Q0ND/29vb/7y8 + vP+xsbH/sbGx/76+vv/h4eH/9/f3f/Hx8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9fX1APr6+n/q6ur/0tLS/87Ozv/n5+f/sLCw/wMD + A/8dHR3/2dnZ/+Tk5P/Kysr/xMTE/8PDw//Dw8P/wsLC/8jIyP/k5OT/sLCw/wUFBf8FBQX/sLCw/+fn + 5//b29v/8fHx/3h4eP8AAAD/RUVF/+3t7f/o6Oj/6urq/0dHR/8AAAD/fX19///////z8/P/S0tL/wAA + AP98fHz/6urq/8rKyv+2trb/s7Oy/7Kysv+/v7//4eHh//f393/x8fEAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD6+vp/6+vr/9PT + 0//Pz8//6Ojo/7Gxsf8DAwP/HR0d/9nZ2f/k5OT/y8vL/8XFxf/FxcX/xMTE/8PDw//Iycj/5OTk/7Cw + sP8FBQX/BQUF/6+vr//k5OT/1tfX//Dw8P94eHj/AAAA/0VFRf/t7e3/6Ojo/+rq6v9HR0f/AAAA/319 + ff//////xMTE/w8PD/8ZGRn/zc3N/97e3v+/v7//tLS0/7S0tP+0s7T/wMDA/+Li4v/39/d/8fHxAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD29vYA+vr6f+zr7P/U1NT/0NDQ/+jo6f+xsbH/AwMD/x0dHf/a2tr/6urq/9XV1f/Q0ND/0NDQ/87O + zv/Jycn/y8vL/+Xl5f+wsLD/BQUF/wUFBf+wsLD/5eXl/9fX1//w7/D/eHh4/wAAAP9FRUX/7e3t/+jo + 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 + fP/39/f/7u7u/+Pj4/83Nzf/AAAA/1xcXP/r6+v/1dXV/8LCwv+/v7//ysrK/+bm5v/4+Ph/8/PzAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD5+fkA+/v7f/Ly8v/j4+P/4ODg/+/v7//Gxsb/S0tL/0dHR/9HR0f/R0dH/0dHR/9HR0f/RkZG/1hY + WP/Nzc3/8PDw/+vr6//v7+//jIyM/0ZGRv9HR0f/R0dH/0dHR/9HR0f/R0dH/0xMTP+2trb/7u7u/+bl + 5f/t7e3/e3t7/0JCQv+fn5//8PDw/+Li4v/t7e3/pKSk/0VFRf9bW1v/2NjY/93d3f/Gxsb/wcHB/8vL + y//m5ub/+Pj4f/Pz8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+fn5APv7+3/z8/P/5OTk/+Dg4P/o6Oj/8vLy//Pz8//z8/P/8/Pz//Pz + 8//z8/P/8/Pz//Ly8v/y8vL/7+/v/+Li4v/e3t7/6Ojo//Lx8v/x8fH/8vLy//Ly8v/y8fL/8fHx//Hx + 8f/w8PD/7u7u/+Dg4P/b29v/5+fn/+/v7//w8PD/7u7u/+Pj4//V1dX/3Nzd/+zs7P/u7u7/7e3t/+jo + 6P/W1tb/xcXF/8LBwv/MzMz/5+fn//j4+H/z8/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPn5+QD7+/t/8/Pz/+Xl5f/f39//4uLi/+fn + 5//q6ur/6urq/+rq6v/p6en/6enp/+np6f/o6Oj/5uXm/+Dg4P/a2tr/2dnZ/9zc3P/h4eH/5eXl/+bm + 5v/l5eX/5eXl/+Tk5f/k5OT/4uLi/9zc3P/V1dX/09PT/9nZ2f/e3t7/3t7e/9vc2//T09P/y8vL/87O + zv/X19f/29vb/9vb2//V1dX/y8vL/8TExP/Dw8P/zc3N/+fn5//4+Ph/8/PzAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA+/v7f/T0 + 8//m5ub/4eHh/+Dg4P/g4OD/4ODg/+Dg4P/f39//39/f/97e3v/d3t3/3d3d/9zc3P/b29v/2tra/9nZ + 2f/Z2dn/2dnZ/9nZ2f/Z2dn/2NjY/9fY1//X19f/1tbW/9bW1v/U1NT/09PT/9LS0v/Q0ND/z87O/87O + zv/Nzc3/y8vL/8rKyf/Jycn/ysrK/8rKyv/Jycn/yMjI/8bGxv/FxcX/xcXF/87Ozv/o6Oj/+Pn4f/T0 + 9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA+vr6APz8/H/09PT/5+fn/+Li4v/h4uH/4eHh/+Dg4P/f39//39/f/97e3v/e3t7/3d3d/93c + 3P/c3Nz/3Nzc/9vb2//b29v/2tra/9nZ2f/Z2dn/2NjY/9jY2P/X19f/1tbW/9bW1f/V1dX/1dXV/9TU + 1P/R0dH/zs7O/83Nzf/Nzc3/zMzM/8zMzP/Ly8v/ysrK/8nKyf/Jycn/yMjI/8fHyP/Hx8f/x8fH/8bG + xv/Pz9D/6Ojp//n5+X/09PQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6+gD8/Px/9fX1/+jo6P/j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg + 4P/f4OD/39/f/9/f3//e3t7/3d3d/93d3f/c3Nz/3Nzc/9vb2//b29v/2tra/9nZ2f/Z2dn/2NnY/9jY + 2P/X19f/1tbX/9bW1v/T09P/0NDQ/9DQz//Pz8//zs7O/83Nzf/Nzc3/zc3N/8zMzP/Ly8v/ysrL/8rK + yv/Jycn/yMjI/8jIyP/Hx8f/0NDR/+np6f/5+fl/9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA/Pz8f/X19f/p6en/5OTk/+Tk + 5P/j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg4P/f4OD/39/f/9/f3//e3t7/3t3e/93d3f/c3Nz/3Nzc/9vb + 2//b29v/2tra/9na2f/Z2dn/2dnZ/9jY2P/V1dX/0tLS/9LS0v/R0dH/0NDQ/8/Pz//Pz8//zs7O/83N + zf/Nzc3/zM3M/8zMzP/Ly8v/y8rL/8rKyv/Jycn/ycnJ/9XV1f/t7e3/+vr6f/f39wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+/v7APz8 + /H/19fX/6urq/+bm5v/l5eX/5eXk/+Tk5P/j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg4P/g4OD/39/f/9/f + 3//e3t7/3d7e/93d3f/c3Nz/3Nzc/9vb2//b29v/2tra/9nZ2f/b29v/29zc/9vb2//b29r/2tra/9rZ + 2f/Z2dn/2NnY/9jY2P/X19f/19fX/9bW1v/W1tb/1dXV/9XV1f/U1NT/1NTU/9nZ2f/n5+f/9PT0+PT0 + 9GL29vYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPv7+wD8/Px/9vb2/+vr6//n5+f/5ubm/+bm5v/l5eX/5eXl/+Tk5P/j4+P/4+Pj/+Li + 4//i4uL/4eHh/+Dg4P/g4OD/39/f/9/f3//e3t7/3t3e/93d3f/c3Nz/3Nzc/9vc2//b29v/397e/+Tk + 4//j4+P/4+Li/+Li4v/i4uL/4eHh/+Hh4f/h4eH/4ODg/+Dg4P/f39//39/f/97e3v/e3t7/3t7e/+Li + 4v/t7e3/9fX19+/v74PNzc0J3d3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA/Pz8f/b29v/s7Oz/6Ojo/+fn5//n5+f/5ubm/+bm + 5v/l5eX/5eXl/+Tk5P/j4+P/4+Pj/+Lj4//i4uL/4eHh/+Dg4P/g4OD/39/f/9/f3//e3t7/3t7e/93d + 3f/c3N3/3Nzc/9/f3//k5OT/5OTk/+Tj4//j4+P/4uLi/+Li4v/h4eL/4eHh/+Hh4f/h4OD/4ODg/+Dg + 4P/f39//39/f/+Pj4//t7e3/9fX19/Dw8IDOzs4J3t7eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+/v7AP39/X/39/f/7e3t/+np + 6f/p6en/6Ojo/+fn5//n5+f/5ubm/+bm5v/l5eX/5eXl/+Tk5P/j4+P/4+Pj/+Lj4//i4uL/4eHh/+Hh + 4f/g4OD/39/f/9/f3//e3t//3t7e/93d3f/g4OD/5eXl/+Xl5f/k5OT/5OTk/+Pj5P/j4+P/4uLi/+Li + 4v/i4uH/4eHh/+Hh4f/g4OD/4ODg/+Tk5P/u7u7/9vb29/Hx8YDS0tII39/fAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7 + +wD9/f1/9/f3/+7u7v/q6ur/6urp/+np6f/p6en/6Ojo/+jn6P/n5+f/5ubm/+bm5v/l5eX/5eXl/+Tk + 5P/k4+P/4+Pj/+Pj4//i4uL/4eHh/+Hh4f/g4OD/39/f/9/f3//e3t7/4eHh/+bm5v/l5uX/5eXl/+Xl + 5f/k5OT/5OTk/+Tk5P/j4+P/4uLi/+Li4v/i4uL/4uLi/+bm5v/u7u7/9vb29vLy8n7T09MI4ODgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD8/PwA/f39f/j4+P/v7+//7Ozs/+vr6//q6ur/6urq/+np6f/p6en/6Ojo/+jo + 6P/n5+f/5+bn/+bm5v/l5uX/5eXl/+Tk5P/j5OT/4+Pj/+Pj4//i4uL/4eHi/+Hh4f/g4OD/39/f/+Li + 4v/n5+f/5ubm/+bm5v/m5eb/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/j4+P/4+Pj/+fn5//v7+//9vb29vLy + 8n3X19cI4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/X/4+Pj/8PDw/+3t7f/t7e3/7Ozs/+vr + 6//q6+r/6urq/+np6f/p6en/6Ojo/+jo6P/n5+f/5ufm/+bm5v/m5ub/5eXl/+Tk5P/k5OT/4+Pj/+Pj + 4//i4uL/4uHi/+Hg4f/j4+P/6Ojo/+fn5//n5+f/5ubm/+bm5v/m5ub/5eXl/+Xl5f/k5OT/5OTk/+jo + 6P/w8PD/9/f39vPz83vY2NgH4uLiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f1/+fn5//Hx + 8f/u7u7/7e3t/+3t7f/t7e3/7Ozs/+vr6//r6+v/6urq/+np6f/p6en/6Ojo/+jo6P/n5+f/5ubn/+bm + 5v/m5ub/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//i4uL/5eXl/+np6f/o6Oj/6Ojo/+jo6P/n5+f/5ubm/+bm + 5v/m5ub/5ubm/+np6f/w8fD/9/f39fPz83rZ2dkH4uLiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD8/PwA/f39f/n5+f/y8vL/7+/v/+/v7//u7u7/7e3u/+3t7f/t7e3/7Ozs/+vr6//r6+v/6urq/+np + 6f/p6en/6eno/+jo6P/n5+f/5ufn/+bm5v/m5ub/5eXl/+Xl5P/k5OT/4+Pj/+bm5v/p6un/6enp/+np + 6f/o6Oj/6Ojo/+jn6P/n5+f/5+fn/+rq6v/x8fH/+Pj49fX19Xjc3NwG5eXlAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/X/5+fn/8/Pz//Dw8P/w8PD/8O/w/+/v7//u7u7/7u7u/+3t + 7f/t7e3/7Ozs/+vr6//r6+v/6urq/+np6f/p6en/6ejp/+jo6P/n5+f/5+fn/+bm5v/m5ub/5eXl/+Tk + 5P/n5+f/6urq/+rq6v/q6ur/6enp/+np6f/o6Oj/6Ojo/+vr6//y8vL/+Pj49PX19Xfd3d0G5eXlAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f1/+vr6//T09P/y8vL/8fHx//Dw + 8P/w8PD/8O/w/+/v7//u7u7/7u7u/+3t7f/t7e3/7Ozs/+zs6//r6+v/6urq/+np6f/p6en/6enp/+jo + 6P/n5+f/5+fn/+bm5v/m5ub/6Ojo/+vs6//r6+v/6urq/+rq6v/q6er/6enp/+zs7P/z8vP/+Pj49Pb2 + 9nXf398G6OjnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/f39f/v6 + +//19fX/8/Pz//Lz8v/y8vL/8fHx//Hw8P/w8PD/8PDw/+/v7//u7u7/7u7u/+3t7f/t7e3/7Ozs/+zs + 7P/r6+v/6urq/+np6v/p6en/6enp/+jo6P/o5+f/5+fn/+np6f/s7Oz/7Ozs/+zs7P/r6+v/6+vr/+3t + 7v/z8/P/+fn59Pb29nXf398G6OjoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/f39AP39/X/7+/v/9vb2//T09P/z8/P/8/Pz//Pz8//y8vL/8fHx//Hw8f/w8PD/8PDw/+/v + 7//v7u//7u7u/+3t7f/t7e3/7ezs/+zs7P/r6+v/6urq/+rq6v/p6en/6enp/+jo6P/q6ur/7e3t/+3t + 7f/s7Oz/7Ozt/+/v7//19fX/+fn58/j4+HPk5OQF7OzsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f1/+/v7//f39//29vX/9fX1//T09P/z8/P/8/Pz//Pz + 8v/y8vL/8fHx//Hx8f/w8PD/8PDw/+/v7//u7+//7u7u/+3t7f/t7e3/7O3s/+zs7P/r6+v/6urq/+rq + 6v/p6en/6+vr/+7u7v/u7e7/7u7u//Hx8f/29vb/9/f38vLy8nLr6+sF7OzsAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+f/z8/P/4+Pj/9/f3//b2 + 9v/19vb/9fX1//T09P/z8/P/8/Pz//Pz8//y8vL/8fHx//Hx8f/w8PD/8PDw/+/v7//v7+//7u7u/+7t + 7f/t7e3/7O3s/+zs7P/r6+v/6urq/+zs7P/v7+//7+/v//Ly8v/39/f/9/f38ujo6G+0tLQFy8vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+ + /n/8/Pz/+fn5//j4+P/39/f/9/f3//b29v/19vb/9fX1//T09P/09PT/8/Pz//Pz8//y8vL/8fHy//Hx + 8f/w8PD/8PDw/+/v7//v7+//7u7u/+3t7f/t7e3/7e3t/+zs7P/t7e3/8PDw//Pz8//4+Pj/9/f38ujo + 6G+0tLQFy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP3+/QD+/v5//f39//r6+v/5+fn/+Pn5//j4+P/39/f/9/f3//b29v/29vb/9fX1//T0 + 9P/09PT/8/Pz//Pz8//y8vL/8vHy//Hx8f/w8PD/8PDw/+/v7//v7+//7u7u/+7t7v/t7e3/7+/v//T0 + 9P/4+Pj/9/f38ejo6G2wsLAEy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+f/39/f/7+/v/+vr6//r6+v/5+fn/+Pn4//j4 + +P/39/f/9/f3//f29//29vb/9fX1//T09f/09PT/8/Pz//Pz8//y8vP/8vLy//Hx8f/x8fD/8PDw/+/w + 8P/v7+//7+/v//Py8v/5+fn/+Pj48ejo6GyxsbEEy8vLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////APX19X39/f3//f39//z8 + /P/8+/z/+/v7//v7+//6+vr/+vr6//r6+v/5+fn/+fn5//j4+P/4+Pj/9/f3//f39//29/f/9vb2//b2 + 9v/19vX/9fX1//T09P/09PT/9PT0//T09f/4+Pj/+Pj48enp6WusrKwEy8vLAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT0 + 9ADi4uJB9/f33/39/fn+/v74/v79+P39/fj9/f34/f39+P39/fj9/f34/f39+P39/fj8/Pz4/Pz8+Pz8 + /Pj8/Pz4/Pz8+Pz8/Pj8/Pz4+/v7+Pv7+/j7+/v4+/v7+Pv7+/j7+/v5+Pj46+np6Wmtra0Ey8vLAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADBwcEAubm5Atzc3DL4+PhT/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+ + /lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+Uv7+/lL+/v5S/v7+U/Dw + 8EDBwcEGysrKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+A + AAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAA + Af//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+A + AAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAA + Af//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+A + AAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAA + Af//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//gAAAAAAB//+A + AAAAAAP//4AAAAAAB///gAAAAAAP//+AAAAAAB///4AAAAAAP///gAAAAAB///+AAAAAAP///4AAAAAB + ////gAAAAAP///+AAAAAB////4AAAAAP////gAAAAB////+AAAAAP////4AAAAB/////gAAAAP////+A + AAAB/////4AAAAP/////gAAAB/////+AAAAP////KAAAAIAAAAAAAQAAAQAgAAAAAAAAAAEAwg4AAMIO + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3AAAA + AADCwsIfx8fHa/X19X/8/Px/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7 + +3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7 + +3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+/v7f/v7+3/7+/t/+vr6f/r6+n/6+vp/+vr6f/r6 + +n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6 + +n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6+n/6+vp/+vr6f/r6 + +n/6+vp/+fr6f/r6+n/5+vp/+fr6f/n6+n/6+vl/+vr6f/n6+n/7+/t/9fX1f8fGxmvCwsIfAAAAAHp6 + egAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJiYgDa2toAzMzMMe/v78Xz8/P99vb2//T09P/z8/P/8vLy//Ly + 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vHy//Lx + 8f/y8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx + 8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8PHw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw + 8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8PD/8PDw/+/w + 8P/v8O//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v + 7//v7+//7+/v//Hx8f/09PT/8vLz/e/v78bMzMwx29raAGFhYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaGhAHd3 + dwrh4eGp+vr6//Pz8//s7Oz/5ubm/+Pj4//i4uL/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh + 4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/g4eH/4eDh/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f + 4P/f39//39/f/9/f3//f39//39/f/9/f3//e397/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e + 3v/e3t7/3t3d/97d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3dzc/9zc3P/c3Nz/3Nzc/9zc + 3P/c3Nz/3Nzc/9zc3P/c3Nz/29zb/9vc3P/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb + 2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/b29v/39/f/+bm5v/w8PD/+fn5/+Hh + 4al4eHgKoaGhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NQAzs7OG+rq6uH19fX/6urq/9/f4P/X19f/0dLR/9DQ + 0P/P0M//z8/P/8/Pz//Pz8//z8/P/87Pzv/Ozs7/zs7O/87Ozv/Ozs7/zs7O/83Ozf/Nzc3/zc3N/83N + zf/Nzc3/zc3N/83NzP/MzMz/zMzM/8zMzP/LzMz/y8vL/8vLy//Ly8v/y8vK/8vKyv/Kysr/ysrK/8rK + yv/Kysr/ysrK/8rKyv/Kysr/ysrK/8nJyv/Jycn/ycnJ/8nJyf/Jycn/yMnJ/8jIyP/IyMj/yMjI/8jI + x//Ix8j/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/xsfH/8bGxv/Gxsb/xsbG/8bGxv/FxcX/xcXF/8XF + xf/ExcT/xMTE/8TExP/ExMT/xMTE/8TExP/ExMT/xMPD/8PDw//Dw8P/w8PD/8PDwv/DwsL/wsLC/8LC + wv/CwsL/wsLC/8TExP/Ly8v/1tbW/+Pk4//y8vL/6erq4c7OzhvU1NQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD///8c+vr64/Dw8P/i4uL/1NXV/8jIyP/BwcH/wMDA/8DAwP/AwL//v7+//7+/v/+/vr7/vr6+/76+ + vv++vr7/vr6+/76+vv+9vb3/vb29/729vf+8vLz/vLy8/7y8vP+8vLz/u7y8/7u7u/+7u7v/u7u7/7u7 + uv+7u7r/urq6/7q6uv+6urn/ubm5/7m5uf+5ubn/uLm5/7i4uf+4uLj/uLi4/7i4uP+3uLj/t7e3/7e3 + t/+3t7b/t7a2/7a2tv+2trb/tbW2/7W1tv+1tbX/tbW1/7W1tf+1tbX/tbW1/7W0tP+0tLT/tLS0/7O0 + s/+zs7T/s7Oz/7Ozs/+zsrP/s7Ky/7Kysv+ysrL/srKx/7Gysf+xsbH/sLCx/7CwsP+wsLD/sLCw/6+v + r/+vr6//r6+v/6+vr/+vr6//r6+v/6+vrv+urq7/rq6u/66urf+trq3/rq6u/7e3t//Hx8f/2dnZ/+vr + 6//5+fnj////HP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Rz5+fnj7e3t/93d3f/MzMz/vr6+/7e3 + t/+2trb/tra2/7a2tv+2tbX/tbW1/7W1tf+0tbT/tLS0/7S0tP+0tLT/s7Oz/7Ozs/+zs7P/s7Kz/7Ky + sv+ysrL/srKy/7Kysf+xsbH/sbCx/7CwsP+wsLD/sLCw/7CwsP+wsK//r7Cw/6+vr/+vr6//rq6v/66u + rv+urq7/rq2u/62trf+tra3/ra2s/6ysrP+srKz/rKys/6usq/+rq6v/q6ur/6uqqv+qqqr/qqqq/6mq + qv+pqar/qamp/6mpqf+pqan/qamp/6mpqf+oqKj/qKio/6inqP+np6f/p6en/6anpv+mpqb/pqam/6am + pv+mpqb/pqam/6alpf+lpaX/pKWk/6SkpP+kpKT/o6Oj/6Ojo/+jo6P/o6Kj/6Kiov+ioqL/oqKi/6Ki + ov+hoaH/oaGh/6Ghof+hoaH/qamp/7y8vP/S0tL/5+fn//b29uP8/fwc+/v7AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD8/PwA/f39HPn5+ePs7Oz/29ra/8nJyf+7u7v/tba1/7W1tf+1tbX/tLS0/7S0tP+0tLT/tLS0/7S0 + s/+0s7P/s7Oz/7Ozsv+ysrP/srKy/7Gxsv+xsbL/sbGx/7Gxsf+xsbH/sbGx/7CwsP+wsLD/r6+w/6+v + r/+vr6//rq6u/66urv+urq7/rq6u/66urv+ura7/ra2t/62trf+trKz/rKys/6usq/+rq6v/q6ur/6qr + q/+qqqr/qqqq/6qqqv+qqqr/qqqq/6mpqv+pqan/qaip/6ioqP+oqKj/p6in/6enp/+np6f/p6en/6em + p/+npqf/pqam/6ampv+lpqb/paal/6WlpP+kpaT/pKSk/6SkpP+kpKT/pKSk/6Oko/+jo6P/oqOj/6Ki + ov+ioqL/oaKh/6Ghof+hoaH/oKCh/6CgoP+goKD/oKCg/6CgoP+foKD/n6Cf/5+fn/+mpqb/uLi4/8/P + z//l5eX/9vb24/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f0c+fn54+zs7P/b2tr/ycnJ/7y7 + vP+2trb/tra1/7a1tf+1tbX/tbW1/7W0tf+0tLT/tLS0/7S0tP+0tLT/s7Oz/7Ozs/+zs7P/srKy/7Ky + sv+ysrL/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+wsbD/sLCw/7CwsP+wr6//r6+v/6+urv+urq7/rq6u/66u + rv+urq7/ra2u/62trf+tra3/rays/6ysrP+srKz/rKur/6urq/+rq6v/qqqr/6qqqv+qqqr/qqqq/6qq + qv+pqar/qamp/6mpqf+oqKj/qKio/6iop/+np6f/p6en/6enp/+np6f/p6en/6amp/+mpqb/pqal/6Wl + pf+lpaX/paSl/6SkpP+kpKT/pKSk/6SkpP+ko6T/o6Oj/6Ojo/+io6P/oqKi/6Kiov+ioaL/oaGh/6Gh + of+goKD/oKCg/6CgoP+goKD/oKCg/6enp/+4uLj/zs7O/+Xl5f/29vbj/f39HPv7+wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AP39/Rz5+fnj7Ozs/9vb2//Kysr/vLy8/7e3t/+2t7f/tra2/7a2tv+2tbX/tbW1/7W1 + tf+0tLT/tLS0/7S0tP+0tLT/tLS0/7SztP+zs7P/s7Oz/7Kysv+ysrL/srKy/7Gxsf+xsbH/sbGx/7Gx + sf+xsbH/sLCw/7CwsP+wsLD/r6+v/6+vr/+vr6//rq6u/66urv+urq7/rq6u/66urf+tra3/ra2t/6yt + rf+srKz/rKys/6yrq/+rq6v/q6ur/6uqqv+qqqr/qqqq/6qqqv+qqqr/qaqq/6mpqf+pqan/qaip/6io + qP+np6j/p6en/6enp/+np6f/p6en/6enp/+np6b/pqam/6ampv+lpaX/paWl/6SlpP+kpaT/pKSk/6Sk + pP+kpKT/pKSk/6Oko/+jo6P/o6Oi/6Kiov+ioqL/oqKi/6Ghof+hoaH/oaCg/6CgoP+goKD/p6en/7i4 + uP/Pz8//5eXl//b29uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA/f39HPn5+ePs7Oz/29vb/8rK + yv+9vb3/uLi4/7e4uP+3t7f/t7e3/7a2tv+1trb/tba2/7W1tf+1tbX/tbS0/7W0tP+0tLT/tLS0/7S0 + tP+0tLP/s7Oz/7Oys/+ysrP/srKy/7Kxsv+xsbL/sbGx/7Gxsf+xsbH/sbCx/7Cwsf+wsLD/sK+w/6+v + r/+vr6//r6+v/66urv+urq7/rq6u/66urv+urq7/ra2t/62trf+tra3/rKys/6ysrP+sq6v/q6ur/6ur + qv+rq6r/qquq/6qqqv+qqqr/qqqq/6mqqv+pqan/qamp/6moqf+oqKj/qKeo/6enp/+np6f/p6en/6en + p/+npqf/pqen/6ampv+mpqX/paal/6Wlpf+lpaX/pKSk/6SkpP+kpKT/pKSk/6SkpP+jo6P/o6Oj/6Kj + o/+ioqL/oqKi/6Kiof+hoaH/oaGh/6Ghof+np6j/ubm5/8/Pz//l5eX/9vb24/39/Rz7+/sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPz8/AD9/f0c+fn54+zs7f/b29v/y8vL/76+vv+4uLj/uLi4/7i4uP+4t7f/t7e3/7e2 + t/+2trb/tra2/7a2tv+1tbX/tbS1/7W0tf+0tLT/tLS0/7S0tP+0tLT/tLO0/7Ozs/+zs7P/s7Kz/7Ky + sv+ysrL/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+wsbH/sLCw/7CwsP+wr7D/r6+v/6+vr/+vrq7/rq6u/66u + rv+urq7/rq6u/62trv+tra3/ra2s/6ysrP+srKz/rKyr/6urq/+rq6v/qqqr/6qqqv+qqqr/qqqq/6qq + qv+qqqr/qqmp/6mpqf+pqKn/qKio/6inqP+op6j/p6en/6enp/+np6f/p6en/6empv+mpqb/pqal/6Wl + pf+lpaX/pKWl/6SkpP+kpKT/pKSk/6SkpP+kpKT/pKOk/6Ojo/+jo6P/oqKj/6Giov+hoqL/oaGh/6io + qP+5ubn/z9DP/+bm5v/29vbj/f39HPv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Rz5+fnj7e3t/9zc + 3P/Ly8v/vr6+/7i4uf+4uLj/uLi4/7i4uP+3uLj/uLe4/7e3t/+3t7f/tre2/7a2tv+2trX/tbW1/7W1 + tf+0tbX/tLS0/7S0tP+0tLT/tLS0/7S0tP+ztLP/s7Oz/7Ozsv+zsrL/srKy/7Kysf+xsbH/sbGx/7Gx + sf+xsbH/sLGw/7CwsP+vsLD/r7Cv/6+vr/+vr6//rq6v/66urv+urq7/rq6u/62urv+trq3/ra2t/62t + rf+srKz/rKys/6yrq/+sq6v/q6ur/6qrqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6mpqf+pqan/qKip/6io + qP+oqKj/p6in/6enp/+np6f/p6en/6enp/+npqb/pqam/6ampv+lpqX/paWl/6Slpf+lpKX/pKSk/6Sk + pP+kpKT/pKSk/6SjpP+jo6P/o6Oj/6Kiov+ioqL/qaip/7m5uf/Qz8//5ubm//b29uP9/f0c+/v7AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD8/PwA/f39HPn5+ePt7e3/3Nzc/8zMzP+/v7//ubm5/7m5uf+4ubj/uLi4/7i4 + uP+4uLj/uLi4/7i3uP+3t7f/t7e3/7a3tv+2trb/tra2/7W2tf+1tbX/tbW0/7S0tP+0tLT/tLS0/7S0 + tP+ztLT/tLOz/7Ozs/+zs7P/srKy/7Kysv+ysbL/sbGx/7Gxsf+xsbH/sbGx/7CxsP+wsLD/r7Cw/7Cw + sP+vr6//r66v/6+urv+vrq7/rq6u/66urv+urq7/ra2t/62trf+tra3/rKys/6ysrP+srKz/q6ur/6ur + q/+rqqv/qqqq/6qqqv+qqqr/qqqq/6qqqf+pqan/qamp/6ipqP+oqKj/qKin/6eop/+np6f/p6en/6en + p/+np6f/pqen/6ampv+mpqb/pqWm/6Wlpf+lpaX/pKWk/6SkpP+kpKT/pKSk/6SkpP+jo6P/o6Oj/6Oj + o/+pqqn/urq6/9DQ0P/m5ub/9vb24/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD9/f0c+fn54+3t + 7f/c3Nz/zMzM/7+/v/+6urr/urm6/7m5uf+5ubn/ubi5/7i4uP+4uLj/uLi4/7i4uP+3uLf/t7e3/7e3 + t/+2trf/tra2/7a2tv+1tbb/tbW1/7S1tP+0tbT/tLS0/7S0tP+0tLT/tLS0/7O0s/+zs7P/s7Oz/7Ky + sv+ysrL/srGx/7Gxsf+xsbH/sbGx/7Gxsf+xsLD/sLCw/7CwsP+vr7D/r6+v/6+vr/+urq//rq6u/66u + rv+urq7/rq6u/66trv+tra3/ra2t/62srf+srKz/rKys/6yrq/+rq6v/q6qr/6qqqv+qqqr/qqqq/6qq + qv+qqqr/qamp/6mpqf+pqaj/qKio/6ioqP+oqKj/p6eo/6enp/+np6f/p6en/6enpv+mp6b/pqam/6al + pf+lpaX/paWl/6SlpP+kpKT/pKSk/6SkpP+kpKT/pKSk/6qqqv+6u7r/0NDQ/+bm5v/29vbj/f39HPv7 + +wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/Pz8AP39/Rz5+fnj7e3t/93d3f/MzMz/wMDA/7q7u/+6urr/urq6/7q6 + uv+5ubn/ubm5/7i4uf+4uLj/uLi4/7i4uP+4uLj/t7e4/7e3t/+3t7f/t7a3/7a2t/+2tbb/tbW2/7W1 + tf+1tbX/tLS0/7S0tP+0tLT/tLS0/7S0tP+zs7T/s7Oz/7Ozsv+ysrL/srKy/7Kxsv+xsbH/sbGx/7Gx + sf+xsbH/sbGx/7CwsP+wsLD/sK+w/6+vr/+vr6//rq+u/66urv+urq7/rq6u/66urv+urq3/ra2t/62t + rf+traz/rKys/6ysrP+rq6v/q6ur/6urq/+qqqr/qqqq/6qqqv+qqqr/qqqq/6qpqf+pqan/qamp/6io + qP+oqKj/qKeo/6enp/+np6f/p6en/6enp/+np6b/pqam/6ampv+mpqb/paWl/6Wlpf+lpKX/pKSk/6Sk + pP+kpKT/q6ur/7u8u//R0dH/5ubm//b29uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA/f39HPn5 + +ePt7e3/3d3d/83Nzf/AwcD/u7u7/7u7u/+7u7v/uru6/7q6uv+5urn/urm5/7m5uf+5ubn/uLi4/7i4 + uP+4uLj/uLi4/7i4uP+4t7f/t7e3/7e2t/+2trb/tra2/7W2tf+1tbX/tbW1/7S1tP+0tLT/tLS0/7S0 + tP+0s7T/tLSz/7Ozs/+zs7P/srKy/7Kysv+xsrH/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+wsLH/sLCw/6+w + sP+vr6//r6+v/6+vrv+urq7/rq6u/66urv+urq7/rq6u/62trf+tra3/rK2s/6ysrP+srKz/q6yr/6ur + q/+qq6v/q6qq/6qqqv+qqqr/qqqq/6qqqv+qqqn/qamp/6mpqf+oqKj/qKio/6eoqP+np6f/p6en/6en + p/+np6f/p6en/6anpv+mpqb/pqWm/6Wlpf+lpaX/paWl/6SlpP+rq6v/vLy8/9HR0f/m5ub/9vb24/39 + /Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/AD+/f4c+fn54+3t7f/d3d3/zc3O/8HBwf+7u7z/u7u7/7u7 + u/+7u7v/u7u7/7u6uv+6urr/urq6/7m5uf+5ubn/ubm5/7m4uP+4uLj/uLi4/7i4uP+4t7j/t7e3/7e3 + t/+2t7b/tra2/7a2tv+2tbb/tbW1/7W0tf+1tLT/tLS0/7S0tP+0tLT/tLS0/7Ozs/+zs7P/s7Oy/7Ky + sv+ysrL/sbKy/7Gysf+xsbH/sbGx/7Gxsf+xsbH/sbCw/7CwsP+wsLD/r7Cv/6+vr/+ur67/rq6u/66u + rv+urq7/rq6u/66trv+tra3/ra2t/62srf+srKz/rKys/6usq/+rq6v/q6ur/6urqv+qqqr/qqqq/6qq + qv+qqqr/qqmp/6mpqf+pqan/qKio/6ioqP+oqKj/p6en/6enp/+np6f/p6en/6enp/+mp6b/pqam/6al + pv+lpaX/paWl/6yrq/+8vLz/0dHR/+fn5//29vbj/f39HPv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP/+ + /xz5+fnj7e3t/97e3f/Ozs7/wcLB/7y8vP+8vLz/vLy7/7u7u/+7u7v/u7u7/7u7u/+7urr/urq6/7q6 + uv+5ubr/ubm5/7m5uf+4ubj/uLi4/7i4uP+4uLj/uLi4/7e4t/+3t7f/t7e3/7a2tv+2trb/tba1/7W1 + tf+1tbX/tbW0/7S0tP+0tLT/tLS0/7S0tP+0s7T/s7Oz/7Ozs/+zsrL/srKy/7Gysv+xsbL/sbGx/7Gx + sf+xsbH/sbGx/7Cwsf+wsLD/sLCw/6+vr/+vr6//rq+v/66vrv+urq7/rq6u/66urv+urq3/ra2t/62t + rf+tra3/rKys/6ysrP+sq6z/q6ur/6urqv+rqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+pqan/qamp/6io + qP+oqKj/qKin/6enp/+np6f/p6en/6enp/+np6f/pqan/6ampv+mpqb/rKys/728vf/S0tL/5+fn//b2 + 9uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPn5+ePu7u7/3t7e/8/Oz//DwsL/vb29/728 + vf+8vLz/vLy8/7u7u/+7u7v/u7u7/7u7u/+7urv/u7q7/7q6uv+5urr/ubq5/7m5uf+5uLn/uLi4/7i4 + uP+4uLj/uLi4/7i4uP+4uLf/t7e3/7e3t/+2t7b/tra2/7a2tf+1trX/tbW1/7W0tf+0tLT/tLS0/7S0 + tP+0tLT/s7Oz/7Ozs/+zs7P/srKz/7Kysv+ysrH/sbGx/7Gxsf+xsbH/sbGx/7Gxsf+xsLH/sLCw/7Cw + sP+wr7D/r6+v/6+vr/+urq7/rq6u/66urv+urq7/rq6u/62urf+tra3/ra2t/62srf+srKz/rKys/6ur + q/+rq6v/qqur/6qqqv+qqqr/qqqq/6qqqv+qqqn/qamp/6mpqf+oqan/qKio/6ioqP+np6f/p6en/6en + p/+np6f/p6en/6enp/+tra3/vb29/9LS0v/n5+f/9vb24/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD+/v4c+fn54+7u7v/e3t7/z8/P/8PDw/++vr7/vb29/729vf+8vL3/vLy8/7y8vP+8u7v/u7u7/7u7 + u/+7u7v/u7u7/7u7uv+6urr/urq6/7m6uf+5ubn/ubi5/7i4uP+4uLj/uLi4/7i4uP+4uLj/t7e4/7e3 + t/+3t7f/tra3/7a2tv+2trb/tbW2/7W1tf+1tbT/tLS0/7S0tP+0tLT/tLS0/7O0tP+zs7P/s7Oz/7Kz + sv+ys7L/srKy/7Kxsv+xsbH/sbGx/7Gxsf+xsbH/sLGw/7CwsP+wsLD/r6+v/6+vr/+ur6//r66u/66u + rv+urq7/rq6u/66urv+tra3/ra2t/62trf+srKz/rKys/6usq/+rq6v/q6ur/6uqq/+qqqr/qqqq/6qq + qv+qqqr/qqqq/6mpqf+pqan/qamo/6ioqP+oqKj/p6en/6enp/+np6f/p6en/66urv++vb7/09LS/+fn + 5//29vbj/f39HPv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz5+fnj7u7u/9/f3//Pz8//w8PD/76+ + vv++vr7/vb2+/729vf+9vb3/vL28/7y8vP+8vLz/u7y7/7u7u/+7u7v/u7u7/7u7u/+7u7v/uru6/7q6 + uv+6urr/ubm5/7m5uf+4uLj/uLi4/7i4uP+4uLj/uLi4/7i3t/+3t7f/t7e3/7a2t/+2trb/tra2/7W1 + tv+1tbX/tbS1/7S0tP+0tLT/tLS0/7S0tP+0tLT/s7O0/7Ozs/+zsrL/srKy/7Kysv+ysbH/sbGx/7Gx + sf+xsbH/sbGx/7CxsP+wsLD/sLCw/6+vsP+vr6//r6+v/6+urv+urq7/rq6u/66urv+trq7/rq6t/62t + rf+tra3/rK2s/6ysrP+srKz/q6ur/6urq/+qqqv/qqqq/6qqqv+qqqr/qqqq/6qpqv+pqan/qamp/6mp + qP+oqKj/p6io/6eoqP+nqKj/rq6u/76+vv/T09P/5+fn//b29uP9/f0c+/v7AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD9/f0A/v7+HPn5+ePu7u7/39/f/9DP0P/Dw8T/vr6+/76+vv++vr7/vr6+/76+vv+9vb3/vb29/729 + vP+8vLz/vLy8/7u7vP+7u7v/u7u7/7u7u/+7u7v/uru7/7q6uv+6urr/urm5/7m5uf+5ubn/ubi4/7i4 + uP+4uLj/uLi4/7i4uP+4uLj/t7e3/7e3t/+2t7b/tra2/7a2tv+1tbX/tbW1/7W1tf+0tLT/tLS0/7S0 + tP+0tLT/tLS0/7Ozs/+zs7P/s7Oz/7Kysv+ysrL/srKy/7Gxsf+xsbH/sbGx/7Gxsf+xsLH/sLCw/7Cw + sP+wsK//r6+v/6+vr/+urq7/rq6u/66urv+urq7/rq6u/62urf+tra3/ra2t/6ysrP+srKz/q6ys/6us + q/+rq6v/q6qr/6qqqv+qqqr/qqqq/6qqqv+qqqr/qaqp/6mpqf+oqan/qKio/6ioqP+urq7/vr6+/9PT + 0//n6Oj/9vf34/39/Rz7+/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+fn54+7u7v/f39//0NDQ/8TE + xP+/v7//v7++/76+vv++vr7/vr6+/76+vv++vr7/vb69/729vf+9vbz/vLy8/7y8vP+8vLz/u7u7/7u7 + u/+7u7v/u7u7/7u7u/+6urr/urq6/7m6uv+6ubn/ubm5/7m4uP+4uLn/uLi4/7i4uP+4uLj/uLe4/7e3 + t/+3t7f/t7e2/7a2tv+2trb/tbW1/7W1tf+1tbX/tLW0/7S0tP+0tLT/tLS0/7S0tP+0s7P/s7Oz/7Oz + s/+ysrL/srKy/7Gysv+xsbH/sbGx/7Gxsf+xsbH/sbGx/7CwsP+wsLD/sK+w/6+vr/+vr6//r66u/66u + rv+urq7/rq6u/66urv+ura7/rq2t/62trf+sraz/rKys/6ysrP+rq6v/q6ur/6urqv+qqqr/qqqq/6qq + qv+qqqr/qqqq/6qpqf+pqan/qamp/66ur/++v7//09PT/+jo6P/39/fj/f39HPv7+wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/f39AP7+/hz5+fnj7u7u/9/g3//Q0dH/xcXF/8DAwP+/v7//v7+//7+/vv++vr7/vr6+/76+ + vv++vr7/vr6+/76+vf+9vb3/vb29/728vP+8vLz/vLy8/7u7vP+7u7v/u7u7/7u7u/+7urv/u7q6/7q6 + uv+6urn/ubm5/7m5uf+4uLn/ubi5/7i4uP+4uLj/uLi4/7i3t/+3t7f/t7e3/7a3t/+2trb/tra2/7W2 + tv+1tbX/tbW1/7W0tf+0tLX/tLS0/7S0tP+0tLT/tLO0/7Ozs/+zs7P/srOy/7Kysv+ysrL/sbKx/7Gx + sf+xsbH/sbGx/7Gxsf+wsLD/sLCw/7CwsP+vr6//r6+v/66urv+urq7/rq6u/66urv+urq7/rq6t/62t + rf+tra3/rayt/6ysrP+srKz/rKus/6urq/+rq6v/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqar/r6+v/7+/ + wP/U09T/6Ojo//f39+P9/f4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPn5+ePu7u7/4ODg/9HR + 0f/FxcX/wcDB/8DAwP/AwMD/wMDA/8HBwf/CwsL/w8PD/8PDw//Dw8P/wsPD/8HBwf/Av8D/vr2+/729 + vf+8vL3/vLy8/7y8vP+7u7v/u7u7/7u7u/+7u7v/u7u7/7u6uv+6urr/urq5/7m6uf+5ubn/ubi5/7i4 + uP+5ubn/urq7/7y8vP+8vLz/vLy8/7y8vP+8vLz/u7y7/7u7u/+7u7v/u7u7/7q7u/+6urv/urq6/7q6 + uv+5ubr/uLi4/7e3t/+1tbX/s7Oz/7Kysv+ysrL/srKy/7Kysv+0tLT/tbW2/7a2tv+2trb/tra2/7W1 + tf+0tLT/srKy/6+wsP+vr67/rq6u/66urv+urq7/r6+v/7Gxsf+ysrL/s7Oz/7Kzsv+ysrL/srGy/7Cw + sP+urq7/q6ys/6qqqv+qqqr/qqqq/6qqqv+wsK//wMDA/9TU1P/o6Oj/9/f34/7+/hz8/PwAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD+/v4c+vr64+/v7//g4OD/0dLS/8XGxv/BwcH/wcDB/8LCwv/FxcX/ysrK/83N + zf/Pz8//z8/Q/8/Pz//Ozs7/zMvM/8jIyP/Dw8P/v7+//729vf+9vb3/vLy8/7y8vP+8vLz/u7u7/7u7 + u/+7u7v/u7u7/7u7uv+7u7r/urq6/7q6uv+6urn/vLy8/8DAwP/ExMT/x8fH/8nJyf/Kysr/ysrK/8nJ + yf/Jycn/ycnJ/8nJyf/Jycn/ycjJ/8jIyP/IyMj/yMjI/8fHx//FxcX/wsLC/729vf+4uLf/tLS0/7Oz + s/+0tLT/ubi4/76+vv/CwsL/xMTE/8XFxf/FxcX/xMTD/8HBwf+8vLz/tra2/7Gxsf+vr6//r6+v/7Ky + sv+4uLj/vb29/8DAwP/CwsL/w8LD/8LCwv/BwcH/vb29/7m5uf+ys7L/ra2t/6urq/+qqqv/qqqq/7Gw + sP/AwMD/1NTU/+jo6P/39/fj/v7+HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz6+vrj7+/v/+Dg + 4P/S0tL/xsbG/8LCwv/DwsL/x8fH/87Ozv/U1NX/2tra/93d3f/f39//397e/93c3f/Z2dn/1NTT/8zM + zP/ExMT/v7+//769vv+9vb3/vb29/728vf+8vLz/vLu8/7y7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/76+ + vv/FxcX/zMzM/9LS0v/W1tb/2dnZ/9vb2v/b29v/29vb/9vb2//a29r/2tra/9ra2v/a2tr/2tra/9ra + 2v/a2tr/2NjY/9XW1v/R0dH/ysrK/8LCwv+5ubn/tbW2/7q6uv/Dw8P/y8vL/9LS0v/W1tb/19fX/9fX + 1//V1dX/0dHR/8rKyv/CwcH/uLi4/7Gxsf+zs7P/vLy7/8XFxf/MzMz/0tLS/9XV1f/W1tb/1dXV/9PT + 0//Pz8//yMfH/76+vv+0tLT/ra2t/6urq/+rq6v/sbGx/8HAwf/U1NT/6Ojo//f39+P+/v4c/Pz8AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD9/f0A/v7+HPr6+uPv7+//4OHh/9LS0v/Gx8b/wsLC/8bFxv/Nzc3/19fX/+Dh + 4P/p6en/7u7u//Dv8P/v7+//7u7u/+jo6P/f39//1tbW/8vLy//CwsL/vr6+/76+vv++vb7/vb29/729 + vf+8vbz/vLy8/7y8vP+7vLv/u7u7/7u7u/++vr//xsbG/9DQ0P/Z2dn/4eHh/+fn5//r6+v/7u7u/+7u + 7v/u7u7/7u7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u3t/+3t7f/s7Oz/5+fn/+Hh4f/Z2dn/zs7O/8PD + w/++vr7/w8PD/87Ozv/a2tr/5OTk/+rq6v/s7Oz/7Ozs/+rp6v/i4uL/2djZ/83Nzf/AwMD/t7e3/7u7 + u//Hx8b/0tLT/93d3f/m5ub/6urq/+vr6//r6+v/6Ojo/+Hh4f/X19f/ysrK/7y8vP+xsbL/rKys/6ys + rP+xsrL/wcHB/9TU1P/o6On/9/f34/7+/hz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+vr64+/v + 7//h4eH/0tPS/8fHx//DxMP/ycnJ/9PT0//f39//6+vr/+fn5//d3d3/3t7e/97e3v/g4OD/8fHx/+rq + 6v/e3t7/0dHR/8XGxf+/v7//vr6+/76+vv++vr7/vr6+/769vf+9vb3/vb29/7y8vP+8vLz/vb29/8TE + xf/Qz9D/2tvb/+bm5v/x8fH/+vr6/+zs7P/d3d3/3d3d/93d3f/e3d7/3d7e/97e3v/e3t7/3t7e/93e + 3f/d3d3/3d3d/+Hh4f/19fX/8vLy/+fn5//a29v/zs7P/8nJyf/MzMz/19jY/+fn5//k5OT/29vb/93d + 3f/d3d3/39/f/+7u7v/m5ub/1tbW/8fHx/+/v7//xMTE/9LS0f/g4OD/7u7u/+np6f/c3Nz/3d3d/93d + 3P/e3t7/7e3t/+Pj4//R0dH/wcLC/7W1tf+ura7/rK2s/7Kysv/BwcH/1dXV/+np6f/39/fj/v7+HPz8 + /AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz6+vrj8PDv/+Hi4f/T09P/yMjI/8XFxP/Ly8v/19fX/+Tk + 5P/29vb/i4uL/xcXF/8cHBz/Ghoa/zMzM//g4OD/8/Pz/+Pj4//V1dX/yMjI/8DAwP++v77/vr6+/76+ + vv++vr7/vr6+/769vv+9vb3/vb29/729vf/BwMH/y8rL/9jY2P/l5eX/8/Pz/9zc3P+Ghob/S0tL/xoa + Gv8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwcHP8bGxv/JSUl/3d3d//W1tb/8fHx/+bm + 5v/Z2dn/09PT/9XV1f/f39//8/Pz/4qKiv8XFxf/HBwc/xoaGv8zMzP/39/f//Dw8P/d3d3/zc3N/8fH + x//MzM3/29vb/+zs7P/s7Oz/WVlZ/xkZGf8cHBz/GRkZ/z09Pf/i4uH/6urq/9XV1f/DxMT/tra2/6+v + rv+tra3/s7Oz/8LCwf/V1dX/6enp//f39+P+/v4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPr6 + +uPw8PD/4uLi/9TT1P/Iycn/xcXF/83Nzf/Z2dn/5+fn//n5+f9+fn7/AAAA/wAAAP8AAAD/Ghoa/93d + 3f/29vb/5ubm/9fX1//Kysn/wcHB/7+/v/+/v7//v7+//76+vv++vr7/vr6+/76+vv++vr7/vr6+/8TE + xP/Qz9D/3t7e/+7u7v/r6+v/UVFR/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AQEB/y0tLf/V1dX/8fHx/+Hh4f/c3Nv/3Nzc/+Tk5P/39/f/fn5+/wAA + AP8AAAD/AAAA/xoaGv/d3d3/9PT0/+Hh4f/T09P/z8/P/9TU1P/j4+P/9vb2/6ysrP8KCgr/AAAA/wAA + AP8AAAD/fHx8//f39//n5+f/1NTU/8PDwv+1tbX/rq6u/66urv+0s7P/wsLC/9XW1f/p6en/9/f34/7+ + /hz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+vr64/Dw8P/i4uL/1NTU/8nKyf/Gxsb/zs7O/9ra + 2v/o6Oj/+vr6/35+fv8AAAD/AAAA/wAAAP8aGhr/3d3d//b39//n5+f/2NjY/8vLy//CwsL/wMDA/8DA + wP+/v8D/v7+//7+/v/++vr7/vr6+/76+vv+/v7//xsbG/9PT0//i4uL/9PT0/9HR0f8XFxf/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/4KC + gv/39/f/6Ojo/+Hh4f/h4eH/5+fn//j4+P9+fn7/AAAA/wAAAP8AAAD/Ghoa/93d3f/09PT/4uPj/9jY + 2P/X19f/3Nzc/+vr6//s7Oz/SEhI/wAAAP8AAAD/AAAA/yEhIf/S0tL/9PT0/+Hh4f/Q0ND/v7+//7Ky + sv+urq7/rq6u/7S0tP/Dw8P/1tbW/+np6f/39/fj/v7+HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+ + /hz6+vrj8PDw/+Li4v/V1dX/ysrK/8fHxv/Ozs7/2tra/+np6f/6+vr/fn5+/wAAAP8AAAD/AAAA/xoa + Gv/e3t3/9/f3/+fn5//Y2Nn/y8vL/8LCwv/BwcH/wMHB/8DAwP/AwMD/v8DA/7+/v/+/v7//vr6+/7/A + wP/IyMj/1tXW/+Xl5f/4+Pj/iIiI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/dnZ2//r6+v/s7Ov/5OTk/+Tj5P/o6Oj/+Pj4/35+ + fv8AAAD/AAAA/wAAAP8aGhr/3d3d//T09P/m5ub/39/f/97e3v/j4+P/8/Pz/9XV1f8YGBj/AAAA/wAA + AP8AAAD/bm5u//b29v/r6+v/2tra/8nJyf+6urr/sbGx/6+vr/+vrq//tLS0/8PDw//W1tb/6enp//f3 + 9+P+/v4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + x//l5eX/4uLi/+Dg4P/f39//39/f/9/f3//f39//39/f/97e3v/u7u7//Pz8//T09P/q6ur/4uLi/+Dg + 4P/j4+P/6+vr//r6+v9+fn7/AAAA/wAAAP8AAAD/AAAA/35+fv/6+vr/6Ojo/9nZ2f/Q0ND/z8/P/9fX + 1//h4OH/6Ojo/+7u7v/w8O//8PDw/+/v7//r6+v/5OTk/9zc3P/b29v/39/f/+jo6P/5+fn/fn5+/wAA + AP8AAAD/AAAA/xoaGv/g4OD/9fX1/0tLS/8AAAD/AAAA/wAAAP99fX3/+Pj4/+vr6//c3Nz/zc7N/8HB + wf+5urr/uLm4/7i4uP+4uLj/uLi4/7i4uP+4t7j/t7e4/7e3t/+8vLz/ycnJ/9ra2v/r6+v/+Pj44/39 + /Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c+vr64/Ly8v/m5ub/29vb/9LS0v/Pz8//1dXV/+Df + 4P/s7Oz/+/v7/35+fv8AAAD/AAAA/wAAAP8DAwP/GBgY/xwcHP8cHBz/HBwc/xwcHP8cHBz/HBwc/xwc + HP8cHBz/Ghoa/0tLS/+Hh4f/3d3d//X19f/q6uv/5+fn/+jo6P/t7e3/+vr7/35+fv8AAAD/AAAA/wAA + AP8AAAD/fn5+//r6+v/o6Oj/2dnZ/83Nzf/Kysr/z8/P/9bW1v/b29v/3t7e/+Dg3//g4OD/3t7e/9zc + 3P/X19f/0tLS/9PU0//a2tr/5+fn//n5+f9+fn7/AAAA/wAAAP8AAAD/Ghoa/+Li4v+urq7/CgoK/wAA + AP8AAAD/IyMj/9nZ2f/19fX/5OXl/9bW1v/Hx8f/vb29/7m6uv+6ubn/ubm5/7m4uf+4uLj/uLi4/7i4 + uP+4t7j/uLi4/7y8vP/Jycn/2tra/+zs7P/4+Pjj/f39HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+ + /hz7+/vj8vLy/+fn5//c29v/0tLS/9DQ0P/W1tb/4ODg/+zs7P/7+/v/fn5+/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9RUVH/7Ozs//Ly + 8v/s7Oz/7Ozs/+/v7//7+/v/fn5+/wAAAP8AAAD/AAAA/wAAAP9+fn7/+vr6/+jp6f/a2tr/zczN/8XG + xv/IyMj/zMzM/8/Pz//R0dH/0tLR/9HR0f/R0dH/z8/P/8zMzP/Kysn/zc3N/9jY2P/n5+f/+fn5/35+ + fv8AAAD/AAAA/wAAAP8bGxv/3t7e/3BwcP8AAAD/AAAA/wAAAP9tbW3/+fn5/+3t7f/e3t7/0NDQ/8PC + w/+7u7v/urq6/7q6uv+6ubr/urm5/7m5uf+4ubn/uLi4/7i4uP+4uLj/vL29/8rKyv/a29v/6+vr//j4 + +OP+/v4c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPv7++Py8/P/5+fn/9zc3P/T09P/0NDQ/9bX + 1//g4OD/7Ozs//v7+/9+fn7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/xcXF//S0tL/9/f3//Dw8P/v7+//8fHx//v7+/9+fn7/AAAA/wAA + AP8AAAD/AAAA/35+fv/6+vr/6enp/9ra2v/Nzc3/xcXF/8TExP/FxcX/x8bG/8fHx//Hx8b/xsbG/8bG + xv/GxcX/xMTE/8TEw//Ly8v/2NjY/+fn5//5+fn/fn5+/wAAAP8AAAD/AAAA/x0dHf+8vLz/JCQk/wAA + AP8AAAD/CgoK/6mpqf/4+Pj/5+fn/9jY2P/Kysr/v7+//7u7u/+7u7v/u7u6/7u6u/+6urr/urq6/7m5 + uf+5ubn/ubm4/7i4uf+9vr7/ysrK/9rZ2v/q6ur/+Pj44/7+/hz8/PwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD+/v4c+/v74/Pz8//n5+f/3Nzc/9PT0//R0dH/19fX/+Hg4f/s7Oz/+/v7/35+fv8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/4mJ + if/7+/v/8vLy//Hx8f/y8/P//Pz8/35+fv8AAAD/AAAA/wAAAP8AAAD/fn5+//r6+v/p6en/29ra/87O + zv/Gxsb/xcTE/8TExP/ExMT/xMTD/8PDw//Dw8P/wsLC/8LCwv/CwsL/w8PD/8vLy//Y2Nj/5+fn//n5 + +f9+fn7/AAAA/wAAAP8AAAD/EBAQ/zs7O/8CAgL/AAAA/wAAAP9JSUn/7e3t//Dw8P/h4eH/0tLT/8XF + xf++vb3/vLu8/7u7u/+7u7v/u7u7/7u7u/+6u7r/urq6/7q6uv+5ubn/ubm5/76+vv/Jycn/2NjY/+rq + 6v/4+Pjj/v7+HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz7+/vj8/Pz/+jn6P/c3dz/1NTU/9LR + 0v/X19f/4eHh/+3s7P/8+/v/fn5+/wAAAP8AAAD/AAAA/w0NDf9vb2//gICA/39/f/9+fn7/fn5+/35+ + fv9/f3//goKC/0BAQP8AAAD/AAAA/wAAAP8AAAD/fn5+//z8/P/z8/P/8fHx//Pz8//8/Pz/fn5+/wAA + AP8AAAD/AAAA/wAAAP9+fn7/+vr6/+np6f/b29v/zs7O/8bGxv/FxcX/xcXF/8TExP/ExMT/xMTE/8PD + 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 + AP8aGhr/3d3d//f39//q6ur/5OTl/+Tk5P/o6Oj/9fX1/9fX1/8iIiL/AAAA/wAAAP8AAAD/ICAg/9XV + 1f/y8vL/4eHh/9TU1P/Iycj/wcLC/8HBwf/AwMD/xMXE/9DQ0P/f39//7e7t//n5+eP9/f0c/Pz8AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD9/f0A/v7+HPz8/OP29vb/7u7u/+fm5//g4OD/3t7e/+Hh4v/o6Oj/7+/v//r6 + +v+9vb3/e3t7/319ff99fX3/fX19/319ff99fX3/fX19/319ff99fX3/fX19/319ff99fX3/fX19/319 + ff94eHj/ra2t/+/v7//29vb/7u7u/+np6f/n5+f/6Ojo/+3u7v/19vb/7+/v/62trf94eHj/fX19/319 + ff99fX3/fX19/319ff99fX3/fX19/319ff99fX3/fX19/319ff95eXn/goKC/+Dg4P/5+fn/7u7u/+bm + 5v/i4uL/5OPj/+rq6v/39/f/vLy8/3t7e/99fX3/fX19/4mJif/n5+f/8/T0/+bm5v/f39//3t7e/+Li + 4//t7e3/9vb2/7Gxsf97e3v/fX19/319ff99fX3/xcXF//Py8v/i4uL/1dXV/8nKyv/CwsL/wcHB/8HB + wf/FxcX/0NDQ/9/f3//u7u7/+fn54/39/Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c/Pz84/b2 + 9v/v7+//5+fn/+Dh4f/f39//4eHh/+fm5v/t7e3/9PP0//v7+/////////////////////////////// + //////////////////////////////////////////////7+/v/7+/v/9fX1/+7u7v/o6Oj/4uLi/9/g + 4P/i4uL/5+fn/+7u7v/09PT/+/v7//39/f////////////////////////////////////////////// + //////////////7+/v/8+/v/9vb2/+/v7//n5+f/4ODg/93d3f/f3t//5ubm/+/v7//5+fn///////// + /////////f39//X19f/s7O3/4eHh/9nZ2f/X19f/29vc/+Xl5f/v7+//+fn5//79/f/+/v7//v7+//39 + /f/29vb/6+vr/9/f3//T09P/ycnI/8LCwv/BwcH/wcHB/8bFxf/Q0dD/39/f/+7u7v/5+fnj/f39HPz8 + /AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+/hz8/Pzj9vb2/+/v7//n5+f/4eHh/9/f3//g4OD/5OTk/+np + 6f/u7u7/8vLy//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X1 + 9f/19PX/8/Pz//Dw8P/s7Oz/6Ojn/+Li4v/d3d3/2tra/9zc3P/h4eH/5ubm/+vr6//v7+//8vHy//Pz + 8//09PT/9PT0//T09P/z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8vLy/+/v7//r6+v/5ubm/+Dg + 4P/Z2dr/19fX/9rZ2f/g4OH/5+jo/+3t7f/w8PD/8fHx//Dw8P/u7+7/6+vr/+Tk5P/b29v/09PT/9DQ + 0P/U1NT/3Nzc/+Tk5P/q6ur/7u3u/+/v7//v7+//7e3t/+np6f/i4uL/2dnZ/8/Pz//Hxsb/wsLD/8LC + wv/CwsL/xsbG/9HR0f/g4OD/7u7u//n5+eP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v7+HPz8 + /OP39vb/7+/v/+jo6P/h4uL/39/f/9/f3//i4uH/5eXl/+jp6P/r6+v/7e3t/+7u7v/u7u7/7u7u/+3t + 7v/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs7P/s7Oz/7Ozs/+vr6//q6ur/6Ojo/+Xl5f/h4eH/3d3d/9nZ + 2v/Z2Nj/2dnZ/9zc3P/g4OD/4+Pj/+bm5v/o6Oj/6unp/+rq6v/q6ur/6urq/+rp6f/p6en/6enp/+np + 6f/p6en/6Onp/+jo6P/n5+f/5eXl/+Li4v/e3t7/2dnZ/9TU1P/S0tL/1dXV/9rb2v/f39//4+Pj/+Tk + 5P/k5OT/5OTj/+Li4v/f39//2tva/9TU1P/Nzc3/ysrK/83Ozf/U1NT/2dra/97e3v/g4OH/4uLi/+Li + 4v/g4OD/3d3d/9jY1//R0dH/ycnK/8TFxf/Dw8P/w8PD/8PDwv/Hx8f/0tLS/+Dg4P/u7u7/+fn54/39 + /Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD+/v4c/Pz84/f39v/v8O//6Ojo/+Li4v/g4OD/39/f/9/g + 4P/h4eH/4+Pk/+Xl5f/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eXl/+Xl5f/l5OT/5OTk/+Tk + 5P/k5OT/5OTk/+Li4v/h4eH/397f/9zc3P/a2tn/2dnZ/9nZ2f/Z2Nn/2dnZ/9ra2v/c3N3/3t7e/+Dg + 4P/h4eH/4eHh/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/39/f/9/f3//e39//3t7e/97e3v/c3Nz/2tra/9fX + 1//U09T/0tLS/9LS0v/S0tL/1dXV/9jX1//Y2Nj/2NfY/9jY2P/Y2Nf/19fW/9XV1f/S0tL/zc3N/8rK + yv/IyMj/ycnJ/8zMzf/Q0ND/09PT/9XU1f/V1dX/1dXV/9TU1P/S0dH/zs7O/8rKyv/Gxcb/xMXE/8TE + xP/ExMT/w8PD/8fHx//S0tL/4ODg/+7u7v/5+fnj/f39HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP7+ + /hz8/Pzj9/f3//Dw8P/p6en/4+Pj/+Hg4P/g4OD/3+Dg/9/g4P/g4OD/4eHg/+Hh4f/h4eH/4OHg/+Dg + 4P/g4OD/4ODg/9/g4P/f4N//39/f/97e3v/e3t7/3t7e/97e3v/e3t7/3d3d/9zc3P/b29v/2tra/9ra + 2v/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2tr/2tra/9ra2v/a2tr/2trZ/9nZ2f/Z2dn/2dnY/9jY + 2P/Y2Nj/19fY/9fX1//X19f/19fX/9bW1v/V1dT/09TT/9PT0v/S0tL/0tLS/9LS0v/S0tL/0NDQ/8/P + z//Qz8//z8/P/8/Pz//Oz87/zc7N/8zMzP/Kysr/ycnJ/8nJyf/Jycn/ycjJ/8rKyv/Ly8v/zMvL/8vL + y//Ly8v/ysrL/8rJyf/IyMj/xsbG/8XGxv/FxcX/xcXF/8XFxP/ExMT/yMjI/9PT0v/h4eD/7u/v//n5 + +eP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/v3+HPz8/OP39/f/8PDw/+np6f/k5OT/4eLh/+Hh + 4f/h4OD/4ODg/9/g4P/f3+D/39/f/9/f3//f39//39/f/97e3v/e3t7/3t7e/97d3f/d3d3/3N3d/9zc + 3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nvb/9vb2//b2tv/2tra/9ra2v/a2tr/2dnZ/9nZ2f/Z2dn/2dnZ/9jZ + 2f/Y2Nj/2NjY/9jX2P/X19f/19bX/9bX1v/W1tb/1tbW/9XV1v/V1dX/1dXV/9XV1f/V1dX/1dTV/9TU + 1P/U1NT/09TT/9PT0//T09P/0tLS/9DQ0P/Nzc3/zc3N/83Nzf/MzM3/zMzM/8zMzP/Ly8v/y8vL/8vK + yv/Kysr/ysrK/8nJyf/Jycn/ycnJ/8jIyP/IyMj/x8fI/8fHx//Hx8f/x8fH/8fHx//Gx8b/xsbG/8bG + xv/Gxcb/xcXF/8XFxf/Jycn/09PT/+Hh4f/v7+//+fn54/39/Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39 + /QD9/f0c/Pz84/f39//x8PD/6erp/+Tk5P/i4uL/4eLh/+Hh4f/h4eH/4OHh/+Dg4P/g4OD/4N/f/9/f + 3//f39//39/f/9/f3//f3t//3t7e/97e3v/d3t3/3d3d/93d3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb + 2//b29v/29vb/9rb2v/a2tr/2trZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dj/2djY/9jY2P/Y19j/19fX/9fX + 1//W19b/1tbW/9bW1v/V1tX/1dXV/9XV1f/V1dX/1dXU/9TU1f/U1NT/1NTU/9PT0//R0dH/zs7O/83N + zf/Nzc3/zc3N/83Nzf/Nzc3/zMzM/8zMzP/MzMv/y8vL/8vLy//Ly8v/ysrK/8rKyv/Jysr/ycnJ/8jJ + yf/IyMn/yMjI/8jIyP/Hx8j/x8fH/8fHx//Hx8f/x8bH/8bGx//Gxsb/xsXG/8nJyf/U1NT/4eHh/+/v + 7//5+fnj/f39HPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/Rz8/Pzj+Pj4//Hx8f/q6ur/5eXl/+Pj + 4//i4uL/4uLi/+Li4f/h4eH/4eHh/+Hg4f/g4OD/4ODg/9/g3//f39//39/f/9/f3//f39//3t/e/97e + 3v/e3t7/3t3d/93d3f/d3d3/3N3c/9zc3P/c3Nz/3Nzc/9zc3P/c29z/29vb/9vb2//b29r/2tra/9rZ + 2v/a2dr/2dnZ/9nZ2f/Z2dn/2dnZ/9jZ2P/Y2Nj/19jY/9fX1//X19f/1tbW/9bW1v/W1tb/1dXW/9XV + 1f/V1dX/1dXV/9XV1f/V1NT/0tLS/8/Pz//Ozs7/zs7O/87Ozv/Nzc7/zc3N/83Nzf/Nzc3/zc3N/8zM + zP/MzMz/zMzM/8vLy//Ly8v/y8vK/8rKyv/Kysr/ysnK/8nJyf/Jycn/yMnI/8jIyP/IyMj/yMfH/8fH + x//Hx8f/x8fH/8fHx//Gxsb/ysrK/9XV1f/i4uL/7+/v//n5+eP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD9/f0A/f39HPz8/OP4+Pj/8fHy/+vq6v/l5eX/4+Pj/+Pj4//j4+L/4uLi/+Li4v/i4uL/4eHi/+Hh + 4f/h4eD/4ODg/+Dg4P/g39//39/f/9/f3//f39//39/f/9/f3v/e3t7/3t7e/97d3f/d3d3/3d3d/9zc + 3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nvc/9vb2//b29v/2tvb/9ra2v/a2dr/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ + 2f/Y2Nj/2NjY/9jY2P/X19f/19fX/9fW1v/W1tb/1tbW/9XV1f/V1dX/1dXV/9PT0//Q0ND/0NDP/8/P + z//Pz8//z8/O/87Ozv/Ozs3/zc3N/83Nzf/Nzc3/zc3N/83Nzf/NzMz/zMzM/8zMzP/My8v/y8vL/8vL + y//Kysv/ysrK/8rJyv/Jycn/ycnJ/8nIyf/IyMj/yMjI/8jHx//Hx8f/x8fH/8fHx//Ly8v/1dXV/+Li + 4v/v7+//+fn54/39/Rz8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f0c/Pz84/j4+P/x8vL/6+vr/+bm + 5f/k5OP/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//i4uL/4uLi/+Lh4f/h4eH/4eHh/+Dg4P/g4OD/3+Dg/9/f + 4P/f39//39/f/9/f3//f39//3t7e/97e3v/d3t3/3d3d/93d3P/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zb + 3P/b29v/29vb/9ra2//a2tr/2tna/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2djY/9jY2P/Y2Nj/19fX/9fX + 1//X19f/1tbW/9bW1v/U09P/0dHR/9HR0f/R0ND/0NDQ/9DQ0P/Qz8//z8/P/8/Pzv/Ozs7/zs7O/83N + zf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/8zMzP/MzMz/y8zL/8vLy//Ly8v/ysrK/8rKyv/Kycr/ycnJ/8nJ + yf/Iycn/yMjI/8jIyP/Ix8j/x8fI/8vLy//W1db/4+Li//Dw7//5+fnj/f39HPz8/AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/f39AP39/Rz8/Pzj+Pj4//Ly8v/r6+v/5ubm/+Tk5P/k5OT/4+Pk/+Pj4//j4+P/4+Pj/+Pj + 4//j4+L/4uLi/+Li4v/h4uH/4eHh/+Hh4f/h4OD/4ODg/+Dg4P/f39//39/f/9/f3//f39//397f/97e + 3v/e3t7/3t7e/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c29z/29vb/9vb2//b2tv/2tra/9ra + 2v/a2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9jZ2f/Y2Nj/2NjY/9jY1//X19f/1dTV/9LS0v/R0tH/0tLS/9LR + 0f/R0dD/0NHQ/9DQ0P/Q0M//z8/P/8/Pz//Oz8//zs/O/87Ozv/Nzc7/zc3N/83Nzf/Nzc3/zc3N/83N + zP/MzMz/zMzM/8vMzP/Ly8v/y8vL/8vKy//Kysr/ysrK/8nJyf/Jycn/ycnJ/8jIyP/IyMj/zc3N/9jY + 2P/l5eX/8fHx//r6+uP9/f0c/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/f39HPz8/OP4+Pj/8vLy/+zr + 7P/n5+f/5eXl/+Tl5f/k5OT/5OTk/+Tk4//j4+P/4+Pj/+Pj4//j4+P/4uPj/+Li4v/h4uL/4eLh/+Hh + 4f/h4eH/4eDg/+Dg4P/f4OD/39/f/9/f3//f39//39/f/9/f3//f3t//3t7e/97e3v/d3d3/3d3c/9zd + 3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb3P/b29v/29vb/9ra2v/a2tr/2dra/9nZ2f/Z2dn/2dnZ/9jZ + 2f/Z2Nn/2NjY/9XV1f/T09P/09PT/9PT0//S0tL/0tLS/9HS0f/R0dH/0dHR/9DQ0P/Q0ND/z9DQ/8/Q + z//Pz8//zs/P/87Ozv/Ozc7/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zMzM/8zMzP/My8z/y8vL/8vL + y//Kysr/ysrK/8nJyv/Jycn/ycnJ/8rLyv/S0tL/3d3d/+jp6f/z8/T/+/v74/7+/hz9/f0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP39/QD9/f0c/Pz84/j4+P/y8vL/7Ozs/+fn5//m5ub/5ebm/+Xl5f/l5eX/5OTk/+Tk + 5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Lj4//i4uL/4uLi/+Li4f/h4eH/4OHh/+Dh4P/g4OD/4ODg/9/f + 3//f39//39/f/9/f3//f3t//397e/97e3v/e3t7/3d3d/93d3f/d3N3/3dzc/9zc3P/c3Nz/3Nzc/9zc + 3P/b29z/29vb/9rb2//a2tr/2tra/9ra2v/Z2dn/2dnZ/9nZ2f/Y2Nj/1tbW/9bW1v/V1tX/1dXV/9XV + 1f/V1dX/1dTU/9TU1P/U1NT/1NTT/9PT0//T09P/09PS/9LS0v/S0tL/0tLS/9HR0f/R0dH/0dHQ/9HQ + 0P/Q0ND/0NDQ/9DQ0P/Q0ND/z8/P/8/Pz//Pz8//zs7P/87Ozv/Ozc3/zc3N/83Nzf/Ozs7/09PT/9vb + 2//l5eX/7+7u//f39//7+/vg+fn5G/n5+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/Rz8/Pzj+Pj4//Ly + 8v/t7e3/6Ojo/+bm5v/m5ub/5ebm/+Xl5v/l5eX/5eXk/+Tk5P/k5OT/4+Tj/+Pj4//j4+P/4+Pj/+Pj + 4//j4uP/4uLi/+Li4f/h4uH/4eHi/+Hh4f/h4OD/4ODg/+Df4P/g39//39/f/9/f3//f39//39/f/97f + 3v/e3t7/3t7e/93d3v/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/29vb/9vb2//b29v/2trb/9ra + 2v/a2dn/2tra/+Dg4P/h4uH/4eHh/+Hh4f/h4eD/4OHg/+Dg4P/g4OD/4ODg/+Dg3//g39//39/f/9/f + 3//f39//39/f/97e3v/e3t7/3t7e/97e3v/d3d3/3d3d/93d3f/d3d3/3d3c/9zc3P/c3Nz/3Nzc/9vc + 3P/b29v/29vb/9vb2//b29v/3Nvb/9/f3//k5OX/6urq//Hx8f/39/f/+Pj49+Xl5YXAwMAH0dHRAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD9/f0A/f39HPz8/OP4+Pn/8/Pz/+3t7f/p6Oj/5ubm/+bm5v/m5ub/5ubm/+bm + 5v/m5eX/5eXl/+Xk5f/k5OT/5OTk/+Pk4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Li4v/i4uL/4uLh/+Hh + 4f/h4eH/4ODg/+Dg4P/g4OD/4N/f/9/f3//f39//39/f/9/f3//f39//3t7e/97e3v/e3d3/3d3d/93d + 3f/d3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vc2//b3Nv/2tva/9ra2v/b29v/4eHh/+Tj4//j4+P/4+Lj/+Li + 4v/i4uL/4uLi/+Li4v/i4uH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4OH/4ODg/+Dg4P/g4OD/4ODg/+Dg + 4P/f4N//39/f/9/e3//e3t7/3t7e/97e3v/e3t7/3d7e/93d3f/d3d3/3d3d/97e3v/h4eH/5ubm/+zs + 7P/y8vL/+Pf4//j4+Pfk5OSHs7OzDcfHxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f4c/Pz84/n4 + +f/z8/P/7u7u/+np6f/n5+f/5+fn/+bn5v/m5ub/5ubm/+bm5v/m5ub/5uXl/+Xl5f/l5eX/5OTk/+Tk + 5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4uL/4uLi/+Li4f/h4eH/4eHh/+Hg4f/g4OD/4ODg/9/g + 3//f39//39/f/9/f3//f39//3t7f/97e3v/e3t7/3d3e/93d3f/d3dz/3Nzc/9zc3P/c3Nz/3Nzc/9zc + 3P/c29v/29vb/9zb3P/i4uL/5OTk/+Tk4//j4+P/4+Pj/+Pj4v/i4uL/4uLi/+Li4v/i4uL/4eHi/+Hh + 4f/h4eH/4eHh/+Hh4f/h4eH/4eDh/+Dg4P/g4OD/4ODg/9/g4P/f39//39/f/9/f3//e3t//3t7e/97e + 3v/e3t7/3t7e/93d3f/e3t//4uLi/+fn5//s7Oz/8vLy//j4+P/4+Pj25OTkh7Ozsw3Hx8cAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+fn5//T09P/u7u7/6urq/+jo6P/o5+j/5+fn/+fn + 5//m5ub/5ubm/+bm5v/m5ub/5ubm/+Xm5f/l5eX/5eXk/+Tk5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj + 4//j4+P/4uLj/+Li4v/i4uL/4eHi/+Hh4f/h4OH/4ODg/+Dg4P/f4N//39/f/9/f3//f39//39/f/9/e + 3//e3t7/3t7e/97d3v/d3d3/3d3d/9zd3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/+Li4v/k5OT/5OTk/+Tk + 5P/k4+T/5OPj/+Pj4//j4+L/4uLj/+Li4v/i4uL/4uLi/+Li4v/h4eL/4eHh/+Hh4f/h4eH/4eHh/+Dh + 4f/g4OD/4ODg/+Dg4P/g4OD/3+Dg/9/g3//f39//3t/f/97e3v/e3t7/39/f/+Pi4v/n5+f/7O3t//Ly + 8v/4+Pj/+Pj49ebm5oGzs7MMycnJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7/HP39 + /eP5+fn/9PT0/+/u7//q6ur/6Onp/+jp6P/o6Oj/6Ojo/+fn5//n5+f/5+fm/+bm5v/m5ub/5ubm/+bm + 5v/m5eb/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4v/i4uL/4uLi/+Hh + 4f/h4eH/4OHh/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/9/f3//f39//3t7e/97e3v/d3t7/3d3e/93d + 3f/c3N3/3Nzc/9zc3P/c3Nz/4uPi/+Xl5f/k5OT/5OTk/+Tk5P/k5OT/4+Tk/+Pj4//j4+P/4+Lj/+Li + 4v/i4uL/4uLi/+Li4v/i4uL/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eD/4ODg/+Dg4P/g4OD/4ODg/+Dg + 3//f39//39/f/+Dg4P/k4+P/6Ojo/+3t7f/y8vL/+Pj4//j4+PXm5uaBs7OzC8nJyQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/n5+f/09PT/7+/v/+vq6//p6en/6enp/+np + 6f/o6Oj/6Ojo/+jn6P/n5+f/5+fn/+bn5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eTl/+Tk + 5P/k5OT/4+Tj/+Pj4//j4+P/4+Pj/+Pj4//i4+L/4uPi/+Li4v/h4uH/4eHh/+Hh4f/g4eD/4ODg/+Df + 4P/f39//39/f/9/f3//f39//39/f/97e3//e3t7/3d7e/93d3f/d3d3/3N3c/93d3f/j4+P/5eXl/+Xk + 5f/l5eT/5eTk/+Tk5P/k5OT/5OTk/+Pk5P/k4+T/4+Pj/+Lj4//i4uL/4uLi/+Li4v/i4uL/4uLi/+Li + 4f/h4eH/4eHh/+Hh4f/h4eH/4OHh/+Dg4f/g4OD/4ODg/+Dg4P/h4eH/5OTk/+jo6P/t7e3/8/Py//j4 + +P/4+Pj15ubmgbOzswvJyckAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+ + /hz9/f3j+fn5//T09P/v7+//6+vr/+np6f/p6en/6enp/+np6f/p6ej/6Ono/+jo6P/o6Oj/5+fn/+fn + 5//n5+f/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk5f/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj + 4//j4+P/4uLj/+Li4v/i4uL/4uLh/+Hh4f/h4eH/4ODh/+Dg4P/g4OD/39/f/9/f3//f39//39/f/9/f + 3//f3t7/3t7e/93e3v/d3d3/3t3d/+Pj4//l5eX/5eXl/+Xl5f/l5eX/5OTl/+Tk5P/k5OT/5OTk/+Tk + 5P/k5OT/4+Tj/+Pj4//j4uP/4+Li/+Li4v/i4uL/4uLi/+Li4f/h4uH/4eHh/+Hh4f/h4eH/4eHh/+Dh + 4P/g4OD/4eHh/+Tk5P/p6On/7e3t//Pz8//4+Pj/+fn59Obm5oGzs7MLycnJAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP5+vr/9fX1/+/w8P/s7Oz/6urq/+rq + 6v/q6en/6enp/+np6f/p6en/6enp/+jo6P/o6Oj/5+jo/+jn6P/n5+f/5+bn/+bm5v/m5ub/5ubm/+bm + 5v/m5ub/5eXl/+Xl5f/k5eX/5OTk/+Pk5P/j4+T/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//i4uL/4uLi/+Hh + 4v/h4eH/4eHh/+Dg4f/g4OD/4ODg/9/g3//f39//39/f/9/f3//f39//3t7e/97e3v/e3t7/5OTk/+bm + 5v/l5eb/5eXl/+Xl5f/l5eX/5eXl/+Xl5P/l5eT/5OTk/+Tk5P/k5OT/5OTk/+Tj5P/j4+P/4+Pj/+Li + 4v/i4uL/4uLi/+Li4v/i4uL/4eLi/+Hh4f/h4eH/4eHh/+Li4v/l5eX/6enp/+7u7v/z8/P/+Pj4//n5 + +fPo6Oh8sbGxCsrKygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD+/v4c/f394/r6+v/19fX/8PDw/+zs7P/r6+v/6urr/+rq6v/q6un/6enp/+np6f/p6en/6enp/+jp + 6f/o6On/6Ojo/+jn6P/n5+f/5+fn/+fm5//m5ub/5ubm/+bm5v/m5ub/5ubm/+bl5f/l5eX/5eXl/+Tk + 5P/k5OT/5OPk/+Tj4//j4+P/4+Pj/+Pj4//j4+P/4uPi/+Li4v/i4eH/4eHh/+Hh4f/g4eH/4ODg/+Dg + 4P/f3+D/39/f/9/f3//f39//397f/9/f3//k5OT/5ubm/+bm5v/m5ub/5ubl/+bl5f/l5eX/5eXl/+Xl + 5f/l5eX/5eXk/+Xk5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj4//i4+P/4uLi/+Li4v/i4uL/4uLi/+Li + 4f/i4uL/5ebm/+rq6v/u7u7/8/Tz//j4+P/5+fnz6Ojoe7GxsQnKysoAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+vr6//X19f/w8PH/7e3t/+zs + 6//r6+v/6+vr/+rr6v/q6ur/6urq/+nq6v/p6en/6enp/+np6f/p6en/6ejo/+jo6P/o6Oj/5+jo/+fn + 5//n5+f/5+bm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tl5f/k5eT/5OTk/+Tj5P/j4+P/4+Pj/+Pj + 4//j4+P/4+Pj/+Lj4v/i4uL/4uLi/+Hh4v/h4eH/4OHg/+Dg4P/g4OD/3+Df/9/f3//f39//39/f/+Xl + 5f/n5+b/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5P/k5OT/5OTk/+Tk + 5P/k5OT/5OTk/+Pj4//j4+P/4+Li/+Li4v/i4uL/4+Pj/+bm5v/q6ur/7+7v//T09P/4+Pj/+fn58+jo + 6HuxsbEJysrKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4A/v7+HP39/eP6+vr/9vb2//Hx8f/u7e3/7Ozs/+zs7P/s7Ov/6+vr/+vr6//q6+v/6urq/+rq + 6v/p6un/6enp/+np6f/p6en/6enp/+jp6P/o6Oj/6Ojo/+jo5//n5+f/5+bn/+fm5//m5uf/5ubm/+bm + 5v/m5ub/5eXl/+Xl5f/l5eX/5OXl/+Tk5P/j4+T/4+Pj/+Pj4//j4+P/4+Pj/+Lj4//i4uL/4uLi/+Li + 4v/h4eH/4eHh/+Hh4f/g4OD/4ODg/+Df4P/g4OD/5eXl/+fo5//n5+f/5+fn/+bm5v/m5ub/5ubm/+bm + 5v/m5eb/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/k5OX/5OTk/+Tk5P/k5OT/5OTk/+Tj5P/j4+P/4+Pj/+Tk + 5P/m5uf/6+vr/+/v7//09PT/+Pj4//n5+fLo6Oh6sbGxCcrKygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/r6+v/29vb/8fLy/+7u + 7v/t7e3/7e3t/+zt7f/s7Oz/7Ozs/+vr7P/r6+v/6+vr/+rq6v/q6ur/6urp/+np6f/p6en/6enp/+np + 6f/p6en/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5uf/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eTl/+Xk + 5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj4//j4+L/4uLi/+Li4v/i4uL/4eHh/+Hh4f/h4OH/4ODg/+Dg + 4P/m5ub/6Ojo/+jo6P/n6Of/5+fn/+fn5v/m5ub/5ubm/+bm5v/m5ub/5ebm/+Xl5f/l5eX/5eXl/+Xl + 5f/l5eX/5eXk/+Tk5P/k5OT/5OTk/+Tk5P/l5OT/5+fn/+vr6//v7/D/9PT0//j4+f/5+fny6urqdq6u + rQjKysoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+AP7+/hz9/f3j+vr6//b29v/y8vL/7u/u/+3t7f/t7e3/7e3t/+3t7f/t7O3/7Ozs/+zs + 7P/r7Ov/6+vr/+vr6//q6ur/6urq/+nq6v/p6en/6enp/+np6f/p6en/6Onp/+jp6P/o6Oj/6Ojo/+fn + 6P/n5+f/5+fm/+bm5v/m5ub/5ubm/+bm5v/m5eb/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/k4+P/4+Pj/+Pj + 4//j4+P/4+Pj/+Li4v/i4uL/4uHi/+Lh4v/h4eH/4eHh/+bm5v/o6Oj/6Ojo/+jo6P/n6Oj/5+fn/+fn + 5//n5+f/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eb/5eXl/+Xl5f/l5eX/5eXl/+Xl5P/k5OT/5eXl/+fo + 6P/r6+v/8PDw//T09f/5+fn/+fn58urq6nasrKwIy8vKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP6+vv/9/b3//Ly + 8v/v7+//7u7t/+3t7f/t7e3/7e3t/+3t7f/t7e3/7O3s/+zs7P/s7Oz/6+zr/+vr6//r6uv/6urr/+rq + 6v/q6un/6erp/+np6f/p6en/6enp/+np6f/o6On/6Ojo/+fo6P/n5+f/5+fn/+fm5v/m5ub/5ubm/+bm + 5v/m5ub/5ubm/+Xl5f/l5eX/5OXk/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//i4+L/4uLi/+Lh + 4v/i4uL/5+fn/+np6f/p6ej/6Ojo/+jo6P/o6Oj/6Ojo/+fo5//n5+f/5+fn/+fm5//m5ub/5ubm/+bm + 5v/m5ub/5uXm/+Xl5f/l5eX/5eXl/+Xl5v/o6Oj/7Ozs//Dw8P/19fX/+fn5//r5+vLq6up2rKysCMrK + ygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gD+/v4c/f394/v6+//39/f/8/Pz//Dw8P/v7+7/7u7u/+7u7v/u7e7/7e3t/+3t + 7f/t7e3/7e3t/+zt7P/s7Oz/7Ozs/+vr7P/r6+v/6+vr/+rq6v/q6ur/6urq/+rp6f/p6en/6enp/+np + 6f/p6en/6Ojo/+jo6P/o6Of/5+fn/+fn5//m5uf/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5uX/5eXl/+Xk + 5f/k5OT/5OTk/+Tj5P/j4+P/4+Pj/+Pj4//j4+P/4+Li/+Pj4//n5+f/6enp/+np6f/p6en/6ejp/+jo + 6P/o6Oj/6Ojo/+jo6P/o6Of/5+fn/+fn5//n5uf/5ubm/+bm5v/m5ub/5ubm/+Xm5v/m5ub/6enp/+zs + 7P/x8PD/9fX1//n5+f/6+vrw6+vrdKysrAjKysoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+/v7//f3 + 9//z9PP/8PDw/+/v7//v7+//7+/v/+7u7v/u7u7/7u3t/+3t7f/t7e3/7e3t/+3t7f/s7e3/7Ozs/+zs + 7P/r7Ov/6+vr/+vr6//r6uv/6urq/+nq6f/p6en/6enp/+np6f/p6en/6enp/+np6P/o6Oj/6Ojo/+fn + 5//n5+f/5+fn/+bm5v/m5ub/5ubm/+bm5v/l5ub/5eXl/+Xl5f/k5eX/5OXk/+Tk5P/k4+P/4+Pj/+Pj + 4//j4+P/4+Pj/+jo5//p6un/6enp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+jo6P/o6Oj/6Ofn/+fn + 5//n5+f/5ubn/+bm5v/m5ub/5+fn/+np6f/t7e3/8fHx//X19f/5+fn/+vr68Ozs7HCrq6sHzc3NAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP7+/v/+Pf3//T09P/x8fH/8PDw//Dw8P/v8O//7+/v/+/v + 7//u7u7/7u7u/+3u7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs7P/r7Oz/7Ozs/+vr6//r6+r/6+rq/+rq + 6v/q6ur/6enp/+np6f/p6en/6enp/+np6f/p6Oj/6Ojo/+jo6P/n5+f/5+fn/+fn5//m5ub/5ubm/+bm + 5v/m5ub/5ubm/+Xl5v/l5eX/5eXl/+Tk5P/k5OT/5OTk/+Pj4//j4+T/6Ojo/+rq6v/p6un/6enp/+np + 6f/p6en/6enp/+np6f/o6On/6Ojo/+jo6P/o6Oj/6Ojo/+jo5//n5+f/5+fn/+fn6P/q6ur/7e3t//Hx + 8f/19fX/+fn5//r6+vDs7OxwqqqqBs7OzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/v7 + +//4+Pj/9PT0//Hx8f/w8PD/8PDw//Dw8P/w8PD/7+/w/+/v7//v7+//7u7u/+7u7v/u7u3/7u3t/+3t + 7f/t7e3/7e3t/+3t7f/s7e3/7Ozs/+zs6//r6+v/6+vr/+vr6v/q6ur/6urq/+np6f/p6en/6enp/+np + 6f/p6en/6ejp/+jo6P/o6Oj/5+fn/+fn5//n5+f/5ufm/+bm5v/m5ub/5ubm/+bm5v/l5eb/5eXl/+Xk + 5f/k5OT/5OTk/+Tk5P/o6Oj/6urq/+rq6v/q6ur/6urq/+rq6v/p6en/6enp/+np6f/p6en/6ejp/+jo + 6P/o6Oj/6Ojo/+jo6P/o6Oj/6+rq/+7u7v/y8vL/9fX2//n5+f/6+vrw7OzscKqqqgbOzs4AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j+/v7//j4+P/19fX/8vLy//Hx8f/w8PD/8PDw//Dw + 8P/w8PD/8PDw//Dv7//v7+//7+/v/+7u7v/u7u7/7u3u/+3t7f/t7e3/7e3t/+3t7f/t7ez/7Ozs/+zs + 7P/s7Oz/6+vr/+vr6//r6ur/6uvq/+rq6v/q6en/6enp/+np6f/p6en/6enp/+no6f/o6Oj/6Ojo/+fn + 6P/n5+f/5+fm/+fm5//m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eXl/+np6f/r6+v/6urq/+rq + 6v/q6ur/6urq/+rq6v/p6er/6enp/+np6f/p6en/6enp/+no6f/o6Oj/6enp/+vr6//u7u7/8vLy//b2 + 9v/5+vr/+/v77+3u7W6qqqoGzs7OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39 + /eP7+/v/+Pj4//X19f/y8vP/8fHy//Hx8f/x8fH/8fDw//Dw8P/w8PD/8PDw//Dw8P/v8PD/7+/v/+/v + 7//v7u//7u7u/+7u7v/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs7f/s7Oz/7Ozs/+vr6//r6+v/6+vr/+rq + 6v/q6ur/6erq/+np6f/p6en/6enp/+np6f/p6en/6Ojo/+jo6P/n6Oj/5+fn/+fn5//n5ub/5ubm/+bm + 5v/m5ub/5ubm/+Xl5f/m5uX/6urq/+zs6//r6+v/6+vr/+rq6v/q6ur/6urq/+rq6v/q6ur/6enp/+np + 6f/p6en/6enp/+np6f/s6+z/7+7v//Ly8v/29vb/+vr6//v7++/v7+9roKCfBc7OzgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/v7/P/5+fn/9vb2//Pz8//y8vL/8vLy//Hx + 8v/x8fH/8fHx//Hw8P/w8PD/8PDw//Dw8P/w8PD/8O/w/+/v7//v7+//7u7u/+7u7v/u7u7/7e3t/+3t + 7f/t7e3/7e3t/+3s7f/t7Oz/7Ozs/+zs7P/r7Ov/6+vr/+vr6//q6ur/6urq/+nq6f/p6en/6enp/+np + 6f/p6en/6enp/+jo6f/o6Oj/6Ojn/+fn5//n5+f/5+bm/+bm5v/m5ub/5ubm/+bm5v/q6+r/7Ozs/+zs + 7P/r7Ov/6+vr/+vr6//q6ur/6urq/+rq6v/q6ur/6urq/+nq6f/q6ur/7Ozs/+/w7//z8vP/9vb2//r6 + +v/7+/vv7+/va6CgoAXOzs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+ + /hz9/f3j/Pz8//n5+f/29vb/8/P0//Pz8//z8/P/8vPy//Ly8v/y8vL/8fHx//Hx8f/x8PH/8PDw//Dw + 8P/w8PD/8PDw//Dv8P/v7+//7+/u/+7v7v/u7u7/7u7u/+7t7f/t7e3/7e3t/+3t7f/t7e3/7Ozt/+zs + 7P/s7Oz/6+zs/+vr6//r6+v/6uvq/+rq6v/q6ur/6erp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+fo + 6P/o5+f/5+fn/+fm5//m5ub/5ubm/+vr6//s7Oz/7Ozs/+zs7P/s7Oz/6+zs/+vr6//r6+v/6+rr/+rq + 6v/q6ur/6+vr/+zt7f/w8PD/8/Pz//b39v/6+vr/+/v77+/v72ugoKAFzs7OAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP39/eP8/Pz/+fn5//b29//09PT/8/Pz//Pz + 8//z8/P/8/Pz//Ly8v/y8vL/8vLy//Lx8f/x8fH/8PDx//Dw8P/w8PD/8PDw//Dw8P/v8PD/7/Dv/+/v + 7//u7+7/7u7u/+7u7v/u7e7/7e3t/+3t7f/t7e3/7e3t/+3t7f/s7Oz/7Ozs/+vs6//r6+v/6+vr/+rq + 6v/q6ur/6unq/+np6f/p6en/6enp/+np6f/o6en/6Ono/+jo6P/o6Of/5+jo/+fn5//n5+f/6+vr/+3t + 7f/s7e3/7Ozs/+zs7P/s7Oz/7Ozs/+vs7P/r6+v/6+vr/+zs7P/u7u7/8fDx//P08//39/f/+vr6//v7 + ++3w8PBpoKCgBc7OzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gD+/v4c/f394/z8/P/5+vn/9/f3//X09P/09PT/8/P0//Pz8//z8/P/8/Pz//Lz8//z8vL/8vLy//Ly + 8v/x8fH/8fHx//Hw8f/w8PH/8PDw//Dw8P/w8PD/8PDw/+/w7//v7+//7+/v/+7u7//u7u7/7e3t/+3t + 7f/t7e3/7e3t/+3t7f/t7ez/7O3s/+zs7P/r6+z/6+vr/+rr6//q6uv/6urq/+rq6v/p6en/6enp/+np + 6f/p6en/6ejp/+no6f/o6Oj/6Ojo/+jo6P/s7Oz/7e3t/+3t7f/t7e3/7e3s/+zs7P/s7Oz/7Ozs/+zs + 7P/t7e3/7+/v//Hx8f/09PT/9/j3//r6+v/7+/vt8vLyZpycnAPU1NQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz9/f3j/Pz8//r6+v/49/f/9fb1//T0 + 9P/09PT/9PT0//Pz8//z8/P/8/Pz//Pz8//z8/P/8vLz//Ly8v/y8vL/8fHy//Hx8f/x8PH/8PDw//Dw + 8P/w8PD/8PDw//Dw8P/w7+//7+/v/+/v7//u7u7/7u7u/+3u7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+zs + 7P/s7Oz/6+zs/+vr6//r6+v/6urr/+rq6v/q6ur/6enp/+np6f/p6en/6enp/+no6f/o6ej/6eno/+zs + 7P/t7u3/7e3t/+3t7f/t7e3/7e3t/+zs7f/s7O3/7e3t//Dw8P/y8vL/9fX1//j4+P/7+/v/+/v77fLy + 8macnJwD1NTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4A/v7+HP39/eP8/Pz/+vr6//j4+P/29vb/9vb1//X19f/19fX/9PT0//T09P/z8/P/8/Pz//Pz + 8//z8/P/8/Pz//Lz8v/y8vL/8vLy//Hx8v/x8fH/8fHw//Dw8P/w8PD/8PDw//Dw8P/w8PD/7+/w/+/v + 7//v7+//7u7v/+7u7v/u7u7/7e3t/+3t7f/t7e3/7e3t/+zt7f/s7Oz/7Ozs/+vs7P/r6+z/6+vr/+rr + 6//q6ur/6urq/+rp6v/p6en/6enp/+np6f/p6en/7e3t/+7u7v/u7u7/7e3t/+3t7f/t7e3/7e3t/+7u + 7v/w8PD/8/Pz//b29v/5+fn/+/v7//r6+u3y8vJmnJycA9TU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/f394/z8/P/6+vv/+Pj4//f3 + 9//29vb/9vb1//X19v/19fX/9fT1//T09P/09PT/8/Pz//Pz8//z8/P/8/Pz//Pz8v/z8vL/8vPy//Hy + 8v/y8vH/8fHx//Hx8f/w8PD/8PDw//Dw8P/w8PD/8PDw//Dv8P/v7+//7+/v/+7u7v/u7u7/7u7t/+3t + 7f/t7e3/7e3t/+3t7f/t7e3/7O3s/+zs7P/r7Oz/6+vr/+vr6//q6+v/6urq/+rq6v/p6er/6enp/+np + 6f/t7e3/7u7u/+7u7v/u7u7/7u7u/+3t7v/v7+7/8fHx//Tz8//29vb/+fn5//z8/P/v7+/r2dnZY7e3 + twTU1NQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+AP7+/hz9/v3j/fz8//v7+//5+fn/9/f3//f39//39vb/9vb2//b19v/19fX/9fX1//T1 + 9f/09PT/9PT0//Tz8//z8/P/8/Pz//Pz8//z8/P/8vPz//Ly8v/y8vL/8vHx//Hx8f/x8fH/8PDw//Dw + 8P/w8PD/8PDw//Dw8P/w7+//7+/v/+/v7//u7u7/7u7u/+3u7v/t7e7/7e3t/+3t7f/t7e3/7e3t/+zt + 7P/s7Oz/7Ozs/+vr6//r6+v/6+vq/+rq6v/q6ur/6urq/+7u7f/v7+//7u7v/+7u7v/u7u7/7+/v//Hx + 8f/09PT/9/f2//r5+v/8/Pz/7+/v69PT02CEhIQCu7u7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP7+/uP9/f3/+/v7//n5 + +f/3+Pj/9/f3//f39//39/f/9vb3//b29v/29vb/9fX2//X19f/19fX/9PT0//T09P/z9PP/8/Pz//Pz + 8//z8/P/8/Pz//Lz8//y8vL/8vLy//Ly8f/x8fH/8fHx//Hw8P/w8PD/8PDw//Dw8P/w8PD/8PDw/+/v + 7//v7+//7u7v/+7v7v/u7u7/7u3u/+3t7f/t7e3/7e3t/+3t7f/s7ez/7Ozs/+zs7P/s6+v/6+vr/+rr + 6//r6uv/7u7u//Dw8P/v7/D/7+/v//Dw8P/y8vL/9PT0//f39//6+vr//Pz8/+/v7+vT09NghISEAru7 + uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gD+/v4c/v7+4/39/f/7+/v/+vr6//j4+P/39/f/9/f3//f39//39/f/9/f3//b3 + 9//29vb/9vb2//X19v/19fX/9fX1//T09P/09PT/9PT0//Pz8//z8/P/8/Pz//Pz8//z8vP/8/Ly//Ly + 8v/y8fL/8fHx//Hx8f/x8fH/8PDx//Dw8P/w8PD/8PDw/+/w7//v7+//7+/v/+7v7//u7u7/7u7u/+3t + 7f/t7e3/7e3t/+3t7f/t7e3/7O3t/+zs7P/s7Oz/6+vr/+vr6//v7+7/8PDw//Dw8P/x8fD/8vLy//X1 + 9f/49/f/+vr6//z8/P/v7+/q09PTYISEhAK7u7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz+/v7j/f39//z8 + +//6+vr/+fn5//j4+P/3+Pj/+Pf4//f39//39/f/9/f3//f39//29/f/9vb2//b29v/29fX/9fX1//X1 + 9P/09fT/9PT0//T09P/z8/P/8/Pz//Pz8//z8/P/8/Pz//Ly8//y8vL/8vLy//Hx8f/x8fH/8PHx//Dw + 8P/w8PD/8PDw//Dw8P/w7/D/7+/v/+/v7//u7+//7u7u/+7u7v/u7u3/7e3t/+3t7f/t7e3/7e3t/+3t + 7P/s7Oz/7Ozs/+/v7//w8PD/8fHx//Pz8//19fX/+Pj4//r6+v/8/Pz/7+/v6dPT012CgoICurq6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v4A/v7+HP7+/uP9/f3//Pz8//v6+v/6+fr/+fn5//n5+f/4+Pj/+Pj4//j4 + +P/39/f/9/f3//f39//39/f/9/f2//b29v/29vb/9fb2//X19f/19fX/9PT1//T09P/09PT/8/P0//Pz + 8//z8/P/8/Pz//Py8//y8vL/8vLy//Hy8v/x8fL/8fHx//Hx8P/w8PD/8PDw//Dw8P/w8PD/7/Dw/+/w + 7//v7+//7+/v/+7u7v/u7u7/7u7u/+3t7f/t7e3/7e3t/+3t7f/t7e3/8O/v//Ly8v/z8/P/9fX1//j4 + +P/6+vr//Pz8/+/v7+nU1NRcenp6Ar29vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4c/v7+4/39 + /f/8/Pz/+/v7//r6+v/6+vr/+fn5//n5+f/5+fn/+Pj4//j4+P/39/j/9/f3//f39//39/f/9/f3//f3 + 9//29vb/9vb2//b29f/19fX/9fX1//X09P/09PT/9PT0//P08//z8/P/8/Pz//Pz8//z8/P/8/Lz//Ly + 8v/y8fL/8fHy//Hx8f/x8fH/8PDw//Dw8P/w8PD/8PDw//Dw7//v7+//7+/v/+7v7//u7+7/7u7u/+7t + 7v/t7e3/7e3t/+3t7f/x8fH/9PT0//b29v/4+Pj/+vr6//39/f/v7+/p1NTUXHp6egK9vb0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/hz+/v7j/f39//39/f/7+/z/+/r6//r6+v/6+vr/+vr6//n5 + +v/5+fn/+fn5//j5+P/3+Pj/9/j4//f39//39/f/9/f3//f39//39/b/9vb2//b29v/29vb/9fX1//X1 + 9f/09PX/9PT0//T09P/z8/T/8/Pz//Pz8//z8/P/8/Lz//Py8//y8vP/8vLy//Hy8v/x8fH/8fHx//Dw + 8P/w8PD/8PDw//Dw8P/w8PD/7/Dw/+/v7//v7+7/7u7u/+7u7v/u7u7/7+/v//Pz8//29vb/+Pn5//v7 + +//9/f3/8PDv6dTU1Ft6enoCvb29AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+HP7+ + /uP9/v7//f39//z8/P/7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/6+vn/+fr5//n5+f/4+fj/+Pj4//j4 + +P/39/f/9/f3//f39//39/f/9/f3//f29//29vb/9vb1//X19v/19fX/9fX1//T09P/09PT/9PT0//Pz + 8//z8/P/8/Pz//Pz8//z8/P/8vLy//Ly8v/x8vL/8fHx//Hx8f/x8fD/8PDw//Dw8P/w8PD/8PDw/+/w + 7//v7+//7+/v//Dv8P/y8vL/9vb2//n5+f/7+/v//f39/+/v7+fU1NRYenl6Ab+/vwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8c/v7+4/7+/v/9/f3//f39//z8/P/7/Pv/+/v7//v7 + +//7+/v/+/r6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/+fj5//j4+P/4+Pj/+Pj4//j3 + +P/49/f/9/f3//b39//29/b/9vb2//b29v/29vb/9fX2//X19f/19fX/9fX1//T09f/09PX/9PT0//T0 + 9P/09PT/8/Pz//Pz8//z8/P/8vPy//Ly8v/y8vL/8vLy//Hy8v/y8vL/8/Pz//X19f/4+Pj/+/v7//39 + /f/v7+/n09PTV11dXQG7u7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1dXVAM3N + zRvs7Ozh//////7+/v/9/f3//f39//39/f/9/Pz//Pz9//z8/P/8/Pz//Pz8//v8/P/7/Pz/+/v7//v7 + +//7+/v/+/v6//r7+v/6+vr/+vr6//r6+v/6+vr/+vr6//r5+f/5+fn/+fn5//n5+f/5+fn/+fn5//j4 + +f/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/39/j/9/f3//f39//39/f/9vb2//b29v/29vb/9vb2//b2 + 9v/29vX/9fb2//b29v/39/f/+Pj5//v7+//9/f3/7+/v59PT01ddXV0Bu7u7AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChoaEAd3d3CuLi4qn+/v7//v7+//7+/v/+/v7//v7+//39 + /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//Pz9//z8/f/8/fz//Pz8//z8/P/8/Pz//Pz8//z8 + /P/8/Pz//Pz8//z8/P/7+/z/+/v8//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//r6 + +//6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+vr5//n6+f/5+fn/+vr6//r6+v/8/Pv//f39//Dw + 8ObT09NXXV1dAbu7uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGFh + YQDb29sAzMzMMfDw8Mb39/f9/f39//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v3+//39/f/9/f3//f39//39/f/9/f3//f39//39 + /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f38//z9/P/8/Pz//Pz8//z8 + /P/8/Pz//Pz8//z8/P/8/Pz//f39//39/f/v7+/l1NTUU0ZGRgG+vr4AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHp6egAAAAAAwsLCH8fHx2v39/d//v7+f/7+ + /n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+ + /n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+ + /n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5//v7+f/7+/n/+/v5/+fn5f9TU + 1EWCgoIBvLy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////////////////wAAAAAAAAAAAAAA////// + 4AAAAAAAAAAAAAAH/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP///// + wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD + /////8AAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAA + AAAAA//////AAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA//////AAAAA + AAAAAAAAAAf/////wAAAAAAAAAAAAAAP/////8AAAAAAAAAAAAAAH//////AAAAAAAAAAAAAAD////// + wAAAAAAAAAAAAAB//////8AAAAAAAAAAAAAA///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP/ + /////8AAAAAAAAAAAAAH///////AAAAAAAAAAAAAD///////wAAAAAAAAAAAAB///////8AAAAAAAAAA + AAA////////AAAAAAAAAAAAAf///////wAAAAAAAAAAAAP///////8AAAAAAAAAAAAH////////AAAAA + AAAAAAAD////////wAAAAAAAAAAAB////////8AAAAAAAAAAAA/////////AAAAAAAAAAAAf//////// + wAAAAAAAAAAAP////////8AAAAAAAAAAAH/////////AAAAAAAAAAAD/////////wAAAAAAAAAAB//// + /////8AAAAAAAAAAA//////////AAAAAAAAAAAf/////////wAAAAAAAAAAP/////////8AAAAAAAAAA + H//////////AAAAAAAAAAD//////////wAAAAAAAAAB//////////8AAAAAAAAAA///////////AAAAA + AAAAAf//////////wAAAAAAAAAP//////////8AAAAAAAAAH///////////AAAAAAAAAD/////////// + wAAAAAAAAB///////////8AAAAAAAAA////////////AAAAAAAAAf///////////4AAAAAAAAP////// + //////AAAAAAAAH//////////////////////////////4lQTkcNChoKAAAADUlIRFIAAAEAAAABAAgG + AAAAXHKoZgAAgABJREFUeNrtvTuwLdl5Hvb9q/c+cwfPIYEBxBFcGjwImpmrREOhiwQlMpACUZETSiLN + wIEjh1ZZlqXQkQMnNFVFBs4MB1JJRYKlWIJVZTuiBBT4KEBEYTjggMBwZu7ZvdbvYP3P1d37nHvPOffu + Bs6aunP27t29Xr3+9wt4bI/tsT22x/bYHttje2yP7bH9GDV62RO4TfvN3/zNzz558uSfP3ny5G/8vb/3 + 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 + + + + CenterParent + + + rename + + + MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + \ No newline at end of file diff --git a/MinecraftUSkinEditor/Forms/Utilities/AudioEditor.Designer.cs b/MinecraftUSkinEditor/Forms/Utilities/AudioEditor.Designer.cs new file mode 100644 index 00000000..a4dc4b67 --- /dev/null +++ b/MinecraftUSkinEditor/Forms/Utilities/AudioEditor.Designer.cs @@ -0,0 +1,186 @@ + +namespace PckStudio.Forms.Utilities +{ + partial class AudioEditor + { + /// + /// 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() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AudioEditor)); + this.treeView1 = new System.Windows.Forms.TreeView(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.addCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.removeCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.menuStrip = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.treeView2 = new System.Windows.Forms.TreeView(); + this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.addEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.removeEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.contextMenuStrip1.SuspendLayout(); + this.menuStrip.SuspendLayout(); + this.contextMenuStrip2.SuspendLayout(); + this.SuspendLayout(); + // + // treeView1 + // + this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.treeView1.ContextMenuStrip = this.contextMenuStrip1; + this.treeView1.ForeColor = System.Drawing.Color.White; + this.treeView1.LabelEdit = true; + resources.ApplyResources(this.treeView1, "treeView1"); + this.treeView1.Name = "treeView1"; + this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.addCategoryStripMenuItem, + this.removeCategoryStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1"); + // + // addCategoryStripMenuItem + // + resources.ApplyResources(this.addCategoryStripMenuItem, "addCategoryStripMenuItem"); + this.addCategoryStripMenuItem.Name = "addCategoryStripMenuItem"; + this.addCategoryStripMenuItem.Click += new System.EventHandler(this.addCategoryStripMenuItem_Click); + // + // removeCategoryStripMenuItem + // + this.removeCategoryStripMenuItem.Image = global::PckStudio.Properties.Resources.Del; + this.removeCategoryStripMenuItem.Name = "removeCategoryStripMenuItem"; + resources.ApplyResources(this.removeCategoryStripMenuItem, "removeCategoryStripMenuItem"); + this.removeCategoryStripMenuItem.Click += new System.EventHandler(this.removeCategoryStripMenuItem_Click); + // + // menuStrip + // + resources.ApplyResources(this.menuStrip, "menuStrip"); + this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem}); + this.menuStrip.Name = "menuStrip"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.saveToolStripMenuItem1}); + this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White; + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem"); + // + // saveToolStripMenuItem1 + // + resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1"); + this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1"; + this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click); + // + // treeView2 + // + this.treeView2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.treeView2.ContextMenuStrip = this.contextMenuStrip2; + this.treeView2.ForeColor = System.Drawing.Color.White; + resources.ApplyResources(this.treeView2, "treeView2"); + this.treeView2.Name = "treeView2"; + this.treeView2.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView2_AfterSelect); + // + // contextMenuStrip2 + // + this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.addEntryMenuItem, + this.removeEntryMenuItem}); + this.contextMenuStrip2.Name = "contextMenuStrip1"; + resources.ApplyResources(this.contextMenuStrip2, "contextMenuStrip2"); + // + // addEntryMenuItem + // + resources.ApplyResources(this.addEntryMenuItem, "addEntryMenuItem"); + this.addEntryMenuItem.Name = "addEntryMenuItem"; + this.addEntryMenuItem.Click += new System.EventHandler(this.addEntryMenuItem_Click); + // + // removeEntryMenuItem + // + this.removeEntryMenuItem.Image = global::PckStudio.Properties.Resources.Del; + this.removeEntryMenuItem.Name = "removeEntryMenuItem"; + resources.ApplyResources(this.removeEntryMenuItem, "removeEntryMenuItem"); + this.removeEntryMenuItem.Click += new System.EventHandler(this.removeEntryMenuItem_Click); + // + // comboBox1 + // + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.FormattingEnabled = true; + resources.ApplyResources(this.comboBox1, "comboBox1"); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // textBox1 + // + resources.ApplyResources(this.textBox1, "textBox1"); + this.textBox1.Name = "textBox1"; + this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); + // + // AudioEditor + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.treeView1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.treeView2); + this.Controls.Add(this.menuStrip); + this.Name = "AudioEditor"; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.contextMenuStrip1.ResumeLayout(false); + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.contextMenuStrip2.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TreeView treeView1; + private System.Windows.Forms.MenuStrip menuStrip; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem1; + private System.Windows.Forms.TreeView treeView2; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem removeCategoryStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem addCategoryStripMenuItem; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip2; + private System.Windows.Forms.ToolStripMenuItem addEntryMenuItem; + private System.Windows.Forms.ToolStripMenuItem removeEntryMenuItem; + } +} \ No newline at end of file diff --git a/MinecraftUSkinEditor/Forms/Utilities/AudioEditor.cs b/MinecraftUSkinEditor/Forms/Utilities/AudioEditor.cs new file mode 100644 index 00000000..d79e5817 --- /dev/null +++ b/MinecraftUSkinEditor/Forms/Utilities/AudioEditor.cs @@ -0,0 +1,253 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using MetroFramework.Forms; +using PckStudio; + +// Audio Editor by MattNL + +namespace PckStudio.Forms.Utilities +{ + public partial class AudioEditor : MetroForm + { + public string defaultType; + public string cat; + public List cats = new List(); + + public string getCatString(int cat) + { + switch (cat) + { + case 0: return "Overworld"; break; + case 1: return "Nether"; break; + case 2: return "End"; break; + case 3: return "Creative"; break; + case 4: return "Menu"; break; + case 5: return "Battle"; break; + case 6: return "Tumble"; break; + case 7: return "Glide"; break; + case 8: return "Unused"; break; + default: return "Not valid"; break; + } + } + + public int getCatID(string cat) + { + switch (cat) + { + case "Overworld": return 0; break; + case "Nether": return 1; break; + case "End": return 2; break; + case "Creative": return 3; break; + case "Menu": return 4; break; + case "Battle": return 5; break; + case "Tumble": return 6; break; + case "Glide": return 7; break; + case "Unused": return 8; break; + default: return -1; break; + } + } + + PCK audioPCK = new PCK(); + PCK.MineFile mf; + public AudioEditor(byte[] data, PCK.MineFile MineFile) + { + InitializeComponent(); + audioPCK.Read(data); + mf = MineFile; + TreeNode treeViewMain = new TreeNode(); + foreach (PCK.MineFile mineFile in audioPCK.mineFiles) + { + Console.WriteLine(mineFile.name); + TreeNode treeNode = new TreeNode(); + if (!cats.Contains(mineFile.type)) cats.Add(mineFile.type); + treeNode.Text = getCatString(mineFile.type); + treeNode.Tag = mineFile; + treeView1.Nodes.Add(treeNode); + continue; + } + } + + private void treeView2_AfterSelect(object sender, TreeViewEventArgs e) + { + comboBox1.Items.Clear();//Resets metadata combobox of selectable entry names + object[] strings = (object[])e.Node.Tag; + string type = audioPCK.types[0]; + defaultType = type; + string value = ""; + if(strings != null) + { + type = (string)strings[0]; + value = (string)strings[1]; + } + + foreach (int metaType in audioPCK.types.Keys) + comboBox1.Items.Add(audioPCK.types[metaType]);//fills combobox with metadata from the main metadatabase + comboBox1.Text = type;//Sets currently selected metadata type to type selected in selected metadata node + textBox1.Text = value;//Sets currently selected metadata value to value selected in selected metadata node + } + + private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) + { + treeView2.Nodes.Clear(); + PCK.MineFile mineFile = (PCK.MineFile)e.Node.Tag; + foreach (object[] entry in mineFile.entries) //object = metadata entry(name:value) + { + object[] strings = (object[])entry; + TreeNode meta = new TreeNode(); + + foreach (object[] entryy in mineFile.entries) + meta.Text = (string)strings[0]; + meta.Tag = entry; + treeView2.Nodes.Add(meta); + continue; + } + } + + private void textBox1_TextChanged(object sender, EventArgs e) + { + if (treeView2.SelectedNode != null) + { + object[] strings = (object[])treeView2.SelectedNode.Tag; + strings[1] = textBox1.Text; + } + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + if (treeView2.SelectedNode != null) + { + //Sets metadata type to new chosen one + object[] strings = (object[])treeView2.SelectedNode.Tag; + treeView2.SelectedNode.Text = comboBox1.Text; + strings[0] = comboBox1.Text; + } + } + + private void addCategoryStripMenuItem_Click(object sender, EventArgs e) + { + try + { + int check = Enumerable.Range(0, 8).Except(cats).First(); // Exclude Unused for now + if (0 <= check && check <= 8) + { + PckStudio.addCategory add = new PckStudio.addCategory(this);//sets category adding dialog + add.ShowDialog();//displays metadata adding dialog + add.Dispose();//diposes generated metadata adding dialog data + cats.Add(getCatID(cat)); + PCK.MineFile mf = new PCK.MineFile();//Creates new minefile template + + var emptyBytes = new List(); // the category files are empty to not take up space + byte[] emptyBytesArray = emptyBytes.ToArray(); + + mf.data = emptyBytesArray;//adds file data to minefile + mf.filesize = mf.data.Length;//gets filesize for minefile + mf.name = cat;//sets minfile name to file name + mf.type = getCatID(cat);//sets minefile type to default + TreeNode addNode = new TreeNode(mf.name) { Tag = mf };//creates node for minefile + audioPCK.mineFiles.Add(mf); + treeView1.Nodes.Add(addNode); + } + } + catch(Exception ex) + { + MessageBox.Show("All possible categories are used", "There are no more categories that could be added"); + } + } + + private void addEntryMenuItem_Click(object sender, EventArgs e) + { + object[] obj = { defaultType, "New Entry" }; + + TreeNode meta = new TreeNode(); + meta.Text = "New Entry"; + meta.Tag = obj; + treeView2.Nodes.Insert(treeView2.SelectedNode == null ? 0 : treeView2.SelectedNode.Index + 1, meta); + ((PCK.MineFile)treeView1.SelectedNode.Tag).entries.Add(obj); + } + + private void removeCategoryStripMenuItem_Click(object sender, EventArgs e) + { + cats.Remove(getCatID(treeView1.SelectedNode.Text)); + treeView1.SelectedNode.Remove(); + } + + private void removeEntryMenuItem_Click(object sender, EventArgs e) + { + ((PCK.MineFile)treeView1.SelectedNode.Tag).entries.Remove((object[])treeView2.SelectedNode.Tag); + treeView2.SelectedNode.Remove(); + } + + private static byte[] endianReverseUnicode(byte[] str) + { + byte[] newStr = new byte[str.Length]; + for (int i = 0; i < str.Length; i += 2) + { + newStr[i] = str[i + 1]; + newStr[i + 1] = str[i]; + } + return newStr; + } + + private static void writeMinecraftString(FileOutput f, string str) + { + byte[] d = Encoding.Unicode.GetBytes(str); + f.writeInt(d.Length / 2); + f.writeBytes(endianReverseUnicode(d)); + f.writeInt(0); + } + + private void saveToolStripMenuItem1_Click(object sender, EventArgs e) + { + FileOutput f = new FileOutput(); + f.Endian = Endianness.Big; + + f.writeInt(1); + f.writeInt(audioPCK.types.Count); + foreach (int type in audioPCK.types.Keys) + { + f.writeInt(type); + writeMinecraftString(f, audioPCK.types[type]); + } + + f.writeInt(audioPCK.mineFiles.Count); + foreach (PCK.MineFile mf in audioPCK.mineFiles) + { + f.writeInt(mf.data.Length); + f.writeInt(mf.type); + writeMinecraftString(f, mf.name); + } + + foreach (PCK.MineFile mf in audioPCK.mineFiles) + { + string missing = ""; + try + { + f.writeInt(mf.entries.Count); + foreach (object[] entry in mf.entries) + { + missing = entry[0].ToString(); + f.writeInt(audioPCK.typeCodes[(string)entry[0]]); + writeMinecraftString(f, (string)entry[1]); + } + + f.writeBytes(mf.data); + } + catch (Exception) + { + MessageBox.Show(missing + " is not in the main metadatabase"); + break; + } + } + + + mf.data = f.getBytes(); + } + } +} diff --git a/MinecraftUSkinEditor/Forms/Utilities/AudioEditor.resx b/MinecraftUSkinEditor/Forms/Utilities/AudioEditor.resx new file mode 100644 index 00000000..68db9536 --- /dev/null +++ b/MinecraftUSkinEditor/Forms/Utilities/AudioEditor.resx @@ -0,0 +1,386 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 127, 8 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x + DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5 + jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC + + + + 168, 22 + + + Add Category + + + 168, 22 + + + Remove Category + + + 169, 48 + + + contextMenuStrip1 + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 20, 84 + + + + 0, 0, 0, 0 + + + 205, 350 + + + 118, 230 + + + + 12 + + + treeView1 + + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + 19, 8 + + + False + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8 + QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C + y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga + QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN + 38gYasBfqDYE0K7dOn/Wvut/sfkdGYPUgJI9VNuAAwYGAGn6yvdevWgPAAAAAElFTkSuQmCC + + + + 180, 22 + + + Save + + + 37, 20 + + + File + + + 20, 60 + + + 411, 24 + + + 11 + + + menuStrip1 + + + menuStrip + + + System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 6 + + + 282, 8 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x + DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5 + jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC + + + + 147, 22 + + + Add Entry + + + 147, 22 + + + Remove Entry + + + 148, 48 + + + contextMenuStrip2 + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 141, 84 + + + 143, 230 + + + 13 + + + treeView2 + + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 5 + + + 290, 155 + + + 138, 21 + + + 14 + + + comboBox1 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 4 + + + 290, 209 + + + 138, 20 + + + 15 + + + textBox1 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + + + True + + + 37 + + + 6, 13 + + + 451, 334 + + + Audio Editor + + + addCategoryStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + removeCategoryStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + fileToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + saveToolStripMenuItem1 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + addEntryMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + removeEntryMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AudioEditor + + + MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + \ No newline at end of file diff --git a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.Designer.cs b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.Designer.cs index 807062a7..eedd0984 100644 --- a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.Designer.cs +++ b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.Designer.cs @@ -29,313 +29,279 @@ namespace PckStudio.Forms.Utilities /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(COLEditor)); - this.metroPanel1 = new MetroFramework.Controls.MetroPanel(); - this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); - this.metroLabel5 = new MetroFramework.Controls.MetroLabel(); - this.metroLabel4 = new MetroFramework.Controls.MetroLabel(); - this.metroLabel3 = new MetroFramework.Controls.MetroLabel(); - this.metroCheckBox1 = new MetroFramework.Controls.MetroCheckBox(); - this.metroTextBox2 = new MetroFramework.Controls.MetroTextBox(); - this.metroLabel2 = new MetroFramework.Controls.MetroLabel(); - this.metroTextBox1 = new MetroFramework.Controls.MetroTextBox(); - this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.menuStrip = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.metroPanel2 = new MetroFramework.Controls.MetroPanel(); - this.treeView1 = new System.Windows.Forms.TreeView(); - this.metroPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.menuStrip.SuspendLayout(); - this.metroPanel2.SuspendLayout(); - this.SuspendLayout(); - // - // metroPanel1 - // - resources.ApplyResources(this.metroPanel1, "metroPanel1"); - this.metroPanel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.metroPanel1.Controls.Add(this.numericUpDown3); - this.metroPanel1.Controls.Add(this.numericUpDown2); - this.metroPanel1.Controls.Add(this.numericUpDown1); - this.metroPanel1.Controls.Add(this.metroLabel5); - this.metroPanel1.Controls.Add(this.metroLabel4); - this.metroPanel1.Controls.Add(this.metroLabel3); - this.metroPanel1.Controls.Add(this.metroCheckBox1); - this.metroPanel1.Controls.Add(this.metroTextBox2); - this.metroPanel1.Controls.Add(this.metroLabel2); - this.metroPanel1.Controls.Add(this.metroTextBox1); - this.metroPanel1.Controls.Add(this.metroLabel1); - this.metroPanel1.Controls.Add(this.pictureBox1); - this.metroPanel1.HorizontalScrollbarBarColor = true; - this.metroPanel1.HorizontalScrollbarHighlightOnWheel = false; - this.metroPanel1.HorizontalScrollbarSize = 10; - this.metroPanel1.Name = "metroPanel1"; - this.metroPanel1.Style = MetroFramework.MetroColorStyle.Silver; - this.metroPanel1.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroPanel1.VerticalScrollbarBarColor = true; - this.metroPanel1.VerticalScrollbarHighlightOnWheel = false; - this.metroPanel1.VerticalScrollbarSize = 10; - // - // numericUpDown3 - // - resources.ApplyResources(this.numericUpDown3, "numericUpDown3"); - this.numericUpDown3.Maximum = new decimal(new int[] { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(COLEditor)); + this.metroPanel1 = new MetroFramework.Controls.MetroPanel(); + this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.metroLabel5 = new MetroFramework.Controls.MetroLabel(); + this.metroLabel4 = new MetroFramework.Controls.MetroLabel(); + this.metroLabel3 = new MetroFramework.Controls.MetroLabel(); + this.metroCheckBox1 = new MetroFramework.Controls.MetroCheckBox(); + this.metroTextBox2 = new MetroFramework.Controls.MetroTextBox(); + this.metroLabel2 = new MetroFramework.Controls.MetroLabel(); + this.metroTextBox1 = new MetroFramework.Controls.MetroTextBox(); + this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.menuStrip = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.metroPanel2 = new MetroFramework.Controls.MetroPanel(); + this.treeView1 = new System.Windows.Forms.TreeView(); + this.metroPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.menuStrip.SuspendLayout(); + this.metroPanel2.SuspendLayout(); + this.SuspendLayout(); + // + // metroPanel1 + // + this.metroPanel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.metroPanel1.Controls.Add(this.numericUpDown3); + this.metroPanel1.Controls.Add(this.numericUpDown2); + this.metroPanel1.Controls.Add(this.numericUpDown1); + this.metroPanel1.Controls.Add(this.metroLabel5); + this.metroPanel1.Controls.Add(this.metroLabel4); + this.metroPanel1.Controls.Add(this.metroLabel3); + this.metroPanel1.Controls.Add(this.metroCheckBox1); + this.metroPanel1.Controls.Add(this.metroTextBox2); + this.metroPanel1.Controls.Add(this.metroLabel2); + this.metroPanel1.Controls.Add(this.metroTextBox1); + this.metroPanel1.Controls.Add(this.metroLabel1); + this.metroPanel1.Controls.Add(this.pictureBox1); + resources.ApplyResources(this.metroPanel1, "metroPanel1"); + this.metroPanel1.HorizontalScrollbarBarColor = true; + this.metroPanel1.HorizontalScrollbarHighlightOnWheel = false; + this.metroPanel1.HorizontalScrollbarSize = 10; + this.metroPanel1.Name = "metroPanel1"; + this.metroPanel1.Style = MetroFramework.MetroColorStyle.Silver; + this.metroPanel1.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroPanel1.VerticalScrollbarBarColor = true; + this.metroPanel1.VerticalScrollbarHighlightOnWheel = false; + this.metroPanel1.VerticalScrollbarSize = 10; + // + // numericUpDown3 + // + resources.ApplyResources(this.numericUpDown3, "numericUpDown3"); + this.numericUpDown3.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.numericUpDown3.Name = "numericUpDown3"; - this.numericUpDown3.Value = new decimal(new int[] { + this.numericUpDown3.Name = "numericUpDown3"; + this.numericUpDown3.Value = new decimal(new int[] { 13, 0, 0, 0}); - this.numericUpDown3.ValueChanged += new System.EventHandler(this.numericUpDown3_ValueChanged); - // - // numericUpDown2 - // - resources.ApplyResources(this.numericUpDown2, "numericUpDown2"); - this.numericUpDown2.Maximum = new decimal(new int[] { + this.numericUpDown3.ValueChanged += new System.EventHandler(this.numericUpDown3_ValueChanged); + // + // numericUpDown2 + // + resources.ApplyResources(this.numericUpDown2, "numericUpDown2"); + this.numericUpDown2.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.numericUpDown2.Name = "numericUpDown2"; - this.numericUpDown2.Value = new decimal(new int[] { + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Value = new decimal(new int[] { 75, 0, 0, 0}); - this.numericUpDown2.ValueChanged += new System.EventHandler(this.numericUpDown2_ValueChanged); - // - // numericUpDown1 - // - resources.ApplyResources(this.numericUpDown1, "numericUpDown1"); - this.numericUpDown1.Maximum = new decimal(new int[] { + this.numericUpDown2.ValueChanged += new System.EventHandler(this.numericUpDown2_ValueChanged); + // + // numericUpDown1 + // + resources.ApplyResources(this.numericUpDown1, "numericUpDown1"); + this.numericUpDown1.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.numericUpDown1.Name = "numericUpDown1"; - this.numericUpDown1.Value = new decimal(new int[] { + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Value = new decimal(new int[] { 252, 0, 0, 0}); - this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged); - // - // metroLabel5 - // - resources.ApplyResources(this.metroLabel5, "metroLabel5"); - this.metroLabel5.Name = "metroLabel5"; - this.metroLabel5.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // metroLabel4 - // - resources.ApplyResources(this.metroLabel4, "metroLabel4"); - this.metroLabel4.Name = "metroLabel4"; - this.metroLabel4.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // metroLabel3 - // - resources.ApplyResources(this.metroLabel3, "metroLabel3"); - this.metroLabel3.Name = "metroLabel3"; - this.metroLabel3.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // metroCheckBox1 - // - resources.ApplyResources(this.metroCheckBox1, "metroCheckBox1"); - this.metroCheckBox1.Name = "metroCheckBox1"; - this.metroCheckBox1.Style = MetroFramework.MetroColorStyle.Silver; - this.metroCheckBox1.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroCheckBox1.UseSelectable = true; - this.metroCheckBox1.CheckedChanged += new System.EventHandler(this.metroCheckBox1_CheckedChanged); - // - // metroTextBox2 - // - resources.ApplyResources(this.metroTextBox2, "metroTextBox2"); - // - // - // - this.metroTextBox2.CustomButton.AccessibleDescription = resources.GetString("resource.AccessibleDescription"); - this.metroTextBox2.CustomButton.AccessibleName = resources.GetString("resource.AccessibleName"); - this.metroTextBox2.CustomButton.Anchor = ((System.Windows.Forms.AnchorStyles)(resources.GetObject("resource.Anchor"))); - this.metroTextBox2.CustomButton.AutoSize = ((bool)(resources.GetObject("resource.AutoSize"))); - this.metroTextBox2.CustomButton.AutoSizeMode = ((System.Windows.Forms.AutoSizeMode)(resources.GetObject("resource.AutoSizeMode"))); - this.metroTextBox2.CustomButton.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("resource.BackgroundImage"))); - this.metroTextBox2.CustomButton.BackgroundImageLayout = ((System.Windows.Forms.ImageLayout)(resources.GetObject("resource.BackgroundImageLayout"))); - this.metroTextBox2.CustomButton.Dock = ((System.Windows.Forms.DockStyle)(resources.GetObject("resource.Dock"))); - this.metroTextBox2.CustomButton.FlatStyle = ((System.Windows.Forms.FlatStyle)(resources.GetObject("resource.FlatStyle"))); - this.metroTextBox2.CustomButton.Font = ((System.Drawing.Font)(resources.GetObject("resource.Font"))); - this.metroTextBox2.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); - this.metroTextBox2.CustomButton.ImageAlign = ((System.Drawing.ContentAlignment)(resources.GetObject("resource.ImageAlign"))); - this.metroTextBox2.CustomButton.ImageIndex = ((int)(resources.GetObject("resource.ImageIndex"))); - this.metroTextBox2.CustomButton.ImageKey = resources.GetString("resource.ImageKey"); - this.metroTextBox2.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); - this.metroTextBox2.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); - this.metroTextBox2.CustomButton.MaximumSize = ((System.Drawing.Size)(resources.GetObject("resource.MaximumSize"))); - this.metroTextBox2.CustomButton.Name = ""; - this.metroTextBox2.CustomButton.RightToLeft = ((System.Windows.Forms.RightToLeft)(resources.GetObject("resource.RightToLeft"))); - this.metroTextBox2.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); - this.metroTextBox2.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.metroTextBox2.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); - this.metroTextBox2.CustomButton.TextAlign = ((System.Drawing.ContentAlignment)(resources.GetObject("resource.TextAlign"))); - this.metroTextBox2.CustomButton.TextImageRelation = ((System.Windows.Forms.TextImageRelation)(resources.GetObject("resource.TextImageRelation"))); - this.metroTextBox2.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.metroTextBox2.CustomButton.UseSelectable = true; - this.metroTextBox2.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); - this.metroTextBox2.Lines = new string[0]; - this.metroTextBox2.MaxLength = 32767; - this.metroTextBox2.Name = "metroTextBox2"; - this.metroTextBox2.PasswordChar = '\0'; - this.metroTextBox2.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.metroTextBox2.SelectedText = ""; - this.metroTextBox2.SelectionLength = 0; - this.metroTextBox2.SelectionStart = 0; - this.metroTextBox2.ShortcutsEnabled = true; - this.metroTextBox2.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTextBox2.UseSelectable = true; - this.metroTextBox2.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.metroTextBox2.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // metroLabel2 - // - resources.ApplyResources(this.metroLabel2, "metroLabel2"); - this.metroLabel2.Name = "metroLabel2"; - this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // metroTextBox1 - // - resources.ApplyResources(this.metroTextBox1, "metroTextBox1"); - // - // - // - this.metroTextBox1.CustomButton.AccessibleDescription = resources.GetString("resource.AccessibleDescription1"); - this.metroTextBox1.CustomButton.AccessibleName = resources.GetString("resource.AccessibleName1"); - this.metroTextBox1.CustomButton.Anchor = ((System.Windows.Forms.AnchorStyles)(resources.GetObject("resource.Anchor1"))); - this.metroTextBox1.CustomButton.AutoSize = ((bool)(resources.GetObject("resource.AutoSize1"))); - this.metroTextBox1.CustomButton.AutoSizeMode = ((System.Windows.Forms.AutoSizeMode)(resources.GetObject("resource.AutoSizeMode1"))); - this.metroTextBox1.CustomButton.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("resource.BackgroundImage1"))); - this.metroTextBox1.CustomButton.BackgroundImageLayout = ((System.Windows.Forms.ImageLayout)(resources.GetObject("resource.BackgroundImageLayout1"))); - this.metroTextBox1.CustomButton.Dock = ((System.Windows.Forms.DockStyle)(resources.GetObject("resource.Dock1"))); - this.metroTextBox1.CustomButton.FlatStyle = ((System.Windows.Forms.FlatStyle)(resources.GetObject("resource.FlatStyle1"))); - this.metroTextBox1.CustomButton.Font = ((System.Drawing.Font)(resources.GetObject("resource.Font1"))); - this.metroTextBox1.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1"))); - this.metroTextBox1.CustomButton.ImageAlign = ((System.Drawing.ContentAlignment)(resources.GetObject("resource.ImageAlign1"))); - this.metroTextBox1.CustomButton.ImageIndex = ((int)(resources.GetObject("resource.ImageIndex1"))); - this.metroTextBox1.CustomButton.ImageKey = resources.GetString("resource.ImageKey1"); - this.metroTextBox1.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1"))); - this.metroTextBox1.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1"))); - this.metroTextBox1.CustomButton.MaximumSize = ((System.Drawing.Size)(resources.GetObject("resource.MaximumSize1"))); - this.metroTextBox1.CustomButton.Name = ""; - this.metroTextBox1.CustomButton.RightToLeft = ((System.Windows.Forms.RightToLeft)(resources.GetObject("resource.RightToLeft1"))); - this.metroTextBox1.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1"))); - this.metroTextBox1.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.metroTextBox1.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1"))); - this.metroTextBox1.CustomButton.TextAlign = ((System.Drawing.ContentAlignment)(resources.GetObject("resource.TextAlign1"))); - this.metroTextBox1.CustomButton.TextImageRelation = ((System.Windows.Forms.TextImageRelation)(resources.GetObject("resource.TextImageRelation1"))); - this.metroTextBox1.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.metroTextBox1.CustomButton.UseSelectable = true; - this.metroTextBox1.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1"))); - this.metroTextBox1.Lines = new string[0]; - this.metroTextBox1.MaxLength = 32767; - this.metroTextBox1.Name = "metroTextBox1"; - this.metroTextBox1.PasswordChar = '\0'; - this.metroTextBox1.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.metroTextBox1.SelectedText = ""; - this.metroTextBox1.SelectionLength = 0; - this.metroTextBox1.SelectionStart = 0; - this.metroTextBox1.ShortcutsEnabled = true; - this.metroTextBox1.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTextBox1.UseSelectable = true; - this.metroTextBox1.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.metroTextBox1.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - this.metroTextBox1.TextChanged += new System.EventHandler(this.metroTextBox1_TextChanged); - // - // metroLabel1 - // - resources.ApplyResources(this.metroLabel1, "metroLabel1"); - this.metroLabel1.Name = "metroLabel1"; - this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // pictureBox1 - // - resources.ApplyResources(this.pictureBox1, "pictureBox1"); - this.pictureBox1.BackColor = System.Drawing.Color.Gray; - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.TabStop = false; - // - // menuStrip - // - resources.ApplyResources(this.menuStrip, "menuStrip"); - this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged); + // + // metroLabel5 + // + resources.ApplyResources(this.metroLabel5, "metroLabel5"); + this.metroLabel5.Name = "metroLabel5"; + this.metroLabel5.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // metroLabel4 + // + resources.ApplyResources(this.metroLabel4, "metroLabel4"); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // metroLabel3 + // + resources.ApplyResources(this.metroLabel3, "metroLabel3"); + this.metroLabel3.Name = "metroLabel3"; + this.metroLabel3.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // metroCheckBox1 + // + resources.ApplyResources(this.metroCheckBox1, "metroCheckBox1"); + this.metroCheckBox1.Name = "metroCheckBox1"; + this.metroCheckBox1.Style = MetroFramework.MetroColorStyle.Silver; + this.metroCheckBox1.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroCheckBox1.UseSelectable = true; + this.metroCheckBox1.CheckedChanged += new System.EventHandler(this.metroCheckBox1_CheckedChanged); + // + // metroTextBox2 + // + // + // + // + this.metroTextBox2.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); + this.metroTextBox2.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); + this.metroTextBox2.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); + this.metroTextBox2.CustomButton.Name = ""; + this.metroTextBox2.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); + this.metroTextBox2.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.metroTextBox2.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); + this.metroTextBox2.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.metroTextBox2.CustomButton.UseSelectable = true; + this.metroTextBox2.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); + this.metroTextBox2.Lines = new string[0]; + resources.ApplyResources(this.metroTextBox2, "metroTextBox2"); + this.metroTextBox2.MaxLength = 32767; + this.metroTextBox2.Name = "metroTextBox2"; + this.metroTextBox2.PasswordChar = '\0'; + this.metroTextBox2.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.metroTextBox2.SelectedText = ""; + this.metroTextBox2.SelectionLength = 0; + this.metroTextBox2.SelectionStart = 0; + this.metroTextBox2.ShortcutsEnabled = true; + this.metroTextBox2.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroTextBox2.UseSelectable = true; + this.metroTextBox2.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.metroTextBox2.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // metroLabel2 + // + resources.ApplyResources(this.metroLabel2, "metroLabel2"); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // metroTextBox1 + // + // + // + // + this.metroTextBox1.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1"))); + this.metroTextBox1.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1"))); + this.metroTextBox1.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1"))); + this.metroTextBox1.CustomButton.Name = ""; + this.metroTextBox1.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1"))); + this.metroTextBox1.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.metroTextBox1.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1"))); + this.metroTextBox1.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.metroTextBox1.CustomButton.UseSelectable = true; + this.metroTextBox1.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1"))); + this.metroTextBox1.Lines = new string[0]; + resources.ApplyResources(this.metroTextBox1, "metroTextBox1"); + this.metroTextBox1.MaxLength = 32767; + this.metroTextBox1.Name = "metroTextBox1"; + this.metroTextBox1.PasswordChar = '\0'; + this.metroTextBox1.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.metroTextBox1.SelectedText = ""; + this.metroTextBox1.SelectionLength = 0; + this.metroTextBox1.SelectionStart = 0; + this.metroTextBox1.ShortcutsEnabled = true; + this.metroTextBox1.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroTextBox1.UseSelectable = true; + this.metroTextBox1.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.metroTextBox1.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.metroTextBox1.TextChanged += new System.EventHandler(this.metroTextBox1_TextChanged); + // + // metroLabel1 + // + resources.ApplyResources(this.metroLabel1, "metroLabel1"); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // pictureBox1 + // + this.pictureBox1.BackColor = System.Drawing.Color.Gray; + resources.ApplyResources(this.pictureBox1, "pictureBox1"); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.TabStop = false; + // + // menuStrip + // + resources.ApplyResources(this.menuStrip, "menuStrip"); + this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem}); - this.menuStrip.Name = "menuStrip"; - // - // fileToolStripMenuItem - // - resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem"); - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.menuStrip.Name = "menuStrip"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.saveToolStripMenuItem1}); - this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White; - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - // - // saveToolStripMenuItem1 - // - resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1"); - this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1"; - this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click); - // - // metroPanel2 - // - resources.ApplyResources(this.metroPanel2, "metroPanel2"); - this.metroPanel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.metroPanel2.Controls.Add(this.treeView1); - this.metroPanel2.HorizontalScrollbarBarColor = true; - this.metroPanel2.HorizontalScrollbarHighlightOnWheel = false; - this.metroPanel2.HorizontalScrollbarSize = 10; - this.metroPanel2.Name = "metroPanel2"; - this.metroPanel2.VerticalScrollbarBarColor = true; - this.metroPanel2.VerticalScrollbarHighlightOnWheel = false; - this.metroPanel2.VerticalScrollbarSize = 10; - // - // treeView1 - // - resources.ApplyResources(this.treeView1, "treeView1"); - this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.treeView1.ForeColor = System.Drawing.Color.White; - this.treeView1.LabelEdit = true; - this.treeView1.Name = "treeView1"; - this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); - // - // COLEditor - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.metroPanel2); - this.Controls.Add(this.menuStrip); - this.Controls.Add(this.metroPanel1); - this.Name = "COLEditor"; - this.Style = MetroFramework.MetroColorStyle.Silver; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroPanel1.ResumeLayout(false); - this.metroPanel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.menuStrip.ResumeLayout(false); - this.menuStrip.PerformLayout(); - this.metroPanel2.ResumeLayout(false); - this.ResumeLayout(false); + this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White; + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem"); + // + // saveToolStripMenuItem1 + // + resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1"); + this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1"; + this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click); + // + // metroPanel2 + // + this.metroPanel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.metroPanel2.Controls.Add(this.treeView1); + resources.ApplyResources(this.metroPanel2, "metroPanel2"); + this.metroPanel2.HorizontalScrollbarBarColor = true; + this.metroPanel2.HorizontalScrollbarHighlightOnWheel = false; + this.metroPanel2.HorizontalScrollbarSize = 10; + this.metroPanel2.Name = "metroPanel2"; + this.metroPanel2.VerticalScrollbarBarColor = true; + this.metroPanel2.VerticalScrollbarHighlightOnWheel = false; + this.metroPanel2.VerticalScrollbarSize = 10; + // + // treeView1 + // + this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + resources.ApplyResources(this.treeView1, "treeView1"); + this.treeView1.ForeColor = System.Drawing.Color.White; + this.treeView1.LabelEdit = true; + this.treeView1.Name = "treeView1"; + this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + // + // COLEditor + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.metroPanel2); + this.Controls.Add(this.menuStrip); + this.Controls.Add(this.metroPanel1); + this.Name = "COLEditor"; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroPanel1.ResumeLayout(false); + this.metroPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.metroPanel2.ResumeLayout(false); + this.ResumeLayout(false); } diff --git a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.resx b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.resx index a14def0e..36dab9ab 100644 --- a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.resx +++ b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.resx @@ -117,59 +117,52 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - metroLabel1 - - - - Tile + + + False - - 127, 23 - - - 173, 163 - - - None - - - metroPanel1 - - - metroTextBox2 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 373, 338 67, 20 - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + 16 - - 37, 20 + + numericUpDown3 - - MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + metroPanel1 + + + 2 - False - - -1 + + 373, 310 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 67, 20 - - 2 + + 15 - - + + numericUpDown2 + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + metroPanel1 3 @@ -177,158 +170,288 @@ False - - 16 - - - Fill - - - 105, 1 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroTextBox1 - - - None - - - metroPanel1 - 373, 281 - - Overlay - - - metroLabel3 - - - menuStrip1 - - - COL Editor - - - False - - - 20, 19 - - - metroLabel4 - - - 48, 19 - - - MiddleCenter - - - 12 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - 205, 497 - - - 350, 281 - - - pictureBox1 - - - metroPanel1 - - - 6, 13 - - - True - - - 207, 499 - - - $this - - - MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - 8 - - - - - - Top, Left - - - 10 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - 67, 20 - - 20, 60 + + 14 - - Use RGB Values + + numericUpDown1 - - 15 + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - R: + + metroPanel1 - - $this + + 4 - - MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + True + + + 350, 339 + + + 20, 19 + + + 12 + + + B: + + + metroLabel5 + + + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + + 5 + + + True 350, 310 - - 0, 0 + + 21, 19 - - + + 10 - - GrowOnly + + G: + + + metroLabel4 + + + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + + 6 + + + True + + + 350, 281 + + + 20, 19 + + + 8 + + + R: + + + metroLabel3 + + + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 7 + + True + + + 397, 260 + 103, 15 - - System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 7 + + + Use RGB Values + + + metroCheckBox1 + + + MetroFramework.Controls.MetroCheckBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + + 8 + + + + + + + NoControl + + + 105, 1 + + + 21, 21 + + + 1 + + + False + + + 373, 205 + + + 127, 23 + + + 6 + + + metroTextBox2 + + + MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + + 9 + + + True + + + 327, 205 + + + 48, 19 + + + 5 Name: - + + metroLabel2 + + + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + + 10 + + + + + + NoControl + + + 105, 1 + + + 21, 21 + + + 1 + + + False + + + 373, 231 + + + 127, 23 + + + 4 + + + metroTextBox1 + + + MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + + 11 + + True + + 327, 231 + + + 46, 19 + + + 3 + Color: - - 1 + + metroLabel1 + + + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + + 12 + + + 327, 38 + + + 173, 163 + + + 2 + + + pictureBox1 + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + metroPanel1 + + + 13 Fill @@ -336,12 +459,30 @@ 20, 60 - - metroPanel1 + + 612, 523 + + + 0 metroPanel1 + + MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + $this + + + 2 + + + 17, 17 + + + False + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -352,367 +493,121 @@ 38gYasBfqDYE0K7dOn/Wvut/sfkdGYPUgJI9VNuAAwYGAGn6yvdevWgPAAAAAElFTkSuQmCC - - COLEditor - - - 6 - - - 3 - - - numericUpDown3 - - - 105, 1 - - - MiddleCenter - - - 12 - - - 20, 84 - - - 11 - - - saveToolStripMenuItem1 - - - - - - - - - metroPanel2 - - - 4 - - - 21, 19 - - - 2 + + 98, 22 Save - - 46, 19 - - - metroPanel1 - - - 373, 231 - - - - - - metroPanel1 - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Inherit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - metroPanel1 - - - -1 - - - 6 - - - 0, 0 - - - True - - - Inherit - - - MiddleCenter - - - MetroFramework.Controls.MetroCheckBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - MiddleCenter - - - - - - - - - 98, 22 - - - 327, 205 - - - menuStrip - - - metroLabel2 - - - 1 - - - G: - - - numericUpDown1 - - - B: - - - 127, 23 - - - Standard - - - 5 - - - metroPanel2 - - - Inherit - - - False - - - 0, 0, 0, 0 - - - 373, 310 - - - 397, 260 - - - $this + + 37, 20 File - - 10 - - - metroLabel5 - - - True - - - False - - - MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - Left - - - 0 - - - treeView1 - - - False + + 20, 60 612, 24 - - 2 + + 3 - - MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + menuStrip1 - - metroCheckBox1 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - - - - 10 - - - 20, 19 - - - 9 - - - 1 - - - 21, 21 - - - Standard - - - 13 - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 350, 339 - - - Overlay - - - 0, 0 - - - 4 - - - Top, Left - - - 0 - - - fileToolStripMenuItem - - - 373, 205 - - - metroPanel1 - - - 21, 21 - - - 327, 38 - - - Tile - - - 652, 603 - - - 14 - - - 7 - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - FC4B0D - - - True - - - 4 - - - metroPanel1 - - - 373, 338 - - - 2 - - - 327, 231 - - - False - - - Inherit - - - 8 + + menuStrip System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - metroPanel1 + + $this - - GrowOnly + + 1 - - 3 + + Fill - - True + + 0, 0 - - metroPanel1 + + 0, 0, 0, 0 - - numericUpDown2 + + 205, 497 - - metroPanel1 + + 10 - - 612, 523 + + treeView1 - - + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 67, 20 + + metroPanel2 - - + + 2 - - + + Left - - 5 + + 20, 84 + + + 207, 499 + + + 4 + + + metroPanel2 + + + MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + $this + + + 0 True - - 17, 17 - + + 6, 13 + + + 652, 603 + + + COL Editor + + + fileToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + saveToolStripMenuItem1 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + COLEditor + + + MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + \ No newline at end of file diff --git a/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.Designer.cs b/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.Designer.cs index ec80df42..c657b98e 100644 --- a/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.Designer.cs +++ b/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.Designer.cs @@ -28,95 +28,95 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LOCEditor)); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.addDisplayIDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteDisplayIDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.locSort = new PckStudio.Forms.MyTablePanel(); - this.buttonReplaceAll = new System.Windows.Forms.Button(); - this.dataGridViewLocEntryData = new System.Windows.Forms.DataGridView(); - this.textBoxReplaceAll = new System.Windows.Forms.TextBox(); - this.treeViewLocEntries = new System.Windows.Forms.TreeView(); - this.contextMenuStrip1.SuspendLayout(); - this.locSort.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dataGridViewLocEntryData)).BeginInit(); - this.SuspendLayout(); - // - // contextMenuStrip1 - // - resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1"); - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LOCEditor)); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.addDisplayIDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteDisplayIDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.locSort = new PckStudio.Forms.MyTablePanel(); + this.buttonReplaceAll = new System.Windows.Forms.Button(); + this.dataGridViewLocEntryData = new System.Windows.Forms.DataGridView(); + this.textBoxReplaceAll = new System.Windows.Forms.TextBox(); + this.treeViewLocEntries = new System.Windows.Forms.TreeView(); + this.contextMenuStrip1.SuspendLayout(); + this.locSort.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridViewLocEntryData)).BeginInit(); + this.SuspendLayout(); + // + // contextMenuStrip1 + // + resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1"); + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addDisplayIDToolStripMenuItem, this.deleteDisplayIDToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - // - // addDisplayIDToolStripMenuItem - // - resources.ApplyResources(this.addDisplayIDToolStripMenuItem, "addDisplayIDToolStripMenuItem"); - this.addDisplayIDToolStripMenuItem.Name = "addDisplayIDToolStripMenuItem"; - // - // deleteDisplayIDToolStripMenuItem - // - resources.ApplyResources(this.deleteDisplayIDToolStripMenuItem, "deleteDisplayIDToolStripMenuItem"); - this.deleteDisplayIDToolStripMenuItem.Name = "deleteDisplayIDToolStripMenuItem"; - this.deleteDisplayIDToolStripMenuItem.Click += new System.EventHandler(this.deleteDisplayIDToolStripMenuItem_Click); - // - // locSort - // - resources.ApplyResources(this.locSort, "locSort"); - this.locSort.AccessibleRole = System.Windows.Forms.AccessibleRole.Table; - this.locSort.Controls.Add(this.buttonReplaceAll, 2, 0); - this.locSort.Controls.Add(this.dataGridViewLocEntryData, 1, 1); - this.locSort.Controls.Add(this.textBoxReplaceAll, 1, 0); - this.locSort.Controls.Add(this.treeViewLocEntries, 0, 0); - this.locSort.Name = "locSort"; - // - // buttonReplaceAll - // - resources.ApplyResources(this.buttonReplaceAll, "buttonReplaceAll"); - this.buttonReplaceAll.ForeColor = System.Drawing.Color.White; - this.buttonReplaceAll.Name = "buttonReplaceAll"; - this.buttonReplaceAll.UseVisualStyleBackColor = true; - this.buttonReplaceAll.Click += new System.EventHandler(this.buttonReplaceAll_Click); - // - // dataGridViewLocEntryData - // - resources.ApplyResources(this.dataGridViewLocEntryData, "dataGridViewLocEntryData"); - this.dataGridViewLocEntryData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.locSort.SetColumnSpan(this.dataGridViewLocEntryData, 2); - this.dataGridViewLocEntryData.Name = "dataGridViewLocEntryData"; - this.dataGridViewLocEntryData.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellEndEdit); - // - // textBoxReplaceAll - // - resources.ApplyResources(this.textBoxReplaceAll, "textBoxReplaceAll"); - this.textBoxReplaceAll.Name = "textBoxReplaceAll"; - // - // treeViewLocEntries - // - resources.ApplyResources(this.treeViewLocEntries, "treeViewLocEntries"); - this.treeViewLocEntries.ContextMenuStrip = this.contextMenuStrip1; - this.treeViewLocEntries.LabelEdit = true; - this.treeViewLocEntries.Name = "treeViewLocEntries"; - this.locSort.SetRowSpan(this.treeViewLocEntries, 2); - this.treeViewLocEntries.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); - this.treeViewLocEntries.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown); - // - // LOCEditor - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.locSort); - this.Name = "LOCEditor"; - this.Style = MetroFramework.MetroColorStyle.Silver; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.Load += new System.EventHandler(this.LOCEditor_Load); - this.contextMenuStrip1.ResumeLayout(false); - this.locSort.ResumeLayout(false); - this.locSort.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dataGridViewLocEntryData)).EndInit(); - this.ResumeLayout(false); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + // + // addDisplayIDToolStripMenuItem + // + resources.ApplyResources(this.addDisplayIDToolStripMenuItem, "addDisplayIDToolStripMenuItem"); + this.addDisplayIDToolStripMenuItem.Name = "addDisplayIDToolStripMenuItem"; + // + // deleteDisplayIDToolStripMenuItem + // + resources.ApplyResources(this.deleteDisplayIDToolStripMenuItem, "deleteDisplayIDToolStripMenuItem"); + this.deleteDisplayIDToolStripMenuItem.Name = "deleteDisplayIDToolStripMenuItem"; + this.deleteDisplayIDToolStripMenuItem.Click += new System.EventHandler(this.deleteDisplayIDToolStripMenuItem_Click); + // + // locSort + // + resources.ApplyResources(this.locSort, "locSort"); + this.locSort.AccessibleRole = System.Windows.Forms.AccessibleRole.Table; + this.locSort.Controls.Add(this.buttonReplaceAll, 2, 0); + this.locSort.Controls.Add(this.dataGridViewLocEntryData, 1, 1); + this.locSort.Controls.Add(this.textBoxReplaceAll, 1, 0); + this.locSort.Controls.Add(this.treeViewLocEntries, 0, 0); + this.locSort.Name = "locSort"; + // + // buttonReplaceAll + // + resources.ApplyResources(this.buttonReplaceAll, "buttonReplaceAll"); + this.buttonReplaceAll.ForeColor = System.Drawing.Color.White; + this.buttonReplaceAll.Name = "buttonReplaceAll"; + this.buttonReplaceAll.UseVisualStyleBackColor = true; + this.buttonReplaceAll.Click += new System.EventHandler(this.buttonReplaceAll_Click); + // + // dataGridViewLocEntryData + // + resources.ApplyResources(this.dataGridViewLocEntryData, "dataGridViewLocEntryData"); + this.dataGridViewLocEntryData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.locSort.SetColumnSpan(this.dataGridViewLocEntryData, 2); + this.dataGridViewLocEntryData.Name = "dataGridViewLocEntryData"; + this.dataGridViewLocEntryData.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellEndEdit); + // + // textBoxReplaceAll + // + resources.ApplyResources(this.textBoxReplaceAll, "textBoxReplaceAll"); + this.textBoxReplaceAll.Name = "textBoxReplaceAll"; + // + // treeViewLocEntries + // + resources.ApplyResources(this.treeViewLocEntries, "treeViewLocEntries"); + this.treeViewLocEntries.ContextMenuStrip = this.contextMenuStrip1; + this.treeViewLocEntries.LabelEdit = true; + this.treeViewLocEntries.Name = "treeViewLocEntries"; + this.locSort.SetRowSpan(this.treeViewLocEntries, 2); + this.treeViewLocEntries.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + this.treeViewLocEntries.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown); + // + // LOCEditor + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.locSort); + this.Name = "LOCEditor"; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.Load += new System.EventHandler(this.LOCEditor_Load); + this.contextMenuStrip1.ResumeLayout(false); + this.locSort.ResumeLayout(false); + this.locSort.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridViewLocEntryData)).EndInit(); + this.ResumeLayout(false); } diff --git a/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.ja.resx b/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.ja.resx index 5527188e..ec081917 100644 --- a/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.ja.resx +++ b/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.ja.resx @@ -119,19 +119,19 @@ - 178, 22 + 180, 22 ディスプレイIDを追加 - 178, 22 + 180, 22 表示IDを削除 - 179, 48 + 181, 70 すべて置換 diff --git a/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.resx b/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.resx index 43db244c..7070042b 100644 --- a/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.resx +++ b/MinecraftUSkinEditor/Forms/Utilities/LOCEditor.resx @@ -125,8 +125,8 @@ Fill - - 901, 667 + + deleteDisplayIDToolStripMenuItem @@ -138,9 +138,6 @@ Add Display ID - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 303, 3 @@ -1875,15 +1872,12 @@ treeViewLocEntries - - 475, 20 + + PckStudio.Forms.MyTablePanel, PCK Studio, Version=5.3.0.0, Culture=neutral, PublicKeyToken=null 163, 48 - - LOC Editor - 784, 3 @@ -1905,6 +1899,9 @@ 4 + + Replace All + 901, 667 @@ -1914,14 +1911,17 @@ Flat + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="buttonReplaceAll" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="dataGridViewLocEntryData" Row="1" RowSpan="1" Column="1" ColumnSpan="2" /><Control Name="textBoxReplaceAll" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="treeViewLocEntries" Row="0" RowSpan="2" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Absolute,300,Percent,100,AutoSize,0" /><Rows Styles="AutoSize,0,Percent,100" /></TableLayoutSettings> Delete Display ID - - Replace All + + 901, 667 3 @@ -1938,6 +1938,9 @@ 20, 60 + + addDisplayIDToolStripMenuItem + 555, 552 @@ -1965,8 +1968,8 @@ locSort - - 6, 13 + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 0 @@ -1977,8 +1980,8 @@ 0 - - System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dataGridViewLocEntryData @@ -1986,23 +1989,20 @@ System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 162, 22 $this - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 CenterParent - - addDisplayIDToolStripMenuItem + + 475, 20 1 @@ -2016,17 +2016,17 @@ MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - PckStudio.Forms.MyTablePanel, PCK Studio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + 6, 13 locSort - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + LOC Editor - - deleteDisplayIDToolStripMenuItem + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 buttonReplaceAll diff --git a/MinecraftUSkinEditor/PckStudio.csproj b/MinecraftUSkinEditor/PckStudio.csproj index 3537aec2..cdf4f393 100644 --- a/MinecraftUSkinEditor/PckStudio.csproj +++ b/MinecraftUSkinEditor/PckStudio.csproj @@ -148,7 +148,6 @@ ..\packages\MapSuiteDependency-MicrosoftSqlServerTypes.10.2.0\lib\net45\Microsoft.SqlServer.Types.dll True - ..\packages\Microsoft.Win32.Primitives.4.0.0\lib\net46\Microsoft.Win32.Primitives.dll True @@ -480,6 +479,18 @@ addAnimatedTexture.cs + + Form + + + rename.cs + + + Form + + + addCategory.cs + Form @@ -561,6 +572,12 @@ Testx-12.cs + + Form + + + AudioEditor.cs + Form @@ -688,6 +705,18 @@ addAnimatedTexture.cs + + rename.cs + + + rename.cs + + + addCategory.cs + + + addCategory.cs + addMeta.cs @@ -759,6 +788,9 @@ Testx-12.cs + + AudioEditor.cs + COLEditor.cs