SMS VDP Viewer - icon, autoload, misc tool settings

This commit is contained in:
adelikat 2014-04-13 19:44:08 +00:00
parent ed7ce61234
commit d3b84c6c5c
10 changed files with 300 additions and 31 deletions

View File

@ -345,6 +345,10 @@ namespace BizHawk.Client.Common
#endregion
// SMS VDP Viewer Settings
public ToolDialogSettings SmsVdpSettings = new ToolDialogSettings();
public bool SmsVdpAutoLoad = false;
// NESPPU Settings
public ToolDialogSettings NesPPUSettings = new ToolDialogSettings();
public bool AutoLoadNESPPU = false;

View File

@ -1323,6 +1323,7 @@
<None Include="config\ControllerImages\GENController.png" />
</ItemGroup>
<ItemGroup>
<None Include="images\sms-icon.png" />
<None Include="images\pcb.png" />
<None Include="images\tvIcon.png" />
<None Include="Resources\pcb.png" />

View File

@ -6,7 +6,6 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using BizHawk.Client.Common;
using BizHawk.Common;
using BizHawk.Emulation.Common;
@ -16,6 +15,7 @@ using BizHawk.Emulation.Cores.Nintendo.GBA;
using BizHawk.Emulation.Cores.Nintendo.NES;
using BizHawk.Emulation.Cores.Nintendo.SNES;
using BizHawk.Emulation.Cores.PCEngine;
using BizHawk.Emulation.Cores.Sega.MasterSystem;
using BizHawk.Emulation.DiscSystem;
namespace BizHawk.Client.EmuHawk
@ -339,6 +339,11 @@ namespace BizHawk.Client.EmuHawk
OpenLuaConsole();
}
if (Global.Config.SmsVdpAutoLoad && Global.Emulator is SMS)
{
GlobalWin.Tools.Load<SmsVDPViewer>();
}
if (Global.Config.PCEBGViewerAutoload && Global.Emulator is PCEngine)
{
GlobalWin.Tools.Load<PceBgViewer>();
@ -3078,7 +3083,7 @@ namespace BizHawk.Client.EmuHawk
private void SMSVDPViewerToolStripMenuItem_Click(object sender, EventArgs e)
{
GlobalWin.Tools.Load<VDPViewer>();
GlobalWin.Tools.Load<SmsVDPViewer>();
}
private void codeDataLoggerToolStripMenuItem_Click(object sender, EventArgs e)

View File

@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18408
// Runtime Version:4.0.30319.18444
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@ -1019,6 +1019,16 @@ namespace BizHawk.Client.EmuHawk.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap sms_icon {
get {
object obj = ResourceManager.GetObject("sms_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View File

@ -897,4 +897,7 @@
<data name="checkbox" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\images\checkbox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="sms_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\images\sms-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

View File

@ -1,6 +1,6 @@
namespace BizHawk.Client.EmuHawk
{
partial class VDPViewer
partial class SmsVDPViewer
{
/// <summary>
/// Required designer variable.
@ -28,42 +28,69 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SmsVDPViewer));
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.bmpViewTiles = new BizHawk.Client.EmuHawk.BmpView();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.bmpViewPalette = new BizHawk.Client.EmuHawk.BmpView();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.bmpViewBG = new BizHawk.Client.EmuHawk.BmpView();
this.bmpViewPalette = new BizHawk.Client.EmuHawk.BmpView();
this.bmpViewTiles = new BizHawk.Client.EmuHawk.BmpView();
this.label1 = new System.Windows.Forms.Label();
this.menuStrip1 = new MenuStripEx();
this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.CloseMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.OptionsSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.AutoloadMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SaveWindowPositionMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.AlwaysOnTopMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.FloatingWindowMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.bmpViewTiles);
this.groupBox1.Location = new System.Drawing.Point(12, 12);
this.groupBox1.Location = new System.Drawing.Point(12, 24);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(268, 153);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Tiles";
//
// bmpViewTiles
//
this.bmpViewTiles.Location = new System.Drawing.Point(6, 19);
this.bmpViewTiles.Name = "bmpViewTiles";
this.bmpViewTiles.Size = new System.Drawing.Size(256, 128);
this.bmpViewTiles.TabIndex = 0;
this.bmpViewTiles.Text = "bmpViewTiles";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.bmpViewPalette);
this.groupBox2.Location = new System.Drawing.Point(12, 171);
this.groupBox2.Location = new System.Drawing.Point(12, 183);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(268, 57);
this.groupBox2.TabIndex = 2;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Palettes";
//
// bmpViewPalette
//
this.bmpViewPalette.Location = new System.Drawing.Point(6, 19);
this.bmpViewPalette.Name = "bmpViewPalette";
this.bmpViewPalette.Size = new System.Drawing.Size(256, 32);
this.bmpViewPalette.TabIndex = 3;
this.bmpViewPalette.Text = "bmpViewPalette";
this.bmpViewPalette.MouseClick += new System.Windows.Forms.MouseEventHandler(this.bmpViewPalette_MouseClick);
//
// groupBox3
//
this.groupBox3.Controls.Add(this.bmpViewBG);
this.groupBox3.Location = new System.Drawing.Point(286, 12);
this.groupBox3.Location = new System.Drawing.Point(286, 24);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(268, 281);
this.groupBox3.TabIndex = 3;
@ -78,48 +105,106 @@
this.bmpViewBG.TabIndex = 0;
this.bmpViewBG.Text = "bmpViewBG";
//
// bmpViewPalette
//
this.bmpViewPalette.Location = new System.Drawing.Point(6, 19);
this.bmpViewPalette.Name = "bmpViewPalette";
this.bmpViewPalette.Size = new System.Drawing.Size(256, 32);
this.bmpViewPalette.TabIndex = 3;
this.bmpViewPalette.Text = "bmpViewPalette";
this.bmpViewPalette.MouseClick += new System.Windows.Forms.MouseEventHandler(this.bmpViewPalette_MouseClick);
//
// bmpViewTiles
//
this.bmpViewTiles.Location = new System.Drawing.Point(6, 19);
this.bmpViewTiles.Name = "bmpViewTiles";
this.bmpViewTiles.Size = new System.Drawing.Size(256, 128);
this.bmpViewTiles.TabIndex = 0;
this.bmpViewTiles.Text = "bmpViewTiles";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 304);
this.label1.Location = new System.Drawing.Point(12, 316);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(294, 13);
this.label1.TabIndex = 4;
this.label1.Text = "CTRL + C copies the pane under the mouse to the clipboard.";
//
// menuStrip1
//
this.menuStrip1.ClickThrough = true;
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.FileSubMenu,
this.OptionsSubMenu});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(572, 24);
this.menuStrip1.TabIndex = 5;
this.menuStrip1.Text = "menuStrip1";
//
// FileSubMenu
//
this.FileSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.CloseMenuItem});
this.FileSubMenu.Name = "FileSubMenu";
this.FileSubMenu.Size = new System.Drawing.Size(37, 20);
this.FileSubMenu.Text = "&File";
//
// CloseMenuItem
//
this.CloseMenuItem.Name = "CloseMenuItem";
this.CloseMenuItem.ShortcutKeyDisplayString = "Alt+F4";
this.CloseMenuItem.Size = new System.Drawing.Size(145, 22);
this.CloseMenuItem.Text = "&Close";
this.CloseMenuItem.Click += new System.EventHandler(this.CloseMenuItem_Click);
//
// OptionsSubMenu
//
this.OptionsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.AutoloadMenuItem,
this.SaveWindowPositionMenuItem,
this.AlwaysOnTopMenuItem,
this.FloatingWindowMenuItem});
this.OptionsSubMenu.Name = "OptionsSubMenu";
this.OptionsSubMenu.Size = new System.Drawing.Size(61, 20);
this.OptionsSubMenu.Text = "&Options";
this.OptionsSubMenu.DropDownOpened += new System.EventHandler(this.OptionsSubMenu_DropDownOpened);
//
// AutoloadMenuItem
//
this.AutoloadMenuItem.Name = "AutoloadMenuItem";
this.AutoloadMenuItem.Size = new System.Drawing.Size(191, 22);
this.AutoloadMenuItem.Text = "&Autoload";
this.AutoloadMenuItem.Click += new System.EventHandler(this.AutoloadMenuItem_Click);
//
// SaveWindowPositionMenuItem
//
this.SaveWindowPositionMenuItem.Name = "SaveWindowPositionMenuItem";
this.SaveWindowPositionMenuItem.Size = new System.Drawing.Size(191, 22);
this.SaveWindowPositionMenuItem.Text = "Save Window Position";
this.SaveWindowPositionMenuItem.Click += new System.EventHandler(this.SaveWindowPositionMenuItem_Click);
//
// AlwaysOnTopMenuItem
//
this.AlwaysOnTopMenuItem.Name = "AlwaysOnTopMenuItem";
this.AlwaysOnTopMenuItem.Size = new System.Drawing.Size(191, 22);
this.AlwaysOnTopMenuItem.Text = "Always On Top";
this.AlwaysOnTopMenuItem.Click += new System.EventHandler(this.AlwaysOnTopMenuItem_Click);
//
// FloatingWindowMenuItem
//
this.FloatingWindowMenuItem.Name = "FloatingWindowMenuItem";
this.FloatingWindowMenuItem.Size = new System.Drawing.Size(191, 22);
this.FloatingWindowMenuItem.Text = "Floating Window";
this.FloatingWindowMenuItem.Click += new System.EventHandler(this.FloatingWindowMenuItem_Click);
//
// VDPViewer
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(572, 326);
this.ClientSize = new System.Drawing.Size(572, 335);
this.Controls.Add(this.label1);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.menuStrip1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.KeyPreview = true;
this.MainMenuStrip = this.menuStrip1;
this.Name = "VDPViewer";
this.Text = "VDP Viewer";
this.Load += new System.EventHandler(this.VDPViewer_Load);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.VDPViewer_KeyDown);
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.groupBox3.ResumeLayout(false);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -134,5 +219,13 @@
private System.Windows.Forms.GroupBox groupBox3;
private BmpView bmpViewBG;
private System.Windows.Forms.Label label1;
private MenuStripEx menuStrip1;
private System.Windows.Forms.ToolStripMenuItem FileSubMenu;
private System.Windows.Forms.ToolStripMenuItem CloseMenuItem;
private System.Windows.Forms.ToolStripMenuItem OptionsSubMenu;
private System.Windows.Forms.ToolStripMenuItem AutoloadMenuItem;
private System.Windows.Forms.ToolStripMenuItem SaveWindowPositionMenuItem;
private System.Windows.Forms.ToolStripMenuItem AlwaysOnTopMenuItem;
private System.Windows.Forms.ToolStripMenuItem FloatingWindowMenuItem;
}
}

