├── text-label ├── ImageLabelFramework.suo ├── ImageLabelFramework.v12.suo ├── ImageLabelFramework │ ├── bin │ │ ├── Release │ │ │ ├── ImageLabelFramework.exe │ │ │ ├── ImageLabelFramework.pdb │ │ │ ├── ImageLabelFramework.vshost.exe │ │ │ └── ImageLabelFramework.vshost.exe.manifest │ │ └── Debug │ │ │ ├── ImageLabelFramework.vshost.exe │ │ │ └── ImageLabelFramework.vshost.exe.manifest │ ├── obj │ │ └── x86 │ │ │ ├── Release │ │ │ ├── ImageLabelFramework.exe │ │ │ ├── ImageLabelFramework.pdb │ │ │ ├── ImageLabelFramework.Zoom.resources │ │ │ ├── ImageLabelFramework.MainForm.resources │ │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ │ ├── ImageLabelFramework.Properties.Resources.resources │ │ │ ├── ImageLabelFramework.csproj.GenerateResource.Cache │ │ │ ├── ImageLabelFramework.csprojResolveAssemblyReference.cache │ │ │ └── ImageLabelFramework.csproj.FileListAbsolute.txt │ │ │ └── Debug │ │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ │ └── DesignTimeResolveAssemblyReferencesInput.cache │ ├── www.ico.la_a8b6db7b250d60603ba3469547b95944_128X128.ico │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── Program.cs │ ├── Zoom.cs │ ├── ImageLabelFramework.csproj │ ├── Zoom.Designer.cs │ ├── ImageMetaData.cs │ ├── MainForm.Designer.cs │ ├── MainForm.cs │ └── Zoom.resx └── ImageLabelFramework.sln └── LICENSE /text-label/ImageLabelFramework.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework.suo -------------------------------------------------------------------------------- /text-label/ImageLabelFramework.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework.v12.suo -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.exe -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.pdb -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.exe -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.pdb -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/bin/Debug/ImageLabelFramework.vshost.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/bin/Debug/ImageLabelFramework.vshost.exe -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.vshost.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.vshost.exe -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.Zoom.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.Zoom.resources -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.MainForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.MainForm.resources -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/www.ico.la_a8b6db7b250d60603ba3469547b95944_128X128.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/www.ico.la_a8b6db7b250d60603ba3469547b95944_128X128.ico -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.Properties.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.Properties.Resources.resources -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csproj.GenerateResource.Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csproj.GenerateResource.Cache -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/bin/Debug/ImageLabelFramework.vshost.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.vshost.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace ImageLabelFramework 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// The main entry point for the application. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new MainForm()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.235 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 ImageLabelFramework.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageLabelFramework", "ImageLabelFramework\ImageLabelFramework.csproj", "{62D2EC50-38D4-4A16-8212-0E0F3BBBA427}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|x64 = Debug|x64 9 | Debug|x86 = Debug|x86 10 | Release|x64 = Release|x64 11 | Release|x86 = Release|x86 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Debug|x64.ActiveCfg = Debug|x64 15 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Debug|x64.Build.0 = Debug|x64 16 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Debug|x86.ActiveCfg = Debug|x86 17 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Debug|x86.Build.0 = Debug|x86 18 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Release|x64.ActiveCfg = Release|x64 19 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Release|x64.Build.0 = Release|x64 20 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Release|x86.ActiveCfg = Release|x86 21 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Release|x86.Build.0 = Release|x86 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/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("ImageLabelFramework")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("ImageLabelFramework")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")] 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("5c2b9018-5a5d-4dd9-b12a-6711e067d34c")] 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.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/Zoom.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.Windows.Forms; 9 | 10 | namespace ImageLabelFramework 11 | { 12 | public partial class Zoom : Form 13 | { 14 | static private Pen pen = new Pen(Brushes.Red, 3); 15 | public MainForm mf; 16 | private String name; 17 | private int ptr = -1; 18 | private Point[] stack = new Point[100]; 19 | private int dx, dy; 20 | private double ratio; 21 | private int idx; 22 | 23 | public Zoom(int index) 24 | { 25 | InitializeComponent(); 26 | idx = index; 27 | CancelButton = confirmstring; 28 | } 29 | 30 | private void Zoom_Load(object sender, EventArgs e) 31 | { 32 | 33 | } 34 | 35 | private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) 36 | { 37 | 38 | } 39 | 40 | private void confirmstring_Click(object sender, EventArgs e) 41 | { 42 | //MessageBox.Show(MainForm.orcname); 43 | name = enterstring.Text; 44 | confirmstring.Enabled = false; 45 | mf.updatename(name, idx); 46 | mf.UpdatePanel(); 47 | this.Close(); 48 | } 49 | 50 | public void setdata(double ra, int x, int y) 51 | { 52 | ratio = ra; 53 | dx = x; 54 | dy = y; 55 | } 56 | public void setstr(String st) 57 | { 58 | enterstring.Text = st; 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.235 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 ImageLabelFramework.Properties 12 | { 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", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// Returns the cached ResourceManager instance used by this class. 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ImageLabelFramework.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// Overrides the current thread's CurrentUICulture property for all 56 | /// resource lookups using this strongly typed resource class. 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/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 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/ImageLabelFramework.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | x86 6 | 8.0.30703 7 | 2.0 8 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427} 9 | WinExe 10 | Properties 11 | ImageLabelFramework 12 | ImageLabelFramework 13 | v4.0 14 | Client 15 | 512 16 | 17 | 18 | x86 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | x86 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 | bin\Debug\ImageLabelFramework.exe.CodeAnalysisLog.xml 43 | true 44 | GlobalSuppressions.cs 45 | prompt 46 | MinimumRecommendedRules.ruleset 47 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets 48 | false 49 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules 50 | false 51 | 52 | 53 | bin\x64\Release\ 54 | TRACE 55 | true 56 | pdbonly 57 | x64 58 | bin\Release\ImageLabelFramework.exe.CodeAnalysisLog.xml 59 | true 60 | GlobalSuppressions.cs 61 | prompt 62 | MinimumRecommendedRules.ruleset 63 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets 64 | false 65 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules 66 | false 67 | false 68 | 69 | 70 | www.ico.la_a8b6db7b250d60603ba3469547b95944_128X128.ico 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | Form 89 | 90 | 91 | Zoom.cs 92 | 93 | 94 | 95 | Form 96 | 97 | 98 | MainForm.cs 99 | 100 | 101 | 102 | 103 | MainForm.cs 104 | 105 | 106 | ResXFileCodeGenerator 107 | Resources.Designer.cs 108 | Designer 109 | 110 | 111 | True 112 | Resources.resx 113 | 114 | 115 | Zoom.cs 116 | 117 | 118 | SettingsSingleFileGenerator 119 | Settings.Designer.cs 120 | 121 | 122 | True 123 | Settings.settings 124 | True 125 | 126 | 127 | 128 | 129 | 130 | 131 | 138 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/Zoom.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace ImageLabelFramework 2 | { 3 | partial class Zoom 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(Zoom)); 32 | this.Zoompicbox = new System.Windows.Forms.PictureBox(); 33 | this.enterstring = new System.Windows.Forms.MaskedTextBox(); 34 | this.confirmstring = new System.Windows.Forms.Button(); 35 | this.poslab = new System.Windows.Forms.Label(); 36 | this.poslabel = new System.Windows.Forms.Label(); 37 | this.numlabel = new System.Windows.Forms.Label(); 38 | this.dotlab = new System.Windows.Forms.Label(); 39 | this.label1 = new System.Windows.Forms.Label(); 40 | ((System.ComponentModel.ISupportInitialize)(this.Zoompicbox)).BeginInit(); 41 | this.SuspendLayout(); 42 | // 43 | // Zoompicbox 44 | // 45 | this.Zoompicbox.Location = new System.Drawing.Point(5, 5); 46 | this.Zoompicbox.Name = "Zoompicbox"; 47 | this.Zoompicbox.Size = new System.Drawing.Size(800, 600); 48 | this.Zoompicbox.TabIndex = 0; 49 | this.Zoompicbox.TabStop = false; 50 | // 51 | // enterstring 52 | // 53 | this.enterstring.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 54 | this.enterstring.Location = new System.Drawing.Point(814, 40); 55 | this.enterstring.Name = "enterstring"; 56 | this.enterstring.Size = new System.Drawing.Size(445, 26); 57 | this.enterstring.TabIndex = 1; 58 | this.enterstring.MaskInputRejected += new System.Windows.Forms.MaskInputRejectedEventHandler(this.maskedTextBox1_MaskInputRejected); 59 | // 60 | // confirmstring 61 | // 62 | this.confirmstring.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 63 | this.confirmstring.Location = new System.Drawing.Point(814, 94); 64 | this.confirmstring.Name = "confirmstring"; 65 | this.confirmstring.Size = new System.Drawing.Size(116, 28); 66 | this.confirmstring.TabIndex = 2; 67 | this.confirmstring.Text = "Confirm(&C)"; 68 | this.confirmstring.UseVisualStyleBackColor = true; 69 | this.confirmstring.Click += new System.EventHandler(this.confirmstring_Click); 70 | // 71 | // poslab 72 | // 73 | this.poslab.AutoSize = true; 74 | this.poslab.Location = new System.Drawing.Point(1000, 192); 75 | this.poslab.Name = "poslab"; 76 | this.poslab.Size = new System.Drawing.Size(0, 12); 77 | this.poslab.TabIndex = 3; 78 | // 79 | // poslabel 80 | // 81 | this.poslabel.AutoSize = true; 82 | this.poslabel.BackColor = System.Drawing.SystemColors.ControlDark; 83 | this.poslabel.Location = new System.Drawing.Point(813, 217); 84 | this.poslabel.Name = "poslabel"; 85 | this.poslabel.Size = new System.Drawing.Size(71, 12); 86 | this.poslabel.TabIndex = 4; 87 | this.poslabel.Text = " "; 88 | // 89 | // numlabel 90 | // 91 | this.numlabel.AutoSize = true; 92 | this.numlabel.BackColor = System.Drawing.SystemColors.ControlDark; 93 | this.numlabel.ForeColor = System.Drawing.SystemColors.ActiveCaptionText; 94 | this.numlabel.Location = new System.Drawing.Point(813, 252); 95 | this.numlabel.Name = "numlabel"; 96 | this.numlabel.Size = new System.Drawing.Size(53, 12); 97 | this.numlabel.TabIndex = 5; 98 | this.numlabel.Text = " "; 99 | // 100 | // dotlab 101 | // 102 | this.dotlab.AutoSize = true; 103 | this.dotlab.BackColor = System.Drawing.SystemColors.ButtonShadow; 104 | this.dotlab.Location = new System.Drawing.Point(813, 303); 105 | this.dotlab.Name = "dotlab"; 106 | this.dotlab.Size = new System.Drawing.Size(167, 12); 107 | this.dotlab.TabIndex = 6; 108 | this.dotlab.Text = "无字符 "; 109 | // 110 | // label1 111 | // 112 | this.label1.AutoSize = true; 113 | this.label1.Font = new System.Drawing.Font("SimSun", 12F); 114 | this.label1.Location = new System.Drawing.Point(811, 9); 115 | this.label1.Name = "label1"; 116 | this.label1.Size = new System.Drawing.Size(120, 16); 117 | this.label1.TabIndex = 8; 118 | this.label1.Text = "在此输入文字:"; 119 | // 120 | // Zoom 121 | // 122 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 123 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 124 | this.ClientSize = new System.Drawing.Size(1263, 612); 125 | this.Controls.Add(this.label1); 126 | this.Controls.Add(this.dotlab); 127 | this.Controls.Add(this.numlabel); 128 | this.Controls.Add(this.poslabel); 129 | this.Controls.Add(this.poslab); 130 | this.Controls.Add(this.confirmstring); 131 | this.Controls.Add(this.enterstring); 132 | this.Controls.Add(this.Zoompicbox); 133 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 134 | this.Name = "Zoom"; 135 | this.Text = "ZOOM"; 136 | this.Load += new System.EventHandler(this.Zoom_Load); 137 | ((System.ComponentModel.ISupportInitialize)(this.Zoompicbox)).EndInit(); 138 | this.ResumeLayout(false); 139 | this.PerformLayout(); 140 | 141 | } 142 | 143 | #endregion 144 | 145 | private System.Windows.Forms.MaskedTextBox enterstring; 146 | private System.Windows.Forms.Button confirmstring; 147 | public System.Windows.Forms.PictureBox Zoompicbox; 148 | private System.Windows.Forms.Label poslab; 149 | private System.Windows.Forms.Label poslabel; 150 | private System.Windows.Forms.Label numlabel; 151 | private System.Windows.Forms.Label dotlab; 152 | private System.Windows.Forms.Label label1; 153 | } 154 | } -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.exe 2 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb 3 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ResolveAssemblyReference.cache 4 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources 5 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources 6 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\GenerateResource.read.1.tlog 7 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\GenerateResource.write.1.tlog 8 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe 9 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb 10 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe 11 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb 12 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.exe 13 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb 14 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ResolveAssemblyReference.cache 15 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources 16 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources 17 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\GenerateResource.read.1.tlog 18 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\GenerateResource.write.1.tlog 19 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe 20 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb 21 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.exe 22 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb 23 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources 24 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources 25 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csproj.GenerateResource.Cache 26 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csprojResolveAssemblyReference.cache 27 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources 28 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe 29 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb 30 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\bin\Release\ImageLabelFramework.exe 31 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb 32 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ResolveAssemblyReference.cache 33 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources 34 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources 35 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources 36 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\GenerateResource.read.1.tlog 37 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\GenerateResource.write.1.tlog 38 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe 39 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb 40 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\bin\Release\ImageLabelFramework.exe 41 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb 42 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ResolveAssemblyReference.cache 43 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources 44 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources 45 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources 46 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\GenerateResource.read.1.tlog 47 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\GenerateResource.write.1.tlog 48 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe 49 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb 50 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\bin\Release\ImageLabelFramework.exe 51 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb 52 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources 53 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources 54 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources 55 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csprojResolveAssemblyReference.cache 56 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csproj.GenerateResource.Cache 57 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe 58 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb 59 | D:\data\work\BigPic\ImageLabelFramework\bin\Release\ImageLabelFramework.exe 60 | D:\data\work\BigPic\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb 61 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csprojResolveAssemblyReference.cache 62 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources 63 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources 64 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources 65 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csproj.GenerateResource.Cache 66 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe 67 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb 68 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csprojResolveAssemblyReference.cache 69 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources 70 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources 71 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources 72 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csproj.GenerateResource.Cache 73 | D:\data\work\文字框加内容标注\ImageLabelFramework\bin\Release\ImageLabelFramework.exe 74 | D:\data\work\文字框加内容标注\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb 75 | C:\Users\zhibo.yzb\Desktop\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe 76 | C:\Users\zhibo.yzb\Desktop\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb 77 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/ImageMetaData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | using System.Drawing; 7 | using System.IO; 8 | using System.Drawing.Imaging; 9 | using System.Drawing.Drawing2D; 10 | using System.Windows.Forms; 11 | 12 | namespace ImageLabelFramework 13 | { 14 | struct Poly 15 | { 16 | public int angle; 17 | public Point[] rgP; 18 | public String name; 19 | 20 | public Poly(int x0, int y0, int x1, int y1, int ang) 21 | { 22 | angle = ang; 23 | rgP = new Point[2]; 24 | rgP[0] = new Point(x0, y0); 25 | rgP[1] = new Point(x1, y1); 26 | name = "BLANK"; 27 | } 28 | 29 | public Poly(Point[] _rgP, int ang) 30 | { 31 | angle = ang; 32 | rgP = new Point[2]; 33 | for (int i = 0; i < 2; ++i) 34 | { 35 | rgP[i] = new Point(_rgP[i].X, _rgP[i].Y); 36 | } 37 | name = "BLANK"; 38 | } 39 | 40 | public Poly(int x0, int y0, int x1, int y1, int ang, String na) 41 | { 42 | angle = ang; 43 | rgP = new Point[2]; 44 | rgP[0] = new Point(x0, y0); 45 | rgP[1] = new Point(x1, y1); 46 | name = na; 47 | } 48 | 49 | public Poly Clone() 50 | { 51 | Poly tmp = new Poly(rgP[0].X, rgP[0].Y, rgP[1].X, rgP[1].Y, angle, name); 52 | return tmp; 53 | } 54 | } 55 | 56 | class ImgMetaData 57 | { 58 | public string path = null; 59 | public string metaPath = null; 60 | public string raw_name = null; 61 | 62 | private Image img = null; 63 | //private List vRect = null; 64 | private List vPoly = null; 65 | 66 | public int height, width; 67 | public int h, w; 68 | public float ratio; 69 | 70 | public static int extend = 20; 71 | 72 | public ImgMetaData(string _path) 73 | { 74 | path = _path; 75 | metaPath = path.Replace(Path.GetExtension(path), ".txt"); 76 | vPoly = new List(); 77 | 78 | if (File.Exists(metaPath)) 79 | { 80 | try 81 | { 82 | string[] rg_parts; 83 | using (StreamReader sr = new StreamReader(metaPath)) 84 | { 85 | raw_name = sr.ReadLine().Trim(); 86 | 87 | rg_parts = sr.ReadLine().Split('\t'); 88 | width = Convert.ToInt32(rg_parts[0]); 89 | height = Convert.ToInt32(rg_parts[1]); 90 | 91 | int count = Convert.ToInt32(sr.ReadLine()); 92 | for (int i = 0; i < count; ++i) 93 | { 94 | int angle = Convert.ToInt32(sr.ReadLine()); 95 | rg_parts = sr.ReadLine().Split('\t'); 96 | String stname = Convert.ToString(sr.ReadLine()); 97 | vPoly.Add(new Poly(Convert.ToInt32(rg_parts[0]), 98 | Convert.ToInt32(rg_parts[1]), 99 | Convert.ToInt32(rg_parts[2]), 100 | Convert.ToInt32(rg_parts[3]), 101 | angle,stname)); 102 | } 103 | } 104 | } 105 | catch 106 | { 107 | MessageBox.Show("Read Error!"); 108 | vPoly.Clear(); 109 | } 110 | } 111 | else 112 | { 113 | raw_name = Path.GetFileNameWithoutExtension(path); 114 | } 115 | } 116 | 117 | public void SaveMetaDate() 118 | { 119 | using (StreamWriter sw = new StreamWriter(metaPath, false)) 120 | { 121 | sw.WriteLine(raw_name); 122 | sw.WriteLine("" + width + "\t" + height); 123 | sw.WriteLine(vPoly.Count); 124 | foreach (Poly poly in vPoly) 125 | { 126 | sw.WriteLine(poly.angle); 127 | foreach (Point p in poly.rgP) 128 | { 129 | sw.Write("" + p.X + "\t" + p.Y + "\t"); 130 | } 131 | sw.WriteLine(); 132 | sw.WriteLine(poly.name); 133 | } 134 | } 135 | } 136 | 137 | public bool IsEmpty() 138 | { 139 | return vPoly.Count == 0; 140 | } 141 | 142 | public void deldetimg() 143 | { 144 | img.Dispose(); 145 | img = null; 146 | File.Delete(path); 147 | File.Delete(metaPath); 148 | path = null; 149 | metaPath = null; 150 | } 151 | 152 | public Image GetImg() 153 | { 154 | Image tmp_img = null; 155 | if (null == img) 156 | { 157 | try 158 | { 159 | img = Image.FromFile(path); 160 | ratio = 1.0f; 161 | height = img.Height; 162 | width = img.Width; 163 | //MessageBox.Show(MainForm.maxH.ToString() + "," + MainForm.maxW.ToString()); 164 | 165 | if (1.0 * height / (MainForm.maxH-2*extend) > 1.0 * width / (MainForm.maxW-2*extend)) 166 | { 167 | if (height > (MainForm.maxH-2*extend)) 168 | { 169 | ratio = 1.0f * (MainForm.maxH-2*extend) / height; 170 | } 171 | } 172 | else 173 | { 174 | if (width > (MainForm.maxW-2*extend)) 175 | { 176 | ratio = 1.0f * (MainForm.maxW-2*extend) / width; 177 | } 178 | } 179 | //tmp_img = (Bitmap)img.Clone(); 180 | 181 | if (ratio < 1.0f) 182 | { 183 | //MessageBox.Show("ERROR"); 184 | Image souImg = img; 185 | h = Convert.ToInt32(ratio * height); 186 | w = Convert.ToInt32(ratio * width); 187 | tmp_img = new Bitmap(w+2*extend, h+2*extend); 188 | //MessageBox.Show((h+extend).ToString() + "," + (w+extend).ToString()); 189 | Graphics g = Graphics.FromImage(tmp_img); 190 | g.Clear(Color.White); 191 | g.InterpolationMode = InterpolationMode.High; 192 | g.SmoothingMode = SmoothingMode.HighQuality; 193 | g.DrawImage(souImg, new Rectangle(extend, extend, w, h), new Rectangle(0, 0, width, height), GraphicsUnit.Pixel); 194 | } 195 | else 196 | { 197 | Image souImg = img; 198 | h = height; 199 | w = width; 200 | //MessageBox.Show(h.ToString()+","+w.ToString()); 201 | tmp_img = new Bitmap(w + 2 * extend, h + 2 * extend); 202 | Graphics g = Graphics.FromImage(tmp_img); 203 | g.Clear(Color.White); 204 | g.DrawImage(souImg, new Rectangle(extend, extend, w, h), new Rectangle(0, 0, width, height), GraphicsUnit.Pixel); 205 | } 206 | } 207 | catch 208 | { 209 | img = null; 210 | } 211 | } 212 | img.Dispose(); 213 | img = null; 214 | return tmp_img; 215 | } 216 | 217 | public int GetCount() 218 | { 219 | return vPoly.Count; 220 | } 221 | 222 | public Poly[] GetPoly() 223 | { 224 | Poly[] tmp = vPoly.ToArray(); 225 | 226 | for (int i = 0; i < tmp.Length; ++i) 227 | { 228 | for (int j = 0; j < tmp[i].rgP.Length; ++j) 229 | { 230 | tmp[i].rgP[j].X = (int)Math.Round(tmp[i].rgP[j].X * ratio + extend); 231 | tmp[i].rgP[j].Y = (int)Math.Round(tmp[i].rgP[j].Y * ratio + extend); 232 | } 233 | } 234 | 235 | return tmp; 236 | } 237 | 238 | public void SetRect(Poly[] rgPoly, int len) 239 | { 240 | vPoly.Clear(); 241 | for (int i = 0; i < len; ++i) 242 | { 243 | vPoly.Add(new Poly((int)Math.Round((rgPoly[i].rgP[0].X - extend) / ratio), 244 | (int)Math.Round((rgPoly[i].rgP[0].Y - extend) / ratio), 245 | (int)Math.Round((rgPoly[i].rgP[1].X - extend) / ratio), 246 | (int)Math.Round((rgPoly[i].rgP[1].Y - extend) / ratio), 247 | rgPoly[i].angle, 248 | rgPoly[i].name)); 249 | } 250 | } 251 | } 252 | } 253 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/MainForm.Designer.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | 3 | namespace ImageLabelFramework 4 | { 5 | partial class MainForm 6 | { 7 | /// 8 | /// Required designer variable. 9 | /// 10 | private System.ComponentModel.IContainer components = null; 11 | 12 | /// 13 | /// Clean up any resources being used. 14 | /// 15 | /// true if managed resources should be disposed; otherwise, false. 16 | protected override void Dispose(bool disposing) 17 | { 18 | if (disposing && (components != null)) 19 | { 20 | components.Dispose(); 21 | } 22 | base.Dispose(disposing); 23 | } 24 | 25 | #region Windows Form Designer generated code 26 | 27 | /// 28 | /// Required method for Designer support - do not modify 29 | /// the contents of this method with the code editor. 30 | /// 31 | private void InitializeComponent() 32 | { 33 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); 34 | this.mainMenuStrip = new System.Windows.Forms.MenuStrip(); 35 | this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); 36 | this.menuToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 37 | this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 38 | this.exitToolStripMenu = new System.Windows.Forms.ToolStripMenuItem(); 39 | this.dlgChooseDirectory = new System.Windows.Forms.FolderBrowserDialog(); 40 | this.mainPictureBox = new System.Windows.Forms.PictureBox(); 41 | this.bottomStatusStrip = new System.Windows.Forms.StatusStrip(); 42 | this.Click0Label = new System.Windows.Forms.ToolStripStatusLabel(); 43 | this.Click1Label = new System.Windows.Forms.ToolStripStatusLabel(); 44 | this.Click2Label = new System.Windows.Forms.ToolStripStatusLabel(); 45 | this.avalabel = new System.Windows.Forms.ToolStripStatusLabel(); 46 | this.bottomToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); 47 | this.buttonPanel = new System.Windows.Forms.Panel(); 48 | this.remove = new System.Windows.Forms.Button(); 49 | this.edittext = new System.Windows.Forms.Button(); 50 | this.deletetext = new System.Windows.Forms.Button(); 51 | this.Confirm = new System.Windows.Forms.Button(); 52 | this.label1 = new System.Windows.Forms.Label(); 53 | this.avaitext = new System.Windows.Forms.ComboBox(); 54 | this.nextButton = new System.Windows.Forms.Button(); 55 | this.redrawButton = new System.Windows.Forms.Button(); 56 | this.preButton = new System.Windows.Forms.Button(); 57 | this.sealButton = new System.Windows.Forms.Button(); 58 | this.availableButton = new System.Windows.Forms.Button(); 59 | this.undoButton = new System.Windows.Forms.Button(); 60 | this.clearButton = new System.Windows.Forms.Button(); 61 | this.mainMenuStrip.SuspendLayout(); 62 | ((System.ComponentModel.ISupportInitialize)(this.mainPictureBox)).BeginInit(); 63 | this.bottomStatusStrip.SuspendLayout(); 64 | this.buttonPanel.SuspendLayout(); 65 | this.SuspendLayout(); 66 | // 67 | // mainMenuStrip 68 | // 69 | this.mainMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 70 | this.toolStripMenuItem1, 71 | this.menuToolStripMenuItem, 72 | this.aboutToolStripMenuItem, 73 | this.exitToolStripMenu}); 74 | this.mainMenuStrip.Location = new System.Drawing.Point(0, 0); 75 | this.mainMenuStrip.Name = "mainMenuStrip"; 76 | this.mainMenuStrip.Size = new System.Drawing.Size(839, 25); 77 | this.mainMenuStrip.TabIndex = 0; 78 | this.mainMenuStrip.Text = "menuStrip1"; 79 | this.mainMenuStrip.MouseMove += new System.Windows.Forms.MouseEventHandler(this.mainMenuStrip_Move); 80 | // 81 | // toolStripMenuItem1 82 | // 83 | this.toolStripMenuItem1.Name = "toolStripMenuItem1"; 84 | this.toolStripMenuItem1.Size = new System.Drawing.Size(12, 21); 85 | // 86 | // menuToolStripMenuItem 87 | // 88 | this.menuToolStripMenuItem.Name = "menuToolStripMenuItem"; 89 | this.menuToolStripMenuItem.Size = new System.Drawing.Size(63, 21); 90 | this.menuToolStripMenuItem.Text = "Load(&L)"; 91 | this.menuToolStripMenuItem.Click += new System.EventHandler(this.menuToolStripMenuItem_Click); 92 | // 93 | // aboutToolStripMenuItem 94 | // 95 | this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; 96 | this.aboutToolStripMenuItem.Size = new System.Drawing.Size(55, 21); 97 | this.aboutToolStripMenuItem.Text = "About"; 98 | this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); 99 | // 100 | // exitToolStripMenu 101 | // 102 | this.exitToolStripMenu.Name = "exitToolStripMenu"; 103 | this.exitToolStripMenu.Size = new System.Drawing.Size(40, 21); 104 | this.exitToolStripMenu.Text = "Exit"; 105 | this.exitToolStripMenu.Click += new System.EventHandler(this.exitToolStripMenu_Click); 106 | // 107 | // mainPictureBox 108 | // 109 | this.mainPictureBox.Enabled = false; 110 | this.mainPictureBox.Location = new System.Drawing.Point(12, 28); 111 | this.mainPictureBox.Name = "mainPictureBox"; 112 | this.mainPictureBox.Size = new System.Drawing.Size(640, 640); 113 | this.mainPictureBox.TabIndex = 1; 114 | this.mainPictureBox.TabStop = false; 115 | this.mainPictureBox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.mainPictureBox_Click); 116 | this.mainPictureBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.mainPictureBox_Move); 117 | // 118 | // bottomStatusStrip 119 | // 120 | this.bottomStatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 121 | this.Click0Label, 122 | this.Click1Label, 123 | this.Click2Label, 124 | this.avalabel, 125 | this.bottomToolStripStatusLabel}); 126 | this.bottomStatusStrip.Location = new System.Drawing.Point(0, 679); 127 | this.bottomStatusStrip.Name = "bottomStatusStrip"; 128 | this.bottomStatusStrip.Size = new System.Drawing.Size(839, 22); 129 | this.bottomStatusStrip.TabIndex = 2; 130 | // 131 | // Click0Label 132 | // 133 | this.Click0Label.AutoSize = false; 134 | this.Click0Label.BackColor = System.Drawing.SystemColors.ActiveBorder; 135 | this.Click0Label.Enabled = false; 136 | this.Click0Label.Name = "Click0Label"; 137 | this.Click0Label.Size = new System.Drawing.Size(140, 17); 138 | // 139 | // Click1Label 140 | // 141 | this.Click1Label.AutoSize = false; 142 | this.Click1Label.BackColor = System.Drawing.SystemColors.GradientActiveCaption; 143 | this.Click1Label.Enabled = false; 144 | this.Click1Label.Name = "Click1Label"; 145 | this.Click1Label.Size = new System.Drawing.Size(70, 17); 146 | // 147 | // Click2Label 148 | // 149 | this.Click2Label.AutoSize = false; 150 | this.Click2Label.BackColor = System.Drawing.SystemColors.InactiveBorder; 151 | this.Click2Label.Enabled = false; 152 | this.Click2Label.Name = "Click2Label"; 153 | this.Click2Label.Size = new System.Drawing.Size(70, 17); 154 | // 155 | // avalabel 156 | // 157 | this.avalabel.AutoSize = false; 158 | this.avalabel.BackColor = System.Drawing.SystemColors.ActiveBorder; 159 | this.avalabel.Enabled = false; 160 | this.avalabel.Name = "avalabel"; 161 | this.avalabel.Size = new System.Drawing.Size(140, 17); 162 | // 163 | // bottomToolStripStatusLabel 164 | // 165 | this.bottomToolStripStatusLabel.Name = "bottomToolStripStatusLabel"; 166 | this.bottomToolStripStatusLabel.Size = new System.Drawing.Size(12, 17); 167 | this.bottomToolStripStatusLabel.Text = " "; 168 | // 169 | // buttonPanel 170 | // 171 | this.buttonPanel.Controls.Add(this.remove); 172 | this.buttonPanel.Controls.Add(this.edittext); 173 | this.buttonPanel.Controls.Add(this.deletetext); 174 | this.buttonPanel.Controls.Add(this.Confirm); 175 | this.buttonPanel.Controls.Add(this.label1); 176 | this.buttonPanel.Controls.Add(this.avaitext); 177 | this.buttonPanel.Controls.Add(this.nextButton); 178 | this.buttonPanel.Controls.Add(this.redrawButton); 179 | this.buttonPanel.Controls.Add(this.preButton); 180 | this.buttonPanel.Controls.Add(this.sealButton); 181 | this.buttonPanel.Controls.Add(this.availableButton); 182 | this.buttonPanel.Controls.Add(this.undoButton); 183 | this.buttonPanel.Controls.Add(this.clearButton); 184 | this.buttonPanel.Location = new System.Drawing.Point(658, 33); 185 | this.buttonPanel.Name = "buttonPanel"; 186 | this.buttonPanel.Size = new System.Drawing.Size(169, 635); 187 | this.buttonPanel.TabIndex = 3; 188 | this.buttonPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.buttonPanel_Move); 189 | // 190 | // remove 191 | // 192 | this.remove.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 193 | this.remove.Location = new System.Drawing.Point(31, 547); 194 | this.remove.Name = "remove"; 195 | this.remove.Size = new System.Drawing.Size(106, 45); 196 | this.remove.TabIndex = 10; 197 | this.remove.Text = "REMOVE"; 198 | this.remove.UseVisualStyleBackColor = true; 199 | this.remove.Click += new System.EventHandler(this.remove_Click); 200 | // 201 | // edittext 202 | // 203 | this.edittext.Enabled = false; 204 | this.edittext.Location = new System.Drawing.Point(31, 437); 205 | this.edittext.Name = "edittext"; 206 | this.edittext.Size = new System.Drawing.Size(75, 23); 207 | this.edittext.TabIndex = 9; 208 | this.edittext.Text = "Edit(&E)"; 209 | this.edittext.UseVisualStyleBackColor = true; 210 | this.edittext.Click += new System.EventHandler(this.edittext_Click); 211 | // 212 | // deletetext 213 | // 214 | this.deletetext.Enabled = false; 215 | this.deletetext.Location = new System.Drawing.Point(31, 397); 216 | this.deletetext.Name = "deletetext"; 217 | this.deletetext.Size = new System.Drawing.Size(75, 23); 218 | this.deletetext.TabIndex = 8; 219 | this.deletetext.Text = "Delete(&D)"; 220 | this.deletetext.UseVisualStyleBackColor = true; 221 | this.deletetext.Click += new System.EventHandler(this.deletetext_Click); 222 | // 223 | // Confirm 224 | // 225 | this.Confirm.Enabled = false; 226 | this.Confirm.Location = new System.Drawing.Point(31, 257); 227 | this.Confirm.Name = "Confirm"; 228 | this.Confirm.Size = new System.Drawing.Size(75, 23); 229 | this.Confirm.TabIndex = 4; 230 | this.Confirm.Text = "Confirm(&Q)"; 231 | this.Confirm.UseVisualStyleBackColor = true; 232 | this.Confirm.Click += new System.EventHandler(this.Confirm_Click); 233 | // 234 | // label1 235 | // 236 | this.label1.AutoSize = true; 237 | this.label1.Location = new System.Drawing.Point(29, 326); 238 | this.label1.Name = "label1"; 239 | this.label1.Size = new System.Drawing.Size(65, 12); 240 | this.label1.TabIndex = 7; 241 | this.label1.Text = "现有文本:"; 242 | // 243 | // avaitext 244 | // 245 | this.avaitext.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 246 | this.avaitext.Enabled = false; 247 | this.avaitext.FormattingEnabled = true; 248 | this.avaitext.Location = new System.Drawing.Point(29, 357); 249 | this.avaitext.Name = "avaitext"; 250 | this.avaitext.Size = new System.Drawing.Size(121, 20); 251 | this.avaitext.TabIndex = 5; 252 | this.avaitext.SelectedIndexChanged += new System.EventHandler(this.avaitext_SelectedIndexChanged); 253 | // 254 | // nextButton 255 | // 256 | this.nextButton.Enabled = false; 257 | this.nextButton.Location = new System.Drawing.Point(31, 214); 258 | this.nextButton.Name = "nextButton"; 259 | this.nextButton.Size = new System.Drawing.Size(75, 23); 260 | this.nextButton.TabIndex = 0; 261 | this.nextButton.Text = "Next(&X)"; 262 | this.nextButton.UseVisualStyleBackColor = true; 263 | this.nextButton.Click += new System.EventHandler(this.nextButton_Click); 264 | // 265 | // redrawButton 266 | // 267 | this.redrawButton.Enabled = false; 268 | this.redrawButton.Location = new System.Drawing.Point(31, 13); 269 | this.redrawButton.Name = "redrawButton"; 270 | this.redrawButton.Size = new System.Drawing.Size(75, 23); 271 | this.redrawButton.TabIndex = 5; 272 | this.redrawButton.Text = "Redraw(&R)"; 273 | this.redrawButton.UseVisualStyleBackColor = true; 274 | this.redrawButton.Click += new System.EventHandler(this.redrawButton_Click); 275 | // 276 | // preButton 277 | // 278 | this.preButton.Enabled = false; 279 | this.preButton.Location = new System.Drawing.Point(31, 185); 280 | this.preButton.Name = "preButton"; 281 | this.preButton.Size = new System.Drawing.Size(75, 23); 282 | this.preButton.TabIndex = 1; 283 | this.preButton.Text = "Pre(&Z)"; 284 | this.preButton.UseVisualStyleBackColor = true; 285 | this.preButton.Click += new System.EventHandler(this.preButton_Click); 286 | // 287 | // sealButton 288 | // 289 | this.sealButton.Enabled = false; 290 | this.sealButton.Location = new System.Drawing.Point(31, 42); 291 | this.sealButton.Name = "sealButton"; 292 | this.sealButton.Size = new System.Drawing.Size(75, 23); 293 | this.sealButton.TabIndex = 6; 294 | this.sealButton.Text = "Seal(&S)"; 295 | this.sealButton.UseVisualStyleBackColor = true; 296 | this.sealButton.Click += new System.EventHandler(this.sealButton_Click); 297 | // 298 | // availableButton 299 | // 300 | this.availableButton.Enabled = false; 301 | this.availableButton.Location = new System.Drawing.Point(31, 156); 302 | this.availableButton.Name = "availableButton"; 303 | this.availableButton.Size = new System.Drawing.Size(75, 23); 304 | this.availableButton.TabIndex = 4; 305 | this.availableButton.Text = "Avai(&A)"; 306 | this.availableButton.UseVisualStyleBackColor = true; 307 | this.availableButton.Click += new System.EventHandler(this.availableButton_Click); 308 | // 309 | // undoButton 310 | // 311 | this.undoButton.Enabled = false; 312 | this.undoButton.Location = new System.Drawing.Point(31, 71); 313 | this.undoButton.Name = "undoButton"; 314 | this.undoButton.Size = new System.Drawing.Size(75, 23); 315 | this.undoButton.TabIndex = 2; 316 | this.undoButton.Text = "Undo(&U)"; 317 | this.undoButton.UseVisualStyleBackColor = true; 318 | this.undoButton.Click += new System.EventHandler(this.undoButton_Click); 319 | // 320 | // clearButton 321 | // 322 | this.clearButton.Enabled = false; 323 | this.clearButton.Location = new System.Drawing.Point(31, 100); 324 | this.clearButton.Name = "clearButton"; 325 | this.clearButton.Size = new System.Drawing.Size(75, 23); 326 | this.clearButton.TabIndex = 3; 327 | this.clearButton.Text = "Clear"; 328 | this.clearButton.UseVisualStyleBackColor = true; 329 | this.clearButton.Click += new System.EventHandler(this.clearButton_Click); 330 | // 331 | // MainForm 332 | // 333 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 334 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 335 | this.AutoScroll = true; 336 | this.ClientSize = new System.Drawing.Size(839, 701); 337 | this.Controls.Add(this.buttonPanel); 338 | this.Controls.Add(this.bottomStatusStrip); 339 | this.Controls.Add(this.mainPictureBox); 340 | this.Controls.Add(this.mainMenuStrip); 341 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 342 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 343 | this.MainMenuStrip = this.mainMenuStrip; 344 | this.MaximizeBox = false; 345 | this.MinimizeBox = false; 346 | this.Name = "MainForm"; 347 | this.Text = "Image Labeling Toolbox"; 348 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); 349 | this.Load += new System.EventHandler(this.MainForm_Load); 350 | this.mainMenuStrip.ResumeLayout(false); 351 | this.mainMenuStrip.PerformLayout(); 352 | ((System.ComponentModel.ISupportInitialize)(this.mainPictureBox)).EndInit(); 353 | this.bottomStatusStrip.ResumeLayout(false); 354 | this.bottomStatusStrip.PerformLayout(); 355 | this.buttonPanel.ResumeLayout(false); 356 | this.buttonPanel.PerformLayout(); 357 | this.ResumeLayout(false); 358 | this.PerformLayout(); 359 | 360 | } 361 | 362 | #endregion 363 | 364 | private System.Windows.Forms.MenuStrip mainMenuStrip; 365 | private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; 366 | private System.Windows.Forms.ToolStripMenuItem menuToolStripMenuItem; 367 | private System.Windows.Forms.FolderBrowserDialog dlgChooseDirectory; 368 | private System.Windows.Forms.PictureBox mainPictureBox; 369 | private System.Windows.Forms.StatusStrip bottomStatusStrip; 370 | private System.Windows.Forms.Panel buttonPanel; 371 | private System.Windows.Forms.Button clearButton; 372 | private System.Windows.Forms.Button undoButton; 373 | private System.Windows.Forms.Button preButton; 374 | private System.Windows.Forms.Button nextButton; 375 | private System.Windows.Forms.Button availableButton; 376 | private System.Windows.Forms.ToolStripStatusLabel bottomToolStripStatusLabel; 377 | private System.Windows.Forms.ToolStripStatusLabel Click0Label; 378 | private System.Windows.Forms.ToolStripStatusLabel Click1Label; 379 | private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; 380 | private System.Windows.Forms.ToolStripStatusLabel Click2Label; 381 | private System.Windows.Forms.Button sealButton; 382 | private System.Windows.Forms.Button redrawButton; 383 | private System.Windows.Forms.Button Confirm; 384 | private ToolStripStatusLabel avalabel; 385 | private ToolStripMenuItem exitToolStripMenu; 386 | private ComboBox avaitext; 387 | private Label label1; 388 | private Button deletetext; 389 | private Button edittext; 390 | private Button remove; 391 | } 392 | } 393 | 394 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/MainForm.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.Windows.Forms; 9 | 10 | using System.IO; 11 | using System.Drawing.Imaging; 12 | using System.Drawing.Drawing2D; 13 | 14 | namespace ImageLabelFramework 15 | { 16 | public partial class MainForm : Form 17 | { 18 | static private int maxLebel = 100; 19 | //static private double err = 1e-5; 20 | static private string[] rgSuffix = new string[] { "*.jpg", "*.bmp", "*.png", "*.gif", "*.jpeg" }; 21 | static private Pen pen = new Pen(Brushes.Red, 2); 22 | static private Pen pen_sel = new Pen(Brushes.Green, 2); 23 | static private Pen pen2 = new Pen(Brushes.GreenYellow, 1); 24 | static private int extend = 20; 25 | 26 | private ImgMetaData[] rgIMD = null; 27 | private int cur = -1; 28 | private int ava = -1; 29 | //private Point[] stack = new Point[4]; 30 | private int ptr = -1; 31 | private int ang = 0; 32 | private Point[] clkpoint = new Point[2]; 33 | private Point[] newpoint = new Point[4]; 34 | //public static String orcname; 35 | //private Point uppoint = Point.Empty; 36 | 37 | public static int maxH = 0; 38 | public static int maxW = 0; 39 | 40 | private Bitmap bmp = null; 41 | private Poly[] buffer = new Poly[maxLebel]; 42 | private int index = 0; 43 | 44 | private int selected = -1; 45 | 46 | private void Initialize(string rootPath) 47 | { 48 | List vList = new List(); 49 | foreach (string suf in rgSuffix) 50 | { 51 | vList.AddRange(new DirectoryInfo(rootPath).GetFiles(suf)); 52 | } 53 | 54 | if (0 == vList.Count) 55 | { 56 | bottomToolStripStatusLabel.Text = "Invalid or empty directory."; 57 | } 58 | else 59 | { 60 | rgIMD = new ImgMetaData[vList.Count]; 61 | for (int i = 0; i < vList.Count; ++i) 62 | { 63 | //MessageBox.Show("002"); 64 | rgIMD[i] = new ImgMetaData(vList[i].FullName); 65 | } 66 | 67 | cur = ava = 0; 68 | LoadImg(); 69 | } 70 | this.mainPictureBox.Focus(); 71 | } 72 | 73 | private void FindAva() 74 | { 75 | int tar = -1; 76 | for (int i = ava + 1; i % rgIMD.Length != ava; ++i) 77 | { 78 | if (rgIMD[i % rgIMD.Length].IsEmpty()) 79 | { 80 | tar = i % rgIMD.Length; 81 | break; 82 | } 83 | } 84 | ava = tar; 85 | availableButton.Enabled = ava >= 0; 86 | } 87 | 88 | private void updatecombobox() 89 | { 90 | avaitext.Items.Clear(); 91 | avaitext.Text = ""; 92 | for (int i = 0; i < index; i++) 93 | { 94 | avaitext.Items.Add(buffer[i].name); 95 | } 96 | } 97 | 98 | private void OperateClick() 99 | { 100 | mainPictureBox.Enabled = Click0Label.Enabled = Click1Label.Enabled = Click2Label.Enabled = (bmp != null); 101 | Click0Label.Text = Click1Label.Text = Click2Label.Text = ""; 102 | ptr = -1; 103 | redrawButton.Enabled = sealButton.Enabled = Confirm.Enabled = false; 104 | undoButton.Enabled = clearButton.Enabled = avaitext.Enabled = (index > 0); 105 | deletetext.Enabled = edittext.Enabled = (selected >= 0); 106 | if (rgIMD != null) 107 | avalabel.Text = (cur+1) + "/" + rgIMD.Length; 108 | updatecombobox(); 109 | AcceptButton = nextButton; 110 | } 111 | 112 | private void DrawPanel(int sel) 113 | { 114 | if (bmp != null) 115 | { 116 | Graphics g = Graphics.FromImage(bmp); 117 | Point[] newpoint = new Point[4]; 118 | double alp, beta, le; 119 | int mx, my; 120 | for (int i = 0; i < index; ++i) 121 | { 122 | if (buffer[i].rgP[0].X < buffer[i].rgP[1].X) 123 | { 124 | newpoint[0] = new Point(buffer[i].rgP[0].X, buffer[i].rgP[0].Y); 125 | newpoint[2] = new Point(buffer[i].rgP[1].X, buffer[i].rgP[1].Y); 126 | } 127 | else 128 | { 129 | newpoint[0] = new Point(buffer[i].rgP[1].X, buffer[i].rgP[1].Y); 130 | newpoint[2] = new Point(buffer[i].rgP[0].X, buffer[i].rgP[0].Y); 131 | } 132 | if (buffer[i].angle == 0 || buffer[i].angle == 90 || buffer[i].angle == -90) 133 | { 134 | newpoint[1] = new Point(newpoint[0].X, newpoint[2].Y); 135 | newpoint[3] = new Point(newpoint[2].X, newpoint[0].Y); 136 | } 137 | else 138 | { 139 | alp = buffer[i].angle / 180.0 * Math.PI; 140 | beta = Math.Atan2((double)(newpoint[2].Y - newpoint[0].Y), (double)(newpoint[2].X - newpoint[0].X)); 141 | le = Math.Sqrt((newpoint[2].Y - newpoint[0].Y) * (newpoint[2].Y - newpoint[0].Y) + (newpoint[2].X - newpoint[0].X) * (newpoint[2].X - newpoint[0].X)); 142 | mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp)); 143 | my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp)); 144 | newpoint[1] = new Point(newpoint[0].X + mx, newpoint[0].Y + my); 145 | newpoint[3] = new Point(newpoint[2].X - mx, newpoint[2].Y - my); 146 | } 147 | if(i==sel) 148 | g.DrawPolygon(pen_sel, newpoint); 149 | else 150 | g.DrawPolygon(pen, newpoint); 151 | } 152 | } 153 | 154 | mainPictureBox.Image = bmp; 155 | undoButton.Enabled = clearButton.Enabled = index > 0; 156 | } 157 | 158 | private void AddPoly() 159 | { 160 | Graphics g = Graphics.FromImage(bmp); 161 | Point[] newpoint = new Point[4]; 162 | if (buffer[index - 1].rgP[0].X < buffer[index - 1].rgP[1].X) 163 | { 164 | newpoint[0] = new Point(buffer[index - 1].rgP[0].X, buffer[index - 1].rgP[0].Y); 165 | newpoint[2] = new Point(buffer[index - 1].rgP[1].X, buffer[index - 1].rgP[1].Y); 166 | } 167 | else 168 | { 169 | newpoint[0] = new Point(buffer[index - 1].rgP[1].X, buffer[index - 1].rgP[1].Y); 170 | newpoint[2] = new Point(buffer[index - 1].rgP[0].X, buffer[index - 1].rgP[0].Y); 171 | } 172 | if (buffer[index - 1].angle == 0 || buffer[index - 1].angle == 90 || buffer[index - 1].angle == -90) 173 | { 174 | newpoint[1] = new Point(newpoint[0].X, newpoint[2].Y); 175 | newpoint[3] = new Point(newpoint[2].X, newpoint[0].Y); 176 | } 177 | else 178 | { 179 | double alp = buffer[index - 1].angle / 180.0 * Math.PI; 180 | double beta = Math.Atan2((double)(newpoint[2].Y - newpoint[0].Y), (double)(newpoint[2].X - newpoint[0].X)); 181 | double le = Math.Sqrt((newpoint[2].Y - newpoint[0].Y) * (newpoint[2].Y - newpoint[0].Y) + (newpoint[2].X - newpoint[0].X) * (newpoint[2].X - newpoint[0].X)); 182 | int mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp)); 183 | int my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp)); 184 | newpoint[1] = new Point(newpoint[0].X + mx, newpoint[0].Y + my); 185 | newpoint[3] = new Point(newpoint[2].X - mx, newpoint[2].Y - my); 186 | } 187 | g.DrawPolygon(pen, newpoint); 188 | 189 | mainPictureBox.Image = bmp; 190 | undoButton.Enabled = clearButton.Enabled = true; 191 | } 192 | 193 | private void LoadImg() 194 | { 195 | //MessageBox.Show(cur.ToString()); 196 | Image img = rgIMD[cur].GetImg(); 197 | if (null != img) 198 | { 199 | bmp = new Bitmap(img); 200 | Poly[] rgPoly = rgIMD[cur].GetPoly(); 201 | if (rgPoly.Length > 0) 202 | { 203 | index = rgPoly.Length; 204 | Array.Copy(rgPoly, buffer, index); 205 | } 206 | 207 | bottomToolStripStatusLabel.Text = Path.GetFileName(rgIMD[cur].path); 208 | } 209 | else 210 | { 211 | bottomToolStripStatusLabel.Text = "Image corruption : " + Path.GetFileName(rgIMD[cur].path); 212 | } 213 | 214 | DrawPanel(-1); 215 | OperateClick(); 216 | 217 | if (ava == cur) 218 | { 219 | FindAva(); 220 | } 221 | 222 | nextButton.Enabled = (cur + 1) < rgIMD.Length; 223 | preButton.Enabled = cur > 0; 224 | } 225 | 226 | private void SaveImg() 227 | { 228 | if (rgIMD != null) 229 | { 230 | rgIMD[cur].SetRect(buffer, index); 231 | rgIMD[cur].SaveMetaDate(); 232 | } 233 | 234 | bmp = null; 235 | index = 0; 236 | } 237 | 238 | private void Finish() 239 | { 240 | SaveImg(); 241 | OperateClick(); 242 | 243 | rgIMD = null; 244 | 245 | nextButton.Enabled = false; 246 | preButton.Enabled = false; 247 | 248 | mainPictureBox.Image = null; 249 | bottomToolStripStatusLabel.Text = null; 250 | } 251 | 252 | public MainForm() 253 | { 254 | InitializeComponent(); 255 | 256 | maxH = mainPictureBox.Height; 257 | maxW = mainPictureBox.Width; 258 | } 259 | 260 | private void loadDirectoryToolStripMenuItem_Click(object sender, EventArgs e) 261 | { 262 | Finish(); 263 | 264 | if (dlgChooseDirectory.ShowDialog() == DialogResult.OK) 265 | { 266 | Initialize(dlgChooseDirectory.SelectedPath); 267 | } 268 | } 269 | 270 | private void MainForm_Load(object sender, EventArgs e) 271 | { 272 | bottomToolStripStatusLabel.Text = "Welcome."; 273 | } 274 | 275 | private void nextButton_Click(object sender, EventArgs e) 276 | { 277 | SaveImg(); 278 | ++cur; 279 | if (ava < 0) 280 | { 281 | ava = cur; 282 | } 283 | LoadImg(); 284 | } 285 | 286 | private void preButton_Click(object sender, EventArgs e) 287 | { 288 | SaveImg(); 289 | --cur; 290 | if (ava < 0) 291 | { 292 | ava = cur; 293 | } 294 | LoadImg(); 295 | } 296 | 297 | private void availableButton_Click(object sender, EventArgs e) 298 | { 299 | SaveImg(); 300 | cur = ava; 301 | LoadImg(); 302 | } 303 | 304 | private void mainPictureBox_Click(object sender, MouseEventArgs e) 305 | { 306 | if (e.X < rgIMD[cur].w+2*extend && e.Y < rgIMD[cur].h+2*extend) 307 | { 308 | ptr++; 309 | if (ptr < 2) 310 | clkpoint[ptr] = new Point(e.X, e.Y); 311 | 312 | sealButton.Enabled = false; 313 | if (0 == ptr) 314 | { 315 | undoButton.Enabled = false; 316 | clearButton.Enabled = false; 317 | redrawButton.Enabled = true; 318 | } 319 | else if (1 == ptr) 320 | { 321 | sealButton.Enabled = true; 322 | } 323 | else if (2 == ptr) 324 | { 325 | Bitmap dest = (Bitmap)bmp.Clone(); 326 | Graphics g = Graphics.FromImage(dest); 327 | Pen p = new Pen(Color.Blue, 1); 328 | if (clkpoint[1].X < clkpoint[0].X) 329 | { 330 | newpoint[0] = new Point(clkpoint[1].X, clkpoint[1].Y); 331 | newpoint[2] = new Point(clkpoint[0].X, clkpoint[0].Y); 332 | } 333 | else 334 | { 335 | newpoint[0] = new Point(clkpoint[0].X, clkpoint[0].Y); 336 | newpoint[2] = new Point(clkpoint[1].X, clkpoint[1].Y); 337 | } 338 | double pang = Math.Atan2((double)(e.Y - newpoint[0].Y), (double)(e.X - newpoint[0].X)); 339 | ang = (int)(pang / Math.PI * 180.0); 340 | Click2Label.Text = "" + ang + "°"; 341 | if (ang == 0 || ang == 90 || ang == -90) 342 | { 343 | newpoint[1] = new Point(newpoint[0].X, newpoint[2].Y); 344 | newpoint[3] = new Point(newpoint[2].X, newpoint[0].Y); 345 | } 346 | else 347 | { 348 | double alp = ang / 180.0 * Math.PI; 349 | double beta = Math.Atan2((double)(newpoint[2].Y - newpoint[0].Y), (double)(newpoint[2].X - newpoint[0].X)); 350 | double le = Math.Sqrt((newpoint[2].Y - newpoint[0].Y) * (newpoint[2].Y - newpoint[0].Y) + (newpoint[2].X - newpoint[0].X) * (newpoint[2].X - newpoint[0].X)); 351 | int mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp)); 352 | int my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp)); 353 | newpoint[1] = new Point(newpoint[0].X + mx, newpoint[0].Y + my); 354 | newpoint[3] = new Point(newpoint[2].X - mx, newpoint[2].Y - my); 355 | } 356 | g.DrawPolygon(p, newpoint); 357 | g.Dispose(); 358 | p.Dispose(); 359 | Graphics g1 = this.mainPictureBox.CreateGraphics(); 360 | g1.DrawImage(dest, new Point(0, 0)); 361 | g1.Dispose(); 362 | dest.Dispose(); 363 | sealButton.Enabled = false; 364 | Confirm.Enabled = true; 365 | } 366 | } 367 | } 368 | 369 | private void mainPictureBox_Move(object sender, MouseEventArgs e) 370 | { 371 | if (e.X < rgIMD[cur].w + 2 * extend && e.Y < rgIMD[cur].h + 2 * extend) 372 | { 373 | this.Cursor = Cursors.Cross; 374 | Click0Label.Text = "" + e.X + "/" + (rgIMD[cur].w + 2 * extend) + ", " + e.Y + "/" + (rgIMD[cur].w + 2 * extend); 375 | 376 | if (ptr == -1) 377 | { 378 | Bitmap dest = (Bitmap)bmp.Clone(); 379 | Graphics g = Graphics.FromImage(dest); 380 | Pen p = new Pen(Color.Blue, 1); 381 | g.DrawLine(p, new Point(e.X, e.Y - 20), new Point(e.X, e.Y + 20)); 382 | g.DrawLine(p, new Point(e.X - 20, e.Y), new Point(e.X + 20, e.Y)); 383 | g.Dispose(); 384 | p.Dispose(); 385 | Graphics g1 = this.mainPictureBox.CreateGraphics(); 386 | g1.DrawImage(dest, new Point(0, 0)); 387 | g1.Dispose(); 388 | dest.Dispose(); 389 | } 390 | else if (ptr == 0) { 391 | Bitmap dest = (Bitmap)bmp.Clone(); 392 | Graphics g = Graphics.FromImage(dest); 393 | Pen p = new Pen(Color.Blue, 1); 394 | newpoint[0] = clkpoint[0]; 395 | newpoint[2].X = e.X; 396 | newpoint[2].Y = e.Y; 397 | newpoint[1].X = clkpoint[0].X; 398 | newpoint[1].Y = e.Y; 399 | newpoint[3].X = e.X; 400 | newpoint[3].Y = clkpoint[0].Y; 401 | g.DrawPolygon(p, newpoint); 402 | g.Dispose(); 403 | p.Dispose(); 404 | Graphics g1 = this.mainPictureBox.CreateGraphics(); 405 | g1.DrawImage(dest, new Point(0, 0)); 406 | g1.Dispose(); 407 | dest.Dispose(); 408 | } 409 | else if (ptr == 1) 410 | { 411 | Bitmap dest = (Bitmap)bmp.Clone(); 412 | Graphics g = Graphics.FromImage(dest); 413 | Pen p = new Pen(Color.Blue, 1); 414 | if (clkpoint[1].X < clkpoint[0].X) 415 | { 416 | newpoint[0] = new Point(clkpoint[1].X, clkpoint[1].Y); 417 | newpoint[2] = new Point(clkpoint[0].X, clkpoint[0].Y); 418 | } 419 | else 420 | { 421 | newpoint[0] = new Point(clkpoint[0].X, clkpoint[0].Y); 422 | newpoint[2] = new Point(clkpoint[1].X, clkpoint[1].Y); 423 | } 424 | double pang = Math.Atan2((double)(e.Y - newpoint[0].Y), (double)(e.X - newpoint[0].X)); 425 | ang = (int)(pang / Math.PI * 180.0); 426 | Click2Label.Text = "" + ang + "°"; 427 | if (ang == 0 || ang == 90 || ang == -90) 428 | { 429 | newpoint[1] = new Point(newpoint[0].X, newpoint[2].Y); 430 | newpoint[3] = new Point(newpoint[2].X, newpoint[0].Y); 431 | } 432 | else 433 | { 434 | double alp = ang / 180.0 * Math.PI; 435 | double beta = Math.Atan2((double)(newpoint[2].Y - newpoint[0].Y), (double)(newpoint[2].X - newpoint[0].X)); 436 | double le = Math.Sqrt((newpoint[2].Y - newpoint[0].Y) * (newpoint[2].Y - newpoint[0].Y) + (newpoint[2].X - newpoint[0].X) * (newpoint[2].X - newpoint[0].X)); 437 | int mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp)); 438 | int my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp)); 439 | newpoint[1] = new Point(newpoint[0].X + mx, newpoint[0].Y + my); 440 | newpoint[3] = new Point(newpoint[2].X - mx, newpoint[2].Y - my); 441 | } 442 | g.DrawPolygon(p,newpoint); 443 | g.Dispose(); 444 | p.Dispose(); 445 | Graphics g1 = this.mainPictureBox.CreateGraphics(); 446 | g1.DrawImage(dest, new Point(0, 0)); 447 | g1.Dispose(); 448 | dest.Dispose(); 449 | } 450 | } 451 | else 452 | { 453 | this.Cursor = Cursors.Default; 454 | Click0Label.Text = "" + e.X + "/" + (rgIMD[cur].w + 2 * extend) + ", " + e.Y + "/" + (rgIMD[cur].w + 2 * extend); 455 | } 456 | } 457 | 458 | private void buttonPanel_Move(object sender, MouseEventArgs e) 459 | { 460 | this.Cursor = Cursors.Default; 461 | } 462 | 463 | private void mainMenuStrip_Move(object sender, MouseEventArgs e) 464 | { 465 | this.Cursor = Cursors.Default; 466 | } 467 | 468 | private void MainForm_FormClosing(object sender, FormClosingEventArgs e) 469 | { 470 | Finish(); 471 | } 472 | 473 | private void exitToolStripMenuItem_Click(object sender, EventArgs e) 474 | { 475 | Finish(); 476 | this.Dispose(); 477 | } 478 | 479 | private void undoButton_Click(object sender, EventArgs e) 480 | { 481 | bmp = new Bitmap(rgIMD[cur].GetImg()); 482 | --index; 483 | DrawPanel(-1); 484 | } 485 | 486 | private void clearButton_Click(object sender, EventArgs e) 487 | { 488 | bmp = new Bitmap(rgIMD[cur].GetImg()); 489 | index = 0; 490 | DrawPanel(-1); 491 | } 492 | 493 | private void aboutToolStripMenuItem_Click(object sender, EventArgs e) 494 | { 495 | string strSuf = ""; 496 | foreach (string suf in rgSuffix) 497 | { 498 | strSuf += suf + " "; 499 | } 500 | MessageBox.Show("Image Labeling Toolbox V1.25 (4 Points Polygon + 2 Points Rectangle). \n" 501 | + "Designed by Cao Yang. \n" 502 | + "Max Label : " + maxLebel + "\n" 503 | + "Suffix : " + strSuf); 504 | } 505 | 506 | private void redrawButton_Click(object sender, EventArgs e) 507 | { 508 | this.mainPictureBox.Image = bmp; 509 | OperateClick(); 510 | } 511 | 512 | private void sealButton_Click(object sender, EventArgs e) 513 | { 514 | if (1 == ptr && clkpoint[0].X != clkpoint[1].X && clkpoint[0].Y != clkpoint[1].Y) 515 | { 516 | newpoint[0] = clkpoint[0]; 517 | newpoint[2] = clkpoint[1]; 518 | newpoint[1].X = clkpoint[0].X; 519 | newpoint[1].Y = clkpoint[1].Y; 520 | newpoint[3].X = clkpoint[1].X; 521 | newpoint[3].Y = clkpoint[0].Y; 522 | ang = 0; 523 | Bitmap dest = (Bitmap)bmp.Clone(); 524 | Graphics g = Graphics.FromImage(dest); 525 | Pen p = new Pen(Color.Blue, 1); 526 | g.DrawPolygon(p, newpoint); 527 | g.Dispose(); 528 | p.Dispose(); 529 | Graphics g1 = this.mainPictureBox.CreateGraphics(); 530 | g1.DrawImage(dest, new Point(0, 0)); 531 | g1.Dispose(); 532 | dest.Dispose(); 533 | ptr = 2; 534 | sealButton.Enabled = false; 535 | Confirm.Enabled = true; 536 | Click2Label.Text = "" + ang + "°"; 537 | } 538 | else 539 | { 540 | MessageBox.Show("Wrong Seal!"); 541 | } 542 | //OperateClick(); 543 | } 544 | 545 | private void Confirm_Click(object sender, EventArgs e) 546 | { 547 | buffer[index] = new Poly(clkpoint, ang); 548 | ++index; 549 | Zoom f = new Zoom(index); 550 | f.mf = this; 551 | Image img = new Bitmap(800,600); 552 | Image org = new Bitmap(rgIMD[cur].GetImg()); 553 | Graphics g = Graphics.FromImage(img); 554 | int lx, rx, ly, ry; 555 | double ra, rax, ray; 556 | lx = Math.Min(newpoint[0].X, newpoint[1].X); lx = Math.Min(lx, newpoint[2].X); lx = Math.Min(lx, newpoint[3].X); 557 | rx = Math.Max(newpoint[0].X, newpoint[1].X); rx = Math.Max(rx, newpoint[2].X); rx = Math.Max(rx, newpoint[3].X); 558 | ly = Math.Min(newpoint[0].Y, newpoint[1].Y); ly = Math.Min(ly, newpoint[2].Y); ly = Math.Min(ly, newpoint[3].Y); 559 | ry = Math.Max(newpoint[0].Y, newpoint[1].Y); ry = Math.Max(ry, newpoint[2].Y); ry = Math.Max(ry, newpoint[3].Y); 560 | rax = 800.0 / (double)(rx - lx); 561 | ray = 600.0 / (double)(ry - ly); 562 | ra = Math.Min(rax, ray); 563 | g.Clear(Color.White); 564 | g.InterpolationMode = InterpolationMode.High; 565 | g.SmoothingMode = SmoothingMode.HighQuality; 566 | g.DrawImage(org, new Rectangle(0, 0, (int)(ra*(rx-lx)), (int)(ra*(ry-ly))), new Rectangle(lx,ly,rx-lx,ry-ly), GraphicsUnit.Pixel); 567 | f.setdata(ra,lx,ly); 568 | f.Zoompicbox.Image = img; 569 | f.Show(); 570 | AddPoly(); 571 | selected = -1; 572 | OperateClick(); 573 | } 574 | 575 | public void updatename(String orcname, int textidx) 576 | { 577 | buffer[textidx - 1].name = orcname; 578 | } 579 | public int getang() 580 | { 581 | return buffer[index - 1].angle; 582 | } 583 | 584 | public void UpdatePanel() 585 | { 586 | OperateClick(); 587 | bmp = new Bitmap(rgIMD[cur].GetImg()); 588 | DrawPanel(-1); 589 | } 590 | 591 | private void menuToolStripMenuItem_Click(object sender, EventArgs e) 592 | { 593 | Finish(); 594 | if (dlgChooseDirectory.ShowDialog() == DialogResult.OK) 595 | { 596 | Initialize(dlgChooseDirectory.SelectedPath); 597 | } 598 | } 599 | 600 | private void exitToolStripMenu_Click(object sender, EventArgs e) 601 | { 602 | Finish(); 603 | this.Dispose(); 604 | } 605 | 606 | private void avaitext_SelectedIndexChanged(object sender, EventArgs e) 607 | { 608 | selected = avaitext.SelectedIndex; 609 | deletetext.Enabled = true; 610 | edittext.Enabled = true; 611 | this.buttonPanel.Focus(); 612 | DrawPanel(selected); 613 | } 614 | 615 | private void deletetext_Click(object sender, EventArgs e) 616 | { 617 | for (int i = selected; i < index - 1; i++) 618 | { 619 | buffer[i] = buffer[i + 1].Clone(); 620 | } 621 | index--; 622 | selected = -1; 623 | OperateClick(); 624 | bmp = new Bitmap(rgIMD[cur].GetImg()); 625 | DrawPanel(-1); 626 | } 627 | 628 | private void edittext_Click(object sender, EventArgs e) 629 | { 630 | Zoom f = new Zoom(selected + 1); 631 | f.mf = this; 632 | Image img = new Bitmap(800, 600); 633 | Image org = new Bitmap(rgIMD[cur].GetImg()); 634 | Graphics g = Graphics.FromImage(img); 635 | int lx, rx, ly, ry; 636 | double ra, rax, ray; 637 | Point[] newp = new Point[4]; 638 | newp[0] = new Point(buffer[selected].rgP[0].X, buffer[selected].rgP[0].Y); 639 | newp[2] = new Point(buffer[selected].rgP[1].X, buffer[selected].rgP[1].Y); 640 | if (buffer[selected].angle == 0 || buffer[selected].angle == 90 || buffer[selected].angle == -90) 641 | { 642 | newp[1] = new Point(newp[0].X, newp[2].Y); 643 | newp[3] = new Point(newp[2].X, newp[0].Y); 644 | } 645 | else 646 | { 647 | double alp = buffer[selected].angle / 180.0 * Math.PI; 648 | double beta = Math.Atan2((double)(newp[2].Y - newp[0].Y), (double)(newp[2].X - newp[0].X)); 649 | double le = Math.Sqrt((newp[2].Y - newp[0].Y) * (newp[2].Y - newp[0].Y) + (newp[2].X - newp[0].X) * (newp[2].X - newp[0].X)); 650 | int mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp)); 651 | int my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp)); 652 | newp[1] = new Point(newp[0].X + mx, newp[0].Y + my); 653 | newp[3] = new Point(newp[2].X - mx, newp[2].Y - my); 654 | } 655 | lx = Math.Min(newp[0].X, newp[1].X); lx = Math.Min(lx, newp[2].X); lx = Math.Min(lx, newp[3].X); 656 | rx = Math.Max(newp[0].X, newp[1].X); rx = Math.Max(rx, newp[2].X); rx = Math.Max(rx, newp[3].X); 657 | ly = Math.Min(newp[0].Y, newp[1].Y); ly = Math.Min(ly, newp[2].Y); ly = Math.Min(ly, newp[3].Y); 658 | ry = Math.Max(newp[0].Y, newp[1].Y); ry = Math.Max(ry, newp[2].Y); ry = Math.Max(ry, newp[3].Y); 659 | rax = 800.0 / (double)(rx - lx); 660 | ray = 600.0 / (double)(ry - ly); 661 | ra = Math.Min(rax, ray); 662 | g.Clear(Color.White); 663 | g.InterpolationMode = InterpolationMode.High; 664 | g.SmoothingMode = SmoothingMode.HighQuality; 665 | g.DrawImage(org, new Rectangle(0, 0, (int)(ra * (rx - lx)), (int)(ra * (ry - ly))), new Rectangle(lx, ly, rx - lx, ry - ly), GraphicsUnit.Pixel); 666 | f.setdata(ra, lx, ly); 667 | f.setstr(buffer[selected].name); 668 | f.Zoompicbox.Image = img; 669 | f.Show(); 670 | selected = -1; 671 | OperateClick(); 672 | } 673 | 674 | private void remove_Click(object sender, EventArgs e) 675 | { 676 | rgIMD[cur].deldetimg(); 677 | ++cur; 678 | if (ava < 0) 679 | { 680 | ava = cur; 681 | } 682 | LoadImg(); 683 | } 684 | } 685 | } 686 | 687 | -------------------------------------------------------------------------------- /text-label/ImageLabelFramework/Zoom.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 | AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA 124 | AAD///////////////////////////////////////////////////////////////////////////// 125 | //////////////////////////////////////////////////////////////////////////////// 126 | //////////////////////////////////////////////////////////////////////////////// 127 | //////////////////////////////////////////////////////////////79///+/f7//v/8//// 128 | +v/7+vX//fz4//36+v/9+fv/+Pn1//z8+P/7/Pf/9/f1//7//P/+//3//v/9//7+/f////////////// 129 | //////////////////////////////////////////////////////////////////////////////// 130 | //////////////////////////////////////////////////////////////////////////////// 131 | //////////////////////////////////////////////////////////////////////////////// 132 | //////////////////////////////////////////////////////////////////////////////// 133 | //////////////////////////////////////////////////////////////////////////////// 134 | //////////////////////////////////////////////////////////////////////////////// 135 | //////////////////////////////////////////////////////////////////////////////// 136 | /////////////////////////v3+//7+/f/+//v////6//78+f///Pz//vr8//76/v/49fv//Pr+//j2 137 | +v/8+/3//v3+//7+/f/+//z//v/8//////////////////////////////////////////////////// 138 | //////////////////////////////////////////////////////////////////////////////// 139 | //////////////////////////////////////////////////////////////////////////////// 140 | //////////////////////////////////////////////////////////////////////////////// 141 | //////////////////////////////////////////////////////////////////////////////// 142 | //////////////////////////////////////////////////////////////////////////////// 143 | //////////////////////////////////////////////////////////////////////////////// 144 | ///////////////////////////////////////////////////////////////////+//v//v/6//7/ 145 | +v////r//fv6//z4/P/68/r//PT8//32///48f7/+vT+//j0/v/+/P///v79//7/+v/+//n///////// 146 | //////////////////////////////////////////////////////////////////////////////// 147 | //////////////////////////////////////////////////////////////////////////////// 148 | //////////////////////////////////////////////////////////////////////////////// 149 | //////////////////////////////////////////////////////////////////////////////// 150 | //////////////////////////////////////////////////////////////////////////////// 151 | //////////////////////////////////////////////////////////////////////////////// 152 | //////////////////////////////////////////////////////////////////////////////// 153 | //////////////////////////////7/+f/+//n//v/6///+/P/8+vz//PX9/8W6yv+sn7T/tarH/1FG 154 | Zv9NRV7/7Obw//77///+/v7//v/6//7/9/////////////////////////////////////////////// 155 | //////////////////////////////////////////////////////////////////////////////// 156 | //////////////////////////////////////////////////////////////////////////////// 157 | //////////////////////////////////////////////////////////////////////////////// 158 | //////////////////////////////////////////////////////////////////////////////// 159 | //////////////////////////////////////////////////////////////////////////////// 160 | //////////////////////////////////////////////////////////////////////////////// 161 | /////////////////////////////////////////////////////////////////////////v/5//7/ 162 | +f/+//r///79//v3/P/Jwc3/MCM6/zEiPf8tIkT/U0ho/1NKZP+Yk6L//vv///7+/v/+//r//v/3//// 163 | //////////////////////////////////////////////////////////////////////////////// 164 | //////////////////////////////////////////////////////////////////////////////// 165 | //////////////////////////////////////////////////////////////////////////////// 166 | //////////////////////////////////////////////////////////////////////////////// 167 | //////////////////////////////////////////////////////////////////////////////// 168 | //////////////////////////////////////////////////////////////////////////////// 169 | //////////////////////////////////////////////////////////////////////////////// 170 | ///////////////////////////////////+//z//v/8//7+/P///f7//fn+/4yDkv88Lkf/OClG/5OM 171 | o/+knK7/dXCA/4uHkP/+/P///v79//7/+v/+//n///////////////////////////////////////// 172 | //////////////////////////////////////////////////////////////////////////////// 173 | //////////////////////////////////////////////////////////////////////////////// 174 | //////////////////////////////////////////////////////////////////////////////// 175 | //////////////////////////////////////////////////////////////////////////////// 176 | //////////////////////////////////////////////////////////////////////////////// 177 | //////////////////////////////////////////////////////////////////////////////// 178 | //////////////////////////////////////////////////////////////////////////////79 179 | /v/+/f7//v3+///8////+///iX+O/y8iOf/Bs8f/+vf8//Ty9v/18/b/lJSW//79/v/+/v3//v/8//7/ 180 | /P////////////////////////////////////////////////////////////////////////////// 181 | //////////////////////////////////////////////////////////////////////////////// 182 | //////////////////////////////////////////////////////////////////////////////// 183 | //////////////////////////////////////////////////////////////////////////////// 184 | //////////////////////////////////////////////////////////////////////////////// 185 | //////////////////////////////////////////////////////////////////////////////// 186 | //////////////////////////////////////////////////////////////////////////////// 187 | /////////////////////////////////////////vz///78///+/f////z///z3/f+Mg5L/YlZr//ru 188 | /f/4+fT/+fr1/9PU0P+9vrv//v/8//7//f/+//3//v79//////////////////////////////////// 189 | //////////////////////////////////////////////////////////////////////////////// 190 | //////////////////////////////////////////////////////////////////////////////// 191 | //////////////////////////////////////////////////////////////////////////////// 192 | //////////////////////////////////////////////////////////////////////////////// 193 | //////////////////////////////////////////////////////////////////////////////// 194 | //////////////////////////////////////////////////////////////////////////////// 195 | /////////////////////////////////////////f39//39/f/9/f3/+/v7//////////////////// 196 | ///9/////f////3////9////+vv9/4yNkf/Hx8r/9PT5//j5+//2+Pn/u729/+Lk4//3+/f/+v34//b6 197 | 8//6/fb/+fr1//X28v/9/vr/+/v5/////v////7//////////////v////7///////////7////+//// 198 | /P////z////8//////////////////////////////////////////////////////////////////// 199 | //////////////////////////////////////////////////////////////////////////////// 200 | //////////////////////////////////////////////////////////////////////////////// 201 | //////////////////////////////////////////////////////////////////////////////// 202 | //////////////////////////////////////////////////////////////////////////////// 203 | //////////////////////////////////////////////////////////////////////////////// 204 | ///6+vr//Pz8//r6+v/8/Pz///////////////////////3////9/////f////3////3+fr/mpuf//r6 205 | /f/y8vb/8vL3//b3+v+wsbP/mpyc//v9/P/09vT/+Pr4//b59f/7+/v/+/v7//r5+v/49/j///////// 206 | ///////////////+/////v////7///////////7////9/////P////z///////////////////////// 207 | //////////////////////////////////////////////////////////////////////////////// 208 | //////////////////////////////////////////////////////////////////////////////// 209 | //////////////////////////////////////////////////////////////////////////////// 210 | //////////////////////////////////////////////////////////////////////////////// 211 | //////////////////////////////////////////////////////////////////////////////// 212 | //////////////////////////////////////////////39/f/5+fn//Pz8//39/f////////////// 213 | /////////f////3////9/////f///6+ws//HyMz/6uvw//Ly9v/w8Pf/5uXt/5WVm/+Li5D/+fr8//f5 214 | +//X2dv/2tzc/6Ccpf+em6T/7erx//z6/v///v////7///////////7///7////+/////v////7////+ 215 | //////7////+/////v////////////////////////////////////////////////////////////// 216 | //////////////////////////////////////////////////////////////////////////////// 217 | //////////////////////////////////////////////////////////////////////////////// 218 | //////////////////////////////////////////////////////////////////////////////// 219 | //////////////////////////////////////////////////////////////////////////////// 220 | ///////////////////////////////////////////////+/////v////7////+/////v////7////+ 221 | /////v//+Pr7//3////Y2tv/4uTl//3////9/////f////3////9/////f////3////9////lJWY/9zd 222 | 4f/g4eb/yMjO/5aVnv+npq//hIOM/4B/iP/Ew8v/m5ug/4WEjP+VlJz/oJyu/9bT4f+DgY3/9vT7//39 223 | ///9/v///f////3//v/9/P///f3///39///9/v///f7///3////9/////f////////////////////// 224 | //////////////////////////////////////////////////////////////////////////////// 225 | //////////////////////////////////////////////////////////////////////////////// 226 | //////////////////////////////////////////////////////////////////////////////// 227 | //////////////////////////////////////////////////////////////////////////////// 228 | ///////////////////////////////////////////////////////////////////7+/v//f39//v7 229 | +//7+/v/+fj6//v6+//5+Pr//fz+//f2+P/7+vz/z87Q/7Gws/+tr7L/j5GU/8zO0P/V19j/vb/C/8PF 230 | yP/t7/H/+fz8/93f3//Exsb/wMLC/77Awf+Fh4n/vr/D/7Cwtf+JiY//3dzj/8XEzP+wr7j/eXiB/3h3 231 | gf92dX//eHeB/39+iP+sqbz/wb/Q/5qYpv+LipX/dXZ9/7y/wf+oq6v/7PDv/6iosP/KytH/uLnB/6qr 232 | sf+9v8P/9vj7//f5+//3+vv/9/f3//f39//9/f3/+/v7//39/f/6+vr//f39//39/f////////////// 233 | //////////////////////////////////////////////////////////////////////////////// 234 | //////////////////////////////////////////////////////////////////////////////// 235 | //////////////////////////////////////////////////////////////////////////////// 236 | //////////////////////////////////////////////////////////////////////////////// 237 | //////////////////////////////n5+f/9/f3//Pz8//v7+//39vj/+vn7//v6/P/6+fv/397i/6Wk 238 | qP+CgYX//Pv9//T3+v/09/r/4+bq//Dz9v/r7vH/8/b4/4iLj/+cn6L/rK6u//L09P/n6en/5+nq/93e 239 | 4P+Oj5P/tba6/9ra3v/p6u7/+Pj8//Hx9/+bmqL/c3J7/318hv+zsrz/eXiC/62suv+JiZb/f4CL/1tc 240 | Zf9vcnf/r7K3/8fKzf+OkpT/v7/K/6ansv9jZG7/wcLL/8/S2f+anaL/q66z/+bp7P/4+Pj//Pz8//z8 241 | /P/6+vr/+fn5//7+/v/7+/v//v7+//////////////////////////////////////////////////// 242 | //////////////////////////////////////////////////////////////////////////////// 243 | //////////////////////////////////////////////////////////////////////////////// 244 | //////////////////////////////////////////////////////////////////////////////// 245 | /////////////////////////////////////////////////////////////////////////Pz8//v7 246 | +//7+/v/+vr6//v6/f+4trr/d3Z7/3Jxdv90cnf/5+Xp//f1+v/e3eH/0NTY//b5+//r7/L/8/b5/+rt 247 | 8P/1+fv/aGtw/8zQ1P+mqKj/7e/v//b4+P/j5eb/7u/x//T1+P/u7vL/9PT5/9rc3f/l5+j/w8TH/+Pk 248 | 6P+qqq//TEtU/56dp/+cm6X/f4OI/2xwdf9rbnT/mp6i/1NXW//Gyc7/297j/8bJzv/t7vr/kpOf/5KT 249 | nv+Mjpj/3+Dp/+bo8P/c3+b/pqqv//j4+P/5+fn//Pz8//z8/P/6+vr/+Pj4//39/f/8/Pz///////// 250 | //////////////////////////////////////////////////////////////////////////////// 251 | //////////////////////////////////////////////////////////////////////////////// 252 | //////////////////////////////////////////////////////////////////////////////// 253 | //////////////////////////////////////////////////////////////////////////////// 254 | ///////////////////////////////////7+/v/8/Pz//Hx8f/CwsL/pKKo/3Z0ev/KyM3/rKqw/29t 255 | c/+7ub//7evw//v5/f/z9/v/8vb6//j8/v/y9vn/9fn8/+7y9f9xdXr/z9PY/52fn//09vb/9/n5//T2 256 | 9//x8/T/9PX5//b3+v/5+fz/9/n4//n7+//09vb/z9HT//Dw9f++vsX/oaCp/4eGkP92e3v/vcLD/9vg 257 | 4f+XnJ7/1tve/5OXm/+xtbr/mZ2i/72+zP+Gh5X/oaOu/4iKlf+pq7X/19ni/9rd5P/Y2+P/tLS0/5eX 258 | l/+pqan/q6ur/8LCwv+qqqr/9fX1//j4+P////////////////////////////////////////////// 259 | //////////////////////////////////////////////////////////////////////////////// 260 | //////////////////////////////////////////////////////////////////////////////// 261 | //////////////////////////////////////////////////////////////////////////////// 262 | /////////////////////////////////////////////////////////Pv7//j6+P/1+/f/8fv2/+73 263 | 9f96f4D/l5ac/353gv+Lipv/bG52/3V5ef9kZ2r/iIiV/6emuP/b3en/9Pj8//3/7v/5/fz/8vb//+/3 264 | ///t+/3/3+zl/3J3dv+wrbb/lZSl/9XX6P/V3e7/z97s/8zd5v/V6Or/5PTv//H99//9/f3//f78//f5 265 | 9v/j5+H/9/r3/8HGxf/V2Nv/jY+W/4CGjP+5usb/4uDr/+/u8v/X2dT/+f35/6ersP/g4vD/o6eY/3N2 266 | dP+lpLT/gX6e/4qHpv/S0uH/9vv0/8zUvv/o6/f/ycvY/7q9w//t8PL/7O7t//b29P+1s7P/+/n6//r6 267 | +v/9/f3/+vr6//v7+/////////////////////////////////////////////////////////////// 268 | //////////////////////////////////////////////////////////////////////////////// 269 | //////////////////////////////////////////////////////////////////////////////// 270 | //////////////////////////////////////////////////////////////////////////////// 271 | ///////////////////8+fz/9vb4//X6+//V293/cXd7/6Kkq/+gnqj/z8jT/66suP/c3OH/qKqq/6Cg 272 | p//Iwtf/W1Rw/1FLZf/W0ub/9/n1/+/y+P/p7/v/3On0/9bm5f/f6+r/e3yL/5qPsf9LM3z/U0R//3Nx 273 | lv/d6Pb/2Ors/9jp6v/a6O7/3ej0/+vw9//u9Pn/7fL1/+3y9P/m6+3/1tng/93f6v+Cg5D/gYSN/7m4 274 | yf9PSGH/U0ti/765xf/c3d//5uzp/8TNxv/08fv/7e71/97k5P/S3Nn/uMK//9je4P/5+v//9/T7/+Lp 275 | 6v+krKr/0NbT//T69v/N0M7/8fHz/+rn7f+koKn/rq6u//b29v/8/Pz/+vr6//////////////////// 276 | //////////////////////////////////////////////////////////////////////////////// 277 | //////////////////////////////////////////////////////////////////////////////// 278 | //////////////////////////////////////////////////////////////////////////////// 279 | //////////////////////////////////////////////////////////////77/v/19Pf/hoeP/3p8 280 | hf+KjJb/urrD/9TR2//OyNP/6uru/9zc3P/x8PH/qqWy/21egP8+Kln/NiFR/3Zii//d2er/2tvr/9vk 281 | 7P/S5OH/1urj/9vk7P+Ohq7/SDN0/3pHzv9rRbL/XEmO/42Nrf/P3OX/1ubs/93q+P/X4/r/2Ofv/9jm 282 | 7f/e7PD/1uHk/83W2//S2OH/zc/d/39/kP98fon/kIuk/zMkUP89KV7/MR5P/5SKpf/b3uH/2OHU//b2 283 | /f/U2d3/3unk/668sv/B0Mb/2+Xl//f5///49f//7vfx/4+akf/x+fL/9v33//n+/P/z9vj/zc3V//Hv 284 | +f+vr6//7+/v//f39//9/f3///////////////////////////////////////////////////////// 285 | //////////////////////////////////////////////////////////////////////////////// 286 | //////////////////////////////////////////////////////////////////////////////// 287 | //////////////////////////////////////////////////////////////////////////////// 288 | /////////////////////////P37//38/P/NzNH/ZmRu/4B9h//LytH/1tXX/+zs7P/w9PH/+Pn2//j2 289 | +P/Qxdj/PCZV/0IiY/8yEFP/US9u/4J3mP/Z1+r/2+fm/9To2//V5+D/29/y/25fmf9kSJ3/cjXL/2o3 290 | u/9yTrT/UD2D/6Why//e5vr/3Or4/9Xm8f/T6uz/1uzs/9bq6f/U5uT/zNnZ/87X3P+9wcr/g4SQ/4mG 291 | l/9JPmD/Pydl/0kmf/9/Wbv/RSd3/2VWhP/PzN7/093P/9/o4f/N19n/iZOc/87X4v/W3+X/3+bl/9zk 292 | 3f+wsrv/oKSq/+Hm6P/3/Pv/9fr5//f7+//0+Pn/7/L1/7Ozs//4+Pj//v7+//f39/////////////// 293 | //////////////////////////////////////////////////////////////////////////////// 294 | //////////////////////////////////////////////////////////////////////////////// 295 | //////////////////////////////////////////////////////////////////////////////// 296 | ///////////////////////////////////////////////////////////////////8/fX/+vv3/+Ph 297 | 5P/c2OD/39rh/+vp7P/o6uT/+/zz//j9+f/5/fr/8/L3/2dYd/9AI13/Rh9s/0cea/9MIWv/OSdS/5eQ 298 | qf/R19v/1uPf/9/n8v+Kg63/UTmE/188mv91P7r/cj68/3hHxf98U8f/Vz2Y/6+m2P/f5/n/2u3u/9Tp 299 | 7//W6vD/1+ns/9fl6f/P2t7/09nh/5OVof+np7b/gneY/ygWRP8+I2v/XzGk/4NM2f99StP/bEaw/1E3 300 | hf+3ucD/3N/o/5Wbpv++xtD/ydLb/83V2f/O1NT/fIF9/0g9Zv9ORGj/wbvV/9zb6f/t7vT/8vb2//f7 301 | +v+boZz//v7+//7+/v/+/v7///////////////////////////////////////////////////////// 302 | //////////////////////////////////////////////////////////////////////////////// 303 | //////////////////////////////////////////////////////////////////////////////// 304 | //////////////////////////////////////////////////////////////////////////////// 305 | //////////////////////////////n99f/8/Pv/hH2I/52TpP/f1eP/7Obv//v89//4/PD/8/36/+30 306 | 8//d3ej/aFh9/0gqav87EmL/VSd3/0cZZf88IFn/OSVQ/5yTsv+5tNf/ZFeQ/2lPoP9wTKr/XjSX/3NK 307 | qf9tPq7/d0HI/4BJ2v97TNH/ZUir/19Wkf+OkrP/tbTX/7y72//AvuH/v7vh/7ex2P+tpM7/a16N/3hr 308 | nf9QN3z/Ujd7/0EdcP97ScD/hEXh/4ND6/+BS+H/gFPS/1Q4jv+FcrL/iISh/8rR0//M19D/0NTZ/6yl 309 | wv88LVv/MRZY/z8oYv9aRnb/xrfb/9fO5v/Vz9//bGl0/+7t8/////////////7+/v/9/f3///////// 310 | //////////////////////////////////////////////////////////////////////////////// 311 | //////////////////////////////////////////////////////////////////////////////// 312 | //////////////////////////////////////////////////////////////////////////////// 313 | ////////////////////////////////////////////////////////////////////////+vv+/+7o 314 | 9P9BMVD/Mx5G/3xnjv/q3/D/9/T6/+3w7f/a6en/097h/9na6f+CdZ3/RShq/zoSYf9RJHH/SBtg/0ce 315 | bP81E1n/Nxxj/1I0j/96U8n/glLU/4NQyf9UIY3/bEil/3BEsf92QMT/gkbb/39G3f+CUt3/e1fP/3VZ 316 | xP9rSq//ZkWp/2FCo/9hQqH/Y0Ok/2JBpv94Vb7/fVnE/4pf0f+BW7v/Mw9i/4RVvv+KTt3/iEft/4ZK 317 | 6f99SNf/gk3h/3hOxP9ROoX/jISp/7y40P/Eu93/SDNq/0ksdv88Gl7/RiVm/z4hW/9ROGv/ppC//19P 318 | d/82JE//gW+Y//z8/P/+/v7//v7+//39/f////////////////////////////////////////////// 319 | //////////////////////////////////////////////////////////////////////////////// 320 | //////////////////////////////////////////////////////////////////////////////// 321 | //////////////////////////////////////////////////////////////////////////////// 322 | ///////////////////////////////////39P//1svk/1I9bP9AJF3/Oh5W/047ZP+0rMH/3Nzk/8rb 323 | 3v/P3OH/oKS2/01Ba/9HK23/OxRi/0keZv9AFlb/UiF+/2Q4k/98Urr/iFfc/31D5P+JSu7/jU/c/2Qq 324 | n/9WMJv/b0O2/3RAv/+GStf/g0Xe/4JF6f98ROz/e0by/4VL4P+FTeD/g07e/4NO3f+FUOD/iVTo/3xG 325 | 3v+ASeT/gEre/14wo/9AGW7/QRZx/3tFwv+FSN//iU/m/4JP2P+FSun/hE7g/3xSzP9pSqz/STB+/083 326 | fP84IV7/Qidm/z0bWP9BHlv/RSRf/0kpZP9cPnz/Qylo/0Qmbv9WOIP/+Pj4//39/f///////v7+//// 327 | //////////////////////////////////////////////////////////////////////////////// 328 | //////////////////////////////////////////////////////////////////////////////// 329 | //////////////////////////////////////////////////////////////////////////////// 330 | //////////////////////////////////////////////////////////////////////////////rz 331 | +//78P//iXij/0s1b/85IF//MxpX/ykTSP9RPWv/mY2k/2ZUfP9XPH//b0un/2lAq/9IHov/Rh6F/29J 332 | qP9vR7T/dUbE/4VP3v+ESuH/ilLd/4FPw/9hNpH/OBBd/zkTXP91SqT/c0G3/4FK2f99ReH/fEfi/31N 333 | 3/9+U9z/hErk/4VL5/+FSur/hEfr/4VI7f+BROf/g0fo/4VK6P+NTeX/RRt3/zUeRv84HVL/XCyh/4VG 334 | 7/+CQ+3/g0zf/4JR1v+CT9n/gU3e/4JM4f+DTuL/h1Xg/4ZX2f9vQr7/MRRV/0AcY/9DGmj/RhZq/0cY 335 | av9TLHX/UzRy/0MpYf/7+/v//f39//7+/v/+/v7///////////////////////////////////////// 336 | //////////////////////////////////////////////////////////////////////////////// 337 | //////////////////////////////////////////////////////////////////////////////// 338 | //////////////////////////////////////////////////////////////////////////////// 339 | /////////////////////////////////////////P3n//r67//49fr/vbDP/2lSjv9uT57/XjuV/2A7 340 | m/9nQqT/cUm0/2s/tf9qPbf/b0K3/21Fqv9DInT/PiJl/2ZBoP9vQbb/cDrC/4RP0f9oOqL/OhRh/zcU 341 | Vf8+Glz/MwtQ/1Amef91RK//hk/U/4NJ4P+ESun/g0vq/39I5v9/Tdr/gU7d/4JO4P+BTeH/gEzg/4JP 342 | 4P+DUd//fUzX/3tFvf8vBlz/SClh/0cpYP85FGf/eUm+/4tY2/+FUdb/g0bv/4NE8P+DRfH/hUnu/4VO 343 | 5P+FVNP/aD6m/y0MYf9BIVz/SCRj/0YdYv9GG2H/Rh5f/0YmXP85I07/vq3J//z8/P/+/v7//v7+//39 344 | /f////////////////////////////////////////////////////////////////////////////// 345 | //////////////////////////////////////////////////////////////////////////////// 346 | //////////////////////////////////////////////////////////////////////////////// 347 | //////////////////////////////////////////////////////////////////////////////// 348 | ///4++H/9vvk//7+9v/48/r/1sfh/4xzs/9oSKP/a0ew/2o8wP9nOMD/bz3K/2s4xP9uPr//bkOx/3FM 349 | pv9QLnr/OxVp/2E3mf9uP6n/USWE/0IeYv8vEUH/QCJR/y0LQv9DGln/PhNb/1cogP9sOaX/iVLS/4lO 350 | 3/+IS+j/hkjr/4JR3P+DUd7/gk/e/4BO3P+BUNz/f0/X/4JT1v+AU9P/Vit9/zcQW/88GFv/Ti5l/zAS 351 | SP9MKm//bEKh/4JSxf+ATdz/hE7i/4ZO5f+GTOD/i1bZ/2M1nP88FmH/RSNd/zoVTf86E0z/SCBa/0om 352 | XP9FKFX/TDpX/9fO3P/++v///v7+///////+/v7//f39//////////////////////////////////// 353 | //////////////////////////////////////////////////////////////////////////////// 354 | //////////////////////////////////////////////////////////////////////////////// 355 | //////////////////////////////////////////////////////////////////////////////// 356 | //////////////////////////////////////////////nz+v/9+f//+/j5//v5+v/7+P3/9+/9/5GE 357 | q/9kU4j/X0aZ/2hLpv9qSLD/bkW6/2w+uP9uQLr/cEG3/3JEtv9MI3f/LgpR/zcWUv9HJmD/NxVV/1Qv 358 | c/9MKmf/QyRX/0ohXv85EU//RBxe/0UcZv9LH3f/Xy6X/3M/tv99Rsb/fUbL/4BJzv+ETNL/hU7T/3xG 359 | x/94RMD/ZTOp/0cWiP87F1X/QBxY/zYVTP9CIln/ORdU/zMNWP9AFXP/TB+I/1Q3f/9mRpj/dlCv/3tP 360 | tf9dMJL/PhVm/0gjX/85GEf/MgxE/0EYU/86FUz/NRhG/0UwUv+Cd4v/4N3k//f5+f////////////// 361 | ///9/f3///////////////////////////////////////////////////////////////////////// 362 | //////////////////////////////////////////////////////////////////////////////// 363 | //////////////////////////////////////////////////////////////////////////////// 364 | //////////////////////////////////////////////////////////////////////////////// 365 | //////////H////1////+////v/6//v+9//i5uX/xcbQ/8jH2v+3stH/dGyT/0Mza/9jSZP/ZkSe/2hA 366 | pv9pPKn/YDKh/0kceP9CI1j/IAwj/yMJMf9FHXL/dEOx/0ohev85G1P/NhBU/zwXWP8xD0n/QyNa/0Qk 367 | W/9CIGD/QB1l/0Aaaf9JGHL/SBdx/0sZdv9KGHP/SRhw/0YXav9FGWX/TCBo/zAMTf9JKVv/LBA7/0Ig 368 | Xv9WKov/d0S9/1gonv9OIYz/KwtZ/zMRZP8rBV7/Mgxj/y8MWv8xEVH/LAxB/x0BK/8tCET/Tilm/ykN 369 | Qf9NOGT/xbfY/8XA0/+bnKX/+Pz8//////////////////////////////////////////////////// 370 | //////////////////////////////////////////////////////////////////////////////// 371 | //////////////////////////////////////////////////////////////////////////////// 372 | //////////////////////////////////////////////////////////////////////////////// 373 | ////////////////////////////////////////////////////+/3///38///++f/9//f/9vz1/5eb 374 | oP/Mzd//ycji/6Okuv+OjKf/GhQ1/xcMNf8pFUn/PiRi/zwdYP9BH2X/Qxlx/zQWTv8oEzP/Vzxy/3JI 375 | q/9rPLP/YDia/1M3ef9sR53/QiFy/yEKTP8lCkv/MBVT/zUaV/87IF3/QCVi/0gkV/9HI1f/Sidc/0om 376 | XP9JJln/SSdW/0MiTf8uETX/JgZN/y8PTf83GFL/Tyl//4ZU0v+ASNv/ilXd/2I3qf95PtL/jFPf/4ZV 377 | z/+FWsD/SiZ1/z0hXf80HUn/Mx5D/0MlXf82HVH/NCJQ/2thhv/Avdr/vb3R/66wvv+HiZP///////// 378 | //////////////////////////////////////////////////////////////////////////////// 379 | //////////////////////////////////////////////////////////////////////////////// 380 | //////////////////////////////////////////////////////////////////////////////// 381 | //////////////////////////////////////////////////////////////////////////////// 382 | ////////////////9v////b//v/3//3/+v/2+/r/mp6n/9zf7//Q0+j/pKm8/7CzyP+zscr/PDVV/x8T 383 | Of8bCTb/Kg1H/zYXVP89HWP/VjOC/2ZCmv9pRZ//aUmc/1k+if+GbLX/TTR8/2tKs/+Na9X/fFrG/29N 384 | uf9YN5//Ti2R/z4gfv8zGG//MRRZ/y4PWP8tDln/KQlW/yYGU/8oCVP/LxNY/0UnbP9iQJH/SiV//0of 385 | iv+BU8z/f0/P/31Pzv9aLqn/eVDG/4xL6P9/Rs//VimU/zgYZP8wG03/QzVc/yccP/8mHUD/Kx5C/yIa 386 | PP8lIj3/srXM/7vC1f+9xNT/jZGf/7i5x/////////////////////////////////////////////// 387 | //////////////////////////////////////////////////////////////////////////////// 388 | //////////////////////////////////////////////////////////////////////////////// 389 | //////////////////////////////////////////////////////////////////////////////// 390 | //////////////////////////////////////////////////////////39///9/v/+/f7//f3+//j8 391 | /P+7w8H/rrq1/+Xy7f/n8/T/0Nne/8PF0//Dvdn/hXWj/1E3d/9mQpL/ZT2W/15Fev9XLpT/Ux+r/1Ak 392 | nP9LNXP/w7rQ/5KHrv9OOYL/TS6k/2VEwP+BXOP/flXk/4NZ6v+FW+n/h17l/4hh4v+CYNr/f1zZ/35b 393 | 3P97V9r/elXZ/31Z3P+AXd7/e1nY/3VVpP89EoX/fkfe/4BM4P92TcH/ZESh/2RCp/9+V8//fU6y/04m 394 | dv8tEkX/fnCJ/3x3hP/EwtP/mpa1/5iRu/+xsMT/YmV4/7rD0v99i5b/x9bf/8nU3f+aoKv/trjA//// 395 | //////////////////////////////////////////////////////////////////////////////// 396 | //////////////////////////////////////////////////////////////////////////////// 397 | //////////////////////////////////////////////////////////////////////////////// 398 | //////////////////////////////////////////////////////////////////////////////// 399 | /////////////////////////////////////////Pz8//f39/+Wlpb/p6en/9Xx+v/O5er/prG2/8rH 400 | 1f/Kutn/ppG+/ysZSf8wIE//UCmA/1s4ef9dOn3/VDSG/1hNhP/t8v3/oZe3/1QshP9NNIz/QiqC/0w0 401 | j/+AZsz/f2PY/31c4/95U+z/e1P2/4JZ4v+AWtn/hmLe/4JZ5f9/T/D/fUvv/31S4/93U87/VCSK/3tF 402 | w/+DTtr/dk3I/0Epf/+Lerv/aFOe/04ykf8xKEf/nJO6/62k0P+9udz/xsjb/9XY3//m5uv/4t/p/9jZ 403 | 6f/f4er/2d3j/93f6//d3PH/3Nrv/4KEkP/2+/v///////////////////////////////////////// 404 | //////////////////////////////////////////////////////////////////////////////// 405 | //////////////////////////////////////////////////////////////////////////////// 406 | //////////////////////////////////////////////////////////////////////////////// 407 | //////////////////////////////////////////////////////////////////////////////// 408 | ///4+Pj/+vr6//f39/80NDT/pZiq/3N0gP+isbj/uMzZ/7G51/+pm8j/OhJJ/1kgW/8uClT/Lw1F/zkW 409 | Uf8+ImX/iYSo/+Xx7/+ko7T/UTV4/0E0aP9QRHj/WlKE/xcMS/9SQpH/emXH/3xi1f90V9X/YTus/08t 410 | lf9YN53/fFrJ/4Rf3P9+Wtb/fGLH/y4faf9NKnP/Zz+e/3ZOvP9WOJf/QTBw/56Tuv9aSoL/UzuG/7u0 411 | 0f+3sNT/vbbe/7u51//W2uf/9/v9//r6/P/9+v//7vH3//L39//z+fb/9vr7//T2/f+ztL7/xcnN//b9 412 | 9/////////////////////////////////////////////////////////////////////////////// 413 | //////////////////////////////////////////////////////////////////////////////// 414 | //////////////////////////////////////////////////////////////////////////////// 415 | //////////////////////////////////////////////////////////////////////////////// 416 | //////////////////////////////////////////////j4+P/4+Pj/+vr6/8LCwv9KNkT/lI2Z/9Pb 417 | 6f+zwtX/s7nY/3Vkkf9IHFj/Vhhb/z0bWv9EIVf/QiBW/yoURv+xtMX/2e7h/6u3uf82K1T/oqOw/8rL 418 | 2f/U1eP/jo6l/yMiQ/8hGU3/Jxtg/ycZZf8zEmX/LAtb/ysMW/8tFGH/OR9y/zMhaP8sJVH/OjtU/xkM 419 | K/8+K2D/Uj2B/0w9ef9dVXv/ioWe/z4yVP9EMWP/w77Y/8jC4v+8udn/0dLp/6Wqsf/x9fX//fz+//v2 420 | /P/3+fz/+f/7//f98//1/fP/9vr5/6aprP/U2db/7vXr//////////////////////////////////// 421 | //////////////////////////////////////////////////////////////////////////////// 422 | //////////////////////////////////////////////////////////////////////////////// 423 | //////////////////////////////////////////////////////////////////////////////// 424 | //////////////////////////////////////////////////////////////////////////////// 425 | ////////+vr6//v7+//4+Pj/9vb2/3uKjf/W3+v/xsTd/8e+3v/IuN3/YE57/yMPSP8iEE//MhFQ/zEM 426 | TP8yDUv/Hgk1/9HX4f/S697/vtDQ/56guP/c4+H/7/Xz/9vh3//Q1tn/09fj/0FAXP9taJH/LiZZ/1gy 427 | fP9aNX//VzaB/0Yqcf9PPHj/KCBI/3l9i//c5+T/srK6/9nW7P9QSm3/TUlr/318kv+EgpL/Jx41/1RF 428 | Z//GxNv/vrzW/9DQ6v/k6fX/tbu9/5qdnf/t6PL/5Nno/9rW6v/29/z/+P33//b69P/P0tH/kpWY//T3 429 | 9v/5/vj///////////////////////////////////////////////////////////////////////// 430 | //////////////////////////////////////////////////////////////////////////////// 431 | //////////////////////////////////////////////////////////////////////////////// 432 | //////////////////////////////////////////////////////////////////////////////// 433 | ///////////////////////////////////////////////////7+/v//Pz8//n5+f/k5OT/tdDP/8HT 434 | 5P+9yOf/lpzE/ywsUf8VGUH/JiRc/yYhZ/9EJG7/TiN8/00idv80Hk7/4+ny/8PZ1//K3OP/l6Gz/+7z 435 | 9v/1+/7/8/j5/9/j6P/Mzdr/MC1G/2BZfv80Klb/XDh6/1YxfP9WM4T/PSFs/25clf83MVH/ztTd/97p 436 | 5v/l6en/3eDp/+Xn+f+Pkqj/ioyg/5OSpv8gGjH/NClF/8zN4f/Dxdv/w8bb/8HH0//m7O//a2t0/0Q4 437 | Uv88KFH/OSxb/7evy/9RUFn/o6Sn/3h4fv/V1Nz//Pv+//j6/P////////////////////////////// 438 | //////////////////////////////////////////////////////////////////////////////// 439 | //////////////////////////////////////////////////////////////////////////////// 440 | //////////////////////////////////////////////////////////////////////////////// 441 | //////////////////////////////////////////////////////////////////////////////// 442 | //////////////f39//9/f3/+fn5/8bGxv/U19r/v8vl/199qf9klL7/gbbT/3udvP9xc6f/RjB6/1xB 443 | lP9xRbL/cEGo/zQdUv/T2eT/t8nR/83d7P+ms7//9Pf///X5///i5O3/0dTd/9fW5f9taYH/LiVI/zYq 444 | VP89JlP/OyBe/z0fbP9HLHf/LR1S/y4qRf/b4Oj/8fn7//j8/P/y9/r/7PL7/3qBkf+EiJ//rq/I/11b 445 | dP9jX3f/b3OF/29zh/+1us7/xsvZ/9TX4v/n4PP/Mh1N/0EhZf9CKXH/RDNm/zIqQ//MydD/8O31//z4 446 | ///49f7/+/n9//////////////////////////////////////////////////////////////////// 447 | //////////////////////////////////////////////////////////////////////////////// 448 | //////////////////////////////////////////////////////////////////////////////// 449 | //////////////////////////////////////////////////////////////////////////////// 450 | /////////////////////////////////////////////////////////Pz8//f39//7+/v/xsbG/+7t 451 | 9P9/hqn/hKDX/4m57P+Lw+H/t+D1/7a+6/+Idr3/UT6Q/3FJvv9wQ7H/NSFR/6Kpr/+0xM7/0eDu/5yr 452 | rP/v9Pv/5Ovw/8zS0//b4OH/8fT3/726x/87NEn/xLrT/+Xj6f/t4/r/VUR7/zcnX/8zK0//3+Hs/+vy 453 | 8//x+Pn/+Pj5//b6+v/v9/n/iZOc/4KJnf/K0en/k5it/8zT4f+sssT/v8TY/3qAlP+wtcb/yMfb/6yf 454 | xv8vFFf/WjCP/39huP9cR4X/ycDV//v5/P/9/P7//Pv9//79/v/7/Pr///////////////////////// 455 | //////////////////////////////////////////////////////////////////////////////// 456 | //////////////////////////////////////////////////////////////////////////////// 457 | //////////////////////////////////////////////////////////////////////////////// 458 | //////////////////////////////////////////////////////////////////////////////// 459 | ///////////////////8/Pz/+fn5//j4+P+zs7P/vtTd/4COtP98hcb/Hipn/xAgQ/9JYXr/gpfA/4+b 460 | 2/9gVKP/ZkK4/2xBr/8vHkn/eYKB/87d5P/S4Or/pLWs/9rj4f+tt7L/usW6//b88//4/fX/4+Xj/6ek 461 | qv/69f3/9v/q/+/y9P+0rs//IxxC/2Rjdv/0+vj/9fz0//P69P/Y19b/+vz4/9/n4/+grK//e4eW/+Pt 462 | /P+EkJ7/yNXb/8zT5f/Fyt7/wMXa/6qvwv+5t9D/sKDR/00sfv+NXMz/YEGc/76p2f/68f//9/b4//v8 463 | 9//7/Pb//P32//3/9f////////////////////////////////////////////////////////////// 464 | //////////////////////////////////////////////////////////////////////////////// 465 | //////////////////////////////////////////////////////////////////////////////// 466 | //////////////////////////////////////////////////////////////////////////////// 467 | //////////////////////////////////////////////////////////////r6+v//////+fn5/9PT 468 | 0/9ceqv/eo7A/ysxWf8nKD//io6V/77N1f9uiJ7/haTK/4R2xP9bRJH/XkKF/zcnUv+PlqT/zeTj/9Pr 469 | 7P+Bk5z/Tzx1/1xWdP/b5eX/6Pjx/+/6/f/P0eH/lpKf//Xy9P/q/Pf/4eXu/6WZs/8wJUT/TU9h/+r2 470 | +v/w+/n/9/r6/2xed/9YTmj/ubfP/6mvyf9+iqH/3ur4/6eyu//DzNL/6vP7/9/n8P/t9Pb/9vz5/+Tn 471 | 5f/Y0d7/ZlCF/25Onv+7u7v/+fn5//7+/v/7+/v///////////////////////////////////////// 472 | //////////////////////////////////////////////////////////////////////////////// 473 | //////////////////////////////////////////////////////////////////////////////// 474 | //////////////////////////////////////////////////////////////////////////////// 475 | //////////////////////////////////////////////////////////////////////////////// 476 | /////////////////////////Pz8//7+/v/8/Pz//Pz8/2qEsv9QYI3/Gh5B/4OClf/Fyc3/x9XZ/6G3 477 | y/9deJv/gnnE/0w6gf87Jl//Zlx9/9Hb4//a7+//4/T7/0dPZ/9fT5T/R0Bo/7m9w//g6uL/8vn3//P3 478 | +/+tsLb/p6qr/7/T0f/K0Nr/bGN5/xwUKf+rrbf/7PX2//H1+f+uqLf/RTJs/0g6cf8rKFL/sLfV/5Kg 479 | tf/V4+//5/D2/6GosP/1+v7/9fj9//L0+f/2+fn/+fr3/7GttP9VR2b/ybTg//r6+v/6+vr//v7+//r6 480 | +v////////////////////////////////////////////////////////////////////////////// 481 | //////////////////////////////////////////////////////////////////////////////// 482 | //////////////////////////////////////////////////////////////////////////////// 483 | //////////////////////////////////////////////////////////////////////////////// 484 | ///////////////////////////////////////////////////////////////////7+/v//Pz8//7+ 485 | /v/5+fn/eY2w/0ZRc/+eobr/9/b+/9zg3v+rt7b/xNbl/3SJp/91crf/Midl/11RfP+amKj/6vbz/9/x 486 | 8v/l7P//T0l1/3JhwP9DOHj/iISc/9LSz//q7OT/8/f2/8jS1f88R0r/Y3h//ysxPf98dYL/Z2Jn/6Wp 487 | pv/1+fr/3tbr/z0oT/9rTbz/fmnI/1JNkf+jrNH/prXL/87d6f/t9v//s7fC/42Kk//Pydj/7eb1//Pu 488 | +f/59/j/jIqI/9PQ1f/38fv//Pz8//39/f/4+Pj//f39//////////////////////////////////// 489 | //////////////////////////////////////////////////////////////////////////////// 490 | //////////////////////////////////////////////////////////////////////////////// 491 | //////////////////////////////////////////////////////////////////////////////// 492 | //////////////////////////////////////////////////////////////////////////////// 493 | //////////////////////////////39/f/8/Pz/+/v7//39/f+ap73/UVdu//b2///29fn/7vDr/5eh 494 | nf+5xtD/h5Wu/2Bjnf81M2P/cG2I/+rw8f/l9+3/6/r6/97b/P9QO3z/c1/c/046mv+Xhrv/sKKz/9vU 495 | 1P/5/Pv/t8TN/0Zaaf9gcYP/c3mJ//r4/f/GxL//n6SZ//T0+P+Ziaz/QiFf/3lR6v98YeL/XVWt/5qj 496 | 0P+3yd7/z9/n/+31/f/t7/j/X1Nj/zYnQ/9FM1j/OipK/46FlP+zsrD/+/zy//n68v/7+/v//Pz8//z8 497 | /P/6+vr///////////////////////////////////////////////////////////////////////// 498 | //////////////////////////////////////////////////////////////////////////////// 499 | //////////////////////////////////////////////////////////////////////////////// 500 | //////////////////////////////////////////////////////////////////////////////// 501 | //////////////////////////////////////////////////////////////////////////////// 502 | /////////////7W7xP+QkZ//+Pf+//r8/P/c49r/pa+n/7C7wv90f5T/YWqV/46RtP+6vMr/7/n2/+P2 503 | 6v/t+v3/zcbv/z8ja/93W+v/dFjS/21Spv8zHkr/xbrL/+Dj7P/BzeH/gJKy/0NQbv+pr8T/9fP7//r6 504 | 9f9/hXn/zMzV/5qHtv9MJnT/fVH3/3VX4v9hV7b/lZ3K/73P5P/N3ub/7fX+//L0/v/r3+3/RjRY/3Jd 505 | jf9MOGT/49fr//z5/P/8/fb//f30///////////////////////+/v7//v7+//7+/v/+/v7///////// 506 | //////////////////////////////////////////////////////////////////////////////// 507 | //////////////////////////////////////////////////////////////////////////////// 508 | //////////////////////////////////////////////////////////////////////////////// 509 | //////////////////////////////////////////////////////////////////////////////// 510 | ////////////////////////////////////////////////////////9/n6/7m5vP/4+fz/9fn3/+Tt 511 | 4/+EkYj/f4mP/3qClf9lcIr/houg/+3x+//u+vj/4vfv/+f2/f+6s9z/NRpe/3tZ5P95WNf/e13C/zci 512 | Yv9EPVz/xsrb/7nE3f+Nmr//Sld9/1hbfP/DvtL/oqGj/4WMif++wdD/PC1h/3NSpf+BVuv/fF3b/1xQ 513 | p/+Fi7z/w9Ln/83d5v/r9P3/8PX+//v3///g1ev/TT5n/7yuzf/68f7//fr+//v7+f/+/vv///////// 514 | //////////////7+/v/+/v7//v7+//7+/v////////////////////////////////////////////// 515 | //////////////////////////////////////////////////////////////////////////////// 516 | //////////////////////////////////////////////////////////////////////////////// 517 | //////////////////////////////////////////////////////////////////////////////// 518 | //////////////////////////////////////////////////////////////////////////////// 519 | ///////////////////7+vf/2djZ//f5/P/u9fP/wM7E/1VlXf/k7/H/bHGF/2x3gv/g5O//8/X8/+Xv 520 | 8//h9vX/2+v2/6ShxP88JV//f1zN/3hWyP9AJor/KR1i/y0wUf+/y9j/tcDS/4+XtP8/SXf/Pz9p/2BZ 521 | eP9bWWn/wsrS/3V8k/8nIFb/Qyx9/3RMv/94W73/OS11/3F0oP/G1Or/y9vl/+fx+f/t9fv/8fn1//H0 522 | +P/T0d//ycfW//v6/v/+/fv//fv6///8/v///////////////////////v7+//7+/v/+/v7//v7+//// 523 | //////////////////////////////////////////////////////////////////////////////// 524 | //////////////////////////////////////////////////////////////////////////////// 525 | //////////////////////////////////////////////////////////////////////////////// 526 | //////////////////////////////////////////////////////////////////////////////// 527 | //////////////////////////////////////////////////////////////389v/FxMT/6+/z/9Db 528 | 2P+js6r/UmJb/5Cbof90eY7/sLu9/+7y+v/x8fv/3OXw/+P4/P/O4Oz/j4+u/0EwYv9hPpj/RSaI/zci 529 | gP98eLX/oq3L/2J0e//Aztb/iI6i/zM6a/9EQnL/bWSM/7+81f+xusr/WGN+/0pIfv83JnT/QBt1/0cr 530 | ev8sH1z/WVuD/87a8f/P3ej/6PP6/+/5/f/r/Ov/6vfv//L7+P/O09H/wMa8//7/9f/8+fb//vr+//// 531 | ///////////////////+/v7//v7+//7+/v/+/v7///////////////////////////////////////// 532 | //////////////////////////////////////////////////////////////////////////////// 533 | //////////////////////////////////////////////////////////////////////////////// 534 | //////////////////////////////////////////////////////////////////////////////// 535 | ///////////////////////////////////////////////////////////////+//////////////// 536 | ///7+/v/+fv7//n7+//5/v3/9/3p/9XXy//c4OD/6fL5/4WXp/9feJj/g6HU/01qrf9bb5f/xdHk/+ns 537 | 8//s8Oz/6/Tw/83U4f99d5v/Sjhs/18ggf9lMIn/OyNt/2Z/tf94uNv/jMzm/1hxkP+kl7r/MTle/11c 538 | gP9dWnr/jqG8/0h9mf9/weX/MmaY/1h4tf8fHlv/PiRh/00hWv9XOmf/0tn0/8fi8P/d7fX/+vj+/+T2 539 | 9f/n9vb/7/38/+34+P+yubn/09fY//f5+f/7+vv///////////////////////////////////////// 540 | //////////////////////////////////////////////////////////////////////////////// 541 | //////////////////////////////////////////////////////////////////////////////// 542 | //////////////////////////////////////////////////////////////////////////////// 543 | //////////////////////////////////////////////////////////////////////////////// 544 | //////////////////////////7///////////////////v7+//8/v7/+/39//j8/P+lxd//XHug/2mH 545 | sv9CZJP/Yoy8/36v5P90q+r/frf7/4+65P9IaIf/ssXU/+f2+P/h7/P/ydDl/2xhjP9SOXT/UDaF/zst 546 | dv9ESIT/JjRl/yM0X/9meZ7/jaLG/0BYev85NGD/c3ee/zRCYv9hb43/qrLV/zs7Z/8YE0n/ZmOg/1le 547 | k/84Jlv/RSNV/zYgRv/T2/P/x+Dt/+Tz+v/59/z/6fr5/9no5//x/v3/8Pv7/+ft7f+lqar/+Pr7//r7 548 | /P////////////////////////////////////////////////////////////////////////////// 549 | //////////////////////////////////////////////////////////////////////////////// 550 | //////////////////////////////////////////////////////////////////////////////// 551 | //////////////////////////////////////////////////////////////////////////////// 552 | /////////////////////////////////////////////////////////////////////v////////// 553 | /////////v7+//n7+//7/f3/2t/e/1N8tv+Isev/e6Ld/4Or4v+r1/z/jsDs/4G56v9/uur/iMTq/5XE 554 | 4v9Sc4b/3fT+/8bZ5/+8xN//YFSB/0QoY/9NQXj/GCdW/5C33/8gQGX/KzFZ/1lTff87RG7/Mk94/0Yy 555 | Zf9haZT/Jkdo/3CLqf9lZon/Vkpy/ygpVv+Tqdf/fIuy/zYyV/8zH0P/JRg2/7zH2P/L4er/5vX6//b2 556 | /P/u/Pz/2ufo/+j09f/z/f7/8fj5/8rP0f+ztrj/9/r7//////////////////////////////////// 557 | //////////////////////////////////////////////////////////////////////////////// 558 | //////////////////////////////////////////////////////////////////////////////// 559 | //////////////////////////////////////////////////////////////////////////////// 560 | //////////////////////////////////////////////////////////////////////////////// 561 | ///////////////////////////////+///////////////////7+/v/+/39//r8/P/P1NP/kqrF/520 562 | zP+kt87/mqm+/yo2VP8lM07/cYWU/4egpf9ikK3/ZIef/2mBk//P4+7/uc3c/624z/9iXoL/PSpY/2RK 563 | bv+PlbP/Z5Sr/5zW7P9kkKv/e4+y/4SJtf9HR3j/JRpL/yUxXf8ZOlz/Q3SP/0x8lP9HfJT/gsjf/33T 564 | 6v9/lKz/pKrC/5ONpf9FQVX/nai0/9Hj6//k8Pb/8/b8/+/8/f/n8/X/1uHj//P8/v/w9/n/5evt/56j 565 | pv/1+fv///////////////////////////////////////////////////////////////////////// 566 | //////////////////////////////////////////////////////////////////////////////// 567 | //////////////////////////////////////////////////////////////////////////////// 568 | //////////////////////////////////////////////////////////////////////////////// 569 | //////////////////////////////////////////////////////////////////////////7///// 570 | //////////////7+/v/7/f3/+vz8//P49//u+/T/8vzx//r+9v/9+v7/STtS/z4wSP/e19//+Pfw/9/w 571 | /P/U3ev/8PP9/9vh7P+4yNL/kKCv/32DmP+0sMn/08bX/8a+zv+5wc//bI2c/5HI2f+i1ez/XHSY/1tX 572 | hf9NZI7/cYGp/1hsjv9hiaP/muDr/5Lo8v9/z9r/VZmn/3GFjv+9ytT/yMzY/8HEz/97g4z/ztni/+Ls 573 | 9P/s9Pv/8Pr8//P9///R2t7/6PH0//D3+v/u9Pf/wMXJ/8XKzP/9/f3//Pz8//7+/v/+/v7///////// 574 | //////////////////////////////////////////////////////////////////////////////// 575 | //////////////////////////////////////////////////////////////////////////////// 576 | //////////////////////////////////////////////////////////////////////////////// 577 | //////////////////////////////////////////////////////////////////////////////// 578 | /////////////////////////////////////v//////////////////+vr6//j6+v/6/Pz/9Pn4/+n5 579 | 9P/v/fX/xNDI/3t7iv80KFX/QjVp/+Pf+P/x9vv/393k/+Lb5P/57/v/0c/c/7vG0v+HmKP/h5Gc/87P 580 | 2//F2t7/9/P5///0/f/r5vD/ssfR/2qWp/9Xf5f/Qll4/z5ohv9DVnX/S01s/2Nvh/9bf47/XIWP/4+h 581 | q//Uzdr/5PDy/+z3+v/2/f//zdLZ/3d6hP/Jztn/0trn/+r0/f/x+fz/9f3//+Hp7f/U2+D/8fj8/+/2 582 | +v/o8PP/nqaq//r6+v/+/v7//f39//39/f////////////////////////////////////////////// 583 | //////////////////////////////////////////////////////////////////////////////// 584 | //////////////////////////////////////////////////////////////////////////////// 585 | //////////////////////////////////////////////////////////////////////////////// 586 | ///////////////////////////////////////////////////////////////////////////////+ 587 | ///////////////////4+Pj/+/39//f5+f/u8vL/maax/7rIyv+Aio7/ra3H/0E4dv8/N3r/4eb//93v 588 | 8//M1dn/6Ojz/+Xg8f+6utD/s7zR/2RugP+4ucj/9u75/+f09//1+Pv/7enu/+ri6f/v7fP/5/L4/7zQ 589 | 4P+JoLP/QVBm/4SOpf/DyN7/ur7S/8HE0//Oy9j/+/H6//z0+//3+vf/9vv6//f+/v/u8fb/pqWw/7Sz 590 | w//Gzd//4O78/+zy+P/0+v//8Pb6/8/V2//d5uv/8vv8/+Do7f+aoqj/+/v7//v7+//9/f3//Pz8//// 591 | //////////////////////////////////////////////////////////////////////////////// 592 | //////////////////////////////////////////////////////////////////////////////// 593 | //////////////////////////////////////////////////////////////////////////////// 594 | //////////////////////////////////////////////////////////////////////////////// 595 | //////////////////////////////////////////7///////////////////39/f/6/Pz/4+Xl/4uQ 596 | j/+/usz/srG3/4+Mkf/t5P3/UD96/1VIg//k6f3/zeHU/8Lc4v/f7/3/u8LZ/6ux0P+YocH/XWJ+/8rC 597 | 2P/jzeH///H6/9nd4f+pycf/o8K+/6mvsv+QgIr/g3OB/4B5iv+rkKf/cXCC/2N3hf+HmKX/kJCd/8G7 598 | xf+zvsH/f56b/9vX0v/g4t//4ufn//Dx9f/NyNX/j4ue/8HH2//E1er/5unx//D2/P/1+///3OLp/8jQ 599 | 1//n7/X/7/j8/8LM0//T09P/+fn5///////5+fn///////////////////////////////////////// 600 | //////////////////////////////////////////////////////////////////////////////// 601 | //////////////////////////////////////////////////////////////////////////////// 602 | //////////////////////////////////////////////////////////////////////////////// 603 | //////////////////////////////////////////7////+/////////////////v////7////+//// 604 | /f/8+Pf//fv8//38/f/09fj/8/X7//b4/f+IiZf/xsbV/83I0P95dZH/wcfT/+no/v9aQoz/aVSR/+Ln 605 | 8f/D0tr/4Nvw/9/b7/+1tMf/s7PF/4GElP84PUz/dXyJ/7a+y/+lqbj/rrLE/2hvgf+Mlqn/mKa7/9Xm 606 | +v/N4vj/0Of9/9jn+v/Z6Pv/1OP4/8fV6/+ntcr/X22F/3J/mf9HT2f/lpqt/3yCj/+stLv/vsfK/8HJ 607 | z/+Ok6L/yMrj/8DA3//Gz+D/5u/4//T8/f/q9O//zNbP/9Ha2f/t+fz/3unz/7e8vP/2+/z/9fn5//n8 608 | /P/9//7////+/////P////z///////////////////////////////////////////////////////// 609 | //////////////////////////////////////////////////////////////////////////////// 610 | //////////////////////////////////////////////////////////////////////////////// 611 | //////////////////////////////////////////////////////////////////////////////// 612 | /////v/////////////////////+/////v////7////+//z7/P/y7/H/+/r8/7S0uf9zdX3/i42W/6yu 613 | uP/AwM3/s7C7/5GOq//L0t7/6uz//1xKk/9lWJT/0Njm/8nZ4//h4PT/wMDV/6ipvv9xdIf/aW+B/3J4 614 | h/+xu8f/zNbk/7a+yv+gqbn/t8HM/9rn+P/b6vj/1uf8/9nr/v/V6f3/2ur8/9jn+f/Z6Pv/1+b6/9Ti 615 | +P/Y5vj/1+X4/9jl9/+9w9f/k5us/11kb/9cZm//WWFs/3J5i//Aw9//wcLk/7rA2P/L0+T/7fP7//X9 616 | /P/V3tz/zNXU/9nl6v/r9v7/pKmq//X6+//5/f3/+Pv7//3//v////7////9/////P////////////// 617 | //////////////////////////////////////////////////////////////////////////////// 618 | //////////////////////////////////////////////////////////////////////////////// 619 | //////////////////////////////////////////////////////////////////////////////// 620 | //////////////////////////////////////////////////////////////////////////7////+ 621 | /////v//9/j8//X2+v/ExMn/urrA/7y8w//NztX/w8bM/9TW3f93eYb/uLfV/97m7//g5/j/YVqe/2Jg 622 | mv/F0+H/y9vo/8jO5v9vdYz/cHeN/7vE1P/k7/3/3er7/9fk9f/d6/j/2un1/9/u+P/S4vH/2+v5/93s 623 | /f/d6/z/1uX4/9zq/f/b6/r/2en5/9rq+//Y6Pn/1+b4/9Xk+P/Z5/n/1+X6/9nk+P/a5vT/1+Xy/9Xj 624 | 8f+erLr/QEtj/3mBof+0u+D/uLzc/7a60//l6Pj/9fv//+Xs7//M1Nf/ytXa/+fz+v+QlZj/9vr8//b6 625 | +//3+vr//f///////v////7////+//////////////////////////////////////////////////// 626 | //////////////////////////////////////////////////////////////////////////////// 627 | //////////////////////////////////////////////////////////////////////////////// 628 | //////////////////////////////////////////////////////////////////////////////// 629 | //////////////////////////7////+/////v////7////+///p7fP/hYeQ/4aGj//Ixs//4+Ln/+zt 630 | 8//x9ff/r7S3/5yltP+8vt3/5O73/+Dv+/93f7v/Xmyh/8rh7f+UpbX/ZHGI/7TC1f/c6/v/1+b5/9jo 631 | +f/X6Pn/2uv7/9rr+//W7fn/1er2/9zw/P/Z6vf/2ur4/9zr+f/g7fv/3+r6/8ze6v/V5vL/3O36/9jo 632 | 9//e7vv/2+v6/9np+f/Y5/n/2ef9/9Tj+P/Z6fn/2Oj6/9Tk+P/U4fz/m6bF/1Vfhf+SlLr/s7XW/76/ 633 | 1//r7fn/8vf9/9DX3v/I09n/1eLo/6uws/95fYD/6u3w//j7/P/9/////////////v////7///////// 634 | //////////////////////////////////////////////////////////////////////////////// 635 | //////////////////////////////////////////////////////////////////////////////// 636 | //////////////////////////////////////////////////////////////////////////////// 637 | //////////////////////////////////////////////////////7////+/////////v//+vn7//b1 638 | +f/49vz/9/T5/2ZsdP/BxMz/zs3W/8fEzP/q6e//9fj8//D4+v+Aio3/ytzq/8/V8f/t+fz/3/j6/5Gq 639 | 2/9/n8v/h6my/6Cywv/M4PX/xtrv/8TY6v/V6ff/1ur7/9br+//Y7Pz/2e38/9Pt+f/V7fn/1+76/9ru 640 | +v/e7/r/4vL9/7bEzv+qtsH/qbzB/56xt/+WqLH/2Ov0/9/w/P/b7fn/2uv5/9rq+f/U5/z/1Oj7/9Tn 641 | +//T5vv/0eP5/8/f+//O3fz/u8nr/25wlv96e57/razI/8XG2//v8vz/4efv/8zW3v/I1dv/rbG2/5OX 642 | nP+ChYn/5Obo//f5+f/+/f7/9/f3//r6+v////////////////////////////////////////////// 643 | //////////////////////////////////////////////////////////////////////////////// 644 | //////////////////////////////////////////////////////////////////////////////// 645 | //////////////////////////////////////////////////////////////////////////////// 646 | /////////////////v////7///7////+///39vn//Pn+//r3/v++usX/qrC1//f5///59/z/+fX7//b1 647 | +v/2+///uMTJ/6a5vP/O6fT/4Ov+/+z89v/c/fb/rdf2/4S21//C7vL/zOLx/8Pb7P/I4fL/1u78/9fu 648 | /P/Z7vz/2u/7/9zw/P/d8Pz/2fP+/9v0/v/d9P7/4PX//+H2+f+rvcX/xNbb/+X3+//i9vn/4/b4/8nd 649 | 4f9+kZj/1unx/+H0/P/e8fr/3vD6/9nu+//Y7fr/1+z6/9bq+//Y7Pz/0eT4/6m70/+OoLn/pqrL/4OG 650 | pP9paYX/ubnQ/8vN3v/t8vz/zdfg/8jU3P/Dx83/iYyS/+7x9P+lp6r/ubq9/5iXmf/9/P3/9vX2//// 651 | //////////////////////////////////////////////////////////////////////////////// 652 | //////////////////////////////////////////////////////////////////////////////// 653 | //////////////////////////////////////////////////////////////////////////////// 654 | ///////////////////////////////////////////////////////////+/////v///v////7//+zq 655 | 7//38/v/ioaS/7ezvf/y9fX/+/v7//nz+P/++v7/5OLr/9Pb4/+gs7v/z+rx/9Pz+//k9P//7P3y/9v/ 656 | 8f+t5Pv/qur7/7nt7P/e9fz/0Ov1/7DK1//N5vH/2vL8/93z/f/f9Pz/4fX9/+P2/f/d9f//3vb//+D2 657 | ///g+P//3vT5/9Xr8P/m+/3/4vf5/+X5+v/h9vf/5/v8/9Xq7v/Z7fP/5fj9/+P2/P/j9vz/4Pf7/9/1 658 | +v/d8vr/3PD6/9jr9//b7vv/2ev4/7fJ2f+Hjab/jZKq/0pLY/9vcIX/tLbJ/9nd6//b5PD/x9Lb/83Q 659 | 2P+Agor/6+7z//j6/P+kpan/jIuP/8rJy//8+/z///////////////////////////////////////// 660 | //////////////////////////////////////////////////////////////////////////////// 661 | //////////////////////////////////////////////////////////////////////////////// 662 | //////////////////////////////////////////////////////////////////////////////// 663 | //////////////////////3////+///+/////v//mZee/2VhbP/KxtL/5+Lt//r7+f/7+fn//vr8//fx 664 | 9//KydL/rbfB/5uxvP/Y9v7/0/j9/+X2///w//T/yvbe/6jm7/+e5/n/uPPt/83m8P/B3eb/3fj8/9r1 665 | +v/d9vv/4Pf+/+T4/v/l+f7/5vn+/+L3///i+P//4vn//+P7///f+Pv/4fr7/+P7/P/i+/v/5fn6/+j8 666 | /f/l+vv/5vr7/+b6/f/k+P3/5fj+/+b5/v/n/fr/5fr6/+L3+v/g8/r/4PP7/9/x+//d7/r/2+74/9Pc 667 | 7f+hp7v/rrDC/zc4TP+xs8b/tbnJ/93m8//Ez9r/1Nff/4uNlf/1+Pv/+Pn9//b2+f/Lys7/kpGT//z7 668 | /P////////////////////////////////////////////////////////////////////////////// 669 | //////////////////////////////////////////////////////////////////////////////// 670 | //////////////////////////////////////////////////////////////////////////////// 671 | //////////////////////////////////////////////////////////////v5/P/1+vP/9vz0/+bt 672 | 8P+Wla7/x8Ph/93b6v/9/vr/8/78//z8+v/+9vr/xbfK/01Lav84SGb/q8nX/9X3+//l9fv/4/r8/9f6 673 | /P+e1dz/svP6/6Xi7//I8/L/0/Dl/+v9+v/o+vr/3/L2/9vv9v/g9P3/4vf+/+X6/v/n+v7/5vr8/+b6 674 | /P/m+vz/5vr8/+b6/P/m+vz/5vr8/+b6/P/n+vz/5/r8/+f6/P/n+vz/5/r8/+f6/P/n+vz/5/r8/+P+ 675 | 9//m+/z/6vj//+jw///j6/7/2OX+/9Pn/v/P5/v/3Of3/7/L2v+yvsz/1uDt/3B5iv+lrL//wMbZ/8bK 676 | 4v/U2N//hImR/9PW4v/p7Pb/9ff+/+/w+v96eYL/6Obq//77/P/8+vn/+/n3//38+P///f3///3////7 677 | ////+f////////////////////////////////////////////////////////////////////////// 678 | //////////////////////////////////////////////////////////////////////////////// 679 | //////////////////////////////////////////////////////////////////////////////// 680 | /////////////////////////Pv9//X69P/0+/T/qbC0/8HB2P/JxeH/7Or1//z9+f/y/Pf/39ve/+3b 681 | 6/87J0f/OjZc/01cfP/Q7vn/1/r8/972/P/i/f//u9zf/3Wjrv+68v7/n9bk/7Th5f/c+vb/4vz7/+H8 682 | /f/c9Pr/2O/4/9bq9f/g9Pz/5fn8/+b7+//n+v3/5/r9/+f6/f/n+v3/5/r9/+f6/f/n+v3/5/r9/+f6 683 | /f/n+v3/5/r9/+f6/f/n+v3/5/r9/+f6/f/n+v3/5fv9/+b5/f/p9/7/5PD7/9vo9P/Y6fT/0ejw/9Lt 684 | 9P/a5fb/2+f1/42aqv/l7/j/2+Tr/3J5jP+ts8n/vcHZ/87R3f+ChpD/wsbP/+Hk7P/1+P3/9fb8/8HA 685 | yf+Tj5n/+/f7//37/f/8+vv/+/r5///9/P///v7///z////7//////////////////////////////// 686 | //////////////////////////////////////////////////////////////////////////////// 687 | //////////////////////////////////////////////////////////////////////////////// 688 | ///////////////////////////////////////////////////////////////////5+fn/+Pv5//b7 689 | +f+wtbz/xsfb/8fG2//e3ef//P37//P79P9mXmf/hGuM/zwiVP8+Nmf/b36g/9b1/v/U+/r/1Pn9/9b2 690 | +v+jwcb/nb/M/7Db8v+czOL/teLt/9b8/P/W/v7/2P3//9Py/P/Q6vr/1+38/93x+f/o+/v/5/z1/+f6 691 | ///n+v//5/r//+f6///n+v//5/r//+f6///n+v//5/r//+f6///n+v//5/r//+f6///n+v//5/r//+f6 692 | ///o+f//5/j+/+n5/P/k8/X/2err/9jr7v/S5+3/0unx/9bh9v/a5fj/vMnZ/5Sfrf/l7vv/zNPf/3R5 693 | kP+0uNL/wsTX/5WXpv+1t7//2Nvd//T3+P/4+fv/6+ry/5iWo/+3sb3/4t3m//r3+v/9/Pz///38///+ 694 | /f///v7///3+//////////////////////////////////////////////////////////////////// 695 | //////////////////////////////////////////////////////////////////////////////// 696 | //////////////////////////////////////////////////////////////////////////////// 697 | //////////////////////////////j49v/5/Pv/0dXZ/6Glsf/FyNj/3t/s//f3/P/7+/v/7fLv/2VW 698 | a/9EI1b/QiFi/zQpYP+ntdX/0fH6/9X5+P/L+Pz/ud3i/9Hr8P/C2+f/iarF/5C72P/F9f//wfH4/5nR 699 | 1/+fz9z/ncPZ/5+40f/K3ff/6Pj//+j6+f/r/fT/5fj//+X4///l+P//5fj//+X4///l+P//5fj//+X4 700 | ///m+f//5vn//+b5///m+f//5vn//+b5///m+f//5vn//+n4///p+f//6/v+/+b2/P/N2+n/p7TL/4yX 701 | uf+CjLL/fIWe/9Lc8v/Q3O//iJOh/87Y5f/n7vv/io+n/56gvf+1tc//qqq9/6Okrf/Cw8T/oqGg//Tz 702 | 9f/y8Pf/x8TU/6ihtf+Dfo3/8/D5//79/v/9/vz//v/7//7/+//9/vv///////////////////////// 703 | //////////////////////////////////////////////////////////////////////////////// 704 | //////////////////////////////////////////////////////////////////////////////// 705 | ////////////////////////////////////////////////////////////////////////+/z3/8PG 706 | yP9jZXH/uLvL/93h7v/2+f7/+fv///v6/v/b2t7/PCdI/00jZP9CHmX/Myhc/8/g+v/Q8vv/0ff6/77p 707 | 8f/O7/T/5/z//9zx/f9nh6L/gazM/7jp9v+Wytr/oeHw/6fc9f+PtNv/WW6d/yUwW/80PFn/ipWe/+Xz 708 | 8f/j9v//4/b//+P2///j9v//5Pf//+T3///k9///5Pf//+L1/v/i9f7/4vX+/+L1/v/i9f7/4vb//+P2 709 | ///k9///5vj4/+b3/f90g5L/ICxL/yAnVf8qLW3/QD+L/01Jm/8yNmH/YWeJ/9bf9v+msMP/pK6+/9Tb 710 | 7P/Kzuj/dniW/7GyzP+7utH/cGx8/7Gqtf+noKj/zcjQ//f1+//n5/P/0srh/6ukt/+vq7X/+/n8//7+ 711 | /f/+//v//v/7//7/+/////////////////////////////////////////////////////////////// 712 | //////////////////////////////////////////////////////////////////////////////// 713 | //////////////////////////////////////////////////////////////////////////////// 714 | ///////////////////////////////////2+fD/ra+z/7+/0f/Bwtb/zNHZ/+zy8v/6/f3/9/T7/8C4 715 | xv87H0z/SRxk/0gjZ/9OSG//0uf1/83w9//L7vv/yurx/+b+///n/P3/2/b8/2SLov+UxuH/ksfg/63h 716 | 9v+l5v3/rOD//6PD+v+Kltr/eny+/1laiv8tMkz/6vT8/+D0///g9P//4PT//+D0///g9P//4PT//+D0 717 | ///g9P//3/P//9/z///f8///3/P//9/z///f8///4PT//+H1///k+Pn/xdbk/x4rUP9haqf/cnXF/3p3 718 | 1f+Aet//eXHY/4F+vf8qKl//x8zs/8nQ6v+aorX/tr3R/9HW7v91d5X/tLfO/7+91v8uI0D/SDhV/7Cg 719 | uv+KgJL/8/H5//L1+f/17/7/vbnL/5SSnP/29vv//P7+//z//f/8/v3//P79//////////////////// 720 | //////////////////////////////////////////////////////////////////////////////// 721 | //////////////////////////////////////////////////////////////////////////////// 722 | //////////////////////////////////////////////////////////////////////////////n8 723 | 8v/j5Ov/sq/H/8/P5f/u9Pr/+P76//z//v/y7/j/UkRh/0clW/9JGWP/ORVQ/4uIoP/F3uD/yu30/7va 724 | 8v/p+v7/7f38/+r+/f+/4ub/kcPW/7Hq/v+Z0er/rN/1/6De/f+RwPL/epPb/3V4z/92bcT/fna6/ysq 725 | Vf/j6P//3fH9/93x/f/d8f3/3fH9/9zx/f/c8f3/3PH9/9zx/f/b8Pz/2/D8/9vw/P/b8Pz/2/D8/9zx 726 | /f/d8f7/3fL+/+P2/v9zhKL/VWGc/2tyyP9ucdb/a2zS/25vzP9tb8T/d26+/11Znf+Cg7D/1Nn1/56l 727 | u//ByNz/wMXd/6Gkwf+Znq//wr/a/04+Z/87IlT/NBxI/2BTbv/39Pv/9fv3//Xw/v/Dv9D/dHN9//r6 728 | /f/8/v7//P7+//z+/v/8/f////////////////////////////////////////////////////////// 729 | //////////////////////////////////////////////////////////////////////////////// 730 | //////////////////////////////////////////////////////////////////////////////// 731 | /////////////////////////////////////////f/1//b3/P98eZT/2dnw/+/1+f/3/ff/7vLw/8bD 732 | zf9BL1T/RyJe/08faP8yE0X/w8PQ/8Pf2P+oy9L/vdrx//T6/f/z/fz/5/33/7jh4f+z7fn/quv5/6jh 733 | +f+r3fX/kcvz/2yWz/9JXK3/VFG0/3Jjxv90Z7f/NC9m/+Hj/v/a7/7/2u/+/9rv/v/a7/7/2e79/9nu 734 | /f/Z7v3/2e79/9nu/f/Z7v3/2e79/9nu/f/Z7v3/2e79/9rv/v/b8P//2u38/1Bfif91f8n/bnXY/2Rp 735 | 1P9JT6//RU+a/1RgnP9pXLf/aGCu/1JQiv/Z3Pz/mZ+4/9Xc7/+6v9f/trnV/4+Xo/+7uNP/dWGS/0Ei 736 | Yf8+H1r/fGmO/9bU3P/3/PX/8/L//8nJ1/+TlZ7/7fDz//r+///6/f//+v3///r9//////////////// 737 | //////////////////////////////////////////////////////////////////////////////// 738 | //////////////////////////////////////////////////////////////////////////////// 739 | //////////////////////////////////////////////////////////////////////////////// 740 | ///6+ff/0NDT/4yNl//t8Pb/+P3+//X5+//g2+z/TEBf/0wcaf9LImb/QCRa/0I1XP/Qzuf/xszc/5eh 741 | qv/t+f3/5/z8/+T8///R7vz/t93l/8v4+P/J+vn/x/X5/7vm9/+Hs+j/W4O3/2J+tP9UYaD/bW61/3Fu 742 | rv8zMl//2t7y/9ft/v/T6/3/0ez9/87s/f/O7P3/z+z9/9Lr/f/T6/3/0ev7/9Ls/P/T7Pz/1O39/9fu 743 | /v/Z8P//1+v8/9vv///j7f//ZneZ/4Kgyv90mc7/Xn+7/0lcnv9dXqL/VEqN/2ZUpP9rXaH/OjNm/+Li 744 | /f+anbP/rLDC/6aqvv+5u9L/iI+j/8C+3P+Mfqj/NB1O/zAYRf/Qwtj/8vL4//T8+f/9/P3/zMvY/8HB 745 | 1v+DhZb/7PL0//f89f/+/vn//fr5//////////////////////////////////////////////////// 746 | //////////////////////////////////////////////////////////////////////////////// 747 | //////////////////////////////////////////////////////////////////////////////// 748 | //////////////////////////////////////////////z8+f+7u7//zM3X/+3w9//4/f7/9/r8/+bh 749 | 8/9HO1r/Tx9q/0YdYP89IVb/eGqR/8nI4P+pr7//u8XN/+35/f/n+Pv/5Pj8/8DY6P+11eH/xu3y/5rF 750 | yv/D6fb/uNr1/3qi0P9+oMv/fJTC/3J8tf95eLf/dW+q/zEvV//W1+3/2Oz+/9Xs/v/R7P3/zuv8/83r 751 | /P/O6/z/0ev8/9Lq/P/Q6vr/0Or6/9Lr+//T7Pz/1ez8/9fu/v/Z7f7/2u7//9rr/P++1+n/s9fw/422 752 | 4f9uk8b/cIjA/36Gv/9saqP/aVel/2tcn/8zK1v/2tn3/6Ckt//Z3ez/X2N2/6mtw/+Ei5//v73a/7Kk 753 | zv83IVH/Ykx3/8y/2//e3+f/9f35//r6+//19P3/y8nf/6mqvf/IzNH/9Pj0//389v///fv///////// 754 | //////////////////////////////////////////////////////////////////////////////// 755 | //////////////////////////////////////////////////////////////////////////////// 756 | //////////////////////////////////////////////////////////////////////////////// 757 | /////////f36/+zr7/+3uML/4eTr//b7/P/x9Pb/3Nfp/zMmRf9LHWb/RyBh/zcdUf+dkbb/zc3l/4CI 758 | l//o8/r/6vf9/+r2/f/G0+L/scLW/4uitP/E4ez/bIiY/5y00f+tv+v/pcPq/46my/+Flb3/jY/D/4Z+ 759 | u/9wZZ7/LidO/97b7//V5fn/0+f6/9Hp/P/P6/7/zOr8/87q/P/Q6vz/0en8/9Ls/P/S7P3/0+39/9Xt 760 | /v/U6vv/1ev8/9nt/v/W6vv/2e72/63H1/+u0Ob/ocbr/3GSvv9+lMb/eIKz/3d4qf93Y63/WUmI/ygf 761 | TP+3tdH/mp2v//P4//+MkqT/e4GV/3+Fmf+7udb/yb3k/0EuWv9HNVv/6d70//f4/P/z+/f/+vv9//X1 762 | /f/NyuP/YF50/5iaov/4+vj//P34///++/////////////////////////////////////////////// 763 | //////////////////////////////////////////////////////////////////////////////// 764 | //////////////////////////////////////////////////////////////////////////////// 765 | ///////////////////////////////////////////////////+/fv/+Pj7/8bH0f/x9Pr/9fr8/+rt 766 | 8P/Oydv/MCRD/0odYv9II2H/NRxN/7OpzP/CxNv/lp+u/+f0/f/p9v3/3+bw/73F1/97hZ3/j56z/+L0 767 | //85SGD/Qktz/1ZYj/97iLT/jpfB/5eZxv+Ui8P/fWyu/1NBgP8vIk//z8nl/7nH3f/O3/T/1uz//83n 768 | +//N6f3/zun9/8/p/f/Q6f3/0Or7/9Hr/P/S6/3/0+v9/9Xr/f/V6/3/2Oz+/9Hl9//Q2ef/cHyQ/4mZ 769 | uP+ktd7/eoe6/3+Euv90cKb/Z12S/0s2e/86KmT/HxY+/6Wju/+NkZ//5Orz/7nA0P+orsH/YWZ6/7Ky 770 | zf/IwOP/Rzlh/y8jRP/FvtP/7/D1//j++//4/Pz/8O/7/87I5f8yLUn/T0xb//n6+v/7/Pj//vz6//// 771 | //////////////////////////////////////////////////////////////////////////////// 772 | //////////////////////////////////////////////////////////////////////////////// 773 | //////////////////////////////////////////////////////////////////////////////// 774 | //////////////n49v/Kys7/xsfP//P2+//2+/z/+Pz+/97Z6/9OQWD/SiBh/0kmYf87JVP/vLTV/6Kl 775 | u//H0tv/5vT8/+b2/P/Lztz/srfL/3+GnP+cprn/u8bS/yMqQv8pKFP/IRdT/ysmXf8yKl//QDNr/0Er 776 | bf87Imv/OiJn/zEgUv/Eu93/tsDY/8/b8P/S5fv/0+r8/8/q/v/O6f7/zef8/8/n/f/Q6fr/0On8/83m 777 | +f/U7P3/1+z9/9Tp/P/T5vr/zODx/8W91f9JQmH/OjNd/0A3bv9AM3L/PClq/zojZP8+I2P/Pihn/zcl 778 | Wv8iGj3/srDE/1dbZv+VnKb/2ODr/6OrvP+Tl6v/oaG7/7652P9ORmf/NCtI/726y//h5Oj/9fr3//X7 779 | /P/V1eX/ycLj/zoxUv82MET/+/n9//n6+P/8/fv///////////////////////////////////////// 780 | //////////////////////////////////////////////////////////////////////////////// 781 | //////////////////////////////////////////////////////////////////////////////// 782 | ////////////////////////////////////////////////////////+fj2/6GgpP/R0tz/9Pf9//f8 783 | /v/5/f7/8+79/3pujf9LI2H/Px9W/1ZCbv/Dvdz/jpOo/+by+//l9Pr/3+/4/7/C0f9/g5b/wsjb/5+o 784 | tf9kbnf/MTVG/1ZPdf8uHlb/NCNh/zglYP8+J2P/PSJk/z8iav88I2P/QjNg/87I4v+sssv/qbPL/9Tk 785 | +v/R5/3/zuj9/83o/f/M5/z/z+j9/8/o/P/N5vr/zOX4/9Do/P/T6Pz/0+j8/9fq/v+ww9b/x7rV/2tb 786 | fv87J1b/OyNe/zwgY/8/IGb/QSBl/0IgZP89JV7/PSpZ/ygePP+Mipr/NTlB/5GZoP/m7/j/n6i3/9vf 787 | 8P98fZX/srDM/15ad/9pZn3/8PD5//f7/P/3/Pn/7vb3/9zc7//Oxej/MiVL/zEnP////P//+fv6//v+ 788 | /f////////////////////////////////////////////////////////////////////////////// 789 | //////////////////////////////////////////////////////////////////////////////// 790 | //////////////////////////////////////////////////////////////////////////////// 791 | ///////////////////+/vz/1tba/6ustv/W2eH/8PX3//b5/P/b1uj/d2uK/0ciXP8/IVb/cF6H/8C7 792 | 2P+Gi5//5/T9/+Pz+//U5e3/qrC//5Oaq//V3ev/oa2z/2Rvb/82OkH/iYKe/zMiUf89Jl//QCle/zwk 793 | WP9BJl//OyFc/zsnWP9UTmj/Z2px/y8yTv+vttD/zdr1/87j+f/H4Pj/xuD4/9Dq///L5fz/zuf8/9Lq 794 | /v+70+f/xNzw/9Ln/P/P5Pr/0+X7/4qds/9eW23/koqk/yQVPP89J1r/QCdi/z0iYP87I1//PiZh/0An 795 | Xf9ALFj/Gw8s/xwZJ/9QVVr/tr/F/+Hq8/+krbv/7vL//4uNpP+vsMn/gYKa/3Z3iv/Y2uX/9fn6//r+ 796 | +v/k7u//xsbZ/4qApv8wH0n/PzFO//35///6+vv/+P37//////////////////////////////////// 797 | //////////////////////////////////////////////////////////////////////////////// 798 | //////////////////////////////////////////////////////////////////////////////// 799 | //////////////////////////////////////////////////////////////j29P/5+fv/lJWf/8XI 800 | z//1+vv/8vX3/9fS5P/Iu9r/RSBa/zodUP+Hdp7/r6zI/6asvv/g7fr/5PT9/8HS2/+CiZj/wsrY/+bw 801 | +v/W4+P/SVZQ/1heXv+Jg5j/aVqA/1E7bP84IU7/QClU/zghTv8tF0X/HREy/zk6Qv81PjT/TU9r/6+0 802 | 0P/H0+7/z+L7/7nS6v/J4/v/zOb9/8zm/f/L4/j/z+f8/6jA1v+VrML/vtPo/9Hm+//B0+r/hZeu/ztD 803 | S/89QFD/GxYz/y4hS/81Jlf/Nydb/zQnWf8wJlb/OyJV/1A8Zv9yZoH/VVJe/4KHi//k7vD/4+31/6Gr 804 | uf/p6vj/nqG2/6epwf9zdoz/io2e//H0/P/3+/z/8/fy/9fi4//Dw9f/x7zj/z8tWP99boz//fj///r7 805 | /P/4/vz///////////////////////////////////////////////////////////////////////// 806 | //////////////////////////////////////////////////////////////////////////////// 807 | //////////////////////////////////////////////////////////////////////////////// 808 | ////////////////////////9vv7//X6+/+3usD/z9Hc//Hz/P/19/z/3+Lr/9TX3v9oTnH/NyNE/5aL 809 | qP+cnLX/vcXW/9Xi8v/g7/v/u8vY/3mGif/a4+v/8fb+/+nu9/99hof/ZHB0/2dyhP+uuNT/0ur4/8zi 810 | 8f/O4e//v83h/7bA1f/Dyt7/jZKl/zc7Tf+Biq7/tr/q/7G+6/+90PT/udPt/83o+P/T6/r/yt73/8jq 811 | +P/P6Pr/x9fv/7G7z/+hq7n/yNXo/7nH7f+isOX/TVFv/1Vad/9qcYv/g42k/3yHnf9tepD/Z3SK/5Kf 812 | tv+cp8L/lZ60/3B5iP8+R0//yNPX/+z3/P/j8Pz/obC//9Xi6f/Ezdn/f4WZ/3p8lP/Q0eX/7vD6//n+ 813 | /P/0+fD/1eHe/8rH4/+nlMz/LhhI/66lsv/5+fD//fz5//76//////////////////////////////// 814 | //////////////////////////////////////////////////////////////////////////////// 815 | //////////////////////////////////////////////////////////////////////////////// 816 | ///////////////////////////////////////////////////////////////////3/Pz/8/f4/6Kl 817 | qv/HyNL/8PH7//X3/v/e4en/09fc/4Rykv8vIj//p6G9/4OGnv/EzeH/1uLw/9Ti8f+erbv/n6uu/9zl 818 | 7//v9f3/8/j+/2Rub/++ys//eYSX/4aPsP91jaH/bYOY/3uOpP+ImK7/doKY/1xlev9lbH//PEJW/5mj 819 | w/+jrtf/doOy/7LG7f/D3PX/zOj3/8zk9v+dscj/yun5/8zl+v/T4vr/pbDE/+Xw9/+Mmq3/xNP2/627 820 | 7f+ors7/YWiG/11ogf/J1ef/0+H3/8va7/+7yuH/pbTM/3aAnv9yepP/KTFB/3mCiv/s9/r/6fX7/+Tx 821 | +/+1xdL/0d7k/8rT4f90eo7/rrHH/+Lk9v/5+///9/z6//v+9//h6+z/vbjV/zgoW/81Ik7/9e73//39 822 | 9v/7+/j//vr///////////////////////////////////////////////////////////////////// 823 | //////////////////////////////////////////////////////////////////////////////// 824 | //////////////////////////////////////////////////////////////////////////////// 825 | //////////////////////////////X6+f/y9vb/lZed/8zN1v/g4ev/+/z///f5/f/b3uP/e3WP/0A9 826 | Vv+RlKv/bXaL/8fS5v/V4fP/0dzt/4qTpf/E0dX/5vD2/+3z/f/x+f7/T1lb/+Hs7/+CjaP/yNH0/8ff 827 | +f/L4vv/yt/2/8bX7/+Rn7b/q7fJ/4GJoP93fZP/tMHb/2Zzlv+2xe3/ssbs/8jh+f/M6Pb/0er5/4yi 828 | tv+vzNz/0ej8/8za9P+Qm6//5vL8/9Lf6f+Zp8L/xtT8/52mxf+AjKr/Y3KK/5Chtv+NoLL/lKi9/6m9 829 | 1P/C1O//n6jH/5ifu/+YoLH/n6mx/+z3+v/p9fr/6fj8/7rL1P/T3+v/x8/f/4GImv+Wmq3/3N7u//b4 830 | ///3+/v//P77/9TX4f9rZYP/OCpX/3Fih///+f7//v33//39+f/8+f7///////////////////////// 831 | //////////////////////////////////////////////////////////////////////////////// 832 | //////////////////////////////////////////////////////////////////////////////// 833 | ////////////////////////////////////////////////////////////////////////+Pz6//j7 834 | +/+9v8P/t7fA//f3///4+P7/+fv+/93f4/+ytcn/vMHU/2Zwg/9ZZXj/yNbp/9Te8v/O1ur/eoCV/8zb 835 | 4P/p8/z/6vL8//L6/f9xfX3/5PD1/4aRq/+9xO7/xt38/8jf+v/I3fj/j6K6/5qpvf/X4/X/cXmS/4yT 836 | rP+Glaj/nq3L/7jI8P+yx+v/yeL4/9Dt+v/K5PH/sMfT/4Wfr//S5v3/z933/4KOov/p9/7/4/L7/5em 837 | uv+8ye3/1OH//8TS8P9vgpr/v9Tn/8rh8v/N5Pn/0ef+/8jd+f+Pl7v/rrbS/2pyhP/N19//6/b5/+r3 838 | +f/o9/z/v9HY/9vl9v+3v9D/W2Jz/2Nod//q7vn/+Pv+//r9/v/l6Of/0Mzh/zkwT/84K1H/sae7//z4 839 | /P/9/vn//P36//38/v////////////////////////////////////////////////////////////// 840 | //////////////////////////////////////////////////////////////////////////////// 841 | //////////////////////////////////////////////////////////////////////////////// 842 | ///////////////////////////////////6/fr/+Pr6//n6/P9PT1b/2tnh//f3/f/z9Pj/6+3v/8rS 843 | 3//Ezdv/vcjY/zE7S//H0+b/0tvw/8bL4/+ChJ3/0N/m/+j0/v/t9v//6/b6/5ilpP/n9fv/gYyp/7i+ 844 | 7//L3/z/v9P1/6S30/+Dlav/4fH+/7S/0f99hJv/W2B5/9Tl8P+Lm7b/tsbu/7zQ9//L5P3/y+b3/9Dq 845 | +P+xyNj/fJKi/8ja7//K1/L/hpKn/+n3///j9Pv/2un1/4eTrv/S3v//w9Hz/4+jvP+ku8v/zub3/8zk 846 | +P/O5f7/xdn6/5KbvP+0u9L/R09g/+v0/P/o8/f/6/f8/97t9P/C0t3/ydHn/661yP9NVWT/y9Lb/9bc 847 | 4v/v8/b/+Pv9/+/w8/+4qsv/LyNE/zkvTf/58////fz+//3/+//+//v//v7+//////////////////// 848 | //////////////////////////////////////////////////////////////////////////////// 849 | //////////////////////////////////////////////////////////////////////////////// 850 | //////////////////////////////////////////////////////////////////////////////z8 851 | +f/6+vr//Pv9/5uZnv9raHD/+ff8//z7/f/6+fr/6e71/83U3v/J09//cX2M/8jS5f/K0ef/tbnS/5WW 852 | sv/U5Ov/6fb//+v1/v/p9ff/pbSy/+r4//9/iar/sbfs/8nZ/v+yw+X/dYah/9rq9P/n9P//naa3/46T 853 | qP+Eh5v/4vP8/4KSrf+3x/D/tsjy/8zj///O6P3/zeb3/8DW6P+MoLD/o7PK/83Z9f+HlKn/5PX9/+r6 854 | /P/o9/z/n6u8/7O95/+7yOz/qLrT/4edrv/R6Pj/zOP3/83i/v+/0vb/laC7/7O90P9XXmv/7vf8/+v1 855 | +//s9/7/3en1/7/O3f+wt9H/rrTJ/z1EUP/b5On/6fDy//b6/P/4+v3/3dzl/zwnU/89LVD/gnmO//v6 856 | ///6/v7/+//8//3/+//+//v///////////////////////////////////////////////////////// 857 | //////////////////////////////////////////////////////////////////////////////// 858 | //////////////////////////////////////////////////////////////////////////////// 859 | ////////////////////////////////////////+vv3//7//P/6+vr/8O/y/yQiKP/r6u7/9vX4//r5 860 | +v/39/z/7vD3/8jO2P+EjJn/rbXH/8jN5f+go7//nZ67/9fo8P/r+P//6vb+/+n29/+puLb/5vb+/4ON 861 | sf+oruf/ws32/5Ofwf+lssX/5/T+/+jy/P+aoK3/foCS/+Xk8v/Z6vb/lKO//6+96v+9zvj/yd7//83l 862 | /f/J4fb/x9zx/6Kywf+frMT/z9vy/3+NpP/o+f//4vX3/+b1+f/Y5O7/g4q4/6233f+jssz/nK/A/9Hm 863 | 9v/O4vj/0OL//7nK8P+Ypbn/o66//5iirP/p8/n/7fb+/+z1///Z5PX/uMXb/6qwzf9rcYf/Zm97/+Pt 864 | 7v/z+vr/9fn6//P1+f/r6fX/Si9j/zgmS//j3ej/9vn8//n//f/5//3//P/7//7/+f////////////// 865 | //////////////////////////////////////////////////////////////////////////////// 866 | //////////////////////////////////////////////////////////////////////////////// 867 | //////////////////////////////////////////////////////////////////////////////// 868 | ///9/vn//P36//n5+v/8+/7/W1lf/2tqb//19Pb/+fn5//Tv8//y8PT/yMvU/4ySn/+Jj6L/x8vk/5WX 869 | tP+srMr/2Ony/+r5///q9/7/6/n5/6++vf/p+P7/j5m+/5yi3v+yu+P/bniZ/+by///r9f//6/T8/46T 870 | nP+EhZT/8/H9/9Lj7v+Yp8X/r7zr/8DQ/P/J3f//zOP+/8vi+v/J3fP/orG//6azyv/Dz+z/foyi/93v 871 | 9//m+fn/5vX3/+34//+Fibr/p6/X/56rxf+hs8D/xdjo/9Hk+v/P3/3/narT/6a1w/+ZprP/vcjQ/+74 872 | +//s9f3/6vP//9Te8/+yvdj/qK3M/2Rqgf/i7PT/8fv7//P7+f/1+fr/4+Xt/7azwf9BIlv/ZFB2//r2 873 | /f/4/fz/+f/9//n//f/8//z//v/3//////////////////////////////////////////////////// 874 | //////////////////////////////////////////////////////////////////////////////// 875 | //////////////////////////////////////////////////////////////////////////////// 876 | //////////////////////////////////////////////n9///6//n/+//0//3++/+Ujp3/NitB/+ji 877 | 6P/7++7/6e3p//j6+//i4ez/trXH/5iUrf/Lx+T/mpa1/7Gvzf/Y5/X/5PX+/+H1+v/i9/z/sMLL/+fx 878 | //+pqsL/mZS9/5WXvv+nrsX/6PT8/+n1/P/V3ev/goia/6qxvP/u9fv/0ubi/5adyv+xtfj/xtj//8jj 879 | 9v/L5P7/zOL+/8vl9v+jrbT/usbL/667xv96ipf/1eXy/+n2/v/s9/7/6/X8/6evyf+kp73/qam5/7W4 880 | yP+wvtz/y9v//8jV9v+JkbL/0dvy/5qmuf/S4O3/5vP7/+n1+v/t9/3/ytLg/7O6y/9naoT/ztva/+Ht 881 | 7//y9v//9Pf5//j77/+sn7L/NxRi/0o4bv+il7P//fv+//z8+v/+/vz//v3///79/v/+//z///////// 882 | //////////////////////////////////////////////////////////////////////////////// 883 | //////////////////////////////////////////////////////////////////////////////// 884 | //////////////////////////////////////////////////////////////////////////////// 885 | ////////+v3///r/+f/7//X//f78/9/Y5f93bYP//PX8//v69v/5/Pj/+v38/+vt8v/MzNr/paO4/7Kv 886 | yf+ZlrP/srDO/9Xi8f/j8/3/4fX6/9Lm6f/J2+L/5fD9/8rN5P9zcpX/hYmr/9zl8//n8/r/6/f9/8nS 887 | 3v9rcoL/y9Ld/+32+v/S5uP/lp3K/7G1+P/F1///x+L1/8ri/v/L4v7/x+Hy/6OttP/W4uj/go+a/3+P 888 | m//O3uv/5fL9/+v3/v/r9fz/ztbp/5KVqf+rq7v/0NXm/56qy//L3P//w9D2/3qCo//f6vr/laKy/9fl 889 | 7//q9/7/6vb8/9rk7f+wuMj/TlVn/5icsv/k8e//6vf0/+/2///2+v7/5OXg/y4cPf9gN5L/UUBz/+TZ 890 | 8P/7+fz//f76//7+/P/+/f///v3+//7//P////////////////////////////////////////////// 891 | //////////////////////////////////////////////////////////////////////////////// 892 | //////////////////////////////////////////////////////////////////////////////// 893 | ///////////////////////////////////////////////////7/f7/+//5//z/9v/9/vz/+/b9/y4k 894 | O/+mnbD/+vP8//r9+f/5/Pn/8/b3/9fZ4f/Nzdv/kZCl/5+cuP+vrMv/0t7s/+b2/v/m+vz/0ufp/7DE 895 | yf/e6/X/5Ov6/1lcd/9+hJ//6/b+/+f1+P/s+Pv/xM7X/2lxfv/d5u3/7/n5/9Pm5f+Xnsv/sLT3/8TW 896 | /v/G4fb/x9/8/8rg///B2+z/maOq/+j0+v9DUFv/kaGu/8ra5//k8fz/6/f+/+v1/P/n8///iY6g/7Cw 897 | wP/a3/P/lqLD/8vc/v+ruNv/o6rF/9Th7v+ntcL/2ujy/+v3/v/o8/v/ydLh/4aNn/+Gi6D/5+v5/9nm 898 | 4f/w/fX/8fr7//X6/P+2s8D/Qitg/3FGrv9kVYD/+/L///37/f/6+vf//v79//79///+/f7//v/8//// 899 | //////////////////////////////////////////////////////////////////////////////// 900 | //////////////////////////////////////////////////////////////////////////////// 901 | //////////////////////////////////////////////////////////////////////////////// 902 | //////////////39/v/9//v//f/5//7+/P/39Pr/YVlw/zUoS//TxOD/+/79//f6+f/7/v3/6Ozt/8/S 903 | 2f+BgZH/h4Wf/66syv/O2OX/5vX9/+b4/v/d8vX/xNjc/8zc5f/G0d//UVhq/4qUpv/q+P7/6vn5/+v4 904 | +f+8x8//dn6K/+z1+v/v+vf/1Ofn/5eezP+wtPj/xNX+/8bh9v/G3fv/yt///73W6f+Vn6b/8Pv//yIs 905 | Nv+yws//y9vn/+Xy/f/s+P//6vT7/+X0//+EjZv/rrK//9vh8f+QnL3/ydn8/4SQsP/J0OL/wc/a/7vJ 906 | 1P/i8Pj/3Ojy/77J1v+stMT/gomb/+nv/P/q8Pf/7fjz/+788P/y/vj/4+fu/5OKrP87Hmj/c0i0/5KH 907 | pP/79f///Pz7//z9+f/+/v3//v3///79/v/+//z///////////////////////////////////////// 908 | //////////////////////////////////////////////////////////////////////////////// 909 | //////////////////////////////////////////////////////////////////////////////// 910 | ///////////////////////////////////////////////////////////+//7+/f/9/vv//f77//n3 911 | /P+akqj/a1yN/zYhY//d2+b/+Pj8//T49//s8e//ztPT/8vN1/9UVGn/sK/L/73F1f/o8/7/4fH7/9vu 912 | 9f/F2d//3fD3/+b1/P9eZ3L/hZGd/7TCx/+zwsD/p7S2/3J7hv9KUl//rre8/8LOyf/S5eb/l53N/62w 913 | 9v+8zfb/yeP6/8Pa+v/K4P3/udLk/5ulq//s+Pv/LzxH/7/P3P/H1+T/5/T+/+r1/P/u+P7/4/X+/3N+ 914 | iP+5vcX/4eb5/5Kev/+6yu7/f4qo/+nw/v+0w83/rLrG/7zJ1v/R3Ov/xs/g/6iwwf+EjJv/5Ov4//b7 915 | +//0/Pr/9f75/+n27/+4ucr/KhtT/1EyiP9hPJz/0snf//n1+/////3/+Pr0///+/v///v////7///// 916 | +/////////////////////////////////////////////////////////////////////////////// 917 | //////////////////////////////////////////////////////////////////////////////// 918 | //////////////////////////////////////////////////////////////////////////////// 919 | //////////////////////3///7+///9/f/9/fr//v3+/62nu/9tW5n/MhZw/7+40P/18f3/+fr+/+Po 920 | 5f/N09H/y8/U/4mKm/+wr8n/sbbK/93k9v/l8v7/3O33/8fa4v/U5u7/5fb9/4uZoP+xvcb/7Pv9/+n4 921 | 9v/a5uv/rbXD/3Z9jf/q8/f/6vXy/9Xo6f+Qlsf/rK/2/7fH9P/G4Pj/wtn6/8fd/P+rxNn/pK6z/+35 922 | /f9UYWz/ydnl/8fX5P/m8/3/6vX8/+33/v/f9Pv/eIeN/6+2v/+xuM3/RlFx/01cfv9pc47/wsjY/6m2 923 | xf++y9r/4u77/8zW5/+xusv/aXKA/9Td5//h6vL/9fz0//X5+//w9vn/3ufp/8vI4/8/Knb/aUuk/1M4 924 | gP/89v//+/r9//3++P/8/vf///7+///9/////v/////7//////////////////////////////////// 925 | //////////////////////////////////////////////////////////////////////////////// 926 | //////////////////////////////////////////////////////////////////////////////// 927 | /////////////////////////////////////////////////////////////////f///f////z+//79 928 | +//8/vz/7+r7/2FOlf90U8H/RDdk/7qxy//5+P//5+zq/9/m4f/T2Nr/s7bD/3Jzif+ztM3/vMHZ/9Te 929 | 8//f7v3/ydro/8rc5v/j9fv/qLm+/8LP1//p+Pr/5vT1/+Pu9v/ByNv/houg/+73///u+Pf/2evt/4eM 930 | v/+srvb/sMDt/8fg+f/F3P3/x9z+/5y1y/+strz/7fn+/4iVoP/H1+P/x9fj/+Tx/P/q9v3/7Pb9/9Tt 931 | 8f+mtrj/5Ozy/93k9/+BjKz/gI2w/8PO4P/W3OX/tMDT/8DL3//U3/T/t8DV/2VugP/P2eD/4e3w/+/7 932 | +v/4/PD/9/j//+3u/P/f4vH/urPg/041jv9pTqL/iHej//v4/v/+/v3/+/30//z99v///v7///3////+ 933 | //////v///////////////////////////////////////////////////////////////////////// 934 | //////////////////////////////////////////////////////////////////////////////// 935 | //////////////////////////////////////////////////////////////////////////////// 936 | ///////////////////////////8///9/////P7//v76//r8+f/28P7/WUSR/4Ri2f9nV43/gHSc//r3 937 | ///2+vv/9/34//L49//Mz9v/oKG2/3h4lP+ipMD/ucHa/9Ti9//L3O3/xtfj/9/y+f+htLj/y9jh/+r4 938 | +//r+Pv/4Or1/8zR5/+Dh57/8Pf//+z29v/c7vH/gIa5/6uu9v+su+n/xd73/8Xb/f/F2f3/j6e+/77I 939 | zv/q9fr/xdLd/8HR3f/H1+P/4u/6/+v3/v/r9fz/0Ors/7XGyP/e5ur/2uH2/4WQsP9xf6H/0Nvw/8HG 940 | 0f+2wdf/wMri/73H3/+NlKz/kJmp/+Hs9P/t+fn/7fn1//X87P/5+P3/xcPa/3Jyif9GO3L/Ykao/2BH 941 | mP+rorf//fv///3++//+//b//f74///+/v///f////7/////+/////////////////////////////// 942 | //////////////////////////////////////////////////////////////////////////////// 943 | //////////////////////////////////////////////////////////////////////////////// 944 | ///////////////////////////////////////////////////////////////////+/f7////4///+ 945 | +f///P///P72//n+9/+BfK7/e2Hf/3lb5v9YTZL/3OXh//X85//7+fj/+/P///fz+v/Z3s//vsfP/4iQ 946 | nP+kq77/ucHY/8vX6//N3ur/0efp/5+4tP/N2tj/6vj5/+j3/v/Y5vP/x9Tk/4ONm//s8/3/8vf//+Ls 947 | +v9/iqD/srH5/6uu+//F3fX/xuPz/8jZ//99kbT/zN3l/+T1/P/E1d7/xtfg/8bX4P/g8fn/5vf//+Lz 948 | +//J4+f/ssbK/9jn8P/V3uz/T1Vp/4eLo//Gyub/t7vZ/7u72f++wtz/n6m9/3iGk//V4+v/5fD1//T6 949 | /f/7/f//6Pn0/7y/0v8/Km3/Zzuq/287vf9vSLL/Tz55/+/v/P/+//7//f/+//3//v/8////+/////v/ 950 | ///6////+v////////////////////////////////////////////////////////////////////// 951 | //////////////////////////////////////////////////////////////////////////////// 952 | //////////////////////////////////////////////////////////////////////////////// 953 | //////////////////////////////78//////j////5///8///6+/X/+Pz3/5mUu/97Ydb/d1br/2pX 954 | uP9BPWD/zM7S//r3/f/9+P//+Pb9//H28f/a4+j/ztbg/4SLnf+ss8r/vMfc/8/d7v/J3OT/ore5/8fa 955 | 2P/m+fr/5ff+/9Xl8v/K2Ob/foiW/+bt+f/w9P3/3+n2/4qWqv+ys/f/paf2/8fd9//E3fH/xdb+/2x/ 956 | of/X6O//3/D3/8TV3v/G1+D/xtfg/+Dx+f/m9///3u/4/87n7P+ovMP/1OLt/8zT4v8TFyz/uLrT/77B 957 | 3f+zt9T/vLza/7i81v9pcYP/ydbf/+Ty9//t9/r/9v3+//n9/f/o7/X/iIKf/y8UWf9wQq3/bjqy/3FJ 958 | qv9fToD/9/f+/////v////7//v/+//7//v/+//7//f/+//z////8//////////////////////////// 959 | //////////////////////////////////////////////////////////////////////////////// 960 | //////////////////////////////////////////////////////////////////////////////// 961 | /////////////////////////////////////////////////////////////////////////vv///// 962 | +P////j///z///v8+f/5/vn/ysfn/2pUt/91Uuz/fF/f/11JoP+nncr/5eLx//j6/P/7/f7/6ezx/+Lq 963 | 7P/T2eH/vcPT/291iv+vt87/vMfb/8/e7v+oucX/u9LT/931+f/g9/3/0OXw/8rb6P+Hk6D/2N/q/+/y 964 | /f/b5/P/laS0/6+z8/+fou//xNn5/8fe9/++zPj/Y3aV/+Hy+v/Y6fL/xtfg/8bX4P/I2eL/3/D4/+X2 965 | ///Y6fL/0+ry/5irtP/R3uv/rLPF/11gdv+0tc//t7nW/7i62P+3uNT/rbHI/3+Hlv/d6e7/5PHx//D8 966 | +f/4//7/7vPy/4N5lf8wHUj/ZEKI/3FDpP92RK3/b0ma/5yMrv/8+vz////+/////v////7////9//// 967 | /f////3////9/////f////////////////////////////////////////////////////////////// 968 | //////////////////////////////////////////////////////////////////////////////// 969 | //////////////////////////////////////////////////////////////////////////////// 970 | ///////////////////////////////////++////v/3//7/9v/9/P//+/z8//j99//z8P//WkeT/4Bf 971 | 7f9+Wuj/f17X/045hP/i3vH/9v3x//X98//3/f//8/n5/9PZ3f/T1+T/c3mL/6SqwP+stMv/vMbc/77K 972 | 3v+uyM7/1e/2/9v2/f/N5fD/ydzn/5mns//Iz9j/7vL+/9nn8/+crbr/q7Ls/5yg7f+7zvT/ydz9/7G+ 973 | 7v9kd5D/5Pf+/9Tn7//K3eX/xdjg/8jb4//d8Pj/5Pf+/9Pm7v/X6vT/jZ2q/9Hc7P+LkKP/lpiu/7S0 974 | zv+9vtr/r7LP/66yzP+sssb/gYqT/+jz9P/x+/n/9P37//f+/f/o7e7/MhhI/0wuY/9SK3D/TyN1/0wh 975 | df88HFv/08bc//v89/////7////+/////v////7////8/////P////z////7//////////////////// 976 | //////////////////////////////////////////////////////////////////////////////// 977 | //////////////////////////////////////////////////////////////////////////////// 978 | //////////////////////////////////////////////////////////////////////////////75 979 | ///+//b//P/0//v8///3+f7/+v/5//b2+/96bJ//gWXY/35a2v9+V9X/OyB1/9fQ5P/1++v/9Pzt//f9 980 | /P/0+fj/7PHy/9re5f+4u8r/PUNV/5KYrf+rssj/s7vS/67D0P/F3ej/3vb9/8rj7P/M4ev/rr3J/6my 981 | v//t8/7/1+b0/6i8xP+dptr/naLt/6296f/H1v7/q7Xo/26AlP/f8/v/0ubu/8nd5f/M4Oj/yt7m/97y 982 | +f/f8/n/y9/n/9nq+f+CkKH/xs7h/5GVqv+3t8//trXP/7Kyzv+xs8//r7XK/3V8i//c4+n/9v38//P6 983 | +P/0+vn/8vb7/+Hj7f89Glf/TSll/0MgXP9CHl//QiFh/zciUf/58/3/+v33//v9/v/7/v///Pz9//z8 984 | /f/6+vn//Pv4//78+f/8+vf///////////////////////////////////////////////////////// 985 | //////////////////////////////////////////////////////////////////////////////// 986 | //////////////////////////////////////////////////////////////////////////////// 987 | /////////////////////////////////////////vj///3/9v/6//P/+fz///j6///3/fb/+/z7/5qQ 988 | qP9cQpr/Vjad/1YwnP9OLoL/STle/97b3P/3+vP/9fr0//v9+//6/Pz/4+fp/9fb4v/Kz9v/anCA/292 989 | h/+hqbz/kp2x/8/e7v/Y6vX/zeLr/8ve5v/F1d7/h5Of/+ry/v/W6PP/tMvP/4eVwv+dpOz/orDi/8LO 990 | /f+Xn9T/kaOy/9rv9//O4+v/yd7m/8vg6P/K3+f/3fL6/9Po8P/J3ub/0+P1/3eDl/+9w9j/jI6l/7e0 991 | zv+0ssz/tbPP/7Gxzf+QmKj/j5eh/+/29//z+ff/+fz8//L0+f/u7vz/NjZO/0kkZf81FEz/el+P/2JL 992 | ev9AL1z/U0pt/6qstv/V3t3/9Pn+//H1/v/4/P//+fz///f3+f/+/P3/+vj4//79/P////////////// 993 | //////////////////////////////////////////////////////////////////////////////// 994 | //////////////////////////////////////////////////////////////////////////////// 995 | //////////////////////////////////////////////////////////////////////////////// 996 | ///++P///f/1//n/8//3/P//9vj///n9+P/+//j/6+Xt/0MocP9XOIn/VjKK/1Ywg/9HKmj/gW+S/56Y 997 | pP/5+vr//f78//n6+f/4+/r/4OXm/93j5//R2OD/wMjT/211gv+Skqv/uLzR/9Pe7f/Q4er/yNvi/8rb 998 | 5P+Ekp7/5fD9/9bq9//D3d7/b3+o/52k6/+equH/tb72/3d9tP+ousX/0+nx/8nf5//J3+f/yd/n/8rg 999 | 6P/Y7vb/yuDo/8je5v/K2O3/fIad/7K3z/+YmbH/uLXP/7Kvyf+0ssz/vbzX/3uEj//T3OD/8/n5//r9 1000 | +//4+Pr/9PP8/6CbuP84M1r/US9v/04zZf+7qs//sqnI/62qyv+ssM3/lJ6v/4aWnP90fIz/b3eF/4uS 1001 | nv+hpq//vsDH//f4+//z8/X/+vn5//////////////////////////////////////////////////// 1002 | //////////////////////////////////////////////////////////////////////////////// 1003 | //////////////////////////////////////////////////////////////////////////////// 1004 | //////////////////////////////////////////////73///9//X/+f/y//f8///5+v//+f34//3/ 1005 | 9P/69/f/SS1v/1c4fv9aNYL/WDCE/00md/9HKmn/OSlJ/8zIz//4+Pb//f77//n7+f/z9/b/4+no/9LZ 1006 | 3P/U3eH/tb7G/3Vui/+uq8P/sbfH/8zZ4v/M3eT/yNri/4mYpf/P3Ov/0eX0/8rl5P9idJn/oanv/56q 1007 | 4v+dpOD/ZGig/8TW3//O5e3/xdzk/8ng6P/I3+f/yeDo/9Dn7//H3ub/x97m/7/M4v+Ikaj/p6vE/6up 1008 | w/+1scv/trLN/7Gvyf98e5X/f4uU/+ny9P/2+/r//P78//z6/f/28P3/X1d9/0lAcf9PMG3/cVuI/7ux 1009 | zf/Hx9z/2t/3/9ji+f/X5vb/1ejx/9bh8//P2ev/x9Dg/7e+y/+fo63/d3qB//j4/P/49/r///////// 1010 | //////////////////////////////////////////////////////////////////////////////// 1011 | //////////////////////////////////////////////////////////////////////////////// 1012 | //////////////////////////////////////////////////////////////////////////////// 1013 | ////////+fz///v8/v////7//v/7//X49P/5/vz/vsjH/5mmpv9raYz/SUVn/0pEZv9JPmH/TDxe/z8r 1014 | Tf84IUT/hWuO/+/5/f/w+vb/9v30//f89P/z9/r/2t7p/9Ld5f/M3uH/b2mE/66px/+tp8n/tLDU/8G/ 1015 | 4v++wN7/l5y2/7C4zP/G3+z/x+Lq/26Fl/+bp9r/np/y/6Gk8v9pe5z/yurh/8bg5f/F3+T/x9/m/8vh 1016 | 6v/I2+f/ytvp/83c7f/G1eb/rq3U/5STuf+mp8r/sbDQ/7m51P+PkKX/cnSE/9rc5v/o8fX/8Pz9/+fy 1017 | 8//o8fn/zsng/4dxo/9ZMYD/YCyM/0Qmaf+IgKz/v9Pg/9Ty8v/d+fn/4fj+/976/v/U+Pv/2vv7/9f6 1018 | /P/T+P3/1vj//9Xw+P+7ytD/wMTH//37+/////////////////////////////////////////////// 1019 | //////////////////////////////////////////////////////////////////////////////// 1020 | //////////////////////////////////////////////////////////////////////////////// 1021 | ///////////////////////////////////////////////////7/P///f7///39/f/9//7/yc7N/5mj 1022 | o//F09b/1+nu/87c9v/g6/7/2eH8/9bc9P/Q0Oz/vbnX/42HpP8zK0j/n6Ov/+vw9P/6/fj/+fz1//v9 1023 | +//0+fz/3unt/9Xj5f+FhZn/f36V/6WjwP+tqsz/q6nN/6amyP+qq8r/mJq3/8na7f/L3+r/lqm4/4GL 1024 | tP+houX/nZ/g/4GQrP/K493/ytvp/8rb6f/I2Oj/x9Xm/8vX6v/L1er/wcng/6+3zv+fnsT/mZm9/7K0 1025 | 0/9+f5n/b3GF/6CjsP/o7PH/9fn7/+339//0/v//6PD4/8jI3P9OQ23/Vzx8/2A3i/9iMJH/RCZn/56X 1026 | wf/T6PT/2/r5/9z5+v/f9/7/2/b+/9b5/f/Y+Pr/2fr+/9P3/v/W+P//2vT6/8jW2f/Iysz/+/n6//// 1027 | //////////////////////////////////////////////////////////////////////////////// 1028 | //////////////////////////////////////////////////////////////////////////////// 1029 | //////////////////////////////////////////////////////////////////////////////// 1030 | //////////////38/v/9/f3//P39//X5+v+strj/6fn8/9vw+//H4O3/u9rw/8He8v/S7Pv/2O78/+L2 1031 | ///V5vT/s8LW/4aTpv8oIzr/7+v2/+7s8P/8/Pf//f73//j89//0+vn/5u7x/9bd5/+or7z/Zmp//6Cg 1032 | vf+sqMv/rafO/6miyv+UjbX/s7jZ/8jR5f/I0uL/WF57/6ur2/93dqj/wcfk/8/d4v/Iz+j/vcPd/7K3 1033 | 0v+vss7/r7HP/7Cwz/+urc7/sK7O/4+Qsv+wsdD/trjR/3l9jf/p7/T/7PHz/+zy7//3/fj/9f34/+3z 1034 | 9//Jx93/MydW/1M8f/9ZNon/XjGP/2AukP88IF7/qqXM/9zx/P/Z+vf/3fr8/+D4///X8/3/1Pf9/9z7 1035 | ///Y+P3/0O/5/9v4/v/i+Pz/gI2S//f4+////P3///////////////////////////////////////// 1036 | //////////////////////////////////////////////////////////////////////////////// 1037 | //////////////////////////////////////////////////////////////////////////////// 1038 | //////////////////////////////////////////////////////////7+//z8/P/9/v7/6O3v/6Sx 1039 | tv/O4u7/vNfq/7va8P+32u3/t9jr/7fY6f+72en/1fD8/9Xv+v/Z8ff/o7vG/zcoSv9/cZD/7uX0//v2 1040 | /P////r/+v30//v9+v/4+v3/5fPz/9fj6P+xucb/Zmh+/358mv+vqM7/r6TR/6+i0f+oodH/rarO/7a3 1041 | z/9NTWj/ranP/25ok//LyOv/tLXN/6uoyv+tqsz/sa3P/7Ou0v+zrND/ta3S/7Sr0P+6sNb/jo6r/5aY 1042 | sP98gZD/r7W7/+/29f/x+PP/9/32//X78v/z+fX/v8DM/zguV/9UPIP/VTKO/1kvk/9eL5P/XS6P/zwi 1043 | XP+wrdH/3fT9/9r8+f/c+fz/3fX//8jj8v+73un/1fD+/8Xg7/+51eH/0erz/9Tm6/+Rmp3/+vv8//77 1044 | +/////////////////////////////////////////////////////////////////////////////// 1045 | //////////////////////////////////////////////////////////////////////////////// 1046 | //////////////////////////////////////////////////////////////////////////////// 1047 | /////////////////////v3///79//3+/v/3/v//lKGn/9Tq9v+51uv/t9ny/7zZ7f+82Oz/vdnp/8Tf 1048 | 7f/b9f//3PX9/972/P/F2+L/RzRZ/z8qWP9hTX3/rqHA//z4/f/z9PD/+Pj2//v6/f/w/v3/3+3t/+Hs 1049 | 8f/M0t//fn6U/56ZuP96cZj/tqvV/7Om3f+0q9f/savO/3x3lv9fWH3/k4u0/6ujzf+spMz/rqrN/7Sw 1050 | 0/+zrdD/sq3O/7av0f+1rc//t67Q/2lggv9pbH//naCv/+vx9v/y9/j/9/36//f8+P/4/Pr/+Pz5/+/w 1051 | 9v9DPFn/WUN//1Uyi/9ZLpj/XS2Z/10vk/9fMpD/PCVb/6ysy//f+P3/1/r2/9r4+//d9v//xeHz/7fZ 1052 | 6P/A2O//v9fs/8HY6P/c7/j/iJaa/+vx8//8/Pz//vz7//////////////////////////////////// 1053 | //////////////////////////////////////////////////////////////////////////////// 1054 | //////////////////////////////////////////////////////////////////////////////// 1055 | ///////////////////////////////////////////////////////////////+/v///v7//f7+//j+ 1056 | //+ap67/4vb9/8vm9P+62vH/wdfv/77V6v/D2uz/1ez7/+D2///g9v7/4vj8/9Pp7v9eSm3/PCNe/2hL 1057 | mv9GMXb/lYyv//r5/v/39vj//vr+/+/7+f/u+fj/4ezs/+Tt8f/l6vL/f4CR/7Kxyf9qaIT/enac/7Cs 1058 | 0f+vrc7/s7HS/3p4mP+pp8n/rKjO/7ax2v+xs8//sbPO/7Gzzv+vr8r/sbDJ/7Oyyv92dIz/zsvf/+Po 1059 | 8P/q8Pb/9fv7//f8+//2+vr/9vj9//f0///59f//8+n//1E+cf9VNoH/Yzia/2EwnP9eLpj/XTGQ/1wz 1060 | i/9ALF7/oKK9/9/6/f/W+/b/2fn8/973///O6vv/uNru/77T8v++1O7/ydzv/8HQ2/+bpan/9Pj4//7+ 1061 | /f/9+/r///////////////////////////////////////////////////////////////////////// 1062 | //////////////////////////////////////////////////////////////////////////////// 1063 | //////////////////////////////////////////////////////////////////////////////// 1064 | //////////////////////////7+//7+/v/9/v7/+f7+/93n6/+2yND/z+f2/7rV5/+81O7/vtbu/7zV 1065 | 6v/I4fL/3fb//934/v/a9fv/1O/z/4NzkP81G17/cU+4/29Tuf9XSIv/4Nzw//Tz+//59v7/9/3+//T7 1066 | +//u9vT/9Pz5/+jz8P/n8fL/5e71/8jP2P+8xsz/fIWS/3V7kf9gZXz/goic/6+1yP+Eip//mJ23/6Cr 1067 | vf93g5P/doCQ/4yWpf+Qmab/jJWg/7G5wf/c5O7/7fT0//T7+f/2/fn/8/n3//H0+f/28v3/yL/W/6OW 1068 | uf95ZKP/TTF5/184jv9dLpH/Xy2U/14ukP9fNY7/WDKF/zYlUv+XnLT/2vf4/9b79v/X9/r/2PL//8fk 1069 | +v+11+7/v9L3/8PW8//I2O3/bnmE/+vy9P/6/Pv/+Pb1///+/f////////////////////////////// 1070 | //////////////////////////////////////////////////////////////////////////////// 1071 | //////////////////////////////////////////////////////////////////////////////// 1072 | ///////////////////////////////////////////////////////////////////+/f7//v7+//7+ 1073 | /v/6/v7/8/z8/6i2vP/N4u3/xN3s/83p/f/H5Pv/t9Tr/7vb7P/S8v7/2/v//9b4/f/V9/n/pJav/y0T 1074 | Wv9lQbj/hGLe/25bsP9IQWj/oJ6t//Ds9f/z9Pr/+v3+//n++//1/vf/8v32/+369f/o9vP/5vT0/+D3 1075 | 4//i9O//ydfd/8LO2/+Ypq3/eIiM/7fFzP+ap7L/b4GL/+Dx+f/a6/H/3/D2/97u8//k8/X/5PLz/+v5 1076 | +f/0+vX/9fz2//f9+P/t8vH/6ur1/42Go/9JO2n/UT53/04xgv9iQJX/XTOQ/2Exk/9hL5H/YDKN/142 1077 | iv9MKHb/f26a/4uQp//a9/j/1Pv2/9j5/P/U7f7/vNjw/7XY8P++0Pj/x9n2/4WUqv/G0Nr/9vv9//j6 1078 | +f/9+/r//v38//////////////////////////////////////////////////////////////////// 1079 | //////////////////////////////////////////////////////////////////////////////// 1080 | //////////////////////////////////////////////////////////////////////////////// 1081 | ///////////////////////////////+/////////v////z////x+Pf/9f7+/5WioP/r+ff/2fX5/9n4 1082 | +//M8PL/yu/v/9X7+v/Y+/r/2/r7/935/P+0scj/LBtQ/2BAo/9+XOH/dVzm/2td0P88MIL/kICy/+nx 1083 | +v/y+f//8fn4//T79v/3/Pj//P79//36///+9///9fz4//P69//v9fP/8/n5//L3+f/z+Pv/6+/0/+7y 1084 | 9//x9PX/8fX0//H18//2+fn/9vj6//n6///39v//+vf///T4/f/2+/3/8PX3/+Tl7/+hm7b/Oyll/1E1 1085 | jf9cOaT/WUS//2xN0P9iN7z/Wyyj/1cujP9cPIT/SjNw/4p4s/+Pkaz/gIuh/93z///W9v3/0vj7/9n9 1086 | /v/I6u3/1vX3/9Dm7v+aq7L/sbrA//f4+////v////7+/////P////v///////////////////////// 1087 | //////////////////////////////////////////////////////////////////////////////// 1088 | //////////////////////////////////////////////////////////////////////////////// 1089 | //////////////////////////////////////////////////////////////////////////////// 1090 | ///+/////P////j9/f/w+fj/zdnY/56sqv/Z8/b/3vr8/9v6+//X+fv/1vr9/9j5/f/b+f3/3Pn9/8LB 1091 | 1f8wIFX/XT2f/39c4v9zWej/d2Xj/3Ffwv9qVaT/bWmZ/8TD4f/o6fb/6e31//b8+P/2+vP/+Prz//39 1092 | 9//5/v7/+f7+//j9/f/6////+Pz9//n9/v/0+fv/+P3+//T9///1////9P79//X//P/w+/f/8Pr5//T8 1093 | ///y+/3/9/v9/+ns8v/Dw9D/c22O/zosZv9LNIn/Vjem/3xY1v95Zt3/fGDh/3dQ1f9iN6//WzaT/1A1 1094 | d/90Y5b/s6jW/5GUrv+Ai6D/3fP//9f3/f/W+/3/1Pf5/937/f/b9/v/vtDW/5uorv/w9/z/+vv9///+ 1095 | /////v7////8//7/+/////////////////////////////////////////////////////////////// 1096 | //////////////////////////////////////////////////////////////////////////////// 1097 | //////////////////////////////////////////////////////////////////////////////// 1098 | //////////////////////////////////////////////7////8////9vv6//X8+//y+vr/t8HA/6zA 1099 | xv/g9/3/2fT7/9v5/v/Y+P//2fj//9v3///c9///xsjc/zAjVP9QMZD/g2Dk/3VX6/9zXOn/eWHd/4Jl 1100 | 0v99asv/VEWZ/1xTkP+4tdj/8/T9//L39f/7//T/9fnq//n8///5/P//+v3///v////5/vz/+f77//j+ 1101 | +v/6//v/7/z+//L//v/x/v3/8//9/+379//j8u7/4e/u/+Hu7//Kx9b/i4We/zkvXv9FNXv/Uzyc/2VJ 1102 | wP+BYOf/gF7u/3Nl2/93YOL/gWDo/3dRzf9gQJ7/SjZ0/7Cn0P+qpsb/lJix/4CLn//c8v3/2vj8/9f6 1103 | +//e/f3/2/b3/8ne4v+dpav/7vX5//r+///7+/3///7///7//v/9//z//P/8//////////////////// 1104 | //////////////////////////////////////////////////////////////////////////////// 1105 | //////////////////////////////////////////////////////////////////////////////// 1106 | //////////////////////////////////////////////////////////////////////////////// 1107 | //////////////3////1+Pj/+f7+//P5+f/y+fj/qLW7/6y7wv/Z7fP/y+Tv/9v1///b9v//2/b//9z3 1108 | ///M0uP/NixZ/0Inff+DYt7/eFrs/25T6v96XO3/gFzm/3pd4/98Ytv/ZVG1/0I1f/+Ti7v/j4uq/8rJ 1109 | 2//t7vr/7Ov7/+/v/P/4+v//+fz///r+/v/4/vv/+f/5//n/+P/2/v7/8/z7/+739//w9/v/5+32/+Xo 1110 | +f/X2PD/z87q/4d5rv9EMnb/ZEyl/2tQv/96Xd7/f2Hr/3db6P90Wef/cGHi/3dg6v95Wen/fV3d/2hO 1111 | sP9/cbD/q6bO/6mox/+WmrP/gYue/93x+//d+fv/3/z9/933+P/N4eP/orG0//z9///4+fz/9fX3//X3 1112 | 9//9////+//+//r//f/6//z///////////////////////////////////////////////////////// 1113 | //////////////////////////////////////////////////////////////////////////////// 1114 | //////////////////////////////////////////////////////////////////////////////// 1115 | /////////////////////////////////////////////////////////f////3////8/////P////z/ 1116 | ///y+Pz/rre//6y6xv/K3Oz/y+Py/8fh7v/V8Pv/2/b8/9Ld7P88N13/Nx9q/31fzv94XeX/dVvw/3ZY 1117 | 8f97Vu7/d1ns/3ha5v9/ZOP/cVnJ/1I+nv9JNYr/Oihz/1dGjf90b5H/6OT7/5iWsf/S0eD/5eX2/+7x 1118 | +f/w8/n/2+Dm//Py+P/v7Pb/5N/t/7+30f+Lfaj/SDZw/0Isc/9AJnX/UDSa/29Rwf+DY+H/f17o/3pb 1119 | 6/94XOn/dl/k/3Vh4f9xXuv/dFvu/3ld7f99Y9//aFWy/46DwP+loMz/qKXL/5Wbsf+Fj6L/3/L7/+D5 1120 | /P/f+Pj/0OTl/7K/wP/s9Pb///7////+/////v///f////v//v/7//7/+//+//r//v////////////// 1121 | //////////////////////////////////////////////////////////////////////////////// 1122 | //////////////////////////////////////////////////////////////////////////////// 1123 | //////////////////////////////////////////////////////////////////////////////// 1124 | //////////////////////////////7////+/////v////r8+//z9/r/i5Sf/8DP3P/B1uf/zOX0/934 1125 | /v/W8ff/1+Xt/2JhgP9QPnv/XUSg/3xm3P9zXeb/dFrt/3hX8P93W+7/d1rq/3pd6f9+YOf/fV7h/31e 1126 | 3P9xUcv/a0rE/2BTm/9GOYD/PzN2/0pAf/9IQHr/e3Sq/5GLuf8tKFj/U0Vy/0Y3aP9wXpb/OyVp/0Uq 1127 | fP9cPJ//WTSk/3hQyf+AYef/fl7o/35c7P98XO7/eFvr/3de5v91YuH/dWPd/3Re7v9yWuj/e2Xl/3lo 1128 | zf9dVJf/YV2M/7Ot1/+pos//fYKY/624xv/h8vr/3/X4/8TZ2P+rurn/9fv8//j4+////v7///7+//7/ 1129 | /v/7//7/+//+//v//v/+//7//v/+//////////////////////////////////////////////////// 1130 | //////////////////////////////////////////////////////////////////////////////// 1131 | //////////////////////////////////////////////////////////////////////////////// 1132 | //////////////////////////////////////////////7///////////////////////////////// 1133 | //////////75//v6+f/x9/z/fIiX/8fa5f/R6fX/3Pj9/9j2+f/S5O//bnGK/7ap2f9xXqn/alq8/3Nk 1134 | 2/90X+f/dlrq/3Vb6f95X+3/d1vq/3hZ6P99Xen/e1nl/3xa5P99WeL/fGLb/3lf2P94X9X/fGTX/3tl 1135 | 1P95Y8//blnC/3diy/96Ycr/c1vD/2RLtf92XMr/fGDU/3pb2P+AXuL/hGDp/3lf6P93Xuj/d13m/3Zd 1136 | 5v93Xub/d1/m/3df5f93X+X/dl/m/3hl4P9wY8X/YFyb/8bK6P+kp7z/h4Oh/6yjzv9qcYX/4Ov1/+b4 1137 | /v+htbn/scTE//H7+//5+vv//vv+/////P////z//f/8//r//f/7//7//v/+/////v///v7///////// 1138 | //////////////////////////////////////////////////////////////////////////////// 1139 | //////////////////////////////////////////////////////////////////////////////// 1140 | //////////////////////////////////////////////////////////////////////////////// 1141 | /////////f////7////////////////////////////////+///9+/L/+/r3//f7/v/Y4uv/b4CQ/8zl 1142 | 7//e+vz/2fj6/8rd5/94fZL/qJ7G/6aW1f9NQZf/dmvX/3Zm4v91XOT/dF3o/3Vc6P94Xen/d1vn/3pa 1143 | 5v99Xeb/f17l/4Bf5P92VPD/fFr2/3dW8P92Vu7/eFju/3RW6f94Wuv/dljp/3ZY8P92W+7/eV/u/3Vd 1144 | 5v90XeT/e2Tq/3Ze5v93X+j/cF3f/3Rh4f91Y+H/dGHf/3dg4v93Xuf/eFvs/3hZ7/97ZuH/aVrF/2hj 1145 | q//c4vX/7Pf7//L7+/+OjZ//iX+l/7S7zv+6xc//jp+p/8vf4P/t/Pz/8vr6//n4+f/38vX////7//// 1146 | +//8//z/+v/8//v//v/+//7///7+///9/v////////////////////////////////////////////// 1147 | //////////////////////////////////////////////////////////////////////////////// 1148 | //////////////////////////////////////////////////////////////////////////////// 1149 | //////////////////////////////////////////////////////////////////////////////// 1150 | //////////////7//f////7///7///39///a3uL/hpKa/+T3/P/d9/3/0t3k/4aPm/+bobf/fn+l/5uT 1151 | zv9cS6j/g2jg/39f5v92Xe3/eV7x/3FU7P90Vu3/dlrs/3Rb4f92Ydr/embX/3Va6P91Wuj/dVvn/3Vb 1152 | 5/92XOf/dl3n/3Zd5v92Xeb/c2Lf/3Vi4P91YeL/dl/l/3de6f94XOr/eFvt/3pa7/90W+//dFvw/3Va 1153 | 7/92W+z/d17n/3dh3/98ad3/dWPR/2legP+0q8L/9vH+//v6/P/7/Pn/+vv4//7+/v/Hxcr/lZWV/9TU 1154 | 1P/7+/v/9/f3//////////////////////////////////////////////////////////////////// 1155 | //////////////////////////////////////////////////////////////////////////////// 1156 | //////////////////////////////////////////////////////////////////////////////// 1157 | //////////////////////////////////////////////////////////////////////////////// 1158 | /////////////////////////////////////////////////////////f/+/////v///v///v3///X3 1159 | /P/S2d//jJqi/93w9//k6vb/pKq5/46Upf++wdn/4uD+/7u06f9nWqL/alqs/3ll1/90X9f/emHl/3dZ 1160 | 6f94Wu7/eFru/3db6/92W+j/dV7i/3Ve4v91X+H/dV7i/3Zf4/92X+P/dl7j/3Ze4/9zXOz/dFzs/3Vb 1161 | 7f92W+7/dVjt/3dZ7/93WO//d1jv/3pe7/92W+n/emHo/3hi3f96Z9P/dWfC/1RKlv+Mhb7/5t3x//bw 1162 | /v/8+f///Pz7//v7+P/9/fv/+fn6//n4/P/6+vr/+vr6//z8/P/+/v7///////////////////////// 1163 | //////////////////////////////////////////////////////////////////////////////// 1164 | //////////////////////////////////////////////////////////////////////////////// 1165 | //////////////////////////////////////////////////////////////////////////////// 1166 | //////////////////////////////////////////////////////////////////////////////// 1167 | ///////////////////9//7//v/+///+/////P//+fj7//T1+//V2eD/hImT/7q6zP+RkqP/wcTN/+/0 1168 | +f/0+P7/9Pj7/+7w/P/Gxtj/iHy6/2VWo/97Z8f/f2fb/31g5v94Wuz/dVfv/3VX8f92X+X/dl/l/3Ze 1169 | 5v92Xef/dlzo/3Zb6v92Wuv/dlrr/3NY9P90WPP/dVnx/3Za7/94XO3/d1vq/3hd6f98YOz/f2Ti/31l 1170 | 2/99aNH/cWG4/11TlP+NibH/3N/y//H3/v/48/z/+PX7//r5+//8/fn//v/6//v8+f/9/P7//Pr+//v7 1171 | +//8/Pz//f39//39/f////////////////////////////////////////////////////////////// 1172 | //////////////////////////////////////////////////////////////////////////////// 1173 | //////////////////////////////////////////////////////////////////////////////// 1174 | //////////////////////////////////////////////////////////////////////////////// 1175 | //////////////////////////////////////////////////////////////3//v/+//7//v7+///9 1176 | ///8+v3//fn9//37///38/j/2tXl/+Lf6f/8/P7/+/z5//f68v/8/vX/+v70//r79f/49P//6OL7/62j 1177 | zP9yZar/Zlav/3Rhyf98adv/e2jd/3lg4v95YOP/eV/k/3le5v94W+j/eFrq/3hZ7P94We3/dl/l/3Zg 1178 | 4/93YuD/d2Tb/3tp2f9/bdf/e2nP/3FhxP9fTp//Y1Od/35yr/+7s9j/8O7///T2/f/3/fb/9/3x//z8 1179 | /f/9/f3/+/v4//z9+P/4+fT//f37//v6/P/+/P7///////39/f/8/Pz//Pz8//////////////////// 1180 | //////////////////////////////////////////////////////////////////////////////// 1181 | //////////////////////////////////////////////////////////////////////////////// 1182 | //////////////////////////////////////////////////////////////////////////////// 1183 | //////////////////////////////////////////////////////////////////////////////// 1184 | //////////////////////////////////////////7///79/////P////z////8/////f////7///// 1185 | /v////v//v/5//7/+v/+/vr//v78////+P/+/vz/+vr+//f0///V0vH/n53B/4B/rP9sa5v/aF2r/2lc 1186 | rP9kV6n/XlCm/2FRq/9hUK3/YE+u/2BOr/9cUqb/XVOk/2BYov9lXaH/aWOf/21onv9+eqr/qKTI/9DM 1187 | 6P/18v//9PP///r6///7/v3//P/6//3/9v/+//X//v/8//7/+//+//r//v/6////+/////7///7////+ 1188 | //////////////////////////////////////////////////////////////////////////////// 1189 | //////////////////////////////////////////////////////////////////////////////// 1190 | //////////////////////////////////////////////////////////////////////////////// 1191 | //////////////////////////////////////////////////////////////////////////////// 1192 | /////////////////////////////////////////////////////////////////////v////////3/ 1193 | ///8/////P7+//79/v///f7///z+/////P////z////+/////v/+/f7//vz///78///++//////1//// 1194 | 9v////j//v/6//r++v/3/vn/8fn2//L5+f/y9/r/8/f9//D0/f/t8P3/6Or6/+Xn+f/i4/f/4OH1/+Li 1195 | /f/i4v3/6er///T1///x8///8fP+//j8/v/3+v7/9/36//n++//5/vn/+//5//z/+f/+//r//v78//79 1196 | /v/+//z//v/8//7//P/+/vz////+/////////v////7///////////////////////////////////// 1197 | //////////////////////////////////////////////////////////////////////////////// 1198 | //////////////////////////////////////////////////////////////////////////////// 1199 | //////////////////////////////////////////////////////////////////////////////// 1200 | //////////////////////////////////////////////////////////////////////////////// 1201 | ///////////////////////////////9/////v///P////n////4//3/+v79//3+/f///v3//v/9//7/ 1202 | /v/+//7//v7///39/v/9/f7//f7+//3+/v/9/Pn//v35///++v////n//f/4//v69f/8+/b/+/32//v9 1203 | 9P/7/vX//P/2//r99P/8//b//P/2//z/9v/8//b/+Pv///n8///6/P//+vz9//n7+f/+/vz//v/6//r7 1204 | 9f/2/fr/+v/8//n++P/3/vT//P/5//3//P/+/f7//vz///79/v/+/f7//v3+//79/////v////7///// 1205 | //////7///////////////////////////////////////////////////////////////////////// 1206 | //////////////////////////////////////////////////////////////////////////////// 1207 | //////////////////////////////////////////////////////////////////////////////// 1208 | //////////////////////////////////////////////////////////////////////////////// 1209 | //////////////////////////////////////////////////////////////////////////3////+ 1210 | ///8////+P////X//f/3//3/+v/9//3//P/9/v///f7///3////9/////P78//z/+f/8//f//P/1//77 1211 | ////+/////z////8///9+f3///z////7////+v////n///74/v/9+P7//fn9///6////+/////z+///8 1212 | /v/8/fv//P37//39/P/8+/r//vz7//77+f/9/Pn///78//j7/v/3+/7/+P78//j++f/7//r//P/8//39 1213 | /v/+/P///vz///78///+/P///vz////9/////v/////+/////v////////////////////////////// 1214 | //////////////////////////////////////////////////////////////////////////////// 1215 | //////////////////////////////////////////////////////////////////////////////// 1216 | ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1217 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1218 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1219 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1220 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1221 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1222 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1223 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1224 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1225 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1226 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1227 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1228 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1229 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1230 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1231 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1232 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1233 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1234 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1235 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1236 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1237 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1238 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1239 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1240 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1241 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1242 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1243 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1244 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1245 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1246 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1247 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1248 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1249 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1250 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= 1251 | 1252 | 1253 | --------------------------------------------------------------------------------