From f7316622ca222ee45cc845e26ffed3c38cd724c3 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 27 Jun 2026 15:39:05 +0100 Subject: [PATCH] Initial commit --- .gitignore | 6 + SuzuMagnifier.slnx | 3 + build.bat | 11 + icon/favicon.ico | Bin 0 -> 17542 bytes icon/icon-1.svg | 80 ++++ icon/icon-128.png | Bin 0 -> 5209 bytes icon/icon-16.png | Bin 0 -> 595 bytes icon/icon-24.png | Bin 0 -> 822 bytes icon/icon-32.png | Bin 0 -> 1143 bytes icon/icon-48.png | Bin 0 -> 1668 bytes icon/icon-64.png | Bin 0 -> 2354 bytes source/Dtos/SavedOptions.cs | 22 + source/Form1.Designer.cs | 345 +++++++++++++++ source/Form1.cs | 686 +++++++++++++++++++++++++++++ source/Form1.resx | 721 +++++++++++++++++++++++++++++++ source/Program.cs | 16 + source/SuzuMagnifier.csproj | 36 ++ source/SuzuMagnifier.csproj.user | 8 + source/favicon.ico | Bin 0 -> 17542 bytes 19 files changed, 1934 insertions(+) create mode 100644 .gitignore create mode 100644 SuzuMagnifier.slnx create mode 100644 build.bat create mode 100644 icon/favicon.ico create mode 100644 icon/icon-1.svg create mode 100644 icon/icon-128.png create mode 100644 icon/icon-16.png create mode 100644 icon/icon-24.png create mode 100644 icon/icon-32.png create mode 100644 icon/icon-48.png create mode 100644 icon/icon-64.png create mode 100644 source/Dtos/SavedOptions.cs create mode 100644 source/Form1.Designer.cs create mode 100644 source/Form1.cs create mode 100644 source/Form1.resx create mode 100644 source/Program.cs create mode 100644 source/SuzuMagnifier.csproj create mode 100644 source/SuzuMagnifier.csproj.user create mode 100644 source/favicon.ico diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8f87d36 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +bin +obj +packages +*~ +/.github +/.vs \ No newline at end of file diff --git a/SuzuMagnifier.slnx b/SuzuMagnifier.slnx new file mode 100644 index 0000000..de12f16 --- /dev/null +++ b/SuzuMagnifier.slnx @@ -0,0 +1,3 @@ + + + diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..40e522a --- /dev/null +++ b/build.bat @@ -0,0 +1,11 @@ +rmdir /s /q "bin\" +rmdir /s /q "source\bin\" +rmdir /s /q "source\obj\" + +dotnet restore SuzuMagnifier.slnx +dotnet publish SuzuMagnifier.slnx -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="..\bin\" + +rmdir /s /q "source\bin\" +rmdir /s /q "source\obj\" + +REM PAUSE \ No newline at end of file diff --git a/icon/favicon.ico b/icon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..49097ef75f7e1bcaddb3b5ae1ee2327886b4647a GIT binary patch literal 17542 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 + + + + + + + + + + diff --git a/icon/icon-128.png b/icon/icon-128.png new file mode 100644 index 0000000000000000000000000000000000000000..230e29c6ba9589819b30e3afbf7b3e6b0312a380 GIT binary patch literal 5209 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 literal 0 HcmV?d00001 diff --git a/icon/icon-16.png b/icon/icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7239cfc7c6324ff6ce31643344bb9596f98343 GIT binary patch literal 595 zcmV-Z0<8UsP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10pLkQ zK~y-6m6K0MlW`cwKfm{V)u|Z>tx!!l2C zx!)WJj}p1l^x2x2a!ddk*OgX2JW4#7HI33#g;>%+CEjD)zl0Han8$D0SI_P(weHde z=_ESX4ViQvzqQTJdb@g|_!VkaEY|M3!Q|6E0IY&R_d90j0jOMq)HoVYuS1w$rvVUU zkV#DbPu(BB`mn;gD0S(8h{2{p_Ibf>92LmEQ24tQFK+| z9Y~}f)vy<_H==s3ASb)2DN`J^e+4TMi9dTgv!>_C1Q{p)5>w-^h(5kd@1p^BZQDRo za|_Kad+55}iPu{P@Cgx#%Rlh^MO3yo?vVcAz#ncf`cizWR!g1NCxMQ0@@{B2fr!NZ z7CO$HT)oyQr%ngtLu{&lCUv002ovPDHLkV1m#!2$}!@ literal 0 HcmV?d00001 diff --git a/icon/icon-24.png b/icon/icon-24.png new file mode 100644 index 0000000000000000000000000000000000000000..a71644fa96101d3f46a87b1e0c3466ad178629b8 GIT binary patch literal 822 zcmV-61Ihe}P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10>eo} zK~zYIwUtXqRACgyf8U)ule);%${Z~MrJ*z*n1rFYh#o>k5kX}ZrHhskiA5L`L_`nh zf%fnLQARI%EF`ihY~jL9n@lW&Kpm%?G)k*G-g{b1j@tObnf|+b9{>Nj=bZ2Rl!(j$ zYJl~CMtEQXPk|C8A`gHKfFn%g!!Up+N<;>Ls4$ZcV^9a|zkL?RuD5aXSr=~auaFoM z;vy(sm&A!u7Y@5-S0ZARSGL;E-0lcZ&3{o|l)|a~OMOa2jKs~2cDMHz6y<_5CN$=* zKB#ZTIX8mNhiiNqFw&M#$pI4m9NoQs&Ty^eg!u0Q`b?5+O?SZ@LSo{vGFJx&B*l;y zt7a}BFX}MgG-6wvjym-UiJCn&U`H-Zn`}UcEmGNq!Q}rSv>7-egG{zNC(+uP1K*Rj zNNZ_;eowIDdmjMe`GnS37ceV#2j-)5sD>);C0DX->z2s{B+-S^Y{8Bp!%z6tjl?=f z;$xj?srdlpt;(MI55$>_IFrZN)bBy)_n<{ZqkKP+c}ZA{QiF065=IR7GrNu0j*0qUEX3i7cQ5LDJ$WO)Hr#X9u5 zGKNadfl@4tgew^%yQ2dfFL5CPH=lI|?vQb-A85z=@|x%cX?U(3V3xzdzIWTHtGPr` z%nvS{KSNwx>^~KW7%~lby|v!(n@>?jV0&fY!6xR#_$xc~q) zwKvf1I(v$D8o*;EBGEuKPza23s%8WeXaGw805PwnBYg?s8~^|S07*qoM6N<$g8C+M AH2?qr literal 0 HcmV?d00001 diff --git a/icon/icon-32.png b/icon/icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..100db42e5803e31ce475bd8504cd38250425d30b GIT binary patch literal 1143 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 literal 0 HcmV?d00001 diff --git a/icon/icon-64.png b/icon/icon-64.png new file mode 100644 index 0000000000000000000000000000000000000000..bedd62bf002c75c32e42c18a2f95e2f43996d8c7 GIT binary patch literal 2354 zcmV-23C;G2P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H12){{0 zK~#90?VEdWl+_u=f9KmTn@zI0l8{J%ATgK(F%Sgh5^hEq9Oy^`UPfr)5ADzyZO4|e zwoG+wXX^FPSpQ@p*_m;M zG=l(NS2r``(Y-XBvxSXdI4~g5%#KwPxn+2~m)%Q%)^-QC{$eL5YTLq2FdVq?hFA`* zn~F6?ciX%=zvnkpU$vD7IDWc~7v8G&vbkG;2n;RR#;N)a?@|gFIT*51!SoYZ7dZt^ z)I;T|uBDI%GSe*7Y`n|eDZ1N2<%t$!^EgDW0I|loKw8p8n{G&rAoLw?pxRrJjNwQ^8j_rfD6lLa2r;n6t>6cr4(7_%>ggALP;H?UXiLYZ__ToRfk4&5BvB|z#BY|H)yre0E> zm;*_1WYyKP_*N^wS#Tq|$D*!Z2_U8@oQ@7~0G+K~Y0*(uZCY{Jto=*?V+$b4g2cod?UzB+y5%?yZKLy4C9e1WPV{q&aGY=PnYVul;OiAI z$3V34M8_ZW?XMxF8*#Lp1;BBx7Tdm!?0)2DR8$@@<`0~$5$1QELzVADd<;8yI@7dm@)Stk1=6_x`m&3-{^3PfDz+(37+(J@PqB||90yyrNL)4ca;`b!- z3J_sKj&} zljoynWFsyo&ZA$T?|na@5b1sf5w`#%hQ#?Ey|!0?-OssUkf7C6;k=}i({wX3Y6@aa zMx_k}6!wN1OmF`Ut^T`S$C#exyA8O9!9l4O#^omQMOBk`j*|_r<}=7l22*Id4AYk@ zus3*DO3%0n$DNA+a84@0RJjvp+c`Rqe?|0)hvDT%rOAC zY#liEe}H-AuY4|`%o^lc;m%&CwO}KV}8pO z&o1H9Pd0n?87Re&VY$qmJC_%p`wP)#KSR1NNCeQ>*d(`(EfSOxx~5uUiHVnz`MiI2uevx+F-eT@=V$C$){KJ6;=T{Iy+^~ya&Y+6YnM*YfY5m*(K82dcIe_ z{=NAl8J083w+P)rq-A8uq-l4{dz(J=D{j~XXl`zi8MEez*%Id_nVLRWmOS)`*zJyh zd~V&gL$Y(n2pC@nPa)!y(j>p&4q3QlsZ>-R@$wNC0S=c}%II;^+|6ETCdtVkD=SyO z+-KjVd%lnnBgctSntu_xAEoJX!;l;qJK-*Oi$Fx2eP-bYE|*K5U-1tae)DK|rA3rJMC(ZO~UA~^QjG@ zg0Ft*70EA{AW@ch8Je9hQ;X-y>uXl!hf2NpdnnOP%b=%`)ufv2sVzELrx%Q&N5WWM5tO8K3Pcm6fa4_)9Jq5&go|**stm*Ur`1 zM!K%fexm_&UnHJL*LBjX9Tjv}9xmA{6cHVGkc-#n)9FV$#{t4c*Y){>bX}ic?|FUx Y|ByzU!v-ZZ_y7O^07*qoM6N<$f`xl+a{vGU literal 0 HcmV?d00001 diff --git a/source/Dtos/SavedOptions.cs b/source/Dtos/SavedOptions.cs new file mode 100644 index 0000000..eaf6bd2 --- /dev/null +++ b/source/Dtos/SavedOptions.cs @@ -0,0 +1,22 @@ +namespace SuzuMagnifier.Dtos +{ + public class SavedOptions + { + public int Version { get; set; } = 1; + + public bool AutoStart { get; set; } + + public bool HighQuality { get; set; } + + public int ZoomFactor { get; set; } + + public int UpdateFrequency { get; set; } + + public bool ShowCrosshair { get; set; } + + public int CrosshairSize { get; set; } + + public Color CrosshairColour { get; set; } + + } +} diff --git a/source/Form1.Designer.cs b/source/Form1.Designer.cs new file mode 100644 index 0000000..4d8dc1b --- /dev/null +++ b/source/Form1.Designer.cs @@ -0,0 +1,345 @@ +namespace SuzuMagnifier +{ + partial class Form1 + { + /// + /// 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() + { + components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + notifyIcon1 = new NotifyIcon(components); + contextMenuStrip1 = new ContextMenuStrip(components); + toolStripMenuItem1 = new ToolStripMenuItem(); + toolStripMenuItem2 = new ToolStripMenuItem(); + toolStripSeparator2 = new ToolStripSeparator(); + toolStripMenuItem4 = new ToolStripMenuItem(); + fasterToolStripMenuItem = new ToolStripMenuItem(); + highToolStripMenuItem = new ToolStripMenuItem(); + toolStripMenuItem6 = new ToolStripMenuItem(); + toolStripMenuItem7 = new ToolStripMenuItem(); + toolStripMenuItem8 = new ToolStripMenuItem(); + toolStripSeparator3 = new ToolStripSeparator(); + resetToolStripMenuItem = new ToolStripMenuItem(); + toolStripMenuItem9 = new ToolStripMenuItem(); + showToolStripMenuItem = new ToolStripMenuItem(); + toolStripSeparator5 = new ToolStripSeparator(); + sizeToolStripMenuItem = new ToolStripMenuItem(); + smallToolStripMenuItem = new ToolStripMenuItem(); + mediumToolStripMenuItem = new ToolStripMenuItem(); + largeToolStripMenuItem = new ToolStripMenuItem(); + colourToolStripMenuItem = new ToolStripMenuItem(); + agentaToolStripMenuItem = new ToolStripMenuItem(); + cyanToolStripMenuItem = new ToolStripMenuItem(); + yellowToolStripMenuItem = new ToolStripMenuItem(); + greenToolStripMenuItem = new ToolStripMenuItem(); + redToolStripMenuItem = new ToolStripMenuItem(); + blackToolStripMenuItem = new ToolStripMenuItem(); + whiteToolStripMenuItem = new ToolStripMenuItem(); + toolStripSeparator4 = new ToolStripSeparator(); + toolStripMenuItem5 = new ToolStripMenuItem(); + toolStripMenuItem3 = new ToolStripMenuItem(); + toolStripSeparator1 = new ToolStripSeparator(); + exitiToolStripMenuItem = new ToolStripMenuItem(); + contextMenuStrip1.SuspendLayout(); + SuspendLayout(); + // + // notifyIcon1 + // + notifyIcon1.ContextMenuStrip = contextMenuStrip1; + notifyIcon1.Icon = (Icon)resources.GetObject("notifyIcon1.Icon"); + notifyIcon1.Text = "notifyIcon1"; + notifyIcon1.Visible = true; + // + // contextMenuStrip1 + // + contextMenuStrip1.Items.AddRange(new ToolStripItem[] { toolStripMenuItem1, toolStripMenuItem2, toolStripSeparator2, toolStripMenuItem4, toolStripMenuItem6, toolStripMenuItem9, toolStripSeparator4, toolStripMenuItem5, toolStripMenuItem3, toolStripSeparator1, exitiToolStripMenuItem }); + contextMenuStrip1.Name = "contextMenuStrip1"; + contextMenuStrip1.Size = new Size(205, 198); + contextMenuStrip1.Opening += contextMenuStrip1_Opening; + // + // toolStripMenuItem1 + // + toolStripMenuItem1.Name = "toolStripMenuItem1"; + toolStripMenuItem1.Size = new Size(204, 22); + toolStripMenuItem1.Text = "&Start"; + toolStripMenuItem1.Click += toolStripMenuItem1_Click; + // + // toolStripMenuItem2 + // + toolStripMenuItem2.Name = "toolStripMenuItem2"; + toolStripMenuItem2.Size = new Size(204, 22); + toolStripMenuItem2.Text = "Sto&p"; + toolStripMenuItem2.Click += toolStripMenuItem2_Click; + // + // toolStripSeparator2 + // + toolStripSeparator2.Name = "toolStripSeparator2"; + toolStripSeparator2.Size = new Size(201, 6); + // + // toolStripMenuItem4 + // + toolStripMenuItem4.DropDownItems.AddRange(new ToolStripItem[] { fasterToolStripMenuItem, highToolStripMenuItem }); + toolStripMenuItem4.Name = "toolStripMenuItem4"; + toolStripMenuItem4.Size = new Size(204, 22); + toolStripMenuItem4.Text = "&Quality"; + // + // fasterToolStripMenuItem + // + fasterToolStripMenuItem.Name = "fasterToolStripMenuItem"; + fasterToolStripMenuItem.Size = new Size(100, 22); + fasterToolStripMenuItem.Text = "&Fast"; + fasterToolStripMenuItem.Click += fastToolStripMenuItem_Click; + // + // highToolStripMenuItem + // + highToolStripMenuItem.Name = "highToolStripMenuItem"; + highToolStripMenuItem.Size = new Size(100, 22); + highToolStripMenuItem.Text = "&High"; + highToolStripMenuItem.Click += highToolStripMenuItem_Click; + // + // toolStripMenuItem6 + // + toolStripMenuItem6.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem7, toolStripMenuItem8, toolStripSeparator3, resetToolStripMenuItem }); + toolStripMenuItem6.Name = "toolStripMenuItem6"; + toolStripMenuItem6.Size = new Size(204, 22); + toolStripMenuItem6.Text = "Zoom"; + // + // toolStripMenuItem7 + // + toolStripMenuItem7.Name = "toolStripMenuItem7"; + toolStripMenuItem7.ShortcutKeys = Keys.Control | Keys.Oemplus; + toolStripMenuItem7.Size = new Size(214, 22); + toolStripMenuItem7.Text = "Increase"; + toolStripMenuItem7.Click += toolStripMenuItem7_Click; + // + // toolStripMenuItem8 + // + toolStripMenuItem8.Name = "toolStripMenuItem8"; + toolStripMenuItem8.ShortcutKeys = Keys.Control | Keys.OemMinus; + toolStripMenuItem8.Size = new Size(214, 22); + toolStripMenuItem8.Text = "Decrease"; + toolStripMenuItem8.Click += toolStripMenuItem8_Click; + // + // toolStripSeparator3 + // + toolStripSeparator3.Name = "toolStripSeparator3"; + toolStripSeparator3.Size = new Size(211, 6); + // + // resetToolStripMenuItem + // + resetToolStripMenuItem.Name = "resetToolStripMenuItem"; + resetToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.D0; + resetToolStripMenuItem.Size = new Size(214, 22); + resetToolStripMenuItem.Text = "Reset"; + resetToolStripMenuItem.Click += resetToolStripMenuItem_Click; + // + // toolStripMenuItem9 + // + toolStripMenuItem9.DropDownItems.AddRange(new ToolStripItem[] { showToolStripMenuItem, toolStripSeparator5, sizeToolStripMenuItem, colourToolStripMenuItem }); + toolStripMenuItem9.Name = "toolStripMenuItem9"; + toolStripMenuItem9.Size = new Size(204, 22); + toolStripMenuItem9.Text = "Crosshair"; + // + // showToolStripMenuItem + // + showToolStripMenuItem.Name = "showToolStripMenuItem"; + showToolStripMenuItem.Size = new Size(110, 22); + showToolStripMenuItem.Text = "Show"; + showToolStripMenuItem.Click += showToolStripMenuItem_Click; + // + // toolStripSeparator5 + // + toolStripSeparator5.Name = "toolStripSeparator5"; + toolStripSeparator5.Size = new Size(107, 6); + // + // sizeToolStripMenuItem + // + sizeToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { smallToolStripMenuItem, mediumToolStripMenuItem, largeToolStripMenuItem }); + sizeToolStripMenuItem.Name = "sizeToolStripMenuItem"; + sizeToolStripMenuItem.Size = new Size(110, 22); + sizeToolStripMenuItem.Text = "Size"; + // + // smallToolStripMenuItem + // + smallToolStripMenuItem.Name = "smallToolStripMenuItem"; + smallToolStripMenuItem.Size = new Size(119, 22); + smallToolStripMenuItem.Text = "Small"; + smallToolStripMenuItem.Click += smallToolStripMenuItem_Click; + // + // mediumToolStripMenuItem + // + mediumToolStripMenuItem.Name = "mediumToolStripMenuItem"; + mediumToolStripMenuItem.Size = new Size(119, 22); + mediumToolStripMenuItem.Text = "Medium"; + mediumToolStripMenuItem.Click += mediumToolStripMenuItem_Click; + // + // largeToolStripMenuItem + // + largeToolStripMenuItem.Name = "largeToolStripMenuItem"; + largeToolStripMenuItem.Size = new Size(119, 22); + largeToolStripMenuItem.Text = "Large"; + largeToolStripMenuItem.Click += largeToolStripMenuItem_Click; + // + // colourToolStripMenuItem + // + colourToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { agentaToolStripMenuItem, cyanToolStripMenuItem, yellowToolStripMenuItem, greenToolStripMenuItem, redToolStripMenuItem, blackToolStripMenuItem, whiteToolStripMenuItem }); + colourToolStripMenuItem.Name = "colourToolStripMenuItem"; + colourToolStripMenuItem.Size = new Size(110, 22); + colourToolStripMenuItem.Text = "Colour"; + // + // agentaToolStripMenuItem + // + agentaToolStripMenuItem.Name = "agentaToolStripMenuItem"; + agentaToolStripMenuItem.Size = new Size(121, 22); + agentaToolStripMenuItem.Text = "Magenta"; + agentaToolStripMenuItem.Click += agentaToolStripMenuItem_Click; + // + // cyanToolStripMenuItem + // + cyanToolStripMenuItem.Name = "cyanToolStripMenuItem"; + cyanToolStripMenuItem.Size = new Size(121, 22); + cyanToolStripMenuItem.Text = "Cyan"; + cyanToolStripMenuItem.Click += cyanToolStripMenuItem_Click; + // + // yellowToolStripMenuItem + // + yellowToolStripMenuItem.Name = "yellowToolStripMenuItem"; + yellowToolStripMenuItem.Size = new Size(121, 22); + yellowToolStripMenuItem.Text = "Yellow"; + yellowToolStripMenuItem.Click += yellowToolStripMenuItem_Click; + // + // greenToolStripMenuItem + // + greenToolStripMenuItem.Name = "greenToolStripMenuItem"; + greenToolStripMenuItem.Size = new Size(121, 22); + greenToolStripMenuItem.Text = "Green"; + greenToolStripMenuItem.Click += greenToolStripMenuItem_Click; + // + // redToolStripMenuItem + // + redToolStripMenuItem.Name = "redToolStripMenuItem"; + redToolStripMenuItem.Size = new Size(121, 22); + redToolStripMenuItem.Text = "Red"; + redToolStripMenuItem.Click += redToolStripMenuItem_Click; + // + // blackToolStripMenuItem + // + blackToolStripMenuItem.Name = "blackToolStripMenuItem"; + blackToolStripMenuItem.Size = new Size(121, 22); + blackToolStripMenuItem.Text = "Black"; + blackToolStripMenuItem.Click += blackToolStripMenuItem_Click; + // + // whiteToolStripMenuItem + // + whiteToolStripMenuItem.Name = "whiteToolStripMenuItem"; + whiteToolStripMenuItem.Size = new Size(121, 22); + whiteToolStripMenuItem.Text = "White"; + whiteToolStripMenuItem.Click += whiteToolStripMenuItem_Click; + // + // toolStripSeparator4 + // + toolStripSeparator4.Name = "toolStripSeparator4"; + toolStripSeparator4.Size = new Size(201, 6); + // + // toolStripMenuItem5 + // + toolStripMenuItem5.Name = "toolStripMenuItem5"; + toolStripMenuItem5.ShortcutKeys = Keys.Control | Keys.F11; + toolStripMenuItem5.Size = new Size(204, 22); + toolStripMenuItem5.Text = "Al&ways On Top"; + toolStripMenuItem5.Click += toolStripMenuItem5_Click; + // + // toolStripMenuItem3 + // + toolStripMenuItem3.Name = "toolStripMenuItem3"; + toolStripMenuItem3.ShortcutKeys = Keys.F11; + toolStripMenuItem3.Size = new Size(204, 22); + toolStripMenuItem3.Text = "&Fullscreen"; + toolStripMenuItem3.Click += toolStripMenuItem3_Click; + // + // toolStripSeparator1 + // + toolStripSeparator1.Name = "toolStripSeparator1"; + toolStripSeparator1.Size = new Size(201, 6); + // + // exitiToolStripMenuItem + // + exitiToolStripMenuItem.Name = "exitiToolStripMenuItem"; + exitiToolStripMenuItem.Size = new Size(204, 22); + exitiToolStripMenuItem.Text = "E&xit"; + exitiToolStripMenuItem.Click += exitiToolStripMenuItem_Click; + // + // Form1 + // + AutoScaleDimensions = new SizeF(96F, 96F); + AutoScaleMode = AutoScaleMode.Dpi; + ClientSize = new Size(800, 450); + ContextMenuStrip = contextMenuStrip1; + Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 0); + ForeColor = Color.WhiteSmoke; + Icon = (Icon)resources.GetObject("$this.Icon"); + Name = "Form1"; + contextMenuStrip1.ResumeLayout(false); + ResumeLayout(false); + } + + #endregion + + private NotifyIcon notifyIcon1; + private ContextMenuStrip contextMenuStrip1; + private ToolStripMenuItem exitiToolStripMenuItem; + private ToolStripMenuItem toolStripMenuItem1; + private ToolStripMenuItem toolStripMenuItem2; + private ToolStripSeparator toolStripSeparator1; + private ToolStripMenuItem toolStripMenuItem3; + private ToolStripSeparator toolStripSeparator2; + private ToolStripMenuItem toolStripMenuItem4; + private ToolStripMenuItem fasterToolStripMenuItem; + private ToolStripMenuItem highToolStripMenuItem; + private ToolStripMenuItem toolStripMenuItem5; + private ToolStripMenuItem toolStripMenuItem6; + private ToolStripMenuItem toolStripMenuItem7; + private ToolStripMenuItem toolStripMenuItem8; + private ToolStripSeparator toolStripSeparator3; + private ToolStripMenuItem resetToolStripMenuItem; + private ToolStripSeparator toolStripSeparator4; + private ToolStripMenuItem toolStripMenuItem9; + private ToolStripMenuItem showToolStripMenuItem; + private ToolStripMenuItem sizeToolStripMenuItem; + private ToolStripMenuItem colourToolStripMenuItem; + private ToolStripSeparator toolStripSeparator5; + private ToolStripMenuItem smallToolStripMenuItem; + private ToolStripMenuItem mediumToolStripMenuItem; + private ToolStripMenuItem largeToolStripMenuItem; + private ToolStripMenuItem agentaToolStripMenuItem; + private ToolStripMenuItem cyanToolStripMenuItem; + private ToolStripMenuItem yellowToolStripMenuItem; + private ToolStripMenuItem greenToolStripMenuItem; + private ToolStripMenuItem redToolStripMenuItem; + private ToolStripMenuItem blackToolStripMenuItem; + private ToolStripMenuItem whiteToolStripMenuItem; + } +} diff --git a/source/Form1.cs b/source/Form1.cs new file mode 100644 index 0000000..08d7e89 --- /dev/null +++ b/source/Form1.cs @@ -0,0 +1,686 @@ +using System.ComponentModel; +using System.Drawing.Drawing2D; +using System.Runtime.InteropServices; +using SuzuMagnifier.Dtos; +using static System.Windows.Forms.Design.AxImporter; + +namespace SuzuMagnifier +{ + public partial class Form1 : Form + { + [StructLayout(LayoutKind.Sequential)] + public struct POINT + { + public int X; + public int Y; + } + + [DllImport("user32.dll")] + private static extern bool GetCursorPos(out POINT lpPoint); + + public static Point GetMousePosition() + { + GetCursorPos(out var p); + return new Point(p.X, p.Y); + } + + + private readonly System.Windows.Forms.Timer _timer = new(); + private Bitmap? _bitmap; + private string jsonfigFilename; + + + public Form1() + { + InitializeComponent(); + + this.BackColor = Color.Black; + this.DoubleBuffered = true; + this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, true); + this.Text = Application.ProductName; + + _timer.Interval = this.UpdateFrequency; + _timer.Tick += (sender, e) => + { + UpdateMagnifier(); + }; + } + + protected async override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + var args = GetCommandLine()!; + + jsonfigFilename = args.Where(x => (x.Key.Equals("o") || x.Key.Equals("open"))).Select(x => x.Value).FirstOrDefault(); + if (string.IsNullOrWhiteSpace(jsonfigFilename)) + { + jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig"); + } + + if (System.IO.File.Exists(jsonfigFilename)) + { + var newSettings = await LoadSettings(jsonfigFilename); + if (newSettings == null) + { + newSettings = new SavedOptions(); + } + + this.HighQuality = newSettings.HighQuality; + this.ZoomFactor = newSettings.ZoomFactor; + //this.UpdateFrequency = newSettings.UpdateFrequency; + this.ShowCrosshair = newSettings.ShowCrosshair; + this.CrosshairSize = newSettings.CrosshairSize; + this.CrosshairColour = newSettings.CrosshairColour; + } + } + + protected override void OnShown(EventArgs e) + { + base.OnShown(e); + + //_timer.Start(); + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + + var g = e.Graphics; + + if (!_timer.Enabled) + { + TextRenderer.DrawText(g, "Press [Space] To Start", this.Font, this.ClientRectangle, this.ForeColor, TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter | TextFormatFlags.NoPadding); + } + + if (_bitmap == null) + { + return; + } + + if (this.HighQuality) + { + g.InterpolationMode = InterpolationMode.HighQualityBicubic; + g.PixelOffsetMode = PixelOffsetMode.HighQuality; + g.SmoothingMode = SmoothingMode.HighQuality; + } + else + { + g.InterpolationMode = InterpolationMode.NearestNeighbor; + g.PixelOffsetMode = PixelOffsetMode.None; + g.SmoothingMode = SmoothingMode.None; + } + + g.DrawImage(_bitmap, this.ClientRectangle); + + // Draw center crosshair + if (this.ShowCrosshair) + { + var cx = Divide(this.Width, 2); + var cy = Divide(this.Height, 2); + + g.DrawLine(new Pen(this.CrosshairColour), cx - this.CrosshairSize, cy, cx + this.CrosshairSize, cy); + g.DrawLine(new Pen(this.CrosshairColour), cx, cy - this.CrosshairSize, cx, cy + this.CrosshairSize); + } + } + + protected override void OnPreviewKeyDown(PreviewKeyDownEventArgs e) + { + base.OnPreviewKeyDown(e); + + if (e.Control) + { + switch (e.KeyCode) + { + //case Keys.D0: + // this.ZoomFactor = 1; + // break; + //case Keys.OemMinus: + // this.ZoomFactor--; + // break; + //case Keys.Oemplus: + // this.ZoomFactor++; + // break; + //case Keys.F11: + // toolStripMenuItem5_Click(null, null); + // break; + default: + break; + } + } + else + { + switch (e.KeyCode) + { + case Keys.Space: + if (_timer.Enabled) + { + _timer.Stop(); + } + else + { + _timer.Start(); + } + + break; + case Keys.Escape: + exitiToolStripMenuItem_Click(null, null); + break; + //case Keys.F11: + // toolStripMenuItem3_Click(null, null); + // break; + default: + break; + } + } + } + + protected async override void OnFormClosing(FormClosingEventArgs e) + { + base.OnFormClosing(e); + + var result = MessageBox.Show("Do you want to save settings to file?", "Save Settings?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + if (result == DialogResult.Yes) + { + var result2 = await SaveSettings(jsonfigFilename); + if (result2) + { + return; + } + + MessageBox.Show("Could not save settings. An error has occurred.", "Save Settings?", MessageBoxButtons.OK, MessageBoxIcon.Error); + + e.Cancel = true; + } + else if (result == DialogResult.No) + { + // Do nothing + } + else + { + e.Cancel = true; + } + } + + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public bool HighQuality { get; set; } = false; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int ZoomFactor + { + get => field; + set + { + if (value < 0) + { + field = 1; + return; + } + + if (value > 20) + { + field = 20; + return; + } + + field = value; + } + } = 2; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int UpdateFrequency { get; set; } = 33; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public bool ShowCrosshair { get; set; } = true; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int CrosshairSize + { + get => field; + set + { + if (value < 5) + { + field = 5; + return; + } + + if (value > 200) + { + field = 200; + return; + } + + field = value; + } + } = 20; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Color CrosshairColour { get; set; } = Color.FromArgb(255, 255, 0); + + + private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) + { + toolStripMenuItem1.Enabled = !_timer.Enabled; + toolStripMenuItem2.Enabled = _timer.Enabled; + + toolStripMenuItem5.Checked = this.TopMost; + + showToolStripMenuItem.Checked = this.ShowCrosshair; + smallToolStripMenuItem.Checked = (this.CrosshairSize == 10); + mediumToolStripMenuItem.Checked = (this.CrosshairSize == 20); + largeToolStripMenuItem.Checked = (this.CrosshairSize == 50); + + agentaToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(255, 0, 255); + cyanToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(0, 255, 255); + yellowToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(255, 255, 0); + greenToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(0, 255, 0); + redToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(255, 0, 0); + blackToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(0, 0, 0); + whiteToolStripMenuItem.Checked = this.CrosshairColour == Color.FromArgb(255, 255, 255); + + fasterToolStripMenuItem.Checked = !this.HighQuality; + fasterToolStripMenuItem.Enabled = this.HighQuality; + highToolStripMenuItem.Checked = this.HighQuality; + highToolStripMenuItem.Enabled = !this.HighQuality; + } + + + #region context menu + + /// + /// Start + /// + /// + /// + private void toolStripMenuItem1_Click(object sender, EventArgs e) + { + if (_timer.Enabled) + { + return; + } + + _timer.Start(); + } + + /// + /// Stop + /// + /// + /// + private void toolStripMenuItem2_Click(object sender, EventArgs e) + { + if (!_timer.Enabled) + { + return; + } + + _timer.Stop(); + } + + /// + /// Quality, fast + /// + /// + /// + private void fastToolStripMenuItem_Click(object sender, EventArgs e) + { + this.HighQuality = false; + } + + /// + /// QUality, high + /// + /// + /// + private void highToolStripMenuItem_Click(object sender, EventArgs e) + { + this.HighQuality = true; + } + + /// + /// Zoom, increase + /// + /// + /// + private void toolStripMenuItem7_Click(object sender, EventArgs e) + { + this.ZoomFactor++; + } + + /// + /// Zoom, decrease + /// + /// + /// + private void toolStripMenuItem8_Click(object sender, EventArgs e) + { + this.ZoomFactor--; + } + + /// + /// Zoom, reset + /// + /// + /// + private void resetToolStripMenuItem_Click(object sender, EventArgs e) + { + this.ZoomFactor = 1; + } + + /// + /// Crosshair, colour, magenta + /// + /// + /// + private void agentaToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairColour = Color.FromArgb(255, 0, 255); + } + + /// + /// Crosshair, colour, cyan + /// + /// + /// + private void cyanToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairColour = Color.FromArgb(0, 255, 255); + } + + /// + /// Crosshair, colour, yellow + /// + /// + /// + private void yellowToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairColour = Color.FromArgb(255, 255, 0); + } + + /// + /// Crosshair, colour, green + /// + /// + /// + private void greenToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairColour = Color.FromArgb(0, 255, 0); + } + + /// + /// Crosshair, colour, red + /// + /// + /// + private void redToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairColour = Color.FromArgb(255, 0, 0); + } + + /// + /// Crosshair, colour, black + /// + /// + /// + private void blackToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairColour = Color.FromArgb(0, 0, 0); + } + + /// + /// Crosshair, colour, white + /// + /// + /// + private void whiteToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairColour = Color.FromArgb(255, 255, 255); + } + + /// + /// ALways on top + /// + /// + /// + private void toolStripMenuItem5_Click(object sender, EventArgs e) + { + this.TopMost = !this.TopMost; + } + + /// + /// Fullscreen + /// + /// + /// + private void toolStripMenuItem3_Click(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Normal) + { + this.FormBorderStyle = FormBorderStyle.None; + this.WindowState = FormWindowState.Maximized; + } + else + { + this.FormBorderStyle = FormBorderStyle.Sizable; + this.WindowState = FormWindowState.Normal; + } + } + + /// + /// Exit + /// + /// + /// + private void exitiToolStripMenuItem_Click(object sender, EventArgs e) + { + if (_timer.Enabled) + { + _timer.Stop(); + _timer.Dispose(); + } + + this.Close(); + } + + /// + /// Crosshair, toggle + /// + /// + /// + private void showToolStripMenuItem_Click(object sender, EventArgs e) + { + this.ShowCrosshair = !this.ShowCrosshair; + } + + /// + /// Croisshair, size, small + /// + /// + /// + private void smallToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairSize = 10; + } + + /// + /// Croisshair, size, medium + /// + /// + /// + private void mediumToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairSize = 20; + } + + /// + /// Croisshair, size, large + /// + /// + /// + private void largeToolStripMenuItem_Click(object sender, EventArgs e) + { + this.CrosshairSize = 50; + } + + #endregion + + + private void UpdateMagnifier() + { + //var mouse = Cursor.Position; + var mouse = GetMousePosition(); + + var w = Divide(this.Width, this.ZoomFactor); + var h = Divide(this.Height, this.ZoomFactor); + + var cx = Divide(w, 2); + var cy = Divide(h, 2); + var x = mouse.X - cx; + var y = mouse.Y - cy; + + var sourceRect = new Rectangle(x, y, w, h); + + _bitmap?.Dispose(); + _bitmap = null; + _bitmap = new Bitmap(sourceRect.Width, sourceRect.Height); + + using Graphics g = Graphics.FromImage(_bitmap); + g.CopyFromScreen(sourceRect.Location, Point.Empty, sourceRect.Size); + + this.Invalidate(); + } + + private int Divide(int x, int y) + { + return (int)Math.Floor((decimal)x / y); + } + + /// + /// Get execution arguments. + /// + /// + private List> GetCommandLine() + { + var result = new List>(); + var args = Environment.GetCommandLineArgs() ?? new string[0]; + if (args.Length <= 1) + { + return result; + } + + var key = string.Empty; + var flag = false; + for (int i = 1; i < args.Length; i++) + { + var text = args[i]; + if (string.IsNullOrWhiteSpace(text)) + { + continue; + } + + if (text.StartsWith("-")) + { + if (flag) + { + result.Add(new KeyValuePair(key, string.Empty)); + } + + key = text?.TrimStart('-')?.Trim() ?? string.Empty; + flag = true; + } + else + { + result.Add(new KeyValuePair(key, text?.Trim() ?? string.Empty)); + flag = false; + } + } + + return result; + } + + private async Task LoadSettings(string filename) + { + if (!System.IO.File.Exists(filename)) + { + return null; + } + + string sourceCode; + try + { + sourceCode = await System.IO.File.ReadAllTextAsync(filename); + } + catch (Exception) + { + return null; + } + + if (string.IsNullOrWhiteSpace(sourceCode)) + { + return null; + } + + try + { + return System.Text.Json.JsonSerializer.Deserialize(sourceCode); + } + catch (Exception) + { + return null; + } + } + + private async Task SaveSettings(string filename) + { + var result = new SavedOptions(); + result.AutoStart = false; + result.HighQuality = this.HighQuality; + result.ZoomFactor = this.ZoomFactor; + result.UpdateFrequency = this.UpdateFrequency; + result.ShowCrosshair = this.ShowCrosshair; + result.CrosshairSize = this.CrosshairSize; + result.CrosshairColour = this.CrosshairColour; + + string sourceCode = ""; + try + { + sourceCode = System.Text.Json.JsonSerializer.Serialize(result); + } + catch (Exception) + { + return false; + } + + if (string.IsNullOrWhiteSpace(sourceCode)) + { + return false; + } + + if (System.IO.File.Exists(filename)) + { + try + { + System.IO.File.Delete(filename); + } + catch (Exception) + { + return false; + } + } + + try + { + await System.IO.File.WriteAllTextAsync(filename, sourceCode); + } + catch (Exception) + { + return false; + } + + return true; + } + + } +} \ No newline at end of file diff --git a/source/Form1.resx b/source/Form1.resx new file mode 100644 index 0000000..6b39d87 --- /dev/null +++ b/source/Form1.resx @@ -0,0 +1,721 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 131, 17 + + + + + AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA + IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xz///+S////3v////v///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////7////3v///5L///8bAAAAAAAA + AAAAAAAA////Qf////D///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////v////PwAAAAD///8c////8P////////////////////////////////////////////////// + /////////////4R+e/9sZWL/w8C+//7+/v////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////9/d + 3P/EwL//////////////////////7////xv///+U//////////////////////////////////////// + /////////////////////////////8nGxP9LQz7/GxQR/0Q9Of+Ffnv/9PPz//////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///8+/v/hn98/yslIv83MCz/4+Hg/////////////////////5L////f//////////////////////// + ///////////////////////////////////////////////////+/v7/nZiV/zYvLP8EAgH/NzAt/4N8 + ef/29fX///////////////////////////////////////////////////////////////////////// + /////////////9nX1v9JQTz/BwUE/wAAAP8BAAD/Pzcz/9nX1v///////////////93////7//////// + /////////////////////////////////////////////////////////////////////////////+/t + 7f9gWFT/EQ4N/wQDAv89NjL/sKyp//////////////////////////////////////////////////// + ////////////////////////pJ+d/y4oJP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywmI/+DfHn/9/f2//// + //v///////////////////////////////////////////////////////////////////////////// + ////////////////////////lY+M/ygiH/8AAAD/FhIQ/2RdWf/39/b///////////////////////// + //////////////////////////////////9+eHT/FxMR/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xYS + D/9COTX/ubSy//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////7y4tv8wKib/AAAA/wIBAf9KQj3/5+bl//// + /////////////////////////////////////////v7+/3Rtav8QDQv/AAAA/wAAAP8AAAD/AAAA/wIB + Af8zLCj/aWJe/8vIxv////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////Avbv/JB8c/wAA + AP8BAAD/Pzgz/+vq6f//////////////////////////////////////gHp2/w0KCf8AAAD/AAAA/wAA + AP8CAQH/Misn/3lybv/w7+////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////kIuI/xEODP8AAAD/AQEA/0lBPP/29fX///////////////////////////+noqD/GxcU/wAA + AP8AAAD/AAAA/x4ZF/9vaGT/7+7u//////////////////////////////////////////////////// + //////////7+/+Cymv/DaDr/tkUN/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/0ccBv8BAAD/AAAA/wMBAf9mUkj//////////////////////+jn + 5v8xKib/AAAA/wAAAP8CAQH/QTk1/767uf////////////////////////////////////////////// + ///////////////////36uT/xm5D/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/6E3Av8iDwX/AAAA/wAAAP8YCwb/xMC///// + /////////////19XU/8BAQD/AAAA/wYEA/9YUEv/9vX1//////////////////////////////////// + //////////////////////////////36+P/AYTH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af9ZIgb/AgEB/wAA + AP8AAAD/UzgG//yxAf/8sQH/0pID/x8UBP8AAAD/CgYC/2NDBv/4rgH//LEB//yxAf/8sQH//LUP//3L + V///9uP//////////////////////////////////////96rkf+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+mOQL/IQ4F/wAAAP8AAAD/GREE/8qNA//8sQH/YUIH/wAAAP8CAQH/Wz4G//uwAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8txT///bj/////////////////////////////////8NmOP+yPAH/sjwB/7I8 + Af/IXwH/9KYB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH/WDwH/wAAAP8AAAD/AAAA/2xJB//zqgL/MiEF/wAAAP9BLAb/8KgC//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//ctX/////////////////////////////////7ZG + Dv+yPAH/sjwB/7I8Af/1pgH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/kGQG/wMCAf8AAAD/AAAA/z8qBv+icAX/BwQC/yUY + BP/OkAP//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LYQ//////////////////// + /////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/2ZgD/xkQBP8AAAD/AAAA/x0S + BP9SNwf/AwEB/29MB//8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//// + /////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/+a4B/zEh + Bf8AAAD/AAAA/wQCAf8vHwj/OCUG//KqAv/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/0cwBv8AAAD/AAAA/wAAAP8FAwL/cU0H//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//atAf+EWgb/fFUH/3xVB/98VQf/fFUH/3xV + B/98VQf/fFUH/3xVB/98VQf/fFUH/0AqCP8AAAD/AAAA/wAAAP8XDgT/ZkUH/3xVB/98VQf/fFUH/3xV + B/98VQf/fFUH/3xVB/98VQf/fFUH/3xVB/98VQf/fFUH/5mTkP/+/v7//////////////////////7I8 + Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/6h0Bf9BKwf/Ri8G/0Yv + Bv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/zMhBv8AAAD/AAAA/wAAAP8iFwT/Ri8G/0Yv + Bv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/0YvBv8fFQT/AAAA/wAAAP8AAAD/AAAA/zAoJP/v7u7///////// + /////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/2lIB/8AAAD/AAAA/wAA + AP85Jgb//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+OYgb/FAwD/wAAAP8BAQD/OSYG/8TA + v////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/21L + B/8AAAD/AAAA/wAAAP8zIgb//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/bUsH/w0J + A/9RNgb/6aQC/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/3JOB/8AAAD/AAAA/wAAAP8uHgX/+K4B//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH/+a4B/55tBf/6sAH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB/3ZQB/8AAAD/AAAA/wAAAP8nGgX/7aYC//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/////////////////////////////////7I8 + Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/3NOB/8AAAD/AAAA/wAAAP8gFQT/5KAC//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//////////////////// + /////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/29MB/8AAAD/AAAA/wAA + AP8NCQL/bEoH//mvAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//// + /////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/2pI + B/8AAAD/AAAA/wAAAP8AAAD/CwcD/655Bf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/3xVBv9MMwb/VzsH/2REB/9vTAf/jWEG//SsAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/mjgH/ukgB/7pQG//oxbP//////////////////////7I8Af+yPAH/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+6SQH/sjwB/7I8Af+6URz//////////////////////7I8 + Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH///////// + /////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8 + Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8 + Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH///////// + /////////////7ZFDf+yPAH/sjwB/7I8Af/1pgH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//SmAf+yPAH/sjwB/7I8 + Af+2Rg7//////////////////////8JlN/+yPAH/sjwB/7I8Af/IXgH/9aYB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/9aYB/8hf + Af+yPAH/sjwB/7I8Af/DZzn//////////////////////+Cvl/+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af/gsZn///////////////////////79/f/FbUH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/8ZuQv///v7///////////////////////// + ///36+X/xm5C/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/wGAw//fq5P////////////// + //////////////////////////7+/+CwmP/CZTf/tUQM/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/tUQM/8NmOP/eq5H//fr4//// + ///////////////////////7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////v////f//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////97///+V//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////5P///8e////8f// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////8P// + /xwAAAAA////Qf////H///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////w////QQAAAAAAAAAAAAAAAP///x7///+V////4P////v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////7////3////5T///8dAAAAAAAAAADAAAAAAAPxBIAAAAAAAfEEAAAAAAAA8QQAAAAAAADxBAAA + AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA + 8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA + AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA + 8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA + AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA + 8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBIAAAAAAAfEEwAAAAAAD8QQoAAAAIAAAAEAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zX////D////9v////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////b////C////NAAAAAD///81/////P////z///////////// + ///////////////////DwL//q6el//z7+/////////////////////////////////////////////// + ///////////////////////////////////w7+//4uDf//////z////8////NP///8P////8//////// + /////////////////////////////+bl5P9dVlP/NjAs/3Vwbf/k4+L///////////////////////// + ////////////////////////////////////////paGf/zMuLP9BPDn/8fDw//////z////C////9v// + //////////////////////////////////////////////////+1srD/PTg2/yIeHP99eHX/+fn4//// + ////////////////////////////////////////+Pj3/2xmY/8KCAf/AAAA/wAAAP8+Ojf/uLSz//// + //b////////////////////////////////////////////////////////////////x8PD/WFNQ/wMC + Av9CPTr/1dPS/////////////////////////////////+3s7P9MRkP/AQAA/wAAAP8AAAD/BgUE/z45 + N/+Be3j//v7+//////////////////////////////////////////////////////////////////// + ///8/Pz/Z2Jf/wEAAP8rJyX/x8XD///////////////////////08/P/R0E+/wAAAP8AAAD/CQcG/1FM + Sf+zr63//v7+/////////////////////////////v39//Lf1f/mwK3/5b6q/+W+qv/lvqr/5b6q/+W+ + qv/lvqr/5b6q/+W+qv/guqX/RTYu/wAAAP8sIx7/4d3b/////////////////2BbWP8AAAD/AAAA/zgz + Mf+vq6n///////////////////////////////////////Le1P/BYTL/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+TMgP/EwgC/wAAAP9ONyv///////////+inpz/CAcG/wMC + Av9fWlf/8vHx///////////////////////////////////////79PH/u1Mf/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af9PHgX/AAAA/wsGAv+7ggT/+rAB/0As + BP8DAgH/bEsG//qwAf/8sQH//LIE//3AMf/+7ML//////////////////////96skv+yPAH/sjwB/8lh + Af/iiQH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/6pnBP8IBAH/AAAA/2NE + Bf+1fwT/BQMB/1c8Bf/6sAH//LEB//yxAf/8sQH//LEB//y2Ev//+e3/////////////////z4Zi/7I8 + Af+yPAH/+KsB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/+7AB/zgm + BP8AAAD/LR4E/3NQBf8sHgP/6KMC//yxAf/8sQH//LEB//yxAf/8sQH//LEB//7ptv////////////// + ///Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH/XD8E/wAAAP8GAwH/NSMG/5JlBf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//uWq//// + /////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf96VAX/AAAA/wAAAP8uHwT/9awB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/+5ar/////////////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yxAf/SkwP/QywI/0Qt + B/9ELQf/RC0H/0QtB/9ELQf/RC0H/zkmB/8AAAD/AAAA/zEgBf9ELQf/RC0H/0QtB/9ELQf/RC0H/zQi + Bf8uHwP/Lh8D/0Q4KP/8+/v////////////Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/k2UF/wAAAP8AAAD/Z0cF//yxAf/8sQH//LEB//yx + Af/8sQH/g1sF/wcFAf8tHwP/s591/////////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+ZagX/AAAA/wAAAP9gQQT//LEB//yx + Af/8sQH//LEB//yxAf/8sQH/gVgF/96bAv/+5ar/////////////////zH5X/7I8Af+yPAH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/51sBf8AAAD/AAAA/1c7 + BP/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//7lqv/////////////////Mflf/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/mGkF/wAA + AP8AAAD/OygE/+KeAv/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//uWq/////////////////8x+ + V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af+SZQX/BAMC/xUNA/8nGgT/jWEF//yxAf/8sQH//LEB//yxAf/8sQH//LEB//WnAf/otHn//vz7//// + ////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/+WgAv/QkgP/6KMC//uwAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/vk4B/7I8 + Af/YnH7////////////Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af+yPAH/sjwB/8x+V////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/7I8Af+yPAH/zH5X////////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH/sjwB/7I8Af/Mflf////////////Mflf/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/8x+V////////////9SRcP+yPAH/sjwB//Cf + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/8J4B/7I8Af+yPAH/1JJx////////////58Gu/7I8 + Af+yPAH/uUcB/8piAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tj + Af/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8piAf+5RgH/sjwB/7I8Af/nwq////////// + /////v7/yXVM/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/yXZN//// + ///////////////////9+/r/2Z+B/79cK/+zPgT/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+zPgT/v1wr/9qg + g//9+/r////////////////2//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////9v///8T////8//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////z////D////N/////z////8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////8/////P///zUAAAAA////N////8X////3//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////9v///8T///82AAAAAIAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABKAAAABgA + AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w////+r////9P////f////3////9/// + //f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/// + //T///+q////Dv///6z////5//////////////////////////96dHH/fnp3/9vZ2P////////////// + ////////////////////////////////////////oZ2c/6WioP/////5////qv////X///////////// + ///////////////////+/v7/nJmX/zUxLv94dHL/8fDw/////////////////////////////////+no + 6P9jXlz/BQQE/xcWFf+Sjoz//f399f////r//////////////////////////////////////////93b + 2v9DPz3/Lysq/7+8u///////////////////////2NbV/zUxMP8AAAD/AQAA/zMwLv99eXf/7ezs+v// + //r////////////////////////////////////////////////u7e3/Ojc1/xoYF/+/vLv///////// + ///o5+b/NTEw/wAAAP8vLCv/mZaU//v6+v//////////+v////r9+vn/1pZ3/7pQG/+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/jDED/wsFAf8sGA//+fn4//////9nY2H/AQAA/2JeW//t7Oz///////// + ////////////+v////rWl3j/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/0ga + A/8AAAD/iV8E/8iMA/8PCQH/bk0F//uwAf/8sQH//Loe//7ptv//////////+v////q6Txr/sjwB/+uW + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/6p1BP8BAAD/Qy4D/3ZSBP9ONQP/+a4B//yx + Af/8sQH//LEB//y6Hv//////////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//KqAv8XDwL/DwoC/z8rBf/RkwP//LEB//yxAf/8sQH//LEB//yxAf//////////+v// + //qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/ZlwL/tX4D/7V+A/+1fgP/tX4D/7V+A/8uHwP/AAAA/0gw + BP+1fgP/tX4D/7V+A/+1fgP/tX4D/7V+A//o5ub/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yx + Af+yfAP/m2wD/5tsA/+bbAP/m2wD/5tsA/80IwP/AAAA/2FCA/+bbAP/m2wD/5tsA/94UwT/BQMB/xgQ + Av+urKr/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af9FMAP/AAAA/4BZBP/8sQH//LEB//yxAf/8sQH/gVoE/8OJA///////////+v////qyPAH/sjwB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf9FMAP/AAAA/3dTBP/8sQH//LEB//yx + Af/8sQH//LEB//yxAf//////////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf9FMAP/AAAA/y4gA//upwL//LEB//yxAf/8sQH//LEB//yxAf//////////+v// + //qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+mcwT/onAE/7mB + A//8sQH//LEB//yxAf/8sQH//LEB/8NYAf/Eaj3/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/7I8 + Af+yPAH/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/7I8Af+yPAH/////+v////qyPAH/sjwB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/7I8Af+yPAH/////+v////q6Txr/sjwB/+uXAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/65YB/7I8Af+6UBv/////+v// + //rVlXb/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af/Wl3j/////+v////r9+vj/1ZV2/7pPGv+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/uk8a/9aW + d//9+vn/////+v////X///////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////9f///63////5//////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////5////q////xD///+t////9f////f////3////9/////f////3////9/// + //f////3////9/////f////3////9/////f////3////9/////f////3////9/////T///+s////DwAA + AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA + AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9p////3f///+P////j7u3t5ebk5Ob////j////4////+P////j////4/// + /+P////j/Pz84/f29t7///9o////3f////////////////n4+P+GgoD/bGhm/97d3P////////////// + ////////1dTT/0dEQ/9aWFb/5+bm3////+H//////////////////////////8jGxf82MzL/s7Gw//// + ////////ysjH/xwaGf8ZFxb/cG1s/9TT0ub////h7M/A/8+FYf/MfVb/zH1W/8x9Vv/MfVb/mF1A/xIM + CP/FuLH/6unp/yYkI/9jYF7/6ejo///////////h9eTc5bRABv/DWQT/y2MB/8tjAf/LYwH/y2MB/8tj + Af9GIwL/VDgC/31XA/9sSwL/+7AB//y1Dv/+57D/////4eS7peuyPAH/+7AB//yxAf/8sQH//LEB//yx + Af/8sQH/lmkD/xUOAf9XPAT/8aoB//yxAf/8sQH//cxZ/////+Hjt6LrsjwB//yxAf/8sQH/8qsB/5Fj + BP+RZAT/kWQE/3FOBf8AAAD/XUAE/5FkBP+RZAT/h10D/4xwL//+/v7h47ei67I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf++hgP/AAAA/6VzA//8sQH//LEB/4VcA/+ohjr/////4eO3ouuyPAH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH/voYD/wAAAP+RZgP//LEB//yxAf/8sQH//ctW/////+Hjt6LrsjwB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB/9eXAv9xTwP/onED//yxAf/8sQH//LEB/9R9KP/05Nvl47ei67I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/47ei6+O3 + ouuyPAH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/sjwB/+O3 + ouvrz7/osjwB/9t+Af/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/230B/7I8 + Af/s0MHo////4dSScP+1Qwn/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7VD + Cf/Uk3L/////4f///93///////////////////////////////////////////////////////////// + /////////////////93///9q////3f///+P////j////4////+P////j////4////+P////j////4/// + /+P////j////4////93///9pAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA + rEEAAKxBAACsQQAArEEAAKxBAACsQQ== + + + + + AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA + IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xz///+S////3v////v///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////7////3v///5L///8bAAAAAAAA + AAAAAAAA////Qf////D///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////v////PwAAAAD///8c////8P////////////////////////////////////////////////// + /////////////4R+e/9sZWL/w8C+//7+/v////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////9/d + 3P/EwL//////////////////////7////xv///+U//////////////////////////////////////// + /////////////////////////////8nGxP9LQz7/GxQR/0Q9Of+Ffnv/9PPz//////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///8+/v/hn98/yslIv83MCz/4+Hg/////////////////////5L////f//////////////////////// + ///////////////////////////////////////////////////+/v7/nZiV/zYvLP8EAgH/NzAt/4N8 + ef/29fX///////////////////////////////////////////////////////////////////////// + /////////////9nX1v9JQTz/BwUE/wAAAP8BAAD/Pzcz/9nX1v///////////////93////7//////// + /////////////////////////////////////////////////////////////////////////////+/t + 7f9gWFT/EQ4N/wQDAv89NjL/sKyp//////////////////////////////////////////////////// + ////////////////////////pJ+d/y4oJP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywmI/+DfHn/9/f2//// + //v///////////////////////////////////////////////////////////////////////////// + ////////////////////////lY+M/ygiH/8AAAD/FhIQ/2RdWf/39/b///////////////////////// + //////////////////////////////////9+eHT/FxMR/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xYS + D/9COTX/ubSy//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////7y4tv8wKib/AAAA/wIBAf9KQj3/5+bl//// + /////////////////////////////////////////v7+/3Rtav8QDQv/AAAA/wAAAP8AAAD/AAAA/wIB + Af8zLCj/aWJe/8vIxv////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////Avbv/JB8c/wAA + AP8BAAD/Pzgz/+vq6f//////////////////////////////////////gHp2/w0KCf8AAAD/AAAA/wAA + AP8CAQH/Misn/3lybv/w7+////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////kIuI/xEODP8AAAD/AQEA/0lBPP/29fX///////////////////////////+noqD/GxcU/wAA + AP8AAAD/AAAA/x4ZF/9vaGT/7+7u//////////////////////////////////////////////////// + //////////7+/+Cymv/DaDr/tkUN/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/0ccBv8BAAD/AAAA/wMBAf9mUkj//////////////////////+jn + 5v8xKib/AAAA/wAAAP8CAQH/QTk1/767uf////////////////////////////////////////////// + ///////////////////36uT/xm5D/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/6E3Av8iDwX/AAAA/wAAAP8YCwb/xMC///// + /////////////19XU/8BAQD/AAAA/wYEA/9YUEv/9vX1//////////////////////////////////// + //////////////////////////////36+P/AYTH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af9ZIgb/AgEB/wAA + AP8AAAD/UzgG//yxAf/8sQH/0pID/x8UBP8AAAD/CgYC/2NDBv/4rgH//LEB//yxAf/8sQH//LUP//3L + V///9uP//////////////////////////////////////96rkf+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+mOQL/IQ4F/wAAAP8AAAD/GREE/8qNA//8sQH/YUIH/wAAAP8CAQH/Wz4G//uwAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8txT///bj/////////////////////////////////8NmOP+yPAH/sjwB/7I8 + Af/IXwH/9KYB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH/WDwH/wAAAP8AAAD/AAAA/2xJB//zqgL/MiEF/wAAAP9BLAb/8KgC//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//ctX/////////////////////////////////7ZG + Dv+yPAH/sjwB/7I8Af/1pgH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/kGQG/wMCAf8AAAD/AAAA/z8qBv+icAX/BwQC/yUY + BP/OkAP//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LYQ//////////////////// + /////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/2ZgD/xkQBP8AAAD/AAAA/x0S + BP9SNwf/AwEB/29MB//8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//// + /////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/+a4B/zEh + Bf8AAAD/AAAA/wQCAf8vHwj/OCUG//KqAv/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/0cwBv8AAAD/AAAA/wAAAP8FAwL/cU0H//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//atAf+EWgb/fFUH/3xVB/98VQf/fFUH/3xV + B/98VQf/fFUH/3xVB/98VQf/fFUH/0AqCP8AAAD/AAAA/wAAAP8XDgT/ZkUH/3xVB/98VQf/fFUH/3xV + B/98VQf/fFUH/3xVB/98VQf/fFUH/3xVB/98VQf/fFUH/5mTkP/+/v7//////////////////////7I8 + Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/6h0Bf9BKwf/Ri8G/0Yv + Bv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/zMhBv8AAAD/AAAA/wAAAP8iFwT/Ri8G/0Yv + Bv9GLwb/Ri8G/0YvBv9GLwb/Ri8G/0YvBv8fFQT/AAAA/wAAAP8AAAD/AAAA/zAoJP/v7u7///////// + /////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/2lIB/8AAAD/AAAA/wAA + AP85Jgb//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+OYgb/FAwD/wAAAP8BAQD/OSYG/8TA + v////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/21L + B/8AAAD/AAAA/wAAAP8zIgb//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/bUsH/w0J + A/9RNgb/6aQC/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/3JOB/8AAAD/AAAA/wAAAP8uHgX/+K4B//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH/+a4B/55tBf/6sAH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB/3ZQB/8AAAD/AAAA/wAAAP8nGgX/7aYC//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/////////////////////////////////7I8 + Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/3NOB/8AAAD/AAAA/wAAAP8gFQT/5KAC//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//////////////////// + /////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/29MB/8AAAD/AAAA/wAA + AP8NCQL/bEoH//mvAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//// + /////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/2pI + B/8AAAD/AAAA/wAAAP8AAAD/CwcD/655Bf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/////////////////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/3xVBv9MMwb/VzsH/2REB/9vTAf/jWEG//SsAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/mjgH/ukgB/7pQG//oxbP//////////////////////7I8Af+yPAH/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+6SQH/sjwB/7I8Af+6URz//////////////////////7I8 + Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH///////// + /////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8 + Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8Af+yPAH/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH//////////////////////7I8 + Af+yPAH/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/7I8Af+yPAH///////// + /////////////7ZFDf+yPAH/sjwB/7I8Af/1pgH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//SmAf+yPAH/sjwB/7I8 + Af+2Rg7//////////////////////8JlN/+yPAH/sjwB/7I8Af/IXgH/9aYB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/9aYB/8hf + Af+yPAH/sjwB/7I8Af/DZzn//////////////////////+Cvl/+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af/gsZn///////////////////////79/f/FbUH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/8ZuQv///v7///////////////////////// + ///36+X/xm5C/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/wGAw//fq5P////////////// + //////////////////////////7+/+CwmP/CZTf/tUQM/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/tUQM/8NmOP/eq5H//fr4//// + ///////////////////////7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////v////f//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////97///+V//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////5P///8e////8f// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////8P// + /xwAAAAA////Qf////H///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////w////QQAAAAAAAAAAAAAAAP///x7///+V////4P////v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////7////3////5T///8dAAAAAAAAAADAAAAAAAPxBIAAAAAAAfEEAAAAAAAA8QQAAAAAAADxBAAA + AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA + 8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA + AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA + 8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA + AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA + 8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBIAAAAAAAfEEwAAAAAAD8QQoAAAAIAAAAEAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zX////D////9v////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////b////C////NAAAAAD///81/////P////z///////////// + ///////////////////DwL//q6el//z7+/////////////////////////////////////////////// + ///////////////////////////////////w7+//4uDf//////z////8////NP///8P////8//////// + /////////////////////////////+bl5P9dVlP/NjAs/3Vwbf/k4+L///////////////////////// + ////////////////////////////////////////paGf/zMuLP9BPDn/8fDw//////z////C////9v// + //////////////////////////////////////////////////+1srD/PTg2/yIeHP99eHX/+fn4//// + ////////////////////////////////////////+Pj3/2xmY/8KCAf/AAAA/wAAAP8+Ojf/uLSz//// + //b////////////////////////////////////////////////////////////////x8PD/WFNQ/wMC + Av9CPTr/1dPS/////////////////////////////////+3s7P9MRkP/AQAA/wAAAP8AAAD/BgUE/z45 + N/+Be3j//v7+//////////////////////////////////////////////////////////////////// + ///8/Pz/Z2Jf/wEAAP8rJyX/x8XD///////////////////////08/P/R0E+/wAAAP8AAAD/CQcG/1FM + Sf+zr63//v7+/////////////////////////////v39//Lf1f/mwK3/5b6q/+W+qv/lvqr/5b6q/+W+ + qv/lvqr/5b6q/+W+qv/guqX/RTYu/wAAAP8sIx7/4d3b/////////////////2BbWP8AAAD/AAAA/zgz + Mf+vq6n///////////////////////////////////////Le1P/BYTL/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+TMgP/EwgC/wAAAP9ONyv///////////+inpz/CAcG/wMC + Av9fWlf/8vHx///////////////////////////////////////79PH/u1Mf/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af9PHgX/AAAA/wsGAv+7ggT/+rAB/0As + BP8DAgH/bEsG//qwAf/8sQH//LIE//3AMf/+7ML//////////////////////96skv+yPAH/sjwB/8lh + Af/iiQH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/6pnBP8IBAH/AAAA/2NE + Bf+1fwT/BQMB/1c8Bf/6sAH//LEB//yxAf/8sQH//LEB//y2Ev//+e3/////////////////z4Zi/7I8 + Af+yPAH/+KsB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/+7AB/zgm + BP8AAAD/LR4E/3NQBf8sHgP/6KMC//yxAf/8sQH//LEB//yxAf/8sQH//LEB//7ptv////////////// + ///Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH/XD8E/wAAAP8GAwH/NSMG/5JlBf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//uWq//// + /////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf96VAX/AAAA/wAAAP8uHwT/9awB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/+5ar/////////////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yxAf/SkwP/QywI/0Qt + B/9ELQf/RC0H/0QtB/9ELQf/RC0H/zkmB/8AAAD/AAAA/zEgBf9ELQf/RC0H/0QtB/9ELQf/RC0H/zQi + Bf8uHwP/Lh8D/0Q4KP/8+/v////////////Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/k2UF/wAAAP8AAAD/Z0cF//yxAf/8sQH//LEB//yx + Af/8sQH/g1sF/wcFAf8tHwP/s591/////////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+ZagX/AAAA/wAAAP9gQQT//LEB//yx + Af/8sQH//LEB//yxAf/8sQH/gVgF/96bAv/+5ar/////////////////zH5X/7I8Af+yPAH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/51sBf8AAAD/AAAA/1c7 + BP/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//7lqv/////////////////Mflf/sjwB/7I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/mGkF/wAA + AP8AAAD/OygE/+KeAv/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//uWq/////////////////8x+ + V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af+SZQX/BAMC/xUNA/8nGgT/jWEF//yxAf/8sQH//LEB//yxAf/8sQH//LEB//WnAf/otHn//vz7//// + ////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/+WgAv/QkgP/6KMC//uwAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/vk4B/7I8 + Af/YnH7////////////Mflf/sjwB/7I8Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af+yPAH/sjwB/8x+V////////////8x+V/+yPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/7I8Af+yPAH/zH5X////////////zH5X/7I8Af+yPAH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH/sjwB/7I8Af/Mflf////////////Mflf/sjwB/7I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/sjwB/8x+V////////////9SRcP+yPAH/sjwB//Cf + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/8J4B/7I8Af+yPAH/1JJx////////////58Gu/7I8 + Af+yPAH/uUcB/8piAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8tj + Af/LYwH/y2MB/8tjAf/LYwH/y2MB/8tjAf/LYwH/y2MB/8piAf+5RgH/sjwB/7I8Af/nwq////////// + /////v7/yXVM/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/yXZN//// + ///////////////////9+/r/2Z+B/79cK/+zPgT/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+zPgT/v1wr/9qg + g//9+/r////////////////2//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////9v///8T////8//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////z////D////N/////z////8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////8/////P///zUAAAAA////N////8X////3//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////9v///8T///82AAAAAIAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABKAAAABgA + AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w////+r////9P////f////3////9/// + //f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/// + //T///+q////Dv///6z////5//////////////////////////96dHH/fnp3/9vZ2P////////////// + ////////////////////////////////////////oZ2c/6WioP/////5////qv////X///////////// + ///////////////////+/v7/nJmX/zUxLv94dHL/8fDw/////////////////////////////////+no + 6P9jXlz/BQQE/xcWFf+Sjoz//f399f////r//////////////////////////////////////////93b + 2v9DPz3/Lysq/7+8u///////////////////////2NbV/zUxMP8AAAD/AQAA/zMwLv99eXf/7ezs+v// + //r////////////////////////////////////////////////u7e3/Ojc1/xoYF/+/vLv///////// + ///o5+b/NTEw/wAAAP8vLCv/mZaU//v6+v//////////+v////r9+vn/1pZ3/7pQG/+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/jDED/wsFAf8sGA//+fn4//////9nY2H/AQAA/2JeW//t7Oz///////// + ////////////+v////rWl3j/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/0ga + A/8AAAD/iV8E/8iMA/8PCQH/bk0F//uwAf/8sQH//Loe//7ptv//////////+v////q6Txr/sjwB/+uW + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/6p1BP8BAAD/Qy4D/3ZSBP9ONQP/+a4B//yx + Af/8sQH//LEB//y6Hv//////////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//KqAv8XDwL/DwoC/z8rBf/RkwP//LEB//yxAf/8sQH//LEB//yxAf//////////+v// + //qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/ZlwL/tX4D/7V+A/+1fgP/tX4D/7V+A/8uHwP/AAAA/0gw + BP+1fgP/tX4D/7V+A/+1fgP/tX4D/7V+A//o5ub/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yx + Af+yfAP/m2wD/5tsA/+bbAP/m2wD/5tsA/80IwP/AAAA/2FCA/+bbAP/m2wD/5tsA/94UwT/BQMB/xgQ + Av+urKr/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af9FMAP/AAAA/4BZBP/8sQH//LEB//yxAf/8sQH/gVoE/8OJA///////////+v////qyPAH/sjwB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf9FMAP/AAAA/3dTBP/8sQH//LEB//yx + Af/8sQH//LEB//yxAf//////////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf9FMAP/AAAA/y4gA//upwL//LEB//yxAf/8sQH//LEB//yxAf//////////+v// + //qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+mcwT/onAE/7mB + A//8sQH//LEB//yxAf/8sQH//LEB/8NYAf/Eaj3/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/7I8 + Af+yPAH/////+v////qyPAH/sjwB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB/7I8Af+yPAH/////+v////qyPAH/sjwB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB/7I8Af+yPAH/////+v////q6Txr/sjwB/+uXAf/8sQH//LEB//yxAf/8sQH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/65YB/7I8Af+6UBv/////+v// + //rVlXb/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af/Wl3j/////+v////r9+vj/1ZV2/7pPGv+yPAH/sjwB/7I8 + Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/uk8a/9aW + d//9+vn/////+v////X///////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////9f///63////5//////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////5////q////xD///+t////9f////f////3////9/////f////3////9/// + //f////3////9/////f////3////9/////f////3////9/////f////3////9/////T///+s////DwAA + AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA + AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9p////3f///+P////j7u3t5ebk5Ob////j////4////+P////j////4/// + /+P////j/Pz84/f29t7///9o////3f////////////////n4+P+GgoD/bGhm/97d3P////////////// + ////////1dTT/0dEQ/9aWFb/5+bm3////+H//////////////////////////8jGxf82MzL/s7Gw//// + ////////ysjH/xwaGf8ZFxb/cG1s/9TT0ub////h7M/A/8+FYf/MfVb/zH1W/8x9Vv/MfVb/mF1A/xIM + CP/FuLH/6unp/yYkI/9jYF7/6ejo///////////h9eTc5bRABv/DWQT/y2MB/8tjAf/LYwH/y2MB/8tj + Af9GIwL/VDgC/31XA/9sSwL/+7AB//y1Dv/+57D/////4eS7peuyPAH/+7AB//yxAf/8sQH//LEB//yx + Af/8sQH/lmkD/xUOAf9XPAT/8aoB//yxAf/8sQH//cxZ/////+Hjt6LrsjwB//yxAf/8sQH/8qsB/5Fj + BP+RZAT/kWQE/3FOBf8AAAD/XUAE/5FkBP+RZAT/h10D/4xwL//+/v7h47ei67I8Af/8sQH//LEB//yx + Af/8sQH//LEB//yxAf++hgP/AAAA/6VzA//8sQH//LEB/4VcA/+ohjr/////4eO3ouuyPAH//LEB//yx + Af/8sQH//LEB//yxAf/8sQH/voYD/wAAAP+RZgP//LEB//yxAf/8sQH//ctW/////+Hjt6LrsjwB//yx + Af/8sQH//LEB//yxAf/8sQH//LEB/9eXAv9xTwP/onED//yxAf/8sQH//LEB/9R9KP/05Nvl47ei67I8 + Af/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf+yPAH/47ei6+O3 + ouuyPAH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH//LEB//yxAf/8sQH/sjwB/+O3 + ouvrz7/osjwB/9t+Af/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/44oB/+OKAf/jigH/230B/7I8 + Af/s0MHo////4dSScP+1Qwn/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7I8Af+yPAH/sjwB/7VD + Cf/Uk3L/////4f///93///////////////////////////////////////////////////////////// + /////////////////93///9q////3f///+P////j////4////+P////j////4////+P////j////4/// + /+P////j////4////93///9pAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA + rEEAAKxBAACsQQAArEEAAKxBAACsQQ== + + + \ No newline at end of file diff --git a/source/Program.cs b/source/Program.cs new file mode 100644 index 0000000..2996409 --- /dev/null +++ b/source/Program.cs @@ -0,0 +1,16 @@ +namespace SuzuMagnifier +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + ApplicationConfiguration.Initialize(); + Application.SetHighDpiMode(HighDpiMode.PerMonitorV2); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/source/SuzuMagnifier.csproj b/source/SuzuMagnifier.csproj new file mode 100644 index 0000000..61fe9c4 --- /dev/null +++ b/source/SuzuMagnifier.csproj @@ -0,0 +1,36 @@ + + + WinExe + net10.0-windows + enable + true + enable + Suzu Magnifier + 0.1.0.145 + Suzu Magnifier + Hi, I'm Ray + Ray Lam + icon-128.png + favicon.ico + true + + + none + + + + none + + + + + + + + + True + \ + + + + \ No newline at end of file diff --git a/source/SuzuMagnifier.csproj.user b/source/SuzuMagnifier.csproj.user new file mode 100644 index 0000000..7814ea2 --- /dev/null +++ b/source/SuzuMagnifier.csproj.user @@ -0,0 +1,8 @@ + + + + + Form + + + diff --git a/source/favicon.ico b/source/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..49097ef75f7e1bcaddb3b5ae1ee2327886b4647a GIT binary patch literal 17542 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