View File

@ -13,12 +13,12 @@ using System.Drawing.Imaging;
namespace BizHawk.Client.EmuHawk
{
public partial class VDPViewer : Form, IToolForm
public partial class SmsVDPViewer : Form, IToolForm
{
private VDP vdp;
int palindex = 0;
public VDPViewer()
public SmsVDPViewer()
{
InitializeComponent();
@ -29,7 +29,6 @@ namespace BizHawk.Client.EmuHawk
Restart();
}
unsafe static void Draw8x8(byte* src, int* dest, int pitch, int* pal)
{
int inc = pitch - 8;
@ -158,6 +157,7 @@ namespace BizHawk.Client.EmuHawk
Close();
return;
}
vdp = (Global.Emulator as SMS).Vdp;
UpdateValues();
}
@ -206,5 +206,59 @@ namespace BizHawk.Client.EmuHawk
}
}
}
private void RefreshFloatingWindowControl()
{
Owner = Global.Config.SmsVdpSettings.FloatingWindow ? null : GlobalWin.MainForm;
}
protected override void OnShown(EventArgs e)
{
RefreshFloatingWindowControl();
base.OnShown(e);
}
private void CloseMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void OptionsSubMenu_DropDownOpened(object sender, EventArgs e)
{
AutoloadMenuItem.Checked = Global.Config.SmsVdpAutoLoad;
SaveWindowPositionMenuItem.Checked = Global.Config.SmsVdpSettings.SaveWindowPosition;
AlwaysOnTopMenuItem.Checked = Global.Config.SmsVdpSettings.TopMost;
FloatingWindowMenuItem.Checked = Global.Config.SmsVdpSettings.FloatingWindow;
}
private void SaveWindowPositionMenuItem_Click(object sender, EventArgs e)
{
Global.Config.SmsVdpSettings.SaveWindowPosition ^= true;
}
private void AlwaysOnTopMenuItem_Click(object sender, EventArgs e)
{
TopMost = Global.Config.SmsVdpSettings.TopMost ^= true;
}
private void FloatingWindowMenuItem_Click(object sender, EventArgs e)
{
Global.Config.SmsVdpSettings.FloatingWindow ^= true;
RefreshFloatingWindowControl();
}
private void VDPViewer_Load(object sender, EventArgs e)
{
TopMost = Global.Config.SmsVdpSettings.TopMost;
if (Global.Config.SmsVdpSettings.UseWindowPosition)
{
Location = Global.Config.SmsVdpSettings.WindowPosition;
}
}
private void AutoloadMenuItem_Click(object sender, EventArgs e)
{
Global.Config.SmsVdpAutoLoad ^= true;
}
}
}

