changeset 0:aca8706f4eec default tip

Initial commit
author Brad Greco <brad@bgreco.net>
date Mon, 13 Oct 2014 21:28:19 -0500
parents
children
files .hgignore AboutForm.Designer.cs AboutForm.cs AboutForm.resx KeyBinding.cs LICENSE Program.cs Properties/AssemblyInfo.cs Properties/Resources.Designer.cs Properties/Resources.resx QRForm.Designer.cs QRForm.cs QRForm.resx QuickQR.csproj SetHotkey.Designer.cs SetHotkey.cs SetHotkey.resx Settings.cs app.config lib/zxing/net2.0/zxing.XML lib/zxing/net2.0/zxing.dll lib/zxing/net2.0/zxing.pdb resources/qr.ico resources/qr2.ico resources/url.png
diffstat 25 files changed, 14829 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,5 @@
+syntax: glob
+bin
+obj
+scratch
+*.user
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AboutForm.Designer.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,128 @@
+namespace QuickQR
+{
+    partial class AboutForm
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm));
+            this.titleLabel = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.linkLabel = new System.Windows.Forms.LinkLabel();
+            this.aboutQR = new System.Windows.Forms.PictureBox();
+            this.label2 = new System.Windows.Forms.Label();
+            ((System.ComponentModel.ISupportInitialize)(this.aboutQR)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // titleLabel
+            // 
+            this.titleLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.titleLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.titleLabel.Location = new System.Drawing.Point(12, 9);
+            this.titleLabel.Name = "titleLabel";
+            this.titleLabel.Size = new System.Drawing.Size(260, 16);
+            this.titleLabel.TabIndex = 0;
+            this.titleLabel.Text = "QuickQR";
+            this.titleLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+            // 
+            // label1
+            // 
+            this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.label1.Location = new System.Drawing.Point(12, 27);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(260, 16);
+            this.label1.TabIndex = 1;
+            this.label1.Text = "Copyright © 2014 Brad Greco";
+            this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+            // 
+            // linkLabel
+            // 
+            this.linkLabel.Location = new System.Drawing.Point(12, 45);
+            this.linkLabel.Name = "linkLabel";
+            this.linkLabel.Size = new System.Drawing.Size(260, 19);
+            this.linkLabel.TabIndex = 2;
+            this.linkLabel.TabStop = true;
+            this.linkLabel.Text = "http://bgreco.net/quickqr";
+            this.linkLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+            this.linkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_LinkClicked);
+            // 
+            // aboutQR
+            // 
+            this.aboutQR.Image = global::QuickQR.Properties.Resources.urlImage;
+            this.aboutQR.InitialImage = null;
+            this.aboutQR.Location = new System.Drawing.Point(74, 63);
+            this.aboutQR.Name = "aboutQR";
+            this.aboutQR.Size = new System.Drawing.Size(135, 135);
+            this.aboutQR.TabIndex = 3;
+            this.aboutQR.TabStop = false;
+            // 
+            // label2
+            // 
+            this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.label2.Location = new System.Drawing.Point(12, 201);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(260, 56);
+            this.label2.TabIndex = 4;
+            this.label2.Text = "This program is released under the MIT License.\r\nSource code is available at the " +
+    "page above.\r\n\r\nQR images are generated using the ZXing.Net library.";
+            this.label2.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+            // 
+            // AboutForm
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.BackColor = System.Drawing.Color.White;
+            this.ClientSize = new System.Drawing.Size(284, 266);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.aboutQR);
+            this.Controls.Add(this.linkLabel);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.titleLabel);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.MaximizeBox = false;
+            this.MinimizeBox = false;
+            this.Name = "AboutForm";
+            this.ShowInTaskbar = false;
+            this.Text = "About QuickQR";
+            this.Load += new System.EventHandler(this.AboutForm_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.aboutQR)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label titleLabel;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.LinkLabel linkLabel;
+        private System.Windows.Forms.PictureBox aboutQR;
+        private System.Windows.Forms.Label label2;
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AboutForm.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using System.Reflection;
+using System.Diagnostics;
+
+/*
+ * Copyright (c) 2014 Brad Greco <brad@bgreco.net>
+ */
+namespace QuickQR
+{
+    public partial class AboutForm : Form
+    {
+        public AboutForm()
+        {
+            InitializeComponent();
+        }
+
+        private void AboutForm_Load(object sender, EventArgs e)
+        {
+            Assembly assembly = Assembly.GetExecutingAssembly();
+            FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
+            titleLabel.Text = "QuickQR v" + fvi.FileMajorPart + "." + fvi.FileMinorPart;
+        }
+
+        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
+        {
+            if (keyData == Keys.Escape)
+            {
+                this.Close();
+                return true;
+            }
+            return base.ProcessCmdKey(ref msg, keyData);
+        }
+
+        private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+        {
+            Process.Start("http://bgreco.net/quickqr");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AboutForm.resx	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,700 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
+        IACoJQAA7h4AAEBAAAABACAAKEIAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAIAAAAAAAAAAAAAAAA
+        AAAAAAAA////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////////////////////
+        /////////////wAAAP8AAAD///////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////////////////////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD//////////////////////////////////////////////////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAA////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/AAAA////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////////////////////wAAAP//////////////
+        /////////////wAAAP//////AAAA//////8AAAD///////////8AAAD/AAAA//////8AAAD/AAAA////
+        ////////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP///////////wAAAP///////////////////////////wAA
+        AP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        /////////////////////////////////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAA
+        AP///////////wAAAP8AAAD/AAAA//////8AAAD//////wAAAP8AAAD//////wAAAP//////AAAA////
+        /////////////wAAAP///////////////////////////wAAAP///////////wAAAP8AAAD/AAAA////
+        //8AAAD///////////8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA////////////AAAA//////8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA//////8AAAD//////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA/wAAAP//////AAAA////////////AAAA////////////AAAA////
+        //8AAAD/AAAA////////////AAAA/////////////////////////////////wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP///////////wAAAP//////AAAA//////8AAAD/////////
+        /////////////wAAAP//////AAAA//////8AAAD//////wAAAP8AAAD/AAAA/wAAAP//////AAAA////
+        /////////////wAAAP//////AAAA//////8AAAD/AAAA//////////////////////8AAAD/AAAA////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA/wAAAP//////AAAA////////////////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP//////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA//////8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP///////////////////////////wAAAP////////////////8AAAD/AAAA////
+        ////////AAAA////////////////////////////AAAA/////////////////wAAAP//////AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA/wAAAP//////AAAA/wAAAP//////AAAA//////8AAAD/AAAA/wAA
+        AP//////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA////////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA/////////////////wAA
+        AP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP//////AAAA/////////////////wAAAP///////////////////////////wAA
+        AP///////////wAAAP//////////////////////AAAA////////////////////////////AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAA
+        AABAAAAAAQAgAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA////
+        //8AAAD//////wAAAP8AAAD/AAAA/wAAAP//////AAAA////////////////////////////////////
+        //8AAAD///////////////////////////8AAAD//////wAAAP8AAAD//////wAAAP//////////////
+        //8AAAD///////////8AAAD/////////////////AAAA//////8AAAD/AAAA/wAAAP8AAAD/////////
+        /////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA////
+        //8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD//////wAAAP//////AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA//////8AAAD/AAAA//////8AAAD///////////8AAAD//////wAA
+        AP8AAAD///////////////////////////8AAAD//////wAAAP8AAAD/AAAA//////8AAAD//////wAA
+        AP////////////////8AAAD/AAAA////////////AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////////////////////wAAAP///////////////////////////wAA
+        AP//////AAAA////////////AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA//////8AAAD///////////8AAAD/AAAA//////8AAAD//////wAA
+        AP8AAAD//////wAAAP//////AAAA////////////////////////////////////////////////////
+        /////////////////////////////wAAAP//////AAAA//////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD//////wAAAP////////////////8AAAD/AAAA////////////AAAA////////////////////
+        //8AAAD/AAAA//////8AAAD//////wAAAP///////////wAAAP//////AAAA//////8AAAD/AAAA////
+        ////////AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////////////
+        /////////////wAAAP8AAAD//////////////////////wAAAP8AAAD//////wAAAP///////////wAA
+        AP8AAAD//////wAAAP///////////////////////////wAAAP//////AAAA////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////AAAA/////////////////wAAAP///////////wAAAP//////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////////////////////8AAAD//////wAAAP8AAAD//////////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD//////wAAAP//////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/////////////////AAAA//////8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD///////////////////////////8AAAD//////wAAAP8AAAD/////////
+        //////////////////8AAAD//////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD//////////////////////wAAAP8AAAD//////wAA
+        AP//////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD///////////8AAAD//////wAA
+        AP//////AAAA/wAAAP///////////////////////////wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA//////8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA/wAAAP//////AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA//////8AAAD/////////////////AAAA//////8AAAD//////wAA
+        AP///////////wAAAP//////AAAA/wAAAP8AAAD///////////////////////////8AAAD/AAAA////
+        /////////////wAAAP///////////wAAAP////////////////8AAAD//////wAAAP8AAAD//////wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA//////8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP//////////////
+        //8AAAD//////////////////////////////////////wAAAP8AAAD/////////////////AAAA////
+        ////////AAAA////////////////////////////AAAA//////8AAAD//////wAAAP8AAAD//////wAA
+        AP//////AAAA/wAAAP//////AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP////////////////8AAAD/////////////////////////////////////////
+        /////////////////////////////wAAAP//////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP//////AAAA////
+        //8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP///////////////////////////wAAAP//////AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA//////////////////////8AAAD///////////////////////////8AAAD/////////
+        ////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA//////8AAAD///////////8AAAD//////wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD//////wAA
+        AP////////////////8AAAD//////wAAAP8AAAD/AAAA//////8AAAD//////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA//////8AAAD/AAAA/wAA
+        AP//////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////////////
+        //8AAAD//////////////////////wAAAP8AAAD///////////////////////////8AAAD//////wAA
+        AP8AAAD/AAAA//////8AAAD/////////////////AAAA////////////////////////////AAAA////
+        /////////////wAAAP//////AAAA/////////////////wAAAP////////////////8AAAD//////wAA
+        AP///////////////////////////wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA//////////////////////8AAAD/AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////8AAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA
+        AAAwAAAAYAAAAAEAIAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAA
+        AP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////////////////////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP//////////////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP//////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP///////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP//////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP//////////////////////////////////////////////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        ////////////////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////////////////////////////////////AAAA/wAA
+        AP//////////////////////////////////////////////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////////////////////////////////////////////
+        //8AAAD/AAAA//////////////////////8AAAD/AAAA////////////////////////////////////
+        ////////AAAA/wAAAP//////////////////////////////////////////////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAAAAAAAACA
+        AAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        /////////////////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        //////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP//////////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD//////////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD//////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP//////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA////////////////////////////////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+</value>
+  </data>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/KeyBinding.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,115 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+
+/*
+ * Copyright (c) 2014 Brad Greco <brad@bgreco.net>
+ */
+namespace QuickQR
+{
+    public class KeyBinding
+    {
+        const int MOD_ALT = 0x0001;
+        const int MOD_CONTROL = 0x0002;
+        const int MOD_SHIFT = 0x0004;
+        const int MOD_WIN = 0x0008;
+
+        public int key = 0;
+        public String keyChar;
+        public bool Ctrl = false;
+        public bool Alt = false;
+        public bool Shift = false;
+        public bool Win = false;
+
+        public KeyBinding()
+        {
+
+        }
+
+        public KeyBinding(String line)
+        {
+            strToInts(line);
+        }
+
+        public String toString()
+        {
+            if (key == 0)
+                return "(none)";
+            return comboString();
+        }
+
+        public String comboString()
+        {
+            if (key == 0)
+                return "";
+            String myCombo = "";
+            if (Ctrl)
+                myCombo = "+Ctrl";
+            if (Alt)
+                myCombo += "+Alt";
+            if (Shift)
+                myCombo += "+Shift";
+            if (Win)
+                myCombo += "+Win";
+            if (myCombo.Length == 0)
+                return "" + keyChar;
+            return myCombo.Substring(1) + "+" + keyChar;
+        }
+
+        private void strToInts(String s)
+        {
+            String[] words = s.Split('+');
+            foreach (String word in words)
+            {
+                String w = word.ToLower();
+                if (w == "ctrl")
+                    Ctrl = true;
+                else if (w == "alt")
+                    Alt = true;
+                else if (w == "shift")
+                    Shift = true;
+                else if (w == "win")
+                    Win = true;
+                else
+                {
+                    keyChar = word;
+                    try
+                    {
+                        key = (int)Enum.Parse(typeof(Keys), word, true);
+                        System.Diagnostics.Debug.WriteLine(keyChar + " " + key);
+                    }
+                    catch (ArgumentException)
+                    {
+                        key = 0;
+                        System.Diagnostics.Debug.WriteLine("Could not convert string to Key: " + word);
+                    }
+                }
+            }
+        }
+
+        public int sum()
+        {
+            int sum = 0;
+            if (Ctrl)
+                sum += MOD_CONTROL;
+            if (Alt)
+                sum += MOD_ALT;
+            if (Win)
+                sum += MOD_WIN;
+            if (Shift)
+                sum += MOD_SHIFT;
+            return sum;
+        }
+
+        public bool isValid()
+        {
+            return key > 0;
+        }
+
+        public int getID()
+        {
+            return 256 * sum() + key;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LICENSE	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Brad Greco <brad@bgreco.net>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Program.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+
+namespace QuickQR
+{
+    static class Program
+    {
+        /// <summary>
+        /// The main entry point for the application.
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new QRForm());
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Properties/AssemblyInfo.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("QuickQR")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Brad Greco")]
+[assembly: AssemblyProduct("QuickQR")]
+[assembly: AssemblyCopyright("Copyright © Brad Greco 2014")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("0488b4e1-aed4-410f-90e0-ddf77cf4ac20")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Properties/Resources.Designer.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,83 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.18444
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace QuickQR.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("QuickQR.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
+        /// </summary>
+        internal static System.Drawing.Icon qr2 {
+            get {
+                object obj = ResourceManager.GetObject("qr2", resourceCulture);
+                return ((System.Drawing.Icon)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap urlImage {
+            get {
+                object obj = ResourceManager.GetObject("urlImage", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Properties/Resources.resx	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="qr2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\resources\qr2.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="urlImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\resources\url.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QRForm.Designer.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,352 @@
+namespace QuickQR
+{
+    partial class QRForm
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QRForm));
+            this.QRImage = new System.Windows.Forms.PictureBox();
+            this.imageMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
+            this.imageCopy = new System.Windows.Forms.ToolStripMenuItem();
+            this.imageSaveAs = new System.Windows.Forms.ToolStripMenuItem();
+            this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
+            this.notifyMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
+            this.menuAutorun = new System.Windows.Forms.ToolStripMenuItem();
+            this.menuHotkey = new System.Windows.Forms.ToolStripMenuItem();
+            this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+            this.menuGenerateClipboard = new System.Windows.Forms.ToolStripMenuItem();
+            this.menuNew = new System.Windows.Forms.ToolStripMenuItem();
+            this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.inputTextBox = new System.Windows.Forms.TextBox();
+            this.generateButton = new System.Windows.Forms.Button();
+            this.windowMenu = new System.Windows.Forms.MenuStrip();
+            this.fileMenu = new System.Windows.Forms.ToolStripMenuItem();
+            this.fileSaveAs = new System.Windows.Forms.ToolStripMenuItem();
+            this.fileSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+            this.fileHide = new System.Windows.Forms.ToolStripMenuItem();
+            this.fileExit = new System.Windows.Forms.ToolStripMenuItem();
+            this.optionsMenu = new System.Windows.Forms.ToolStripMenuItem();
+            this.optionWinStart = new System.Windows.Forms.ToolStripMenuItem();
+            this.optionBackground = new System.Windows.Forms.ToolStripMenuItem();
+            this.optionHotkey = new System.Windows.Forms.ToolStripMenuItem();
+            this.helpMenu = new System.Windows.Forms.ToolStripMenuItem();
+            this.helpAbout = new System.Windows.Forms.ToolStripMenuItem();
+            this.QRLabel = new System.Windows.Forms.Label();
+            ((System.ComponentModel.ISupportInitialize)(this.QRImage)).BeginInit();
+            this.imageMenu.SuspendLayout();
+            this.notifyMenu.SuspendLayout();
+            this.windowMenu.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // QRImage
+            // 
+            this.QRImage.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.QRImage.BackColor = System.Drawing.Color.White;
+            this.QRImage.ContextMenuStrip = this.imageMenu;
+            this.QRImage.Location = new System.Drawing.Point(0, 68);
+            this.QRImage.Name = "QRImage";
+            this.QRImage.Size = new System.Drawing.Size(300, 300);
+            this.QRImage.TabIndex = 0;
+            this.QRImage.TabStop = false;
+            // 
+            // imageMenu
+            // 
+            this.imageMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.imageCopy,
+            this.imageSaveAs});
+            this.imageMenu.Name = "imageMenu";
+            this.imageMenu.Size = new System.Drawing.Size(124, 48);
+            // 
+            // imageCopy
+            // 
+            this.imageCopy.Name = "imageCopy";
+            this.imageCopy.Size = new System.Drawing.Size(123, 22);
+            this.imageCopy.Text = "&Copy";
+            this.imageCopy.Click += new System.EventHandler(this.imageCopy_Click);
+            // 
+            // imageSaveAs
+            // 
+            this.imageSaveAs.Name = "imageSaveAs";
+            this.imageSaveAs.Size = new System.Drawing.Size(123, 22);
+            this.imageSaveAs.Text = "&Save As...";
+            this.imageSaveAs.Click += new System.EventHandler(this.imageSaveAs_Click);
+            // 
+            // notifyIcon
+            // 
+            this.notifyIcon.ContextMenuStrip = this.notifyMenu;
+            this.notifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon.Icon")));
+            this.notifyIcon.Text = "QuickQR";
+            this.notifyIcon.Visible = true;
+            this.notifyIcon.DoubleClick += new System.EventHandler(this.notifyIcon_DoubleClick);
+            // 
+            // notifyMenu
+            // 
+            this.notifyMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menuAutorun,
+            this.menuHotkey,
+            this.toolStripSeparator1,
+            this.menuGenerateClipboard,
+            this.menuNew,
+            this.exitToolStripMenuItem});
+            this.notifyMenu.Name = "notifyMenu";
+            this.notifyMenu.ShowCheckMargin = true;
+            this.notifyMenu.ShowImageMargin = false;
+            this.notifyMenu.Size = new System.Drawing.Size(178, 120);
+            // 
+            // menuAutorun
+            // 
+            this.menuAutorun.Name = "menuAutorun";
+            this.menuAutorun.Size = new System.Drawing.Size(177, 22);
+            this.menuAutorun.Text = "&Start with Windows";
+            this.menuAutorun.Click += new System.EventHandler(this.menuAutorun_Click);
+            // 
+            // menuHotkey
+            // 
+            this.menuHotkey.Name = "menuHotkey";
+            this.menuHotkey.Size = new System.Drawing.Size(177, 22);
+            this.menuHotkey.Text = "Set Global &Hotkey...";
+            this.menuHotkey.Click += new System.EventHandler(this.menuHotkey_Click);
+            // 
+            // toolStripSeparator1
+            // 
+            this.toolStripSeparator1.Name = "toolStripSeparator1";
+            this.toolStripSeparator1.Size = new System.Drawing.Size(174, 6);
+            // 
+            // menuGenerateClipboard
+            // 
+            this.menuGenerateClipboard.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold);
+            this.menuGenerateClipboard.Name = "menuGenerateClipboard";
+            this.menuGenerateClipboard.Size = new System.Drawing.Size(177, 22);
+            this.menuGenerateClipboard.Text = "QR from &Clipboard";
+            this.menuGenerateClipboard.Click += new System.EventHandler(this.menuGenerateClipboard_Click);
+            // 
+            // menuNew
+            // 
+            this.menuNew.Name = "menuNew";
+            this.menuNew.Size = new System.Drawing.Size(177, 22);
+            this.menuNew.Text = "&New QR code...";
+            this.menuNew.Click += new System.EventHandler(this.menuNew_Click);
+            // 
+            // exitToolStripMenuItem
+            // 
+            this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
+            this.exitToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
+            this.exitToolStripMenuItem.Text = "E&xit";
+            this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
+            // 
+            // inputTextBox
+            // 
+            this.inputTextBox.Anchor = System.Windows.Forms.AnchorStyles.Top;
+            this.inputTextBox.Location = new System.Drawing.Point(12, 36);
+            this.inputTextBox.Name = "inputTextBox";
+            this.inputTextBox.Size = new System.Drawing.Size(195, 20);
+            this.inputTextBox.TabIndex = 1;
+            this.inputTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.inputTextBox_KeyDown);
+            // 
+            // generateButton
+            // 
+            this.generateButton.Anchor = System.Windows.Forms.AnchorStyles.Top;
+            this.generateButton.Location = new System.Drawing.Point(213, 34);
+            this.generateButton.Name = "generateButton";
+            this.generateButton.Size = new System.Drawing.Size(75, 23);
+            this.generateButton.TabIndex = 2;
+            this.generateButton.Text = "&Generate";
+            this.generateButton.UseVisualStyleBackColor = true;
+            this.generateButton.Click += new System.EventHandler(this.generateButton_Click);
+            // 
+            // windowMenu
+            // 
+            this.windowMenu.BackColor = System.Drawing.SystemColors.Control;
+            this.windowMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.fileMenu,
+            this.optionsMenu,
+            this.helpMenu});
+            this.windowMenu.Location = new System.Drawing.Point(0, 0);
+            this.windowMenu.Name = "windowMenu";
+            this.windowMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
+            this.windowMenu.Size = new System.Drawing.Size(300, 24);
+            this.windowMenu.TabIndex = 3;
+            this.windowMenu.Text = "menuStrip1";
+            // 
+            // fileMenu
+            // 
+            this.fileMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.fileSaveAs,
+            this.fileSeparator1,
+            this.fileHide,
+            this.fileExit});
+            this.fileMenu.Name = "fileMenu";
+            this.fileMenu.Size = new System.Drawing.Size(37, 20);
+            this.fileMenu.Text = "&File";
+            // 
+            // fileSaveAs
+            // 
+            this.fileSaveAs.Name = "fileSaveAs";
+            this.fileSaveAs.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
+            this.fileSaveAs.Size = new System.Drawing.Size(163, 22);
+            this.fileSaveAs.Text = "&Save As...";
+            this.fileSaveAs.Click += new System.EventHandler(this.fileSaveAs_Click);
+            // 
+            // fileSeparator1
+            // 
+            this.fileSeparator1.Name = "fileSeparator1";
+            this.fileSeparator1.Size = new System.Drawing.Size(160, 6);
+            // 
+            // fileHide
+            // 
+            this.fileHide.Name = "fileHide";
+            this.fileHide.Size = new System.Drawing.Size(163, 22);
+            this.fileHide.Text = "&Hide";
+            this.fileHide.Click += new System.EventHandler(this.fileHide_Click);
+            // 
+            // fileExit
+            // 
+            this.fileExit.Name = "fileExit";
+            this.fileExit.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Q)));
+            this.fileExit.Size = new System.Drawing.Size(163, 22);
+            this.fileExit.Text = "E&xit";
+            this.fileExit.Click += new System.EventHandler(this.fileExit_Click);
+            // 
+            // optionsMenu
+            // 
+            this.optionsMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.optionWinStart,
+            this.optionBackground,
+            this.optionHotkey});
+            this.optionsMenu.Name = "optionsMenu";
+            this.optionsMenu.Size = new System.Drawing.Size(61, 20);
+            this.optionsMenu.Text = "&Options";
+            // 
+            // optionWinStart
+            // 
+            this.optionWinStart.Name = "optionWinStart";
+            this.optionWinStart.Size = new System.Drawing.Size(228, 22);
+            this.optionWinStart.Text = "&Start with Windows";
+            this.optionWinStart.Click += new System.EventHandler(this.optionWinStart_Click);
+            // 
+            // optionBackground
+            // 
+            this.optionBackground.Name = "optionBackground";
+            this.optionBackground.Size = new System.Drawing.Size(228, 22);
+            this.optionBackground.Text = "&Keep Running in Background";
+            this.optionBackground.Click += new System.EventHandler(this.optionBackground_Click);
+            // 
+            // optionHotkey
+            // 
+            this.optionHotkey.Name = "optionHotkey";
+            this.optionHotkey.Size = new System.Drawing.Size(228, 22);
+            this.optionHotkey.Text = "Set Global &Hotkey...";
+            this.optionHotkey.Click += new System.EventHandler(this.optionHotkey_Click);
+            // 
+            // helpMenu
+            // 
+            this.helpMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.helpAbout});
+            this.helpMenu.Name = "helpMenu";
+            this.helpMenu.Size = new System.Drawing.Size(44, 20);
+            this.helpMenu.Text = "&Help";
+            // 
+            // helpAbout
+            // 
+            this.helpAbout.Name = "helpAbout";
+            this.helpAbout.Size = new System.Drawing.Size(152, 22);
+            this.helpAbout.Text = "&About";
+            this.helpAbout.Click += new System.EventHandler(this.helpAbout_Click);
+            // 
+            // QRLabel
+            // 
+            this.QRLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.QRLabel.Location = new System.Drawing.Point(0, 374);
+            this.QRLabel.Name = "QRLabel";
+            this.QRLabel.Size = new System.Drawing.Size(300, 13);
+            this.QRLabel.TabIndex = 4;
+            this.QRLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+            // 
+            // QRForm
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.BackColor = System.Drawing.SystemColors.GradientActiveCaption;
+            this.ClientSize = new System.Drawing.Size(300, 396);
+            this.Controls.Add(this.QRLabel);
+            this.Controls.Add(this.windowMenu);
+            this.Controls.Add(this.generateButton);
+            this.Controls.Add(this.inputTextBox);
+            this.Controls.Add(this.QRImage);
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.MainMenuStrip = this.windowMenu;
+            this.Name = "QRForm";
+            this.Text = "QuickQR";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.QRForm_FormClosing);
+            this.Load += new System.EventHandler(this.QRForm_Load);
+            this.Resize += new System.EventHandler(this.QRForm_Resize);
+            ((System.ComponentModel.ISupportInitialize)(this.QRImage)).EndInit();
+            this.imageMenu.ResumeLayout(false);
+            this.notifyMenu.ResumeLayout(false);
+            this.windowMenu.ResumeLayout(false);
+            this.windowMenu.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.PictureBox QRImage;
+        private System.Windows.Forms.NotifyIcon notifyIcon;
+        private System.Windows.Forms.ContextMenuStrip notifyMenu;
+        private System.Windows.Forms.ToolStripMenuItem menuGenerateClipboard;
+        private System.Windows.Forms.ToolStripMenuItem menuNew;
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+        private System.Windows.Forms.ToolStripMenuItem menuAutorun;
+        private System.Windows.Forms.ToolStripMenuItem menuHotkey;
+        private System.Windows.Forms.TextBox inputTextBox;
+        private System.Windows.Forms.Button generateButton;
+        private System.Windows.Forms.MenuStrip windowMenu;
+        private System.Windows.Forms.ToolStripMenuItem optionsMenu;
+        private System.Windows.Forms.ToolStripMenuItem optionWinStart;
+        private System.Windows.Forms.ToolStripMenuItem helpMenu;
+        private System.Windows.Forms.ToolStripMenuItem optionHotkey;
+        private System.Windows.Forms.ToolStripMenuItem helpAbout;
+        private System.Windows.Forms.ToolStripMenuItem fileMenu;
+        private System.Windows.Forms.ToolStripMenuItem fileHide;
+        private System.Windows.Forms.ToolStripMenuItem fileExit;
+        private System.Windows.Forms.Label QRLabel;
+        private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem optionBackground;
+        private System.Windows.Forms.ToolStripMenuItem fileSaveAs;
+        private System.Windows.Forms.ToolStripSeparator fileSeparator1;
+        private System.Windows.Forms.ContextMenuStrip imageMenu;
+        private System.Windows.Forms.ToolStripMenuItem imageCopy;
+        private System.Windows.Forms.ToolStripMenuItem imageSaveAs;
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QRForm.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,334 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Windows.Forms;
+using ZXing;
+using Microsoft.Win32;
+
+/*
+ * Copyright (c) 2014 Brad Greco <brad@bgreco.net>
+ */
+namespace QuickQR
+{
+    public partial class QRForm : Form
+    {
+        const int WM_HOTKEY = 786;
+
+        private BarcodeWriter writer;
+        private KeyBinding keyBinding;
+        private String currentText;
+        private Settings settings;
+
+        [DllImport("user32.dll")]
+        private static extern int RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk);
+        [DllImport("user32.dll")]
+        private static extern int UnregisterHotKey(IntPtr hwnd, int id);
+
+        public QRForm()
+        {
+            InitializeComponent();
+        }
+
+        private void QRForm_Load(object sender, EventArgs e)
+        {
+            settings = new Settings();
+            loadSettings();
+            registerHotkey(keyBinding);
+            writer = new BarcodeWriter { Format = BarcodeFormat.QR_CODE };
+            writer.Options.Margin = 2;
+            fileHide.ShortcutKeyDisplayString = "Esc";
+            reset();
+            notifyIcon.Icon = new System.Drawing.Icon(this.Icon, 16, 16);
+        }
+
+        private void notifyIcon_DoubleClick(object sender, EventArgs e)
+        {
+            this.Show();
+            this.Activate();
+            generateFromClipboard();
+        }
+
+        private void generateFromClipboard()
+        {
+            if (Clipboard.ContainsText())
+            {
+                inputTextBox.Text = Clipboard.GetText();
+                generate(Clipboard.GetText());
+            }
+            else
+            {
+                reset();
+            }
+        }
+
+        private void generateFromTextBox()
+        {
+            if (inputTextBox.Text.Length > 0)
+                generate(inputTextBox.Text);
+            else
+                reset();
+        }
+
+        private void generate(String text)
+        {
+            System.Diagnostics.Debug.WriteLine("Generating: " + text);
+            currentText = text;
+            draw();
+        }
+
+        private void draw()
+        {
+            writer.Options.Width = QRImage.Width;
+            writer.Options.Height = QRImage.Height;
+            try
+            {
+                QRImage.Image = writer.Write(currentText);
+            }
+            catch (Exception e)
+            {
+                System.Diagnostics.Debug.WriteLine(e.Message);
+                showError(e.Message);
+                return;
+            }
+            finally
+            {
+                inputTextBox.SelectAll();
+                inputTextBox.Focus();
+            }
+            if (QRLabel.ForeColor != Color.Black)
+                QRLabel.ForeColor = Color.Black;
+            QRLabel.Text = currentText;
+            fileSaveAs.Enabled = true;
+            QRImage.ContextMenuStrip = imageMenu;
+        }
+
+        private void registerHotkey(KeyBinding hotkey)
+        {
+            settings.setHotkey(hotkey);
+            unregisterHotkey();
+            if (hotkey.key > 0)
+                RegisterHotKey(this.Handle, hotkey.getID(), hotkey.sum(), hotkey.key);
+            keyBinding = hotkey;
+        }
+
+        private void unregisterHotkey()
+        {
+            if (keyBinding.key > 0)
+                UnregisterHotKey(this.Handle, keyBinding.getID());
+        }
+
+        private void showHotkeyForm()
+        {
+            unregisterHotkey();
+            SetHotkey form = new SetHotkey(keyBinding);
+            if (form.ShowDialog() == DialogResult.OK)
+                registerHotkey(form.keyBinding);
+            form.Dispose();
+        }
+
+        private void loadSettings()
+        {
+            optionWinStart.Checked = menuAutorun.Checked = settings.autostart;
+            optionBackground.Checked = settings.background;
+            keyBinding = new KeyBinding(settings.hotkey);
+            registerAutostart();
+        }
+
+        private void registerAutostart()
+        {
+            RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
+            if (settings.autostart)
+                key.SetValue("QuickQR", Application.ExecutablePath.ToString());
+            else
+                key.DeleteValue("QuickQR", false);
+        }
+
+        private void showError(String message)
+        {
+            QRLabel.ForeColor = Color.Red;
+            QRLabel.Text = message;
+        }
+
+        private void reset()
+        {
+            inputTextBox.Text = string.Empty;
+            QRImage.Image = null;
+            QRLabel.Text = String.Empty;
+            inputTextBox.Focus();
+            currentText = string.Empty;
+            fileSaveAs.Enabled = false;
+            QRImage.ContextMenuStrip = null;
+        }
+
+        private void toggleBackground()
+        {
+            settings.setBackground(!settings.background);
+            optionBackground.Checked = settings.background;
+        }
+
+        private void toggleAutorun()
+        {
+            settings.setAutostart(!settings.autostart);
+            optionWinStart.Checked = menuAutorun.Checked = settings.autostart;
+            registerAutostart();
+        }
+
+        private void saveImage()
+        {
+            SaveFileDialog dialog = new SaveFileDialog();
+            dialog.DefaultExt = "png";
+            dialog.Filter = "PNG images (*.png)|*.png|All files (*.*)|*.*";
+            String fileName = currentText;
+            foreach (char c in Path.GetInvalidFileNameChars())
+            {
+                fileName = fileName.Replace(c.ToString(), "");
+            }
+            dialog.FileName = fileName;
+            if (dialog.ShowDialog() == DialogResult.OK)
+            {
+                QRImage.Image.Save(dialog.FileName, ImageFormat.Png);
+            }
+            dialog.Dispose();
+        }
+
+        [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
+        protected override void WndProc(ref Message m)
+        {
+            // Listen for operating system messages.
+            switch (m.Msg)
+            {
+                case WM_HOTKEY:
+                    System.Diagnostics.Debug.WriteLine(m.WParam.ToString());
+                    if (m.WParam.ToInt32() == keyBinding.getID())
+                    {
+                        System.Diagnostics.Debug.WriteLine("Our hotkey received");
+                        this.Show();
+                        this.Activate();
+                        generateFromClipboard();
+                    }
+                    break;
+            }
+            base.WndProc(ref m);
+        }
+
+        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
+        {
+            if (keyData == Keys.Escape)
+            {
+                if (settings.background)
+                    this.Hide();
+                else
+                    Application.Exit();
+                return true;
+            }
+            return base.ProcessCmdKey(ref msg, keyData);
+        }
+
+        private void QRForm_Resize(object sender, EventArgs e)
+        {
+            if (currentText != string.Empty)
+                draw();
+        }
+
+        private void inputTextBox_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+                generateFromTextBox();
+        }
+
+        private void generateButton_Click(object sender, EventArgs e)
+        {
+            generateFromTextBox();
+        }
+
+        private void fileHide_Click(object sender, EventArgs e)
+        {
+            this.Hide();
+        }
+
+        private void fileExit_Click(object sender, EventArgs e)
+        {
+            Application.Exit();
+        }
+
+        private void menuGenerateClipboard_Click(object sender, EventArgs e)
+        {
+            this.Show();
+            generateFromClipboard();
+        }
+
+        private void menuNew_Click(object sender, EventArgs e)
+        {
+            this.Show();
+            reset();
+        }
+
+        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            Application.Exit();
+        }
+
+        private void QRForm_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            System.Diagnostics.Debug.WriteLine("Reason: " + e.CloseReason);
+            if (settings.background && (e.CloseReason == CloseReason.None || e.CloseReason == CloseReason.UserClosing))
+            {
+                this.Hide();
+                e.Cancel = true;
+            }
+        }
+
+        private void optionHotkey_Click(object sender, EventArgs e)
+        {
+            showHotkeyForm();
+        }
+
+        private void menuAutorun_Click(object sender, EventArgs e)
+        {
+            toggleAutorun();
+        }
+
+        private void menuHotkey_Click(object sender, EventArgs e)
+        {
+            showHotkeyForm();
+        }
+
+        private void optionWinStart_Click(object sender, EventArgs e)
+        {
+            toggleAutorun();
+        }
+
+        private void optionBackground_Click(object sender, EventArgs e)
+        {
+            toggleBackground();
+        }
+
+        private void imageCopy_Click(object sender, EventArgs e)
+        {
+            Clipboard.SetImage(QRImage.Image);
+        }
+
+        private void fileSaveAs_Click(object sender, EventArgs e)
+        {
+            saveImage();
+        }
+
+        private void imageSaveAs_Click(object sender, EventArgs e)
+        {
+            saveImage();
+        }
+
+        private void helpAbout_Click(object sender, EventArgs e)
+        {
+            AboutForm form = new AboutForm();
+            form.ShowDialog();
+            form.Dispose();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QRForm.resx	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,1291 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="imageMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>362, 17</value>
+  </metadata>
+  <metadata name="notifyIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="notifyMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>123, 17</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="notifyIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
+        IACoJQAA7h4AAEBAAAABACAAKEIAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAIAAAAAAAAAAAAAAAA
+        AAAAAAAA////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////////////////////
+        /////////////wAAAP8AAAD///////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////////////////////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD//////////////////////////////////////////////////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAA////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/AAAA////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////////////////////wAAAP//////////////
+        /////////////wAAAP//////AAAA//////8AAAD///////////8AAAD/AAAA//////8AAAD/AAAA////
+        ////////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP///////////wAAAP///////////////////////////wAA
+        AP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        /////////////////////////////////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAA
+        AP///////////wAAAP8AAAD/AAAA//////8AAAD//////wAAAP8AAAD//////wAAAP//////AAAA////
+        /////////////wAAAP///////////////////////////wAAAP///////////wAAAP8AAAD/AAAA////
+        //8AAAD///////////8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA////////////AAAA//////8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA//////8AAAD//////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA/wAAAP//////AAAA////////////AAAA////////////AAAA////
+        //8AAAD/AAAA////////////AAAA/////////////////////////////////wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP///////////wAAAP//////AAAA//////8AAAD/////////
+        /////////////wAAAP//////AAAA//////8AAAD//////wAAAP8AAAD/AAAA/wAAAP//////AAAA////
+        /////////////wAAAP//////AAAA//////8AAAD/AAAA//////////////////////8AAAD/AAAA////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA/wAAAP//////AAAA////////////////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP//////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA//////8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP///////////////////////////wAAAP////////////////8AAAD/AAAA////
+        ////////AAAA////////////////////////////AAAA/////////////////wAAAP//////AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA/wAAAP//////AAAA/wAAAP//////AAAA//////8AAAD/AAAA/wAA
+        AP//////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA////////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA/////////////////wAA
+        AP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP//////AAAA/////////////////wAAAP///////////////////////////wAA
+        AP///////////wAAAP//////////////////////AAAA////////////////////////////AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAA
+        AABAAAAAAQAgAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA////
+        //8AAAD//////wAAAP8AAAD/AAAA/wAAAP//////AAAA////////////////////////////////////
+        //8AAAD///////////////////////////8AAAD//////wAAAP8AAAD//////wAAAP//////////////
+        //8AAAD///////////8AAAD/////////////////AAAA//////8AAAD/AAAA/wAAAP8AAAD/////////
+        /////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA////
+        //8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD//////wAAAP//////AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA//////8AAAD/AAAA//////8AAAD///////////8AAAD//////wAA
+        AP8AAAD///////////////////////////8AAAD//////wAAAP8AAAD/AAAA//////8AAAD//////wAA
+        AP////////////////8AAAD/AAAA////////////AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////////////////////wAAAP///////////////////////////wAA
+        AP//////AAAA////////////AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA//////8AAAD///////////8AAAD/AAAA//////8AAAD//////wAA
+        AP8AAAD//////wAAAP//////AAAA////////////////////////////////////////////////////
+        /////////////////////////////wAAAP//////AAAA//////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD//////wAAAP////////////////8AAAD/AAAA////////////AAAA////////////////////
+        //8AAAD/AAAA//////8AAAD//////wAAAP///////////wAAAP//////AAAA//////8AAAD/AAAA////
+        ////////AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////////////
+        /////////////wAAAP8AAAD//////////////////////wAAAP8AAAD//////wAAAP///////////wAA
+        AP8AAAD//////wAAAP///////////////////////////wAAAP//////AAAA////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////AAAA/////////////////wAAAP///////////wAAAP//////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////////////////////8AAAD//////wAAAP8AAAD//////////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD//////wAAAP//////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/////////////////AAAA//////8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD///////////////////////////8AAAD//////wAAAP8AAAD/////////
+        //////////////////8AAAD//////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD//////////////////////wAAAP8AAAD//////wAA
+        AP//////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD///////////8AAAD//////wAA
+        AP//////AAAA/wAAAP///////////////////////////wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA//////8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA/wAAAP//////AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA//////8AAAD/////////////////AAAA//////8AAAD//////wAA
+        AP///////////wAAAP//////AAAA/wAAAP8AAAD///////////////////////////8AAAD/AAAA////
+        /////////////wAAAP///////////wAAAP////////////////8AAAD//////wAAAP8AAAD//////wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA//////8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP//////////////
+        //8AAAD//////////////////////////////////////wAAAP8AAAD/////////////////AAAA////
+        ////////AAAA////////////////////////////AAAA//////8AAAD//////wAAAP8AAAD//////wAA
+        AP//////AAAA/wAAAP//////AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP////////////////8AAAD/////////////////////////////////////////
+        /////////////////////////////wAAAP//////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP//////AAAA////
+        //8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP///////////////////////////wAAAP//////AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA//////////////////////8AAAD///////////////////////////8AAAD/////////
+        ////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA//////8AAAD///////////8AAAD//////wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD//////wAA
+        AP////////////////8AAAD//////wAAAP8AAAD/AAAA//////8AAAD//////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA//////8AAAD/AAAA/wAA
+        AP//////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////////////
+        //8AAAD//////////////////////wAAAP8AAAD///////////////////////////8AAAD//////wAA
+        AP8AAAD/AAAA//////8AAAD/////////////////AAAA////////////////////////////AAAA////
+        /////////////wAAAP//////AAAA/////////////////wAAAP////////////////8AAAD//////wAA
+        AP///////////////////////////wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA//////////////////////8AAAD/AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////8AAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA
+        AAAwAAAAYAAAAAEAIAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAA
+        AP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////////////////////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP//////////////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP//////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP///////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP//////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP//////////////////////////////////////////////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        ////////////////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////////////////////////////////////AAAA/wAA
+        AP//////////////////////////////////////////////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////////////////////////////////////////////
+        //8AAAD/AAAA//////////////////////8AAAD/AAAA////////////////////////////////////
+        ////////AAAA/wAAAP//////////////////////////////////////////////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAAAAAAAACA
+        AAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        /////////////////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        //////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP//////////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD//////////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD//////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP//////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA////////////////////////////////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+</value>
+  </data>
+  <metadata name="windowMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>237, 17</value>
+  </metadata>
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
+        IACoJQAA7h4AAEBAAAABACAAKEIAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAIAAAAAAAAAAAAAAAA
+        AAAAAAAA////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////////////////////
+        /////////////wAAAP8AAAD///////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////////////////////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD//////////////////////////////////////////////////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAA////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/AAAA////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////////////////////wAAAP//////////////
+        /////////////wAAAP//////AAAA//////8AAAD///////////8AAAD/AAAA//////8AAAD/AAAA////
+        ////////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP///////////wAAAP///////////////////////////wAA
+        AP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        /////////////////////////////////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAA
+        AP///////////wAAAP8AAAD/AAAA//////8AAAD//////wAAAP8AAAD//////wAAAP//////AAAA////
+        /////////////wAAAP///////////////////////////wAAAP///////////wAAAP8AAAD/AAAA////
+        //8AAAD///////////8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA////////////AAAA//////8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA//////8AAAD//////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA/wAAAP//////AAAA////////////AAAA////////////AAAA////
+        //8AAAD/AAAA////////////AAAA/////////////////////////////////wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP///////////wAAAP//////AAAA//////8AAAD/////////
+        /////////////wAAAP//////AAAA//////8AAAD//////wAAAP8AAAD/AAAA/wAAAP//////AAAA////
+        /////////////wAAAP//////AAAA//////8AAAD/AAAA//////////////////////8AAAD/AAAA////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA/wAAAP//////AAAA////////////////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP//////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA//////8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP///////////////////////////wAAAP////////////////8AAAD/AAAA////
+        ////////AAAA////////////////////////////AAAA/////////////////wAAAP//////AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA/wAAAP//////AAAA/wAAAP//////AAAA//////8AAAD/AAAA/wAA
+        AP//////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA////////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA/////////////////wAA
+        AP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP//////AAAA/////////////////wAAAP///////////////////////////wAA
+        AP///////////wAAAP//////////////////////AAAA////////////////////////////AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAA
+        AABAAAAAAQAgAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA////
+        //8AAAD//////wAAAP8AAAD/AAAA/wAAAP//////AAAA////////////////////////////////////
+        //8AAAD///////////////////////////8AAAD//////wAAAP8AAAD//////wAAAP//////////////
+        //8AAAD///////////8AAAD/////////////////AAAA//////8AAAD/AAAA/wAAAP8AAAD/////////
+        /////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA////
+        //8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD//////wAAAP//////AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA//////8AAAD/AAAA//////8AAAD///////////8AAAD//////wAA
+        AP8AAAD///////////////////////////8AAAD//////wAAAP8AAAD/AAAA//////8AAAD//////wAA
+        AP////////////////8AAAD/AAAA////////////AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////////////////////wAAAP///////////////////////////wAA
+        AP//////AAAA////////////AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA//////8AAAD///////////8AAAD/AAAA//////8AAAD//////wAA
+        AP8AAAD//////wAAAP//////AAAA////////////////////////////////////////////////////
+        /////////////////////////////wAAAP//////AAAA//////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD//////wAAAP////////////////8AAAD/AAAA////////////AAAA////////////////////
+        //8AAAD/AAAA//////8AAAD//////wAAAP///////////wAAAP//////AAAA//////8AAAD/AAAA////
+        ////////AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////////////
+        /////////////wAAAP8AAAD//////////////////////wAAAP8AAAD//////wAAAP///////////wAA
+        AP8AAAD//////wAAAP///////////////////////////wAAAP//////AAAA////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////AAAA/////////////////wAAAP///////////wAAAP//////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////////////////////8AAAD//////wAAAP8AAAD//////////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD//////wAAAP//////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/////////////////AAAA//////8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD///////////////////////////8AAAD//////wAAAP8AAAD/////////
+        //////////////////8AAAD//////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD//////////////////////wAAAP8AAAD//////wAA
+        AP//////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD///////////8AAAD//////wAA
+        AP//////AAAA/wAAAP///////////////////////////wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA//////8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA/wAAAP//////AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA//////8AAAD/////////////////AAAA//////8AAAD//////wAA
+        AP///////////wAAAP//////AAAA/wAAAP8AAAD///////////////////////////8AAAD/AAAA////
+        /////////////wAAAP///////////wAAAP////////////////8AAAD//////wAAAP8AAAD//////wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA//////8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP//////////////
+        //8AAAD//////////////////////////////////////wAAAP8AAAD/////////////////AAAA////
+        ////////AAAA////////////////////////////AAAA//////8AAAD//////wAAAP8AAAD//////wAA
+        AP//////AAAA/wAAAP//////AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP////////////////8AAAD/////////////////////////////////////////
+        /////////////////////////////wAAAP//////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP//////AAAA////
+        //8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP///////////////////////////wAAAP//////AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA//////////////////////8AAAD///////////////////////////8AAAD/////////
+        ////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA//////8AAAD///////////8AAAD//////wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD//////wAA
+        AP////////////////8AAAD//////wAAAP8AAAD/AAAA//////8AAAD//////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA//////8AAAD/AAAA/wAA
+        AP//////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////////////
+        //8AAAD//////////////////////wAAAP8AAAD///////////////////////////8AAAD//////wAA
+        AP8AAAD/AAAA//////8AAAD/////////////////AAAA////////////////////////////AAAA////
+        /////////////wAAAP//////AAAA/////////////////wAAAP////////////////8AAAD//////wAA
+        AP///////////////////////////wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA//////////////////////8AAAD/AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////8AAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA
+        AAAwAAAAYAAAAAEAIAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAA
+        AP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////////////////////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP//////////////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP//////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP///////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP//////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP//////////////////////////////////////////////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        ////////////////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////////////////////////////////////AAAA/wAA
+        AP//////////////////////////////////////////////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////////////////////////////////////////////
+        //8AAAD/AAAA//////////////////////8AAAD/AAAA////////////////////////////////////
+        ////////AAAA/wAAAP//////////////////////////////////////////////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAAAAAAAACA
+        AAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        /////////////////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        //////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP//////////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD//////////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD//////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP//////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA////////////////////////////////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+</value>
+  </data>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QuickQR.csproj	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{3B93C67C-DFAF-404C-8E99-82BF71FADC51}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>QuickQR</RootNamespace>
+    <AssemblyName>QuickQR</AssemblyName>
+    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>
+    </TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup />
+  <PropertyGroup>
+    <NoWin32Manifest>true</NoWin32Manifest>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationIcon>resources\qr.ico</ApplicationIcon>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+    <Reference Include="zxing">
+      <HintPath>lib\zxing\net2.0\zxing.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="AboutForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="AboutForm.Designer.cs">
+      <DependentUpon>AboutForm.cs</DependentUpon>
+    </Compile>
+    <Compile Include="KeyBinding.cs" />
+    <Compile Include="QRForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="QRForm.Designer.cs">
+      <DependentUpon>QRForm.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="SetHotkey.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="SetHotkey.Designer.cs">
+      <DependentUpon>SetHotkey.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Settings.cs" />
+    <EmbeddedResource Include="AboutForm.resx">
+      <DependentUpon>AboutForm.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="QRForm.resx">
+      <DependentUpon>QRForm.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+      <DesignTime>True</DesignTime>
+    </Compile>
+    <EmbeddedResource Include="SetHotkey.resx">
+      <DependentUpon>SetHotkey.cs</DependentUpon>
+    </EmbeddedResource>
+    <None Include="app.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="resources\qr.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+      <Visible>False</Visible>
+      <ProductName>Windows Installer 3.1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="resources\url.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="resources\qr2.ico" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SetHotkey.Designer.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,138 @@
+namespace QuickQR
+{
+    partial class SetHotkey
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SetHotkey));
+            this.captureButton = new System.Windows.Forms.Button();
+            this.okButton = new System.Windows.Forms.Button();
+            this.cancelButton = new System.Windows.Forms.Button();
+            this.label1 = new System.Windows.Forms.Label();
+            this.hotkeyLabel = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            // 
+            // captureButton
+            // 
+            this.captureButton.Location = new System.Drawing.Point(12, 48);
+            this.captureButton.Name = "captureButton";
+            this.captureButton.Size = new System.Drawing.Size(79, 23);
+            this.captureButton.TabIndex = 0;
+            this.captureButton.Text = "Set Hotkey...";
+            this.captureButton.UseVisualStyleBackColor = true;
+            this.captureButton.Click += new System.EventHandler(this.captureButton_Click);
+            // 
+            // okButton
+            // 
+            this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
+            this.okButton.Location = new System.Drawing.Point(136, 81);
+            this.okButton.Name = "okButton";
+            this.okButton.Size = new System.Drawing.Size(75, 23);
+            this.okButton.TabIndex = 1;
+            this.okButton.Text = "OK";
+            this.okButton.UseVisualStyleBackColor = true;
+            // 
+            // cancelButton
+            // 
+            this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+            this.cancelButton.Location = new System.Drawing.Point(217, 81);
+            this.cancelButton.Name = "cancelButton";
+            this.cancelButton.Size = new System.Drawing.Size(75, 23);
+            this.cancelButton.TabIndex = 2;
+            this.cancelButton.Text = "Cancel";
+            this.cancelButton.UseVisualStyleBackColor = true;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label1.Location = new System.Drawing.Point(106, 53);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(51, 13);
+            this.label1.TabIndex = 3;
+            this.label1.Text = "Hotkey:";
+            // 
+            // hotkeyLabel
+            // 
+            this.hotkeyLabel.AutoSize = true;
+            this.hotkeyLabel.Location = new System.Drawing.Point(158, 53);
+            this.hotkeyLabel.Name = "hotkeyLabel";
+            this.hotkeyLabel.Size = new System.Drawing.Size(37, 13);
+            this.hotkeyLabel.TabIndex = 4;
+            this.hotkeyLabel.Text = "(none)";
+            // 
+            // label2
+            // 
+            this.label2.Location = new System.Drawing.Point(12, 9);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(280, 36);
+            this.label2.TabIndex = 5;
+            this.label2.Text = "When QuickQR is running, the keyboard shortcut below will generate a QR code from" +
+    " the clipboard.";
+            // 
+            // SetHotkey
+            // 
+            this.AcceptButton = this.okButton;
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.CancelButton = this.cancelButton;
+            this.ClientSize = new System.Drawing.Size(304, 116);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.hotkeyLabel);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.cancelButton);
+            this.Controls.Add(this.okButton);
+            this.Controls.Add(this.captureButton);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.KeyPreview = true;
+            this.MaximizeBox = false;
+            this.MinimizeBox = false;
+            this.Name = "SetHotkey";
+            this.ShowInTaskbar = false;
+            this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
+            this.Text = "Set Hotkey...";
+            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.SetHotkey_KeyDown);
+            this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.SetHotkey_KeyUp);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button captureButton;
+        private System.Windows.Forms.Button okButton;
+        private System.Windows.Forms.Button cancelButton;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label hotkeyLabel;
+        private System.Windows.Forms.Label label2;
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SetHotkey.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+
+/*
+ * Copyright (c) 2014 Brad Greco <brad@bgreco.net>
+ */
+namespace QuickQR
+{
+    public partial class SetHotkey : Form
+    {
+        private bool capturing = false;
+        public KeyBinding keyBinding;
+
+        public SetHotkey(KeyBinding keyBinding)
+        {
+            InitializeComponent();
+            this.keyBinding = new KeyBinding();
+            hotkeyLabel.Text = keyBinding.toString();
+        }
+
+        private void captureButton_Click(object sender, EventArgs e)
+        {
+            capturing = true;
+            hotkeyLabel.Text = "Waiting... (ESC to clear)";
+            keyBinding.Win = false;
+        }
+
+        private void SetHotkey_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (capturing && e.KeyCode == Keys.Escape)
+            {
+                capturing = false;
+                keyBinding.key = 0;
+                keyBinding.keyChar = "";
+                hotkeyLabel.Text = keyBinding.comboString();
+            }
+            else if (capturing && (e.KeyCode == Keys.LWin || e.KeyCode == Keys.RWin))
+            {
+                keyBinding.Win = true;
+            }
+            else if (capturing && e.KeyCode != Keys.ShiftKey && e.KeyCode != Keys.Menu && e.KeyCode != Keys.Alt && e.KeyCode != Keys.ControlKey)
+            {
+                keyBinding.key = (int)e.KeyCode;
+                keyBinding.keyChar = e.KeyCode.ToString();
+                keyBinding.Shift = e.Shift;
+                keyBinding.Alt = e.Alt;
+                keyBinding.Ctrl = e.Control;
+                hotkeyLabel.Text = keyBinding.toString();
+            }
+        }
+
+        private void SetHotkey_KeyUp(object sender, KeyEventArgs e)
+        {
+            if (capturing && (e.KeyCode == Keys.LWin || e.KeyCode == Keys.RWin))
+            {
+                keyBinding.Win = false;
+            }
+            else if (capturing && e.KeyCode != Keys.ShiftKey && e.KeyCode != Keys.Menu && e.KeyCode != Keys.Alt && e.KeyCode != Keys.ControlKey)
+            {
+                capturing = false;
+            }
+            okButton.Enabled = !capturing;
+        }
+
+        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
+        {
+            if (keyData == Keys.Escape && capturing)
+            {
+                keyBinding.key = 0;
+                hotkeyLabel.Text = keyBinding.toString();
+                capturing = false;
+                okButton.Enabled = true;
+                return true;
+            }
+            return base.ProcessCmdKey(ref msg, keyData);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SetHotkey.resx	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,700 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
+        IACoJQAA7h4AAEBAAAABACAAKEIAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAIAAAAAAAAAAAAAAAA
+        AAAAAAAA////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////////////////////
+        /////////////wAAAP8AAAD///////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////////////////////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD//////////////////////////////////////////////////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAA////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/AAAA////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////////////////////wAAAP//////////////
+        /////////////wAAAP//////AAAA//////8AAAD///////////8AAAD/AAAA//////8AAAD/AAAA////
+        ////////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP///////////wAAAP///////////////////////////wAA
+        AP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        /////////////////////////////////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAA
+        AP///////////wAAAP8AAAD/AAAA//////8AAAD//////wAAAP8AAAD//////wAAAP//////AAAA////
+        /////////////wAAAP///////////////////////////wAAAP///////////wAAAP8AAAD/AAAA////
+        //8AAAD///////////8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA////////////AAAA//////8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA//////8AAAD//////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA/wAAAP//////AAAA////////////AAAA////////////AAAA////
+        //8AAAD/AAAA////////////AAAA/////////////////////////////////wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP///////////wAAAP//////AAAA//////8AAAD/////////
+        /////////////wAAAP//////AAAA//////8AAAD//////wAAAP8AAAD/AAAA/wAAAP//////AAAA////
+        /////////////wAAAP//////AAAA//////8AAAD/AAAA//////////////////////8AAAD/AAAA////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA/wAAAP//////AAAA////////////////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP//////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA//////8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP///////////////////////////wAAAP////////////////8AAAD/AAAA////
+        ////////AAAA////////////////////////////AAAA/////////////////wAAAP//////AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA/wAAAP//////AAAA/wAAAP//////AAAA//////8AAAD/AAAA/wAA
+        AP//////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA////////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA/////////////////wAA
+        AP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA////
+        //8AAAD/AAAA/wAAAP//////AAAA/////////////////wAAAP///////////////////////////wAA
+        AP///////////wAAAP//////////////////////AAAA////////////////////////////AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAA
+        AABAAAAAAQAgAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA////
+        //8AAAD//////wAAAP8AAAD/AAAA/wAAAP//////AAAA////////////////////////////////////
+        //8AAAD///////////////////////////8AAAD//////wAAAP8AAAD//////wAAAP//////////////
+        //8AAAD///////////8AAAD/////////////////AAAA//////8AAAD/AAAA/wAAAP8AAAD/////////
+        /////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA////
+        //8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD//////wAAAP//////AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA//////8AAAD/AAAA//////8AAAD///////////8AAAD//////wAA
+        AP8AAAD///////////////////////////8AAAD//////wAAAP8AAAD/AAAA//////8AAAD//////wAA
+        AP////////////////8AAAD/AAAA////////////AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////////////////////wAAAP///////////////////////////wAA
+        AP//////AAAA////////////AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA//////8AAAD///////////8AAAD/AAAA//////8AAAD//////wAA
+        AP8AAAD//////wAAAP//////AAAA////////////////////////////////////////////////////
+        /////////////////////////////wAAAP//////AAAA//////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD//////wAAAP////////////////8AAAD/AAAA////////////AAAA////////////////////
+        //8AAAD/AAAA//////8AAAD//////wAAAP///////////wAAAP//////AAAA//////8AAAD/AAAA////
+        ////////AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////////////
+        /////////////wAAAP8AAAD//////////////////////wAAAP8AAAD//////wAAAP///////////wAA
+        AP8AAAD//////wAAAP///////////////////////////wAAAP//////AAAA////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////AAAA/////////////////wAAAP///////////wAAAP//////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////////////////////8AAAD//////wAAAP8AAAD//////////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD//////wAAAP//////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD/////////////////AAAA//////8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD///////////////////////////8AAAD//////wAAAP8AAAD/////////
+        //////////////////8AAAD//////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD//////////////////////wAAAP8AAAD//////wAA
+        AP//////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA//////8AAAD///////////8AAAD//////wAA
+        AP//////AAAA/wAAAP///////////////////////////wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP//////AAAA//////8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAA/wAAAP//////AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA//////8AAAD/////////////////AAAA//////8AAAD//////wAA
+        AP///////////wAAAP//////AAAA/wAAAP8AAAD///////////////////////////8AAAD/AAAA////
+        /////////////wAAAP///////////wAAAP////////////////8AAAD//////wAAAP8AAAD//////wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA//////8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP//////////////////////AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP//////////////
+        //8AAAD//////////////////////////////////////wAAAP8AAAD/////////////////AAAA////
+        ////////AAAA////////////////////////////AAAA//////8AAAD//////wAAAP8AAAD//////wAA
+        AP//////AAAA/wAAAP//////AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP////////////////8AAAD/////////////////////////////////////////
+        /////////////////////////////wAAAP//////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP//////AAAA////
+        //8AAAD//////wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP///////////////////////////wAAAP//////AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA//////////////////////8AAAD///////////////////////////8AAAD/////////
+        ////////AAAA//////8AAAD/AAAA/wAAAP//////AAAA//////8AAAD///////////8AAAD//////wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP//////AAAA/wAAAP8AAAD//////wAA
+        AP////////////////8AAAD//////wAAAP8AAAD/AAAA//////8AAAD//////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA//////8AAAD/AAAA/wAA
+        AP//////AAAA/////////////////wAAAP//////AAAA/wAAAP8AAAD//////wAAAP//////////////
+        //8AAAD//////////////////////wAAAP8AAAD///////////////////////////8AAAD//////wAA
+        AP8AAAD/AAAA//////8AAAD/////////////////AAAA////////////////////////////AAAA////
+        /////////////wAAAP//////AAAA/////////////////wAAAP////////////////8AAAD//////wAA
+        AP///////////////////////////wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP//////AAAA//////////////////////8AAAD/AAAA////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////8AAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA
+        AAAwAAAAYAAAAAEAIAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA////
+        //////////////////////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAA
+        AP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA//////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////////////////////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP//////////////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP//////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP//////////////////////AAAA/wAAAP//////////////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/////////
+        //////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD///////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP///////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP//////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////////////////////////////
+        //////////////////8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP//////////////////////////////////////////////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////////////
+        //////////////////////////////////8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP//////////////////////AAAA/wAAAP//////////////////////////////
+        ////////////////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        //8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        ////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA////////////AAAA/wAAAP////////////////////////////////8AAAD/AAAA////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD///////////8AAAD/AAAA////////////AAAA/wAAAP///////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA//////////////////////////////////////////////////////8AAAD/AAAA////
+        //////////////////8AAAD/AAAA////////////////////////////////////////////AAAA/wAA
+        AP//////////////////////////////////////////////////////AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA////////////////////////////////////////////////////
+        //8AAAD/AAAA//////////////////////8AAAD/AAAA////////////////////////////////////
+        ////////AAAA/wAAAP//////////////////////////////////////////////////////AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////AAAA/wAAAP//////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAQAAAAIAAAAABACAAAAAAAACA
+        AAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        /////////////////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        //////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP//////////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD//////////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD//////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////////////////////wAAAP8AAAD/AAAA////////////////////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAAAP//////////////
+        //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////////////////////AAAA/wAA
+        AP8AAAD/////////////////////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD//////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/////////////////////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA/////////////////wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////////////////wAA
+        AP8AAAD/AAAA//////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////
+        //8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP////////////////8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAA
+        AP8AAAD/////////////////AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA////
+        /////////////////////////////////////////////////////////////////////////////wAA
+        AP8AAAD/AAAA/////////////////////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////wAAAP8AAAD/AAAA////////////////////
+        /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA////
+        //8AAAD/AAAA/wAAAP//////////////////////////////////////////////////////////////
+        //////////////////8AAAD/AAAA/wAAAP////////////////////////////////8AAAD/AAAA/wAA
+        AP////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA
+        AP//////////////////////////////////////////////////////////////////////////////
+        //8AAAD/AAAA/wAAAP//////AAAA/wAAAP8AAAD/////////////////////////////////////////
+        ////////////////////////////////////////AAAA/wAAAP8AAAD/////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////AAAA/wAAAP8AAAD/////////////////////////////////////////////////////////
+        ////////////////////////AAAA/wAAAP8AAAD//////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
+        /////////////wAAAP8AAAD/AAAA////////////////////////////////////////////////////
+        /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP////////////////8AAAD/AAAA/wAAAP//////////////////////////////
+        //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP//////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/////////////////AAAA/wAAAP8AAAD/////////
+        ////////////////////////////////////////////////////////////////////////AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+</value>
+  </data>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Settings.cs	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,98 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+/*
+ * Copyright (c) 2014 Brad Greco <brad@bgreco.net>
+ */
+namespace QuickQR
+{
+    class Settings
+    {
+        public String error;
+        private String configFile;
+        private String configDir;
+
+        public bool autostart = true;
+        public bool background = true;
+        public String hotkey = "";
+
+        public Settings()
+        {
+            String appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
+            configDir = Path.Combine(appData, "QuickQR");
+            configFile = Path.Combine(configDir, "quickqr.ini");
+
+            readConfig();
+        }
+
+        public void setAutostart(bool autostart)
+        {
+            this.autostart = autostart;
+            writeConfig();
+        }
+
+        public void setBackground(bool background)
+        {
+            this.background = background;
+            writeConfig();
+        }
+
+        public void setHotkey(KeyBinding hotkey)
+        {
+            this.hotkey = hotkey.comboString();
+            writeConfig();
+        }
+
+        private void readConfig()
+        {
+            StreamReader reader;
+            try
+            {
+                reader = new StreamReader(configFile);
+            }
+            catch (IOException e)
+            {
+                error = e.Message;
+                return;
+            }
+            String line;
+            while ((line = reader.ReadLine()) != null)
+            {
+                String[] words = line.Split(null, 3);
+                if(words.Length >= 3 && words[1].Equals("="))
+                {
+                    if (words[0].Equals("autostart"))
+                        autostart = words[2].Equals("true");
+                    if (words[0].Equals("background"))
+                        background = words[2].Equals("true");
+                    if (words[0].Equals("hotkey"))
+                        hotkey = words[2];
+                }
+            }
+            reader.Close();
+        }
+
+        private void writeConfig()
+        {
+            StreamWriter writer;
+            try
+            {
+                if (!Directory.Exists(configDir))
+                    Directory.CreateDirectory(configDir);
+                writer = new StreamWriter(configFile);
+            }
+            catch (IOException e)
+            {
+                error = e.Message;
+                return;
+            }
+            writer.WriteLine("[QuickQR]");
+            writer.WriteLine("autostart = " + (autostart ? "true" : "false"));
+            writer.WriteLine("background = " + (background ? "true" : "false"));
+            writer.WriteLine("hotkey = " + hotkey);
+            writer.Close();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app.config	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<configuration>
+<configSections>
+</configSections>
+<startup><supportedRuntime version="v2.0.50727"/></startup>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/zxing/net2.0/zxing.XML	Mon Oct 13 21:28:19 2014 -0500
@@ -0,0 +1,10398 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>zxing</name>
+    </assembly>
+    <members>
+        <member name="T:ZXing.QrCode.Internal.AlignmentPattern">
+            <summary> <p>Encapsulates an alignment pattern, which are the smaller square patterns found in
+            all but the simplest QR Codes.</p>
+            
+            </summary>
+            <author>  Sean Owen
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+        </member>
+        <member name="T:ZXing.ResultPoint">
+            <summary>
+            Encapsulates a point of interest in an image containing a barcode. Typically, this
+            would be the location of a finder pattern or the corner of the barcode, for example.
+            </summary>
+            <author>Sean Owen</author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source</author>
+        </member>
+        <member name="M:ZXing.ResultPoint.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.ResultPoint"/> class.
+            </summary>
+        </member>
+        <member name="M:ZXing.ResultPoint.#ctor(System.Single,System.Single)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.ResultPoint"/> class.
+            </summary>
+            <param name="x">The x.</param>
+            <param name="y">The y.</param>
+        </member>
+        <member name="M:ZXing.ResultPoint.Equals(System.Object)">
+            <summary>
+            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
+            </summary>
+            <param name="other">The <see cref="T:System.Object"/> to compare with this instance.</param>
+            <returns>
+              <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ZXing.ResultPoint.GetHashCode">
+            <summary>
+            Returns a hash code for this instance.
+            </summary>
+            <returns>
+            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
+            </returns>
+        </member>
+        <member name="M:ZXing.ResultPoint.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents this instance.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> that represents this instance.
+            </returns>
+        </member>
+        <member name="M:ZXing.ResultPoint.orderBestPatterns(ZXing.ResultPoint[])">
+            <summary>
+            Orders an array of three ResultPoints in an order [A,B,C] such that AB &lt; AC and
+            BC &lt; AC and the angle between BC and BA is less than 180 degrees.
+            </summary>
+        </member>
+        <member name="M:ZXing.ResultPoint.distance(ZXing.ResultPoint,ZXing.ResultPoint)">
+            <returns>
+            distance between two points
+            </returns>
+        </member>
+        <member name="M:ZXing.ResultPoint.crossProductZ(ZXing.ResultPoint,ZXing.ResultPoint,ZXing.ResultPoint)">
+            <summary>
+            Returns the z component of the cross product between vectors BC and BA.
+            </summary>
+        </member>
+        <member name="P:ZXing.ResultPoint.X">
+            <summary>
+            Gets the X.
+            </summary>
+        </member>
+        <member name="P:ZXing.ResultPoint.Y">
+            <summary>
+            Gets the Y.
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.AlignmentPattern.aboutEquals(System.Single,System.Single,System.Single)">
+            <summary> <p>Determines if this alignment pattern "about equals" an alignment pattern at the stated
+            position and size -- meaning, it is at nearly the same center with nearly the same size.</p>
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.AlignmentPattern.combineEstimate(System.Single,System.Single,System.Single)">
+            <summary>
+            Combines this object's current estimate of a finder pattern position and module size
+            with a new estimate. It returns a new {@code FinderPattern} containing an average of the two.
+            </summary>
+            <param name="i">The i.</param>
+            <param name="j">The j.</param>
+            <param name="newModuleSize">New size of the module.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ZXing.PDF417.Internal.Compaction">
+            <summary>
+            PDF417 compaction mode
+            </summary>
+        </member>
+        <member name="F:ZXing.PDF417.Internal.Compaction.AUTO">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="F:ZXing.PDF417.Internal.Compaction.TEXT">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="F:ZXing.PDF417.Internal.Compaction.BYTE">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="F:ZXing.PDF417.Internal.Compaction.NUMERIC">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="T:ZXing.PDF417.Internal.DetectionResultColumn">
+            <summary>
+            Represents a Column in the Detection Result
+            </summary>
+            <author>Guenther Grau</author>
+        </member>
+        <member name="F:ZXing.PDF417.Internal.DetectionResultColumn.MAX_NEARBY_DISTANCE">
+            <summary>
+            The maximum distance to search in the codeword array in both the positive and negative directions
+            </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResultColumn.#ctor(ZXing.PDF417.Internal.BoundingBox)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.PDF417.Internal.DetectionResultColumn"/> class.
+            </summary>
+            <param name="box">The Bounding Box around the column (in the BitMatrix)</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResultColumn.IndexForRow(System.Int32)">
+            <summary>
+            Converts the Image's Row to the index in the Codewords array
+            </summary>
+            <returns>The Codeword Index.</returns>
+            <param name="imageRow">Image row.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResultColumn.RowForIndex(System.Int32)">
+            <summary>
+            Converts the Codeword array index into a Row in the Image (BitMatrix)
+            </summary>
+            <returns>The Image Row.</returns>
+            <param name="codewordIndex">Codeword index.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResultColumn.getCodeword(System.Int32)">
+            <summary>
+            Gets the codeword for a given row
+            </summary>
+            <returns>The codeword.</returns>
+            <param name="imageRow">Image row.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResultColumn.getCodewordNearby(System.Int32)">
+            <summary>
+            Gets the codeword closest to the specified row in the image
+            </summary>
+            <param name="imageRow">Image row.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResultColumn.setCodeword(System.Int32,ZXing.PDF417.Internal.Codeword)">
+            <summary>
+            Sets the codeword for an image row
+            </summary>
+            <param name="imageRow">Image row.</param>
+            <param name="codeword">Codeword.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResultColumn.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:ZXing.PDF417.Internal.DetectionResultColumn"/>.
+            </summary>
+            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:ZXing.PDF417.Internal.DetectionResultColumn"/>.</returns>
+        </member>
+        <member name="P:ZXing.PDF417.Internal.DetectionResultColumn.Box">
+            <summary>
+            The Bounding Box around the column (in the BitMatrix)
+            </summary>
+            <value>The box.</value>
+        </member>
+        <member name="P:ZXing.PDF417.Internal.DetectionResultColumn.Codewords">
+            <summary>
+            The Codewords the Box encodes for, offset by the Box minY.
+            Remember to Access this ONLY through GetCodeword(imageRow) if you're accessing it in that manner.
+            </summary>
+            <value>The codewords.</value>
+        </member>
+        <member name="T:ZXing.PDF417.Internal.BarcodeMetadata">
+            <summary>
+            Metadata about a PDF417 Barcode
+            </summary>
+            <author>Guenther Grau</author>
+        </member>
+        <member name="T:ZXing.OneD.UPCEReader">
+            <summary>
+              <p>Implements decoding of the UPC-E format.</p>
+              <p/>
+              <p><a href="http://www.barcodeisland.com/upce.phtml">This</a>is a great reference for
+            UPC-E information.</p>
+              <author>Sean Owen</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.UPCEANReader">
+            <summary>
+              <p>Encapsulates functionality and implementation that is common to UPC and EAN families
+            of one-dimensional barcodes.</p>
+              <author>dswitkin@google.com (Daniel Switkin)</author>
+              <author>Sean Owen</author>
+              <author>alasdair@google.com (Alasdair Mackintosh)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.OneDReader">
+            <summary>
+            Encapsulates functionality and implementation that is common to all families
+            of one-dimensional barcodes.
+            <author>dswitkin@google.com (Daniel Switkin)</author>
+            <author>Sean Owen</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.Reader">
+            <summary>
+            Implementations of this interface can decode an image of a barcode in some format into
+            the String it encodes. For example, <see cref="T:ZXing.QrCode.QRCodeReader"/> can
+            decode a QR code. The decoder may optionally receive hints from the caller which may help
+            it decode more quickly or accurately.
+            
+            See <see cref="T:ZXing.MultiFormatReader"/>, which attempts to determine what barcode
+            format is present within the image as well, and then decodes it accordingly.
+            </summary>
+            <author>Sean Owen</author>
+            <author>dswitkin@google.com (Daniel Switkin)</author>
+        </member>
+        <member name="M:ZXing.Reader.decode(ZXing.BinaryBitmap)">
+            <summary>
+            Locates and decodes a barcode in some format within an image.
+            </summary>
+            <param name="image">image of barcode to decode</param>
+            <returns>String which the barcode encodes</returns>
+        </member>
+        <member name="M:ZXing.Reader.decode(ZXing.BinaryBitmap,System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary> Locates and decodes a barcode in some format within an image. This method also accepts
+            hints, each possibly associated to some data, which may help the implementation decode.
+            </summary>
+            <param name="image">image of barcode to decode</param>
+            <param name="hints">passed as a <see cref="T:System.Collections.Generic.IDictionary`2"/> from <see cref="T:ZXing.DecodeHintType"/>
+            to arbitrary data. The
+            meaning of the data depends upon the hint type. The implementation may or may not do
+            anything with these hints.
+            </param>
+            <returns>String which the barcode encodes</returns>
+        </member>
+        <member name="M:ZXing.Reader.reset">
+            <summary>
+            Resets any internal state the implementation has after a decode, to prepare it
+            for reuse.
+            </summary>
+        </member>
+        <member name="F:ZXing.OneD.OneDReader.INTEGER_MATH_SHIFT">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="F:ZXing.OneD.OneDReader.PATTERN_MATCH_RESULT_SCALE_FACTOR">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.OneDReader.decode(ZXing.BinaryBitmap)">
+            <summary>
+            Locates and decodes a barcode in some format within an image.
+            </summary>
+            <param name="image">image of barcode to decode</param>
+            <returns>
+            String which the barcode encodes
+            </returns>
+        </member>
+        <member name="M:ZXing.OneD.OneDReader.decode(ZXing.BinaryBitmap,System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary>
+            Locates and decodes a barcode in some format within an image. This method also accepts
+            hints, each possibly associated to some data, which may help the implementation decode.
+            Note that we don't try rotation without the try harder flag, even if rotation was supported.
+            </summary>
+            <param name="image">image of barcode to decode</param>
+            <param name="hints">passed as a <see cref="T:System.Collections.Generic.IDictionary`2"/> from <see cref="T:ZXing.DecodeHintType"/>
+            to arbitrary data. The
+            meaning of the data depends upon the hint type. The implementation may or may not do
+            anything with these hints.</param>
+            <returns>
+            String which the barcode encodes
+            </returns>
+        </member>
+        <member name="M:ZXing.OneD.OneDReader.reset">
+            <summary>
+            Resets any internal state the implementation has after a decode, to prepare it
+            for reuse.
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.OneDReader.doDecode(ZXing.BinaryBitmap,System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary>
+            We're going to examine rows from the middle outward, searching alternately above and below the
+            middle, and farther out each time. rowStep is the number of rows between each successive
+            attempt above and below the middle. So we'd scan row middle, then middle - rowStep, then
+            middle + rowStep, then middle - (2 * rowStep), etc.
+            rowStep is bigger as the image is taller, but is always at least 1. We've somewhat arbitrarily
+            decided that moving up and down by about 1/16 of the image is pretty good; we try more of the
+            image if "trying harder".
+            </summary>
+            <param name="image">The image to decode</param>
+            <param name="hints">Any hints that were requested</param>
+            <returns>The contents of the decoded barcode</returns>
+        </member>
+        <member name="M:ZXing.OneD.OneDReader.recordPattern(ZXing.Common.BitArray,System.Int32,System.Int32[])">
+            <summary>
+            Records the size of successive runs of white and black pixels in a row, starting at a given point.
+            The values are recorded in the given array, and the number of runs recorded is equal to the size
+            of the array. If the row starts on a white pixel at the given start point, then the first count
+            recorded is the run of white pixels starting from that point; likewise it is the count of a run
+            of black pixels if the row begin on a black pixels at that point.
+            </summary>
+            <param name="row">row to count from</param>
+            <param name="start">offset into row to start at</param>
+            <param name="counters">array into which to record counts</param>
+        </member>
+        <member name="M:ZXing.OneD.OneDReader.recordPattern(ZXing.Common.BitArray,System.Int32,System.Int32[],System.Int32)">
+            <summary>
+            Records the size of successive runs of white and black pixels in a row, starting at a given point.
+            The values are recorded in the given array, and the number of runs recorded is equal to the size
+            of the array. If the row starts on a white pixel at the given start point, then the first count
+            recorded is the run of white pixels starting from that point; likewise it is the count of a run
+            of black pixels if the row begin on a black pixels at that point.
+            </summary>
+            <param name="row">row to count from</param>
+            <param name="start">offset into row to start at</param>
+            <param name="counters">array into which to record counts</param>
+        </member>
+        <member name="M:ZXing.OneD.OneDReader.recordPatternInReverse(ZXing.Common.BitArray,System.Int32,System.Int32[])">
+            <summary>
+            Records the pattern in reverse.
+            </summary>
+            <param name="row">The row.</param>
+            <param name="start">The start.</param>
+            <param name="counters">The counters.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.OneD.OneDReader.patternMatchVariance(System.Int32[],System.Int32[],System.Int32)">
+            <summary>
+            Determines how closely a set of observed counts of runs of black/white values matches a given
+            target pattern. This is reported as the ratio of the total variance from the expected pattern
+            proportions across all pattern elements, to the length of the pattern.
+            </summary>
+            <param name="counters">observed counters</param>
+            <param name="pattern">expected pattern</param>
+            <param name="maxIndividualVariance">The most any counter can differ before we give up</param>
+            <returns>ratio of total variance between counters and pattern compared to total pattern size,
+             where the ratio has been multiplied by 256. So, 0 means no variance (perfect match); 256 means
+             the total variance between counters and patterns equals the pattern length, higher values mean
+             even more variance</returns>
+        </member>
+        <member name="M:ZXing.OneD.OneDReader.decodeRow(System.Int32,ZXing.Common.BitArray,System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary>
+            Attempts to decode a one-dimensional barcode format given a single row of
+            an image.
+            </summary>
+            <param name="rowNumber">row number from top of the row</param>
+            <param name="row">the black/white pixel data of the row</param>
+            <param name="hints">decode hints</param>
+            <returns>
+              <see cref="T:ZXing.Result"/>containing encoded string and start/end of barcode
+            </returns>
+        </member>
+        <member name="F:ZXing.OneD.UPCEANReader.START_END_PATTERN">
+            <summary>
+            Start/end guard pattern.
+            </summary>
+        </member>
+        <member name="F:ZXing.OneD.UPCEANReader.MIDDLE_PATTERN">
+            <summary>
+            Pattern marking the middle of a UPC/EAN pattern, separating the two halves.
+            </summary>
+        </member>
+        <member name="F:ZXing.OneD.UPCEANReader.L_PATTERNS">
+            <summary>
+            "Odd", or "L" patterns used to encode UPC/EAN digits.
+            </summary>
+        </member>
+        <member name="F:ZXing.OneD.UPCEANReader.L_AND_G_PATTERNS">
+            <summary>
+            As above but also including the "even", or "G" patterns used to encode UPC/EAN digits.
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.UPCEANReader.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.OneD.UPCEANReader"/> class.
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.UPCEANReader.decodeRow(System.Int32,ZXing.Common.BitArray,System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary>
+              <p>Attempts to decode a one-dimensional barcode format given a single row of
+            an image.</p>
+            </summary>
+            <param name="rowNumber">row number from top of the row</param>
+            <param name="row">the black/white pixel data of the row</param>
+            <param name="hints">decode hints</param>
+            <returns>
+              <see cref="T:ZXing.Result"/>containing encoded string and start/end of barcode or null, if an error occurs or barcode cannot be found
+            </returns>
+        </member>
+        <member name="M:ZXing.OneD.UPCEANReader.decodeRow(System.Int32,ZXing.Common.BitArray,System.Int32[],System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary>
+            <p>Like decodeRow(int, BitArray, java.util.Map), but
+            allows caller to inform method about where the UPC/EAN start pattern is
+            found. This allows this to be computed once and reused across many implementations.</p>
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.UPCEANReader.checkChecksum(System.String)">
+            <summary>
+            <returns>see checkStandardUPCEANChecksum(String)</returns>
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.UPCEANReader.checkStandardUPCEANChecksum(System.String)">
+            <summary>
+            Computes the UPC/EAN checksum on a string of digits, and reports
+            whether the checksum is correct or not.
+            </summary>
+            <param name="s">string of digits to check</param>
+            <returns>true iff string of digits passes the UPC/EAN checksum algorithm</returns>
+        </member>
+        <member name="M:ZXing.OneD.UPCEANReader.decodeEnd(ZXing.Common.BitArray,System.Int32)">
+            <summary>
+            Decodes the end.
+            </summary>
+            <param name="row">The row.</param>
+            <param name="endStart">The end start.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.OneD.UPCEANReader.findGuardPattern(ZXing.Common.BitArray,System.Int32,System.Boolean,System.Int32[],System.Int32[])">
+            <summary>
+            </summary>
+            <param name="row">row of black/white values to search</param>
+            <param name="rowOffset">position to start search</param>
+            <param name="whiteFirst">if true, indicates that the pattern specifies white/black/white/...</param>
+            pixel counts, otherwise, it is interpreted as black/white/black/...
+            <param name="pattern">pattern of counts of number of black and white pixels that are being</param>
+            searched for as a pattern
+            <param name="counters">array of counters, as long as pattern, to re-use</param>
+            <returns>start/end horizontal offset of guard pattern, as an array of two ints</returns>
+        </member>
+        <member name="M:ZXing.OneD.UPCEANReader.decodeDigit(ZXing.Common.BitArray,System.Int32[],System.Int32,System.Int32[][],System.Int32@)">
+            <summary>
+            Attempts to decode a single UPC/EAN-encoded digit.
+            </summary>
+            <param name="row">row of black/white values to decode</param>
+            <param name="counters">the counts of runs of observed black/white/black/... values</param>
+            <param name="rowOffset">horizontal offset to start decoding from</param>
+            <param name="patterns">the set of patterns to use to decode -- sometimes different encodings</param>
+            for the digits 0-9 are used, and this indicates the encodings for 0 to 9 that should
+            be used
+            <returns>horizontal offset of first pixel beyond the decoded digit</returns>
+        </member>
+        <member name="M:ZXing.OneD.UPCEANReader.decodeMiddle(ZXing.Common.BitArray,System.Int32[],System.Text.StringBuilder)">
+            <summary>
+            Subclasses override this to decode the portion of a barcode between the start
+            and end guard patterns.
+            </summary>
+            <param name="row">row of black/white values to search</param>
+            <param name="startRange">start/end offset of start guard pattern</param>
+            <param name="resultString"><see cref="T:System.Text.StringBuilder"/>to append decoded chars to</param>
+            <returns>horizontal offset of first pixel after the "middle" that was decoded or -1 if decoding could not complete successfully</returns>
+        </member>
+        <member name="P:ZXing.OneD.UPCEANReader.BarcodeFormat">
+            <summary>
+            Get the format of this decoder.
+            <returns>The 1D format.</returns>
+            </summary>
+        </member>
+        <member name="F:ZXing.OneD.UPCEReader.MIDDLE_END_PATTERN">
+            <summary>
+            The pattern that marks the middle, and end, of a UPC-E pattern.
+            There is no "second half" to a UPC-E barcode.
+            </summary>
+        </member>
+        <member name="F:ZXing.OneD.UPCEReader.NUMSYS_AND_CHECK_DIGIT_PATTERNS">
+            <summary>
+            See L_AND_G_PATTERNS these values similarly represent patterns of
+            even-odd parity encodings of digits that imply both the number system (0 or 1)
+            used, and the check digit.
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.UPCEReader.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.OneD.UPCEReader"/> class.
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.UPCEReader.decodeMiddle(ZXing.Common.BitArray,System.Int32[],System.Text.StringBuilder)">
+            <summary>
+            Decodes the middle.
+            </summary>
+            <param name="row">The row.</param>
+            <param name="startRange">The start range.</param>
+            <param name="result">The result.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.OneD.UPCEReader.decodeEnd(ZXing.Common.BitArray,System.Int32)">
+            <summary>
+            Decodes the end.
+            </summary>
+            <param name="row">The row.</param>
+            <param name="endStart">The end start.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.OneD.UPCEReader.checkChecksum(System.String)">
+            <summary>
+              <returns>see checkStandardUPCEANChecksum(String)</returns>
+            </summary>
+            <param name="s"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.OneD.UPCEReader.determineNumSysAndCheckDigit(System.Text.StringBuilder,System.Int32)">
+            <summary>
+            Determines the num sys and check digit.
+            </summary>
+            <param name="resultString">The result string.</param>
+            <param name="lgPatternFound">The lg pattern found.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.OneD.UPCEReader.convertUPCEtoUPCA(System.String)">
+             <summary>
+             Expands a UPC-E value back into its full, equivalent UPC-A code value.
+            
+             <param name="upce">UPC-E code as string of digits</param>
+             <returns>equivalent UPC-A code as string of digits</returns>
+             </summary>
+        </member>
+        <member name="P:ZXing.OneD.UPCEReader.BarcodeFormat">
+            <summary>
+            Get the format of this decoder.
+            <returns>The 1D format.</returns>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.UPCEANWriter">
+            <summary>
+              <p>Encapsulates functionality and implementation that is common to UPC and EAN families
+            of one-dimensional barcodes.</p>
+              <author>aripollak@gmail.com (Ari Pollak)</author>
+              <author>dsbnatut@gmail.com (Kazuki Nishiura)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.OneDimensionalCodeWriter">
+            <summary>
+              <p>Encapsulates functionality and implementation that is common to one-dimensional barcodes.</p>
+              <author>dsbnatut@gmail.com (Kazuki Nishiura)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.Writer">
+            <summary> The base class for all objects which encode/generate a barcode image.
+            
+            </summary>
+            <author>  dswitkin@google.com (Daniel Switkin)
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+        </member>
+        <member name="M:ZXing.Writer.encode(System.String,ZXing.BarcodeFormat,System.Int32,System.Int32)">
+            <summary>
+            Encode a barcode using the default settings.
+            </summary>
+            <param name="contents">The contents to encode in the barcode</param>
+            <param name="format">The barcode format to generate</param>
+            <param name="width">The preferred width in pixels</param>
+            <param name="height">The preferred height in pixels</param>
+            <returns> The generated barcode as a Matrix of unsigned bytes (0 == black, 255 == white)</returns>
+        </member>
+        <member name="M:ZXing.Writer.encode(System.String,ZXing.BarcodeFormat,System.Int32,System.Int32,System.Collections.Generic.IDictionary{ZXing.EncodeHintType,System.Object})">
+            <summary> </summary>
+            <param name="contents">The contents to encode in the barcode</param>
+            <param name="format">The barcode format to generate</param>
+            <param name="width">The preferred width in pixels</param>
+            <param name="height">The preferred height in pixels</param>
+            <param name="hints">Additional parameters to supply to the encoder</param>
+            <returns> The generated barcode as a Matrix of unsigned bytes (0 == black, 255 == white)</returns>
+        </member>
+        <member name="M:ZXing.OneD.OneDimensionalCodeWriter.encode(System.String,ZXing.BarcodeFormat,System.Int32,System.Int32)">
+            <summary>
+            Encode a barcode using the default settings.
+            </summary>
+            <param name="contents">The contents to encode in the barcode</param>
+            <param name="format">The barcode format to generate</param>
+            <param name="width">The preferred width in pixels</param>
+            <param name="height">The preferred height in pixels</param>
+            <returns>
+            The generated barcode as a Matrix of unsigned bytes (0 == black, 255 == white)
+            </returns>
+        </member>
+        <member name="M:ZXing.OneD.OneDimensionalCodeWriter.encode(System.String,ZXing.BarcodeFormat,System.Int32,System.Int32,System.Collections.Generic.IDictionary{ZXing.EncodeHintType,System.Object})">
+            <summary>
+            Encode the contents following specified format.
+            {@code width} and {@code height} are required size. This method may return bigger size
+            {@code BitMatrix} when specified size is too small. The user can set both {@code width} and
+            {@code height} to zero to get minimum size barcode. If negative value is set to {@code width}
+            or {@code height}, {@code IllegalArgumentException} is thrown.
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.OneDimensionalCodeWriter.renderResult(System.Boolean[],System.Int32,System.Int32,System.Int32)">
+            <summary>
+            <returns>a byte array of horizontal pixels (0 = white, 1 = black)</returns>
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.OneDimensionalCodeWriter.appendPattern(System.Boolean[],System.Int32,System.Int32[],System.Boolean)">
+             <summary>
+             Appends the given pattern to the target array starting at pos.
+            
+             <param name="startColor">starting color - false for white, true for black</param>
+             <returns>the number of elements added to target.</returns>
+             </summary>
+        </member>
+        <member name="M:ZXing.OneD.OneDimensionalCodeWriter.encode(System.String)">
+             <summary>
+             Encode the contents to bool array expression of one-dimensional barcode.
+             Start code and end code should be included in result, and side margins should not be included.
+            
+             <returns>a {@code bool[]} of horizontal pixels (false = white, true = black)</returns>
+             </summary>
+        </member>
+        <member name="M:ZXing.OneD.OneDimensionalCodeWriter.CalculateChecksumDigitModulo10(System.String)">
+            <summary>
+            Calculates the checksum digit modulo10.
+            </summary>
+            <param name="contents">The contents.</param>
+            <returns></returns>
+        </member>
+        <member name="P:ZXing.OneD.OneDimensionalCodeWriter.DefaultMargin">
+            <summary>
+            Gets the default margin.
+            </summary>
+        </member>
+        <member name="P:ZXing.OneD.UPCEANWriter.DefaultMargin">
+            <summary>
+            Gets the default margin.
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.RSS.Expanded.Decoders.AI01weightDecoder">
+            <summary>
+            <author>Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.RSS.Expanded.Decoders.AI01decoder">
+            <summary>
+            <author>Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)</author>
+            <author>Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.RSS.Expanded.Decoders.AbstractExpandedDecoder">
+            <summary>
+            <author>Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)</author>
+            <author>Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es)</author>
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.RSS.Expanded.Decoders.AbstractExpandedDecoder.getInformation">
+            <summary>
+            Gets the information.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.OneD.RSS.Expanded.Decoders.AbstractExpandedDecoder.parseInformation">
+            <summary>
+            Parses the information.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.OneD.RSS.Expanded.Decoders.AbstractExpandedDecoder.createDecoder(ZXing.Common.BitArray)">
+            <summary>
+            Creates the decoder.
+            </summary>
+            <param name="information">The information.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ZXing.IBarcodeReaderGeneric`1">
+            <summary>
+            Interface for a smart class to decode the barcode inside a bitmap object
+            </summary>
+            <typeparam name="T">gives the type of the input data</typeparam>
+        </member>
+        <member name="M:ZXing.IBarcodeReaderGeneric`1.Decode(System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat)">
+            <summary>
+            Decodes the specified barcode bitmap which is given by a generic byte array.
+            </summary>
+            <param name="rawRGB">The barcode bitmap.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <param name="format">The format.</param>
+            <returns>
+            the result data or null
+            </returns>
+        </member>
+        <member name="M:ZXing.IBarcodeReaderGeneric`1.Decode(ZXing.LuminanceSource)">
+            <summary>
+            Tries to decode a barcode within an image which is given by a luminance source.
+            That method gives a chance to prepare a luminance source completely before calling
+            the time consuming decoding method. On the other hand there is a chance to create
+            a luminance source which is independent from external resources (like Bitmap objects)
+            and the decoding call can be made in a background thread.
+            </summary>
+            <param name="luminanceSource">The luminance source.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.IBarcodeReaderGeneric`1.Decode(`0)">
+            <summary>
+            Decodes the specified barcode bitmap.
+            </summary>
+            <param name="barcodeBitmap">The barcode bitmap.</param>
+            <returns>the result data or null</returns>
+        </member>
+        <member name="E:ZXing.IBarcodeReaderGeneric`1.ResultPointFound">
+            <summary>
+            event is executed when a result point was found
+            </summary>
+        </member>
+        <member name="E:ZXing.IBarcodeReaderGeneric`1.ResultFound">
+            <summary>
+            event is executed when a result was found via decode
+            </summary>
+        </member>
+        <member name="P:ZXing.IBarcodeReaderGeneric`1.TryHarder">
+            <summary>
+            Gets or sets a flag which cause a deeper look into the bitmap
+            </summary>
+            <value>
+              <c>true</c> if [try harder]; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.IBarcodeReaderGeneric`1.PureBarcode">
+            <summary>
+            Image is a pure monochrome image of a barcode.
+            </summary>
+            <value>
+              <c>true</c> if monochrome image of a barcode; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.IBarcodeReaderGeneric`1.CharacterSet">
+            <summary>
+            Specifies what character encoding to use when decoding, where applicable (type String)
+            </summary>
+            <value>
+            The character set.
+            </value>
+        </member>
+        <member name="P:ZXing.IBarcodeReaderGeneric`1.PossibleFormats">
+            <summary>
+            Image is known to be of one of a few possible formats.
+            Maps to a {@link java.util.List} of {@link BarcodeFormat}s.
+            </summary>
+            <value>
+            The possible formats.
+            </value>
+        </member>
+        <member name="P:ZXing.IBarcodeReaderGeneric`1.Options">
+            <summary>
+            Specifies some options which influence the decoding process
+            </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Encoder.C40Encoder.handleEOD(ZXing.Datamatrix.Encoder.EncoderContext,System.Text.StringBuilder)">
+            <summary>
+            Handle "end of data" situations
+            </summary>
+            <param name="context">the encoder context</param>
+            <param name="buffer">the buffer with the remaining encoded characters</param>
+        </member>
+        <member name="T:ZXing.Datamatrix.Encoder.Encodation">
+            <summary>
+            Enumeration for encodation types
+            </summary>
+        </member>
+        <member name="T:ZXing.Client.Result.GeoResultParser">
+            <summary> Parses a "geo:" URI result, which specifies a location on the surface of
+            the Earth as well as an optional altitude above the surface. See
+            <a href="http://tools.ietf.org/html/draft-mayrhofer-geo-uri-00">
+            http://tools.ietf.org/html/draft-mayrhofer-geo-uri-00</a>.
+            
+            </summary>
+            <author>  Sean Owen
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+        </member>
+        <member name="T:ZXing.Client.Result.ResultParser">
+            <summary> <p>Abstract class representing the result of decoding a barcode, as more than
+            a String -- as some type of structured data. This might be a subclass which represents
+            a URL, or an e-mail address. {@link #parseResult(com.google.zxing.Result)} will turn a raw
+            decoded string into the most appropriate type of structured representation.</p>
+            
+            <p>Thanks to Jeff Griffin for proposing rewrite of these classes that relies less
+            on exception-based mechanisms during parsing.</p>
+            </summary>
+            <author>Sean Owen</author>
+        </member>
+        <member name="M:ZXing.Client.Result.ResultParser.parse(ZXing.Result)">
+            <summary>
+            Attempts to parse the raw {@link Result}'s contents as a particular type
+            of information (email, URL, etc.) and return a {@link ParsedResult} encapsulating
+            the result of parsing.
+            </summary>
+            <param name="theResult">The result.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ZXing.BarcodeFormat">
+            <summary>
+            Enumerates barcode formats known to this package.
+            </summary>
+            <author>Sean Owen</author>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.AZTEC">
+            <summary>Aztec 2D barcode format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.CODABAR">
+            <summary>CODABAR 1D format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.CODE_39">
+            <summary>Code 39 1D format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.CODE_93">
+            <summary>Code 93 1D format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.CODE_128">
+            <summary>Code 128 1D format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.DATA_MATRIX">
+            <summary>Data Matrix 2D barcode format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.EAN_8">
+            <summary>EAN-8 1D format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.EAN_13">
+            <summary>EAN-13 1D format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.ITF">
+            <summary>ITF (Interleaved Two of Five) 1D format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.MAXICODE">
+            <summary>MaxiCode 2D barcode format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.PDF_417">
+            <summary>PDF417 format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.QR_CODE">
+            <summary>QR Code 2D barcode format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.RSS_14">
+            <summary>RSS 14</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.RSS_EXPANDED">
+            <summary>RSS EXPANDED</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.UPC_A">
+            <summary>UPC-A 1D format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.UPC_E">
+            <summary>UPC-E 1D format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.UPC_EAN_EXTENSION">
+            <summary>UPC/EAN extension format. Not a stand-alone format.</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.MSI">
+            <summary>MSI</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.PLESSEY">
+            <summary>Plessey</summary>
+        </member>
+        <member name="F:ZXing.BarcodeFormat.All_1D">
+            <summary>
+            UPC_A | UPC_E | EAN_13 | EAN_8 | CODABAR | CODE_39 | CODE_93 | CODE_128 | ITF | RSS_14 | RSS_EXPANDED
+            without MSI (to many false-positives)
+            </summary>
+        </member>
+        <member name="T:ZXing.QrCode.Internal.Detector">
+            <summary>
+            <p>Encapsulates logic that can detect a QR Code in an image, even if the QR Code
+            is rotated or skewed, or partially obscured.</p>
+            </summary>
+            <author>Sean Owen</author>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.#ctor(ZXing.Common.BitMatrix)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.QrCode.Internal.Detector"/> class.
+            </summary>
+            <param name="image">The image.</param>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.detect">
+            <summary>
+              <p>Detects a QR Code in an image, simply.</p>
+            </summary>
+            <returns>
+              <see cref="T:ZXing.Common.DetectorResult"/> encapsulating results of detecting a QR Code
+            </returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.detect(System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary>
+              <p>Detects a QR Code in an image, simply.</p>
+            </summary>
+            <param name="hints">optional hints to detector</param>
+            <returns>
+              <see cref="T:ZXing.Common.DetectorResult"/> encapsulating results of detecting a QR Code
+            </returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.processFinderPatternInfo(ZXing.QrCode.Internal.FinderPatternInfo)">
+            <summary>
+            Processes the finder pattern info.
+            </summary>
+            <param name="info">The info.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.computeDimension(ZXing.ResultPoint,ZXing.ResultPoint,ZXing.ResultPoint,System.Single,System.Int32@)">
+            <summary> <p>Computes the dimension (number of modules on a size) of the QR Code based on the position
+            of the finder patterns and estimated module size.</p>
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.calculateModuleSize(ZXing.ResultPoint,ZXing.ResultPoint,ZXing.ResultPoint)">
+            <summary> <p>Computes an average estimated module size based on estimated derived from the positions
+            of the three finder patterns.</p>
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.calculateModuleSizeOneWay(ZXing.ResultPoint,ZXing.ResultPoint)">
+            <summary> <p>Estimates module size based on two finder patterns -- it uses
+            {@link #sizeOfBlackWhiteBlackRunBothWays(int, int, int, int)} to figure the
+            width of each, measuring along the axis between their centers.</p>
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.sizeOfBlackWhiteBlackRunBothWays(System.Int32,System.Int32,System.Int32,System.Int32)">
+            <summary> See {@link #sizeOfBlackWhiteBlackRun(int, int, int, int)}; computes the total width of
+            a finder pattern by looking for a black-white-black run from the center in the direction
+            of another point (another finder pattern center), and in the opposite direction too.
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.sizeOfBlackWhiteBlackRun(System.Int32,System.Int32,System.Int32,System.Int32)">
+            <summary> <p>This method traces a line from a point in the image, in the direction towards another point.
+            It begins in a black region, and keeps going until it finds white, then black, then white again.
+            It reports the distance from the start to this point.</p>
+            
+            <p>This is used when figuring out how wide a finder pattern is, when the finder pattern
+            may be skewed or rotated.</p>
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Detector.findAlignmentInRegion(System.Single,System.Int32,System.Int32,System.Single)">
+            <summary>
+              <p>Attempts to locate an alignment pattern in a limited region of the image, which is
+            guessed to contain it. This method uses {@link AlignmentPattern}.</p>
+            </summary>
+            <param name="overallEstModuleSize">estimated module size so far</param>
+            <param name="estAlignmentX">x coordinate of center of area probably containing alignment pattern</param>
+            <param name="estAlignmentY">y coordinate of above</param>
+            <param name="allowanceFactor">number of pixels in all directions to search from the center</param>
+            <returns>
+              <see cref="T:ZXing.QrCode.Internal.AlignmentPattern"/> if found, or null otherwise
+            </returns>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Detector.Image">
+            <summary>
+            Gets the image.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Detector.ResultPointCallback">
+            <summary>
+            Gets the result point callback.
+            </summary>
+        </member>
+        <member name="T:ZXing.QrCode.Internal.Version">
+            <summary>
+            See ISO 18004:2006 Annex D
+            </summary>
+            <author>Sean Owen</author>
+        </member>
+        <member name="F:ZXing.QrCode.Internal.Version.VERSION_DECODE_INFO">
+            <summary> See ISO 18004:2006 Annex D.
+            Element i represents the raw version bits that specify version i + 7
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Version.getECBlocksForLevel(ZXing.QrCode.Internal.ErrorCorrectionLevel)">
+            <summary>
+            Gets the EC blocks for level.
+            </summary>
+            <param name="ecLevel">The ec level.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Version.getProvisionalVersionForDimension(System.Int32)">
+            <summary> <p>Deduces version information purely from QR Code dimensions.</p>
+            
+            </summary>
+            <param name="dimension">dimension in modules
+            </param>
+            <returns><see cref="T:ZXing.QrCode.Internal.Version"/> for a QR Code of that dimension or null</returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Version.getVersionForNumber(System.Int32)">
+            <summary>
+            Gets the version for number.
+            </summary>
+            <param name="versionNumber">The version number.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Version.buildFunctionPattern">
+            <summary> See ISO 18004:2006 Annex E</summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Version.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents this instance.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> that represents this instance.
+            </returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Version.buildVersions">
+            <summary> See ISO 18004:2006 6.5.1 Table 9</summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Version.VersionNumber">
+            <summary>
+            Gets the version number.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Version.AlignmentPatternCenters">
+            <summary>
+            Gets the alignment pattern centers.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Version.TotalCodewords">
+            <summary>
+            Gets the total codewords.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Version.DimensionForVersion">
+            <summary>
+            Gets the dimension for version.
+            </summary>
+        </member>
+        <member name="T:ZXing.QrCode.Internal.Version.ECBlocks">
+            <summary> <p>Encapsulates a set of error-correction blocks in one symbol version. Most versions will
+            use blocks of differing sizes within one version, so, this encapsulates the parameters for
+            each set of blocks. It also holds the number of error-correction codewords per block since it
+            will be the same across all blocks within one version.</p>
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.Version.ECBlocks.getECBlocks">
+            <summary>
+            Gets the EC blocks.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Version.ECBlocks.ECCodewordsPerBlock">
+            <summary>
+            Gets the EC codewords per block.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Version.ECBlocks.NumBlocks">
+            <summary>
+            Gets the num blocks.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Version.ECBlocks.TotalECCodewords">
+            <summary>
+            Gets the total EC codewords.
+            </summary>
+        </member>
+        <member name="T:ZXing.QrCode.Internal.Version.ECB">
+            <summary> <p>Encapsualtes the parameters for one error-correction block in one symbol version.
+            This includes the number of data codewords, and the number of times a block with these
+            parameters is used consecutively in the QR code version's format.</p>
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Version.ECB.Count">
+            <summary>
+            Gets the count.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.Version.ECB.DataCodewords">
+            <summary>
+            Gets the data codewords.
+            </summary>
+        </member>
+        <member name="T:ZXing.PDF417.Internal.PDF417">
+            <summary>
+            Top-level class for the logic part of the PDF417 implementation.
+            </summary>
+        </member>
+        <member name="F:ZXing.PDF417.Internal.PDF417.START_PATTERN">
+            <summary>
+            The start pattern (17 bits)
+            </summary>
+        </member>
+        <member name="F:ZXing.PDF417.Internal.PDF417.STOP_PATTERN">
+            <summary>
+            The stop pattern (18 bits)
+            </summary>
+        </member>
+        <member name="F:ZXing.PDF417.Internal.PDF417.CODEWORD_TABLE">
+            <summary>
+            The codeword table from the Annex A of ISO/IEC 15438:2001(E).
+            </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.PDF417.calculateNumberOfRows(System.Int32,System.Int32,System.Int32)">
+            <summary>
+            Calculates the necessary number of rows as described in annex Q of ISO/IEC 15438:2001(E).
+            </summary>
+            <param name="m">the number of source codewords prior to the additional of the Symbol Length</param>
+                     Descriptor and any pad codewords
+            <param name="k">the number of error correction codewords</param>
+            <param name="c">the number of columns in the symbol in the data region (excluding start, stop and</param>
+                     row indicator codewords)
+            <returns>the number of rows in the symbol (r)</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.PDF417.getNumberOfPadCodewords(System.Int32,System.Int32,System.Int32,System.Int32)">
+            <summary>
+            Calculates the number of pad codewords as described in 4.9.2 of ISO/IEC 15438:2001(E).
+            </summary>
+            <param name="m">the number of source codewords prior to the additional of the Symbol Length</param>
+                     Descriptor and any pad codewords
+            <param name="k">the number of error correction codewords</param>
+            <param name="c">the number of columns in the symbol in the data region (excluding start, stop and</param>
+                     row indicator codewords)
+            <param name="r">the number of rows in the symbol</param>
+            <returns>the number of pad codewords</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.PDF417.generateBarcodeLogic(System.String,System.Int32)">
+            <summary>
+            Generates the barcode logic.
+            </summary>
+            <param name="msg">the message to encode</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.PDF417.determineDimensions(System.Int32,System.Int32)">
+            <summary>
+            Determine optimal nr of columns and rows for the specified number of
+            codewords.
+            </summary>
+            <param name="sourceCodeWords">number of code words</param>
+            <param name="errorCorrectionCodeWords">number of error correction code words</param>
+            <returns>dimension object containing cols as width and rows as height</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.PDF417.setDimensions(System.Int32,System.Int32,System.Int32,System.Int32)">
+            <summary>
+            Sets max/min row/col values
+            </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.PDF417.setCompaction(ZXing.PDF417.Internal.Compaction)">
+            <summary>
+            Sets compaction to values stored in <see cref="T:ZXing.PDF417.Internal.Compaction"/>enum
+            </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.PDF417.setCompact(System.Boolean)">
+            <summary>
+            Sets compact to be true or false
+            </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.PDF417.setEncoding(System.String)">
+            <summary>
+            Sets output encoding.
+            </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.PDF417.setDisableEci(System.Boolean)">
+            <summary>
+            Sets the disable eci.
+            </summary>
+        </member>
+        <member name="T:ZXing.PDF417.Internal.BarcodeValue">
+            <summary>
+            A Barcode Value for the PDF417 barcode.  
+            The scanner will iterate through the bitmatrix, 
+            and given the different methods or iterations 
+            will increment a given barcode value's confidence.
+            
+            When done, this will return the values of highest confidence.
+            </summary>
+            <author>Guenther Grau</author>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.BarcodeValue.setValue(System.Int32)">
+             <summary>
+             Incremenets the Confidence for a given value. (Adds an occurance of a value)
+            
+             </summary>
+             <param name="value">Value.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.BarcodeValue.getValue">
+            <summary>
+            Determines the maximum occurrence of a set value and returns all values which were set with this occurrence.
+            </summary>
+            <returns>an array of int, containing the values with the highest occurrence, or null, if no value was set.</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.BarcodeValue.getConfidence(System.Int32)">
+            <summary>
+            Returns the confience value for a given barcode value
+            </summary>
+            <param name="barcodeValue">Barcode value.</param>
+        </member>
+        <member name="T:ZXing.OneD.UPCEANExtension2Support">
+            <summary>
+            @see UPCEANExtension5Support
+            </summary>
+        </member>
+        <!-- Ungültiger XML-Kommentar wurde für den Member "M:ZXing.OneD.UPCEANExtension2Support.parseExtensionString(System.String)" ignoriert -->
+        <member name="T:ZXing.OneD.ITFWriter">
+            <summary>
+            This object renders a ITF code as a <see cref="T:ZXing.Common.BitMatrix"/>.
+            
+            <author>erik.barbara@gmail.com (Erik Barbara)</author>
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.ITFWriter.encode(System.String,ZXing.BarcodeFormat,System.Int32,System.Int32,System.Collections.Generic.IDictionary{ZXing.EncodeHintType,System.Object})">
+            <summary>
+            Encode the contents following specified format.
+            {@code width} and {@code height} are required size. This method may return bigger size
+            {@code BitMatrix} when specified size is too small. The user can set both {@code width} and
+            {@code height} to zero to get minimum size barcode. If negative value is set to {@code width}
+            or {@code height}, {@code IllegalArgumentException} is thrown.
+            </summary>
+            <param name="contents"></param>
+            <param name="format"></param>
+            <param name="width"></param>
+            <param name="height"></param>
+            <param name="hints"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.OneD.ITFWriter.encode(System.String)">
+            <summary>
+            Encode the contents to bool array expression of one-dimensional barcode.
+            Start code and end code should be included in result, and side margins should not be included.
+            <returns>a {@code bool[]} of horizontal pixels (false = white, true = black)</returns>
+            </summary>
+            <param name="contents"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZXing.OneD.ITFReader">
+             <summary>
+             <p>Implements decoding of the ITF format, or Interleaved Two of Five.</p>
+            
+             <p>This Reader will scan ITF barcodes of certain lengths only.
+             At the moment it reads length 6, 8, 10, 12, 14, 16, 18, 20, 24, 44 and 48 as these have appeared "in the wild". Not all
+             lengths are scanned, especially shorter ones, to avoid false positives. This in turn is due to a lack of
+             required checksum function.</p>
+            
+             <p>The checksum is optional and is not applied by this Reader. The consumer of the decoded
+             value will have to apply a checksum if required.</p>
+            
+             <p><a href="http://en.wikipedia.org/wiki/Interleaved_2_of_5">http://en.wikipedia.org/wiki/Interleaved_2_of_5</a>
+             is a great reference for Interleaved 2 of 5 information.</p>
+            
+             <author>kevin.osullivan@sita.aero, SITA Lab.</author>
+             </summary>
+        </member>
+        <member name="F:ZXing.OneD.ITFReader.DEFAULT_ALLOWED_LENGTHS">
+            <summary>
+            Valid ITF lengths. Anything longer than the largest value is also allowed.
+            </summary>
+        </member>
+        <member name="F:ZXing.OneD.ITFReader.START_PATTERN">
+             <summary>
+             Start/end guard pattern.
+            
+             Note: The end pattern is reversed because the row is reversed before
+             searching for the END_PATTERN
+             </summary>
+        </member>
+        <member name="F:ZXing.OneD.ITFReader.PATTERNS">
+            <summary>
+            Patterns of Wide / Narrow lines to indicate each digit
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.ITFReader.decodeRow(System.Int32,ZXing.Common.BitArray,System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary>
+            Attempts to decode a one-dimensional barcode format given a single row of
+            an image.
+            </summary>
+            <param name="rowNumber">row number from top of the row</param>
+            <param name="row">the black/white pixel data of the row</param>
+            <param name="hints">decode hints</param>
+            <returns>
+              <see cref="T:ZXing.Result"/>containing encoded string and start/end of barcode
+            </returns>
+        </member>
+        <member name="M:ZXing.OneD.ITFReader.decodeMiddle(ZXing.Common.BitArray,System.Int32,System.Int32,System.Text.StringBuilder)">
+            <summary>
+            </summary>
+            <param name="row">row of black/white values to search</param>
+            <param name="payloadStart">offset of start pattern</param>
+            <param name="payloadEnd">The payload end.</param>
+            <param name="resultString"><see cref="T:System.Text.StringBuilder"/>to append decoded chars to</param>
+            <returns>
+            false, if decoding could not complete successfully
+            </returns>
+        </member>
+        <member name="M:ZXing.OneD.ITFReader.decodeStart(ZXing.Common.BitArray)">
+            <summary>
+            Identify where the start of the middle / payload section starts.
+            </summary>
+            <param name="row">row of black/white values to search</param>
+            <returns>Array, containing index of start of 'start block' and end of 'start block'</returns>
+        </member>
+        <member name="M:ZXing.OneD.ITFReader.validateQuietZone(ZXing.Common.BitArray,System.Int32)">
+             <summary>
+             The start &amp; end patterns must be pre/post fixed by a quiet zone. This
+             zone must be at least 10 times the width of a narrow line.  Scan back until
+             we either get to the start of the barcode or match the necessary number of
+             quiet zone pixels.
+            
+             Note: Its assumed the row is reversed when using this method to find
+             quiet zone after the end pattern.
+            
+             ref: http://www.barcode-1.net/i25code.html
+             </summary>
+             <param name="row">bit array representing the scanned barcode.</param>
+             <param name="startPattern">index into row of the start or end pattern.</param>
+             <returns>false, if the quiet zone cannot be found</returns>
+        </member>
+        <member name="M:ZXing.OneD.ITFReader.skipWhiteSpace(ZXing.Common.BitArray)">
+            <summary>
+            Skip all whitespace until we get to the first black line.
+            </summary>
+            <param name="row">row of black/white values to search</param>
+            <returns>index of the first black line or -1 if no black lines are found in the row.</returns>
+        </member>
+        <member name="M:ZXing.OneD.ITFReader.decodeEnd(ZXing.Common.BitArray)">
+            <summary>
+            Identify where the end of the middle / payload section ends.
+            </summary>
+            <param name="row">row of black/white values to search</param>
+            <returns>Array, containing index of start of 'end block' and end of 'end
+            block' or null, if nothing found</returns>
+        </member>
+        <member name="M:ZXing.OneD.ITFReader.findGuardPattern(ZXing.Common.BitArray,System.Int32,System.Int32[])">
+            <summary>
+            </summary>
+            <param name="row">row of black/white values to search</param>
+            <param name="rowOffset">position to start search</param>
+            <param name="pattern">pattern of counts of number of black and white pixels that are being searched for as a pattern</param>
+            <returns>start/end horizontal offset of guard pattern, as an array of two ints</returns>
+        </member>
+        <member name="M:ZXing.OneD.ITFReader.decodeDigit(System.Int32[],System.Int32@)">
+            <summary>
+            Attempts to decode a sequence of ITF black/white lines into single
+            digit.
+            </summary>
+            <param name="counters">the counts of runs of observed black/white/black/... values</param>
+            <param name="bestMatch">The decoded digit</param>
+            <returns>
+            false, if digit cannot be decoded
+            </returns>
+        </member>
+        <member name="T:ZXing.MultiFormatWriter">
+            <summary> This is a factory class which finds the appropriate Writer subclass for the BarcodeFormat
+            requested and encodes the barcode with the supplied contents.
+            
+            </summary>
+            <author>  dswitkin@google.com (Daniel Switkin)
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+        </member>
+        <member name="P:ZXing.MultiFormatWriter.SupportedWriters">
+            <summary>
+            Gets the collection of supported writers.
+            </summary>
+        </member>
+        <member name="T:ZXing.MultiFormatReader">
+            <summary>
+            MultiFormatReader is a convenience class and the main entry point into the library for most uses.
+            By default it attempts to decode all barcode formats that the library supports. Optionally, you
+            can provide a hints object to request different behavior, for example only decoding QR codes.
+            </summary>
+            <author>Sean Owen</author>
+            <author>dswitkin@google.com (Daniel Switkin)</author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source</author>
+        </member>
+        <member name="M:ZXing.MultiFormatReader.decode(ZXing.BinaryBitmap)">
+            <summary> This version of decode honors the intent of Reader.decode(BinaryBitmap) in that it
+            passes null as a hint to the decoders. However, that makes it inefficient to call repeatedly.
+            Use setHints() followed by decodeWithState() for continuous scan applications.
+            
+            </summary>
+            <param name="image">The pixel data to decode
+            </param>
+            <returns> The contents of the image
+            </returns>
+            <throws>  ReaderException Any errors which occurred </throws>
+        </member>
+        <member name="M:ZXing.MultiFormatReader.decode(ZXing.BinaryBitmap,System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary> Decode an image using the hints provided. Does not honor existing state.
+            
+            </summary>
+            <param name="image">The pixel data to decode
+            </param>
+            <param name="hints">The hints to use, clearing the previous state.
+            </param>
+            <returns> The contents of the image
+            </returns>
+            <throws>  ReaderException Any errors which occurred </throws>
+        </member>
+        <member name="M:ZXing.MultiFormatReader.decodeWithState(ZXing.BinaryBitmap)">
+            <summary> Decode an image using the state set up by calling setHints() previously. Continuous scan
+            clients will get a <b>large</b> speed increase by using this instead of decode().
+            
+            </summary>
+            <param name="image">The pixel data to decode
+            </param>
+            <returns> The contents of the image
+            </returns>
+            <throws>  ReaderException Any errors which occurred </throws>
+        </member>
+        <member name="P:ZXing.MultiFormatReader.Hints">
+            <summary> This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls
+            to decodeWithState(image) can reuse the same set of readers without reallocating memory. This
+            is important for performance in continuous scan clients.
+            
+            </summary>
+            <param name="hints">The set of hints to use for subsequent calls to decode(image)
+            </param>
+        </member>
+        <member name="T:ZXing.LuminanceSource">
+            <summary> The purpose of this class hierarchy is to abstract different bitmap implementations across
+            platforms into a standard interface for requesting greyscale luminance values. The interface
+            only provides immutable methods; therefore crop and rotation create copies. This is to ensure
+            that one Reader does not modify the original luminance source and leave it in an unknown state
+            for other Readers in the chain.
+            </summary>
+            <author>  dswitkin@google.com (Daniel Switkin)
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+        </member>
+        <member name="M:ZXing.LuminanceSource.getRow(System.Int32,System.Byte[])">
+            <summary> Fetches one row of luminance data from the underlying platform's bitmap. Values range from
+            0 (black) to 255 (white). Because Java does not have an unsigned byte type, callers will have
+            to bitwise and with 0xff for each value. It is preferable for implementations of this method
+            to only fetch this row rather than the whole image, since no 2D Readers may be installed and
+            getMatrix() may never be called.
+            
+            </summary>
+            <param name="y">The row to fetch, 0 &lt;= y &lt; Height.
+            </param>
+            <param name="row">An optional preallocated array. If null or too small, it will be ignored.
+            Always use the returned object, and ignore the .length of the array.
+            </param>
+            <returns> An array containing the luminance data.
+            </returns>
+        </member>
+        <member name="M:ZXing.LuminanceSource.crop(System.Int32,System.Int32,System.Int32,System.Int32)">
+            <summary> Returns a new object with cropped image data. Implementations may keep a reference to the
+            original data rather than a copy. Only callable if CropSupported is true.
+            
+            </summary>
+            <param name="left">The left coordinate, 0 &lt;= left &lt; Width.
+            </param>
+            <param name="top">The top coordinate, 0 &lt;= top &lt;= Height.
+            </param>
+            <param name="width">The width of the rectangle to crop.
+            </param>
+            <param name="height">The height of the rectangle to crop.
+            </param>
+            <returns> A cropped version of this object.
+            </returns>
+        </member>
+        <member name="M:ZXing.LuminanceSource.rotateCounterClockwise">
+            <summary>
+            Returns a new object with rotated image data by 90 degrees counterclockwise.
+            Only callable if {@link #isRotateSupported()} is true.
+            </summary>
+            <returns> A rotated version of this object.
+            </returns>
+        </member>
+        <member name="M:ZXing.LuminanceSource.rotateCounterClockwise45">
+            <summary>
+            Returns a new object with rotated image data by 45 degrees counterclockwise.
+            Only callable if {@link #isRotateSupported()} is true.
+            </summary>
+            <returns>A rotated version of this object.</returns>
+        </member>
+        <member name="P:ZXing.LuminanceSource.Matrix">
+            <summary> Fetches luminance data for the underlying bitmap. Values should be fetched using:
+            int luminance = array[y * width + x] &amp; 0xff;
+            
+            </summary>
+            <returns> A row-major 2D array of luminance values. Do not use result.length as it may be
+            larger than width * height bytes on some platforms. Do not modify the contents
+            of the result.
+            </returns>
+        </member>
+        <member name="P:ZXing.LuminanceSource.Width">
+            <returns> The width of the bitmap.</returns>
+        </member>
+        <member name="P:ZXing.LuminanceSource.Height">
+            <returns> The height of the bitmap.</returns>
+        </member>
+        <member name="P:ZXing.LuminanceSource.CropSupported">
+            <returns> Whether this subclass supports cropping.</returns>
+        </member>
+        <member name="P:ZXing.LuminanceSource.RotateSupported">
+            <returns> Whether this subclass supports counter-clockwise rotation.</returns>
+        </member>
+        <member name="P:ZXing.LuminanceSource.InversionSupported">
+            <summary>
+            </summary>
+            <returns>Whether this subclass supports invertion.</returns>
+        </member>
+        <member name="T:ZXing.Datamatrix.Encoder.SymbolInfo">
+            <summary>
+            Symbol info table for DataMatrix.
+            </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Encoder.SymbolInfo.overrideSymbolSet(ZXing.Datamatrix.Encoder.SymbolInfo[])">
+             Overrides the symbol info set used by this class. Used for testing purposes.
+            
+             @param override the symbol info set to use
+        </member>
+        <member name="T:ZXing.Datamatrix.Internal.DecodedBitStreamParser">
+             <summary>
+             <p>Data Matrix Codes can encode text as bits in one of several modes, and can use multiple modes
+             in one Data Matrix Code. This class decodes the bits back into text.</p>
+            
+             <p>See ISO 16022:2006, 5.2.1 - 5.2.9.2</p>
+            
+             <author>bbrown@google.com (Brian Brown)</author>
+             <author>Sean Owen</author>
+             </summary>
+        </member>
+        <member name="F:ZXing.Datamatrix.Internal.DecodedBitStreamParser.C40_BASIC_SET_CHARS">
+            <summary>
+            See ISO 16022:2006, Annex C Table C.1
+            The C40 Basic Character Set (*'s used for placeholders for the shift values)
+            </summary>
+        </member>
+        <member name="F:ZXing.Datamatrix.Internal.DecodedBitStreamParser.TEXT_BASIC_SET_CHARS">
+            <summary>
+            See ISO 16022:2006, Annex C Table C.2
+            The Text Basic Character Set (*'s used for placeholders for the shift values)
+            </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.DecodedBitStreamParser.decodeAsciiSegment(ZXing.Common.BitSource,System.Text.StringBuilder,System.Text.StringBuilder,ZXing.Datamatrix.Internal.DecodedBitStreamParser.Mode@)">
+            <summary>
+            See ISO 16022:2006, 5.2.3 and Annex C, Table C.2
+            </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.DecodedBitStreamParser.decodeC40Segment(ZXing.Common.BitSource,System.Text.StringBuilder)">
+            <summary>
+            See ISO 16022:2006, 5.2.5 and Annex C, Table C.1
+            </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.DecodedBitStreamParser.decodeTextSegment(ZXing.Common.BitSource,System.Text.StringBuilder)">
+            <summary>
+            See ISO 16022:2006, 5.2.6 and Annex C, Table C.2
+            </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.DecodedBitStreamParser.decodeAnsiX12Segment(ZXing.Common.BitSource,System.Text.StringBuilder)">
+            <summary>
+            See ISO 16022:2006, 5.2.7
+            </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.DecodedBitStreamParser.decodeEdifactSegment(ZXing.Common.BitSource,System.Text.StringBuilder)">
+            <summary>
+            See ISO 16022:2006, 5.2.8 and Annex C Table C.3
+            </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.DecodedBitStreamParser.decodeBase256Segment(ZXing.Common.BitSource,System.Text.StringBuilder,System.Collections.Generic.IList{System.Byte[]})">
+            <summary>
+            See ISO 16022:2006, 5.2.9 and Annex B, B.2
+            </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.DecodedBitStreamParser.unrandomize255State(System.Int32,System.Int32)">
+            <summary>
+            See ISO 16022:2006, Annex B, B.2
+            </summary>
+        </member>
+        <member name="T:ZXing.Datamatrix.Internal.DataBlock">
+             <summary>
+             <p>Encapsulates a block of data within a Data Matrix Code. Data Matrix Codes may split their data into
+             multiple blocks, each of which is a unit of data and error-correction codewords. Each
+             is represented by an instance of this class.</p>
+            
+             <author>bbrown@google.com (Brian Brown)</author>
+             </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.DataBlock.getDataBlocks(System.Byte[],ZXing.Datamatrix.Internal.Version)">
+             <summary>
+             <p>When Data Matrix Codes use multiple data blocks, they actually interleave the bytes of each of them.
+             That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This
+             method will separate the data into original blocks.</p>
+            
+             <param name="rawCodewords">bytes as read directly from the Data Matrix Code</param>
+             <param name="version">version of the Data Matrix Code</param>
+             <returns>DataBlocks containing original bytes, "de-interleaved" from representation in the</returns>
+                     Data Matrix Code
+             </summary>
+        </member>
+        <member name="T:ZXing.Common.EncodingOptions">
+            <summary>
+            Defines an container for encoder options
+            </summary>
+        </member>
+        <member name="M:ZXing.Common.EncodingOptions.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.Common.EncodingOptions"/> class.
+            </summary>
+        </member>
+        <member name="P:ZXing.Common.EncodingOptions.Hints">
+            <summary>
+            Gets the data container for all options
+            </summary>
+        </member>
+        <member name="P:ZXing.Common.EncodingOptions.Height">
+            <summary>
+            Specifies the height of the barcode image
+            </summary>
+        </member>
+        <member name="P:ZXing.Common.EncodingOptions.Width">
+            <summary>
+            Specifies the width of the barcode image
+            </summary>
+        </member>
+        <member name="P:ZXing.Common.EncodingOptions.PureBarcode">
+            <summary>
+            Don't put the content string into the output image.
+            </summary>
+        </member>
+        <member name="P:ZXing.Common.EncodingOptions.Margin">
+            <summary>
+            Specifies margin, in pixels, to use when generating the barcode. The meaning can vary
+            by format; for example it controls margin before and after the barcode horizontally for
+            most 1D formats.
+            </summary>
+        </member>
+        <member name="T:ZXing.Common.BitSource">
+            <summary> <p>This provides an easy abstraction to read bits at a time from a sequence of bytes, where the
+            number of bits read is not often a multiple of 8.</p>
+            
+            <p>This class is thread-safe but not reentrant. Unless the caller modifies the bytes array
+            it passed in, in which case all bets are off.</p>
+            
+            </summary>
+            <author>  Sean Owen
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+        </member>
+        <member name="M:ZXing.Common.BitSource.#ctor(System.Byte[])">
+            <param name="bytes">bytes from which this will read bits. Bits will be read from the first byte first.
+            Bits are read within a byte from most-significant to least-significant bit.
+            </param>
+        </member>
+        <member name="M:ZXing.Common.BitSource.readBits(System.Int32)">
+            <param name="numBits">number of bits to read
+            </param>
+            <returns> int representing the bits read. The bits will appear as the least-significant
+            bits of the int
+            </returns>
+            <exception cref="T:System.ArgumentException">if numBits isn't in [1,32] or more than is available</exception>
+        </member>
+        <member name="M:ZXing.Common.BitSource.available">
+            <returns> number of bits that can be read successfully
+            </returns>
+        </member>
+        <member name="P:ZXing.Common.BitSource.BitOffset">
+            <summary>
+            index of next bit in current byte which would be read by the next call to {@link #readBits(int)}.
+            </summary>
+        </member>
+        <member name="P:ZXing.Common.BitSource.ByteOffset">
+            <summary>
+            index of next byte in input byte array which would be read by the next call to {@link #readBits(int)}.
+            </summary>
+        </member>
+        <member name="T:ZXing.Client.Result.CalendarParsedResult">
+            <author>Sean Owen</author>
+        </member>
+        <member name="T:ZXing.Client.Result.ParsedResult">
+            <summary> <p>Abstract class representing the result of decoding a barcode, as more than
+            a String -- as some type of structured data. This might be a subclass which represents
+            a URL, or an e-mail address. {@link ResultParser#parseResult(Result)} will turn a raw
+            decoded string into the most appropriate type of structured representation.</p>
+            
+            <p>Thanks to Jeff Griffin for proposing rewrite of these classes that relies less
+            on exception-based mechanisms during parsing.</p>
+            </summary>
+            <author>Sean Owen</author>
+        </member>
+        <member name="M:ZXing.Client.Result.CalendarParsedResult.isStartAllDay">
+            <summary>
+            Determines whether [is start all day].
+            </summary>
+            <returns>if start time was specified as a whole day</returns>
+        </member>
+        <member name="M:ZXing.Client.Result.CalendarParsedResult.parseDate(System.String)">
+            <summary>
+            Parses a string as a date. RFC 2445 allows the start and end fields to be of type DATE (e.g. 20081021)
+            or DATE-TIME (e.g. 20081021T123000 for local time, or 20081021T123000Z for UTC).
+            </summary>
+            <param name="when">The string to parse</param>
+            <returns></returns>
+            <exception cref="T:System.ArgumentException">if not a date formatted string</exception>
+        </member>
+        <member name="P:ZXing.Client.Result.CalendarParsedResult.Start">
+            <summary>
+            Gets the start.
+            </summary>
+        </member>
+        <member name="P:ZXing.Client.Result.CalendarParsedResult.End">
+            <summary>
+            May return null if the event has no duration.
+            </summary>
+        </member>
+        <member name="P:ZXing.Client.Result.CalendarParsedResult.isEndAllDay">
+            <summary>
+            Gets a value indicating whether this instance is end all day.
+            </summary>
+            <value>true if end time was specified as a whole day</value>
+        </member>
+        <member name="T:ZXing.QrCode.Internal.QRCode">
+            <author>satorux@google.com (Satoru Takabayashi) - creator</author>
+            <author>dswitkin@google.com (Daniel Switkin) - ported from C++</author>
+        </member>
+        <member name="F:ZXing.QrCode.Internal.QRCode.NUM_MASK_PATTERNS">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.QRCode.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.QrCode.Internal.QRCode"/> class.
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.QRCode.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents this instance.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> that represents this instance.
+            </returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.QRCode.isValidMaskPattern(System.Int32)">
+            <summary>
+            Check if "mask_pattern" is valid.
+            </summary>
+            <param name="maskPattern">The mask pattern.</param>
+            <returns>
+              <c>true</c> if [is valid mask pattern] [the specified mask pattern]; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.QRCode.Mode">
+            <summary>
+            Gets or sets the mode.
+            </summary>
+            <value>
+            The mode.
+            </value>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.QRCode.ECLevel">
+            <summary>
+            Gets or sets the EC level.
+            </summary>
+            <value>
+            The EC level.
+            </value>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.QRCode.Version">
+            <summary>
+            Gets or sets the version.
+            </summary>
+            <value>
+            The version.
+            </value>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.QRCode.MaskPattern">
+            <summary>
+            Gets or sets the mask pattern.
+            </summary>
+            <value>
+            The mask pattern.
+            </value>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.QRCode.Matrix">
+            <summary>
+            Gets or sets the matrix.
+            </summary>
+            <value>
+            The matrix.
+            </value>
+        </member>
+        <member name="T:ZXing.QrCode.Internal.ByteMatrix">
+            <summary>
+            JAVAPORT: The original code was a 2D array of ints, but since it only ever gets assigned
+            0, 1 and 2 I'm going to use less memory and go with bytes.
+            </summary>
+            <author>dswitkin@google.com (Daniel Switkin)</author>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.ByteMatrix.#ctor(System.Int32,System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.QrCode.Internal.ByteMatrix"/> class.
+            </summary>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.ByteMatrix.set(System.Int32,System.Int32,System.Byte)">
+            <summary>
+            Sets the specified x.
+            </summary>
+            <param name="x">The x.</param>
+            <param name="y">The y.</param>
+            <param name="value">The value.</param>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.ByteMatrix.set(System.Int32,System.Int32,System.Boolean)">
+            <summary>
+            Sets the specified x.
+            </summary>
+            <param name="x">The x.</param>
+            <param name="y">The y.</param>
+            <param name="value">if set to <c>true</c> [value].</param>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.ByteMatrix.clear(System.Byte)">
+            <summary>
+            Clears the specified value.
+            </summary>
+            <param name="value">The value.</param>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.ByteMatrix.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents this instance.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> that represents this instance.
+            </returns>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.ByteMatrix.Height">
+            <summary>
+            Gets the height.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.ByteMatrix.Width">
+            <summary>
+            Gets the width.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.ByteMatrix.Item(System.Int32,System.Int32)">
+            <summary>
+            Gets or sets the <see cref="T:System.Int32"/> with the specified x.
+            </summary>
+        </member>
+        <member name="P:ZXing.QrCode.Internal.ByteMatrix.Array">
+            <summary>
+            an internal representation as bytes, in row-major order. array[y][x] represents point (x,y)
+            </summary>
+        </member>
+        <member name="T:ZXing.QrCode.Internal.DataBlock">
+            <summary> <p>Encapsulates a block of data within a QR Code. QR Codes may split their data into
+            multiple blocks, each of which is a unit of data and error-correction codewords. Each
+            is represented by an instance of this class.</p>
+            
+            </summary>
+            <author>  Sean Owen
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.DataBlock.getDataBlocks(System.Byte[],ZXing.QrCode.Internal.Version,ZXing.QrCode.Internal.ErrorCorrectionLevel)">
+            <summary> <p>When QR Codes use multiple data blocks, they are actually interleaved.
+            That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This
+            method will separate the data into original blocks.</p>
+            
+            </summary>
+            <param name="rawCodewords">bytes as read directly from the QR Code
+            </param>
+            <param name="version">version of the QR Code
+            </param>
+            <param name="ecLevel">error-correction level of the QR Code
+            </param>
+            <returns> {@link DataBlock}s containing original bytes, "de-interleaved" from representation in the
+            QR Code
+            </returns>
+        </member>
+        <member name="T:ZXing.PDF417.Internal.BarcodeRow">
+            <summary>
+            <author>Jacob Haynes</author>
+            </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.BarcodeRow.#ctor(System.Int32)">
+            <summary>
+            Creates a Barcode row of the width
+            </summary>
+            <param name="width">The width.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.BarcodeRow.set(System.Int32,System.Boolean)">
+             <summary>
+             Sets a specific location in the bar
+            
+             <param name="x">The location in the bar</param>
+             <param name="black">Black if true, white if false;</param>
+             </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.BarcodeRow.addBar(System.Boolean,System.Int32)">
+            <summary>
+            <param name="black">A boolean which is true if the bar black false if it is white</param>
+            <param name="width">How many spots wide the bar is.</param>
+            </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.BarcodeRow.getScaledRow(System.Int32)">
+             <summary>
+             This function scales the row
+            
+             <param name="scale">How much you want the image to be scaled, must be greater than or equal to 1.</param>
+             <returns>the scaled row</returns>
+             </summary>
+        </member>
+        <member name="P:ZXing.PDF417.Internal.BarcodeRow.Item(System.Int32)">
+             <summary>
+             Sets a specific location in the bar
+            
+             <param name="x">The location in the bar</param>
+             <param name="value">Black if true, white if false;</param>
+             </summary>
+        </member>
+        <member name="T:ZXing.PDF417.Internal.EC.ModulusPoly">
+            <summary>
+            <see cref="!:com.google.zxing.common.reedsolomon.GenericGFPoly"/>
+            </summary>
+            <author>Sean Owen</author>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.getCoefficient(System.Int32)">
+            <summary>
+            coefficient of x^degree term in this polynomial
+            </summary>
+            <param name="degree">The degree.</param>
+            <returns>coefficient of x^degree term in this polynomial</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.evaluateAt(System.Int32)">
+            <summary>
+            evaluation of this polynomial at a given point
+            </summary>
+            <param name="a">A.</param>
+            <returns>evaluation of this polynomial at a given point</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.add(ZXing.PDF417.Internal.EC.ModulusPoly)">
+            <summary>
+            Adds another Modulus
+            </summary>
+            <param name="other">Other.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.subtract(ZXing.PDF417.Internal.EC.ModulusPoly)">
+            <summary>
+            Subtract another Modulus
+            </summary>
+            <param name="other">Other.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.multiply(ZXing.PDF417.Internal.EC.ModulusPoly)">
+            <summary>
+            Multiply by another Modulus
+            </summary>
+            <param name="other">Other.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.getNegative">
+            <summary>
+            Returns a Negative version of this instance
+            </summary>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.multiply(System.Int32)">
+            <summary>
+            Multiply by a Scalar.
+            </summary>
+            <param name="scalar">Scalar.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.multiplyByMonomial(System.Int32,System.Int32)">
+            <summary>
+            Multiplies by a Monomial
+            </summary>
+            <returns>The by monomial.</returns>
+            <param name="degree">Degree.</param>
+            <param name="coefficient">Coefficient.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.divide(ZXing.PDF417.Internal.EC.ModulusPoly)">
+            <summary>
+            Divide by another modulus
+            </summary>
+            <param name="other">Other.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.EC.ModulusPoly.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:ZXing.PDF417.Internal.EC.ModulusPoly"/>.
+            </summary>
+            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:ZXing.PDF417.Internal.EC.ModulusPoly"/>.</returns>
+        </member>
+        <member name="P:ZXing.PDF417.Internal.EC.ModulusPoly.Coefficients">
+            <summary>
+            Gets the coefficients.
+            </summary>
+            <value>The coefficients.</value>
+        </member>
+        <member name="P:ZXing.PDF417.Internal.EC.ModulusPoly.Degree">
+            <summary>
+            degree of this polynomial
+            </summary>
+        </member>
+        <member name="P:ZXing.PDF417.Internal.EC.ModulusPoly.isZero">
+            <summary>
+            Gets a value indicating whether this instance is zero.
+            </summary>
+            <value>true if this polynomial is the monomial "0"
+            </value>
+        </member>
+        <member name="T:ZXing.PDF417.Internal.DetectionResult">
+            <summary>
+            
+            </summary>
+            <author>Guenther Grau</author>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.getDetectionResultColumns">
+            <summary>
+            Returns the DetectionResult Columns.  This does a fair bit of calculation, so call it sparingly.
+            </summary>
+            <returns>The detection result columns.</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.adjustIndicatorColumnRowNumbers(ZXing.PDF417.Internal.DetectionResultColumn)">
+            <summary>
+            Adjusts the indicator column row numbers.
+            </summary>
+            <param name="detectionResultColumn">Detection result column.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.adjustRowNumbers">
+            <summary>
+            return number of codewords which don't have a valid row number. Note that the count is not accurate as codewords .
+            will be counted several times. It just serves as an indicator to see when we can stop adjusting row numbers
+            </summary>
+            <returns>The row numbers.</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.adjustRowNumbersByRow">
+            <summary>
+            Adjusts the row numbers by row.
+            </summary>
+            <returns>The row numbers by row.</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.adjustRowNumbersFromBothRI">
+            <summary>
+            Adjusts the row numbers from both Row Indicators
+            </summary>
+            <returns> zero </returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.adjustRowNumbersFromRRI">
+            <summary>
+            Adjusts the row numbers from Right Row Indicator.
+            </summary>
+            <returns>The unadjusted row count.</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.adjustRowNumbersFromLRI">
+            <summary>
+            Adjusts the row numbers from Left Row Indicator.
+            </summary>
+            <returns> Unadjusted row Count.</returns>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.adjustRowNumberIfValid(System.Int32,System.Int32,ZXing.PDF417.Internal.Codeword)">
+            <summary>
+            Adjusts the row number if valid.
+            </summary>
+            <returns>The invalid rows</returns>
+            <param name="rowIndicatorRowNumber">Row indicator row number.</param>
+            <param name="invalidRowCounts">Invalid row counts.</param>
+            <param name="codeword">Codeword.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.adjustRowNumbers(System.Int32,System.Int32,ZXing.PDF417.Internal.Codeword[])">
+            <summary>
+            Adjusts the row numbers.
+            </summary>
+            <param name="barcodeColumn">Barcode column.</param>
+            <param name="codewordsRow">Codewords row.</param>
+            <param name="codewords">Codewords.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.adjustRowNumber(ZXing.PDF417.Internal.Codeword,ZXing.PDF417.Internal.Codeword)">
+            <summary>
+            Adjusts the row number.
+            </summary>
+            <returns><c>true</c>, if row number was adjusted, <c>false</c> otherwise.</returns>
+            <param name="codeword">Codeword.</param>
+            <param name="otherCodeword">Other codeword.</param>
+        </member>
+        <member name="M:ZXing.PDF417.Internal.DetectionResult.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:ZXing.PDF417.Internal.DetectionResult"/>.
+            </summary>
+            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:ZXing.PDF417.Internal.DetectionResult"/>.</returns>
+        </member>
+        <member name="T:ZXing.OneD.UPCEANExtension5Support">
+            @see UPCEANExtension2Support
+        </member>
+        <member name="M:ZXing.OneD.UPCEANExtension5Support.parseExtensionString(System.String)">
+            <summary>
+            Parses the extension string.
+            </summary>
+            <param name="raw">raw content of extension</param>
+            <returns>formatted interpretation of raw content as a {@link Map} mapping
+            one {@link ResultMetadataType} to appropriate value, or {@code null} if not known</returns>
+        </member>
+        <member name="T:ZXing.OneD.RSS.FinderPattern">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.RSS.FinderPattern.#ctor(System.Int32,System.Int32[],System.Int32,System.Int32,System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.OneD.RSS.FinderPattern"/> class.
+            </summary>
+            <param name="value">The value.</param>
+            <param name="startEnd">The start end.</param>
+            <param name="start">The start.</param>
+            <param name="end">The end.</param>
+            <param name="rowNumber">The row number.</param>
+        </member>
+        <member name="M:ZXing.OneD.RSS.FinderPattern.Equals(System.Object)">
+            <summary>
+            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
+            </summary>
+            <param name="o">The <see cref="T:System.Object"/> to compare with this instance.</param>
+            <returns>
+              <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ZXing.OneD.RSS.FinderPattern.GetHashCode">
+            <summary>
+            Returns a hash code for this instance.
+            </summary>
+            <returns>
+            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
+            </returns>
+        </member>
+        <member name="P:ZXing.OneD.RSS.FinderPattern.Value">
+            <summary>
+            Gets the value.
+            </summary>
+        </member>
+        <member name="P:ZXing.OneD.RSS.FinderPattern.StartEnd">
+            <summary>
+            Gets the start end.
+            </summary>
+        </member>
+        <member name="P:ZXing.OneD.RSS.FinderPattern.ResultPoints">
+            <summary>
+            Gets the result points.
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.RSS.Expanded.Decoders.DecodedNumeric">
+            <summary>
+            <author>Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)</author>
+            <author>Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.RSS.Expanded.Decoders.DecodedObject">
+            <summary>
+            <author>Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.RSS.Expanded.Decoders.CurrentParsingState">
+            <summary>
+            <author>Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.Code93Reader">
+            <summary>
+              <p>Decodes Code 93 barcodes.</p>
+            	<author>Sean Owen</author>
+            <see cref="T:ZXing.OneD.Code39Reader"/>
+            </summary>
+        </member>
+        <member name="F:ZXing.OneD.Code93Reader.CHARACTER_ENCODINGS">
+            <summary>
+            These represent the encodings of characters, as patterns of wide and narrow bars.
+            The 9 least-significant bits of each int correspond to the pattern of wide and narrow.
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.Code93Reader.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.OneD.Code93Reader"/> class.
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.Code93Reader.decodeRow(System.Int32,ZXing.Common.BitArray,System.Collections.Generic.IDictionary{ZXing.DecodeHintType,System.Object})">
+            <summary>
+              <p>Attempts to decode a one-dimensional barcode format given a single row of
+            an image.</p>
+            </summary>
+            <param name="rowNumber">row number from top of the row</param>
+            <param name="row">the black/white pixel data of the row</param>
+            <param name="hints">decode hints</param>
+            <returns><see cref="T:ZXing.Result"/>containing encoded string and start/end of barcode</returns>
+        </member>
+        <member name="T:ZXing.OneD.Code128Writer">
+            <summary>
+            This object renders a CODE128 code as a <see cref="T:ZXing.Common.BitMatrix"/>.
+            
+            <author>erik.barbara@gmail.com (Erik Barbara)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.Code128Reader">
+             <summary>
+             <p>Decodes Code 128 barcodes.</p>
+            
+             <author>Sean Owen</author>
+             </summary>
+        </member>
+        <member name="T:ZXing.OneD.Code128EncodingOptions">
+            <summary>
+            The class holds the available options for the QrCodeWriter
+            </summary>
+        </member>
+        <member name="P:ZXing.OneD.Code128EncodingOptions.ForceCodesetB">
+            <summary>
+            if true, don't switch to codeset C for numbers
+            </summary>
+        </member>
+        <member name="T:ZXing.Datamatrix.Internal.Version">
+             <summary>
+             The Version object encapsulates attributes about a particular
+             size Data Matrix Code.
+            
+             <author>bbrown@google.com (Brian Brown)</author>
+             </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.Version.getVersionForDimensions(System.Int32,System.Int32)">
+             <summary>
+             <p>Deduces version information from Data Matrix dimensions.</p>
+            
+             <param name="numRows">Number of rows in modules</param>
+             <param name="numColumns">Number of columns in modules</param>
+             <returns>Version for a Data Matrix Code of those dimensions</returns>
+             <exception cref="T:ZXing.FormatException">if dimensions do correspond to a valid Data Matrix size</exception>
+             </summary>
+        </member>
+        <member name="M:ZXing.Datamatrix.Internal.Version.buildVersions">
+            <summary>
+            See ISO 16022:2006 5.5.1 Table 7
+            </summary>
+        </member>
+        <member name="T:ZXing.Datamatrix.Internal.Version.ECBlocks">
+            <summary>
+            <p>Encapsulates a set of error-correction blocks in one symbol version. Most versions will
+            use blocks of differing sizes within one version, so, this encapsulates the parameters for
+            each set of blocks. It also holds the number of error-correction codewords per block since it
+            will be the same across all blocks within one version.</p>
+            </summary>
+        </member>
+        <member name="T:ZXing.Datamatrix.Internal.Version.ECB">
+            <summary>
+            <p>Encapsualtes the parameters for one error-correction block in one symbol version.
+            This includes the number of data codewords, and the number of times a block with these
+            parameters is used consecutively in the Data Matrix code version's format.</p>
+            </summary>
+        </member>
+        <member name="T:ZXing.Common.DecoderResult">
+            <summary>
+            Encapsulates the result of decoding a matrix of bits. This typically
+            applies to 2D barcode formats. For now it contains the raw bytes obtained,
+            as well as a String interpretation of those bytes, if applicable.
+            <author>Sean Owen</author>
+            </summary>
+        </member>
+        <member name="P:ZXing.Common.DecoderResult.Other">
+            <summary>
+            Miscellanseous data value for the various decoders
+            </summary>
+            <value>The other.</value>
+        </member>
+        <member name="T:ZXing.Client.Result.AddressBookAUResultParser">
+            <summary> Implements KDDI AU's address book format. See
+            <a href="http://www.au.kddi.com/ezfactory/tec/two_dimensions/index.html">
+            http://www.au.kddi.com/ezfactory/tec/two_dimensions/index.html</a>.
+            (Thanks to Yuzo for translating!)
+            
+            </summary>
+            <author>  Sean Owen
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+        </member>
+        <member name="T:ZXing.RGBLuminanceSource">
+            <summary>
+            Luminance source class which support different formats of images.
+            </summary>
+        </member>
+        <member name="T:ZXing.BaseLuminanceSource">
+            <summary>
+            The base class for luminance sources which supports 
+            cropping and rotating based upon the luminance values.
+            </summary>
+        </member>
+        <member name="F:ZXing.BaseLuminanceSource.luminances">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:ZXing.BaseLuminanceSource.#ctor(System.Int32,System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BaseLuminanceSource"/> class.
+            </summary>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+        </member>
+        <member name="M:ZXing.BaseLuminanceSource.#ctor(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BaseLuminanceSource"/> class.
+            </summary>
+            <param name="luminanceArray">The luminance array.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+        </member>
+        <member name="M:ZXing.BaseLuminanceSource.getRow(System.Int32,System.Byte[])">
+            <summary>
+            Fetches one row of luminance data from the underlying platform's bitmap. Values range from
+            0 (black) to 255 (white). It is preferable for implementations of this method
+            to only fetch this row rather than the whole image, since no 2D Readers may be installed and
+            getMatrix() may never be called.
+            </summary>
+            <param name="y">The row to fetch, 0 &lt;= y &lt; Height.</param>
+            <param name="row">An optional preallocated array. If null or too small, it will be ignored.
+            Always use the returned object, and ignore the .length of the array.</param>
+            <returns>
+            An array containing the luminance data.
+            </returns>
+        </member>
+        <member name="M:ZXing.BaseLuminanceSource.rotateCounterClockwise">
+            <summary>
+            Returns a new object with rotated image data by 90 degrees counterclockwise.
+            Only callable if {@link #isRotateSupported()} is true.
+            </summary>
+            <returns>
+            A rotated version of this object.
+            </returns>
+        </member>
+        <member name="M:ZXing.BaseLuminanceSource.rotateCounterClockwise45">
+            <summary>
+            TODO: not implemented yet
+            </summary>
+            <returns>
+            A rotated version of this object.
+            </returns>
+        </member>
+        <member name="M:ZXing.BaseLuminanceSource.crop(System.Int32,System.Int32,System.Int32,System.Int32)">
+            <summary>
+            Returns a new object with cropped image data. Implementations may keep a reference to the
+            original data rather than a copy. Only callable if CropSupported is true.
+            </summary>
+            <param name="left">The left coordinate, 0 &lt;= left &lt; Width.</param>
+            <param name="top">The top coordinate, 0 &lt;= top &lt;= Height.</param>
+            <param name="width">The width of the rectangle to crop.</param>
+            <param name="height">The height of the rectangle to crop.</param>
+            <returns>
+            A cropped version of this object.
+            </returns>
+        </member>
+        <member name="M:ZXing.BaseLuminanceSource.invert">
+            <summary>
+            Inverts the luminance values (newValue = 255 - oldValue)
+            </summary>
+        </member>
+        <member name="M:ZXing.BaseLuminanceSource.CreateLuminanceSource(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Should create a new luminance source with the right class type.
+            The method is used in methods crop and rotate.
+            </summary>
+            <param name="newLuminances">The new luminances.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <returns></returns>
+        </member>
+        <member name="P:ZXing.BaseLuminanceSource.RotateSupported">
+            <summary>
+            </summary>
+            <returns> Whether this subclass supports counter-clockwise rotation.</returns>
+        </member>
+        <member name="P:ZXing.BaseLuminanceSource.CropSupported">
+            <summary>
+            </summary>
+            <returns> Whether this subclass supports cropping.</returns>
+        </member>
+        <member name="P:ZXing.BaseLuminanceSource.InversionSupported">
+            <summary>
+            </summary>
+            <returns>Whether this subclass supports invertion.</returns>
+        </member>
+        <member name="M:ZXing.RGBLuminanceSource.#ctor(System.Int32,System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.RGBLuminanceSource"/> class.
+            </summary>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+        </member>
+        <member name="M:ZXing.RGBLuminanceSource.#ctor(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.RGBLuminanceSource"/> class.
+            It supports a byte array with 3 bytes per pixel (RGB24).
+            </summary>
+            <param name="rgbRawBytes">The RGB raw bytes.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+        </member>
+        <member name="M:ZXing.RGBLuminanceSource.#ctor(System.Byte[],System.Int32,System.Int32,System.Boolean)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.RGBLuminanceSource"/> class.
+            It supports a byte array with 1 byte per pixel (Gray8).
+            That means the whole array consists of the luminance values (grayscale).
+            </summary>
+            <param name="luminanceArray">The luminance array.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <param name="is8Bit">if set to <c>true</c> [is8 bit].</param>
+        </member>
+        <member name="M:ZXing.RGBLuminanceSource.#ctor(System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.RGBLuminanceSource"/> class.
+            It supports a byte array with 3 bytes per pixel (RGB24).
+            </summary>
+            <param name="rgbRawBytes">The RGB raw bytes.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <param name="bitmapFormat">The bitmap format.</param>
+        </member>
+        <member name="M:ZXing.RGBLuminanceSource.CreateLuminanceSource(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Should create a new luminance source with the right class type.
+            The method is used in methods crop and rotate.
+            </summary>
+            <param name="newLuminances">The new luminances.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ZXing.RGBLuminanceSource.BitmapFormat">
+            <summary>
+            enumeration of supported bitmap format which the RGBLuminanceSource can process
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.Unknown">
+            <summary>
+            format of the byte[] isn't known. RGBLuminanceSource tries to determine the best possible value
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.Gray8">
+            <summary>
+            grayscale array, the byte array is a luminance array with 1 byte per pixel
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.RGB24">
+            <summary>
+            3 bytes per pixel with the channels red, green and blue
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.RGB32">
+            <summary>
+            4 bytes per pixel with the channels red, green and blue
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.ARGB32">
+            <summary>
+            4 bytes per pixel with the channels alpha, red, green and blue
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.BGR24">
+            <summary>
+            3 bytes per pixel with the channels blue, green and red
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.BGR32">
+            <summary>
+            4 bytes per pixel with the channels blue, green and red
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.BGRA32">
+            <summary>
+            4 bytes per pixel with the channels blue, green, red and alpha
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.RGB565">
+            <summary>
+            2 bytes per pixel, 5 bit red, 6 bits green and 5 bits blue
+            </summary>
+        </member>
+        <member name="F:ZXing.RGBLuminanceSource.BitmapFormat.RGBA32">
+            <summary>
+            4 bytes per pixel with the channels red, green, blue and alpha
+            </summary>
+        </member>
+        <member name="T:ZXing.ResultMetadataType">
+            <summary>
+            Represents some type of metadata about the result of the decoding that the decoder
+            wishes to communicate back to the caller.
+            </summary>
+            <author>Sean Owen</author>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.OTHER">
+            <summary>
+            Unspecified, application-specific metadata. Maps to an unspecified {@link Object}.
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.ORIENTATION">
+            <summary>
+            Denotes the likely approximate orientation of the barcode in the image. This value
+            is given as degrees rotated clockwise from the normal, upright orientation.
+            For example a 1D barcode which was found by reading top-to-bottom would be
+            said to have orientation "90". This key maps to an {@link Integer} whose
+            value is in the range [0,360).
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.BYTE_SEGMENTS">
+            <summary>
+            <p>2D barcode formats typically encode text, but allow for a sort of 'byte mode'
+            which is sometimes used to encode binary data. While {@link Result} makes available
+            the complete raw bytes in the barcode for these formats, it does not offer the bytes
+            from the byte segments alone.</p>
+            <p>This maps to a {@link java.util.List} of byte arrays corresponding to the
+            raw bytes in the byte segments in the barcode, in order.</p>
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.ERROR_CORRECTION_LEVEL">
+            <summary>
+            Error correction level used, if applicable. The value type depends on the
+            format, but is typically a String.
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.ISSUE_NUMBER">
+            <summary>
+            For some periodicals, indicates the issue number as an {@link Integer}.
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.SUGGESTED_PRICE">
+            <summary>
+            For some products, indicates the suggested retail price in the barcode as a
+            formatted {@link String}.
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.POSSIBLE_COUNTRY">
+            <summary>
+            For some products, the possible country of manufacture as a {@link String} denoting the
+            ISO country code. Some map to multiple possible countries, like "US/CA".
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.UPC_EAN_EXTENSION">
+            <summary>
+            For some products, the extension text
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.STRUCTURED_APPEND_SEQUENCE">
+            <summary>
+            If the code format supports structured append and
+            the current scanned code is part of one then the
+            sequence number is given with it.
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.STRUCTURED_APPEND_PARITY">
+            <summary>
+            If the code format supports structured append and
+            the current scanned code is part of one then the
+            parity is given with it.
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.PDF417_EXTRA_METADATA">
+            <summary>
+            PDF417-specific metadata
+            </summary>
+        </member>
+        <member name="F:ZXing.ResultMetadataType.AZTEC_EXTRA_METADATA">
+            <summary>
+            Aztec-specific metadata
+            </summary>
+        </member>
+        <member name="T:ZXing.QrCode.Internal.AlignmentPatternFinder">
+            <summary> <p>This class attempts to find alignment patterns in a QR Code. Alignment patterns look like finder
+            patterns but are smaller and appear at regular intervals throughout the image.</p>
+            
+            <p>At the moment this only looks for the bottom-right alignment pattern.</p>
+            
+            <p>This is mostly a simplified copy of {@link FinderPatternFinder}. It is copied,
+            pasted and stripped down here for maximum performance but does unfortunately duplicate
+            some code.</p>
+            
+            <p>This class is thread-safe but not reentrant. Each thread must allocate its own object.</p>
+            
+            </summary>
+            <author>  Sean Owen
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.AlignmentPatternFinder.#ctor(ZXing.Common.BitMatrix,System.Int32,System.Int32,System.Int32,System.Int32,System.Single,ZXing.ResultPointCallback)">
+            <summary> <p>Creates a finder that will look in a portion of the whole image.</p>
+            
+            </summary>
+            <param name="image">image to search
+            </param>
+            <param name="startX">left column from which to start searching
+            </param>
+            <param name="startY">top row from which to start searching
+            </param>
+            <param name="width">width of region to search
+            </param>
+            <param name="height">height of region to search
+            </param>
+            <param name="moduleSize">estimated module size so far
+            </param>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.AlignmentPatternFinder.find">
+            <summary> <p>This method attempts to find the bottom-right alignment pattern in the image. It is a bit messy since
+            it's pretty performance-critical and so is written to be fast foremost.</p>
+            
+            </summary>
+            <returns> {@link AlignmentPattern} if found
+            </returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.AlignmentPatternFinder.centerFromEnd(System.Int32[],System.Int32)">
+            <summary> Given a count of black/white/black pixels just seen and an end position,
+            figures the location of the center of this black/white/black run.
+            </summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.AlignmentPatternFinder.foundPatternCross(System.Int32[])">
+            <param name="stateCount">count of black/white/black pixels just read
+            </param>
+            <returns> true iff the proportions of the counts is close enough to the 1/1/1 ratios
+            used by alignment patterns to be considered a match
+            </returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.AlignmentPatternFinder.crossCheckVertical(System.Int32,System.Int32,System.Int32,System.Int32)">
+            <summary>
+              <p>After a horizontal scan finds a potential alignment pattern, this method
+            "cross-checks" by scanning down vertically through the center of the possible
+            alignment pattern to see if the same proportion is detected.</p>
+            </summary>
+            <param name="startI">row where an alignment pattern was detected</param>
+            <param name="centerJ">center of the section that appears to cross an alignment pattern</param>
+            <param name="maxCount">maximum reasonable number of modules that should be
+            observed in any reading state, based on the results of the horizontal scan</param>
+            <param name="originalStateCountTotal">The original state count total.</param>
+            <returns>
+            vertical center of alignment pattern, or null if not found
+            </returns>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.AlignmentPatternFinder.handlePossibleCenter(System.Int32[],System.Int32,System.Int32)">
+            <summary> <p>This is called when a horizontal scan finds a possible alignment pattern. It will
+            cross check with a vertical scan, and if successful, will see if this pattern had been
+            found on a previous horizontal scan. If so, we consider it confirmed and conclude we have
+            found the alignment pattern.</p>
+            
+            </summary>
+            <param name="stateCount">reading state module counts from horizontal scan
+            </param>
+            <param name="i">row where alignment pattern may be found
+            </param>
+            <param name="j">end of possible alignment pattern in row
+            </param>
+            <returns> {@link AlignmentPattern} if we have found the same pattern twice, or null if not
+            </returns>
+        </member>
+        <member name="T:ZXing.QrCode.Internal.FormatInformation">
+            <summary> <p>Encapsulates a QR Code's format information, including the data mask used and
+            error correction level.</p>
+            
+            </summary>
+            <author>  Sean Owen
+            </author>
+            <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source 
+            </author>
+            <seealso cref="P:ZXing.QrCode.Internal.FormatInformation.DataMask">
+            </seealso>
+            <seealso cref="P:ZXing.QrCode.Internal.FormatInformation.ErrorCorrectionLevel">
+            </seealso>
+        </member>
+        <member name="F:ZXing.QrCode.Internal.FormatInformation.FORMAT_INFO_DECODE_LOOKUP">
+            <summary> See ISO 18004:2006, Annex C, Table C.1</summary>
+        </member>
+        <member name="F:ZXing.QrCode.Internal.FormatInformation.BITS_SET_IN_HALF_BYTE">
+            <summary> Offset i holds the number of 1 bits in the binary representation of i</summary>
+        </member>
+        <member name="M:ZXing.QrCode.Internal.FormatInformation.decodeFormatInformation(System.Int32,System.Int32)">
+            <summary>
+            Decodes the format information.
+            </summary>
+            <param name="maskedFormatInfo1">format info indicator, with mask still applied</param>
+            <param name="maskedFormatInfo2">The masked format info2.</param>
+            <returns>
+            information about the format it specifies, or <code>null</code>
+            if doesn't seem to match any known pattern
+            </returns>
+        </member>
+        <member name="T:ZXing.OneD.RSS.DataCharacter">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:ZXing.OneD.RSS.DataCharacter.#ctor(System.Int32,System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.OneD.RSS.DataCharacter"/> class.
+            </summary>
+            <param name="value">The value.</param>
+            <param name="checksumPortion">The checksum portion.</param>
+        </member>
+        <member name="M:ZXing.OneD.RSS.DataCharacter.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents this instance.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> that represents this instance.
+            </returns>
+        </member>
+        <member name="M:ZXing.OneD.RSS.DataCharacter.Equals(System.Object)">
+            <summary>
+            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
+            </summary>
+            <param name="o">The <see cref="T:System.Object"/> to compare with this instance.</param>
+            <returns>
+              <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ZXing.OneD.RSS.DataCharacter.GetHashCode">
+            <summary>
+            Returns a hash code for this instance.
+            </summary>
+            <returns>
+            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
+            </returns>
+        </member>
+        <member name="P:ZXing.OneD.RSS.DataCharacter.Value">
+            <summary>
+            Gets the value.
+            </summary>
+        </member>
+        <member name="P:ZXing.OneD.RSS.DataCharacter.ChecksumPortion">
+            <summary>
+            Gets the checksum portion.
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.RSS.Expanded.Decoders.DecodedInformation">
+            <summary>
+            <author>Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)</author>
+            <author>Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.OneD.RSS.Expanded.Decoders.AI013x0xDecoder">
+            <summary>
+            <author>Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.NotFoundException">
+            <summary>
+            Thrown when a barcode was not found in the image. It might have been
+            partially detected but could not be confirmed.
+            <author>Sean Owen</author>
+            </summary>
+        </member>
+        <member name="T:ZXing.ReaderException">
+            <summary>
+            The general exception class throw when something goes wrong during decoding of a barcode.
+            This includes, but is not limited to, failing checksums / error correction algorithms, being
+            unable to locate finder timing patterns, and so on.
+            </summary>
+            <author>Sean Owen</author>
+        </member>
+        <member name="M:ZXing.ReaderException.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.ReaderException"/> class.
+            </summary>
+        </member>
+        <member name="P:ZXing.ReaderException.Instance">
+            <summary>
+            Gets the instance.
+            </summary>
+        </member>
+        <member name="T:ZXing.Maxicode.Internal.Decoder">
+             <summary>
+             <p>The main class which implements MaxiCode decoding -- as opposed to locating and extracting
+             the MaxiCode from an image.</p>
+            
+             <author>Manuel Kasten</author>
+             </summary>
+        </member>
+        <member name="T:ZXing.Common.ReedSolomon.GenericGFPoly">
+            <summary>
+            <p>Represents a polynomial whose coefficients are elements of a GF.
+            Instances of this class are immutable.</p>
+            <p>Much credit is due to William Rucklidge since portions of this code are an indirect
+            port of his C++ Reed-Solomon implementation.</p>
+            </summary>
+            <author>Sean Owen</author>
+        </member>
+        <member name="M:ZXing.Common.ReedSolomon.GenericGFPoly.#ctor(ZXing.Common.ReedSolomon.GenericGF,System.Int32[])">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.Common.ReedSolomon.GenericGFPoly"/> class.
+            </summary>
+            <param name="field">the {@link GenericGF} instance representing the field to use
+            to perform computations</param>
+            <param name="coefficients">coefficients as ints representing elements of GF(size), arranged
+            from most significant (highest-power term) coefficient to least significant</param>
+            <exception cref="T:System.ArgumentException">if argument is null or empty,
+            or if leading coefficient is 0 and this is not a
+            constant polynomial (that is, it is not the monomial "0")</exception>
+        </member>
+        <member name="M:ZXing.Common.ReedSolomon.GenericGFPoly.getCoefficient(System.Int32)">
+            <summary>
+            coefficient of x^degree term in this polynomial
+            </summary>
+            <param name="degree">The degree.</param>
+            <returns>coefficient of x^degree term in this polynomial</returns>
+        </member>
+        <member name="M:ZXing.Common.ReedSolomon.GenericGFPoly.evaluateAt(System.Int32)">
+            <summary>
+            evaluation of this polynomial at a given point
+            </summary>
+            <param name="a">A.</param>
+            <returns>evaluation of this polynomial at a given point</returns>
+        </member>
+        <member name="P:ZXing.Common.ReedSolomon.GenericGFPoly.Degree">
+            <summary>
+            degree of this polynomial
+            </summary>
+        </member>
+        <member name="P:ZXing.Common.ReedSolomon.GenericGFPoly.isZero">
+            <summary>
+            Gets a value indicating whether this <see cref="T:ZXing.Common.ReedSolomon.GenericGFPoly"/> is zero.
+            </summary>
+            <value>true iff this polynomial is the monomial "0"</value>
+        </member>
+        <member name="T:ZXing.Client.Result.VINResultParser">
+            <summary>
+            Detects a result that is likely a vehicle identification number.
+            @author Sean Owen
+            </summary>
+        </member>
+        <member name="T:ZXing.BarcodeWriter">
+            <summary>
+            A smart class to encode some content to a barcode image
+            </summary>
+        </member>
+        <member name="T:ZXing.BarcodeWriterGeneric`1">
+            <summary>
+            A base class for specific barcode writers with specific formats of barcode images.
+            </summary>
+            <typeparam name="TOutput">The type of the output.</typeparam>
+        </member>
+        <member name="T:ZXing.IBarcodeWriterGeneric`1">
+            <summary>
+            Interface for a smart class to encode some content into a barcode
+            </summary>
+        </member>
+        <member name="M:ZXing.IBarcodeWriterGeneric`1.Encode(System.String)">
+            <summary>
+            Encodes the specified contents.
+            </summary>
+            <param name="contents">The contents.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.IBarcodeWriterGeneric`1.Write(System.String)">
+            <summary>
+            Creates a visual representation of the contents
+            </summary>
+            <param name="contents">The contents.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.IBarcodeWriterGeneric`1.Write(ZXing.Common.BitMatrix)">
+            <summary>
+            Returns a rendered instance of the barcode which is given by a BitMatrix.
+            </summary>
+            <param name="matrix">The matrix.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.BarcodeWriterGeneric`1.Encode(System.String)">
+            <summary>
+            Encodes the specified contents and returns a BitMatrix array.
+            That array has to be rendered manually or with a IBarcodeRenderer.
+            </summary>
+            <param name="contents">The contents.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.BarcodeWriterGeneric`1.Write(System.String)">
+            <summary>
+            Encodes the specified contents and returns a rendered instance of the barcode.
+            For rendering the instance of the property Renderer is used and has to be set before
+            calling that method.
+            </summary>
+            <param name="contents">The contents.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.BarcodeWriterGeneric`1.Write(ZXing.Common.BitMatrix)">
+            <summary>
+            Returns a rendered instance of the barcode which is given by a BitMatrix.
+            For rendering the instance of the property Renderer is used and has to be set before
+            calling that method.
+            </summary>
+            <param name="matrix">The matrix.</param>
+            <returns></returns>
+        </member>
+        <member name="P:ZXing.BarcodeWriterGeneric`1.Format">
+            <summary>
+            Gets or sets the barcode format.
+            The value is only suitable if the MultiFormatWriter is used.
+            </summary>
+        </member>
+        <member name="P:ZXing.BarcodeWriterGeneric`1.Options">
+            <summary>
+            Gets or sets the options container for the encoding and renderer process.
+            </summary>
+        </member>
+        <member name="P:ZXing.BarcodeWriterGeneric`1.Encoder">
+            <summary>
+            Gets or sets the writer which encodes the content to a BitMatrix.
+            If no value is set the MultiFormatWriter is used.
+            </summary>
+        </member>
+        <member name="P:ZXing.BarcodeWriterGeneric`1.Renderer">
+            <summary>
+            Gets or sets the renderer which should be used to render the encoded BitMatrix.
+            </summary>
+        </member>
+        <member name="T:ZXing.IBarcodeWriter">
+            <summary>
+            Interface for a smart class to encode some content into a barcode
+            </summary>
+        </member>
+        <member name="M:ZXing.IBarcodeWriter.Encode(System.String)">
+            <summary>
+            Encodes the specified contents.
+            </summary>
+            <param name="contents">The contents.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.IBarcodeWriter.Write(System.String)">
+            <summary>
+            Creates a visual representation of the contents
+            </summary>
+        </member>
+        <member name="M:ZXing.IBarcodeWriter.Write(ZXing.Common.BitMatrix)">
+            <summary>
+            Returns a rendered instance of the barcode which is given by a BitMatrix.
+            </summary>
+        </member>
+        <member name="M:ZXing.BarcodeWriter.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BarcodeWriter"/> class.
+            </summary>
+        </member>
+        <member name="T:ZXing.BarcodeWriterSvg">
+            <summary>
+            A smart class to encode some content to a svg barcode image
+            </summary>
+        </member>
+        <member name="M:ZXing.BarcodeWriterSvg.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BarcodeWriter"/> class.
+            </summary>
+        </member>
+        <member name="T:ZXing.BarcodeReader">
+            <summary>
+            A smart class to decode the barcode inside a bitmap object
+            </summary>
+        </member>
+        <member name="T:ZXing.BarcodeReaderGeneric`1">
+            <summary>
+            A smart class to decode the barcode inside a bitmap object
+            </summary>
+        </member>
+        <member name="T:ZXing.IMultipleBarcodeReaderGeneric`1">
+            <summary>
+            Interface for a smart class to decode multiple barcodes inside a bitmap object
+            </summary>
+        </member>
+        <member name="M:ZXing.IMultipleBarcodeReaderGeneric`1.DecodeMultiple(System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat)">
+            <summary>
+            Decodes the specified barcode bitmap which is given by a generic byte array with the order RGB24.
+            </summary>
+            <param name="rawRGB">The barcode bitmap.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <param name="format">The format.</param>
+            <returns>
+            the result data or null
+            </returns>
+        </member>
+        <member name="M:ZXing.IMultipleBarcodeReaderGeneric`1.DecodeMultiple(ZXing.LuminanceSource)">
+            <summary>
+            Tries to decode barcodes within an image which is given by a luminance source.
+            That method gives a chance to prepare a luminance source completely before calling
+            the time consuming decoding method. On the other hand there is a chance to create
+            a luminance source which is independent from external resources (like Bitmap objects)
+            and the decoding call can be made in a background thread.
+            </summary>
+            <param name="luminanceSource">The luminance source.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.IMultipleBarcodeReaderGeneric`1.DecodeMultiple(`0)">
+            <summary>
+            Decodes the specified barcode bitmap.
+            </summary>
+            <param name="barcodeBitmap">The barcode bitmap.</param>
+            <returns>the result data or null</returns>
+        </member>
+        <member name="E:ZXing.IMultipleBarcodeReaderGeneric`1.ResultPointFound">
+            <summary>
+            event is executed when a result point was found
+            </summary>
+        </member>
+        <member name="E:ZXing.IMultipleBarcodeReaderGeneric`1.ResultFound">
+            <summary>
+            event is executed when a result was found via decode
+            </summary>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReaderGeneric`1.TryHarder">
+            <summary>
+            Gets or sets a flag which cause a deeper look into the bitmap
+            </summary>
+            <value>
+              <c>true</c> if [try harder]; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReaderGeneric`1.PureBarcode">
+            <summary>
+            Image is a pure monochrome image of a barcode. Doesn't matter what it maps to;
+            use {@link Boolean#TRUE}.
+            </summary>
+            <value>
+              <c>true</c> if monochrome image of a barcode; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReaderGeneric`1.CharacterSet">
+            <summary>
+            Specifies what character encoding to use when decoding, where applicable (type String)
+            </summary>
+            <value>
+            The character set.
+            </value>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReaderGeneric`1.PossibleFormats">
+            <summary>
+            Image is known to be of one of a few possible formats.
+            Maps to a {@link java.util.List} of {@link BarcodeFormat}s.
+            </summary>
+            <value>
+            The possible formats.
+            </value>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReaderGeneric`1.Options">
+            <summary>
+            Specifies some options which influence the decoding process
+            </summary>
+        </member>
+        <member name="M:ZXing.BarcodeReaderGeneric`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BarcodeReaderGeneric`1"/> class.
+            </summary>
+        </member>
+        <member name="M:ZXing.BarcodeReaderGeneric`1.#ctor(ZXing.Reader,ZXing.Func{`0,ZXing.LuminanceSource},ZXing.Func{ZXing.LuminanceSource,ZXing.Binarizer})">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BarcodeReaderGeneric`1"/> class.
+            </summary>
+            <param name="reader">Sets the reader which should be used to find and decode the barcode.
+            If null then MultiFormatReader is used</param>
+            <param name="createLuminanceSource">Sets the function to create a luminance source object for a bitmap.
+            If null, an exception is thrown when Decode is called</param>
+            <param name="createBinarizer">Sets the function to create a binarizer object for a luminance source.
+            If null then HybridBinarizer is used</param>
+        </member>
+        <member name="M:ZXing.BarcodeReaderGeneric`1.#ctor(ZXing.Reader,ZXing.Func{`0,ZXing.LuminanceSource},ZXing.Func{ZXing.LuminanceSource,ZXing.Binarizer},ZXing.Func{System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat,ZXing.LuminanceSource})">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BarcodeReaderGeneric`1"/> class.
+            </summary>
+            <param name="reader">Sets the reader which should be used to find and decode the barcode.
+            If null then MultiFormatReader is used</param>
+            <param name="createLuminanceSource">Sets the function to create a luminance source object for a bitmap.
+            If null, an exception is thrown when Decode is called</param>
+            <param name="createBinarizer">Sets the function to create a binarizer object for a luminance source.
+            If null then HybridBinarizer is used</param>
+            <param name="createRGBLuminanceSource">Sets the function to create a luminance source object for a rgb array.
+            If null the RGBLuminanceSource is used. The handler is only called when Decode with a byte[] array is called.</param>
+        </member>
+        <member name="M:ZXing.BarcodeReaderGeneric`1.Decode(`0)">
+            <summary>
+            Decodes the specified barcode bitmap.
+            </summary>
+            <param name="barcodeBitmap">The barcode bitmap.</param>
+            <returns>the result data or null</returns>
+        </member>
+        <member name="M:ZXing.BarcodeReaderGeneric`1.Decode(ZXing.LuminanceSource)">
+            <summary>
+            Tries to decode a barcode within an image which is given by a luminance source.
+            That method gives a chance to prepare a luminance source completely before calling
+            the time consuming decoding method. On the other hand there is a chance to create
+            a luminance source which is independent from external resources (like Bitmap objects)
+            and the decoding call can be made in a background thread.
+            </summary>
+            <param name="luminanceSource">The luminance source.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.BarcodeReaderGeneric`1.DecodeMultiple(`0)">
+            <summary>
+            Decodes the specified barcode bitmap.
+            </summary>
+            <param name="barcodeBitmap">The barcode bitmap.</param>
+            <returns>the result data or null</returns>
+        </member>
+        <member name="M:ZXing.BarcodeReaderGeneric`1.DecodeMultiple(ZXing.LuminanceSource)">
+            <summary>
+            Tries to decode barcodes within an image which is given by a luminance source.
+            That method gives a chance to prepare a luminance source completely before calling
+            the time consuming decoding method. On the other hand there is a chance to create
+            a luminance source which is independent from external resources (like Bitmap objects)
+            and the decoding call can be made in a background thread.
+            </summary>
+            <param name="luminanceSource">The luminance source.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.BarcodeReaderGeneric`1.Decode(System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat)">
+            <summary>
+            Decodes the specified barcode bitmap.
+            </summary>
+            <param name="rawRGB">The image as byte[] array.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <param name="format">The format.</param>
+            <returns>
+            the result data or null
+            </returns>
+        </member>
+        <member name="M:ZXing.BarcodeReaderGeneric`1.DecodeMultiple(System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat)">
+            <summary>
+            Decodes the specified barcode bitmap.
+            </summary>
+            <param name="rawRGB">The image as byte[] array.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <param name="format">The format.</param>
+            <returns>
+            the result data or null
+            </returns>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.Options">
+            <summary>
+            Gets or sets the options.
+            </summary>
+            <value>
+            The options.
+            </value>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.Reader">
+            <summary>
+            Gets the reader which should be used to find and decode the barcode.
+            </summary>
+            <value>
+            The reader.
+            </value>
+        </member>
+        <member name="E:ZXing.BarcodeReaderGeneric`1.ResultPointFound">
+            <summary>
+            Gets or sets a method which is called if an important point is found
+            </summary>
+            <value>
+            The result point callback.
+            </value>
+        </member>
+        <member name="E:ZXing.BarcodeReaderGeneric`1.ResultFound">
+            <summary>
+            event is executed if a result was found via decode
+            </summary>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.TryHarder">
+            <summary>
+            Gets or sets a flag which cause a deeper look into the bitmap
+            </summary>
+            <value>
+              <c>true</c> if [try harder]; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.PureBarcode">
+            <summary>
+            Image is a pure monochrome image of a barcode.
+            </summary>
+            <value>
+              <c>true</c> if monochrome image of a barcode; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.CharacterSet">
+            <summary>
+            Specifies what character encoding to use when decoding, where applicable (type String)
+            </summary>
+            <value>
+            The character set.
+            </value>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.PossibleFormats">
+            <summary>
+            Image is known to be of one of a few possible formats.
+            Maps to a {@link java.util.List} of {@link BarcodeFormat}s.
+            </summary>
+            <value>
+            The possible formats.
+            </value>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.AutoRotate">
+            <summary>
+            Gets or sets a value indicating whether the image should be automatically rotated.
+            Rotation is supported for 90, 180 and 270 degrees
+            </summary>
+            <value>
+              <c>true</c> if image should be rotated; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.TryInverted">
+            <summary>
+            Gets or sets a value indicating whether the image should be automatically inverted
+            if no result is found in the original image.
+            ATTENTION: Please be carefully because it slows down the decoding process if it is used
+            </summary>
+            <value>
+              <c>true</c> if image should be inverted; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.CreateLuminanceSource">
+            <summary>
+            Optional: Gets or sets the function to create a luminance source object for a bitmap.
+            If null a platform specific default LuminanceSource is used
+            </summary>
+            <value>
+            The function to create a luminance source object.
+            </value>
+        </member>
+        <member name="P:ZXing.BarcodeReaderGeneric`1.CreateBinarizer">
+            <summary>
+            Optional: Gets or sets the function to create a binarizer object for a luminance source.
+            If null then HybridBinarizer is used
+            </summary>
+            <value>
+            The function to create a binarizer object.
+            </value>
+        </member>
+        <member name="T:ZXing.IBarcodeReader">
+            <summary>
+            Interface for a smart class to decode the barcode inside a bitmap object
+            </summary>
+        </member>
+        <member name="M:ZXing.IBarcodeReader.Decode(System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat)">
+            <summary>
+            Decodes the specified barcode bitmap which is given by a generic byte array with the order RGB24.
+            </summary>
+            <param name="rawRGB">The image as RGB24 array.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <param name="format">The format.</param>
+            <returns>
+            the result data or null
+            </returns>
+        </member>
+        <member name="M:ZXing.IBarcodeReader.Decode(ZXing.LuminanceSource)">
+            <summary>
+            Tries to decode a barcode within an image which is given by a luminance source.
+            That method gives a chance to prepare a luminance source completely before calling
+            the time consuming decoding method. On the other hand there is a chance to create
+            a luminance source which is independent from external resources (like Bitmap objects)
+            and the decoding call can be made in a background thread.
+            </summary>
+            <param name="luminanceSource">The luminance source.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.IBarcodeReader.Decode(System.Drawing.Bitmap)">
+            <summary>
+            Decodes the specified barcode bitmap.
+            </summary>
+            <param name="barcodeBitmap">The barcode bitmap.</param>
+            <returns>the result data or null</returns>
+        </member>
+        <member name="E:ZXing.IBarcodeReader.ResultPointFound">
+            <summary>
+            event is executed when a result point was found
+            </summary>
+        </member>
+        <member name="E:ZXing.IBarcodeReader.ResultFound">
+            <summary>
+            event is executed when a result was found via decode
+            </summary>
+        </member>
+        <member name="P:ZXing.IBarcodeReader.TryHarder">
+            <summary>
+            Gets or sets a flag which cause a deeper look into the bitmap
+            </summary>
+            <value>
+              <c>true</c> if [try harder]; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.IBarcodeReader.PureBarcode">
+            <summary>
+            Image is a pure monochrome image of a barcode.
+            </summary>
+            <value>
+              <c>true</c> if monochrome image of a barcode; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.IBarcodeReader.CharacterSet">
+            <summary>
+            Specifies what character encoding to use when decoding, where applicable (type String)
+            </summary>
+            <value>
+            The character set.
+            </value>
+        </member>
+        <member name="P:ZXing.IBarcodeReader.PossibleFormats">
+            <summary>
+            Image is known to be of one of a few possible formats.
+            Maps to a {@link java.util.List} of {@link BarcodeFormat}s.
+            </summary>
+            <value>
+            The possible formats.
+            </value>
+        </member>
+        <member name="P:ZXing.IBarcodeReader.Options">
+            <summary>
+            Specifies some options which influence the decoding process
+            </summary>
+        </member>
+        <member name="T:ZXing.IMultipleBarcodeReader">
+            <summary>
+            Interface for a smart class to decode multiple barcodes inside a bitmap object
+            </summary>
+        </member>
+        <member name="M:ZXing.IMultipleBarcodeReader.DecodeMultiple(System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat)">
+            <summary>
+            Decodes the specified barcode bitmap which is given by a generic byte array with the order RGB24.
+            </summary>
+            <param name="rawRGB">The image as RGB24 array.</param>
+            <param name="width">The width.</param>
+            <param name="height">The height.</param>
+            <param name="format">The format.</param>
+            <returns>
+            the result data or null
+            </returns>
+        </member>
+        <member name="M:ZXing.IMultipleBarcodeReader.DecodeMultiple(ZXing.LuminanceSource)">
+            <summary>
+            Tries to decode barcodes within an image which is given by a luminance source.
+            That method gives a chance to prepare a luminance source completely before calling
+            the time consuming decoding method. On the other hand there is a chance to create
+            a luminance source which is independent from external resources (like Bitmap objects)
+            and the decoding call can be made in a background thread.
+            </summary>
+            <param name="luminanceSource">The luminance source.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ZXing.IMultipleBarcodeReader.DecodeMultiple(System.Drawing.Bitmap)">
+            <summary>
+            Decodes the specified barcode bitmap.
+            </summary>
+            <param name="barcodeBitmap">The barcode bitmap.</param>
+            <returns>the result data or null</returns>
+        </member>
+        <member name="E:ZXing.IMultipleBarcodeReader.ResultPointFound">
+            <summary>
+            event is executed when a result point was found
+            </summary>
+        </member>
+        <member name="E:ZXing.IMultipleBarcodeReader.ResultFound">
+            <summary>
+            event is executed when a result was found via decode
+            </summary>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReader.TryHarder">
+            <summary>
+            Gets or sets a flag which cause a deeper look into the bitmap
+            </summary>
+            <value>
+              <c>true</c> if [try harder]; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReader.PureBarcode">
+            <summary>
+            Image is a pure monochrome image of a barcode. Doesn't matter what it maps to;
+            use {@link Boolean#TRUE}.
+            </summary>
+            <value>
+              <c>true</c> if monochrome image of a barcode; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReader.CharacterSet">
+            <summary>
+            Specifies what character encoding to use when decoding, where applicable (type String)
+            </summary>
+            <value>
+            The character set.
+            </value>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReader.PossibleFormats">
+            <summary>
+            Image is known to be of one of a few possible formats.
+            Maps to a {@link java.util.List} of {@link BarcodeFormat}s.
+            </summary>
+            <value>
+            The possible formats.
+            </value>
+        </member>
+        <member name="P:ZXing.IMultipleBarcodeReader.Options">
+            <summary>
+            Specifies some options which influence the decoding process
+            </summary>
+        </member>
+        <member name="M:ZXing.BarcodeReader.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BarcodeReader"/> class.
+            </summary>
+        </member>
+        <member name="M:ZXing.BarcodeReader.#ctor(ZXing.Reader,ZXing.Func{System.Drawing.Bitmap,ZXing.LuminanceSource},ZXing.Func{ZXing.LuminanceSource,ZXing.Binarizer})">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BarcodeReader"/> class.
+            </summary>
+            <param name="reader">Sets the reader which should be used to find and decode the barcode.
+            If null then MultiFormatReader is used</param>
+            <param name="createLuminanceSource">Sets the function to create a luminance source object for a bitmap.
+            If null, an exception is thrown when Decode is called</param>
+            <param name="createBinarizer">Sets the function to create a binarizer object for a luminance source.
+            If null then HybridBinarizer is used</param>
+        </member>
+        <member name="M:ZXing.BarcodeReader.#ctor(ZXing.Reader,ZXing.Func{System.Drawing.Bitmap,ZXing.LuminanceSource},ZXing.Func{ZXing.LuminanceSource,ZXing.Binarizer},ZXing.Func{System.Byte[],System.Int32,System.Int32,ZXing.RGBLuminanceSource.BitmapFormat,ZXing.LuminanceSource})">
+            <summary>
+            Initializes a new instance of the <see cref="T:ZXing.BarcodeReader"/> class.
+            </summary>
+            <param name="reader">Sets the reader which should be used to find and decode the barcode.
+            If null then MultiFormatReader is used</param>
+            <param name="createLuminanceSource">Sets the function to create a luminance source object for a bitmap.
+            If null, an exception is thrown when Decode is called</param>
+            <param name="createBinarizer">Sets the function to create a binarizer object for a luminance source.
+            If null then HybridBinarizer is used</param>
+        </member>
+        <member name="T:ZXing.Aztec.Internal.State">
+            <summary>
+            State represents all information about a sequence necessary to generate the current output.
+            Note that a state is immutable.
+            </summary>
+        </member>
+        <member name="M:ZXing.Aztec.Internal.State.latchAndAppend(System.Int32,System.Int32)">
+            <summary>
+            Create a new state representing this state with a latch to a (not
+            necessary different) mode, and then a code.
+            </summary>
+        </member>
+        <member name="M:ZXing.Aztec.Internal.State.shiftAndAppend(System.Int32,System.Int32)">
+            <summary>
+            Create a new state representing this state, with a temporary shift
+            to a different mode to output a single value.
+            </summary>
+        </member>
+        <member name="M:ZXing.Aztec.Internal.Stat