diff --git a/SpineViewer/Controls/SpinePreviewPanel.Designer.cs b/SpineViewer/Controls/SpinePreviewPanel.Designer.cs index b4d6ac5..3dd5e9a 100644 --- a/SpineViewer/Controls/SpinePreviewPanel.Designer.cs +++ b/SpineViewer/Controls/SpinePreviewPanel.Designer.cs @@ -32,7 +32,6 @@ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SpinePreviewPanel)); panel_Render = new Panel(); tableLayoutPanel1 = new TableLayoutPanel(); - panel_Container = new Panel(); flowLayoutPanel1 = new FlowLayoutPanel(); button_Stop = new Button(); imageList = new ImageList(components); @@ -40,11 +39,16 @@ button_Start = new Button(); button_ForwardStep = new Button(); button_ForwardFast = new Button(); + button_FullScreen = new Button(); + panel_ViewContainer = new Panel(); + panel_RenderContainer = new Panel(); toolTip = new ToolTip(components); + spinePreviewFullScreenForm = new SpineViewer.Forms.SpinePreviewFullScreenForm(); wallpaperForm = new WallpaperForm(); tableLayoutPanel1.SuspendLayout(); - panel_Container.SuspendLayout(); flowLayoutPanel1.SuspendLayout(); + panel_ViewContainer.SuspendLayout(); + panel_RenderContainer.SuspendLayout(); SuspendLayout(); // // panel_Render @@ -64,8 +68,8 @@ // tableLayoutPanel1.ColumnCount = 1; tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); - tableLayoutPanel1.Controls.Add(panel_Container, 0, 0); tableLayoutPanel1.Controls.Add(flowLayoutPanel1, 0, 1); + tableLayoutPanel1.Controls.Add(panel_ViewContainer, 0, 0); tableLayoutPanel1.Dock = DockStyle.Fill; tableLayoutPanel1.Location = new Point(0, 0); tableLayoutPanel1.Margin = new Padding(0); @@ -76,17 +80,6 @@ tableLayoutPanel1.Size = new Size(641, 636); tableLayoutPanel1.TabIndex = 2; // - // panel_Container - // - panel_Container.BackColor = SystemColors.ControlDark; - panel_Container.Controls.Add(panel_Render); - panel_Container.Dock = DockStyle.Fill; - panel_Container.Location = new Point(0, 0); - panel_Container.Margin = new Padding(0); - panel_Container.Name = "panel_Container"; - panel_Container.Size = new Size(641, 594); - panel_Container.TabIndex = 0; - // // flowLayoutPanel1 // flowLayoutPanel1.Anchor = AnchorStyles.None; @@ -97,10 +90,11 @@ flowLayoutPanel1.Controls.Add(button_Start); flowLayoutPanel1.Controls.Add(button_ForwardStep); flowLayoutPanel1.Controls.Add(button_ForwardFast); - flowLayoutPanel1.Location = new Point(138, 594); + flowLayoutPanel1.Controls.Add(button_FullScreen); + flowLayoutPanel1.Location = new Point(101, 594); flowLayoutPanel1.Margin = new Padding(0); flowLayoutPanel1.Name = "flowLayoutPanel1"; - flowLayoutPanel1.Size = new Size(365, 42); + flowLayoutPanel1.Size = new Size(438, 42); flowLayoutPanel1.TabIndex = 1; // // button_Stop @@ -123,18 +117,19 @@ imageList.ColorDepth = ColorDepth.Depth32Bit; imageList.ImageStream = (ImageListStreamer)resources.GetObject("imageList.ImageStream"); imageList.TransparentColor = Color.Transparent; - imageList.Images.SetKeyName(0, "stop"); - imageList.Images.SetKeyName(1, "restart"); - imageList.Images.SetKeyName(2, "start"); + imageList.Images.SetKeyName(0, "arrows-maximize"); + imageList.Images.SetKeyName(1, "forward-fast"); + imageList.Images.SetKeyName(2, "forward-step"); imageList.Images.SetKeyName(3, "pause"); - imageList.Images.SetKeyName(4, "forward-step"); - imageList.Images.SetKeyName(5, "forward-fast"); + imageList.Images.SetKeyName(4, "rotate-left"); + imageList.Images.SetKeyName(5, "start"); + imageList.Images.SetKeyName(6, "stop"); // // button_Restart // button_Restart.AutoSize = true; button_Restart.AutoSizeMode = AutoSizeMode.GrowAndShrink; - button_Restart.ImageKey = "restart"; + button_Restart.ImageKey = "rotate-left"; button_Restart.ImageList = imageList; button_Restart.Location = new Point(76, 3); button_Restart.Name = "button_Restart"; @@ -191,17 +186,69 @@ button_ForwardFast.UseVisualStyleBackColor = true; button_ForwardFast.Click += button_ForwardFast_Click; // + // button_FullScreen + // + button_FullScreen.AutoSize = true; + button_FullScreen.AutoSizeMode = AutoSizeMode.GrowAndShrink; + button_FullScreen.ImageKey = "arrows-maximize"; + button_FullScreen.ImageList = imageList; + button_FullScreen.Location = new Point(368, 3); + button_FullScreen.Name = "button_FullScreen"; + button_FullScreen.Padding = new Padding(15, 3, 15, 3); + button_FullScreen.Size = new Size(67, 36); + button_FullScreen.TabIndex = 5; + toolTip.SetToolTip(button_FullScreen, "全屏预览"); + button_FullScreen.UseVisualStyleBackColor = true; + button_FullScreen.Click += button_FullScreen_Click; + // + // panel_ViewContainer + // + panel_ViewContainer.Controls.Add(panel_RenderContainer); + panel_ViewContainer.Dock = DockStyle.Fill; + panel_ViewContainer.Location = new Point(0, 0); + panel_ViewContainer.Margin = new Padding(0); + panel_ViewContainer.Name = "panel_ViewContainer"; + panel_ViewContainer.Size = new Size(641, 594); + panel_ViewContainer.TabIndex = 6; + // + // panel_RenderContainer + // + panel_RenderContainer.BackColor = SystemColors.ControlDark; + panel_RenderContainer.Controls.Add(panel_Render); + panel_RenderContainer.Dock = DockStyle.Fill; + panel_RenderContainer.Location = new Point(0, 0); + panel_RenderContainer.Margin = new Padding(0); + panel_RenderContainer.Name = "panel_RenderContainer"; + panel_RenderContainer.Size = new Size(641, 594); + panel_RenderContainer.TabIndex = 0; + panel_RenderContainer.SizeChanged += panel_RenderContainer_SizeChanged; + // + // spinePreviewFullScreenForm + // + spinePreviewFullScreenForm.ClientSize = new Size(2560, 1440); + spinePreviewFullScreenForm.ControlBox = false; + spinePreviewFullScreenForm.FormBorderStyle = FormBorderStyle.None; + spinePreviewFullScreenForm.MaximizeBox = false; + spinePreviewFullScreenForm.MinimizeBox = false; + spinePreviewFullScreenForm.Name = "SpinePreviewFullScreenForm"; + spinePreviewFullScreenForm.ShowIcon = false; + spinePreviewFullScreenForm.ShowInTaskbar = false; + spinePreviewFullScreenForm.StartPosition = FormStartPosition.Manual; + spinePreviewFullScreenForm.TopMost = true; + spinePreviewFullScreenForm.Visible = false; + spinePreviewFullScreenForm.KeyDown += spinePreviewFullScreenForm_KeyDown; + // // wallpaperForm // - wallpaperForm.ClientSize = new Size(490, 456); + wallpaperForm.ClientSize = new Size(512, 512); wallpaperForm.ControlBox = false; + wallpaperForm.FormBorderStyle = FormBorderStyle.None; wallpaperForm.MaximizeBox = false; wallpaperForm.MinimizeBox = false; wallpaperForm.Name = "WallpaperForm"; wallpaperForm.ShowIcon = false; wallpaperForm.ShowInTaskbar = false; wallpaperForm.StartPosition = FormStartPosition.Manual; - wallpaperForm.Text = "SpineViewerWallpaperForm"; wallpaperForm.Visible = false; // // SpinePreviewPanel @@ -211,12 +258,12 @@ Controls.Add(tableLayoutPanel1); Name = "SpinePreviewPanel"; Size = new Size(641, 636); - SizeChanged += SpinePreviewPanel_SizeChanged; tableLayoutPanel1.ResumeLayout(false); tableLayoutPanel1.PerformLayout(); - panel_Container.ResumeLayout(false); flowLayoutPanel1.ResumeLayout(false); flowLayoutPanel1.PerformLayout(); + panel_ViewContainer.ResumeLayout(false); + panel_RenderContainer.ResumeLayout(false); ResumeLayout(false); } @@ -224,7 +271,7 @@ private Panel panel_Render; private TableLayoutPanel tableLayoutPanel1; - private Panel panel_Container; + private Panel panel_RenderContainer; private FlowLayoutPanel flowLayoutPanel1; private Button button_Stop; private Button button_Start; @@ -233,6 +280,9 @@ private Button button_ForwardStep; private Button button_ForwardFast; private Button button_Restart; + private Button button_FullScreen; + private Panel panel_ViewContainer; + private Forms.SpinePreviewFullScreenForm spinePreviewFullScreenForm; private WallpaperForm wallpaperForm; } } diff --git a/SpineViewer/Controls/SpinePreviewPanel.cs b/SpineViewer/Controls/SpinePreviewPanel.cs index f07ecf1..3339c16 100644 --- a/SpineViewer/Controls/SpinePreviewPanel.cs +++ b/SpineViewer/Controls/SpinePreviewPanel.cs @@ -22,11 +22,13 @@ namespace SpineViewer.Controls InitializeComponent(); renderWindow = new(panel_Render.Handle); renderWindow.SetActive(false); - wallpaperTexture = new(1, 1); - _wallpaperFormHandle = wallpaperForm.Handle; + wallpaperWindow = new(wallpaperForm.Handle); + wallpaperWindow.SetVisible(false); + wallpaperWindow.SetActive(false); // 设置默认参数 Resolution = new(2048, 2048); + Zoom = 1; Center = new(0, 0); FlipY = true; MaxFps = 30; @@ -71,49 +73,36 @@ namespace SpineViewer.Controls get => resolution; set { + if (value == resolution) return; if (value.Width <= 0) value.Width = 100; if (value.Height <= 0) value.Height = 100; - float parentX = panel_Render.Parent.Width; - float parentY = panel_Render.Parent.Height; - float sizeX = value.Width; - float sizeY = value.Height; + var previousZoom = Zoom; - if ((sizeY / sizeX) < (parentY / parentX)) - { - // 相同的 X, 子窗口 Y 更小 - sizeY = parentX * sizeY / sizeX; - sizeX = parentX; - } - else - { - // 相同的 Y, 子窗口 X 更小 - sizeX = parentY * sizeX / sizeY; - sizeY = parentY; - } + float parentW = panel_Render.Parent.Width; + float parentH = panel_Render.Parent.Height; + float renderW = value.Width; + float renderH = value.Height; + float scale = Math.Min(parentW / renderW, parentH / renderH); // 两方向取较小值, 保证 parent 覆盖 render + renderW *= scale; + renderH *= scale; // 必须通过 SFML 的方法调整窗口 - renderWindow.Position = new((int)(parentX - sizeX) / 2, (int)(parentY - sizeY) / 2); - renderWindow.Size = new((uint)sizeX, (uint)sizeY); - - // 将 view 的大小设置成于 resolution 相同的大小, 其余属性都不变 - using var view = renderWindow.GetView(); - var signX = Math.Sign(view.Size.X); - var signY = Math.Sign(view.Size.Y); - view.Size = new(value.Width * signX, value.Height * signY); - renderWindow.SetView(view); - + renderWindow.Position = new((int)((parentW - renderW) / 2 + 0.5), (int)((parentH - renderH) / 2 + 0.5)); + renderWindow.Size = new((uint)(renderW + 0.5), (uint)(renderH + 0.5)); resolution = value; + // 设置完 resolution 后还原缩放比例 + Zoom = previousZoom; + // 设置壁纸窗口分辨率 wallpaperForm.Size = value; - _memDCsize = new() { cx = value.Width, cy = value.Height }; - wallpaperTexture.Dispose(); - wallpaperTexture = new((uint)value.Width, (uint)value.Height); - wallpaperTexture.SetView(view); + wallpaperWindow.Size = new((uint)value.Width, (uint)value.Height); + using var view = renderWindow.GetView(); + wallpaperWindow.SetView(view); } } - private Size resolution = new(0, 0); + private Size resolution = new(100, 100); /// /// 画面中心点 @@ -133,7 +122,7 @@ namespace SpineViewer.Controls using var view = renderWindow.GetView(); view.Center = new(value.X, value.Y); renderWindow.SetView(view); - wallpaperTexture.SetView(view); + wallpaperWindow.SetView(view); } } @@ -157,7 +146,7 @@ namespace SpineViewer.Controls var signY = Math.Sign(view.Size.Y); view.Size = new(resolution.Width / value * signX, resolution.Height / value * signY); renderWindow.SetView(view); - wallpaperTexture.SetView(view); + wallpaperWindow.SetView(view); } } @@ -178,7 +167,7 @@ namespace SpineViewer.Controls using var view = renderWindow.GetView(); view.Rotation = value; renderWindow.SetView(view); - wallpaperTexture.SetView(view); + wallpaperWindow.SetView(view); } } @@ -202,7 +191,7 @@ namespace SpineViewer.Controls size.X *= -1; view.Size = size; renderWindow.SetView(view); - wallpaperTexture.SetView(view); + wallpaperWindow.SetView(view); } } @@ -226,7 +215,7 @@ namespace SpineViewer.Controls size.Y *= -1; view.Size = size; renderWindow.SetView(view); - wallpaperTexture.SetView(view); + wallpaperWindow.SetView(view); } } @@ -270,17 +259,16 @@ namespace SpineViewer.Controls if (enableDesktopProjection == value) return; if (value) { - screenDC = Win32.GetDC(IntPtr.Zero); - memDC = Win32.CreateCompatibleDC(screenDC); + var screenBounds = Screen.FromControl(this).Bounds; + Resolution = screenBounds.Size; + wallpaperWindow.Position = new(screenBounds.X, screenBounds.Y); + wallpaperWindow.Size = new((uint)screenBounds.Size.Width, (uint)screenBounds.Size.Height); + //wallpaperForm.SetWallpaper(); // 窗口被创建和此处都需要设置一遍嵌入桌面, 否则无法正常显示, 原因未知 wallpaperForm.Show(); } else { wallpaperForm.Hide(); - Win32.DeleteDC(memDC); - Win32.ReleaseDC(IntPtr.Zero, screenDC); - memDC = 0; - screenDC = 0; } enableDesktopProjection = value; } @@ -311,24 +299,10 @@ namespace SpineViewer.Controls /// private readonly SFML.Graphics.RenderWindow renderWindow; - /// - /// 屏幕 DC - /// - private IntPtr screenDC; - - /// - /// 用于壁纸窗口的内存 DC - /// - private IntPtr memDC; - private readonly IntPtr _wallpaperFormHandle; - private Win32.SIZE _memDCsize = new(); - private Win32.POINT _memDCptSrc = new() { x = 0, y = 0 }; - private Win32.BLENDFUNCTION _memDCblend = new() { BlendOp = 0, BlendFlags = 0, SourceConstantAlpha = 255, AlphaFormat = Win32.AC_SRC_ALPHA }; - /// /// 壁纸窗口 /// - private SFML.Graphics.RenderTexture wallpaperTexture; + private SFML.Graphics.RenderWindow wallpaperWindow; /// /// 帧间隔计时器 @@ -406,7 +380,7 @@ namespace SpineViewer.Controls try { renderWindow.SetActive(true); - wallpaperTexture.SetActive(true); + wallpaperWindow.SetActive(true); float delta; while (cancelToken is not null && !cancelToken.IsCancellationRequested) @@ -425,7 +399,7 @@ namespace SpineViewer.Controls } renderWindow.Clear(BackgroundColor); - if (enableDesktopProjection) wallpaperTexture.Clear(SFML.Graphics.Color.Transparent); + if(enableDesktopProjection) wallpaperWindow.Clear(BackgroundColor); if (ShowAxis) { @@ -460,30 +434,14 @@ namespace SpineViewer.Controls renderWindow.Draw(spine); spine.EnableDebug = false; - if (enableDesktopProjection) wallpaperTexture.Draw(spine); + if (enableDesktopProjection) wallpaperWindow.Draw(spine); } } } renderWindow.Display(); - - // 桌面投影 - if (enableDesktopProjection) - { - wallpaperTexture.Display(); - using var img = wallpaperTexture.Texture.CopyToImage(); - img.SaveToMemory(out var imgBuffer, "bmp"); - using var stream = new MemoryStream(imgBuffer); - using var bitmap = new Bitmap(stream); - var newBitmap = bitmap.GetHbitmap(Color.FromArgb(0)); - var oldBitmap = Win32.SelectObject(memDC, newBitmap); - - Win32.UpdateLayeredWindow(_wallpaperFormHandle, screenDC, IntPtr.Zero, ref _memDCsize, memDC, ref _memDCptSrc, 0, ref _memDCblend, Win32.ULW_ALPHA); - - Win32.SelectObject(memDC, oldBitmap); - Win32.DeleteObject(newBitmap); - } + if (enableDesktopProjection) wallpaperWindow.Display(); } } catch (Exception ex) @@ -495,7 +453,7 @@ namespace SpineViewer.Controls finally { renderWindow.SetActive(false); - wallpaperTexture.SetActive(false); + wallpaperWindow.SetActive(false); } } @@ -506,7 +464,7 @@ namespace SpineViewer.Controls /// private SFML.System.Vector2f? draggingSrc = null; - private void SpinePreviewPanel_SizeChanged(object sender, EventArgs e) + private void panel_RenderContainer_SizeChanged(object sender, EventArgs e) { if (renderWindow is null) return; @@ -516,12 +474,12 @@ namespace SpineViewer.Controls float renderW = panel_Render.Width; float renderH = panel_Render.Height; float scale = Math.Min(parentW / renderW, parentH / renderH); // 两方向取较小值, 保证 parent 覆盖 render - renderH *= scale; renderW *= scale; + renderH *= scale; - // 必须通过 SFML 的方法调整窗口 - renderWindow.Position = new((int)(parentW - renderW) / 2, (int)(parentH - renderH) / 2); - renderWindow.Size = new((uint)renderW, (uint)renderH); + // 必须通过 SFML 的方法调整窗口, 此处必须四舍五入, 否则在全屏和小窗多次切换之后会有明显的舍入误差 + renderWindow.Position = new((int)((parentW - renderW) / 2 + 0.5), (int)((parentH - renderH) / 2 + 0.5)); + renderWindow.Size = new((uint)(renderW + 0.5), (uint)(renderH + 0.5)); } private void panel_Render_MouseDown(object sender, MouseEventArgs e) @@ -733,6 +691,25 @@ namespace SpineViewer.Controls } } + private void button_FullScreen_Click(object sender, EventArgs e) + { + var screenBounds = Screen.FromControl(this).Bounds; + Resolution = screenBounds.Size; + spinePreviewFullScreenForm.Controls.Add(panel_RenderContainer); + spinePreviewFullScreenForm.Bounds = screenBounds; + spinePreviewFullScreenForm.Show(); + PropertyGrid?.Refresh(); + } + + private void spinePreviewFullScreenForm_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) + { + spinePreviewFullScreenForm.Hide(); + panel_ViewContainer.Controls.Add(panel_RenderContainer); + } + } + //public void ClickStopButton() => button_Stop_Click(button_Stop, EventArgs.Empty); //public void ClickRestartButton() => button_Restart_Click(button_Restart, EventArgs.Empty); //public void ClickStartButton() => button_Start_Click(button_Start, EventArgs.Empty); diff --git a/SpineViewer/Controls/SpinePreviewPanel.resx b/SpineViewer/Controls/SpinePreviewPanel.resx index 8884137..d6999fd 100644 --- a/SpineViewer/Controls/SpinePreviewPanel.resx +++ b/SpineViewer/Controls/SpinePreviewPanel.resx @@ -124,206 +124,170 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu - SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAHi0AAAJNU0Z0AUkBTAIBAQYB - AAGIAQABiAEAAR8BAAEYAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABfAMAATADAAEBAQABIAYAAV0q - AAQCAy0BRQNbAc0DYAHoA1kBxgMyAU8DDwEUBAIYAAMOARIDQwF3A10BzwNbAc0DLQFFBAIYAANWAbID - YAHoA1wB1gNDAXcDFgEeBAIYAAMKAQ0DSQGFA2AB4wNfAeUDUQGeAyQBNAMJAQsEARgAAwsBDgM7AWQD - XgHSA1YBsv8AEQAEAgMxAUwDYgHhAwAB/wM3AfkDYAHbA0QBewMeASoDBgEIFAADGAEhA1cBwgMhAfsD - YgHhAzEBTAQCGAADWQHDAwAB/wMnAfwDYQHrA0gBhAMWAR4YAAMLAQ4DTQGSAzQB+QMSAf4DVwHyA1gB - ugM3AVoDEQEWAwIBAxQAAxcBHwNJAYYDYQHrA1kBw/8AEQAEAgMxAUwDYgHhAwAB/wMAAf8DJAH9A2AB - 4ANQAZoDLgFGAxEBFgMGAQcEAQgAAxoBJANbAc0DAAH/A2IB4QMxAUwEAhgAA1kBwwMAAf8DAAH/AwAB - /wNbAdADPgFrAw8BEwMCAQMQAAMLAQ4DTQGSAzQB+QMAAf8DAAH/A0IB9gNcAcsDRAF5Ax4BKgMGAQcM - AAQBAxgBIQNKAYsDXQHsA1kBw/8AEQAEAgMxAUwDYgHhAwAB/wM3AfkDXAHnA0YB9QNZAe4DWQG7A0MB - dwMoATsDDwEUBAEEAAMaASQDWwHNAwAB/wNiAeEDMQFMBAIYAANZAcMDJgH8A1MB8ANGAfUDNwH5A10B - zgNDAXcDGgEjAwIBAwwAAwsBDgNNAZIDNAH5AwEB/wMnAfoDPQH4AzcB+QNgAeMDTgGYAyQBNQMGAQgE - AQQABAEDGAEhA0oBiwNdAewDWQHD/wARAAQCAzEBTANiAeEDAAH/A1wB2QM7AWMDWQG7A0QB9wM8AfgD - XAHnA1sBxQNBAXMDEwEZAwIBAwMaASQDWwHNAwAB/wNiAeEDMQFMBAIYAANZAcMDYQHrA1ABmgNVAbED - UAHzAyEB+wNbAeQDSwGPAxsBJQMDAQQIAAMLAQ4DTQGSAzQB+QMlAf0DXAHZA1oBxwNGAfUDEgH+A2EB - 6wNSAaMDJQE3AwMBBAQABAEDGAEhA0oBiwNdAewDWQHD/wARAAQCAzEBTANiAeEDAAH/A1sBzQMaASQD - FgEdA1UBrwMAAf8DAAH/AwAB/wMAAf8DVQGvAxYBHQMaASQDWwHNAwAB/wNiAeEDMQFMBAIYAANZAcMD - WwHkAzsBZQMHAQkDSQGGAyEB+wMAAf8DAAH/A1kBwQMdASkIAAMLAQ4DTQGSAzQB+QM0AfkDTQGSAzkE - XgHiAwAB/wMAAf8DYAHjAzYBWAMFAQYEAAQBAxgBIQNKAYsDXQHsA1kBw/8AEQAEAgMxAUwDYgHhAwAB - /wNbAc0DGgEkAwIBAwMTARoDRgF/A1sB3gMhAfsDEgH+AzwB+ANZAbsDOwFjA1wB2QMAAf8DYgHhAzEB - TAQCGAADWQHDA1sB5AM7AWUDBwQJAQwDOgFhA18B1QNFAfUDNwH5A1sBygMyAU8DDwEUAw0BEQNNAZID - NAH5AzQB+QNNAZIDEQEWAy0BRANaAb8DWAHvAyEB+wNdAdwDPwFuAxYBHgMEAQUDGAEhA0oBiwNdAewD - WQHD/wARAAQCAzEBTANiAeEDAAH/A1sBzQMaASQEAAQCAxMBGgM9AWcDWQHAA1gB7wMSAf4DRAH3A1wB - 5wM3AfkDAAH/A2IB4QMxAUwEAhgAA1kBwwNbAeQDOwFlAwcBCQQAAwsBDgMxAU0DWAG9A0IB9gM3AfkD - YAHbA0QBeAMhAS8DTgGVAzQB+QM0AfkDTQGSAwsBDgMGAQgDIAEuA00BkgNdAdwDRgH1A1oB6QNOAZYD - KAE8AyABLQNLAY0DXQHsA1kBw/8AEQAEAgMxAUwDYgHhAwAB/wNbAc0DGgEkCAAEAgMMARADLwFJA1IB - owNbAeQDRAH3AxIB/gMAAf8DAAH/A2IB4QMxAUwEAhgAA1kBwwNbAeQDOwFlAwcBCQgAAxABFQM/AW0D - XAHWAycB+gMkAf0DXAHWA0QBeQNUAasDIQH7AzQB+QNNAZIDCwEOBAADAwEEAxsBJgNBAXMDWgHEA00B - 9ANZAe4DVQG0A0QBegNRAaIDWQHuA1kBw/8AEQAEAgMxAUwDYgHhAwAB/wNbAc0DGgEkEAADCAEKAyMB - MwNEAXkDVwG8A18B5QMnAfoDAAH/A2IB4QMxAUwEAhgAA1kBwwNbAeQDOwFlAwcBCQgAAwMBBAMaASQD - QgF0A14B0gMhAfsDQgH2A10B0QNgAeADJAH9AzQB+QNNAZIDCwEOCAADAgEDAxIBFwM1AVUDWAG6A1gB - 8QNCAfYDWwHeA2AB2wM8AfgDWQHD/wARAAQCAzEBTANiAeEDAAH/A1sBzQMaASQUAAMCAQMDDgESAyMB - MgM9AWgDXgHdAwAB/wNiAeEDMQFMBAIYAANZAcMDWwHkAzsBZQMHAQkMAAMCAQMDDwETAzQBUwNdAdED - PAH4AyUB/AMlAf0DAAH/AzQB+QNNAZIDCwEODAAEAQMJAQwDIwEzA1UBrgMmAf0DJAH9AyUB/AMSAf4D - WQHD/wARAAQCAzEBTANiAeEDAAH/A1sBzQMaASQgAAMaASQDWwHNAwAB/wNiAeEDMQFMBAIYAANZAcMD - WwHkAzsBZQMHAQkYAAMPARQDVwG5AwAB/wMAAf8DAAH/AzQB+QNNAZIDCwEOGAADRwGAA14B7QMAAf8D - AAH/AwAB/wNZAcP/ABEABAIDMQFMA2IB4QMAAf8DWwHNAxoBJBQABAIDBwEJAxYBHQM1AVUDXAHZAwAB - /wNiAeEDMQFMBAIYAANZAcMDWwHkAzsBZQMHAQkMAAQBAw0BEQM0AVMDXQHRAzcB+QMTAf4DEgH+AwAB - /wM0AfkDTQGSAwsBDgwABAEDCQELAx4BKwNTAakDJgH9AyQB/QMlAfwDEgH+A1kBw/8AEQAEAgMxAUwD - YgHhAwAB/wNbAc0DGgEkEAADBwEJAxsBJgM0AVMDTQGSA14B3QM3AfkDAAH/A2IB4QMxAUwEAhgAA1kB - wwNbAeQDOwFlAwcBCQgABAIDEAEVAzkBXgNbAc0DIQH7AyEB+wNcAecDWQHuAxIB/gM0AfkDTQGSAwsB - DggAAwIBAwMSARcDNQFVA1gBuANYAfEDQgH2A1sB3gNgAdsDPAH4A1kBw/8AEQAEAgMxAUwDYgHhAwAB - /wNbAc0DGgEkCAAEAgMMARADLgFGA00BkgNcAcgDYQHrAyQB/QMAAf8DAAH/A2IB4QMxAUwEAhgAA1kB - wwNbAeQDOwFlAwcBCQgAAwkBDAMxAU4DWAG3A1AB8wMkAf0DXgHdA04BlgNZAb4DJQH8AzQB+QNNAZID - CwEOBAADAwEEAxsBJgNBAXMDWgHEA00B9ANZAe4DVQG0A0QBegNRAaIDWQHuA1kBw/8AEQAEAgMxAUwD - YgHhAwAB/wNbAc0DGgEkBAAEAgMTARoDPQFnA1oBvwNhAesDJwH6A0MB9gNcAecDNwH5AwAB/wNiAeED - MQFMBAIYAANZAcMDWwHkAzsBZQMHAQkEAAMLAQ4DLgFHA1UBrQNYAe8DPQH4A2AB2wNEAXoDJAE1A04B - mAMmAfoDNAH5A00BkgMLAQ4DBgEIAyABLgNNAZIDXQHcA0YB9QNaAekDTgGWAygBPAMgAS0DSwGNA10B - 7ANZAcP/ABEABAIDMQFMA2IB4QMAAf8DWwHNAxoBJAMCAQMDEwEaA0YBfwNbAd4DIQH7AxIB/gM8AfgD - WQG7AzsBYwNcAdkDAAH/A2IB4QMxAUwEAhgAA1kBwwNbAeQDOwFlAwcECQEMAzoBYQNdAdQDTQH0AzcB - +QNbAcoDMgFPAw8BFAMNAREDTQGSAzQB+QM0AfkDTQGSAxEBFgMtAUQDWgG/A1gB7wMmAfwDYAHgA0AB - cQMXAR8DBAEFAxgBIQNKAYsDXQHsA1kBw/8AEQAEAgMxAUwDYgHhAwAB/wNbAc0DGgEkAxYBHQNVAa8D - AAH/AwAB/wMAAf8DAAH/A1UBrwMWAR0DGgEkA1sBzQMAAf8DYgHhAzEBTAQCGAADWQHDA1sB5AM7AWUD - BwEJA0kBhgMhAfsDAAH/AwAB/wNZAcEDHQEpCAADCwEOA00BkgM0AfkDNAH5A00BkgM5BF4B4gMAAf8D - AAH/A14B7QNKAYsDGAEgCAEDGAEhA0oBiwNdAewDWQHD/wARAAQCAzEBTANiAeEDAAH/A1wB2QM7AWMD - WQG7A0QB9wMmAfwDTQH0A1wB2QNGAX4DEwEaAwIBAwMaASQDWwHNAwAB/wNiAeEDMQFMBAIYAANZAcMD - YQHrA1ABmgNVAbEDUAHzAyEB+wNfAeUDSwGPAxsBJQMDAQQIAAMLAQ4DTQGSAzQB+QMhAfsDVgGzA0wB - jgNhAesDEgH+A1MB8ANXAbkDLgFHAwYBCAQABAEDGAEhA0oBiwNdAewDWQHD/wARAAQCAzEBTANiAeED - AAH/AzcB+QNcAecDRgH1A1cB8QNbAdMDUQGkAzgBWwMTARkEAgQAAxoBJANbAc0DAAH/A2IB4QMxAUwE - AhgAA1kBwwMmAfwDUwHwA0YB9QMlAf0DXgHXA0YBfgMaASQDAgEDDAADCwEOA00BkgM0AfkDEgH+A1AB - 8wNZAe4DRAH3A2AB4wNOAZgDJwE5AwgBCgQBBAAEAQMYASEDSgGLA10B7ANZAcP/ABEABAIDMQFMA2IB - 4QMAAf8DAAH/AyQB/QNiAeEDUgGjAzsBYwMhAS8DCgENBAIIAAMaASQDWwHNAwAB/wNiAeEDMQFMBAIY - AANZAcMDAAH/AwAB/wMAAf8DYAHoA0oBiwMWAR0DBAEFEAADCwEOA00BkgM0AfkDAAH/AwAB/wNCAfYD - XAHLA0QBeQMeASoDBgEHDAAEAQMYASEDSgGLA10B7ANZAcP/ABEABAIDMQFMA2IB4QMAAf8DNwH5A2AB - 2wNFAXwDIQEwAwwBEAMDAQQQAAMaASMDXAHIAyUB/QNiAeEDMQFMBAIYAANZAcMDAAH/AycB/ANhAesD - TgGXAyMBMwQCFAADCwEOA00BkgM0AfkDEgH+A1cB8gNYAboDNwFaAxEBFgMCAQMUAAMXAR8DSQGGA2EB - 6wNZAcP/ABEABAIDLQFFA14B0gNXAfIDXQHJAzIBTwMQARUDAgEDGAADEwEaA1ABnwNbAeQDWwHQAy0B - RQQCGAADVQG0A1oB7gNfAdoDRAF4AxgBIAMDAQQYAAMKAQ0DSQGGA2AB6ANaAekDUAGfAyQBNAMJAQsE - ARgAAwsBDgM7AWUDWwHTA1YBsv8AFQADAwEEAycBOgM/AW0DFAEbKAADDwETAzEBTgMdASkDAgEDHAAD - DgESAzEBTQMjATMDBAEFJAADBgEHAygBPAMoATwDBgEHJAAEAQMHAQkDCwEOAwIBA/8ABQADAgEDAw8B - FANJAYgDXwHlA2AB6ANgAegDYAHoA2AB6ANgAegDYAHoA2AB6ANgAegDYAHoA2AB6ANgAegDYAHoA2AB - 6ANgAegDYAHoA2AB6ANgAegDYAHoA1sB5ANGAX4DBQEGBAEoAAMCAQMDDQERAx8BLAMtAUYDVwG5A2AB - 6ANgAegDYAHoA2AB6ANgAegDYAHoA2AB4wNZAb4DMgFPAw8BEwMCAQMwAAMTARkDRgF+A2AB6ANgAegD - WQHBAzkBXgMmATgDDwEUBAJcAAM5AV8DXgHiA1wB5wNgAegDYAHoA2AB6ANgAegDXQHcAzwBZgMGAQgD - BgEIAzwBZgNdAdwDYAHoA2AB6ANgAegDYAHoA10B3ANQAZ0DJQE2IAADDAEQAzwBZgNdAc8DJAH9AycB - +gNYAe8DXgHtA14B7QNeAe0DXgHtA14B7QNeAe0DXgHtA14B7QNeAe0DXgHtA14B7QNeAe0DXgHtA14B - 7QNYAe8DJwH6AyYB/ANWAbUDKwFCAwgBCiQABAIDGAEhA0ABcANaAb8DXQHfA14B7QNYAe8DXQHsA2EB - 5gNfAeUDXQHqA14B7QNTAfADQwH2A10B0QNDAXcDHgErAwYBBywAAz0BaQNbAd4DAQH/AzcB+QNdAewD - WwHkA14B1wNEAXsDHgEqAwYBCFgAAz8BbAMlAf0DPAH4A1gB7wNeAe0DWQHuAycB+gNCAfYDTwGbAx4B - KwMgAS0DUAGdA0IB9gMnAfoDWQHuA14B7QNYAe8DRAH3A1cB8gM7AWUgAAMTARkDUAGcA0QB9wNDAfYD - XQHMA0sBjQNGAYADRgGAA0YBgANGAYADRgGAA0YBgANGAYADRgGAA0YBgANGAYADRgGAA0YBgANGAYAD - RgGAA0sBjwNcAdkDJAH9A1cB8QNOAZQDEgEYJAADBQEGAzEBTgNbAdADVwHyA14B4gNVAa4DSgGKA0YB - fwNDAXcDQwF2A0UBfANGAYADTwGbA14B3QNgAegDXwHaA04BlgMoATwDCQEMKAADRwGDAzwB+AMmAfwD - WwHTA1MBpgNcAdkDNwH5A2AB4ANQAZoDLQFEAwsBDlQAAz8BbAMmAfwDWwHTA0wBjgNGAYADSgGKA10B - 3AMlAf0DXgHdAzoBYAM6AWIDXQHfAyQB/QNdAdwDSgGKA0YBgANMAY4DWwHTAyYB/AM/AWwgAAMUARsD - UgGlAyMB/QNbAdADPwFsAxgBIQMOARIDDgESAw4BEgMOARIDDgESAw4BEgMOARIDDgESAw4BEgMOARID - DgESAw4BEgMOARIDDgESAyABLgNXAbkDJAH9AyMB/QNSAaUDFAEbJAADBQEGAzEBTQNaAccDXAHIA0AB - bwMlATcDEwEaAw4BEgMNAREDDAEQAw4BEgMOARIDHQEoAzoBYANLAY8DWwHYA2EB5gNWAbYDMQFNAwYB - CCQAA0kBhgMhAfsDNwH5A1UBrgMqAUADPwFtA10B0QNGAfUDWQHuA1gBtwM2AVcDFgEdAwwBEAQCSAAD - PwFsAzcB+QNVAa4DIAEtAw4BEgMbASUDWQG+AwAB/wNeAe0DPwFtAz8BbQNeAe0DAAH/A1kBvgMbASUD - DgESAyABLQNVAa4DNwH5Az8BbCAAAxQBGwNSAaUDIwH9A1YBtgMoATwDCAEKOAADFgEeA1YBswMkAf0D - IwH9A1IBpQMUARskAAQBAw8BFAMjATMDIQEwAwsBDgMDAQQEARQABAIDBwEJAx4BKgNLAYwDXQHfA0QB - 9wNTAakDKAE7JAADSQGGAyEB+wM3AfkDUwGnAxYBHgMMARADKgFAA1gBugNRAfMDTgH0A2AB2wNXAbwD - QgF0AxMBGQMCAQNEAAM/AWwDNwH5A1MBpwMVARwEAAMPARQDVwG5AwAB/wNeAe0DPwFtAz8BbQNeAe0D - AAH/A1cBuQMPARQEAAMVARwDUwGnAzcB+QM/AWwgAAMUARsDUgGlAyMB/QNVAbQDJgE4AwcBCTgAAxYB - HgNWAbMDJAH9AyMB/QNSAaUDFAEbYAADFQEcA1MBpwM3AfkDIQH7A0kBhiQAA0kBhgMhAfsDNwH5A1MB - pwMVARwIAAMPARMDQwF2A1wB2QMlAf0DAAH/AwAB/wNVAa8DFgEdRAADPwFsAzcB+QNTAacDFQEcBAAD - DwEUA1cBuQMAAf8DXgHtAz8BbQM/AW0DXgHtAwAB/wNXAbkDDwEUBAADFQEcA1MBpwM3AfkDPwFsIAAD - FAEbA1IBpQMjAf0DVQG0AyYBOAMHAQk4AAMWAR4DVgGzAyQB/QMjAf0DUgGlAxQBG2AAAwIBAwMeASoD - VQG0A0QB9wNSAaADGwElAwUBBhwAA0kBhgMhAfsDNwH5A1MBpwMVARwIAAQCAwkBCwMYASADRAF6A2AB - 2wNBAfcDRAH3A1kBuwMqAUADDgESAwUBBgQCNAADPwFsAzcB+QNTAacDFQEcBAADDwEUA1cBuQMAAf8D - XgHtAz8BbQM/AW0DXgHtAwAB/wNXAbkDDwEUBAADFQEcA1MBpwM3AfkDPwFsIAADFAEbA1IBpQMjAf0D - VQG0AyYBOAMHAQk4AAMWAR4DVgGzAyQB/QMjAf0DUgGlAxQBG2QAAw8BEwNAAW8DXQHUA1kB7wNMAZED - EgEYHAADSQGGAyEB+wM3AfkDUwGnAxUBHBAABAIDDQERAzYBVwNYAbcDXQHsA1gB8QNdAdEDRAF5AzMB - UAMbASYDBgEHMAADPwFsAzcB+QNTAacDFQEcBAADDwEUA1cBuQMAAf8DXgHtAz8BbQM/AW0DXgHtAwAB - /wNXAbkDDwEUBAADFQEcA1MBpwM3AfkDPwFsIAADFAEbA1IBpQMjAf0DVQG0AyYBOAMHAQk4AAMWAR4D - VgGzAyQB/QMjAf0DUgGlAxQBG2QAAwIBAwMPARMDUQGeAyMB/QNSAaUDFAEbHAADSQGGAyEB+wM3AfkD - UwGnAxUBHBgAAwsBDgMtAUQDSwGPA1sBxQNiAeEDYgHhA1sBzQNMAZADKAE7AwkBDCwAAz8BbAM3AfkD - UwGnAxUBHAQAAw8BFANXAbkDAAH/A14B7QM/AW0DPwFtA14B7QMAAf8DVwG5Aw8BFAQAAxUBHANTAacD - NwH5Az8BbCAAAxQBGwNSAaUDIwH9A1UBtAMmATgDBwEJOAADFgEeA1YBswMkAf0DIwH9A1IBpQMUARts - AANNAZMDIwH9A1IBpQMUARscAANJAYYDIQH7AzcB+QNTAacDFQEcHAADBgEIAxkBIgMvAUkDQAFxA10B - zANQAfMDWgHpA1YBtgMtAUQsAAM/AWwDNwH5A1MBpwMVARwEAAMPARQDVwG5AwAB/wNeAe0DPwFtAz8B - bQNeAe0DAAH/A1cBuQMPARQEAAMVARwDUwGnAzcB+QM/AWwgAAMUARsDUgGlAyMB/QNVAbQDJgE4AwcB - CTgAAxYBHgNWAbMDJAH9AyMB/QNSAaUDFAEbbAADTQGTAyMB/QNSAaUDFAEbHAADSQGGAyEB+wM3AfkD - UwGnAxUBHCAABAIDBAEFAwsBDgMwAUwDWQHBA0MB9gM1AfkDQQFyAwYBCCgAAz8BbAM3AfkDUwGnAxUB - HAQAAw8BFANXAbkDAAH/A14B7QM/AW0DPwFtA14B7QMAAf8DVwG5Aw8BFAQAAxUBHANTAacDNwH5Az8B - bCAAAxQBGwNSAaUDIwH9A1UBtAMmATgDBwEJOAADFgEeA1YBswMkAf0DIwH9A1IBpQMUARtsAANNAZMD - IwH9A1IBpQMUARscAANJAYYDIQH7AzcB+QNTAacDFQEcMAADFQEcA1MBpwM3AfkDWwHTAzoBYSgAAz8B - bAM3AfkDUwGnAxUBHAQAAw8BFANXAbkDAAH/A14B7QM/AW0DPwFtA14B7QMAAf8DVwG5Aw8BFAQAAxUB - HANTAacDNwH5Az8BbCAAAxQBGwNSAaUDIwH9A1UBtAMmATgDBwEJOAADFgEeA1YBswMkAf0DIwH9A1IB - pQMUARsQAAQBAwQBBQMLAQ4DDwETAw8BEwMPARMDDwETAw8BEwMNAREDCQEMAwMBBAQBLAADTQGTAyMB - /QNSAaUDFAEbHAADSQGGAyEB+wM3AfkDUwGnAxUBHCAABAEDAgEDAwsBDgMwAUwDWQHBA0MB9gM1AfkD - QQFyAwYBCCgAAz8BbAM3AfkDUwGnAxUBHAQAAw8BFANXAbkDAAH/A14B7QM/AW0DPwFtA14B7QMAAf8D - VwG5Aw8BFAQAAxUBHANTAacDNwH5Az8BbCAAAxQBGwNSAaUDIwH9A1UBtAMmATgDBwEJOAADFgEeA1YB - swMkAf0DIwH9A1IBpQMUARsQAAMGAQgDJAE1Az4BawNGAX0DRgF+A0YBfgNGAX4DRgF+A0QBewM9AWkD - JAE0AwkBDCwAA00BkwMjAf0DUgGlAxQBGxwAA0kBhgMhAfsDNwH5A1MBpwMVARwcAAMGAQgDEgEXAyMB - MwM/AW4DWwHNA0MB9gNdAeoDVgG2Ay0BRCwAAz8BbAM3AfkDUwGnAxUBHAQAAw8BFANXAbkDAAH/A14B - 7QM/AW0DPwFtA14B7QMAAf8DVwG5Aw8BFAQAAxUBHANTAacDNwH5Az8BbCAAAxQBGwNSAaUDIwH9A1UB - tAMmATgDBwEJOAADFgEeA1YBswMkAf0DIwH9A1IBpQMUARsQAAMQARUDRgF/A1wB2QNdAeoDYQHmA2IB - 4QNgAeADXgHiA1wB5wNiAeEDUAGdAyEBMCQAAwIBAwMPARMDUQGeAyMB/QNSAaUDFAEbHAADSQGGAyEB - +wM3AfkDUwGnAxUBHBgAAwsBDgMtAUQDRgGBA1MBqQNdAd8DYAHoA18B2gNOAZYDKAE8AwkBDCwAAz8B - bAM3AfkDUwGnAxUBHAQAAw8BFANXAbkDAAH/A14B7QM/AW0DPwFtA14B7QMAAf8DVwG5Aw8BFAQAAxUB - HANTAacDNwH5Az8BbCAAAxQBGwNSAaUDIwH9A1UBtAMmATgDBwEJOAADFgEeA1YBswMkAf0DIwH9A1IB - pQMUARsQAAMTARoDTgGYA0UB9QMAAf8DYAHgA1YBtgNZAb4DXgHXA0QB9wMmAfwDWgHHAysBQiQAAw8B - EwNAAW8DXQHUA1kB7wNNAZIDEgEYHAADSQGGAyEB+wM3AfkDUwGnAxUBHBAABAIDDQERAzYBVwNYAbcD - XQHqA10B7ANfAdUDSwGPAzoBYAMeASsDBgEHMAADPwFsAzcB+QNTAacDFQEcBAADDwEUA1cBuQMAAf8D - XgHtAz8BbQM/AW0DXgHtAwAB/wNXAbkDDwEUBAADFQEcA1MBpwM3AfkDPwFsIAADFAEbA1IBpQMjAf0D - VQG0AyYBOAMHAQk4AAMWAR4DVgGzAyQB/QMjAf0DUgGlAxQBGxAAAxQBGwNQAZoDQgH2AwAB/wNRAaQD - JAE0A0QBeANeAd0DRAH3A1sB3gM7AWMDDgESIAADAgEDAx4BKgNVAbQDRAH3A1EBoQMbASYDBQEGHAAD - SQGGAyEB+wM3AfkDUwGnAxUBHAwABAEDEwEZA0QBegNgAdsDQQH3A0QB9wNZAbsDKwFCAxMBGQMIAQoD - AgEDNAADPwFsAzcB+QNTAacDFQEcBAADDwEUA1cBuQMAAf8DXgHtAz8BbQM/AW0DXgHtAwAB/wNXAbkD - DwEUBAADFQEcA1MBpwM3AfkDPwFsIAADFAEbA1IBpQMjAf0DVQG0AyYBOAMHAQk4AAMWAR4DVgGzAyQB - /QMjAf0DUgGlAxQBGxAAAxQBGwNQAZoDQgH2AwAB/wNOAZUDMQFMA2IB4QMAAf8DWwHNAxoBJCgAAxUB - HANTAacDNwH5AyEB+wNJAYYkAANJAYYDIQH7AzcB+QNTAacDFQEcDAADCwEOA00BkgM0AfkDAAH/AwAB - /wNVAa8DFgEdRAADPwFsAzcB+QNTAacDFQEcBAADDwEUA1cBuQMAAf8DXgHtAz8BbQM/AW0DXgHtAwAB - /wNXAbkDDwEUBAADFQEcA1MBpwM3AfkDPwFsIAADFAEbA1IBpQMjAf0DVgG2AygBPAMIAQo4AAMWAR4D - VgGzAyQB/QMjAf0DUgGlAxQBGxAAAxQBGwNQAZoDQgH2AwAB/wNGAfUDWQHvAycB/AMUAf4DXQHMAx0B - KQQCGAAEAgMGAQcDDwETAzIBTwNZAcADRQH1A10B0QM6AWAkAANJAYYDIQH7AzcB+QNTAacDFgEeAwwB - EAMqAUADVwG5A1oB6QNZAe8DYAHoA10BzwNGAX0DEwEaAwIBA0QAAz8BbAM3AfkDUwGnAxUBHAQAAw8B - FANXAbkDAAH/A14B7QM/AW0DPwFtA14B7QMAAf8DVwG5Aw8BFAQAAxUBHANTAacDNwH5Az8BbCAAAxQB - GwNSAaUDIwH9A1sB0AM/AWwDGAEhAw4BEgMOARIDDgESAw4BEgMOARIDDgESAw4BEgMOARIDDgESAw4B - EgMOARIDDgESAw4BEgMOARIDIAEuA1cBuQMkAf0DIwH9A1IBpQMUARsQAAMUARsDUAGaA0IB9gMAAf8D - AAH/AyYB+gNFAfUDJAH9A2AB4ANAAXEDHQEoAw4BEgMNAREDCQEMAwgBCgMLBA4BEgMcAScDOAFbA0QB - eQNaAccDYgHhA1YBtgM0AVQDDAEPJAADSQGGAyEB+wM3AfkDVQGuAyoBQAM/AW0DXQHRA0YB9QNZAe4D - WQG7A0QBeQMqAUADEQEWBAJIAAM/AWwDNwH5A1UBrgMgAS0DDgESAxsBJQNZAb4DAAH/A14B7QM/AW0D - PwFtA14B7QMAAf8DWQG+AxsBJQMOARIDIAEtA1UBrgM3AfkDPwFsIAADEwEaA1EBpAMlAfwDQgH2A10B - zANLAY0DRgGAA0YBgANGAYADRgGAA0YBgANGAYADRgGAA0YBgANGAYADRgGAA0YBgANGAYADRgGAA0YB - gANLAY8DXAHZAyQB/QNNAfQDTgGYAxMBGRAAAxIBGANLAYwDXgHtAwAB/wMmAf0DXAHZA1UBsQNdAd8D - RgH1A2AB4ANPAZsDRgGAA0QBegM5AV4DMwFQAz0BaANGAX4DUAGaA18B2gNbAeQDXwHaA08BmwMpAT4D - CgENKAADSQGGAyEB+wMmAfwDWwHTA1MBpgNcAdkDNwH5A2AB4ANQAZoDLQFFAxABFQMGAQcEAUwAAz8B - bAMmAfwDWwHTA0wBjgNGAYADSgGKA10B3AMkAf0DXQHfAzoBYgM6AWIDXQHfAyQB/QNdAdwDSgGKA0YB - gANMAY4DWwHTAyYB/AM/AWwgAAMSARcDSgGLA10B6gMSAf4DJwH6A1gB7wNeAe0DXgHtA14B7QNeAe0D - XgHtA14B7QNeAe0DXgHtA14B7QNeAe0DXgHtA14B7QNeAe0DXgHtA1gB7wMnAfoDJAH9A1cBwgM0AVQD - CwEOEAADCAEKAy4BSANVAbEDXgHiA2AB2wNPAZsDLQFEA0MBdwNdAcwDYgHhA10B6gNeAe0DWgHpA1sB - 0wNcAcgDXwHaA2EB6wNVAfIDNwH5A14B0gNEAXgDIQEvAwcBCSwAA0IBdQNdAeoDAQH/AzcB+QNTAfAD - XQHsA1wB2QNEAXsDHgEqAwYBCFgAAz8BbAMBAf8DNwH5A1gB7wNeAe0DWQHuAycB+gNCAfYDUAGdAyAB - LQMgAS0DUAGdA0IB9gMnAfoDWQHuA14B7QNYAe8DNwH5AxIB/gM/AWwgAAMFAQYDGgEjA00BkwNhAeYD - XgHtA0QB9gNEAfcDRAH3A0QB9wNEAfcDRAH3A0QB9wNEAfcDRAH3A0QB9wNEAfcDRAH3A0QB9wNEAfcD - RAH3A0QB9gNeAe0DXwHlA0cBgwMKAQ0EAhAABAEDCAEKAx8BLAMuAUgDLQFEAxsBJQMHAQkDDwETAyMB - MgMuAUcDVwG5A2AB6ANaAekDWgHuA1gB8QNdAewDWgHpA2AB6ANbAdADNAFTAw8BEwMCAQMwAAMWAR4D - RwGDA14B7QNYAfEDXwHVA0wBjgMrAUIDDwEUBAJcAAM6AWIDWgHpA14B7QNEAfYDRAH3A0QB9gNdAewD - XQHcAzwBZgMGAQgDBgEIAzwBZgNdAdwDXgHtA0QB9gNEAfcDRAH2A14B7QNhAeYDOgFiLAAEAQMjATMD - TgGXA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasD - TgGXAyMBMwQBTAADCQELAzkBXQNHAYIDJwE6AwQBBUgABAIDIgExAzoBYQMPARRwAAMDAQQDKAE7A04B - mANUAasDUQGeAyEBLxQAAwMBBAMlATcDUAGfA1QBqwNOAZgDKAE7AwMBBBgAAUIBTQE+BwABPgMAASgD - AAF8AwABMAMAAQEBAAEBBgABAxYAA/8BAAH8AQMB8AE/AQMB8AEPAcAIAAH8AQEB8AE/AQMB8AEHAcAI - AAH8AQABMAE/AQAB8AEDAYAIAAH8AQABEAE/AQABcAEAAYAIAAH8AgABPwEAATABAAGACAAB/AIAAT8B - AAEwAQABgAgAAfwCAAE/DAAB/AEIAQABPwEICwAB/AEMAQABPwEMAQABIAkAAfwBDwEAAT8BDAEAATAJ - AAH8AQ8BgAE/AQ4BAAE4CQAB/AEPAfABPwEPAcABPwkAAfwBDwGAAT8BDgEAATgJAAH8AQ8BAAE/AQwB - AAEwCQAB/AEMAQABPwEMAQABIAkAAfwBCAEAAT8BCAsAAfwCAAE/DAAB/AIAAT8BAAEwCgAB/AIAAT8B - AAEwAQABgAgAAfwBAAEQAT8BAAFwAQABgAgAAfwBAAEwAT8BAAHwAQMBgAgAAfwBAAHwAT8BAQHwAQcB - wAgAAfwBAwHwAT8BAwHwAQ8BwAgAAf4BHwH4AX8BDwH4AX8BwAgAAeACAAEHAf4BAAEBAf8B4AEPAv8B - 4AEAAQEB8AHgAgABBwH8AgAB/wHgAQcC/wHgAQABAQHwAeACAAEHAfwCAAF/AeABAwL/AeABAAEBAfAB - 4AIAAQcB/AIAAT8B4AEAAX8B/wHgAQABAQHwAeABfwH+AQcB/AEHAcABPwHgAQABPwH/AeEBAAEhAfAB - 4AF/Af4BBwL/AfgBPwHgAcABPwH/AeEBAAEhAfAB4AF/Af4BBwL/AfgBDwHgAcABAwH/AeEBAAEhAfAB - 4AF/Af4BBwL/AfwBDwHgAfABAQH/AeEBAAEhAfAB4AF/Af4BBwL/AfwBDwHgAfwBAAH/AeEBAAEhAfAB - 4AF/Af4BBwP/AQ8B4AH+AQAB/wHhAQABIQHwAeABfwH+AQcD/wEPAeAB/wEAAX8B4QEAASEB8AHgAX8B - /gEHA/8BDwHgAf8B8AF/AeEBAAEhAfAB4AF/Af4BBwGAAQcB/wEPAeAB/wEAAX8B4QEAASEB8AHgAX8B - /gEHAYABBwH/AQ8B4AH+AQAB/wHhAQABIQHwAeABfwH+AQcBgAEHAfwBDwHgAfwBAAH/AeEBAAEhAfAB - 4AF/Af4BBwGAAQcB/AEPAeAB8AEBAf8B4QEAASEB8AHgAX8B/gEHAYABBwH4AQ8C4AEDAf8B4QEAASEB - 8AHgAX8B/gEHAYABHwH4AT8C4AE/Af8B4QEAASEB8AHgAX8B/gEHAYABDwHAAT8B4AEAAT8B/wHhAQAB - IQHwAeACAAEHAYACAAE/AeABAAF/Af8B4AEAAQEB8AHgAgABBwGAAgABfwHgAQAC/wHgAQABAQHwAeAC - AAEHAYACAAH/AeABBwL/AeABAAEBAfAB4AIAAQcBgAEAAQEB/wHgAQ8C/wHgAQABAQHwAfwCAAE/Af8B - +AE/Af8B8AP/AfABPgEDAfAL + SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA8iMAAAJNU0Z0AUkBTAIBAQcB + AAFgAQABYAEAAR8BAAEYAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABfAMAATADAAEBAQABIAYAAV0+ + AAMEAQUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf8DAAH/A1UB + sWQAA0wB7wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/Ay0BRbcAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9cAANEAXgDAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/swAB/wMAAf8DAAH/AwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/AwAB + /zcAAf8DAAH/BwAB/wMAAf8DAAH/AwAB/wMAAf9XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf+vAAH/AwAB/wNRAaQnAAH/AwAB/wMAAf8DAAH/MwAB/wMAAf8IAANOAZcDAAH/AwAB/wMAAf8D + AAH/Ay4BSE8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/+AAAxUBHQMAAf8DAAH/AwAB/y8AAf8DAAH/EwAB + /wMAAf8DAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/kAAMmATgDAAH/AwAB/wMAAf8r + AAH/AwAB/xsAAf8DAAH/AwAB/wMAAf8DAAH/QwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/6wAB/wMAAf8D + AAH/KwAB/wMAAf8cAAMzAfYDAAH/AwAB/wMAAf8DAAH/AwQBBTsAAf8DAAH/AwAB/0sAAf8DAAH/AwAB + /+8AAf8DAAH/AwAB/ycAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf9LAAH/AwAB + /wMAAf/vAAH/AwAB/wMAAf8nAAH/AwAB/ygAAwcBCQMAAf8DAAH/AwAB/wMAAf8DWwHjLwAB/wMAAf8D + AAH/SwAB/wMAAf8DAAH/7AADIAEtAwAB/wMAAf8nAAH/AwAB/zMAAf8DAAH/AwAB/wMAAf8DAAH/KwAB + /wMAAf8DAAH/SwAB/wMAAf8DAAH/8wAB/wMAAf8nAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8nAAH/AwAB + /wMAAf9LAAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/PAADPwFsAwAB/wMAAf8nAAH/AwAB/wMAAf9L + AAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/ycAAf8DAAH/AwAB/0sAAf8D + AAH/AwAB/5sAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/NAADCAEKAwAB/wMAAf8nAAH/AwAB + /zAAA10BzgMAAf8DAAH/AwAB/wMAAf8EAScAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMAAf8DAAH/AwAB/ycAAf8DAAH/LwAB/wMAAf8D + AAH/AwAB/wMAAf8vAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wMAAf8nAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/NwAB + /wMAAf8DAAH/SwAB/wMAAf8DAAH/lAADBQEGAwAB/wMAAf8PAAH/AwAB/wMAAf8DFQEcLwAB/wMAAf8D + AAH/KwAB/wMAAf8cAAM9AWkDAAH/AwAB/wMAAf8DAAH/A0MBdjsAAf8DAAH/AwAB/0sAAf8DAAH/AwAB + /5QAAwUBBgMAAf8DAAH/CwAB/wMAAf8DAAH/AxMBGjMAAf8DAAH/AwAB/ysAAf8DAAH/GwAB/wMAAf8D + AAH/AwAB/wMAAf9DAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wcAAf8DAAH/AwAB + /wMbASYzAAH/AwAB/wMAAf8vAAH/AwAB/xMAAf8DAAH/AwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/SwAB + /wMAAf8DAAH/lAADBQEGAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMdASgkAANQAe4DAAH/AwAB + /wMAAf8EAS8AAf8DAAH/CAADGAEhAwAB/wMAAf8DAAH/AwAB/wNcActPAAH/AwAB/wMAAf9LAAH/AwAB + /wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/A1sB4wMAAf8DAAH/AwAB/wMAAf8DUAGfFwAB/wMAAf8D + AAH/AwAB/wMAAf83AAH/AwAB/wcAAf8DAAH/AwAB/wMAAf8DAAH/VwAB/wMAAf8DAAH/AwAB/wMqAUAD + KgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUAD + AAH/AwAB/wMAAf8DAAH/mwAB/wMAAf8DAAH/Ax0BKQQAAwIBAwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBwEJWAAD + WQHDAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/5wAAxIBFwMAAf8UAANKAYkDAAH/AwAB/wMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf8DAAH/AyEB+2cAAf8DAAH/AwAB/wMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D + AAH/AwAB/wNbAcXIAANGAYADWgG/Ay4BSFQAA1oBv3QAA0YBgANaAb8DWgG/A1oBvwNaAb8DWgG/A1oB + vwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DLgFIpwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADPQFpAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D + AAH/EwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/KAADGQEiAwAB/wMAAf8jAAH/AwAB/wMAAf8oAAM/AW0D + AAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D + AAH/KwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADAwEEAwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DAAH/AwAB/yQAA1YBtgMAAf8DAAH/AwAB + /wMAAf8kAAMmAfkDAAH/AwAB/xwAA0oB8QMAAf8DAAH/AwAB/wMAAf8DMgH4IwAB/wMAAf8DAAH/NwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8D + AAH/AwAB/wMAAf8DAAH/IAADVgG1AwAB/wMAAf8DAAH/AwAB/wMAAf8gAAMmAfkDAAH/AwAB/xwAA0oB + 8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/x8AAf8DAAH/AwAB/zcAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ycAAf8DAAH/AwAB + /wMAAf8DAAH/AwwB/jMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8D + AAH/AwAB/wNZAbsYAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUQGeGAADJgH5AwAB/wMAAf8c + AANKAfEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1ABnRcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB + /w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswMAAf8DAAH/AwAB + /wMAAf8rAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoAwAB/wMAAf8D + AAH/AwAB/wMAAf8UAANWAbUDAAH/AwAB/wMzAVADAAH/AwAB/wMAAf8DAAH/AwAB/xQAAyYB+QMAAf8D + AAH/HAADSgHxAwAB/wMAAf8DEQEWBAEDAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/zcAAf8D + AAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswcAAf8D + AAH/AwAB/wMAAf8jAAH/AwAB/wMAAf8DAAH/BwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoBwAB + /wMAAf8DAAH/AwAB/wMAAf8QAANWAbUDAAH/AwAB/wMzAVAHAAH/AwAB/wMAAf8DAAH/AwAB/xAAAyYB + +QMAAf8DAAH/HAADSgHxAwAB/wMAAf8DEQEWCwAB/wMAAf8DAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf83 + AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/wNWAbML + AAH/AwAB/wMAAf8DDAH+GwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/Az0B + aAgAA14B2wMAAf8DAAH/AwAB/wMAAf8MAANWAbUDAAH/AwAB/wMzAVAIAANbAeMDAAH/AwAB/wMAAf8D + AAH/DAADJgH5AwAB/wMAAf8cAANKAfEDAAH/AwAB/wMRARYMAAMzAVIDAAH/AwAB/wMAAf8DAAH/AwAB + /wcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB + /ycAAf8DAAH/A1YBsw8AAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/DAAD + VAGrAwAB/wMAAf8DPQFoDAADJQE3AwAB/wMAAf8DAAH/AwAB/wgAA1YBtQMAAf8DAAH/AzMBUAwAAzIB + TwMAAf8DAAH/AwAB/wMAAf8IAAMmAfkDAAH/AwAB/xwAA0oB8QMAAf8DAAH/AxEBFhcAAf8DAAH/AwAB + /wMAAf8DAAH/AwwB/gMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB + /wMAAf8DAAH/JwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/xAAAwwBDwMAAf8D + MwH2DAADVAGrAwAB/wMAAf8DPQFoFwAB/wMAAf8DAAH/AwAB/wQAA1YBtQMAAf8DAAH/AzMBUBcAAf8D + AAH/AwAB/wMAAf8EAAMmAfkDAAH/AwAB/xwAA0oB8QMAAf8DAAH/AxEBFhgAA1UB6QMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB + /0cAAf8DAAH/AwAB/wMMAf4DAAH/AwAB/wMAAf8DAAH/LAADVAGrAwAB/wMAAf8DPQFoGwAB/wMAAf8D + AAH/AwAB/wNdAc4DAAH/AwAB/wMzAVAbAAH/AwAB/wMAAf8DAAH/AyAB+gMAAf8DAAH/HAADSgHxAwAB + /wMAAf8DEQEWIwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB + /wMAAf8PAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8wAANUAasDAAH/AwAB/wM9AWgf + AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMwFQHwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/HAADSgHxAwAB + /wMAAf8DEQEWJwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB + /w8AAf8DAAH/AwAB/08AAf8DAAH/AwAB/wMAAf80AANUAasDAAH/AwAB/wM9AWgjAAH/AwAB/wMAAf8D + AAH/AwAB/wMzAVAjAAH/AwAB/wMAAf8DAAH/AwAB/xwAA0oB8QMAAf8DAAH/AxEBFisAAf8DAAH/AwAB + /zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB + /wMAAf8DAAH/AwwB/jAAA1QBqwMAAf8DAAH/Az0BaB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMzAVAf + AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8cAANKAfEDAAH/AwAB/wMRARYkAANcAdkDAAH/AwAB/wMAAf83 + AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf9HAAH/AwAB/wMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/ywAA1QBqwMAAf8DAAH/Az0BaBsAAf8DAAH/AwAB/wMAAf8DSgHxAwAB + /wMAAf8DMwFQGwAB/wMAAf8DAAH/AwAB/wMMAf4DAAH/AwAB/xwAA0oB8QMAAf8DAAH/AxEBFiMAAf8D + AAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8D + AAH/JwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/xcAAf8DWAG4DAADVAGrAwAB + /wMAAf8DPQFoFwAB/wMAAf8DAAH/AwAB/wQAA1YBtQMAAf8DAAH/AzMBUBcAAf8DAAH/AwAB/wMAAf8E + AAMmAfkDAAH/AwAB/xwAA0oB8QMAAf8DAAH/AxEBFhgAAzABSgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YB + sw8AAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DDAH+DwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8D + PQFoEwAB/wMAAf8DAAH/AwAB/wgAA1YBtQMAAf8DAAH/AzMBUAwAAwkBDAMAAf8DAAH/AwAB/wMAAf8I + AAMmAfkDAAH/AwAB/xwAA0oB8QMAAf8DAAH/AxEBFhcAAf8DAAH/AwAB/wMAAf8DAAH/AxgB/QMAAf8D + AAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8D + VgGzCwAB/wMAAf8DAAH/AwAB/xsAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB + /wM9AWgIAAM6AWADAAH/AwAB/wMAAf8DAAH/DAADVgG1AwAB/wMAAf8DMwFQCAADSwGMAwAB/wMAAf8D + AAH/AwAB/wwAAyYB+QMAAf8DAAH/HAADSgHxAwAB/wMAAf8DEQEWDAADBwEJAwAB/wMAAf8DAAH/AwAB + /wMAAf8HAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB + /wMAAf8nAAH/AwAB/wNWAbMHAAH/AwAB/wMAAf8DAAH/IwAB/wMAAf8DAAH/AwAB/wcAAf8DAAH/AwAB + /wwAA1QBqwMAAf8DAAH/Az0BaAcAAf8DAAH/AwAB/wMAAf8DAAH/EAADVgG1AwAB/wMAAf8DMwFQBwAB + /wMAAf8DAAH/AwAB/wMAAf8QAAMmAfkDAAH/AwAB/xwAA0oB8QMAAf8DAAH/AxEBFgsAAf8DAAH/AwAB + /wMAAf8DAAH/A08BmQsAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB + /w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswMAAf8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf8DDAH+AwAB + /wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoAwAB/wMAAf8DAAH/AwAB/wMAAf8UAANWAbUDAAH/AwAB + /wMzAVADAAH/AwAB/wMAAf8DAAH/AwAB/xQAAyYB+QMAAf8DAAH/HAADSgHxAwAB/wMAAf8DEQEWBwAB + /wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB + /wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DPwH0GAADVgG1AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/A1QB7BgAAyYB+QMAAf8DAAH/HAADSgHxAwAB/wMAAf8DWAHrAwAB/wMAAf8DAAH/AwAB + /wM/AfQXAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB + /wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8D + AAH/AwAB/wMAAf8DQwF3HAADVgG1AwAB/wMAAf8DAAH/AwAB/wMAAf8DMAFMHAADJgH5AwAB/wMAAf8c + AANKAfEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8fAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8DKgFAAyoB + QAMqAUADAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DKgFAAyoBQAMqAUADAAH/AwAB/wMAAf8nAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8bAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwYBCCAAA1YBtgMAAf8DAAH/AwAB/wMAAf8DAgEDIAAD + JgH5AwAB/wMAAf8cAANKAfEDAAH/AwAB/wMAAf8DAAH/AwAB/yMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xQAA0wBkAMAAf8DAAH/AwAB/wMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/y8AAf8DAAH/AwAB/ygAAzYBWAMAAf8DAAH/IwAB + /wMAAf8DAAH/Aw0BESQAA1UBrQMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8sAANaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DFQEcGAAD + TwGZA1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvxgAA04BlzQAA0sBjTAAAwwBDygAA1ABmjAAAygB + PEAAAzgBWwNaAb8DWgG/A1oBvwMwAUwYAANEAXoDWgG/A1oBvwNaAb8DIAEtHAABQgFNAT4HAAE+AwAB + KAMAAXwDAAEwAwABAQEAAQEGAAEDFgAD/wEAAf8B4AEHAf8B+AE/Av8B4AIAAXgEAAH/AcABAQH/AfgB + HwL/AcACAAF4BAAB/wGDAeAB/wH5AQcC/wHAAgABOAQAAf8BjwH4AX8B+QGBAv8BxwH/Af4BOAQAAv8B + /AE/AfkB4AL/AccB/wH+ATgEAAL/Af4BHwH5AfgBPwH/AccB/wH+ATgEAAP/AR8B+QH8AQ8B/wHHAf8B + /gE4BAAD/wGPAfkB/wEHAf8BxwH/Af4BOAQAA/8BjwH5Af8BgQH/AccB/wH+ATgEAAP/AY8B+QH/AeAB + /wHHAf8B/gE4BAAD/wHPAfkB/wH4AX8BxwH/Af4BOAQAA/8BzwH5Af8B/AF/AccB/wH+ATgEAAP/Ac8B + +QH/AfgBfwHHAf8B/gE4BAAB8AEPAf8BjwH5Af8B4AF/AccB/wH+ATgEAAHgAQcB/wGPAfkB/wHBAf8B + xwH/Af4BOAQAAeABBwH/AY8B+QH/AQcB/wHHAf8B/gE4BAAB4wGHAf8BHwH5AfwBDwH/AccB/wH+ATgE + AAHjAQ8B/wEfAfkB+AE/Af8BxwH/Af4BOAQAAeIBHwH+AT8B+QHgAv8BxwH/Af4BOAQAAeABDwH4AT8B + +QGBAv8BxwH/Af4BOAQAAeABAwHgAf8B+QEHAv8BwAIAATgEAAHwAYABAQH/AfgBDwL/AcACAAF4BAAB + 8wHgAQcB/wH4AT8C/wHgAgABeAQAAf8B/gE/Af8B/gP/AfgBAAEBAfgEAAHwAQcBwAEPAR8B/AF/AeMB + /AF/AeMB/wHwAR4BAwLwAQcBwAEOAQ8B+AE/AeMB+AEfAeMB/wHgAQwBAQLwAX8B/gEOAQcB+AEfAeMB + +AEPAeMB/wHgAQwBAQLwAT8B/AEOAQEB+AEHAeMB+AEDAeMB/wHjAYwBcQLwAR8B+AEOAQAB+AEDAeMB + +AEBAeMB/wHjAYwBcQHwAfEBDwHwAY4BEAF4AUEB4wH4AWAB4wH/AeMBjAFxAfAB8QGHAeEBjgEYATgB + YAHjAfgBcAEjAf8B4wGMAXEB8AHxAsMBjgEcARgBcAFjAfgBfAEDAf8B4wGMAXEB8AHzAeEBhwGOAR8B + CAF8ASMB+AF+AQMB/wHjAYwBcQHwAf8B8AEPAf4BHwGAAX4BAwH4AX8BgwH/AeMBjAFxAfAB/wH4AR8B + /gEfAcABfwEDAfgBfwHDAf8B4wGMAXEB8AH/AfwBPwH+AR8B4AF/AYMB+AF/AeMB/wHjAYwBcQHwAf8B + +AEfAf4BHwHAAX8BAwH4AX8BwwH/AeMBjAFxAfAB/wHwAQ8B/gEfAYABfgEDAfgBfwGDAf8B4wGMAXEB + 8AHzAeEBhwHOAR8BCAF8ASMB+AF+AQMB/wHjAYwBcQHwAfECwwGOAR4BGAFwAWMB+AF8AQMB/wHjAYwB + cQHwAfEBhwHhAY4BGAE4AWAB4wH4AXABIwH/AeMBjAFxAfAB8QEPAfABjgEQAXgBQQHjAfgBYAFjAf8B + 4wGMAXEC8AEfAfgBDgEAAfgBAwHjAfgBQQHjAf8B4wGMAXEC8AE/AfwBDgEBAfgBBwHjAfgBAwHjAf8B + 4wGMAXEC8AF/Af4BDgEDAfgBDwHjAfgBDwHjAf8B4AEMAQEC8AEHAeABDgEHAfgBHwHjAfgBHwHjAf8B + 4AEMAQEC8AEHAcABDwEfAfwBfwHjAfwBPwHjAf8B8AEeAQMB8AH4AQcB4AEfAb8B/gH/AfcB/gH/AfcB + /wH4AT8BBwHwCw== 165, 17 + + 307, 18 + - 291, 17 + 630, 18 \ No newline at end of file diff --git a/SpineViewer/Forms/SpinePreviewFullScreenForm.Designer.cs b/SpineViewer/Forms/SpinePreviewFullScreenForm.Designer.cs new file mode 100644 index 0000000..ba97584 --- /dev/null +++ b/SpineViewer/Forms/SpinePreviewFullScreenForm.Designer.cs @@ -0,0 +1,51 @@ +namespace SpineViewer.Forms +{ + partial class SpinePreviewFullScreenForm + { + /// + /// 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() + { + SuspendLayout(); + // + // SpinePreviewFullScreenForm + // + AutoScaleMode = AutoScaleMode.None; + ClientSize = new Size(512, 512); + ControlBox = false; + FormBorderStyle = FormBorderStyle.None; + MaximizeBox = false; + MinimizeBox = false; + Name = "SpinePreviewFullScreenForm"; + ShowIcon = false; + ShowInTaskbar = false; + StartPosition = FormStartPosition.Manual; + TopMost = true; + ResumeLayout(false); + } + + #endregion + } +} \ No newline at end of file diff --git a/SpineViewer/Forms/SpinePreviewFullScreenForm.cs b/SpineViewer/Forms/SpinePreviewFullScreenForm.cs new file mode 100644 index 0000000..0a8ff60 --- /dev/null +++ b/SpineViewer/Forms/SpinePreviewFullScreenForm.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.Design; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SpineViewer.Forms +{ + [ToolboxItem(true)] + [Designer(typeof(ComponentDesigner), typeof(IDesigner))] + [DesignTimeVisible(true)] + public partial class SpinePreviewFullScreenForm: Form + { + public SpinePreviewFullScreenForm() + { + InitializeComponent(); + } + } +} diff --git a/SpineViewer/Forms/SpinePreviewFullScreenForm.resx b/SpineViewer/Forms/SpinePreviewFullScreenForm.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/SpineViewer/Forms/SpinePreviewFullScreenForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SpineViewer/Forms/SpineViewerForm.Designer.cs b/SpineViewer/Forms/SpineViewerForm.Designer.cs index 1d16e20..1a43bc4 100644 --- a/SpineViewer/Forms/SpineViewerForm.Designer.cs +++ b/SpineViewer/Forms/SpineViewerForm.Designer.cs @@ -61,7 +61,6 @@ toolStripMenuItem_About = new ToolStripMenuItem(); toolStripMenuItem_Experiment = new ToolStripMenuItem(); toolStripMenuItem_DesktopProjection = new ToolStripMenuItem(); - toolStripMenuItem_Debug = new ToolStripMenuItem(); rtbLog = new RichTextBox(); splitContainer_MainForm = new SplitContainer(); splitContainer_Functional = new SplitContainer(); @@ -77,6 +76,7 @@ spinePreviewPanel = new SpineViewer.Controls.SpinePreviewPanel(); panel_MainForm = new Panel(); toolTip = new ToolTip(components); + toolStripMenuItem_Debug = new ToolStripMenuItem(); menuStrip.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)splitContainer_MainForm).BeginInit(); splitContainer_MainForm.Panel1.SuspendLayout(); @@ -274,7 +274,7 @@ // // toolStripMenuItem_Help // - toolStripMenuItem_Help.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem_Diagnostics, toolStripSeparator3, toolStripMenuItem_About }); + toolStripMenuItem_Help.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem_Diagnostics, toolStripSeparator3, toolStripMenuItem_About, toolStripMenuItem_Debug }); toolStripMenuItem_Help.Name = "toolStripMenuItem_Help"; toolStripMenuItem_Help.Size = new Size(88, 28); toolStripMenuItem_Help.Text = "帮助(&H)"; @@ -282,25 +282,25 @@ // toolStripMenuItem_Diagnostics // toolStripMenuItem_Diagnostics.Name = "toolStripMenuItem_Diagnostics"; - toolStripMenuItem_Diagnostics.Size = new Size(208, 34); + toolStripMenuItem_Diagnostics.Size = new Size(270, 34); toolStripMenuItem_Diagnostics.Text = "诊断信息(&D)"; toolStripMenuItem_Diagnostics.Click += toolStripMenuItem_Diagnostics_Click; // // toolStripSeparator3 // toolStripSeparator3.Name = "toolStripSeparator3"; - toolStripSeparator3.Size = new Size(205, 6); + toolStripSeparator3.Size = new Size(267, 6); // // toolStripMenuItem_About // toolStripMenuItem_About.Name = "toolStripMenuItem_About"; - toolStripMenuItem_About.Size = new Size(208, 34); + toolStripMenuItem_About.Size = new Size(270, 34); toolStripMenuItem_About.Text = "关于(&A)"; toolStripMenuItem_About.Click += toolStripMenuItem_About_Click; // // toolStripMenuItem_Experiment // - toolStripMenuItem_Experiment.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem_DesktopProjection, toolStripMenuItem_Debug }); + toolStripMenuItem_Experiment.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem_DesktopProjection }); toolStripMenuItem_Experiment.Name = "toolStripMenuItem_Experiment"; toolStripMenuItem_Experiment.Size = new Size(138, 28); toolStripMenuItem_Experiment.Text = "实验性功能(&E)"; @@ -308,18 +308,10 @@ // toolStripMenuItem_DesktopProjection // toolStripMenuItem_DesktopProjection.Name = "toolStripMenuItem_DesktopProjection"; - toolStripMenuItem_DesktopProjection.Size = new Size(270, 34); + toolStripMenuItem_DesktopProjection.Size = new Size(182, 34); toolStripMenuItem_DesktopProjection.Text = "桌面投影"; toolStripMenuItem_DesktopProjection.Click += toolStripMenuItem_DesktopProjection_Click; // - // toolStripMenuItem_Debug - // - toolStripMenuItem_Debug.Name = "toolStripMenuItem_Debug"; - toolStripMenuItem_Debug.Size = new Size(270, 34); - toolStripMenuItem_Debug.Text = "调试"; - toolStripMenuItem_Debug.Visible = false; - toolStripMenuItem_Debug.Click += toolStripMenuItem_Debug_Click; - // // rtbLog // rtbLog.BackColor = SystemColors.Window; @@ -330,7 +322,7 @@ rtbLog.Margin = new Padding(3, 2, 3, 2); rtbLog.Name = "rtbLog"; rtbLog.ReadOnly = true; - rtbLog.Size = new Size(1758, 150); + rtbLog.Size = new Size(1758, 154); rtbLog.TabIndex = 0; rtbLog.Text = ""; rtbLog.WordWrap = false; @@ -354,7 +346,7 @@ splitContainer_MainForm.Panel2.Controls.Add(rtbLog); splitContainer_MainForm.Panel2.Cursor = Cursors.Default; splitContainer_MainForm.Size = new Size(1758, 1097); - splitContainer_MainForm.SplitterDistance = 939; + splitContainer_MainForm.SplitterDistance = 935; splitContainer_MainForm.SplitterWidth = 8; splitContainer_MainForm.TabIndex = 3; splitContainer_MainForm.TabStop = false; @@ -378,7 +370,7 @@ // splitContainer_Functional.Panel2.Controls.Add(groupBox_Preview); splitContainer_Functional.Panel2.Cursor = Cursors.Default; - splitContainer_Functional.Size = new Size(1758, 939); + splitContainer_Functional.Size = new Size(1758, 935); splitContainer_Functional.SplitterDistance = 788; splitContainer_Functional.SplitterWidth = 8; splitContainer_Functional.TabIndex = 2; @@ -402,7 +394,7 @@ // splitContainer_Information.Panel2.Controls.Add(splitContainer_Config); splitContainer_Information.Panel2.Cursor = Cursors.Default; - splitContainer_Information.Size = new Size(788, 939); + splitContainer_Information.Size = new Size(788, 935); splitContainer_Information.SplitterDistance = 351; splitContainer_Information.SplitterWidth = 8; splitContainer_Information.TabIndex = 1; @@ -416,7 +408,7 @@ groupBox_SkelList.Dock = DockStyle.Fill; groupBox_SkelList.Location = new Point(0, 0); groupBox_SkelList.Name = "groupBox_SkelList"; - groupBox_SkelList.Size = new Size(351, 939); + groupBox_SkelList.Size = new Size(351, 935); groupBox_SkelList.TabIndex = 0; groupBox_SkelList.TabStop = false; groupBox_SkelList.Text = "模型列表"; @@ -426,7 +418,7 @@ spineListView.Dock = DockStyle.Fill; spineListView.Location = new Point(3, 26); spineListView.Name = "spineListView"; - spineListView.Size = new Size(345, 910); + spineListView.Size = new Size(345, 906); spineListView.SpinePropertyGrid = spineViewPropertyGrid; spineListView.TabIndex = 0; // @@ -435,7 +427,7 @@ spineViewPropertyGrid.Dock = DockStyle.Fill; spineViewPropertyGrid.Location = new Point(3, 26); spineViewPropertyGrid.Name = "spineViewPropertyGrid"; - spineViewPropertyGrid.Size = new Size(423, 582); + spineViewPropertyGrid.Size = new Size(423, 580); spineViewPropertyGrid.TabIndex = 0; // // splitContainer_Config @@ -452,8 +444,8 @@ // splitContainer_Config.Panel2 // splitContainer_Config.Panel2.Controls.Add(groupBox_SkelConfig); - splitContainer_Config.Size = new Size(429, 939); - splitContainer_Config.SplitterDistance = 320; + splitContainer_Config.Size = new Size(429, 935); + splitContainer_Config.SplitterDistance = 318; splitContainer_Config.SplitterWidth = 8; splitContainer_Config.TabIndex = 0; // @@ -464,7 +456,7 @@ groupBox_PreviewConfig.Location = new Point(0, 0); groupBox_PreviewConfig.Margin = new Padding(0); groupBox_PreviewConfig.Name = "groupBox_PreviewConfig"; - groupBox_PreviewConfig.Size = new Size(429, 320); + groupBox_PreviewConfig.Size = new Size(429, 318); groupBox_PreviewConfig.TabIndex = 1; groupBox_PreviewConfig.TabStop = false; groupBox_PreviewConfig.Text = "画面参数"; @@ -475,7 +467,7 @@ propertyGrid_Previewer.HelpVisible = false; propertyGrid_Previewer.Location = new Point(3, 26); propertyGrid_Previewer.Name = "propertyGrid_Previewer"; - propertyGrid_Previewer.Size = new Size(423, 291); + propertyGrid_Previewer.Size = new Size(423, 289); propertyGrid_Previewer.TabIndex = 1; propertyGrid_Previewer.ToolbarVisible = false; // @@ -486,7 +478,7 @@ groupBox_SkelConfig.Location = new Point(0, 0); groupBox_SkelConfig.Margin = new Padding(0); groupBox_SkelConfig.Name = "groupBox_SkelConfig"; - groupBox_SkelConfig.Size = new Size(429, 611); + groupBox_SkelConfig.Size = new Size(429, 609); groupBox_SkelConfig.TabIndex = 0; groupBox_SkelConfig.TabStop = false; groupBox_SkelConfig.Text = "模型参数"; @@ -497,7 +489,7 @@ groupBox_Preview.Dock = DockStyle.Fill; groupBox_Preview.Location = new Point(0, 0); groupBox_Preview.Name = "groupBox_Preview"; - groupBox_Preview.Size = new Size(962, 939); + groupBox_Preview.Size = new Size(962, 935); groupBox_Preview.TabIndex = 1; groupBox_Preview.TabStop = false; groupBox_Preview.Text = "预览画面"; @@ -508,7 +500,7 @@ spinePreviewPanel.Location = new Point(3, 26); spinePreviewPanel.Name = "spinePreviewPanel"; spinePreviewPanel.PropertyGrid = propertyGrid_Previewer; - spinePreviewPanel.Size = new Size(956, 910); + spinePreviewPanel.Size = new Size(956, 906); spinePreviewPanel.SpineListView = spineListView; spinePreviewPanel.TabIndex = 0; // @@ -526,6 +518,13 @@ // toolTip.ShowAlways = true; // + // toolStripMenuItem_Debug + // + toolStripMenuItem_Debug.Name = "toolStripMenuItem_Debug"; + toolStripMenuItem_Debug.Size = new Size(270, 34); + toolStripMenuItem_Debug.Text = "调试"; + toolStripMenuItem_Debug.Visible = false; + // // SpineViewerForm // AutoScaleDimensions = new SizeF(144F, 144F); diff --git a/SpineViewer/Forms/WallpaperForm.cs b/SpineViewer/Forms/WallpaperForm.cs index b86a2ee..e2c613b 100644 --- a/SpineViewer/Forms/WallpaperForm.cs +++ b/SpineViewer/Forms/WallpaperForm.cs @@ -28,11 +28,32 @@ namespace SpineViewer get { var cp = base.CreateParams; - cp.X = cp.Y = 0; - cp.ExStyle = Win32.WS_EX_LAYERED | Win32.WS_EX_TOOLWINDOW; - cp.Style = Win32.WS_POPUP; + cp.ExStyle = Win32.WS_EX_LAYERED; return cp; } } + + //protected override void OnHandleCreated(EventArgs e) + //{ + // base.OnHandleCreated(e); + // Win32.SetLayeredWindowAttributes(Handle, 0, 255, Win32.LWA_ALPHA); + // SetWallpaper(); + //} + + //public void SetWallpaper() + //{ + // // 设置成嵌入桌面 + // var progman = Win32.FindWindow("Progman", null); + // if (progman != IntPtr.Zero) + // { + // // 确保 WorkerW 被创建 + // Win32.SendMessageTimeout(progman, Win32.WM_SPAWN_WORKER, IntPtr.Zero, IntPtr.Zero, Win32.SMTO_NORMAL, 1000, out _); + // var workerW = Win32.GetWorkerW(); + // if (workerW != IntPtr.Zero) + // { + // Win32.SetParent(Handle, workerW); + // } + // } + //} } }