View File

@ -117,4 +117,103 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAIAICAAAAEAIACoEAAAJgAAABAQAAABACAAaAQAAM4QAAAoAAAAIAAAAEAAAAABACAAAAAAAIAQ
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wIC
Av8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wIC
Av8CAgL/AgIC/wAAAAACAgL/JCMg/yMjH/8iIh7/GxoX/xoZF/8aGRf/ISAd/x8fHP8eHhv/Hh4a/x0d
Gv9saGH/amVf/xoaGP8aGRf/YVxW/19aVP8YGBb/FxcV/xcXFf8WFhT/FhUU/xUVE/8TExH/FRUT/xUV
E/8VFRP/FRUT/xUVE/8VFRP/AgIC/wICAv+/vrL/V1RM/1VTS/9/fHP/fHlw/3l2bf9NS0T/TEpD/0pI
Qf9IRkD/RUM9/wwNDP8MDQz/amVf/z49N/8MDAz/DAwM/19aVP8PDw3/WlVQ/1hTTv9WUUz/VFBL/0xK
Rf8xMCv/MTAr/zEwK/8xMCv/MTAr/xUVE/8CAgL/AgIC/0lIQP8qKSX/Kikl/2hidP9oYnT/aGJ0/ycm
Iv8lJCH/JCMg/yQkIP8jIx//IiEe/yEgHf8hIB3/IB8c/x8fHP8eHhv/HR0a/w8PDf8PDw3/Dw8N/w4O
DP8NDQv/REI+/xkYFv8YGBb/GBgW/xgYFv8YGBb/FRUT/wICAv8CAgL/Q1Lt/ycv1f8nL9X/Jy/V/ycv
1f8nL9X/Jy/V/ycv1f8nL9X/Jy/V/ycv1f8nL9X/Jy/V/ycv1f8nL9X/Jy/V/ycv1f8nL9X/Jy/V/ycv
1f8nL9X/Jy/V/ycv1f8nL9X/Jy/V/ycv1f8nL9X/Jy/V/ycv1f8hJ8//AgIC/wICAv+pnpH/X1hR/15X
UP9dVk//WFJM/1dRS/9VT0n/UEtF/05JRP9MR0L/SUQ//0hDPv9DQDv/QT45/z47Nv88ODT/Ozgz/zo2
Mv84NTH/NjMv/zUyLv8zMCz/Mi8s/zEuK/8vLSn/Liwo/y0rJ/8tKyf/LSsn/yYkIf8CAgL/AgIC/6me
kf9fWFH/XldQ/11WT/9YUkz/V1FL/1VPSf9QS0X/TklE/0xHQv9JRD//SEM+/0NAO/9BPjn/Pjs2/ysz
1v90aeP/hHjl/y031/89Pdv/ICzU/ycy1f8tNdf/KDHW/y8tKf8uLCj/LSsn/y0rJ/8tKyf/JiQh/wIC
Av8CAgL/hXxw/0lEPv9LRj//S0ZA/0lEPv9IQz3/RkE8/0M/Ov9BPTj/Pjs2/zw5NP87ODP/OTYy/zg1
Mf81Mi7/KDHW/01Hxv87NTX/dG+C/1NQ3v8wN9j/aGJ0/2VdZP86P9r/KCYj/yclIv8nJSL/JSMg/yQi
IP8eHBr/AgIC/wICAv9gWVH/OTQw/z05NP89OjX/Pjo1/zs3M/87NzP/OTUx/zg0MP82My//NTIu/zMw
LP8xLiv/Ly0p/y4rKP8rM9b/dGnj/4R45f8tN9f/PT3b/yAs1P8nMtX/LTXX/ygx1v8kIR//IyEe/yEf
Hf8dHBn/GxoY/xUUE/8CAgL/AgIC/2BZUf85NDD/PTk0/z06Nf8+OjX/Ozcz/zs3M/85NTH/ODQw/zYz
L/81Mi7/MzAs/zEuK/8vLSn/Liso/ysz1v90aeP/hHjl/y031/89Pdv/ICzU/ycy1f8tNdf/KDHW/yQh
H/8jIR7/IR8d/x0cGf8bGhj/FRQT/wICAv8CAgL/tbKn/y8sKP8xLir/MzAs/zMwLP8xLiv/MC0q/y4r
KP8tKyf/LSsn/yspJv8qKCX/KCYj/yclIv8lJCH/KzPW/y031/8tN9f/PT3b/z092/8gLNT/JzLV/y01
1/8oMdb/Hhwa/x0bGf8bGRf/GRgW/xcWFP8tLCn/AgIC/wICAv/R0M3/kY6G/ygmIv8qJyT/KCYj/9HO
yv/Qzcj/r6ym/6yoo/+dmZP/paGb/52alP8iIB7/ISAd/yAfHP8mLtX/Rkvd/0xR3f8nL9X/LDPW/yIq
1f8eKNT/HSbT/ygt1f8YFxX/FxYV/xcWFP8VFBP/T01I/0A/O/8CAgL/AgIC/9TT0f+gnpj/nJmT/ygm
Iv8nJSL/JiQh/yUjIf8lIyH/JiMh/yMiH/8iIB7/ISAd/yEfHf8gHhz/Hx4c/yEgHf8gHxz/Hx4b/x4d
Gv8eHRr/HRwZ/x0cGf8cGxj/GxoX/xcWFP8WFRT/FhUT/1xZVP9jX1n/SkdD/wICAv8CAgL/19bU/6im
of+npKD/oqCa/yclIv8nJSL/JiQh/yUjIP8lIyD/JCIf/yIgHv8iIB7/IR8d/x8dG/8iIB7/Ji7V/0ZL
3f9MUd3/Jy/V/ywz1v8iKtX/HijU/x0m0/8oLdX/FxYU/xYVE/9pZmD/bmtj/25qY/9RT0n/AgIC/wIC
Av/X1tT/qKah/6mnov+npKD/o6Gd/0hDPv9IQz7/R0I9/0ZCPf9EQDv/REA7/0I/Ov9BPTn/QDw4/z46
Nv89OTX/IiEe/yEgHf8gHxz/Hx4b/x4dGv8eHRr/HRwZ/zIvLP8wLSr/dnNs/3FuZ/9yb2f/cG1l/1NQ
S/8CAgL/AgIC/9XU0v+ysKv/srCr/7Kwq/+npKD/SEM+/0hDPv9IQz7/R0I9/0ZCPf9EQDv/REA7/0I/
Ov9BPTn/QDw4/yMiHv9STEf/UEtF/01IQ/9LRkH/SkVA/0hDPv9GQTz/HRwZ/zIvLP92c23/h4N8/4OA
eP+DgHj/tK+l/wICAv8CAgL/1dTS/7Kwq/+ysKv/srCr/6ekoP9IQz7/SEM+/0hDPv9HQj3/RkI9/0RA
O/9EQDv/Qj86/0E9Of9APDj/IyIe/1JMR/9QS0X/TUhD/0tGQf9KRUD/SEM+/0ZBPP8dHBn/Mi8s/3Zz
bf+Hg3z/g4B4/4OAeP+0r6X/AgIC/wICAv/V1NL/3dza/7Kwq/+ysKv/p6Sg/0hDPv9IQz7/SEM+/0dC
Pf9GQj3/REA7/0RAO/9CPzr/QT05/0A8OP8jIh7/UkxH/1BLRf9NSEP/S0ZB/0pFQP9IQz7/RkE8/x0c
Gf8yLyz/dnNt/4eDfP+DgHj/xsW+/7Svpf8CAgL/AAAAAAICAv8CAgL/2NfV/9jX1f/X1tT/f3dt/393
bf9/d23/f3dt/310a/97c2r/enJp/3hwZ/91bmX/c2tj/yQjH/8jIh7/IiEe/yIhHv8hIB3/IB8c/x8e
G/8eHRr/Hh0a/1pUTf/Av7b/vr2z/7y6r/8CAgL/AgIC/wAAAAAAAAAAAAAAAAAAAAACAgL/AgIC/wIC
Av8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wIC
Av8CAgL/AgIC/wICAv8CAgL/AgIC/wICAv8CAgL/AgIC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////////////////4AA
AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIAAAAHgAAAH////////////////////////////////KAAAABAAAAAgAAAAAQAgAAAA
AABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NiwV/zInEv89Mhv/OjAZ/zow
Gf8yJxH/QjUf/zEnEf88MRz/NiwW/zYsFv80KxX/OjAZ/zowGf8AAAD/AAAA/1ZMX/82NIb/Vkxf/25h
SP9uYUj/bmFI/25hSP9uYUj/VEkw/05BKP9OQCf/Ukcv/25hSP9QQiv/AAAA/wAAAP85Osf/OTrH/zk6
x/85Osf/OTrH/zk6x/85Osf/OTrH/zk6x/85Osf/OTrH/zk6x/85Osf/OTrH/wAAAP8AAAD/sKOP/5CD
av+Qgmn/joBn/4x+Zf+KfGL/X1E5/z9B0/9cUon/QETd/0lIvP9GRq//U0Qs/1BCK/8AAAD/AAAA/7Cj
j/+QgWn/jX9m/4p8Yf+Hd13/g3NZ/1tNNP9HStv/S0/X/ztA2P8rNtr/LzjY/1NELP9QQiv/AAAA/wAA
AP9gVDv/sKOP/7Cjj/+wo4//sKOP/7Cjj/9bTTT/Vkgv/1ZIL/9WSC//Vkgv/1ZIL/9WSC//UEIr/wAA
AP8AAAD/WEox/01AJ/+Gc1r/hnNa/4ZzWv+Gc1r/WEw0/0tP1/9LT9f/S0/X/0tP1/9LT9f/PjMc/1hJ
MP8AAAD/AAAA/01AJ/9NQCf/oJR//6CUf/+glH//oJR//2ZVPv84LRf/NisV/zQpE/80JxP/MiYR/01A
J/+glH//AAAA/wAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACAAQAA//8AAP//AAD//wAA
</value>
</data>
</root>