├── .gitattributes ├── .gitignore ├── README.md ├── Res ├── IMG_5594.jpg ├── googlelogo_color_272x92dp.bmp ├── icons8-Open-32.png ├── pencil.ico ├── teensy.exe └── tpp_main.jpg ├── SplaTU.sln └── SplaTU ├── AboutBox.Designer.cs ├── AboutBox.aa.resx ├── AboutBox.cs ├── AboutBox.resx ├── App.config ├── Program.cs ├── Properties ├── AssemblyInfo.cs ├── Resources.Designer.cs ├── Resources.resx ├── Settings.Designer.cs └── Settings.settings ├── Resources ├── Strings.Designer.cs ├── Strings.resx ├── Strings.zh.resx ├── back1.png ├── ico.png ├── icons8-Open-32.png ├── icons8-PreviewPane-32.png ├── icons8-Resume Button-32.png ├── mii.png ├── swBack.PNG ├── tile1.bmp ├── tile_B.bmp ├── tile_B_2.bmp ├── tile_G.bmp ├── tile_G_2.bmp ├── tile_O.bmp ├── tile_O_2.bmp ├── tile_P.bmp ├── tile_P_2.bmp ├── tile_R.bmp ├── tile_R_2.bmp ├── tpp_core.png └── tpp_main.png ├── SplaTU.csproj ├── SplaTu.Designer.cs ├── SplaTu.cs ├── SplaTu.en.resx ├── SplaTu.resx ├── SplaTu.zh.resx ├── pencil.ico └── teensy.exe /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | [Xx]64/ 19 | [Xx]86/ 20 | [Bb]uild/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | artifacts/ 46 | 47 | *_i.c 48 | *_p.c 49 | *_i.h 50 | *.ilk 51 | *.meta 52 | *.obj 53 | *.pch 54 | *.pdb 55 | *.pgc 56 | *.pgd 57 | *.rsp 58 | *.sbr 59 | *.tlb 60 | *.tli 61 | *.tlh 62 | *.tmp 63 | *.tmp_proj 64 | *.log 65 | *.vspscc 66 | *.vssscc 67 | .builds 68 | *.pidb 69 | *.svclog 70 | *.scc 71 | 72 | # Chutzpah Test files 73 | _Chutzpah* 74 | 75 | # Visual C++ cache files 76 | ipch/ 77 | *.aps 78 | *.ncb 79 | *.opendb 80 | *.opensdf 81 | *.sdf 82 | *.cachefile 83 | *.VC.db 84 | 85 | # Visual Studio profiler 86 | *.psess 87 | *.vsp 88 | *.vspx 89 | *.sap 90 | 91 | # TFS 2012 Local Workspace 92 | $tf/ 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | *.DotSettings.user 101 | 102 | # JustCode is a .NET coding add-in 103 | .JustCode 104 | 105 | # TeamCity is a build add-in 106 | _TeamCity* 107 | 108 | # DotCover is a Code Coverage Tool 109 | *.dotCover 110 | 111 | # NCrunch 112 | _NCrunch_* 113 | .*crunch*.local.xml 114 | nCrunchTemp_* 115 | 116 | # MightyMoose 117 | *.mm.* 118 | AutoTest.Net/ 119 | 120 | # Web workbench (sass) 121 | .sass-cache/ 122 | 123 | # Installshield output folder 124 | [Ee]xpress/ 125 | 126 | # DocProject is a documentation generator add-in 127 | DocProject/buildhelp/ 128 | DocProject/Help/*.HxT 129 | DocProject/Help/*.HxC 130 | DocProject/Help/*.hhc 131 | DocProject/Help/*.hhk 132 | DocProject/Help/*.hhp 133 | DocProject/Help/Html2 134 | DocProject/Help/html 135 | 136 | # Click-Once directory 137 | publish/ 138 | 139 | # Publish Web Output 140 | *.[Pp]ublish.xml 141 | *.azurePubxml 142 | 143 | # TODO: Un-comment the next line if you do not want to checkin 144 | # your web deploy settings because they may include unencrypted 145 | # passwords 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # NuGet Packages 150 | *.nupkg 151 | # The packages folder can be ignored because of Package Restore 152 | **/packages/* 153 | # except build/, which is used as an MSBuild target. 154 | !**/packages/build/ 155 | # Uncomment if necessary however generally it will be regenerated when needed 156 | #!**/packages/repositories.config 157 | # NuGet v3's project.json files produces more ignoreable files 158 | *.nuget.props 159 | *.nuget.targets 160 | 161 | # Microsoft Azure Build Output 162 | csx/ 163 | *.build.csdef 164 | 165 | # Microsoft Azure Emulator 166 | ecf/ 167 | rcf/ 168 | 169 | # Windows Store app package directory 170 | AppPackages/ 171 | BundleArtifacts/ 172 | 173 | # Visual Studio cache files 174 | # files ending in .cache can be ignored 175 | *.[Cc]ache 176 | # but keep track of directories ending in .cache 177 | !*.[Cc]ache/ 178 | 179 | # Others 180 | ClientBin/ 181 | [Ss]tyle[Cc]op.* 182 | ~$* 183 | *~ 184 | *.dbmdl 185 | *.dbproj.schemaview 186 | *.pfx 187 | *.publishsettings 188 | node_modules/ 189 | orleans.codegen.cs 190 | 191 | # RIA/Silverlight projects 192 | Generated_Code/ 193 | 194 | # Backup & report files from converting an old project file 195 | # to a newer Visual Studio version. Backup files are not needed, 196 | # because we have git ;-) 197 | _UpgradeReport_Files/ 198 | Backup*/ 199 | UpgradeLog*.XML 200 | UpgradeLog*.htm 201 | 202 | # SQL Server files 203 | *.mdf 204 | *.ldf 205 | 206 | # Business Intelligence projects 207 | *.rdl.data 208 | *.bim.layout 209 | *.bim_*.settings 210 | 211 | # Microsoft Fakes 212 | FakesAssemblies/ 213 | 214 | # GhostDoc plugin setting file 215 | *.GhostDoc.xml 216 | 217 | # Node.js Tools for Visual Studio 218 | .ntvs_analysis.dat 219 | 220 | # Visual Studio 6 build log 221 | *.plg 222 | 223 | # Visual Studio 6 workspace options file 224 | *.opt 225 | 226 | # Visual Studio LightSwitch build output 227 | **/*.HTMLClient/GeneratedArtifacts 228 | **/*.DesktopClient/GeneratedArtifacts 229 | **/*.DesktopClient/ModelManifest.xml 230 | **/*.Server/GeneratedArtifacts 231 | **/*.Server/ModelManifest.xml 232 | _Pvt_Extensions 233 | 234 | # LightSwitch generated files 235 | GeneratedArtifacts/ 236 | ModelManifest.xml 237 | 238 | # Paket dependency manager 239 | .paket/paket.exe 240 | 241 | # FAKE - F# Make 242 | .fake/ 243 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SplaTu 2 | An image conversion tool for Splatoon2/3 posts 3 | 4 | This project was based on shinyquagsire23's Switch-FightStick Splatoon 2 Posts Project: github.com/shinyquagsire23/Switch-Fightstick 5 | The application SplaTu contains an image converter, which converts any image to a 320x120 monochrome bitmap, then converts the bitmap to image.c and eventually use shinyquagsire23's project to generate Joystick.h 6 | 7 | Update 2022-09-20 Version 1.1: 8 | The updated image converter now works with newer version of Switch-FightStick that speeded up the printing speed. 9 | To support Splatoon3, need to import https://github.com/tarxf/Splatoon-3-Post-Printer/ instead of https://github.com/shinyquagsire23/Switch-Fightstick and put the files under Switch-Fightstick folder. 10 | 11 | Folder Structure: 12 | 13 | SplaTu|
14 |         |SplaTu.exe
15 |         |LUFA
16 |             |LUFA
17 |                 |....
18 |         |Switch-Fightstick
19 |             |....
20 | 21 | In \LUFA\LUFA\Drivers\USB\Core\Device.h Line 134, update **const uint8_t wIndex** to **const uint16_t wIndex** 22 | 23 | 24 | 25 | Download: https://pan.baidu.com/s/1J8UiuhLlpKFEzNDKyLvKQg?pwd=eniy
26 | Download password: eniy
27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Res/IMG_5594.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/Res/IMG_5594.jpg -------------------------------------------------------------------------------- /Res/googlelogo_color_272x92dp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/Res/googlelogo_color_272x92dp.bmp -------------------------------------------------------------------------------- /Res/icons8-Open-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/Res/icons8-Open-32.png -------------------------------------------------------------------------------- /Res/pencil.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/Res/pencil.ico -------------------------------------------------------------------------------- /Res/teensy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/Res/teensy.exe -------------------------------------------------------------------------------- /Res/tpp_main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/Res/tpp_main.jpg -------------------------------------------------------------------------------- /SplaTU.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SplaTU", "SplaTU\SplaTU.csproj", "{8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Release|Any CPU = Release|Any CPU 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725}.Debug|x64.ActiveCfg = Debug|x64 19 | {8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725}.Debug|x64.Build.0 = Debug|x64 20 | {8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725}.Release|Any CPU.ActiveCfg = Release|Any CPU 21 | {8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725}.Release|Any CPU.Build.0 = Release|Any CPU 22 | {8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725}.Release|x64.ActiveCfg = Release|x64 23 | {8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /SplaTU/AboutBox.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SplaTU 2 | { 3 | partial class AboutBox 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox)); 32 | this.txtAbout = new System.Windows.Forms.RichTextBox(); 33 | this.label1 = new System.Windows.Forms.Label(); 34 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 35 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 36 | this.SuspendLayout(); 37 | // 38 | // txtAbout 39 | // 40 | resources.ApplyResources(this.txtAbout, "txtAbout"); 41 | this.txtAbout.Name = "txtAbout"; 42 | // 43 | // label1 44 | // 45 | resources.ApplyResources(this.label1, "label1"); 46 | this.label1.BackColor = System.Drawing.Color.Transparent; 47 | this.label1.ForeColor = System.Drawing.SystemColors.Control; 48 | this.label1.Name = "label1"; 49 | // 50 | // pictureBox1 51 | // 52 | this.pictureBox1.ErrorImage = global::SplaTU.Properties.Resources.swBack; 53 | this.pictureBox1.Image = global::SplaTU.Properties.Resources.mii; 54 | this.pictureBox1.InitialImage = global::SplaTU.Properties.Resources.mii; 55 | resources.ApplyResources(this.pictureBox1, "pictureBox1"); 56 | this.pictureBox1.Name = "pictureBox1"; 57 | this.pictureBox1.TabStop = false; 58 | // 59 | // AboutBox 60 | // 61 | resources.ApplyResources(this, "$this"); 62 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 63 | this.BackgroundImage = global::SplaTU.Properties.Resources.swBack; 64 | this.Controls.Add(this.pictureBox1); 65 | this.Controls.Add(this.label1); 66 | this.Controls.Add(this.txtAbout); 67 | this.MaximizeBox = false; 68 | this.MinimizeBox = false; 69 | this.Name = "AboutBox"; 70 | this.ShowIcon = false; 71 | this.ShowInTaskbar = false; 72 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 73 | this.ResumeLayout(false); 74 | this.PerformLayout(); 75 | 76 | } 77 | 78 | #endregion 79 | 80 | private System.Windows.Forms.RichTextBox txtAbout; 81 | private System.Windows.Forms.Label label1; 82 | private System.Windows.Forms.PictureBox pictureBox1; 83 | } 84 | } -------------------------------------------------------------------------------- /SplaTU/AboutBox.aa.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | 384, 361 123 | 124 | 125 | 400, 400 126 | 127 | -------------------------------------------------------------------------------- /SplaTU/AboutBox.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace SplaTU 12 | { 13 | public partial class AboutBox : Form 14 | { 15 | public AboutBox() 16 | { 17 | InitializeComponent(); 18 | 19 | 20 | txtAbout.Text = "SplaTu v1.0 by Onion \r\n\r\nSpecial Thanks:\r\nMax Thomas, author of Switch-Fightstick for Splatoon 2 Posts: https://github.com/shinyquagsire23/Switch-Fightstick \r\n \r\nSome icons provided by: icons8.com"; 21 | 22 | 23 | 24 | 25 | 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /SplaTU/AboutBox.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | 12, 138 123 | 124 | 125 | 360, 194 126 | 127 | 128 | 129 | 0 130 | 131 | 132 | 133 | 134 | 135 | txtAbout 136 | 137 | 138 | System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 139 | 140 | 141 | $this 142 | 143 | 144 | 2 145 | 146 | 147 | True 148 | 149 | 150 | Microsoft YaHei, 10.5pt 151 | 152 | 153 | 136, 30 154 | 155 | 156 | 163, 20 157 | 158 | 159 | 1 160 | 161 | 162 | Sina Weibo: @Onion酱 163 | 164 | 165 | label1 166 | 167 | 168 | System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 169 | 170 | 171 | $this 172 | 173 | 174 | 1 175 | 176 | 177 | 12, 13 178 | 179 | 180 | 181 | 0, 0, 0, 0 182 | 183 | 184 | 100, 100 185 | 186 | 187 | Zoom 188 | 189 | 190 | 2 191 | 192 | 193 | pictureBox1 194 | 195 | 196 | System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 197 | 198 | 199 | $this 200 | 201 | 202 | 0 203 | 204 | 205 | True 206 | 207 | 208 | 6, 13 209 | 210 | 211 | 384, 348 212 | 213 | 214 | 400, 387 215 | 216 | 217 | About 218 | 219 | 220 | AboutBox 221 | 222 | 223 | System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 224 | 225 | -------------------------------------------------------------------------------- /SplaTU/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | C:\ 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /SplaTU/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace SplaTU 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new SplaTU()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SplaTU/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SplaTu")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SplaTu")] 13 | [assembly: AssemblyCopyright("Copyright © SplatOnion 2017 - 2022")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("8fc5fd77-edaa-4daf-9135-d7e97fcde725")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.1.0.0")] 36 | [assembly: AssemblyFileVersion("1.1.0.0")] 37 | -------------------------------------------------------------------------------- /SplaTU/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SplaTU.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SplaTU.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap icons8_Open_32 { 67 | get { 68 | object obj = ResourceManager.GetObject("icons8_Open_32", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Looks up a localized resource of type System.Drawing.Bitmap. 75 | /// 76 | internal static System.Drawing.Bitmap icons8_PreviewPane_32 { 77 | get { 78 | object obj = ResourceManager.GetObject("icons8_PreviewPane_32", resourceCulture); 79 | return ((System.Drawing.Bitmap)(obj)); 80 | } 81 | } 82 | 83 | /// 84 | /// Looks up a localized resource of type System.Drawing.Bitmap. 85 | /// 86 | internal static System.Drawing.Bitmap icons8_Resume_Button_32 { 87 | get { 88 | object obj = ResourceManager.GetObject("icons8_Resume Button_32", resourceCulture); 89 | return ((System.Drawing.Bitmap)(obj)); 90 | } 91 | } 92 | 93 | /// 94 | /// Looks up a localized resource of type System.Drawing.Bitmap. 95 | /// 96 | internal static System.Drawing.Bitmap mii { 97 | get { 98 | object obj = ResourceManager.GetObject("mii", resourceCulture); 99 | return ((System.Drawing.Bitmap)(obj)); 100 | } 101 | } 102 | 103 | /// 104 | /// Looks up a localized resource of type System.Drawing.Bitmap. 105 | /// 106 | internal static System.Drawing.Bitmap swBack { 107 | get { 108 | object obj = ResourceManager.GetObject("swBack", resourceCulture); 109 | return ((System.Drawing.Bitmap)(obj)); 110 | } 111 | } 112 | 113 | /// 114 | /// Looks up a localized resource of type System.Drawing.Bitmap. 115 | /// 116 | internal static System.Drawing.Bitmap tile_B { 117 | get { 118 | object obj = ResourceManager.GetObject("tile_B", resourceCulture); 119 | return ((System.Drawing.Bitmap)(obj)); 120 | } 121 | } 122 | 123 | /// 124 | /// Looks up a localized resource of type System.Drawing.Bitmap. 125 | /// 126 | internal static System.Drawing.Bitmap tile_B_2 { 127 | get { 128 | object obj = ResourceManager.GetObject("tile_B_2", resourceCulture); 129 | return ((System.Drawing.Bitmap)(obj)); 130 | } 131 | } 132 | 133 | /// 134 | /// Looks up a localized resource of type System.Drawing.Bitmap. 135 | /// 136 | internal static System.Drawing.Bitmap tile_G { 137 | get { 138 | object obj = ResourceManager.GetObject("tile_G", resourceCulture); 139 | return ((System.Drawing.Bitmap)(obj)); 140 | } 141 | } 142 | 143 | /// 144 | /// Looks up a localized resource of type System.Drawing.Bitmap. 145 | /// 146 | internal static System.Drawing.Bitmap tile_O { 147 | get { 148 | object obj = ResourceManager.GetObject("tile_O", resourceCulture); 149 | return ((System.Drawing.Bitmap)(obj)); 150 | } 151 | } 152 | 153 | /// 154 | /// Looks up a localized resource of type System.Drawing.Bitmap. 155 | /// 156 | internal static System.Drawing.Bitmap tile_P { 157 | get { 158 | object obj = ResourceManager.GetObject("tile_P", resourceCulture); 159 | return ((System.Drawing.Bitmap)(obj)); 160 | } 161 | } 162 | 163 | /// 164 | /// Looks up a localized resource of type System.Drawing.Bitmap. 165 | /// 166 | internal static System.Drawing.Bitmap tile_P_2 { 167 | get { 168 | object obj = ResourceManager.GetObject("tile_P_2", resourceCulture); 169 | return ((System.Drawing.Bitmap)(obj)); 170 | } 171 | } 172 | 173 | /// 174 | /// Looks up a localized resource of type System.Drawing.Bitmap. 175 | /// 176 | internal static System.Drawing.Bitmap tile_R { 177 | get { 178 | object obj = ResourceManager.GetObject("tile_R", resourceCulture); 179 | return ((System.Drawing.Bitmap)(obj)); 180 | } 181 | } 182 | 183 | /// 184 | /// Looks up a localized resource of type System.Drawing.Bitmap. 185 | /// 186 | internal static System.Drawing.Bitmap tile1 { 187 | get { 188 | object obj = ResourceManager.GetObject("tile1", resourceCulture); 189 | return ((System.Drawing.Bitmap)(obj)); 190 | } 191 | } 192 | 193 | /// 194 | /// Looks up a localized resource of type System.Drawing.Bitmap. 195 | /// 196 | internal static System.Drawing.Bitmap tpp_core { 197 | get { 198 | object obj = ResourceManager.GetObject("tpp_core", resourceCulture); 199 | return ((System.Drawing.Bitmap)(obj)); 200 | } 201 | } 202 | 203 | /// 204 | /// Looks up a localized resource of type System.Drawing.Bitmap. 205 | /// 206 | internal static System.Drawing.Bitmap tpp_main { 207 | get { 208 | object obj = ResourceManager.GetObject("tpp_main", resourceCulture); 209 | return ((System.Drawing.Bitmap)(obj)); 210 | } 211 | } 212 | } 213 | } 214 | -------------------------------------------------------------------------------- /SplaTU/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\tile_P_2.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | ..\Resources\tpp_main.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 126 | 127 | 128 | ..\Resources\tile_B_2.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 129 | 130 | 131 | ..\Resources\tile_G.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 132 | 133 | 134 | ..\Resources\tile1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 135 | 136 | 137 | ..\Resources\icons8-Open-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 138 | 139 | 140 | ..\Resources\mii.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 141 | 142 | 143 | ..\Resources\icons8-Resume Button-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 144 | 145 | 146 | ..\Resources\tile_R.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 147 | 148 | 149 | ..\Resources\tile_B.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 150 | 151 | 152 | ..\Resources\icons8-PreviewPane-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 153 | 154 | 155 | ..\Resources\tile_O.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 156 | 157 | 158 | ..\Resources\swBack.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 159 | 160 | 161 | ..\Resources\tile_P.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 162 | 163 | 164 | ..\Resources\tpp_core.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 165 | 166 | -------------------------------------------------------------------------------- /SplaTU/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SplaTU.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | 26 | [global::System.Configuration.UserScopedSettingAttribute()] 27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 28 | [global::System.Configuration.DefaultSettingValueAttribute("C:\\")] 29 | public string setting_last_path { 30 | get { 31 | return ((string)(this["setting_last_path"])); 32 | } 33 | set { 34 | this["setting_last_path"] = value; 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SplaTU/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | C:\ 7 | 8 | 9 | -------------------------------------------------------------------------------- /SplaTU/Resources/Strings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SplaTU.Resources { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Strings { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Strings() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SplaTU.Resources.Strings", typeof(Strings).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized string similar to Hex file has been generated to:. 65 | /// 66 | internal static string str_FileGen { 67 | get { 68 | return ResourceManager.GetString("str_FileGen", resourceCulture); 69 | } 70 | } 71 | 72 | /// 73 | /// Looks up a localized string similar to Load Image. 74 | /// 75 | internal static string str_LoadImg { 76 | get { 77 | return ResourceManager.GetString("str_LoadImg", resourceCulture); 78 | } 79 | } 80 | 81 | /// 82 | /// Looks up a localized string similar to Image data is null. Please selet a file and click preview.. 83 | /// 84 | internal static string str_SelError { 85 | get { 86 | return ResourceManager.GetString("str_SelError", resourceCulture); 87 | } 88 | } 89 | 90 | /// 91 | /// Looks up a localized string similar to Please select an image style.. 92 | /// 93 | internal static string str_SelType { 94 | get { 95 | return ResourceManager.GetString("str_SelType", resourceCulture); 96 | } 97 | } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /SplaTU/Resources/Strings.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Hex file has been generated to: 122 | 123 | 124 | Load Image 125 | 126 | 127 | Image data is null. Please selet a file and click preview. 128 | 129 | 130 | Please select an image style. 131 | 132 | -------------------------------------------------------------------------------- /SplaTU/Resources/Strings.zh.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 输出文件已生成: 122 | 123 | 124 | 选择图片 125 | 126 | 127 | 图像数据为空, 请先选择图片然后点击预览 128 | 129 | 130 | 请先选择一种样式 131 | 132 | -------------------------------------------------------------------------------- /SplaTU/Resources/back1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/back1.png -------------------------------------------------------------------------------- /SplaTU/Resources/ico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/ico.png -------------------------------------------------------------------------------- /SplaTU/Resources/icons8-Open-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/icons8-Open-32.png -------------------------------------------------------------------------------- /SplaTU/Resources/icons8-PreviewPane-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/icons8-PreviewPane-32.png -------------------------------------------------------------------------------- /SplaTU/Resources/icons8-Resume Button-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/icons8-Resume Button-32.png -------------------------------------------------------------------------------- /SplaTU/Resources/mii.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/mii.png -------------------------------------------------------------------------------- /SplaTU/Resources/swBack.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/swBack.PNG -------------------------------------------------------------------------------- /SplaTU/Resources/tile1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile1.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_B.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_B.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_B_2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_B_2.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_G.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_G.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_G_2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_G_2.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_O.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_O.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_O_2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_O_2.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_P.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_P.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_P_2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_P_2.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_R.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_R.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tile_R_2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tile_R_2.bmp -------------------------------------------------------------------------------- /SplaTU/Resources/tpp_core.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tpp_core.png -------------------------------------------------------------------------------- /SplaTU/Resources/tpp_main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/Resources/tpp_main.png -------------------------------------------------------------------------------- /SplaTU/SplaTU.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {8FC5FD77-EDAA-4DAF-9135-D7E97FCDE725} 8 | WinExe 9 | Properties 10 | SplaTU 11 | SplaTu 12 | v4.8 13 | 512 14 | true 15 | 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | pdbonly 30 | true 31 | bin\Release\ 32 | TRACE 33 | prompt 34 | 4 35 | 36 | 37 | true 38 | bin\x64\Debug\ 39 | DEBUG;TRACE 40 | full 41 | x64 42 | prompt 43 | MinimumRecommendedRules.ruleset 44 | true 45 | 46 | 47 | bin\x64\Release\ 48 | TRACE 49 | true 50 | pdbonly 51 | x64 52 | prompt 53 | MinimumRecommendedRules.ruleset 54 | true 55 | 56 | 57 | true 58 | 59 | 60 | pencil.ico 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | Form 78 | 79 | 80 | AboutBox.cs 81 | 82 | 83 | 84 | 85 | Form 86 | 87 | 88 | SplaTu.cs 89 | 90 | 91 | True 92 | True 93 | Strings.resx 94 | 95 | 96 | AboutBox.cs 97 | 98 | 99 | AboutBox.cs 100 | 101 | 102 | ResXFileCodeGenerator 103 | Resources.Designer.cs 104 | Designer 105 | 106 | 107 | True 108 | Resources.resx 109 | True 110 | 111 | 112 | 113 | SplaTu.cs 114 | 115 | 116 | SplaTu.cs 117 | 118 | 119 | SplaTu.cs 120 | 121 | 122 | ResXFileCodeGenerator 123 | Strings.Designer.cs 124 | 125 | 126 | SettingsSingleFileGenerator 127 | Settings.Designer.cs 128 | 129 | 130 | True 131 | Settings.settings 132 | True 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | Always 157 | 158 | 159 | 160 | 161 | 162 | 163 | 170 | -------------------------------------------------------------------------------- /SplaTU/SplaTu.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SplaTU 2 | { 3 | partial class SplaTU 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SplaTU)); 32 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 33 | this.pbInput = new System.Windows.Forms.PictureBox(); 34 | this.groupBox2 = new System.Windows.Forms.GroupBox(); 35 | this.pbOutput2 = new System.Windows.Forms.PictureBox(); 36 | this.txtPath = new System.Windows.Forms.TextBox(); 37 | this.menuStrip1 = new System.Windows.Forms.MenuStrip(); 38 | this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 39 | this.englishToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 40 | this.SchineseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 41 | this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); 42 | this.label1 = new System.Windows.Forms.Label(); 43 | this.btnPreviewImg = new System.Windows.Forms.Button(); 44 | this.btnRunTeensy = new System.Windows.Forms.Button(); 45 | this.btnGenerate = new System.Windows.Forms.Button(); 46 | this.btnBrowse = new System.Windows.Forms.Button(); 47 | this.groupBox1.SuspendLayout(); 48 | ((System.ComponentModel.ISupportInitialize)(this.pbInput)).BeginInit(); 49 | this.groupBox2.SuspendLayout(); 50 | ((System.ComponentModel.ISupportInitialize)(this.pbOutput2)).BeginInit(); 51 | this.menuStrip1.SuspendLayout(); 52 | this.SuspendLayout(); 53 | // 54 | // groupBox1 55 | // 56 | this.groupBox1.BackgroundImage = global::SplaTU.Properties.Resources.tile_P_2; 57 | this.groupBox1.Controls.Add(this.pbInput); 58 | resources.ApplyResources(this.groupBox1, "groupBox1"); 59 | this.groupBox1.ForeColor = System.Drawing.Color.White; 60 | this.groupBox1.Name = "groupBox1"; 61 | this.groupBox1.TabStop = false; 62 | // 63 | // pbInput 64 | // 65 | resources.ApplyResources(this.pbInput, "pbInput"); 66 | this.pbInput.Name = "pbInput"; 67 | this.pbInput.TabStop = false; 68 | // 69 | // groupBox2 70 | // 71 | this.groupBox2.BackgroundImage = global::SplaTU.Properties.Resources.tile_P; 72 | this.groupBox2.Controls.Add(this.pbOutput2); 73 | resources.ApplyResources(this.groupBox2, "groupBox2"); 74 | this.groupBox2.ForeColor = System.Drawing.Color.White; 75 | this.groupBox2.Name = "groupBox2"; 76 | this.groupBox2.TabStop = false; 77 | // 78 | // pbOutput2 79 | // 80 | resources.ApplyResources(this.pbOutput2, "pbOutput2"); 81 | this.pbOutput2.Name = "pbOutput2"; 82 | this.pbOutput2.TabStop = false; 83 | // 84 | // txtPath 85 | // 86 | resources.ApplyResources(this.txtPath, "txtPath"); 87 | this.txtPath.Name = "txtPath"; 88 | // 89 | // menuStrip1 90 | // 91 | this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 92 | this.aboutToolStripMenuItem, 93 | this.aboutToolStripMenuItem1}); 94 | resources.ApplyResources(this.menuStrip1, "menuStrip1"); 95 | this.menuStrip1.Name = "menuStrip1"; 96 | // 97 | // aboutToolStripMenuItem 98 | // 99 | this.aboutToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 100 | this.englishToolStripMenuItem, 101 | this.SchineseToolStripMenuItem}); 102 | this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; 103 | resources.ApplyResources(this.aboutToolStripMenuItem, "aboutToolStripMenuItem"); 104 | // 105 | // englishToolStripMenuItem 106 | // 107 | this.englishToolStripMenuItem.Name = "englishToolStripMenuItem"; 108 | resources.ApplyResources(this.englishToolStripMenuItem, "englishToolStripMenuItem"); 109 | this.englishToolStripMenuItem.Click += new System.EventHandler(this.englishToolStripMenuItem_Click); 110 | // 111 | // SchineseToolStripMenuItem 112 | // 113 | this.SchineseToolStripMenuItem.Name = "SchineseToolStripMenuItem"; 114 | resources.ApplyResources(this.SchineseToolStripMenuItem, "SchineseToolStripMenuItem"); 115 | this.SchineseToolStripMenuItem.Click += new System.EventHandler(this.SchineseToolStripMenuItem_Click); 116 | // 117 | // aboutToolStripMenuItem1 118 | // 119 | this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; 120 | resources.ApplyResources(this.aboutToolStripMenuItem1, "aboutToolStripMenuItem1"); 121 | this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click); 122 | // 123 | // label1 124 | // 125 | resources.ApplyResources(this.label1, "label1"); 126 | this.label1.BackColor = System.Drawing.SystemColors.ButtonShadow; 127 | this.label1.ForeColor = System.Drawing.Color.White; 128 | this.label1.Name = "label1"; 129 | // 130 | // btnPreviewImg 131 | // 132 | this.btnPreviewImg.BackgroundImage = global::SplaTU.Properties.Resources.tile_B; 133 | resources.ApplyResources(this.btnPreviewImg, "btnPreviewImg"); 134 | this.btnPreviewImg.ForeColor = System.Drawing.Color.SeaShell; 135 | this.btnPreviewImg.Image = global::SplaTU.Properties.Resources.icons8_PreviewPane_32; 136 | this.btnPreviewImg.Name = "btnPreviewImg"; 137 | this.btnPreviewImg.UseVisualStyleBackColor = true; 138 | this.btnPreviewImg.Click += new System.EventHandler(this.btnPreviewImg_Click); 139 | // 140 | // btnRunTeensy 141 | // 142 | this.btnRunTeensy.BackgroundImage = global::SplaTU.Properties.Resources.tile_R; 143 | resources.ApplyResources(this.btnRunTeensy, "btnRunTeensy"); 144 | this.btnRunTeensy.ForeColor = System.Drawing.Color.SeaShell; 145 | this.btnRunTeensy.Image = global::SplaTU.Properties.Resources.tpp_core; 146 | this.btnRunTeensy.Name = "btnRunTeensy"; 147 | this.btnRunTeensy.UseVisualStyleBackColor = true; 148 | this.btnRunTeensy.Click += new System.EventHandler(this.btnRunTeensy_Click); 149 | // 150 | // btnGenerate 151 | // 152 | this.btnGenerate.BackgroundImage = global::SplaTU.Properties.Resources.tile_O; 153 | resources.ApplyResources(this.btnGenerate, "btnGenerate"); 154 | this.btnGenerate.ForeColor = System.Drawing.Color.SeaShell; 155 | this.btnGenerate.Image = global::SplaTU.Properties.Resources.icons8_Resume_Button_32; 156 | this.btnGenerate.Name = "btnGenerate"; 157 | this.btnGenerate.UseVisualStyleBackColor = true; 158 | this.btnGenerate.Click += new System.EventHandler(this.btnGenerate_Click_1); 159 | // 160 | // btnBrowse 161 | // 162 | resources.ApplyResources(this.btnBrowse, "btnBrowse"); 163 | this.btnBrowse.Image = global::SplaTU.Properties.Resources.icons8_Open_32; 164 | this.btnBrowse.Name = "btnBrowse"; 165 | this.btnBrowse.UseVisualStyleBackColor = true; 166 | this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); 167 | // 168 | // SplaTU 169 | // 170 | resources.ApplyResources(this, "$this"); 171 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 172 | this.BackgroundImage = global::SplaTU.Properties.Resources.tile1; 173 | this.Controls.Add(this.label1); 174 | this.Controls.Add(this.btnPreviewImg); 175 | this.Controls.Add(this.btnRunTeensy); 176 | this.Controls.Add(this.btnGenerate); 177 | this.Controls.Add(this.txtPath); 178 | this.Controls.Add(this.btnBrowse); 179 | this.Controls.Add(this.groupBox2); 180 | this.Controls.Add(this.groupBox1); 181 | this.Controls.Add(this.menuStrip1); 182 | this.MainMenuStrip = this.menuStrip1; 183 | this.MaximizeBox = false; 184 | this.Name = "SplaTU"; 185 | this.groupBox1.ResumeLayout(false); 186 | ((System.ComponentModel.ISupportInitialize)(this.pbInput)).EndInit(); 187 | this.groupBox2.ResumeLayout(false); 188 | ((System.ComponentModel.ISupportInitialize)(this.pbOutput2)).EndInit(); 189 | this.menuStrip1.ResumeLayout(false); 190 | this.menuStrip1.PerformLayout(); 191 | this.ResumeLayout(false); 192 | this.PerformLayout(); 193 | 194 | } 195 | 196 | #endregion 197 | private System.Windows.Forms.PictureBox pbInput; 198 | private System.Windows.Forms.GroupBox groupBox1; 199 | private System.Windows.Forms.GroupBox groupBox2; 200 | private System.Windows.Forms.Button btnBrowse; 201 | private System.Windows.Forms.TextBox txtPath; 202 | private System.Windows.Forms.MenuStrip menuStrip1; 203 | private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; 204 | private System.Windows.Forms.ToolStripMenuItem SchineseToolStripMenuItem; 205 | private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1; 206 | private System.Windows.Forms.PictureBox pbOutput2; 207 | private System.Windows.Forms.Button btnPreviewImg; 208 | private System.Windows.Forms.Button btnGenerate; 209 | private System.Windows.Forms.Button btnRunTeensy; 210 | private System.Windows.Forms.Label label1; 211 | private System.Windows.Forms.ToolStripMenuItem englishToolStripMenuItem; 212 | } 213 | } 214 | 215 | -------------------------------------------------------------------------------- /SplaTU/SplaTu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using System.IO; 11 | // using ImageMagick; 12 | using System.Runtime.InteropServices; 13 | using System.Drawing.Imaging; 14 | using System.Drawing.Drawing2D; 15 | using System.Diagnostics; 16 | using System.Threading; 17 | using System.Globalization; 18 | using SplaTU.Resources; 19 | 20 | namespace SplaTU 21 | { 22 | public partial class SplaTU : Form 23 | { 24 | public SplaTU() 25 | { 26 | InitializeComponent(); 27 | InitDefaults(); 28 | 29 | 30 | } 31 | 32 | private const string _switchFightStickPath = @"Switch-Fightstick"; 33 | 34 | private void InitDefaults() 35 | { 36 | 37 | try 38 | { 39 | txtPath.Text = Properties.Settings.Default.setting_last_path ; 40 | } 41 | catch 42 | { 43 | txtPath.Text = ""; 44 | } 45 | 46 | 47 | } 48 | 49 | private void btnBrowse_Click(object sender, EventArgs e) 50 | { 51 | 52 | try 53 | { 54 | string path = @"C:\"; 55 | 56 | try 57 | { 58 | path = Path.GetDirectoryName(Properties.Settings.Default.setting_last_path); 59 | } 60 | catch 61 | { 62 | path = @"C:\"; 63 | } 64 | 65 | OpenFileDialog file = new OpenFileDialog(); 66 | file.Title = Strings.str_LoadImg; 67 | if (Directory.Exists(path)) 68 | { 69 | file.InitialDirectory = path; 70 | } 71 | else 72 | { 73 | file.InitialDirectory = @"C:\"; 74 | } 75 | 76 | if (file.ShowDialog() == DialogResult.OK) 77 | { 78 | path = file.FileName; 79 | txtPath.Text = path; 80 | 81 | Properties.Settings.Default.setting_last_path = txtPath.Text; 82 | Properties.Settings.Default.Save(); 83 | 84 | 85 | 86 | Image inputFile = Image.FromFile(txtPath.Text); 87 | Bitmap inputImg = new Bitmap(inputFile); 88 | if (inputImg.Height != 120 && inputImg.Width != 320) 89 | { 90 | inputImg = ResizeImage(inputImg, 320, 120); 91 | } 92 | pbInput.Image = inputImg; 93 | 94 | } 95 | } 96 | catch (Exception ex) 97 | { 98 | 99 | MessageBox.Show(ex.Message); 100 | } 101 | } 102 | 103 | 104 | 105 | 106 | private void btnPreviewImg_Click(object sender, EventArgs e) 107 | { 108 | 109 | try 110 | { 111 | 112 | Image inputFile = Image.FromFile(txtPath.Text); 113 | Bitmap inputImg = new Bitmap(inputFile); 114 | if (inputImg.Height != 120 && inputImg.Width != 320) 115 | { 116 | inputImg = ResizeImage(inputImg, 320, 120); 117 | } 118 | pbInput.Image = inputImg; 119 | 120 | 121 | //// Method 1: 122 | //Image img1 = ProcessImageTo1Bit(new Bitmap(ProcessImageByOrderedDither(inputImg))); 123 | //pbOutput.Image = img1; 124 | //img1.Save("outImage1.bmp", ImageFormat.Bmp); 125 | 126 | // Method 2: 127 | Image img2 = ProcessImageTo1Bit(inputImg); 128 | pbOutput2.Image = img2; 129 | img2.Save("outImage0.bmp", ImageFormat.Bmp); 130 | 131 | 132 | } 133 | catch (Exception ex) 134 | { 135 | MessageBox.Show("Exception: " + ex.Message); 136 | } 137 | 138 | } 139 | 140 | private void btnGenerate_Click_1(object sender, EventArgs e) 141 | { 142 | try 143 | { 144 | Image outImg = pbOutput2.Image ; 145 | 146 | if(outImg ==null) 147 | { 148 | MessageBox.Show(Strings.str_SelError); 149 | return; 150 | } 151 | 152 | GenerateData(new Bitmap(outImg)); 153 | 154 | MakeFile(); 155 | 156 | // MessageBox.Show(str_FileGen); 157 | } 158 | catch (Exception ex) 159 | { 160 | MessageBox.Show(ex.Message); 161 | 162 | } 163 | 164 | } 165 | 166 | private void MakeFile( ) 167 | { 168 | 169 | try 170 | { 171 | 172 | //System.Diagnostics.Process process = new System.Diagnostics.Process(); 173 | System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 174 | startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 175 | 176 | string path = Directory.GetCurrentDirectory(); 177 | path += @"\"+ _switchFightStickPath; 178 | startInfo.WorkingDirectory = path; 179 | startInfo.FileName = "cmd.exe"; 180 | // startInfo.Arguments = @"/c start /wait spMake.bat "; 181 | startInfo.Arguments = @"/c start /wait make "; 182 | //process.StartInfo = startInfo; 183 | //process.Start(); 184 | 185 | //try 186 | //{ 187 | // // Start the process with the info we specified. 188 | // // Call WaitForExit and then the using-statement will close. 189 | // using (Process exeProcess = Process.Start(startInfo)) 190 | // { 191 | // exeProcess.WaitForExit(); 192 | // } 193 | //} 194 | //catch 195 | //{ 196 | // // Log error. 197 | //} 198 | startInfo.UseShellExecute = false; 199 | startInfo.RedirectStandardOutput = true; 200 | startInfo.RedirectStandardError = true; 201 | 202 | string output = ""; 203 | string error = ""; 204 | 205 | Process process = Process.Start(startInfo); 206 | process.WaitForExit(); 207 | using (StreamReader streamReader = process.StandardOutput) 208 | { 209 | output = streamReader.ReadToEnd(); 210 | } 211 | 212 | using (StreamReader streamReader = process.StandardError) 213 | { 214 | error = streamReader.ReadToEnd(); 215 | } 216 | 217 | if (error == "") 218 | { 219 | string hexFilePath = path + @"\Joystick.hex"; 220 | 221 | MessageBox.Show(Resources.Strings.str_FileGen+"\r\n" + hexFilePath ); 222 | } 223 | else 224 | { 225 | MessageBox.Show("Error: " + error); 226 | } 227 | 228 | } 229 | catch (Exception ex) 230 | { 231 | MessageBox.Show(ex.Message); 232 | 233 | } 234 | 235 | 236 | } 237 | 238 | 239 | public Image ProcessImageByOrderedDither(Bitmap inputImg) 240 | { 241 | try 242 | { 243 | //// OrderedDither 244 | //using (MagickImage image = new MagickImage( inputImg )) 245 | //{ 246 | // MagickGeometry size = new MagickGeometry(320, 120); 247 | // size.IgnoreAspectRatio = true; 248 | 249 | // image.Format = MagickFormat.Bmp3; 250 | // image.Resize(size); 251 | // image.Depth = 1; 252 | 253 | // image.ClassType = ClassType.Pseudo; 254 | // image.ColorSpace = ColorSpace.Gray; 255 | // image.ColorType = ColorType.Grayscale; 256 | 257 | // // pbInput.Image = image; 258 | // image.OrderedDither("o8x8"); 259 | // int totalcolor = image.TotalColors; 260 | 261 | // var colormapsize = image.ColormapSize; 262 | // Stream magicImgStream = new System.IO.MemoryStream(); 263 | // image.Write(magicImgStream); 264 | // Image outputImg = Image.FromStream(magicImgStream); 265 | 266 | // return outputImg; 267 | //} 268 | } 269 | catch (Exception ex) 270 | { 271 | throw ex; 272 | } 273 | return null; 274 | } 275 | 276 | public Image ProcessImageTo1Bit(Bitmap inputImg) 277 | { 278 | try 279 | { 280 | /// Floyd-Steinberg 281 | Image outputImg = ConvertTo1Bit( inputImg ); 282 | 283 | return outputImg; 284 | } 285 | catch (Exception ex) 286 | { 287 | throw ex; 288 | } 289 | } 290 | 291 | public static Bitmap ResizeImage(Image image, int width, int height) 292 | { 293 | var destRect = new Rectangle(0, 0, width, height); 294 | var destImage = new Bitmap(width, height); 295 | 296 | destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); 297 | 298 | using (var graphics = Graphics.FromImage(destImage)) 299 | { 300 | graphics.CompositingMode = CompositingMode.SourceCopy; 301 | graphics.CompositingQuality = CompositingQuality.HighQuality; 302 | graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; 303 | graphics.SmoothingMode = SmoothingMode.HighQuality; 304 | graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; 305 | 306 | using (var wrapMode = new ImageAttributes()) 307 | { 308 | wrapMode.SetWrapMode(WrapMode.TileFlipXY); 309 | graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode); 310 | } 311 | } 312 | 313 | return destImage; 314 | } 315 | 316 | 317 | public static Bitmap ConvertTo1Bit(Bitmap input) 318 | { 319 | /// Floyd-Steinberg 320 | /// 321 | var masks = new byte[] { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; 322 | var output = new Bitmap(input.Width, input.Height, PixelFormat.Format1bppIndexed); 323 | var data = new sbyte[input.Width, input.Height]; 324 | var inputData = input.LockBits(new Rectangle(0, 0, input.Width, input.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb); 325 | try 326 | { 327 | var scanLine = inputData.Scan0; 328 | var line = new byte[inputData.Stride]; 329 | for (var y = 0; y < inputData.Height; y++, scanLine += inputData.Stride) 330 | { 331 | Marshal.Copy(scanLine, line, 0, line.Length); 332 | for (var x = 0; x < input.Width; x++) 333 | { 334 | data[x, y] = (sbyte)(64 * (GetGreyLevel(line[x * 3 + 2], line[x * 3 + 1], line[x * 3 + 0]) - 0.5)); 335 | } 336 | } 337 | } 338 | finally 339 | { 340 | input.UnlockBits(inputData); 341 | } 342 | var outputData = output.LockBits(new Rectangle(0, 0, output.Width, output.Height), ImageLockMode.WriteOnly, PixelFormat.Format1bppIndexed); 343 | try 344 | { 345 | var scanLine = outputData.Scan0; 346 | for (var y = 0; y < outputData.Height; y++, scanLine += outputData.Stride) 347 | { 348 | var line = new byte[outputData.Stride]; 349 | for (var x = 0; x < input.Width; x++) 350 | { 351 | var j = data[x, y] > 0; 352 | if (j) line[x / 8] |= masks[x % 8]; 353 | var error = (sbyte)(data[x, y] - (j ? 32 : -32)); 354 | if (x < input.Width - 1) data[x + 1, y] += (sbyte)(7 * error / 16); 355 | if (y < input.Height - 1) 356 | { 357 | if (x > 0) data[x - 1, y + 1] += (sbyte)(3 * error / 16); 358 | data[x, y + 1] += (sbyte)(5 * error / 16); 359 | if (x < input.Width - 1) data[x + 1, y + 1] += (sbyte)(1 * error / 16); 360 | } 361 | } 362 | Marshal.Copy(line, 0, scanLine, outputData.Stride); 363 | } 364 | } 365 | finally 366 | { 367 | output.UnlockBits(outputData); 368 | } 369 | return output; 370 | } 371 | 372 | public static double GetGreyLevel(byte r, byte g, byte b) 373 | { 374 | return (r * 0.299 + g * 0.587 + b * 0.114) / 255; 375 | } 376 | 377 | 378 | public byte[] GenerateData(Bitmap bitmap) 379 | { 380 | 381 | Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height); 382 | System.Drawing.Imaging.BitmapData bmpData = null; 383 | byte[] bitVaues = null; 384 | int stride = 0; 385 | try 386 | { 387 | bmpData = bitmap.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly, bitmap.PixelFormat); 388 | IntPtr ptr = bmpData.Scan0; 389 | stride = bmpData.Stride; 390 | int bytes = bmpData.Stride * bitmap.Height; 391 | bitVaues = new byte[bytes]; 392 | System.Runtime.InteropServices.Marshal.Copy(ptr, bitVaues, 0, bytes); 393 | } 394 | finally 395 | { 396 | if (bmpData != null) 397 | bitmap.UnlockBits(bmpData); 398 | } 399 | 400 | // File.WriteAllBytes("Foo.data", bitVaues); 401 | 402 | byte[] outPixelData = new byte[bitmap.Width * bitmap.Height]; 403 | for (int i = 0; i < bitVaues.Length - 4; i = i + 4) 404 | { 405 | var v1 = bitVaues[i]; 406 | var v2 = bitVaues[i + 1]; 407 | var v3 = bitVaues[i + 2]; 408 | var v4 = bitVaues[i + 3]; 409 | 410 | if (v1 == 0x00 && v2 == 0x00 && v3 == 0x00 && v4 == 0xFF) 411 | { 412 | outPixelData[i / 4] = 0x00; 413 | } 414 | else if (v1 == 0xFF && v2 == 0xFF && v3 == 0xFF && v4 == 0xFF) 415 | { 416 | outPixelData[i / 4] = 0x01; 417 | } 418 | else 419 | { 420 | throw new Exception("Invalid Bitmap Data"); 421 | } 422 | } 423 | 424 | // File.WriteAllBytes(@"splaTuOutput.data", outPixelData); 425 | 426 | GenerateImageC(outPixelData); 427 | 428 | 429 | return outPixelData; 430 | } 431 | 432 | public void GenerateImageC(byte[] data) 433 | { 434 | 435 | string str_out = "#include \n#include \n\nuint8_t image_data[0x12c1] PROGMEM = {"; 436 | 437 | for (int i =0; i< (320 * 120) / 8;i++) 438 | { 439 | int val = 0x00; 440 | 441 | for (int j=0; j< 8;j++) 442 | { 443 | 444 | int a = (int)(data[(i * 8) + j]); 445 | 446 | val |= (int)(data[(i * 8) + j]) << j ; 447 | } 448 | val = ~val & 0xFF; 449 | str_out += "0x"+val.ToString("x") + ", "; 450 | } 451 | 452 | 453 | str_out += "0x0};\n"; 454 | File.WriteAllText(_switchFightStickPath+@"\imaget.c", str_out, Encoding.UTF8); 455 | 456 | byte[] bytes = System.IO.File.ReadAllBytes(_switchFightStickPath + @"\imaget.c"); 457 | 458 | System.IO.File.WriteAllBytes(_switchFightStickPath + @"\image.c", bytes.Skip(3).ToArray()); 459 | 460 | try 461 | { 462 | if (File.Exists(_switchFightStickPath + @"\imaget.c")) 463 | { 464 | File.Delete(_switchFightStickPath + @"\imaget.c"); 465 | } 466 | } 467 | catch { } 468 | 469 | 470 | 471 | } 472 | 473 | 474 | private void btnRunTeensy_Click(object sender, EventArgs e) 475 | { 476 | OpenFile(@"teensy.exe"); 477 | } 478 | 479 | private void OpenFile(string path ) 480 | { 481 | try 482 | { 483 | ProcessStartInfo start = new ProcessStartInfo(); 484 | start.FileName = path; 485 | start.WindowStyle = ProcessWindowStyle.Normal; 486 | start.CreateNoWindow = true; 487 | // int exitCode; 488 | 489 | using (Process proc = Process.Start(start)) 490 | { 491 | // proc.WaitForExit(); 492 | // exitCode = proc.ExitCode; 493 | } 494 | // AddLog("[OpenFile] Exit Code:" + exitCode, tab); 495 | } 496 | catch (Exception ex) 497 | { 498 | MessageBox.Show("[OpenFile]" + ex.Message ); 499 | } 500 | } 501 | 502 | private void aboutToolStripMenuItem1_Click(object sender, EventArgs e) 503 | {// Create a new instance of the Form2 class 504 | AboutBox aboutwindow = new AboutBox(); 505 | 506 | // Show the settings form 507 | aboutwindow.Show(); 508 | 509 | } 510 | 511 | 512 | 513 | #region Localize 514 | private void englishToolStripMenuItem_Click(object sender, EventArgs e) 515 | { 516 | Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en"); 517 | ApplyResource(); 518 | } 519 | 520 | private void SchineseToolStripMenuItem_Click(object sender, EventArgs e) 521 | { 522 | Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN"); 523 | ApplyResource(); 524 | } 525 | 526 | 527 | 528 | private void ApplyResource() 529 | { 530 | System.ComponentModel.ComponentResourceManager res = new ComponentResourceManager(typeof(SplaTU)); 531 | foreach (Control ctl in Controls) 532 | { 533 | res.ApplyResources(ctl, ctl.Name); 534 | } 535 | 536 | foreach (ToolStripMenuItem item in this.menuStrip1.Items) 537 | { 538 | res.ApplyResources(item, item.Name); 539 | foreach (ToolStripMenuItem subItem in item.DropDownItems) 540 | { 541 | res.ApplyResources(subItem, subItem.Name); 542 | } 543 | } 544 | 545 | //Caption 546 | res.ApplyResources(this, "$this"); 547 | } 548 | #endregion 549 | } 550 | } 551 | -------------------------------------------------------------------------------- /SplaTU/SplaTu.en.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Output Preview 122 | 123 | 124 | 125 | 126 | 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 182 | HWLCt7kCVVtZAG1ybQcuNDttFxwn6A8QHf0FBQ3/AgID/wICA/8CAgX/CgcQ/xAMGP8QChr/Ewka/xMH 183 | Gf8TCBn/EwgZ/xQHF/8WBxT/FQYT/xYHFP4cDRrsJRUif0RFRAYtKSwAAAAAAG51dQCIkI8EQUdJPyww 184 | NHMgISSQHh0gkh4dHpEdHSCRIiAmjyckLo0nIy+PKiItjioiLI0rIiyNKiErjSohKo0rICeOKSAmjywl 185 | K303MThBTUdPCUhCSQAAAAAAAAAAAIAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 186 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAQDAAAMAKAAAACAA 187 | AABAAAAAAQAgAAAAAAAAEAAAEwsAABMLAAAAAAAAAAAAAIWFhQSGhoYIhYWFB6iqqgWCgoMOWFxcX0hO 188 | TZtBSkmnQ05NskVQTrhGT064Rk9OuEZPTrhGUE+4TVZUuE9YVrVOVVKrTlRPp0tRTaFGTUiYRUxHk0hO 189 | SpNJTkmTSU1Hk0ZKRJJNUEyXX2Jhh1JWXR7g4OAEmpqaCpqamgaampoDAAAAAJKVlQAAAAAAPz4+JSEh 190 | IZkgJCPuGSMh/w8fHf8LHxz/Cx8c/w8eG/8PHRv/Dx0b/w8dG/8QHhz/EB0b/xMeGv8UHhn/FB4Z/xMd 191 | GP8THRf/EhwX/xQcFv8XHBT/FhoU/xUZFf8YGxr9DRATtR0fHzL///8BW11eAAAAAACJg4QA////AU9L 192 | S00bGBjJBgUF/wIFBP8GEhD/BRkW/wEaFv8BGBX/BBgV/wYYFf8GGBX/BhYU/wYVE/8GFBH/CRQQ/woV 193 | EP8JFQ//CBUP/wcVDv8JFQ7/ChQN/w4UDP8IDgj/AQUB/wACAf8AAgL/BgcHyiMkJD7///8BWVlZAFFL 194 | TABfWlszKSMk2QcDA/8BAQD/AAEA/wMKCf8IFhb/BhkZ/wQYF/8EGBX/BhcU/wYWE/8GEQ//AwgH/wIH 195 | Bf8EBwX/CQ0L/wwUEP8KFQ//ChUO/wwUDf8NEw3/DREN/wUIBv8AAQD/AAAA/wEAAP8BAAH/CAgIyCQk 196 | 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 238 | ///9/f///f7+//Dx8f+Miov/GxYY/wsDCP8TBw//FgYQ/xkFEv8YBxHuHBEWSwwTGhEIEBu7BA4d/wML 239 | F/8DBw//AQQM/wIEDP8CBg//BgoU/wkNGP8HDBj/CAsa/wkLG/8LCxr/CwsV/wQECv8AAAH/CAkJ/3J2 240 | dP/p7Oz//P////z////y8/P/j46P/xYTFf8HAQT/EgcP/xYHEf8YBhP/GQUS/xcHEe4cERZLGyEnDQwU 241 | ILAEDyD/Ag4f/wUPHP8FDhv/Bg0b/wYNGv8HDhr/BwwY/wgMGP8JCxr/Cwsc/w0LHP8NDBj/CggR/wIC 242 | BP8AAAD/DQ4O/3h6ev/u8PD/8fPz/4aFh/8YFBj/CAIH/xEGD/8VBxP/FwUT/xkFFP8aBhP/FwcQ6R0R 243 | Fjjn4dUDChIfigMOHv8BDh//Aw4f/wUOHv8GDRz/Bgwa/wcMGf8IDBj/Cg8Z/wsNG/8MCx3/DQkc/w0J 244 | GP8NCRX/CggN/wYECP8CAQT/FBIW/4iFif+Jhov/GBQZ/wkCCv8QBhD/FQcT/xgGFf8ZBBX/GgQV/xkE 245 | Ev8YCBHLMSQqHwAAAAAoLTZ6CRMg/wIOHv8EDh//BAwc/wUMGv8IDBn/CAoV/wYIEv8GChP/CgsZ/wwK 246 | HP8NCBv/DggZ/w8JF/8SChX/EgkU/xAHEv8NBA//GRAb/xoRHP8PBhD/EQcS/xEGEv8VBhT/GQUX/xoD 247 | Fv8aARX/GAQS+yIRG4JkWF0INz1EAFRXXSohKS/OBw8c/wQLHf8GDB7/CAsc/wQFEP8BAQf/AAAE/wAB 248 | Bv8EBA3/DAkX/w4JGf8PCRr/EAka/xQIG/8WCBv/FAYa/xMFGP8SBBj/EQMX/xQGF/8VBhb/FgUW/xgE 249 | F/8ZAhb/GwEW/xkBFP8aCxXENSkwKQAAAAB9hIIAAAAAAEdNTUMgJi7SCxAf/wgLHP8JCRn/AQEJ/wAA 250 | Av8AAAH/AAAC/wEABP8IBg7/DgoW/w8JGf8PCBv/Egca/xIFGf8SBBn/EgUZ/xMFGv8SBRn/FAUY/xcF 251 | Fv8VBBT/FQIT/xYCE/8ZBBX/Hwsb4iohJz7///8BZmhmAAAAAAB2e3wA////AE1TWDAtMzi0HB8n6hIU 252 | HPIHBw34BgYJ+AYGB/cGBgf3BgYJ9wsJEPcTDxr2FA8c9hQOHfcWDRv2Fw0a9hcNGvYXDBr2Fgwa9hYM 253 | GfYXCxf2GAsU9hcLFPYXDBX1HhMd6SUbJbkzJzJMTDhEATcpNQAAAAAAAAAAAAAAAAD///8AAAAAAGhu 254 | bxNHTE00Oj0/Vy8wMm0vLzJrMC8xai8vMGsvLzFrMTA1aDYzPGU3Mz5mNzI+aDkyO2c6MjplOjI6ZToz 255 | O2U6MjplOTI6ZToyOGY6MTZnOTE1ZzgzN2JDP0M+WVZaE////wCQk5MAAAAAAAAAAAAAAAAA4AAAA4AA 256 | AAGAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 257 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAcAAAAHgAAAD8AAADygA 258 | AAAwAAAAYAAAAAEAIAAAAAAAACQAABMLAAATCwAAAAAAAAAAAACFhYUEhoaGDIaGhgyGhoYMg4SEDIOE 259 | hAyJi4sLqKqqCXF1dEJeY2JZWV9eZVxkY3ZeZmWBYGhnimBoZ4xgaGeMYGhnjGBoZ41gaGeNYWlojWBp 260 | aI1ocG+Nb3d2jW92dYVuc3F5bXFtc2xxbXJqbmprZWpmYV9lYFdfZGBUZWpmWGdsaFpnbGdaaGxnWmdr 261 | ZVlfY15QYGNfVGdrZ1d6fXxUiIqKJ////wCbnZ0JmJiZEJiYmBKampoLm5ubBJmZmQeFhYUAhoaGAIaG 262 | hgCGhoYAwcXFACUnJwBiYmIWQ0VFZkRJSOA3PTz/KjMy/iYyMf4kMjH+JDMx/iUzMf4nMjH+JzIx/icy 263 | Mf4nMjH+JzIx/iYyMP4qNTP+KjUz/ik1Mv4tNjP+LzYx/i82Mf4vNjH+LjYx/i41MP4tNTD7LDQv9Sw0 264 | LvMtNC7zLjMs8y4zLPMvMy36MDQv/jY6Nv5HSUj/OT1BvB4lLzDr59wCT1FSAJmZmQCampoAm5ubAJmZ 265 | mQAAAAAAAAAAAAAAAACmqakAwMPDAkpJSTwhICC/FRcX8hUaGv8PGBf/CRgW/wUYFf8DFxT/ARgU/wIY 266 | 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 336 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8NDxH/cnZ3/+Ll5f/7/Pz//f78//39/P/9/fz//Pz7//r7 337 | +//9/v7//////////////////v7+//z8/P/8/Pz//Pz8/9ra2v9sbGz/FRUW/wAAAf8CAgT/AwED/wkG 338 | CP8PCw3/DgoM/wYBA/8FAAH/AgAB/wAAAP8AAAD/AwMDrRERERYAAAAAAAAASAEAAOUCAAD/AgAA/wAA 339 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8AAAL/GBsd/4KGh//l6On/+vz9//r8 340 | /P/7/Pz//P38//39/P/+/v7///////////////////////39/f/8/Pz//Pz8//r6+v/e39//goOE/x0e 341 | H/8AAAL/AwID/wQCA/8LCAn/EAoN/wkDBf8FAAH/AwAA/wEAAP8AAAD/AwMDrRERERYAAAAAAAAASAEA 342 | AOUCAAD/AgAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAQP/AgQI/yEl 343 | KP+Mj5L/6+/x//j8/f/6/Pz/+/v7//39/P/+/v7///////////////////////z8/P/6+vr//f39//z8 344 | /P/7+/v/5ujp/4uMjf8bHB3/AgAC/wQCA/8HBAX/DwoM/wwGCP8GAAL/BAAB/wIAAP8BAAD/BAMDrRER 345 | ERYAAAAAAAAASAIBAeUDAQH/AQAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 346 | Af8BAQP/AwUI/wgMEf8kKC3/lpqf/+nt8f/6/P7//Pz8//38+//+/f3//////////////////v7+//39 347 | /f/8/Pz//f39//39/f/8/Pz/+/39/+rs7P+UlJX/KCYn/wMCAv8DAAH/DAcI/xAKC/8LBQb/BwID/wQA 348 | AP8EAAD/BwMDrRMRERYAAAAAAAAASAICAuUDAQH/AgAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 349 | AP8AAAD/AAAA/wAAAf8AAAH/BggL/wsQFv8HDRT/KC42/5mepP/t8fT/+/z8//z7+v/+/f3//v7+//7+ 350 | /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/9/v7/+/39//r8/P/v8PD/paSk/zQyMv8GAwT/BwID/w0I 351 | Cf8PCQr/DQcI/woEBP8GAQL/CAQErBYSExYAAAAAAAAASAEBAeUDAQH/AgAA/wAAAP8AAAD/AAAA/wAA 352 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAH/BggM/wgPFv8GDhf/BxAZ/y82Pv+ssLT/8/T1//79 353 | /P/+/v3//v7+//39/f/9/f3//f39//7+/v/////////////////+////+/39//r8/P/8/P7/8/L0/7Kv 354 | sf8/PD3/CQQG/wsFB/8QCQz/EAgK/xMJC/8RCQr/EQoKqhoVFhUAAAAAAAAASAAAAOUCAAD/AgAA/wEA 355 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAL/BggO/wgNF/8GDhr/BQ4b/wcO 356 | Gf86PkT/s7O2//n49//+/f3//Pz8//7+/v/9/f3//f39///////////////////////+/////P7+//v8 357 | /f/8/P3//fz+//n3+f/Cv8H/SENF/w0HCv8PBwv/EwkM/xUJC/8UCQv/FwwOqSEaGxQBAQEAAQEBSAIB 358 | AeUCAAD/AgAA/wEAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAgT/CQsR/wgO 359 | GP8FDhv/Awwb/wYNGv8LDhf/Pz5B/7u5t//5+Pf//f39//7+/v/7/Pv//f39//////////////////// 360 | ///+/v//+/3+//v9/f/8/P3//fz9///9/v/t6uz/d3J0/xUPEf8QCQz/FgwO/xUICv8UBwn/FgsNnCUd 361 | HgwDBAUAAwQFNQMDBNoBAAH/AQAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 362 | Af8EBQj/Cw4V/wcOGf8FDRz/BAsc/wgOHP8IChP/BwcJ/0hGRf/HxcT/+vn6//7+/v/9/f3//fz9//7+ 363 | /v/////////////////+////+/3+//r8/P/8/P3//vz+//Lw8v+gnJ7/Miwv/xEKDf8RCQ3/FQkN/xYI 364 | C/8UBwr/FAgLkjUvLwUNEBYADRAWMQQIDdcAAQX/AAAD/wIBAP8CAQD/AgEA/wIAAP8CAAD/AQAA/wEA 365 | Af8BAAL/AAAB/wACBf8FChP/CA0Z/wcMGv8JDRz/BQkY/woMGf8IChL/AAEF/wMDBf9NTE3/zszN//z6 366 | +//++/3//fv9//79/////v////7////+///9/f7/+vz7//r8+//8/fz/7+7u/5iVlv8nICP/DgYL/xQJ 367 | D/8VCQ//FwcQ/xkGEf8WBg7/GAwRriIcHRcNExoADhMaTAkQGOcCBg3/AAAG/wABAf8BAAD/AQAA/wEA 368 | AP8BAAH/AQAB/wAAAv8AAAP/AQEF/wMFDP8HDRj/Bw0a/wcMGv8JDBz/CAoY/wsMGf8KDBX/AwQI/wAA 369 | Af8JCQr/WVdZ/87Nz//7+fv//fz+//79///+/f///v3///79///9/f7/+Pr5//v8+v/r7Ov/mZeX/ysm 370 | J/8JAgX/EQcN/xMIDv8VCBD/FwUR/xoGE/8XBhD/GQwTsSEbHRkJERkACREZTwgRGukGDRn/AgUQ/wAB 371 | BP8AAAH/AAAC/wAAAv8AAAP/AAAD/wAAA/8BAgj/BggP/woMFv8JDxr/BgwZ/wcMGv8JDBv/CQsZ/woL 372 | GP8LDBb/BQUL/wAAAv8AAAH/CAkJ/1laWv/U1dX/+fr7//z9/v/8/f7//P3+//z9/v/8/f7/+/z7/+3u 373 | 7f+Ni43/Ix8g/wYBA/8LAwj/EgcN/xQHD/8UBg//GAUS/xoGE/8XBhD/GQwTsSEbHRkLEhsACxIbTQcP 374 | GugFDh3/BA0c/wMIEf8CBQz/AQMK/wABCP8BAgj/AQIK/wEEDf8ECBL/CQ0X/woOGf8HDBj/BwwZ/wgL 375 | Gv8JCxv/Cgsa/wsLGf8MDBb/CAgP/wEBBv8AAgL/AAEA/woMC/9scG//3uHg//v+/v/7/v7/+/7+//v+ 376 | /v/9//7/7u7u/5STk/8fHB7/BAAC/wcCBf8RBw7/FQgR/xYHEf8YBxP/GQUT/xoGE/8XBhD/GQwTsSEb 377 | HRkMExwADBMcTQkRHegFDh//Ag0f/wUPHf8FDhn/BAwX/wQKFf8EChX/BAsW/wUMF/8HDRj/CA0Z/wYL 378 | GP8GCxf/CQwa/wkLGv8KChv/DAsc/w0MG/8NDBj/DQwV/wYFDP8AAgP/AAIB/wABAP8VGBf/c3d2/93h 379 | 4P/7/v3/+/79//z//v/p6+v/j42Q/ygkJ/8FAAT/BwEG/w4EDP8TBxH/FQcS/xYFEv8YBRP/GAQS/xoG 380 | E/8WBg//Gg0TsCMeHxgXHiYAGiEpPQwUIN4FECD/AQ4h/wIOHv8EDx3/BQ8d/wYPHf8GDx3/Bg0c/wYN 381 | G/8HDhv/CA4a/wcMGP8IDRf/CQ0Z/woKGv8KCxz/DQse/w4LHP8NCxn/DgwX/woHEP8CAgX/AQIC/wEB 382 | Af8BAQH/FBUV/3d5ef/m6On//P7+/+rs7f+FhYf/Hhsf/wYABf8IAgj/EQcP/xMHEv8VBxP/FwYT/xgF 383 | FP8ZBRT/GwUU/xsHFP8XBhD/FwkRk1BRTQW4t7MCLjQ7FAcPHMIEDh3/AA4g/wEOH/8DDR7/BA4e/wUO 384 | Hv8GDh3/BQwa/wYMG/8HDRr/BwsY/wcLF/8KDhj/Cg4Z/wsMG/8MCx3/DQod/w4KHP8NChn/DQkW/w0J 385 | FP8JBw3/BQQH/wMCBf8DAwb/AAAC/xsaHf+QjpL/29nd/5GQk/8eHCD/BQAG/wwEDP8NBA7/EQYR/xUH 386 | FP8YBxX/GAUV/xoEFv8aBBb/GwQV/xkFEv8VBA77HA0VeP///wCIiooCeHd6DgsSHrcGDx3/Ag4f/wIO 387 | H/8EDx//BA0e/wQMHP8GDRv/Bw0b/wcMGf8HCxj/CQwY/woNGP8KDxj/DA8a/wwNHP8MCx3/DAkc/w0J 388 | HP8OCRr/DAgW/w8LF/8QDBT/DggQ/w0HD/8IBAv/CAMK/wgDCv8qJSz/WlRc/yslLf8KBAv/DQUO/xAH 389 | Ef8QBxH/EwYS/xcHFf8ZBhb/GQUW/xoEFv8aAxb/GQIS/xgEEf8ZCBLcMiQrQ7q3tQN9fIAAhYKFDTU5 390 | QawLFCD/AQ4d/wIOH/8EDh//BA0e/wQMHP8ECxr/BgwZ/woNGf8JDBf/BggS/wQGEP8DBxD/BgkT/wsL 391 | Gv8MChz/DAkc/w0IG/8OCBr/DQgX/xAKF/8TChb/EggV/xQKFv8TCBT/EQYT/xAGEv8PBRH/EwgU/xIH 392 | FP8RBxP/EQcT/xEHEv8QBhH/EgUS/xYGFf8YBRf/GgQW/xkCFf8aABb/GwIV/xgEEfkhEBqRUkNLH1JD 393 | SwChnaAA////AF1gZkEkLDPhCRIc/wQNHP8DCx3/BQ0e/wYMHv8IDR3/BwoZ/wMED/8BAQn/AAAG/wAA 394 | Bf8AAAf/AQIK/wYGEf8LChj/Dgob/w0IGv8PCRr/Dwka/xAJGf8TCBr/GAoc/xYJG/8WCBr/EwUX/xMF 395 | F/8TBRj/EgQW/xEDFf8TBhf/FQcW/xQGFf8WBhb/GAYX/xgFFv8YAxb/GQEV/xsBFv8aABX/FgIS/xgK 396 | E9c2KjFErZ6lAYR1fQAAAAAAY2prAJqhogRMU1NuICcr7wcOGv8FCx3/Bwwf/wcKHf8KCh7/BgUU/wAA 397 | CP8AAAP/AAAB/wAAAv8BAAT/AAAE/wIBB/8JBxD/DwsX/w8KGP8PCRr/Dwoc/xAJHf8TBx3/FAYc/xQF 398 | HP8TBRv/EwQb/xQFG/8UBRv/EwQb/xMEG/8TBBn/FgUY/xcFGP8WAxb/GAQX/xgDFv8ZAhb/GQEW/xwC 399 | F/8ZART/GAgU2yonKFt1dHQLLSssAAAAAAAAAAAAAAAAAGJoZwBwdnMLSU9RciIpMeYLER7/CQ0c/wgK 400 | Gv8KCxv/BQUR/wAABv8AAAP/AQEB/wEBAf8AAAH/AAAD/wEABP8GBAz/DQkT/w8KF/8PChn/Dwka/w8J 401 | G/8RBxr/EgYZ/xIFGf8RBRj/EQUY/xMGGf8TBhn/EwYZ/xIGGf8TBRj/FwYX/xcGFv8VBBT/FQMT/xUC 402 | Ev8VAhL/FgQU/xgEFP8fDBv/KhsnhG13cAj///8AgIGBAAAAAAAAAAAAAAAAAAAAAAB+g4QAhYuLBlZc 403 | YU4rMjfRGh8m/xMVHv8OEBr/BQYM/wAABP8AAAL/AAAB/wAAAP8AAAD/AAAB/wAAA/8DAQj/CgcQ/w4K 404 | Ff8OCRb/DgkX/w4IF/8QBxb/EQYV/xEGFf8RBhX/EQYV/xEGFf8RBhX/EAUU/xAFFP8RBRL/EQQP/xEE 405 | Dv8SBA//EQQO/xEFD/8XCxX/GxEb+yAVH942KTWIPTA7DDwuOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 406 | AAAAAAAAf4aGAP///wFmbW42RUpNhzA0N5wrLjK5HyAk0BobHtkbGx7WGxsd0xsbHNUbGxzVGxsd1Rsb 407 | HdUcGyDTIh8ozyYiLM8mIi3PJSEt0CUhLdIoICvRKCAqzykgKs8pICrPKSAqzykgKs8oICnPKB8pzygf 408 | Kc8oHyjPKR8l0CkeJNEoHiTQJR0i0ichJskwKjCqOTM6f1JNUzt6d3wJVlJXAAAAAAAAAAAAAAAAAAAA 409 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AIaMigtkaGceT1BRLUlKTDNMTE4xTk1PL01M 410 | TjBNTE4wTUxOMExMTzBOTVEvUU9VLFFOVyxRTlcsUU1XLVBMVi5STVUuVE5ULFROVCxUTlQsVU5VLFVP 411 | VSxVTlQsVU5ULFROVCxVTlMsVU1RLVVNUC5VTlEtUUxOLlZSVSlzcnQUxMbGA8LExAAAAAAAAAAAAAAA 412 | AAAAAAAAAAAAAAAAAAAAAAAAAEAAAPwAAAAAHwAA8AAAAAAPAADgAAAAAAcAAMAAAAAAAwAAwAAAAAAB 413 | AACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAA 414 | AAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAA 415 | AACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAA 416 | AAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAA 417 | AACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAgAAAAAABAADAAAAAAAEAAMAA 418 | AAAAAwAA4AAAAAAHAADwAAAAAA8AAPgAAAAAHwAA/wAAAAB/AAAoAAAAQAAAAIAAAAABACAAAAAAAABA 419 | AAATCwAAEwsAAAAAAAAAAAAA////AIWFhRGHh4cRhoaGEYaGhhGGhoYRgYKCEYOFhRGHiYkRgYKCEYKE 420 | hBF/goIRgIKCEH6Dghp+g4IxfoOCQH2Dgkp9g4JWfYKBXXyCgFx7goFde4KBXHuCgV17goFde4KBXXuC 421 | gV19hINdeoGAXYSKiV2Ql5ZdlJqZXZabmlCWmZhDlZiWOZaZljmWmZc4lpmXL5eZlySWmZcal5mXDpeZ 422 | lw2WmZcXl5mXIJaZlyCWmZUglpqVIJWZlCCVmZQglZmUC5WZlAmWmZcQlZeVEZqcnAyZm5sEk5WVApye 423 | ngaYmpoMmpydEpaWlhqZmZkampqaEZqamgicnJwDmZmZDP///wD///8A////AP///wD///8A////AP// 424 | /wD///8A////AP///wB1d3cPZ2tq/1RZWP9ITk3/RU1M/0JMS/9BTEv/QU1L/0FNS/9CTUv/QkxL/0NM 425 | S/9CTEv/Q0xL/0NMS/9CTEv/RE5M/0JMS/9HUU//TFVU/0lTUf9KVFL/TlVT/1BVUf9QVlH/UFZR/1BW 426 | Uf9QVlH/T1ZR/1BWUf9QVlH7T1ZR8FBWUehPVlHoUFZR6FFWUOhSVlDoUVVP6FFVUPRSVlH/U1dS/1pe 427 | Wv9rbmz/foCA/42PjwQGDhsA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// 428 | /wD///8A////AP///wD///8A////AHZ1dQ9WVlaLNjk5/yguLf8dJCP/EBoY/wwZF/8JGBb/BxgW/wYY 429 | Fv8HGRf/CBkW/wsYFv8LGBb/CxgW/wsYFv8LGBb/CxgW/woXFf8JFhT/CxgW/wwYFv8HFBL/CRYT/wsW 430 | E/8NFhH/DRYR/w0WEf8NFhH/DRYR/wwVEP8MFQ//DBUP/wwVD/8MFQ//DBUP/wwUD/8NFA3/DxML/w4T 431 | C/8OEgv/DhIM/w4SDf8TFxP/Gx4c/yMlJf8HDxzxWVtcOIyOjwb///8A////AP///wD///8A////AP// 432 | /wD///8A////AP///wD///8A////AP///wD///8A////AGpoaEYmJSX/BwcH/woNDP8SGRj/DRYV/wsZ 433 | F/8JGhf/BhkW/wQZFv8CGhb/ABoW/wIZFf8FFxT/BxYU/wYWFP8HFhT/BxYU/wYWFP8HFhT/BxcU/wcX 434 | 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 518 | GP8PGRn/BhIT/wwZGf8NGxr/CBYW/wkVFf8QGRn/DRMU/2JkZf/Q0NL//Pv9//r6+v/9/f3//v7+//39 519 | /f/9/f3//v7+//39/f/7+/v//v7+//z8/P/+/v7//f39//n6+v/a3Nz/Z2lp/w8REP8CBAP/AAMC/wIE 520 | BP8JCwv/DhER/w4REf8MDw//DA8P/woMDP8LCwv/Dg4O/w8PD/8ODg7/Dg4O/w4ODv8NDQ3/CgoK/wUF 521 | Bf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w0NDVz///8A////AP///wAJFxmRBxYZ/wgX 522 | Gv8HEhb/DBMW/wcLDf8AAAH/AAIC/wABAf8AAQH/AAEB/wMNDf8JFBT/DxYW/1ZZWv/a2dv//vz+//78 523 | /f/+/v7//Pz8//r6+v/8/Pz//Pz8//j4+P/+/v7//f39//r6+v/+/v7/+vr6///////8/f3/+fv7/+Hj 524 | 4/9lZmb/BwgI/wAAAP8DBQX/BAYG/w4PD/8OEBD/DQ8P/w0PD/8MDg7/DAwM/w0NDf8PDw//Dg4O/w0N 525 | Df8PDg7/ERER/w8PD/8JCQn/BAQE/wEBAf8BAQH/AgEB/wAAAP8AAAD/AAAA/wAAAP8NDQ1c////AP// 526 | /wD///8ADBgajwkUF/8FDxP/AAcL/wAAA/8AAAH/AAAB/wAAAf8AAAH/AAEB/wABAf8ABAT/AAEB/yos 527 | Lf++wcL/+fn6//78/f/+/f7//v7+//7+/v/+/v7//Pz8//z8/P/+/v7///////////////////////// 528 | /////////f7+//n7+//5+/v/4ePj/29xcf8ZGxv/BAUF/wABAf8EBQX/BwkJ/wwODv8OEBD/Cw0N/w4O 529 | Dv8RDw//EhAQ/xIQEP8SEBD/EA4O/xAODv8PDQ3/Dw0N/xAODv8KCAj/AwEB/wIAAP8AAAD/AAAA/wAA 530 | AP8AAAD/DQ0NXP///wD///8A////AA4YGowGDhH/AAQH/wABBP8AAAT/AAAA/wAAAP8AAAD/AAAA/wAB 531 | AP8AAQD/AAEA/wMGBv8TFRb/kJGR//Dw8P/7+fr//fz8//z8/P/6+vr/+fn5//z8/P/8/Pz//Pz8//// 532 | //////////////////////////////7////3+Pj//f7+//v8/P/l5ub/k5OT/yIiIv8BAgL/AgMD/wQE 533 | BP8NDg7/DxAQ/w4ODv8ODQ3/EA4O/xAODv8RDw//EQ8P/xAODv8QDg7/Dw0N/w8NDf8PDQ3/CQcH/wMB 534 | Af8CAAD/AAAA/wAAAP8AAAD/AAAA/w0NDVz///8A////AP///wAFDA+XAAUI/wAABP8AAAP/AQAC/wEA 535 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEDA/8AAQH/AQIC/yEhIf+ioqL/8/Ly//7+/v/+/v7//v7+//z8 536 | /P/7+/v//Pz8//r6+v/////////////////////////////////4+Pj/+/v7//7+/v/8/Pz/+vr6//b2 537 | 9v+hoaH/IiIi/wAAAP8AAAD/BgYG/w8PD/8NDQ3/EA4O/xAODv8QDg7/EQ8P/xEPD/8RDw//EA4O/xAO 538 | Dv8QDg7/DQsL/wgGBv8DAQH/AgAA/wAAAP8AAAD/AAAA/wAAAP8NDQ1c////AP///wD///8AAAECpwAA 539 | Av8AAAP/AQAD/wMAAf8BAAD/AQAA/wIAAP8CAAD/AgAA/wIAAP8CAAD/BgQE/wMBAf8FBQX/IyMj/7Cw 540 | sP/29vb//Pz8//z8/P/+/v7/+/v7//z8/P///////////////////////////////////////Pz8//z8 541 | /P/9/f3//Pz8//7+/v/4+Pj/+vr6/66urv8rKyv/CwsL/wAAAP8ICAj/DAwM/xAODv8RDw//EQ8P/xIQ 542 | EP8RDw//Dw0N/w8NDf8QDg7/EA4O/wsJCf8FAwP/AgAA/wIAAP8AAAD/AAAA/wAAAP8AAAD/DQ0NXP// 543 | /wD///8A////AAABAqcAAAL/AAAD/wQAA/8FAAH/AAAA/wEAAP8CAAD/AgAA/wQAAP8EAAD/CQID/wcC 544 | A/8GAgL/AgEB/wABAf8QExP/rK6u//T09P/4+Pj//v7+//v7+//8/Pz//Pz8//////////////////// 545 | //////////////39/f/4+Pj//Pz8//v7+//7+/v//f39//v7+//09PT/srKy/0FBQf8CAgL/AQEB/wIC 546 | Av8KCAj/DgsL/xANDf8SDg//EQ4P/w8MDf8PDA3/EQ4P/xEOD/8KBwf/BQIC/wMAAf8CAAD/AAAA/wAA 547 | AP8AAAD/AAAA/w0NDVz///8A////AH+DggMAAQKnAAED/wEAAv8FAAL/BQAC/wAAAP8AAAD/AQAA/wQA 548 | AP8EAAD/BQAA/wgCAv8GAQH/BAEB/wAAAP8AAQH/AgQD/zc6Of+ztbX/+Pn5//39/f/7+/v//Pz8//z8 549 | /P/////////////////////////////////9/f3//f39//7+/v//////+/v7//7+/v/8/Pz//Pz8//X1 550 | 9f/BwcH/U1NT/wAAAP8CAgL/AwEB/wcEBP8MCQn/EA0N/xIODv8RDA3/EQwN/xMOD/8TDg//CgUG/wYB 551 | Av8FAAH/AwAA/wAAAP8AAAD/AAAA/wAAAP8NDQ1c////AP///wB8fX0OAgQEjwAAAP8BAAD/BAAA/wUD 552 | A/8AAAD/AAAA/wAAAP8CAAD/AgAA/wIAAP8CAAD/AgAA/wEAAP8AAAD/AAAA/wAAAP8EBgb/QURF/8jM 553 | zf/8/f7//P7+//3+/f/+/v3////+//39/P/8/fv//f78//r7+f/7/f3//f39//7+/v////////////7+ 554 | /v/+/v7//v7+//v7+//8/Pz/+Pj4/9vb2/9OTk7/AQEB/wAAAP8CAQP/AQEB/wUEBv8KBwj/EAwO/xEO 555 | EP8QDQ//Eg0P/wkEBv8FAAH/BQAB/wQAAf8AAAD/AAAA/wAAAP8AAAD/DQ0NXP///wD///8A////AAAA 556 | AJEDAgL/AgAA/wIAAP8BAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 557 | AP8AAAD/AAAB/wAAA/86PT//yc3O//f6+v/6+/v//P37//7+/f/+/v3//v79//7+/f/5+vn/+Pr6//3+ 558 | /v////////////////////////////7+/v/7+/v//f39//r6+v/8/Pz/2NjY/2VlZf8NDg//AAAB/wEB 559 | Av8EBAb/AAAB/wQBA/8MCQv/DgsN/xIOEP8KBQf/BQAB/wUAAf8EAAH/AAAA/wAAAP8AAAD/AAAA/w0N 560 | DVz///8A////AP///wAAAACRAgEB/wIAAP8CAAD/AQAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 561 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8AAgX/AAMF/1NXWP/Kzs7/9vn6//v9/f/7/f3/+vv7//n5 562 | +f/8/fz//f78//z8/P/+/v7////////////////////////////+/v7/+vr6//z8/P/+/v7/+fn5//n5 563 | +f/W1tb/fH1+/xYXGP8AAQL/AQED/wEBAv8DAQL/BAED/wsICv8SDQ//DQcK/wYAAv8FAAH/BAAB/wIA 564 | AP8AAAD/AAAA/wAAAP8NDQ1c////AP///wD///8AAAAAkQEAAP8CAAD/AgAA/wIAAP8AAAD/AAAA/wAA 565 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAED/wABA/8PEhX/YGRm/9HU 566 | 1f/3+vv/+Pv8//r9/f/9/v7//Pz8//39/P/+/v3//v7+//////////////////////////////////7+ 567 | /v/8/Pz//f39//v7+//7+/v//Pz8/+bo6f+PkZL/HB0e/wAAAf8CAQP/BwUG/wIAAf8IBQf/EAsN/w8K 568 | DP8IAgT/BQAB/wQAAf8CAAD/AQAA/wAAAP8AAAD/DQ0NXP///wD///8A////AAAAAJEBAAD/AgAA/wIA 569 | AP8BAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAB 570 | Av8AAgb/BAYK/xQYG/9hZGj/3uLk//f7/f/2+fr/+Pr6//z8/P/4+Pj//v79//7+/f////////////// 571 | //////////////7+/v/7+/v/9vb2//39/f/9/f3//Pz8//r6+v/2+Pn/7O7v/5GTlP8aGxz/AAAB/wQB 572 | A/8GAwX/BAED/w0ICv8QCw3/CwQH/wYAAv8FAAH/AwAA/wIAAP8BAAD/AQAA/w0NDVz///8A////AP// 573 | /wAAAACRAwIC/wMBAf8CAAD/AQAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 574 | AP8AAAD/AAAA/wAAAP8CAwT/AAAC/wUIDP8KDhP/Cw8U/3t/g//e4uf/9/v9//r8/v/9/v7/+/v7//79 575 | /P/+/f3////////////////////////////+/v7//v7+//v7+//9/f3//v7+//7+/v/8/Pz//P39//r8 576 | /P/p6+v/n6Cg/x4eHv8FAwP/AgAA/wIAAP8IAwT/EAsM/xAKC/8KBAX/CQME/wQAAP8EAAD/BAAA/wQA 577 | AP8PDQ1c////AP///wD///8AAAAAkQMCAv8DAQH/AgAA/wEAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 578 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAQL/AAEC/wAAAv8MDxP/DREX/wsQFv8KEBb/eHyD/9vf 579 | 5P/0+Pz/+/39//v7+//8+/r//v38//7+/v///////////////////////v7+//z8/P/9/f3//f39//39 580 | /f/8/Pz//f39//z9/f/6/Pz/+vz8//Dx8f+urq7/ODY2/wIAAP8DAQH/BgEC/w0ICf8SDA3/DggJ/wwG 581 | B/8IAwP/BQAB/wQAAP8EAAD/EQ0NXP///wD///8A////AAAAAJECAgL/BAIC/wIAAP8BAAD/AAAA/wAA 582 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8AAAL/DBAV/wcO 583 | Ff8HDhb/Bw4W/xogKf9+hIz/5ejt//v9/f/7+/v//Pv6//7+/f/+/v7//v7+//39/f/9/f3//v7+//7+ 584 | /v/////////////////////////////////7/f3/+/39//n7+//8/f3/9vb2/7i2tv9BPz//CQcH/wYB 585 | Av8GAQL/CwYG/xAKC/8PCQr/EgoL/w0FBv8KBAT/BgEB/xMOD1r///8A////AP///wAAAACRAQEB/wMB 586 | Af8CAAD/AQAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 587 | AP8AAAH/AAAC/wsPFf8HDhb/Bw4X/wUOF/8HEBr/GyIq/5aan//r7PD/+vr6///9/P/+/v3//v7+//7+ 588 | /v/8/Pz//f39//7+/v/8/Pz//////////////////////////////////P7+//v9/f/5+/v/+/v9//z7 589 | /f/39vf/xMHD/1FOUP8IAwX/BwIE/w4HCv8TDA//DAUI/xIJCv8VCgz/FQ0O/xEJCv8YEhNW////AP// 590 | /wD///8AAAAAkQAAAP8CAAD/AgAA/wIAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 591 | AP8AAAD/AAAA/wAAAP8AAAD/AAAB/wEBB/8JDRX/CA0X/wcOGv8EDRr/CBEe/wQMFf8nKzL/mpuf//X1 592 | 9f/+/fz//v38//z8/P/8/Pz///////7+/v/9/f3//f39//////////////////////////////////z+ 593 | /v/8/v7/+vz9//39/v/7+vz//v3+//r3+f/Sz9H/ZmJk/wgEBf8MBQj/DQYJ/xIJDP8UCQv/FAgK/xUK 594 | DP8VCgz/HhYXUv///wD///8A////AAAAAJEBAAD/AgAA/wIAAP8DAQD/AAAA/wAAAP8AAAD/AAAA/wAA 595 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8HBwz/CQ0V/wgNF/8GDhr/BA0b/wIL 596 | Gf8JDxv/Cw8Y/yUmK/+op6f/8u/t//79/f/9/f3//Pz8///////8/Pz/+/v7//////////////////// 597 | ///////////////////6/P3//P7+//n7/P/8/P3//Pv9//38/f/9+/3//fv9/83Iyv82MTP/FA0Q/xAJ 598 | DP8RCQz/Gg4Q/xQHCf8RBQf/EwgK/x4VFlT///8A////AP///wACAgKPAwIC/wIAAP8CAAD/AgAA/wAA 599 | AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAH/DAwQ/wkN 600 | Ff8HDhn/Bg4c/wIMHP8FDR3/BAsZ/w0RG/8CAgf/LSsr/7Ctq//18/H//Pz8//7+/v/9/f3/+/v7//v7 601 | +///////////////////////////////////////+/3+//z+/v/7/f3//Pz9//38/f/9+/3///3+//Hv 602 | 8P+wq63/KCIk/w8IC/8PCAv/Fg4R/xYKDP8VBwn/FgkL/xYKDP8gFRci////AP///wD///8AAwQFYQMD 603 | BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA 604 | AP8AAQH/AAED/w4PFP8JDRb/Bw4a/wYOHP8CCxz/BQwc/woQHf8KDRb/AQIG/wgHCP83NDP/vry7//Pz 605 | 8////////f39//39/f/+/v7/+/v7//////////////////////////////////z+///6/Pz/+fv7//z8 606 | /f/+/f///vv9//Ty9P+tqav/Mi0v/w8IC/8TDA//EAkM/xIJDP8XCAz/FggL/xUGCv8QBAf/IBYYIf// 607 | /wD///8A////AAwPFE0BBQr/AAAD/wAABP8AAAH/AwIA/wMBAP8CAQD/AwEA/wIAAP8CAAD/AgAA/wEA 608 | AP8CAAH/AQAC/wEAAv8AAAH/AAEG/wQJEf8KDxr/BgsY/wcMGv8KDx7/BgoZ/wMGFf8MDhr/CgwV/wEB 609 | Bv8AAQP/AAAB/zg2N//DwML/+vn6//77/f/+/P3//fr8//77/f///v////7////+/////v////7////+ 610 | ///6/fv//P78//r9+//7+/v//f39//Du7v+hnp//KCEk/wcBBP8VCxH/FAoQ/xQJD/8WChD/GAQQ/xoH 611 | Ev8VBQ7/FQgP/x8XGWT///8A////AP///wAPExuWBw4V/wADCf8AAAX/AAAE/wEBAP8CAAD/AQAA/wIA 612 | AP8BAAD/AgAA/wIAAP8AAAH/AQAB/wAAAv8AAAL/AAAC/wADCP8ECxb/CQ8b/wULGP8HDBv/Cw4d/wYJ 613 | GP8ICRf/DA0Z/wwNFv8CBQr/AAAE/wABAv8AAQL/U1BS/8fFx//49vj//Pr8//z6/P/+/f///v3///79 614 | ///+/f///v3///79///+/f7/+Pr5//f59v/6/Pr/+/37//Dx7/+tqqr/KCMk/wcBA/8PBQv/EggO/xIG 615 | DP8XCxL/FQYP/xgEEf8bBxT/FgUP/xcIEP8fFxpk////AP///wD///8ADBIZmQsTG/8FChP/AAEL/wAA 616 | Bf8AAQH/AAAA/wAAAP8AAAD/AAAA/wAAAf8AAAL/AAAC/wAAAv8AAAP/AAEG/wMECf8FCBH/CQ4Z/wgO 617 | G/8FCxj/Bwwb/woOHf8GCRj/Cwwa/wsLGf8MDRf/CAoR/wAAA/8AAAL/AAEC/wQDBf9FREb/zczO//j3 618 | +P/9/P7//v3///79///+/f///v3///79///+/f///v3+//3+/v/1+Pb//v79/+zs7P+fnZ3/KiYm/woF 619 | Bv8JAgX/DwUL/xMJD/8VCBD/EwYO/xYGEf8YBBH/GwcU/xYFD/8XCBD/HxcaZP///wD///8A////AAgQ 620 | GKAHEBn/CBAc/wQLGP8AAgz/AAAC/wAAAf8AAAL/AAAC/wAAA/8AAAP/AAAD/wAAA/8AAAP/AAAH/wMG 621 | Dv8KDBP/DA4Z/woQGv8HDRr/BQsY/wgMG/8KDRz/BgkY/wwNG/8JChf/CwsW/wsLFP8AAAP/AAAC/wAA 622 | Af8AAAD/AwQE/0tNTf/O0ND/8vT0//n7+//8/f7//P3+//z9/v/8/f7//P3+//z9/v/7+/v/+fr6//Hx 623 | 8f+TkZP/Gxga/wUAAv8FAAL/CgMH/w8FDP8TBw7/FAcP/xMFDv8XBxL/GAQR/xsHFP8WBQ//FwgQ/x8X 624 | GmT///8A////AP///wAMExyZBQ4Z/wQNHP8GDx7/AwsZ/wEEC/8BAwr/AAIJ/wAABv8AAAb/AAAG/wAA 625 | B/8AAQn/AAIM/wMHEP8HDBX/DQ8a/wsPGv8HDRj/BwwZ/wYMGf8ICxr/CQsb/wgLGv8KChr/CgoY/wsM 626 | Fv8MCxT/AwMJ/wAABP8AAwP/AAEA/wEDA/8FBwf/YWRj/+Pl5f/5/Pv/+/7+//v+/v/7/v7/+/7+//v+ 627 | /v/8/v7//f39//Pz8/+YmJj/Hxwe/wQBA/8EAAH/BwEF/xEIDv8XChL/FgkR/xYHEf8YBxP/GggV/xgD 628 | Ev8bBxT/FgUP/xcIEP8fFxpk////AP///wD///8AChEanAgQHf8EDR7/Ag0f/wQPH/8IEBv/Bg4Y/wMK 629 | FP8CCBL/AgYP/wMGDv8CCBL/AwkT/wUKFf8HDBb/CA0Y/wgNGf8FCxf/BAoV/wgLGf8JDBv/CAsa/wkK 630 | G/8LCxz/DAsb/w0NG/8MDRn/DAsU/wsLEv8BAQf/AAID/wACAf8AAQD/AAMB/xQZF/9wdXP/3OHf//v/ 631 | /v/7//7/+//+//v//v/7//7//P/+/+/v8P+enZ//LCkr/wMAAv8HAQb/BgAE/wwECf8SBw//EgUQ/xUH 632 | Ev8VBBH/GQcU/xgFEv8YAxL/GwcU/xYFD/8XCBD/HxcaZP///wD///8A////AA0VHZkKEh7/BxEh/wEM 633 | H/8ADR//BQ8d/wUPHP8GDxv/Bg8b/wUOG/8GDhv/Bgwa/wYNGf8GDRr/Bw4a/wgOGv8HDRr/BgsY/wcL 634 | Fv8JDRn/CQwa/wkKGv8JChv/DAwe/w0LHP8ODBz/DQwZ/w0MFv8PDhf/BgQM/wAAA/8BBAP/AAAA/wAB 635 | Af8BAgH/EhQU/29ycf/e4eH/+fv7//z//v/5+/v/+/39/+7w8P+JiIr/JSEl/wUBBP8FAAT/BgAF/wsC 636 | Cf8SBxH/FAcS/xYHE/8XBxT/FgQS/xkFFP8YAxL/GQMR/xsHFP8UBA3/FwgQ/yIaHV////8A////AP// 637 | /wAhJy93ChIe/wYRIP8DESP/AA0g/wIPHv8EDx3/BA8d/wYPHf8GDx3/Bg8d/wYOHf8GDRz/Bg0b/wcN 638 | G/8IDhv/CA4a/wgNGP8IDRf/CQ4Y/woMGf8KChr/Cgob/wwMHv8NCx7/Dgwc/w0KGf8NCxj/Dw4Y/wkG 639 | D/8BAQT/AgQE/wAAAP8BAgL/AQIC/wABAf8QEhL/dXd3/+bo6f/8/v7/+/39/+zu7/+EhYb/Gxgc/wMA 640 | A/8IAQf/BgAF/xMLEv8VChP/EwcS/xUHE/8WBhP/FwUT/xgFFP8ZBRT/GgUU/x0GFf8cCBX/GgkT/xME 641 | DP9BOTwV////AP///wB7fn8GGiEqJQYOG/wEDRz/AAwf/wAPIf8BDh7/Ag0e/wMNHv8EDh//BQ4e/wcQ 642 | Hv8ECxr/BAsa/wgNHP8IDhv/Bw0a/wYJF/8GChX/CQ0X/woPGf8KDRn/Cwsb/wwLHP8NCx7/DQkc/w4K 643 | HP8NChr/DQkW/w0JFf8NCRP/CAYM/wYFCP8BAAP/AwIE/wcGCf8BAAT/AAAC/x4dIP+Vk5f/7u3v/+/t 644 | 8v+Yl5n/IB8j/wMABP8GAQb/DwYP/woBC/8RBxH/DwIO/xYHFP8YBxX/GAYV/xkFFf8aBBb/GgQW/xoE 645 | Fv8eBxb/GAQR/xMDDP8UBQ3/VUxPDP///wD///8AgoOEDgYOGwAGDhv7BxAe/wIOH/8ADR3/Ag8f/wMO 646 | H/8EDh//BA0e/wUNHf8GDhz/Bg0b/wUMGv8GChj/BQoX/wYLF/8JCxj/Cg0Y/wsQGf8LEBr/DA8b/wwM 647 | HP8MCx3/DAod/wwIG/8OCRz/DQka/w0IF/8MCBT/DwsX/w8NFP8LCQ7/CgUM/wUDCP8BAAT/AgAE/wMA 648 | Bf8DAAX/KiYs/5OQlf+TjZX/KCUq/wQABv8KBAz/CgIK/w8GEP8PBhD/EwgT/xMFEv8aCxj/GQcW/xkG 649 | Ff8ZBBX/GgQW/xoDFv8aAxX/FQAN/xkFEv8VBQ7/Hg8Xfm5laCj///8A////AJCOjgJzcnYqCBAc5AYO 650 | G/8GEyL/AAsc/wMQIP8EDyD/BA4f/wQMHf8ECxv/BAsa/wgOG/8IDhv/CQwa/wkMGf8IDBf/Cw0Y/woN 651 | GP8JDhf/Cw4Y/wwNGf8NDR3/DAsd/wsJHP8MCBv/DQkc/w8JG/8NCBj/DAcV/xAMGP8UDRj/DwkR/xIK 652 | FP8UDRb/DwcR/w0GD/8PCBH/CwQN/w0FD/8gGSL/Ixol/w8IEf8NBQ7/EAcR/xAHEf8TChT/EAYR/xIG 653 | Ev8UBRP/FQUU/xgGF/8ZBRf/GgQW/xkDFv8aAhb/GwIV/xgCEf8ZBhL/FgUP/zQlLWj///8A////AP// 654 | /wD///8Aj4yPFEdKUOsIEBv/AQ4d/wANHf8DDyD/BA4f/wQOH/8EDRz/BAwb/wQLGv8EChf/BgwZ/wwP 655 | Gv8MDhn/BwkU/wMEDv8BAw3/AQYP/wMGEP8HCRT/Cwsb/wwKHP8LCRz/DQgc/wwHG/8OCBv/DggZ/wwH 656 | Fv8RChf/EwoX/xIIFP8SBhT/EwkV/xQJFf8TBhT/EQYT/xIHE/8QBBL/DwUR/xMGFP8TCBX/EQcT/xMJ 657 | FP8QBhL/EAYS/xAGEf8PAw//FAUT/xcHFv8YBhf/GQQX/xoDFv8ZARX/GgAW/xoAFf8eBhf/FQMO/xsK 658 | FINnWGA2////AP///wD///8A////AP///wB4eoBOIigw/woUHf8DDhr/Awwd/wMMHf8EDB3/Bg4f/wcN 659 | H/8HDR3/CQ4d/wYIF/8CBA7/AAAJ/wAABv8AAAb/AAAG/wAABv8AAAj/AwQN/wkIFf8LChn/DAoa/w4K 660 | HP8MBxn/Dgga/xAKG/8OCBj/EAkZ/xEHF/8ZDB3/Gg0d/xYJGv8XChv/FAcY/xEEFP8TBRb/EwYX/xQH 661 | GP8RAxT/DgIS/xQHGP8UBxX/FAcV/xIFE/8WBxb/GAkY/xgFF/8YBRb/GAMW/xkDFv8aABX/GgEV/xoA 662 | Ff8ZABT/FAIQ/xUGD/88MDde////AP///wD///8A////AP///wD///8A////AGFoaZYaISP/CxMa/wUL 663 | G/8CCBv/BAod/wkNIP8FCRz/CQoe/w4NH/8BAA7/AAAK/wAABP8AAAP/AAAA/wABA/8BAQX/AAAF/wAA 664 | Bf8CAQn/CQgR/xENGf8PChj/DwkY/w8JGv8QChz/EAod/xAJHf8TCB3/FQYd/xYGHf8VBRz/FQUc/xQE 665 | G/8UBBv/FAQb/xQEG/8TAxr/EwMa/xMDGv8TAxr/FQUY/xkIGv8XBhn/FgMX/xgFGP8ZBBj/GQMW/xkC 666 | Fv8WABP/GgAV/x4CGP8aABX/GQMU/xEJDv8uKyxieXZ3GP///wD///8A////AP///wD///8A////AP// 667 | /wCNkpEHVlxbvhMaHv8GDBn/CA0e/wkNIP8ICx3/CAod/woKHv8JCBr/AAAK/wAABv8AAAP/AAAB/wAA 668 | AP8AAAH/AQAC/wAAA/8AAAP/AQAF/wcEDP8NCRT/DwsX/w8KF/8PChn/Dwka/w8JG/8PCB3/Egcc/xMH 669 | HP8TBRv/EwUb/xIFGv8SBBr/EgUa/xQGG/8UBhv/EwUb/xMFG/8TBRv/EwUa/xMDF/8YBRj/FwQW/xUC 670 | Ff8WBBb/GAMX/xcCFf8ZAxb/GgMX/xsDF/8cAxf/GAAT/xcDE/8kICNua2trIv///wD///8A////AP// 671 | /wD///8A////AP///wD///8A////AI6UkwdeZGajICYv/wgOGv8KEB7/Cw4d/wYIGP8LCxz/CwsZ/wAA 672 | Cf8AAAf/AAAD/wIBA/8BAQH/AQEB/wAAAf8AAAL/AAAD/wAABP8FAwv/CgcQ/w8LFv8PChf/DwoZ/w8J 673 | Gf8PCRr/Dwkb/xEHGf8SBxn/EgUY/xIFGP8RBRj/EQUY/xEFF/8TBhn/EwYZ/xMGGf8TBhn/EgYZ/xMF 674 | GP8XBxj/GQgX/xgHFv8WBRT/FQQT/xQCEf8UAhH/EwIQ/xQCEf8YBhX/FwQT/xoHFv8wIS3/bmhtCP// 675 | /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AG91eWkqMDb/ChAX/wsN 676 | Fv8OERr/DA4Z/woLFf8AAAb/AAAG/wAAA/8AAAL/AAAA/wAAAP8AAAH/AQAD/wAAA/8BAAT/BAIJ/wgF 677 | Dv8OChX/DgoV/w4KFv8OCRf/DgkY/w4JGP8QBxf/EQcX/xEGFv8RBhb/EQYW/xEGFv8RBhb/EQYW/xEG 678 | Fv8RBhb/EAUV/xAFFf8RBRP/EgQQ/xEDD/8SBA//EwUR/xIFEP8TBhH/EgQQ/xMGEf8VChX/EQYR/xQK 679 | FP87Lzvhe3J8A////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// 680 | /wD///8AfoWFO1RbXf8wNDj/ICQo/xseJP8NDxT/AAAF/wABBf8AAAP/AgED/wAAAf8BAAH/AAAB/wEA 681 | Av8AAAL/AAAD/wIBBv8FAwv/EA0X/xAMF/8QDBj/EAwY/w8LGf8PChj/EgoW/xMKFf8TChX/EwoV/xMK 682 | Ff8TChX/EwkV/xMJFf8SCRT/EgkU/xIIFP8SCBT/EggT/xMJEf8SBg3/EgYN/xMHD/8PBQz/DgUM/xIL 683 | Ef8gGR//KiMq/z03PspfW2BfenV7Ev///wD///8A////AP///wD///8A////AP///wD///8A////AP// 684 | /wD///8A////AP///wD///8A////AIuRjwF7gH4GdHl4GGZra0FXXFxxTE5Pjj9AQrhBQkSyQUFEskRD 685 | RqZDQkSsQ0JErEJCQ6xDQkSsQkJErEJCRaxDQkasRkRKoEhFTaBIRU6gSEVOoEhETqBHQ06mR0NOpklD 686 | TKZKREugS0RLoEtES6BLREugS0RLoExFTKBMRUygS0RLoEtES6BLREugS0RLoEtESqBNRUmgSkJGpkxD 687 | R6ZNRUmgSEJFpkhCRaZMSEuUXFpdX29scCp5eHsM////AP///wD///8A////AP///wD///8A////AP// 688 | /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// 689 | /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// 690 | /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// 691 | /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// 692 | /wD///8A////AP///wD///8A////AIAAAAAAAAAA/8AAAAAAAf//AAAAAAAAf/4AAAAAAAA/+AAAAAAA 693 | AB/wAAAAAAAAD+AAAAAAAAAH4AAAAAAAAAPAAAAAAAAAA8AAAAAAAAABwAAAAAAAAAHAAAAAAAAAAcAA 694 | AAAAAAABwAAAAAAAAAHAAAAAAAAAAcAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAcAAAAAAAAABgAAAAAAA 695 | AAGAAAAAAAAAAYAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAcAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAcAA 696 | AAAAAAABwAAAAAAAAAHAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAcAAAAAAAAABwAAAAAAA 697 | AAHAAAAAAAAAAcAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAcAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAcAA 698 | AAAAAAABwAAAAAAAAAHAAAAAAAAAAcAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAcAAAAAAAAABwAAAAAAA 699 | AAHAAAAAAAAAAcAAAAAAAAABgAAAAAAAAAGgAAAAAAAAAYAAAAAAAAADwAAAAAAAAAPgAAAAAAAAB/AA 700 | AAAAAAAH8AAAAAAAAA/4AAAAAAAAH/4AAAAAAAA//wAAAAAAAH//AAAAAAAB//////////// 701 | 702 | 703 | -------------------------------------------------------------------------------- /SplaTU/pencil.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/pencil.ico -------------------------------------------------------------------------------- /SplaTU/teensy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyangdev/SplaTu/32131cbf9bf0d32cf999236def20bf7eae2b6f2c/SplaTU/teensy.exe --------------------------------------------------------------------------------