From 128c09e7b4f5444e5c34a0448fe2e5db23d5391c Mon Sep 17 00:00:00 2001 From: feos Date: Sat, 28 Nov 2015 22:17:36 +0300 Subject: [PATCH] progress with lua: - added fceux and gens/snes9x pixelated fonts - added gui.pixelFont() function for them (no resizing, so perfectly scalable) - added background to drawText and pixelText (halo was painfully slow, so just a box) - reordered fore and back colors for gui.text (no need to specify back every time we want to change fore). thought its back color was shadow, that is obsoleted by halo now, whose color we can't change. anyway, it's way slower than simple text functions, so they should be used mostly. - option to toggle all scripts if none is selected. greatly reduces routine when heavily tweaking a script, and is just generally pretty. --- BizHawk.Client.Common/config/Config.cs | 1 + .../BizHawk.Client.EmuHawk.csproj | 2 + .../DisplayManager/DisplayManager.cs | 20 +++ BizHawk.Client.EmuHawk/Resources/fceux.ttf | Bin 0 -> 13560 bytes BizHawk.Client.EmuHawk/Resources/gens.ttf | Bin 0 -> 11528 bytes .../tools/Lua/Libraries/EmuLuaLibrary.Gui.cs | 63 +++++++- .../tools/Lua/LuaConsole.Designer.cs | 90 ++++++----- .../tools/Lua/LuaConsole.cs | 9 +- .../tools/Lua/LuaConsole.resx | 148 +++++++++--------- 9 files changed, 214 insertions(+), 119 deletions(-) create mode 100644 BizHawk.Client.EmuHawk/Resources/fceux.ttf create mode 100644 BizHawk.Client.EmuHawk/Resources/gens.ttf diff --git a/BizHawk.Client.Common/config/Config.cs b/BizHawk.Client.Common/config/Config.cs index ea8487d026..a6ea9127eb 100644 --- a/BizHawk.Client.Common/config/Config.cs +++ b/BizHawk.Client.Common/config/Config.cs @@ -312,6 +312,7 @@ namespace BizHawk.Client.Common public RecentFiles RecentLua = new RecentFiles(8); public RecentFiles RecentLuaSession = new RecentFiles(8); public bool DisableLuaScriptsOnLoad = false; + public bool ReturnAllIfNoneSelected = true; public bool RunLuaDuringTurbo = true; // Watch Settings diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj index 852c8809ab..3ceb7ebfe2 100644 --- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj +++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj @@ -1687,6 +1687,8 @@ + + diff --git a/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs b/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs index 3d7e6fa2a5..b4976a4f34 100644 --- a/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs +++ b/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs @@ -63,6 +63,11 @@ namespace BizHawk.Client.EmuHawk using (var tex = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.courier16px_0.png")) TheOneFont = new StringRenderer(GL, xml, tex); + using (var gens = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.gens.ttf")) + LoadCustomFont(gens); + using (var fceux = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.fceux.ttf")) + LoadCustomFont(fceux); + if (GL is BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK || GL is BizHawk.Bizware.BizwareGL.Drivers.SlimDX.IGL_SlimDX9) { var fiHq2x = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk/hq2x.cgp")); @@ -134,6 +139,11 @@ namespace BizHawk.Client.EmuHawk /// public System.Windows.Forms.Padding ClientExtraPadding; + /// + /// custom fonts that don't need to be installed on the user side + /// + public System.Drawing.Text.PrivateFontCollection CustomFonts = new System.Drawing.Text.PrivateFontCollection(); + TextureFrugalizer VideoTextureFrugalizer; Dictionary LuaSurfaceFrugalizers = new Dictionary(); RenderTargetFrugalizer[] ShaderChainFrugalizers; @@ -760,7 +770,17 @@ namespace BizHawk.Client.EmuHawk NeedsToPaint = false; //?? } + } + private void LoadCustomFont(Stream fontstream) + { + System.IntPtr data = System.Runtime.InteropServices.Marshal.AllocCoTaskMem((int)fontstream.Length); + byte[] fontdata = new byte[fontstream.Length]; + fontstream.Read(fontdata, 0, (int)fontstream.Length); + System.Runtime.InteropServices.Marshal.Copy(fontdata, 0, data, (int)fontstream.Length); + CustomFonts.AddMemoryFont(data, fontdata.Length); + fontstream.Close(); + System.Runtime.InteropServices.Marshal.FreeCoTaskMem(data); } bool? LastVsyncSetting; diff --git a/BizHawk.Client.EmuHawk/Resources/fceux.ttf b/BizHawk.Client.EmuHawk/Resources/fceux.ttf new file mode 100644 index 0000000000000000000000000000000000000000..61ee7ae6a98ccbad4ae65566905300c9f13a5e67 GIT binary patch literal 13560 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 Nptlb(_dN@`_+KsQV^#nF literal 0 HcmV?d00001 diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs index 1a56ebf845..01e8422fa5 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Drawing.Drawing2D; using System.Globalization; using LuaInterface; @@ -23,6 +24,7 @@ namespace BizHawk.Client.EmuHawk private Color DefaultForeground = Color.White; private Color? DefaultBackground = null; + private Color? DefaultTextBackground = Color.FromArgb(128, 0, 0, 0); public override string Name { get { return "gui"; } } @@ -499,12 +501,13 @@ namespace BizHawk.Client.EmuHawk int x, int y, string message, - Color? color = null, + Color? forecolor = null, + Color? backcolor = null, int? fontsize = null, string fontfamily = null, string fontstyle = null) { - DrawText(x, y, message, color, fontsize, fontfamily, fontstyle); + DrawText(x, y, message, forecolor, backcolor, fontsize, fontfamily, fontstyle); } [LuaMethodAttributes( @@ -515,7 +518,8 @@ namespace BizHawk.Client.EmuHawk int x, int y, string message, - Color? color = null, + Color? forecolor = null, + Color? backcolor = null, int? fontsize = null, string fontfamily = null, string fontstyle = null) @@ -555,8 +559,57 @@ namespace BizHawk.Client.EmuHawk } var font = new Font(family, fontsize ?? 12, fstyle, GraphicsUnit.Pixel); + Size sizeOfText = g.MeasureString(message, font).ToSize(); + Rectangle rect = new Rectangle(new Point(x, y), sizeOfText); + g.FillRectangle(GetBrush(backcolor ?? DefaultTextBackground.Value), rect); g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; - g.DrawString(message, font, GetBrush(color ?? DefaultForeground), x, y); + g.DrawString(message, font, GetBrush(forecolor ?? DefaultForeground), x, y); + } + catch (Exception) + { + return; + } + } + } + + [LuaMethodAttributes( + "pixelText", + "Draws the given message in the emulator screen space (like all draw functions) at the given x,y coordinates and the given color. The default color is white. A fontfamily can be specified and is monospace generic if none is specified (font family options are the same as the .NET FontFamily class. The fontsize default is 12. The default font style. Font style options are regular, bold, italic, strikethrough, underline" + )] + public void DrawText( + int x, + int y, + string message, + Color? forecolor = null, + Color? backcolor = null, + string fontfamily = null) + { + GlobalWin.DisplayManager.NeedsToPaint = true; + using (var g = GetGraphics()) + { + try + { + var index = 0; + if (!string.IsNullOrEmpty(fontfamily)) + { + switch (fontfamily) + { + case "fceux": + case "0": + index = 0; + break; + case "gens": + case "1": + index = 1; + break; + } + } + var font = new Font(GlobalWin.DisplayManager.CustomFonts.Families[index], 8, FontStyle.Regular, GraphicsUnit.Pixel); + Size sizeOfText = g.MeasureString(message, font, 0, StringFormat.GenericTypographic).ToSize(); + Rectangle rect = new Rectangle(new Point(x, y), sizeOfText); + g.FillRectangle(GetBrush(backcolor ?? DefaultTextBackground.Value), rect); + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; + g.DrawString(message, font, GetBrush(forecolor ?? DefaultForeground), x, y); } catch (Exception) { @@ -573,8 +626,8 @@ namespace BizHawk.Client.EmuHawk int x, int y, string message, - Color? background = null, Color? forecolor = null, + Color? background = null, string anchor = null) { var a = 0; diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs index 5d14d6f23e..5d9958e786 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.Designer.cs @@ -101,6 +101,7 @@ this.PathName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.imageList1 = new System.Windows.Forms.ImageList(this.components); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.ReturnAllIfNoneSelectedMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ScriptListContextMenu.SuspendLayout(); this.menuStrip1.SuspendLayout(); this.ConsoleContextMenu.SuspendLayout(); @@ -123,14 +124,14 @@ this.ScriptContextSeparator, this.StopAllScriptsContextItem}); this.ScriptListContextMenu.Name = "contextMenuStrip1"; - this.ScriptListContextMenu.Size = new System.Drawing.Size(158, 142); + this.ScriptListContextMenu.Size = new System.Drawing.Size(169, 142); this.ScriptListContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.ScriptListContextMenu_Opening); // // ToggleScriptContextItem // this.ToggleScriptContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Refresh1; this.ToggleScriptContextItem.Name = "ToggleScriptContextItem"; - this.ToggleScriptContextItem.Size = new System.Drawing.Size(157, 22); + this.ToggleScriptContextItem.Size = new System.Drawing.Size(168, 22); this.ToggleScriptContextItem.Text = "&Toggle"; this.ToggleScriptContextItem.Click += new System.EventHandler(this.ToggleScriptMenuItem_Click); // @@ -138,7 +139,7 @@ // this.PauseScriptContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Pause; this.PauseScriptContextItem.Name = "PauseScriptContextItem"; - this.PauseScriptContextItem.Size = new System.Drawing.Size(157, 22); + this.PauseScriptContextItem.Size = new System.Drawing.Size(168, 22); this.PauseScriptContextItem.Text = "Pause or Resume"; this.PauseScriptContextItem.Click += new System.EventHandler(this.PauseScriptMenuItem_Click); // @@ -146,7 +147,7 @@ // this.EditScriptContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CutHS; this.EditScriptContextItem.Name = "EditScriptContextItem"; - this.EditScriptContextItem.Size = new System.Drawing.Size(157, 22); + this.EditScriptContextItem.Size = new System.Drawing.Size(168, 22); this.EditScriptContextItem.Text = "&Edit"; this.EditScriptContextItem.Click += new System.EventHandler(this.EditScriptMenuItem_Click); // @@ -154,7 +155,7 @@ // this.RemoveScriptContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Close; this.RemoveScriptContextItem.Name = "RemoveScriptContextItem"; - this.RemoveScriptContextItem.Size = new System.Drawing.Size(157, 22); + this.RemoveScriptContextItem.Size = new System.Drawing.Size(168, 22); this.RemoveScriptContextItem.Text = "&Remove"; this.RemoveScriptContextItem.Click += new System.EventHandler(this.RemoveScriptMenuItem_Click); // @@ -162,20 +163,20 @@ // this.InsertSeperatorContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.InsertSeparator; this.InsertSeperatorContextItem.Name = "InsertSeperatorContextItem"; - this.InsertSeperatorContextItem.Size = new System.Drawing.Size(157, 22); + this.InsertSeperatorContextItem.Size = new System.Drawing.Size(168, 22); this.InsertSeperatorContextItem.Text = "Insert Seperator"; this.InsertSeperatorContextItem.Click += new System.EventHandler(this.InsertSeparatorMenuItem_Click); // // ScriptContextSeparator // this.ScriptContextSeparator.Name = "ScriptContextSeparator"; - this.ScriptContextSeparator.Size = new System.Drawing.Size(154, 6); + this.ScriptContextSeparator.Size = new System.Drawing.Size(165, 6); // // StopAllScriptsContextItem // this.StopAllScriptsContextItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopAllScriptsContextItem.Name = "StopAllScriptsContextItem"; - this.StopAllScriptsContextItem.Size = new System.Drawing.Size(157, 22); + this.StopAllScriptsContextItem.Size = new System.Drawing.Size(168, 22); this.StopAllScriptsContextItem.Text = "Stop All Scripts"; this.StopAllScriptsContextItem.Click += new System.EventHandler(this.StopAllScriptsMenuItem_Click); // @@ -216,7 +217,7 @@ this.NewSessionMenuItem.Name = "NewSessionMenuItem"; this.NewSessionMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.N))); - this.NewSessionMenuItem.Size = new System.Drawing.Size(232, 22); + this.NewSessionMenuItem.Size = new System.Drawing.Size(243, 22); this.NewSessionMenuItem.Text = "&New Session"; this.NewSessionMenuItem.Click += new System.EventHandler(this.NewSessionMenuItem_Click); // @@ -226,7 +227,7 @@ this.OpenSessionMenuItem.Name = "OpenSessionMenuItem"; this.OpenSessionMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.O))); - this.OpenSessionMenuItem.Size = new System.Drawing.Size(232, 22); + this.OpenSessionMenuItem.Size = new System.Drawing.Size(243, 22); this.OpenSessionMenuItem.Text = "&Open Session..."; this.OpenSessionMenuItem.Click += new System.EventHandler(this.OpenSessionMenuItem_Click); // @@ -235,7 +236,7 @@ this.SaveSessionMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; this.SaveSessionMenuItem.Name = "SaveSessionMenuItem"; this.SaveSessionMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.SaveSessionMenuItem.Size = new System.Drawing.Size(232, 22); + this.SaveSessionMenuItem.Size = new System.Drawing.Size(243, 22); this.SaveSessionMenuItem.Text = "&Save Session"; this.SaveSessionMenuItem.Click += new System.EventHandler(this.SaveSessionMenuItem_Click); // @@ -244,21 +245,21 @@ this.SaveSessionAsMenuItem.Name = "SaveSessionAsMenuItem"; this.SaveSessionAsMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.S))); - this.SaveSessionAsMenuItem.Size = new System.Drawing.Size(232, 22); + this.SaveSessionAsMenuItem.Size = new System.Drawing.Size(243, 22); this.SaveSessionAsMenuItem.Text = "Save Session &As..."; this.SaveSessionAsMenuItem.Click += new System.EventHandler(this.SaveSessionAsMenuItem_Click); // // toolStripSeparator9 // this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.Size = new System.Drawing.Size(229, 6); + this.toolStripSeparator9.Size = new System.Drawing.Size(240, 6); // // RecentSessionsSubMenu // this.RecentSessionsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator8}); this.RecentSessionsSubMenu.Name = "RecentSessionsSubMenu"; - this.RecentSessionsSubMenu.Size = new System.Drawing.Size(232, 22); + this.RecentSessionsSubMenu.Size = new System.Drawing.Size(243, 22); this.RecentSessionsSubMenu.Text = "Recent Sessions"; this.RecentSessionsSubMenu.DropDownOpened += new System.EventHandler(this.RecentSessionsSubMenu_DropDownOpened); // @@ -273,7 +274,7 @@ this.toolStripSeparator3}); this.RecentScriptsSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.RecentScriptsSubMenu.Name = "RecentScriptsSubMenu"; - this.RecentScriptsSubMenu.Size = new System.Drawing.Size(232, 22); + this.RecentScriptsSubMenu.Size = new System.Drawing.Size(243, 22); this.RecentScriptsSubMenu.Text = "Recent Scripts"; this.RecentScriptsSubMenu.DropDownOpened += new System.EventHandler(this.RecentScriptsSubMenu_DropDownOpened); // @@ -285,13 +286,13 @@ // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(229, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(240, 6); // // ExitMenuItem // this.ExitMenuItem.Name = "ExitMenuItem"; this.ExitMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.ExitMenuItem.Size = new System.Drawing.Size(232, 22); + this.ExitMenuItem.Size = new System.Drawing.Size(243, 22); this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // @@ -324,7 +325,7 @@ this.NewScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.NewFile; this.NewScriptMenuItem.Name = "NewScriptMenuItem"; this.NewScriptMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); - this.NewScriptMenuItem.Size = new System.Drawing.Size(212, 22); + this.NewScriptMenuItem.Size = new System.Drawing.Size(223, 22); this.NewScriptMenuItem.Text = "New Script"; this.NewScriptMenuItem.Click += new System.EventHandler(this.NewScriptMenuItem_Click); // @@ -333,7 +334,7 @@ this.OpenScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile; this.OpenScriptMenuItem.Name = "OpenScriptMenuItem"; this.OpenScriptMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.OpenScriptMenuItem.Size = new System.Drawing.Size(212, 22); + this.OpenScriptMenuItem.Size = new System.Drawing.Size(223, 22); this.OpenScriptMenuItem.Text = "&Open Script..."; this.OpenScriptMenuItem.Click += new System.EventHandler(this.OpenScriptMenuItem_Click); // @@ -342,7 +343,7 @@ this.RefreshScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Refresh1; this.RefreshScriptMenuItem.Name = "RefreshScriptMenuItem"; this.RefreshScriptMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F5; - this.RefreshScriptMenuItem.Size = new System.Drawing.Size(212, 22); + this.RefreshScriptMenuItem.Size = new System.Drawing.Size(223, 22); this.RefreshScriptMenuItem.Text = "&Re&fresh"; this.RefreshScriptMenuItem.Click += new System.EventHandler(this.RefreshScriptMenuItem_Click); // @@ -351,7 +352,7 @@ this.ToggleScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.checkbox; this.ToggleScriptMenuItem.Name = "ToggleScriptMenuItem"; this.ToggleScriptMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.T))); - this.ToggleScriptMenuItem.Size = new System.Drawing.Size(212, 22); + this.ToggleScriptMenuItem.Size = new System.Drawing.Size(223, 22); this.ToggleScriptMenuItem.Text = "&Toggle"; this.ToggleScriptMenuItem.Click += new System.EventHandler(this.ToggleScriptMenuItem_Click); // @@ -359,7 +360,7 @@ // this.PauseScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Pause; this.PauseScriptMenuItem.Name = "PauseScriptMenuItem"; - this.PauseScriptMenuItem.Size = new System.Drawing.Size(212, 22); + this.PauseScriptMenuItem.Size = new System.Drawing.Size(223, 22); this.PauseScriptMenuItem.Text = "Pause or Resume"; this.PauseScriptMenuItem.Click += new System.EventHandler(this.PauseScriptMenuItem_Click); // @@ -368,7 +369,7 @@ this.EditScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CutHS; this.EditScriptMenuItem.Name = "EditScriptMenuItem"; this.EditScriptMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E))); - this.EditScriptMenuItem.Size = new System.Drawing.Size(212, 22); + this.EditScriptMenuItem.Size = new System.Drawing.Size(223, 22); this.EditScriptMenuItem.Text = "&Edit Script"; this.EditScriptMenuItem.Click += new System.EventHandler(this.EditScriptMenuItem_Click); // @@ -377,28 +378,28 @@ this.RemoveScriptMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Delete; this.RemoveScriptMenuItem.Name = "RemoveScriptMenuItem"; this.RemoveScriptMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete; - this.RemoveScriptMenuItem.Size = new System.Drawing.Size(212, 22); + this.RemoveScriptMenuItem.Size = new System.Drawing.Size(223, 22); this.RemoveScriptMenuItem.Text = "&Remove Script"; this.RemoveScriptMenuItem.Click += new System.EventHandler(this.RemoveScriptMenuItem_Click); // // DuplicateScriptMenuItem // this.DuplicateScriptMenuItem.Name = "DuplicateScriptMenuItem"; - this.DuplicateScriptMenuItem.Size = new System.Drawing.Size(212, 22); + this.DuplicateScriptMenuItem.Size = new System.Drawing.Size(223, 22); this.DuplicateScriptMenuItem.Text = "&Duplicate Script"; this.DuplicateScriptMenuItem.Click += new System.EventHandler(this.DuplicateScriptMenuItem_Click); // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(209, 6); + this.toolStripSeparator7.Size = new System.Drawing.Size(220, 6); // // InsertSeparatorMenuItem // this.InsertSeparatorMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.InsertSeparator; this.InsertSeparatorMenuItem.Name = "InsertSeparatorMenuItem"; this.InsertSeparatorMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.I))); - this.InsertSeparatorMenuItem.Size = new System.Drawing.Size(212, 22); + this.InsertSeparatorMenuItem.Size = new System.Drawing.Size(223, 22); this.InsertSeparatorMenuItem.Text = "Insert Separator"; this.InsertSeparatorMenuItem.Click += new System.EventHandler(this.InsertSeparatorMenuItem_Click); // @@ -407,7 +408,7 @@ this.MoveUpMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveUp; this.MoveUpMenuItem.Name = "MoveUpMenuItem"; this.MoveUpMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.U))); - this.MoveUpMenuItem.Size = new System.Drawing.Size(212, 22); + this.MoveUpMenuItem.Size = new System.Drawing.Size(223, 22); this.MoveUpMenuItem.Text = "Move &Up"; this.MoveUpMenuItem.Click += new System.EventHandler(this.MoveUpMenuItem_Click); // @@ -416,7 +417,7 @@ this.MoveDownMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveDown; this.MoveDownMenuItem.Name = "MoveDownMenuItem"; this.MoveDownMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D))); - this.MoveDownMenuItem.Size = new System.Drawing.Size(212, 22); + this.MoveDownMenuItem.Size = new System.Drawing.Size(223, 22); this.MoveDownMenuItem.Text = "Move &Down"; this.MoveDownMenuItem.Click += new System.EventHandler(this.MoveDownMenuItem_Click); // @@ -424,20 +425,20 @@ // this.SelectAllMenuItem.Name = "SelectAllMenuItem"; this.SelectAllMenuItem.ShortcutKeyDisplayString = "Ctrl+A"; - this.SelectAllMenuItem.Size = new System.Drawing.Size(212, 22); + this.SelectAllMenuItem.Size = new System.Drawing.Size(223, 22); this.SelectAllMenuItem.Text = "Select &All"; this.SelectAllMenuItem.Click += new System.EventHandler(this.SelectAllMenuItem_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(209, 6); + this.toolStripSeparator6.Size = new System.Drawing.Size(220, 6); // // StopAllScriptsMenuItem // this.StopAllScriptsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopAllScriptsMenuItem.Name = "StopAllScriptsMenuItem"; - this.StopAllScriptsMenuItem.Size = new System.Drawing.Size(212, 22); + this.StopAllScriptsMenuItem.Size = new System.Drawing.Size(223, 22); this.StopAllScriptsMenuItem.Text = "Stop All Scripts"; this.StopAllScriptsMenuItem.Click += new System.EventHandler(this.StopAllScriptsMenuItem_Click); // @@ -445,14 +446,15 @@ // this.RegisteredFunctionsMenuItem.Name = "RegisteredFunctionsMenuItem"; this.RegisteredFunctionsMenuItem.ShortcutKeyDisplayString = "F12"; - this.RegisteredFunctionsMenuItem.Size = new System.Drawing.Size(212, 22); + this.RegisteredFunctionsMenuItem.Size = new System.Drawing.Size(223, 22); this.RegisteredFunctionsMenuItem.Text = "&Registered Functions..."; this.RegisteredFunctionsMenuItem.Click += new System.EventHandler(this.RegisteredFunctionsMenuItem_Click); // // SettingsSubMenu // this.SettingsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.DisableScriptsOnLoadMenuItem}); + this.DisableScriptsOnLoadMenuItem, + this.ReturnAllIfNoneSelectedMenuItem}); this.SettingsSubMenu.Name = "SettingsSubMenu"; this.SettingsSubMenu.Size = new System.Drawing.Size(58, 20); this.SettingsSubMenu.Text = "&Settings"; @@ -461,7 +463,7 @@ // DisableScriptsOnLoadMenuItem // this.DisableScriptsOnLoadMenuItem.Name = "DisableScriptsOnLoadMenuItem"; - this.DisableScriptsOnLoadMenuItem.Size = new System.Drawing.Size(184, 22); + this.DisableScriptsOnLoadMenuItem.Size = new System.Drawing.Size(213, 22); this.DisableScriptsOnLoadMenuItem.Text = "Disable Scripts on Load"; this.DisableScriptsOnLoadMenuItem.Click += new System.EventHandler(this.DisableScriptsOnLoadMenuItem_Click); // @@ -478,14 +480,14 @@ // this.FunctionsListMenuItem.Name = "FunctionsListMenuItem"; this.FunctionsListMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F1; - this.FunctionsListMenuItem.Size = new System.Drawing.Size(189, 22); + this.FunctionsListMenuItem.Size = new System.Drawing.Size(200, 22); this.FunctionsListMenuItem.Text = "&Lua Functions List"; this.FunctionsListMenuItem.Click += new System.EventHandler(this.FunctionsListMenuItem_Click); // // OnlineDocsMenuItem // this.OnlineDocsMenuItem.Name = "OnlineDocsMenuItem"; - this.OnlineDocsMenuItem.Size = new System.Drawing.Size(189, 22); + this.OnlineDocsMenuItem.Size = new System.Drawing.Size(200, 22); this.OnlineDocsMenuItem.Text = "Documentation online..."; this.OnlineDocsMenuItem.Click += new System.EventHandler(this.OnlineDocsMenuItem_Click); // @@ -510,20 +512,20 @@ this.ClearConsoleContextItem, this.RegisteredFunctionsContextItem}); this.ConsoleContextMenu.Name = "contextMenuStrip2"; - this.ConsoleContextMenu.Size = new System.Drawing.Size(176, 48); + this.ConsoleContextMenu.Size = new System.Drawing.Size(187, 48); this.ConsoleContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.ConsoleContextMenu_Opening); // // ClearConsoleContextItem // this.ClearConsoleContextItem.Name = "ClearConsoleContextItem"; - this.ClearConsoleContextItem.Size = new System.Drawing.Size(175, 22); + this.ClearConsoleContextItem.Size = new System.Drawing.Size(186, 22); this.ClearConsoleContextItem.Text = "&Clear"; this.ClearConsoleContextItem.Click += new System.EventHandler(this.ClearConsoleContextItem_Click); // // RegisteredFunctionsContextItem // this.RegisteredFunctionsContextItem.Name = "RegisteredFunctionsContextItem"; - this.RegisteredFunctionsContextItem.Size = new System.Drawing.Size(175, 22); + this.RegisteredFunctionsContextItem.Size = new System.Drawing.Size(186, 22); this.RegisteredFunctionsContextItem.Text = "&Registered Functions"; this.RegisteredFunctionsContextItem.Click += new System.EventHandler(this.RegisteredFunctionsMenuItem_Click); // @@ -789,6 +791,13 @@ this.splitContainer1.SplitterDistance = 280; this.splitContainer1.TabIndex = 7; // + // ReturnAllIfNoneSelectedMenuItem + // + this.ReturnAllIfNoneSelectedMenuItem.Name = "ReturnAllIfNoneSelectedMenuItem"; + this.ReturnAllIfNoneSelectedMenuItem.Size = new System.Drawing.Size(213, 22); + this.ReturnAllIfNoneSelectedMenuItem.Text = "Return All if None Selected"; + this.ReturnAllIfNoneSelectedMenuItem.Click += new System.EventHandler(this.ReturnAllIfNoneSelectedMenuItem_Click); + // // LuaConsole // this.AllowDrop = true; @@ -899,5 +908,6 @@ private System.Windows.Forms.TextBox InputBox; private System.Windows.Forms.SplitContainer splitContainer1; private System.Windows.Forms.ImageList imageList1; + private System.Windows.Forms.ToolStripMenuItem ReturnAllIfNoneSelectedMenuItem; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs index e83ccb0ed9..7c4b056c77 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs @@ -734,7 +734,8 @@ namespace BizHawk.Client.EmuHawk private void ToggleScriptMenuItem_Click(object sender, EventArgs e) { - foreach (var item in SelectedFiles) + var files = !SelectedFiles.Any() && Global.Config.ReturnAllIfNoneSelected ? _luaList : SelectedFiles; + foreach (var item in files) { item.Toggle(); @@ -950,6 +951,7 @@ namespace BizHawk.Client.EmuHawk private void OptionsSubMenu_DropDownOpened(object sender, EventArgs e) { DisableScriptsOnLoadMenuItem.Checked = Global.Config.DisableLuaScriptsOnLoad; + ReturnAllIfNoneSelectedMenuItem.Checked = Global.Config.ReturnAllIfNoneSelected; } private void DisableScriptsOnLoadMenuItem_Click(object sender, EventArgs e) @@ -957,6 +959,11 @@ namespace BizHawk.Client.EmuHawk Global.Config.DisableLuaScriptsOnLoad ^= true; } + private void ReturnAllIfNoneSelectedMenuItem_Click(object sender, EventArgs e) + { + Global.Config.ReturnAllIfNoneSelected ^= true; + } + #endregion #region Help diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx index 33fe22b72b..59a410b01c 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.resx @@ -133,17 +133,18 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJHSURBVDhPxZBdSNNhFMb/F110ZZEVhVBgeeHNICiiuggp - olAUyyxI0oSaH1QYC3N+tKnp5ubm1JUua5uuqdNKMwr7kApFItTUkWZqVhSVYmao5Nevvy7UoYR3HXh4 - 4XCe33nOKyy3lAY7l9RWMo0O/raWXxEyo5spVYTNvOGyfIRPfW+ptOkXqaPl6T83hcRmExSdgzAz3NVm - YWyoYla/B+1M9JtxWLPpaH22JORIjI6gKAMB0jyEimIdo4OlbuaprwVMOOMovammpDADc34qppwUrmnl - 5Kni3aFlFg2j3y1z5mnRTJccnNIltQhwq0jFry+mOXNtpWZWDx1Z1NhV3C3JwGFOw25SYjVe5oYhiUKd - HKMmwQUrMWUw/CF3NnZvvYKqUh1TvUroS3fXe7HXkwidMngTS2t5KLbregSzMY2f3Wr4qKW6LJvGR1rX - 0MLor8OhKYTJBn/GHvvxrliCTBrsOqXIoOBHh5K+hmSq7FqmexTQHuUytkaKxuNMNgYyVneA4Qd7GKjc - hjLaRzxH7gIU6JIZaEvgtk1D8wsxSWecCDgNzWFMvwxm/PkhRmr3Mli1nW9lvjRdWc0Jf+/5jzRmyWmv - S+GOLQu6U6BFjPvqKOP1AYw88WOoZif9DgmfLVtxaj1RSLdwNvrkPCA3M54KqxrnvRia9MKcGrUrqFOt - 5H7qKsqT1mGO9+Lqhc2ELdw+U/r0i+gVZ8hMiCDx3DHORwZyKnQ/hw/uYt9uCTskPvh6e7Fp41rWr/Fg - g6eHO+A/lyD8ARfG3mk9fv1YAAAAAElFTkSuQmCC + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAlpJREFUOE+tk21I + k1EYhif0oyA0sqIQCix/+GcQFFH9CCmiUBTLLEjShJofVBgL2fxoU9Pp5ubUlS5rU9f8rCyjsA+pUCRC + TR1ppmVFUSlmhq78unrnQF1KGHTg/nEOz30993PO+7qJFrmUeiv2n+Mij+XLRLLYULdF2pxlEVIDcw0p + AsyxD5fmI/rQ94pqi26eOlsfuZj+7BgSm01QdA4ih7m73Yx9qGpavwatjPebqCzOprPt8YKQgzFagqL0 + BEjyEFWVaBkdLHMxT34uYNwWR9nVTEoL0zHlp2DMSeaSRk6eKt4VWm5WM/rVPNN5SjDTLQebZEHNA1wr + UvHjk3E6tsNcV62e1r3KLGqtKm6WplNpSsVqVFJsOM8VfSKFWjkGtcyZptSYzvC7XByx3zQoqCnTMvlG + CX1prnornPUmQJcUXsbSVhGK5bIOkcmQyveeTHiv4VZ5Nk33Nc6iuSO8CIfmECYa/bE/8ON1iRipJNh5 + F0V6Bd86lfQ1JlFj1TDVq4COKCegLVIwHmGiKRB7/V6G7+5koHozymgfYRy5E1CgTWKgXcZ1i5qWp0KS + rjgBcAJawph6FszYk/2M1O1isGYLX8p9ab6wgqP+3rMvYciS01GfzA1LFvQkQ6sQ9/khxhoCGHnox1Dt + NvorxXw0b8Km8UQh2cip6GOzgNyMeKqKM7HdjqFZJ5pRk2YJ9aql3EnxoCJxNaZ4Ly6e3UDY3O6OEXRp + 59ApTpIhiyDh9GHORAZyPHQPB/ZtZ/cOMVvFPvh6e7F+3SrWrHRnraf7Xz/xf/rJ/kvxb84I3U1y+9/W + AAAAAElFTkSuQmCC @@ -153,69 +154,70 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB6 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACK DgAAAk1TRnQBSQFMAgEBAwEAASABAAEgAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA - AwABEAMAAQEBAAEgBgABECoAAo8BmAHlAbIBtAHSAf8BuwG+AdcB/wKQAZkB5zAAAY8BmAGQAeUBsgHS - AbYB/wG7AdcBvgH/AZABmQGRAecwAAGYAZMBjwHlAdIBvgGyAf8B1wHFAbsB/wGZAZIBkAHnaAABbwF0 - AaAB9QE5AUABlwH/AQUBEAGHAf8BBgEQAYcB/wEEAQ8BhwH/AQsBFQGIAf8BDgEYAYkB/wFmAWoBoQH5 - IAABbwGgAXsB9QE5AZcBRQH/AQUBhwEUAf8BBgGHARUB/wEEAYcBEgH/AQsBiAEZAf8BDgGJARwB/wFm - AaEBagH5IAABoAGFAW8B9QGXAVsBOQH/AYcBMwEFAf8BhwE0AQYB/wGHATIBBAH/AYgBNwELAf8BiQE6 - AQ4B/wGhAXoBZgH5XAABNAE8AZgB/wExATkBmAH/AbABsgHLAf8B2gHbAdoB/wLRAdUB/wHLAcwB0gH/ - AcQBxwHOAf8BWAFeAaUB/wFKAVEBjgH5ASkBMgGPAf8YAAEmAZIBMgH/ATEBmAE9Af8BsAHLAbMB/wHb - AtoB/wHRAdUB0gH/AcsB0gHLAf8BxQHOAcQB/wFYAaUBYQH/AUoBjgFSAfkBKQGPATQB/xgAAZIBTAEm - Af8BmAFWATEB/wHLAboBsAH/AtoB2wH/AdUB0wHRAf8B0gHNAcsB/wHOAcYBxAH/AaUBcwFYAf8BjgFo - AUoB+QGPAUwBKQH/VAABPQFAAZMB/QKMAZMB4wL+Af0B/wH+Af0B9QH/AvcB8wH/Ae8C7gH/Au0B6wH/ - AdkC2wH/AeMB5AHiAf8CwAHMAf8BdwF6AY0B7QFGAUwBkAH7EAABPQGTAUAB/QGMAZMBjAHjAf8B/gL/ - Af4B9QH9Af8B9wHzAfYB/wLuAe8B/wHtAesB7QH/AtsB2QH/AeQB4gHjAf8BwAHMAcIB/wF3AY0BegHt - AUYBkAFQAfsQAAGTAVMBPQH9AZMBjQGMAeMB/gP/AfUB+wH+Af8B8wH1AfcB/wHuAe8B7gH/AesB7AHt - Af8B2wHZAdoB/wLiAeQB/wHMAcUBwAH/AY0BgAF3Ae0BkAFfAUYB+0wAAXIBewGeAfMBiwGMAZ0B6wX/ - Af4B/Rf/Af4B/wHwAe8B8AH/Ac8B0AHWAf8BbgFxAYkB7QF2AXsBlAHvCAABcgGeAXwB8wGLAZ0BjgHr - Bf8B/Qb/AeMB8AHjAf8BnAHNAZwK/wH+Av8B7wLwAf8BzwHWAc8B/wFuAYkBcgHtAXYBlAF7Ae8IAAGe - AYQBcgHzAZ0BkQGLAesE/wH9F/8B/gP/AuMB4AH/Ac8ByQHHAf8BiQF5AW4B7QGUAYMBdgHvSAACagGp - AfkD/iX/AfAB8gHwAf8CxgHNAf8CRwGKAfkIAAFqAakBawH5EP8B3AHtAdwB/wERAXkBEQH/AYMBwQGD - Df8B8gHxAfAB/wHHAc4ByAH/AUcBigFNAfkIAAGpAYQBagH5DP8B4QHNAb4B/wG+AZIBjQH/AfcB8QHv - Af8B+wH4AfcB/wHBAZgBjwH/AeoB2gHRBf8B5QHiAeYB/wHOAcoBxwH/AYoBYgFHAflEAAGGAYkBrQHz - Ao4BpQHtCP8C9QH7Af8BbQFpAdQB/wGhAZ8B5wH/AaMBoQHmAf8BogGhAeUB/wGUAZEB4QH/AZ4BnAHm - Bf8B+QH4AfcB/wHnAeQB3gH/AWABZgGRAfUBWgFfAZwB+wGGAa0BjAHzAY4BpgGSAe0Q/wHkAfEB5AH/ - AQEBdQEBAf8BEQF7AREB/wGcAc4BnAn/AfkB9wH5Af8B5gHeAecB/wFgAZEBbAH1AVoBnAFfAfsBrQGV - AYYB8wGmAZcBjgHtDP8BrgF2AVQB/wFZAgAB/wH4AfUB8gH/AfoB9wH1Af8BWQIAAf8BswF7AVoF/wHx - AfQB9QH/Ad4B5gHnAf8BkQFxAWAB9QGcAW0BWgH7QAABggGIAcoB/wHQAdIB7Qn/AvUB+gH/ATsBOAG7 - Af8BZwFkAd4B/wFkAWAB2AH/AV8BWwHTAf8BUwFOAdEB/wGiAaEB6QX/AvkB+AH/AfwB+wHqAf8BowGm - Ab4B/wFDAUoBoAH/AYIBygGKAf8B0AHtAdQR/wHiAfAB4gH/AQIBdgECAf8BAAF2AQAB/wERAYQBEQH/ - AZgBzAGYBf8B+QH4AfkB/wH8AeoB+gH/AaMBvgGlAf8BQwGgAU4B/wHKAZwBggH/Ae0B2wHQDf8BugGM - AWoB/wGNASIBAAL/Av4B/wP+Af8BjQEhAQAB/wG7AYkBaAX/AfIB9AH1Af8B6gH1AfwB/wG+AawBowH/ - AaABZAFDAf9AAAF0AXoBwgH/AeUB5gH0Cf8C9wH7Af8BSgFHAcMB/wF1AXMB4wH/AXABbQHdAf8BawFo - AdgB/wFfAVoB0wH/AasBqQHqBf8D+QH/Af4B+wHvAf8BtAG2AcUB/wFBAUkBnwH/AXQBwgGBAf8B5QH0 - AecR/wHiAfAB4gH/AQEBeAEBAf8BAAF6AQAB/wEAAXIBAAH/AREBhAERAf8B+gH8AfoB/wP5Af8B/gHv - Af4B/wG0AcUBtgH/AUEBnwFMAf8BwgGTAXQB/wH0AesB5Q3/AbkBjAFrAf8BpwE4AQsB/wH7AfkB+AH/ - AfsB+gH5Af8BpwE4AQsB/wG9AYwBawX/A/QB/wHvAfoB/gH/AcUBugG0Af8BnwFiAUEB/0AAAXABdwG9 - Af8C2gHvCf8C9wH7Af8BTgFLAccB/wF7AXkB6gH/AXYBdQHjAf8BcwFxAd8B/wFmAWMB2gH/Aa0BqwHr - Bf8C+gH4Af8B/QH8Ae4B/wGdAaABuwH/AUkBUQGjAf8BcAG9AXgB/wHaAe8B3hH/AeIB8AHiAf8BAgF4 - AQIB/wEAAXABAAH/ASwBjgEsAf8B4gHwAeIF/wH6AfgB+gH/Af0B7gH7Af8BnQG7AaEB/wFJAaMBUgH/ - Ab0BjgFwAf8B7wHjAdoN/wG3AYgBZgH/AcQBRwEkAf8C/QH8Af8B/AH6AfkB/wHGAUoBJgH/AcIBjwFw - Bf8B8gH1AfcB/wHuAfcB/QH/AbsBqAGdAf8BowFoAUkB/0AAAYcBjAGkAe8BlAGVAbIB8Qj/AvYB+wH/ - AUsBRwHFAf8BegF5AesB/wF2AXUB5AH/AXQBcQHhAf8BZAFhAdsB/wGpAacB6wX/AvsB+QH/AfsB/AHu - Af8BSAFOAZQB+wGCAYMBnwHvAYcBpAGMAe8BlAGyAZkB8RD/AeIB8AHiAf8BAAFuAQAB/wEoAYcBKAH/ - AecB8wHnCf8B+wH5AfsB/wH8Ae4B+QH/AUgBlAFSAfsBggGfAYYB7wGkAZIBhwHvAbIBoAGUAfEM/wHB - AZcBegH/AaQBPgEWAf8B/QH7AfoB/wH8AfoB+QH/AZMBOQEPAf8BzAGpAZQF/wH0AfcB+QH/Ae4B9QH8 - Af8BlAFfAUgB+wGfAYwBggHvRAABewGBAc8J/wLzAfkB/wFJAUYBuQH/AYcBhgHWAf8BhwGFAdUB/wGH - AYUB1QH/AWUBYgHIAf8BbQFsAcwG/wH+AfwB/wLOAdcB/wE5AUEBmAH/CAABewHPAY0R/wHTAegB0wH/ - ASQBhwEkAf8B4gHwAeIN/wH+AfwC/wHOAdcB0AH/ATkBmAFDAf8IAAHPAaEBeyn/AfsD/wHXAdIBzgH/ - AZgBWgE5Af9IAAGMAY0BwgH5AqABvAHxJP8B/AH7AfYB/wE3AT8BlgH/AYoBiwGbAekIAAGMAcIBkAH5 - AaABvAGmAfEM/wH6AfwB+gH/Ae8B9gHvEf8B/AH2AfwB/wE3AZYBQQH/AYoBmwGKAekIAAHCAZ4BjAH5 - AbwBrQGgAfEk/wH1AfoB/AH/AZYBWAE3Af8BmwGRAYoB6UwAAYMBiQHMAf0CnAGpAekc/wHyAfUB+AH/ - AV4BaAGTAfUBcQF4AaMB9RAAAYMBzAGOAf0BnAGqAZ0B6Rz/AfQB+AHyAf8BXgGTAWgB9QFxAaMBfwH1 - EAABzAGjAYMB/QGqAaMBnAHpHP8B+ALyAf8BkwFvAV4B9QGjAYYBcQH1VAABhgGMAcgB+wGVAZcBzgH5 - AtMB9wH/AfEB8AH7Af8B9gH3Av8B9wH4Af0B/wHkAecB8wH/AYMBhgGiAe8BfwGBAaEB8wGPAZABogHr - GAABhgHIAZAB+wGVAc4BoQH5AdMB9wHaAf8B8AH7AfMB/wH2Af8B9wH/AfcB/QH4Af8B5AHzAeQB/wGD - AaIBhgHvAX8BoQGCAfMBjwGiAZAB6xgAAcgBmwGGAfsBzgGwAZUB+QH3AeMB0wH/AfsB9gHwAv8B+QH2 - Af8B/QH5AfcB/wHzAegB5AH/AaIBjwGDAe8BoQGMAX8B8wGiAZcBjwHrXAACmAGrAesBjQGTAdcB/wGO - AZQB3QH/AY8BlQHgAf8BjQGUAdsB/wGaAZ8B2gH/AZIBkwGeAeckAAGYAasBmgHrAY0B1wGWAf8BjgHd - AZgB/wGPAeABmQH/AY0B2wGWAf8BmgHaAaIB/wGSAZ4BlQHnJAABqwGhAZgB6wHXAagBjQH/Ad0BrAGO - Af8B4AGtAY8B/wHbAakBjQH/AdoBsgGaAf8BngGYAZIB51QAAUIBTQE+BwABPgMAASgDAAFAAwABEAMA - AQEBAAEBBQABgBcAA/8BAAH8AT8B/AE/AfwBPwIAAfABDwHwAQ8B8AEPAgAB4AEHAeABBwHgAQcCAAHA - AQMBwAEDAcABAwIAAYABAQGAAQEBgAEBAgABgAEBAYABAQGAAQEqAAGAAQEBgAEBAYABAQIAAYABAQGA - AQEBgAEBAgABwAEDAcABAwHAAQMCAAHgAQcB4AEHAeABBwIAAfABHwHwAR8B8AEfAgAL + AwABEAMAAQEBAAEgBgABECoAAYcBdAF8AeUBsgG0AdIB/wG7Ab4B1wH/AYgBdgF+AecwAAGHAXwBdAHl + AbIB0gG2Af8BuwHXAb4B/wGIAX4BdgHnMAABjwF2AXQB5QHSAb4BsgH/AdcBxQG7Af8BkAF3AXYB52gA + AW8BagGUAfUBOgFBAZcB/wEGAREBhwH/AQcBEQGHAf8BBQEQAYcB/wEMARYBiAH/AQ8BGQGJAf8BZwFm + AZkB+SAAAW8BlAFxAfUBOgGXAUYB/wEGAYcBFQH/AQcBhwEWAf8BBQGHARMB/wEMAYgBGgH/AQ8BiQEd + Af8BZwGZAWYB+SAAAZwBfAFnAfUBlwFcAToB/wGHATQBBgH/AYcBNQEHAf8BhwEzAQUB/wGIATgBDAH/ + AYkBOwEPAf8BngF0AWIB+VwAATUBPQGYAf8BMgE6AZgB/wGwAbIBywH/AdoB2wHaAf8C0QHVAf8BywHM + AdIB/wHEAccBzgH/AVkBXwGlAf8BSwFNAYgB+QEqATMBjwH/GAABJwGSATMB/wEyAZgBPgH/AbABywGz + Af8B2wLaAf8B0QHVAdIB/wHLAdIBywH/AcUBzgHEAf8BWQGlAWIB/wFLAYgBTgH5ASoBjwE1Af8YAAGS + AU0BJwH/AZgBVwEyAf8BywG6AbAB/wLaAdsB/wHVAdMB0QH/AdIBzQHLAf8BzgHGAcQB/wGlAXQBWQH/ + AY0BZAFGAfkBjwFNASoB/1QAAj8BkQH9AYQBcAF1AeMC/gH9Af8B/gH9AfUB/wL3AfMB/wHvAu4B/wLt + AesB/wHZAtsB/wHjAeQB4gH/AsABzAH/AXYBaQF5Ae0BSAFLAYwB+xAAAT8BkQE/Af0BhAF1AXAB4wH/ + Af4C/wH+AfUB/QH/AfcB8wH2Af8C7gHvAf8B7QHrAe0B/wLbAdkB/wHkAeIB4wH/AcABzAHCAf8BdgF5 + AWkB7QFIAYwBTgH7EAABkwFRAT0B/QGKAXEBcAHjAf4D/wH1AfsB/gH/AfMB9QH3Af8B7gHvAe4B/wHr + AewB7QH/AdsB2QHaAf8C4gHkAf8BzAHFAcAB/wGHAW8BaAHtAY8BXQFFAftMAAFyAW8BkAHzAYUBdwGG + AesF/wH+Af0X/wH+Af8B8AHvAfAB/wHPAdAB1gH/AWwBYQF2Ae0BdQFrAYMB7wgAAXIBkAFwAfMBhQGG + AXkB6wX/Af0G/wHjAfAB4wH/AZwBzQGcCv8B/gL/Ae8C8AH/Ac8B1gHPAf8BbAF2AWMB7QF1AYMBawHv + CAABmgF5AWgB8wGWAXwBdgHrBP8B/Rf/Af4D/wLjAeAB/wHPAckBxwH/AYQBaQFfAe0BjwF0AWkB70gA + AWsBZgGhAfkD/iX/AfAB8gHwAf8CxgHNAf8BSAFDAYQB+QgAAWsBoQFmAfkQ/wHcAe0B3AH/ARIBegES + Af8BgwHBAYMN/wHyAfEB8AH/AccBzgHIAf8BSAGEAUkB+QgAAaUBfgFmAfkM/wHhAc0BvgH/Ab4BkgGN + Af8B9wHxAe8B/wH7AfgB9wH/AcEBmAGPAf8B6gHaAdEF/wHlAeIB5gH/Ac4BygHHAf8BiQFeAUMB+UQA + AYQBfQGeAfMBiQF7AY4B7Qj/AvUB+wH/AW4BagHUAf8BoQGfAecB/wGjAaEB5gH/AaIBoQHlAf8BlAGR + AeEB/wGeAZwB5gX/AfkB+AH3Af8B5wHkAd4B/wFgAV4BhQH1AVsBXQGYAfsBhAGeAX4B8wGJAY8BfwHt + EP8B5AHxAeQB/wECAXYBAgH/ARIBfAESAf8BnAHOAZwJ/wH5AfcB+QH/AeYB3gHnAf8BYAGFAWUB9QFb + AZgBXQH7AacBiAF7AfMBnQGCAXsB7Qz/Aa4BdwFVAf8BWgIBAf8B+AH1AfIB/wH6AfcB9QH/AVoCAQH/ + AbMBfAFbBf8B8QH0AfUB/wHeAeYB5wH/AY0BaQFYAfUBmwFpAVgB+0AAAYIBiAHKAf8B0AHSAe0J/wL1 + AfoB/wE8ATkBuwH/AWgBZQHeAf8BZQFhAdgB/wFgAVwB0wH/AVQBTwHRAf8BogGhAekF/wL5AfgB/wH8 + AfsB6gH/AaMBpgG+Af8BRAFLAaAB/wGCAcoBigH/AdAB7QHUEf8B4gHwAeIB/wEDAXcBAwH/AQEBdwEB + Af8BEgGEARIB/wGYAcwBmAX/AfkB+AH5Af8B/AHqAfoB/wGjAb4BpQH/AUQBoAFPAf8BygGcAYIB/wHt + AdsB0A3/AboBjAFrAf8BjQEjAQEC/wL+Af8D/gH/AY0BIgEBAf8BuwGJAWkF/wHyAfQB9QH/AeoB9QH8 + Af8BvgGsAaMB/wGgAWUBRAH/QAABdQF7AcIB/wHlAeYB9An/AvcB+wH/AUsBSAHDAf8BdgF0AeMB/wFx + AW4B3QH/AWwBaQHYAf8BYAFbAdMB/wGrAakB6gX/A/kB/wH+AfsB7wH/AbQBtgHFAf8BQgFKAZ8B/wF1 + AcIBgQH/AeUB9AHnEf8B4gHwAeIB/wECAXkBAgH/AQEBewEBAf8BAQFzAQEB/wESAYQBEgH/AfoB/AH6 + Af8D+QH/Af4B7wH+Af8BtAHFAbYB/wFCAZ8BTQH/AcIBkwF1Af8B9AHrAeUN/wG5AYwBbAH/AacBOQEM + Af8B+wH5AfgB/wH7AfoB+QH/AacBOQEMAf8BvQGMAWwF/wP0Af8B7wH6Af4B/wHFAboBtAH/AZ8BYwFC + Af9AAAFxAXgBvQH/AtoB7wn/AvcB+wH/AU8BTAHHAf8BfAF6AeoB/wF3AXYB4wH/AXQBcgHfAf8BZwFk + AdoB/wGtAasB6wX/AvoB+AH/Af0B/AHuAf8BnQGgAbsB/wFKAVIBowH/AXEBvQF5Af8B2gHvAd4R/wHi + AfAB4gH/AQMBeQEDAf8BAQFxAQEB/wEtAY4BLQH/AeIB8AHiBf8B+gH4AfoB/wH9Ae4B+wH/AZ0BuwGh + Af8BSgGjAVMB/wG9AY4BcQH/Ae8B4wHaDf8BtwGIAWcB/wHEAUgBJQH/Av0B/AH/AfwB+gH5Af8BxgFL + AScB/wHCAY8BcQX/AfIB9QH3Af8B7gH3Af0B/wG7AagBnQH/AaMBaQFKAf9AAAGEAXoBkQHvAZABhgGe + AfEI/wL2AfsB/wFMAUgBxQH/AXsBegHrAf8BdwF2AeQB/wF1AXIB4QH/AWUBYgHbAf8BqQGnAesF/wL7 + AfkB/wH7AfwB7gH/AUoBTAGQAfsBfwF0AYsB7wGEAZEBegHvAZABngGKAfEQ/wHiAfAB4gH/AQEBbwEB + Af8BKQGHASkB/wHnAfMB5wn/AfsB+QH7Af8B/AHuAfkB/wFKAZABUAH7AX8BiwF3Ae8BnQGBAXgB7wGq + AY4BhQHxDP8BwQGXAXsB/wGkAT8BFwH/Af0B+wH6Af8B/AH6AfkB/wGTAToBEAH/AcwBqQGUBf8B9AH3 + AfkB/wHuAfUB/AH/AZMBXQFHAfsBlwF6AXMB70QAAXwBgQHPCf8C8wH5Af8BSgFHAbkB/wGHAYYB1gH/ + AYcBhQHVAf8BhwGFAdUB/wFmAWMByAH/AW4BbQHMBv8B/gH8Af8CzgHXAf8BOgFCAZgB/wgAAXwBzwGN + Ef8B0wHoAdMB/wElAYcBJQH/AeIB8AHiDf8B/gH8Av8BzgHXAdAB/wE6AZgBRAH/CAABzwGhAXwp/wH7 + A/8B1wHSAc4B/wGYAVsBOgH/SAABiwGHAbgB+QGaAY4BqQHxJP8B/AH7AfYB/wE4AUABlgH/AYMBdAGC + AekIAAGLAbgBigH5AZoBqQGVAfEM/wH6AfwB+gH/Ae8B9gHvEf8B/AH2AfwB/wE4AZYBQgH/AYMBggFz + AekIAAG9AZYBhgH5AbQBmwGOAfEk/wH1AfoB/AH/AZYBWQE4Af8BkwF5AXMB6UwAAYMBhwHIAf0BlAGD + AY0B6Rz/AfIB9QH4Af8BXgFhAYcB9QFxAW4BlwH1EAABgwHIAYwB/QGUAY0BgwHpHP8B9AH4AfIB/wFe + AYcBYQH1AXEBlwF1AfUQAAHKAaEBgQH9AZ4BiQGDAekc/wH4AvIB/wGPAWcBVgH1AZ8BfAFpAfVUAAGF + AYgBwgH7AZMBjwHEAfkC0wH3Af8B8QHwAfsB/wH2AfcC/wH3AfgB/QH/AeQB5wHzAf8BgAF3AY8B7wF8 + AXYBkQHzAYoBewGJAesYAAGFAcIBjAH7AZMBxAGZAfkB0wH3AdoB/wHwAfsB8wH/AfYB/wH3Af8B9wH9 + AfgB/wHkAfMB5AH/AYABjwF3Ae8BfAGRAXcB8wGKAYkBewHrGAABxQGXAYIB+wHIAagBjgH5AfcB4wHT + Af8B+wH2AfAC/wH5AfYB/wH9AfkB9wH/AfMB6AHkAf8BmwF9AXQB7wGbAX4BcwHzAZgBgAF6AetcAAGQ + AYEBkgHrAY0BkwHXAf8BjgGUAd0B/wGPAZUB4AH/AY0BlAHbAf8BmgGfAdoB/wGJAXgBgQHnJAABkAGS + AYMB6wGNAdcBlgH/AY4B3QGYAf8BjwHgAZkB/wGNAdsBlgH/AZoB2gGiAf8BiQGBAXsB5yQAAaIBiAGB + AesB1wGoAY0B/wHdAawBjgH/AeABrQGPAf8B2wGpAY0B/wHaAbIBmgH/AZMBfgF3AedUAAFCAU0BPgcA + AT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAB/AE/AfwBPwH8AT8CAAHwAQ8B8AEPAfABDwIA + AeABBwHgAQcB4AEHAgABwAEDAcABAwHAAQMCAAGAAQEBgAEBAYABAQIAAYABAQGAAQEBgAEBKgABgAEB + AYABAQGAAQECAAGAAQEBgAEBAYABAQIAAcABAwHAAQMBwAEDAgAB4AEHAeABBwHgAQcCAAHwAR8B8AEf + AfABHwIACw==