diff --git a/API_NetFramework/bin/Database.dll b/API_NetFramework/bin/Database.dll
index c33079f1..38908311 100644
Binary files a/API_NetFramework/bin/Database.dll and b/API_NetFramework/bin/Database.dll differ
diff --git a/API_NetFramework/bin/Database.pdb b/API_NetFramework/bin/Database.pdb
index ad0c5226..b1f3a73e 100644
Binary files a/API_NetFramework/bin/Database.pdb and b/API_NetFramework/bin/Database.pdb differ
diff --git a/API_NetFramework/bin/Helper.dll b/API_NetFramework/bin/Helper.dll
index 821177c5..26b96769 100644
Binary files a/API_NetFramework/bin/Helper.dll and b/API_NetFramework/bin/Helper.dll differ
diff --git a/API_NetFramework/bin/Helper.pdb b/API_NetFramework/bin/Helper.pdb
index 3ad377e2..c67ed204 100644
Binary files a/API_NetFramework/bin/Helper.pdb and b/API_NetFramework/bin/Helper.pdb differ
diff --git a/API_NetFramework/bin/Model.dll b/API_NetFramework/bin/Model.dll
index 4b694900..10381a11 100644
Binary files a/API_NetFramework/bin/Model.dll and b/API_NetFramework/bin/Model.dll differ
diff --git a/API_NetFramework/bin/Model.pdb b/API_NetFramework/bin/Model.pdb
index df130a02..16123dcf 100644
Binary files a/API_NetFramework/bin/Model.pdb and b/API_NetFramework/bin/Model.pdb differ
diff --git a/API_NetFramework/bin/OnDoc_NetFramework.dll b/API_NetFramework/bin/OnDoc_NetFramework.dll
index 773308fe..1a78d077 100644
Binary files a/API_NetFramework/bin/OnDoc_NetFramework.dll and b/API_NetFramework/bin/OnDoc_NetFramework.dll differ
diff --git a/API_NetFramework/bin/OnDoc_NetFramework.pdb b/API_NetFramework/bin/OnDoc_NetFramework.pdb
index d761d007..70e4afd6 100644
Binary files a/API_NetFramework/bin/OnDoc_NetFramework.pdb and b/API_NetFramework/bin/OnDoc_NetFramework.pdb differ
diff --git a/API_NetFramework/obj/Debug/API_NetFramework.csproj.AssemblyReference.cache b/API_NetFramework/obj/Debug/API_NetFramework.csproj.AssemblyReference.cache
index 37fbb93b..2a8f14ff 100644
Binary files a/API_NetFramework/obj/Debug/API_NetFramework.csproj.AssemblyReference.cache and b/API_NetFramework/obj/Debug/API_NetFramework.csproj.AssemblyReference.cache differ
diff --git a/API_NetFramework/obj/Debug/OnDoc_NetFramework.dll b/API_NetFramework/obj/Debug/OnDoc_NetFramework.dll
index 773308fe..1a78d077 100644
Binary files a/API_NetFramework/obj/Debug/OnDoc_NetFramework.dll and b/API_NetFramework/obj/Debug/OnDoc_NetFramework.dll differ
diff --git a/API_NetFramework/obj/Debug/OnDoc_NetFramework.pdb b/API_NetFramework/obj/Debug/OnDoc_NetFramework.pdb
index d761d007..70e4afd6 100644
Binary files a/API_NetFramework/obj/Debug/OnDoc_NetFramework.pdb and b/API_NetFramework/obj/Debug/OnDoc_NetFramework.pdb differ
diff --git a/BarcodeLib/bin/Debug/Database.dll b/BarcodeLib/bin/Debug/Database.dll
index c33079f1..38908311 100644
Binary files a/BarcodeLib/bin/Debug/Database.dll and b/BarcodeLib/bin/Debug/Database.dll differ
diff --git a/BarcodeLib/bin/Debug/Database.pdb b/BarcodeLib/bin/Debug/Database.pdb
index ad0c5226..b1f3a73e 100644
Binary files a/BarcodeLib/bin/Debug/Database.pdb and b/BarcodeLib/bin/Debug/Database.pdb differ
diff --git a/BarcodeLib/bin/Debug/Helper.dll b/BarcodeLib/bin/Debug/Helper.dll
index 821177c5..26b96769 100644
Binary files a/BarcodeLib/bin/Debug/Helper.dll and b/BarcodeLib/bin/Debug/Helper.dll differ
diff --git a/BarcodeLib/bin/Debug/Helper.pdb b/BarcodeLib/bin/Debug/Helper.pdb
index 3ad377e2..c67ed204 100644
Binary files a/BarcodeLib/bin/Debug/Helper.pdb and b/BarcodeLib/bin/Debug/Helper.pdb differ
diff --git a/BarcodeLib/bin/Debug/Model.dll b/BarcodeLib/bin/Debug/Model.dll
index 4b694900..10381a11 100644
Binary files a/BarcodeLib/bin/Debug/Model.dll and b/BarcodeLib/bin/Debug/Model.dll differ
diff --git a/BarcodeLib/bin/Debug/Model.pdb b/BarcodeLib/bin/Debug/Model.pdb
index df130a02..16123dcf 100644
Binary files a/BarcodeLib/bin/Debug/Model.pdb and b/BarcodeLib/bin/Debug/Model.pdb differ
diff --git a/BarcodeLib/obj/Debug/BarcodeLib.csproj.AssemblyReference.cache b/BarcodeLib/obj/Debug/BarcodeLib.csproj.AssemblyReference.cache
index 31591c0e..8d442957 100644
Binary files a/BarcodeLib/obj/Debug/BarcodeLib.csproj.AssemblyReference.cache and b/BarcodeLib/obj/Debug/BarcodeLib.csproj.AssemblyReference.cache differ
diff --git a/Client/Client.csproj b/Client/Client.csproj
index 9c053bc4..a59617b4 100644
--- a/Client/Client.csproj
+++ b/Client/Client.csproj
@@ -208,6 +208,12 @@
frmToApproval.cs
+
+ Form
+
+
+ SerienbriefBearbeitung.cs
+
Form
@@ -384,6 +390,9 @@
frmToApproval.cs
+
+ SerienbriefBearbeitung.cs
+
Serienbrief_Sheetselect.cs
diff --git a/Client/DocMgmt/Serienbrief.Designer.cs b/Client/DocMgmt/Serienbrief.Designer.cs
index ca9fb351..5609fe34 100644
--- a/Client/DocMgmt/Serienbrief.Designer.cs
+++ b/Client/DocMgmt/Serienbrief.Designer.cs
@@ -58,7 +58,6 @@
this.lblVerantwortlich = new System.Windows.Forms.Label();
this.lblPostzustellung = new System.Windows.Forms.Label();
this.lblBezeichnung = new System.Windows.Forms.Label();
- this.txtbezeichnung = new System.Windows.Forms.TextBox();
this.GrpEmpfaenger = new System.Windows.Forms.GroupBox();
this.sfDataGridEmpfaenger = new Syncfusion.WinForms.DataGrid.SfDataGrid();
this.treeViewAdv1 = new Syncfusion.Windows.Forms.Tools.TreeViewAdv();
@@ -75,6 +74,16 @@
this.ribbonPanel4 = new System.Windows.Forms.RibbonPanel();
this.RibbonButtonEditWord = new System.Windows.Forms.RibbonButton();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+ this.ribbonPanel5 = new System.Windows.Forms.RibbonPanel();
+ this.ribbonbuttonsave = new System.Windows.Forms.RibbonButton();
+ this.ribbonPanel6 = new System.Windows.Forms.RibbonPanel();
+ this.txtbezeichnung = new System.Windows.Forms.TextBox();
+ this.pnlLoad = new System.Windows.Forms.Panel();
+ this.btnsbloadok = new System.Windows.Forms.Button();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.label1 = new System.Windows.Forms.Label();
+ this.btnsbloadcancel = new System.Windows.Forms.Button();
+ this.sfdatagridsbload = new Syncfusion.WinForms.DataGrid.SfDataGrid();
this.GrpDokumentInhalt.SuspendLayout();
this.groupBox8.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.cbboxteam)).BeginInit();
@@ -90,6 +99,9 @@
((System.ComponentModel.ISupportInitialize)(this.sfDataGridEmpfaenger)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.treeViewAdv1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.GridEmpfänger)).BeginInit();
+ this.pnlLoad.SuspendLayout();
+ this.panel1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.sfdatagridsbload)).BeginInit();
this.SuspendLayout();
//
// GrpDokumentInhalt
@@ -102,7 +114,7 @@
this.GrpDokumentInhalt.Enabled = false;
this.GrpDokumentInhalt.Location = new System.Drawing.Point(2, 101);
this.GrpDokumentInhalt.Name = "GrpDokumentInhalt";
- this.GrpDokumentInhalt.Size = new System.Drawing.Size(1106, 254);
+ this.GrpDokumentInhalt.Size = new System.Drawing.Size(1255, 254);
this.GrpDokumentInhalt.TabIndex = 1;
this.GrpDokumentInhalt.TabStop = false;
this.GrpDokumentInhalt.Text = "Dokument-Inahalt";
@@ -358,13 +370,6 @@
this.lblBezeichnung.TabIndex = 8;
this.lblBezeichnung.Text = "Bezeichnung";
//
- // txtbezeichnung
- //
- this.txtbezeichnung.Location = new System.Drawing.Point(120, 20);
- this.txtbezeichnung.Name = "txtbezeichnung";
- this.txtbezeichnung.Size = new System.Drawing.Size(354, 20);
- this.txtbezeichnung.TabIndex = 9;
- //
// GrpEmpfaenger
//
this.GrpEmpfaenger.Controls.Add(this.sfDataGridEmpfaenger);
@@ -373,7 +378,7 @@
this.GrpEmpfaenger.Dock = System.Windows.Forms.DockStyle.Fill;
this.GrpEmpfaenger.Location = new System.Drawing.Point(2, 355);
this.GrpEmpfaenger.Name = "GrpEmpfaenger";
- this.GrpEmpfaenger.Size = new System.Drawing.Size(1106, 598);
+ this.GrpEmpfaenger.Size = new System.Drawing.Size(1255, 598);
this.GrpEmpfaenger.TabIndex = 2;
this.GrpEmpfaenger.TabStop = false;
this.GrpEmpfaenger.Text = "Empfänger";
@@ -384,7 +389,7 @@
this.sfDataGridEmpfaenger.Dock = System.Windows.Forms.DockStyle.Fill;
this.sfDataGridEmpfaenger.Location = new System.Drawing.Point(233, 16);
this.sfDataGridEmpfaenger.Name = "sfDataGridEmpfaenger";
- this.sfDataGridEmpfaenger.Size = new System.Drawing.Size(870, 579);
+ this.sfDataGridEmpfaenger.Size = new System.Drawing.Size(1019, 579);
this.sfDataGridEmpfaenger.TabIndex = 4;
this.sfDataGridEmpfaenger.Text = "sfDataGrid1";
//
@@ -474,6 +479,8 @@
this.treeViewAdv1.ToolTipControl.Size = new System.Drawing.Size(392, 112);
this.treeViewAdv1.ToolTipControl.TabIndex = 0;
this.treeViewAdv1.ToolTipControl.Visible = true;
+ this.treeViewAdv1.AfterSelect += new System.EventHandler(this.treeViewAdv1_AfterSelect);
+ this.treeViewAdv1.NodeMouseClick += new Syncfusion.Windows.Forms.Tools.TreeNodeAdvMouseClickArgs(this.treeViewAdv1_NodeMouseClick);
//
// GridEmpfänger
//
@@ -482,7 +489,7 @@
this.GridEmpfänger.EditMode = Syncfusion.WinForms.DataGrid.Enums.EditMode.SingleClick;
this.GridEmpfänger.Location = new System.Drawing.Point(3, 16);
this.GridEmpfänger.Name = "GridEmpfänger";
- this.GridEmpfänger.Size = new System.Drawing.Size(1100, 579);
+ this.GridEmpfänger.Size = new System.Drawing.Size(1249, 579);
this.GridEmpfänger.TabIndex = 2;
this.GridEmpfänger.Text = "sfDataGrid1";
//
@@ -504,7 +511,7 @@
this.ribbon1.OrbStyle = System.Windows.Forms.RibbonOrbStyle.Office_2013;
this.ribbon1.OrbVisible = false;
this.ribbon1.RibbonTabFont = new System.Drawing.Font("Trebuchet MS", 9F);
- this.ribbon1.Size = new System.Drawing.Size(1106, 99);
+ this.ribbon1.Size = new System.Drawing.Size(1255, 99);
this.ribbon1.TabIndex = 3;
this.ribbon1.Tabs.Add(this.ribbonTab1);
this.ribbon1.TabSpacing = 4;
@@ -517,6 +524,8 @@
this.ribbonTab1.Panels.Add(this.ribbonPanel2);
this.ribbonTab1.Panels.Add(this.ribbonPanel3);
this.ribbonTab1.Panels.Add(this.ribbonPanel4);
+ this.ribbonTab1.Panels.Add(this.ribbonPanel5);
+ this.ribbonTab1.Panels.Add(this.ribbonPanel6);
this.ribbonTab1.Text = "Funktionen";
//
// ribbonPanel1
@@ -558,6 +567,7 @@
this.RibbonButtonOpen.Name = "RibbonButtonOpen";
this.RibbonButtonOpen.SmallImage = global::OnDoc.Properties.Resources.EditSerienbrief_16x16_32;
this.RibbonButtonOpen.Text = "Öffnen/bearbeiten";
+ this.RibbonButtonOpen.Click += new System.EventHandler(this.RibbonButtonOpen_Click);
//
// ribbonPanel3
//
@@ -598,11 +608,102 @@
//
this.openFileDialog1.FileName = "openFileDialog1";
//
+ // ribbonPanel5
+ //
+ this.ribbonPanel5.Items.Add(this.ribbonbuttonsave);
+ this.ribbonPanel5.Name = "ribbonPanel5";
+ this.ribbonPanel5.Text = "";
+ //
+ // ribbonbuttonsave
+ //
+ this.ribbonbuttonsave.Image = global::OnDoc.Properties.Resources.save_32x32_32;
+ this.ribbonbuttonsave.LargeImage = global::OnDoc.Properties.Resources.save_32x32_32;
+ this.ribbonbuttonsave.Name = "ribbonbuttonsave";
+ this.ribbonbuttonsave.SmallImage = global::OnDoc.Properties.Resources.save_16x16_32;
+ this.ribbonbuttonsave.Text = "Speichern";
+ this.ribbonbuttonsave.Click += new System.EventHandler(this.ribbonbuttonsave_Click);
+ //
+ // ribbonPanel6
+ //
+ this.ribbonPanel6.Name = "ribbonPanel6";
+ this.ribbonPanel6.Text = "ribbonPanel6";
+ //
+ // txtbezeichnung
+ //
+ this.txtbezeichnung.Location = new System.Drawing.Point(120, 20);
+ this.txtbezeichnung.Name = "txtbezeichnung";
+ this.txtbezeichnung.Size = new System.Drawing.Size(354, 20);
+ this.txtbezeichnung.TabIndex = 9;
+ //
+ // pnlLoad
+ //
+ this.pnlLoad.BackColor = System.Drawing.Color.Silver;
+ this.pnlLoad.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.pnlLoad.Controls.Add(this.sfdatagridsbload);
+ this.pnlLoad.Controls.Add(this.btnsbloadcancel);
+ this.pnlLoad.Controls.Add(this.panel1);
+ this.pnlLoad.Controls.Add(this.btnsbloadok);
+ this.pnlLoad.Location = new System.Drawing.Point(117, 52);
+ this.pnlLoad.Name = "pnlLoad";
+ this.pnlLoad.Size = new System.Drawing.Size(965, 637);
+ this.pnlLoad.TabIndex = 4;
+ this.pnlLoad.Visible = false;
+ //
+ // btnsbloadok
+ //
+ this.btnsbloadok.Location = new System.Drawing.Point(870, 600);
+ this.btnsbloadok.Name = "btnsbloadok";
+ this.btnsbloadok.Size = new System.Drawing.Size(75, 23);
+ this.btnsbloadok.TabIndex = 0;
+ this.btnsbloadok.Text = "öffnen";
+ this.btnsbloadok.UseVisualStyleBackColor = true;
+ this.btnsbloadok.Click += new System.EventHandler(this.bntsbloadok_Click);
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.label1);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel1.Location = new System.Drawing.Point(0, 0);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(961, 47);
+ this.panel1.TabIndex = 1;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label1.Location = new System.Drawing.Point(385, 13);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(154, 20);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Serienbrief öffnen";
+ //
+ // btnsbloadcancel
+ //
+ this.btnsbloadcancel.Location = new System.Drawing.Point(9, 600);
+ this.btnsbloadcancel.Name = "btnsbloadcancel";
+ this.btnsbloadcancel.Size = new System.Drawing.Size(75, 23);
+ this.btnsbloadcancel.TabIndex = 2;
+ this.btnsbloadcancel.Text = "abbruch";
+ this.btnsbloadcancel.UseVisualStyleBackColor = true;
+ this.btnsbloadcancel.Click += new System.EventHandler(this.btnsbloadcancel_Click);
+ //
+ // sfdatagridsbload
+ //
+ this.sfdatagridsbload.AccessibleName = "Table";
+ this.sfdatagridsbload.Dock = System.Windows.Forms.DockStyle.Top;
+ this.sfdatagridsbload.Location = new System.Drawing.Point(0, 47);
+ this.sfdatagridsbload.Name = "sfdatagridsbload";
+ this.sfdatagridsbload.Size = new System.Drawing.Size(961, 489);
+ this.sfdatagridsbload.TabIndex = 3;
+ this.sfdatagridsbload.Text = "sfDataGrid1";
+ //
// Serienbrief
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(1110, 955);
+ this.ClientSize = new System.Drawing.Size(1259, 955);
+ this.Controls.Add(this.pnlLoad);
this.Controls.Add(this.GrpEmpfaenger);
this.Controls.Add(this.GrpDokumentInhalt);
this.Controls.Add(this.ribbon1);
@@ -631,6 +732,10 @@
((System.ComponentModel.ISupportInitialize)(this.sfDataGridEmpfaenger)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.treeViewAdv1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.GridEmpfänger)).EndInit();
+ this.pnlLoad.ResumeLayout(false);
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.sfdatagridsbload)).EndInit();
this.ResumeLayout(false);
}
@@ -639,7 +744,6 @@
private System.Windows.Forms.GroupBox GrpDokumentInhalt;
private System.Windows.Forms.GroupBox GrpEmpfaenger;
private System.Windows.Forms.Label lblBezeichnung;
- private System.Windows.Forms.TextBox txtbezeichnung;
private Syncfusion.WinForms.ListView.SfComboBox cbboxverantwortlich;
private System.Windows.Forms.Label lblVerantwortlich;
private System.Windows.Forms.GroupBox groupBox8;
@@ -677,5 +781,15 @@
private Syncfusion.Windows.Forms.Tools.TreeViewAdv treeViewAdv1;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private Syncfusion.WinForms.DataGrid.SfDataGrid sfDataGridEmpfaenger;
+ private System.Windows.Forms.RibbonPanel ribbonPanel5;
+ private System.Windows.Forms.RibbonButton ribbonbuttonsave;
+ private System.Windows.Forms.TextBox txtbezeichnung;
+ private System.Windows.Forms.RibbonPanel ribbonPanel6;
+ private System.Windows.Forms.Panel pnlLoad;
+ private System.Windows.Forms.Button btnsbloadok;
+ private System.Windows.Forms.Button btnsbloadcancel;
+ private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.Label label1;
+ private Syncfusion.WinForms.DataGrid.SfDataGrid sfdatagridsbload;
}
}
\ No newline at end of file
diff --git a/Client/DocMgmt/Serienbrief.cs b/Client/DocMgmt/Serienbrief.cs
index 06998aca..5e3704d8 100644
--- a/Client/DocMgmt/Serienbrief.cs
+++ b/Client/DocMgmt/Serienbrief.cs
@@ -3,12 +3,15 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
+using System.IO;
using System.Linq;
using System.Runtime.Remoting.Messaging;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Database;
+using Helper;
+using Model;
using OnDoc.Klassen;
using OnDoc.UIControls.Administrator;
using Syncfusion.Windows.Forms.Tools;
@@ -16,6 +19,7 @@ using Syncfusion.WinForms.Controls;
using Syncfusion.WinForms.DataGrid;
using Syncfusion.WinForms.DataGrid.Interactivity;
+
namespace OnDoc.UIControls
{
public partial class Serienbrief : SfForm
@@ -23,6 +27,9 @@ namespace OnDoc.UIControls
private int dokumenttypnr = 0;
private int officevorlagenr = 0;
private int profilnr = 0;
+ private serienbrief sb = new serienbrief();
+ private int serienbriefnr = 0;
+ private DataSet dsempfaenger = new DataSet();
public Serienbrief()
{
InitializeComponent();
@@ -42,12 +49,13 @@ namespace OnDoc.UIControls
{
Refresh_Lists();
Refresh_Team();
-
+
}
private void Refresh_Lists()
- {DB db = new DB(AppParams.connectionstring);
- db.Get_Tabledata("Select nreintrag, bezeichnung from Postzustellung where aktiv=1 order by bezeichnung", false, true);
+ {
+ DB db = new DB(AppParams.connectionstring);
+ db.Get_Tabledata("Select nreintrag, bezeichnung from Postzustellung where aktiv=1 order by bezeichnung", false, true);
cbboxpostzustellung.DataSource = db.dsdaten.Tables[0];
cbboxpostzustellung.ValueMember = "nreintrag";
cbboxpostzustellung.DisplayMember = "bezeichnung";
@@ -98,7 +106,8 @@ namespace OnDoc.UIControls
string selected_sheetname = "";
var sheets = new List();
sheets = reader.Get_ExcelSheets(openFileDialog1.FileName);
- if (sheets.Count > 1) {
+ if (sheets.Count > 1)
+ {
DocMgmt.Serienbrief_Sheetselect sheetselect = new DocMgmt.Serienbrief_Sheetselect(sheets);
sheetselect.ShowDialog();
if (sheetselect.DialogResult == DialogResult.OK)
@@ -109,12 +118,12 @@ namespace OnDoc.UIControls
}
else { selected_sheetname = sheets[0]; }
- reader.Excel_To_Datatabable(openFileDialog1.FileName, selected_sheetname,true, ref importdata);
- if (importdata.Rows.Count < 1)
- {
- MessageBox.Show("Die ausgewählten Daten können nicht verwendet werden.", "Import", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ reader.Excel_To_Datatabable(openFileDialog1.FileName, selected_sheetname, true, ref importdata);
+ if (importdata.Rows.Count < 1)
+ {
+ MessageBox.Show("Die ausgewählten Daten können nicht verwendet werden.", "Import", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
- }
+ }
if (importdata.Columns[0].Caption.ToUpper() != "PARTNERNR")
{
MessageBox.Show("Die importierten Daten enthalten keine Spalte 'Partnernr'. Der Vorgang wird abgebrochen.", "Import", MessageBoxButtons.OK, MessageBoxIcon.Error);
@@ -122,10 +131,69 @@ namespace OnDoc.UIControls
importdata.Columns.Clear();
return;
}
- sfDataGridEmpfaenger.DataSource = importdata;
+ DB dB = new DB(AppParams.connectionstring);
+ dsempfaenger.Tables[0].Rows.Clear();
+ foreach (System.Data.DataRow dr in importdata.Rows)
+ {
+ System.Data.DataRow r1 = dsempfaenger.Tables[0].NewRow();
+ foreach (DataColumn col in importdata.Columns)
+ {
+ try
+ {
+ r1[col.ColumnName] = dr[col.ColumnName];
+
+ }
+ catch { }
+
+ }
+ r1["Status"] = 0;
+ r1["Error"] = 0;
+ dB.Get_Tabledata("Select bkpar00 from partner where nrpar00=" + r1[0].ToString(), false, true);
+ if (dB.dsdaten.Tables[0].Rows.Count < 1) r1["Error"] = 1; else r1["Error"] = 0;
+ r1[1] = dB.dsdaten.Tables[0].Rows[0][0].ToString();
+ dsempfaenger.Tables[0].Rows.Add(r1);
+ }
+ dB = null;
+ refresh_empfaenger(dsempfaenger.Tables[0]);
+ //sfDataGridEmpfaenger.DataSource = importdata;
}
}
+ private void refresh_empfaenger(DataTable dt)
+ {
+ sfDataGridEmpfaenger.DataSource = null;
+ sfDataGridEmpfaenger.DataSource = dt;
+ //sfDataGridEmpfaenger.Columns["STATUS"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["FEHLERCODE"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["BLKUNDE"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["DOKUMENT_GEDRUCKT"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["DOKUMENTID"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["DOKUMENTIDBDR"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["ERSTELLER"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["DRUCKJOBID"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["AKTIV"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["Status"].Visible = false;
+ //sfDataGridEmpfaenger.Columns["Error"].Visible = false;
+ update_zahlen();
+ }
+ private void init_empfaenger(int serienbriefnr)
+ {
+ Database.DB db = new DB(AppParams.connectionstring);
+ db.Get_Tabledata("Select dbo.BinaryToBase64(xmldata) as Data from edex_sb_empfaenger where serienbriefnr=" + serienbriefnr.ToString(), false, true);
+ Base64Helper bh = new Base64Helper();
+ bh.Base64 = db.dsdaten.Tables[0].Rows[0][0].ToString();
+ string xml = bh.DecodeBase64();
+ string filename = AppParams.tempdir + @"\tmpsb.xml";
+ System.IO.File.WriteAllText(filename, xml);
+ dsempfaenger.Tables.Clear();
+ dsempfaenger.ReadXml(filename);
+ dsempfaenger.Tables[0].Columns.Add("Status");
+ dsempfaenger.Tables[0].Columns.Add("Error");
+
+ refresh_empfaenger(dsempfaenger.Tables[0]);
+ System.IO.File.Delete(filename);
+ }
+
private void RibbonButtonNew_Click(object sender, EventArgs e)
{
OnDoc.DocMgmt.DokTypSelect DokTypSelect = new OnDoc.DocMgmt.DokTypSelect();
@@ -133,25 +201,201 @@ namespace OnDoc.UIControls
DokTypSelect.ShowDialog(this);
if (DokTypSelect.DialogResult == DialogResult.OK)
{
+ this.sb = null;
+ this.sb = new serienbrief();
dokumenttypnr = DokTypSelect.dokumenttypnr;
- GrpDokumentInhalt.Enabled=true;
+ GrpDokumentInhalt.Enabled = true;
update_serienbrief_details(true, dokumenttypnr, 0);
+ init_empfaenger(0);
+ vorlagenfelder(dokumenttypnr);
+ refresh_empfaenger(dsempfaenger.Tables[0]);
+
+ update_serienbriefdaten(true);
+ vorlage_auslesen_und_speichern();
}
- else {
+ else
+ {
this.GrpDokumentInhalt.Enabled = false;
- return; }
+ return;
+ }
+ }
+
+ private void vorlage_auslesen_und_speichern()
+ {
+
+ }
+ private void vorlagenfelder(int dokumenttypnr)
+ {
+ DB db = new DB(AppParams.connectionstring);
+ db.clear_parameter();
+ db.add_parameter("@dokumenttypnr", dokumenttypnr.ToString());
+ db.Get_Tabledata("sp_edex_sb_get_vorlagenfelder", true, false);
+ string s = "";
+ for (int i = 0, loopTo = db.dsdaten.Tables[0].Rows.Count - 1; i <= loopTo; i++)
+ {
+ try
+ {
+ string X;
+ X = this.dsempfaenger.Tables[0].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()].ToString();
+ }
+ catch
+ {
+
+ this.dsempfaenger.Tables[0].Columns.Add(db.dsdaten.Tables[0].Rows[i][0].ToString());
+ this.dsempfaenger.Tables[0].Rows[0][i] = "";
+ this.dsempfaenger.Tables[1].Columns.Add(db.dsdaten.Tables[0].Rows[i][0].ToString());
+ try
+ {
+ if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[i][1])==true)
+ {
+ this.dsempfaenger.Tables[1].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = 1;
+ }
+ else
+ {
+ this.dsempfaenger.Tables[1].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = 0;
+ }
+ }
+ catch
+ {
+ this.dsempfaenger.Tables[1].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = 0;
+ }
+ s = s + "- " + db.dsdaten.Tables[0].Rows[i][0].ToString() + System.Environment.NewLine;
+
+ }
+
+ }
+ if (s !="") { MessageBox.Show("Folgende Spalten wurden aufgrund der gewählten Vorlage zur Liste hinzugefügt"+System.Environment.NewLine+ s,"Serienbrief",MessageBoxButtons.OK,MessageBoxIcon.Information); }
+
+ //foreach (System.Data.DataRow dr in db.dsdaten.Tables[0].Rows)
+ //{
+ // try
+ // {
+ // string x;
+ // x = dsempfaenger.Tables[0].Rows[0][dr[0].ToString()].ToString();
+ // }
+ // catch
+ // {
+
+ // }
+ // dsempfaenger.Tables[0].Columns.Add(dr[0].ToString());
+ //}
}
+
private void update_serienbrief_details(bool newsb = false, int dokumenttypnr = 0, int sbnummer = 0)
{
DB db = new DB(AppParams.connectionstring);
if (newsb)
{
- db.Get_Tabledata("Select bezeichnung,office_vorlagenr from dokumenttyp where dokumenttypnr=" + dokumenttypnr.ToString(),false,true);
+ db.Get_Tabledata("Select bezeichnung,office_vorlagenr from dokumenttyp where dokumenttypnr=" + dokumenttypnr.ToString(), false, true);
this.txtbezeichnung.Text = db.dsdaten.Tables[0].Rows[0][0].ToString();
officevorlagenr = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][1]);
+
+ }
+
+ }
+ private void update_serienbriefdaten(bool newsb)
+ {
+ sb.bezeichnung=this.txtbezeichnung.Text;
+ sb.verantwortlich=Convert.ToInt32(this.cbboxverantwortlich.SelectedValue.ToString());
+ if (newsb) { sb.erstellt_am = DateTime.Now; }
+ sb.aktiv = true;
+ sb.mutiert_am = DateTime.Now;
+ sb.mutierer = AppParams.CurrentMitarbieter;
+ sb.dokumenttypnr=this.dokumenttypnr;
+ try {sb.postzustellung = Convert.ToInt32(cbboxpostzustellung.SelectedValue.ToString());} catch { sb.postzustellung = 0; }
+ try { sb.unterschriftlinks = Convert.ToInt32(cbboxunterschriftlinks.SelectedValue.ToString()); } catch { sb.unterschriftlinks = 0; }
+ try { sb.unterschriftrechts = Convert.ToInt32(cbboxunterschriftrechts.SelectedValue.ToString()); } catch { sb.unterschriftrechts = 0;}
+ try { sb.team = Convert.ToInt32(cbboxteam.SelectedValue.ToString()); } catch { sb.team = 0; }
+ DB db = new DB(AppParams.connectionstring);
+ this.serienbriefnr=db.Save_Serienbrief(sb);
+ }
+
+
+
+ private void treeViewAdv1_NodeMouseClick(object sender, TreeViewAdvMouseClickEventArgs e)
+ {
+
+ }
+
+ private void update_zahlen()
+ {
+ try
+ {
+ DataView dv = new DataView(dsempfaenger.Tables[0]);
+ dv.RowFilter = "Status = 0";
+ treeViewAdv1.Nodes[0].Text = "In Bearbeitung (" + dv.Count.ToString() + ")";
+ dv.RowFilter = "Error <> 0";
+ treeViewAdv1.Nodes[1].Text = "Fehlerhaft (" + dv.Count.ToString() + ")";
+ dv.RowFilter = "Status = 1";
+ treeViewAdv1.Nodes[2].Text = "Generiert (" + dv.Count.ToString() + ")";
+ dv.RowFilter = "Status = 2";
+ treeViewAdv1.Nodes[3].Text = "Abgeschlossen (" + dv.Count.ToString() + ")";
+
}
+ catch { }
+
+ }
+ private void treeViewAdv1_AfterSelect(object sender, EventArgs e)
+ {
+ {
+ string nodetext = treeViewAdv1.SelectedNode.Text;
+ DataView dv = new DataView(dsempfaenger.Tables[0]);
+
+ switch (nodetext.Substring(0, 5))
+ {
+ case "In Be":
+ dv.RowFilter = "Status = 0";
+ sfDataGridEmpfaenger.DataSource = null;
+ sfDataGridEmpfaenger.DataSource = dv;
+ break;
+ case "Fehle":
+ dv.RowFilter = "Error <> 0";
+ sfDataGridEmpfaenger.DataSource = null;
+ sfDataGridEmpfaenger.DataSource = dv;
+ break;
+ case "Gener":
+ dv.RowFilter = "Status = 1";
+ sfDataGridEmpfaenger.DataSource = null;
+ sfDataGridEmpfaenger.DataSource = dv;
+ break;
+ case "Abges":
+ dv.RowFilter = "Status = 2";
+ sfDataGridEmpfaenger.DataSource = null;
+ sfDataGridEmpfaenger.DataSource = dv;
+ break;
+ }
+ }
+ }
+
+ private void ribbonbuttonsave_Click(object sender, EventArgs e)
+ {
+ update_serienbriefdaten(false);
+ }
+
+ private void RibbonButtonOpen_Click(object sender, EventArgs e)
+ {
+ pnlLoad.Visible = true;
+ DB db = new DB(AppParams.connectionstring);
+ db.clear_parameter();
+ db.add_parameter("@mitarbeiternr",AppParams.CurrentMitarbieter.ToString());
+ db.Get_Tabledata("dbo.sp_edex_sb_get_serienbriefe", true, false);
+ sfdatagridsbload.DataSource = null;
+ sfdatagridsbload.DataSource = db.dsdaten.Tables[0];
+ this.pnlLoad.Left = this.Left;
+ this.pnlLoad.Width = this.Width;
+ }
+
+ private void bntsbloadok_Click(object sender, EventArgs e)
+ {
+ pnlLoad.Visible = false;
+
+ }
+
+ private void btnsbloadcancel_Click(object sender, EventArgs e)
+ {
+ pnlLoad.Visible = false;
}
}
}
diff --git a/Client/DocMgmt/SerienbriefBearbeitung.Designer.cs b/Client/DocMgmt/SerienbriefBearbeitung.Designer.cs
new file mode 100644
index 00000000..5234263c
--- /dev/null
+++ b/Client/DocMgmt/SerienbriefBearbeitung.Designer.cs
@@ -0,0 +1,62 @@
+namespace OnDoc.DocMgmt
+{
+ partial class SerienbriefBearbeitung
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SerienbriefBearbeitung));
+ this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+ this.SuspendLayout();
+ //
+ // toolStrip1
+ //
+ this.toolStrip1.Location = new System.Drawing.Point(0, 0);
+ this.toolStrip1.Name = "toolStrip1";
+ this.toolStrip1.Size = new System.Drawing.Size(386, 25);
+ this.toolStrip1.TabIndex = 0;
+ this.toolStrip1.Text = "toolStrip1";
+ //
+ // SerienbriefBearbeitung
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(386, 478);
+ this.Controls.Add(this.toolStrip1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "SerienbriefBearbeitung";
+ this.Text = "SerienbriefBearbeitung";
+ this.Load += new System.EventHandler(this.SerienbriefBearbeitung_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ToolStrip toolStrip1;
+ }
+}
\ No newline at end of file
diff --git a/Client/DocMgmt/SerienbriefBearbeitung.cs b/Client/DocMgmt/SerienbriefBearbeitung.cs
new file mode 100644
index 00000000..f495f883
--- /dev/null
+++ b/Client/DocMgmt/SerienbriefBearbeitung.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using OnDoc.Klassen;
+using Syncfusion.Windows.Forms.Tools;
+using Syncfusion.WinForms.Controls;
+using Syncfusion.WinForms.DataGrid;
+using Syncfusion.WinForms.DataGrid.Interactivity;
+
+namespace OnDoc.DocMgmt
+{
+ public partial class SerienbriefBearbeitung : SfForm
+ {
+ DataTable StdFelder = new DataTable();
+ DataTable IDVFelder = new DataTable();
+ DataTable UsedFelder = new DataTable();
+ int dokumenttypnr = 0;
+ public SerienbriefBearbeitung()
+ {
+ InitializeComponent();
+ this.Style.TitleBar.BackColor = Theaming.Titelbar();
+ this.Style.TitleBar.ForeColor = Theaming.TitelFontColor();
+ }
+
+ private void SerienbriefBearbeitung_Load(object sender, EventArgs e)
+ {
+ StdFelder = get_vorlagenfelder(dokumenttypnr, 0);
+ IDVFelder = get_vorlagenfelder(dokumenttypnr, 1);
+
+ }
+ private DataTable get_vorlagenfelder(int dokumenttypnr, int type) {
+ Database.DB db = new Database.DB(AppParams.connectionstring);
+ db.clear_parameter();
+ db.add_parameter("@dokumenttypnr", dokumenttypnr.ToString());
+ db.add_parameter("@type", type.ToString());
+ db.Get_Tabledata("sp_edex_sp_get_standardvorlagenfelder",true,false);
+ return db.dsdaten.Tables[0];
+ }
+
+ public DataTable init_used_felder()
+ { return null; }
+
+ }
+}
diff --git a/Client/DocMgmt/SerienbriefBearbeitung.resx b/Client/DocMgmt/SerienbriefBearbeitung.resx
new file mode 100644
index 00000000..bd8e405f
--- /dev/null
+++ b/Client/DocMgmt/SerienbriefBearbeitung.resx
@@ -0,0 +1,861 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAUAAAAAAAEAIAAXZwAAVgAAADAwAAABACAAqCUAAG1nAAAgIAAAAQAgAKgQAAAVjQAAGBgAAAEA
+ IACICQAAvZ0AABAQAAABACAAaAQAAEWnAACJUE5HDQoaCgAAAA1JSERSAAABAAAAAQAIBgAAAFxyqGYA
+ AGbeSURBVHja7F0HWFNXG36TsJcIMgRUHLi3oCLirFurtWq17d9abW1t1bqt1rqtVeuqo466OtS6FfdA
+ QBEVEBQEFNl775H9n0NMci/VmoQwtHmf5zwkJzfnnoSc73zne7/BgQ466FAT4JBmTZoLaf1J8ySt3Ys+
+ +loeaZGkPSDtKmlPScskTVLdk9JBBx2qFwakjSDtfdKGkWb1musLSfMm7Qxpp0grqa6J6QSADjpULyxJ
+ W0XaONLsod6ayyHNi7SlpKVUx+R0AkAHHaoHdG25kbaVtJ7QfK1JSXtC2rek3XrxXKuT1EEHHbQLuq46
+ k7aXNNeXvE539jDSYiA7+1PUI82ZtA6QaQqV8Yy0qaT5Q4tCQCcAdFALZl1jTY26JvbgStFLykFL8luU
+ SDjShzwO50jm3v7ZtT2/OoKGpB0jrTdpXEY/n7S/YNM2Gq7Tp5DHWaSVQbagjUENgsJSS9xY9Dd5TF83
+ Z7yXXhNC2kTSorU1UZ0A0OFfYTPVuyG43F4CcN0NIOlFulyn9O2rX/m6A76++VJwPs/e1/dUbc+5lmFD
+ 2q+kjYVyfYlhYB4Buw4XMGjjAnCI+OTp67/03VKyzsUCIby/X4e0h0PAL+xKeuXXUiHgQ9qnpCVpY7I6
+ AaCDEtOCOA0kRa0EcbZ9DJtm9gGH04ss9qaqvp0IARGfwxtSuNfTu7Y/Si2BLtTVpM0mzfBFn5i0C+i1
+ QB/tPxiu1mhR5y7Cb3UuefQBZEwChYi0w6TNIK28qhPWCYD/MOym3DaS8sTdpRypJyQcT/Jr6EkWfL2q
+ jHnA1ycia1//drX92WoBVNWnNN9usGm+22gx9DL6/LAceoaGao0oEYngt3YZnnl1J8/GMF4pJW0Oafsh
+ EzAaQycA/kNQVZ2vKg76+nbI3NcvvLY/bw2CriN3yDh7pgEvCLbtf8Wofb8Sld9Ao5HFQiEyw1JxdV4O
+ BEVdGa/kk/YJaRdRBWchnQB4S+E05y6XXyxoTx72gpTTExypB1nsLWri3kQLGE20gPO1/R3UIKh330HS
+ PBh96TB3XIWhW2agfrO2Vb5D1NlQ+K2hPgXOjF4qZCeTFqzpsDoB8JZAoc5LJb2l4HhwOBx3suDr18Zc
+ Dvj6js/a1+9kbX8nNQSq1h+CzNFH70UfPZt/j2Hbh6OR+0Ct3EUikpDjgB85DlAtwELeC5lvAD0eFGsy
+ rE4AvKGoKXVeE/yHBIAR6EIHFkJppCP/Er1D6PGtCO0/mA4OV3trTCwQ4dIMH6Q9pJqGsbwXMn+D7yBz
+ IVYLOgHwJuCFdZ7s6p5EnfeoSXVeE/xHBAAPMus8Nfox+fqzcBlxD/1X/lQtdy1IzMGV2RHkryejl2oc
+ VADsIk2oznA6AVAHUZfUeU3wHxEAPSBT/Vsz+qJh024DhmxaDZMG9poNqwLSHibCaxp1umIaBZNJ+4K0
+ K+oMpRMAdQB1WZ3XBP8BAeAIWZAOdfeVr6E0GNVfhPd+Xwvzho2q9e7UWSji5EMEbLaBRCi/F3USSiBt
+ MGnPoaK7sE4A1DTeMHVeE7zlAoBqYjsgc8mVu/kWQs/4Zwxa3wuNeg2tsZnc/vEOIk9TDaTBix666KkG
+ QDUBlaIHdQKgmvGmq/Oa4C0WANTQN5+0HyAzAMqxE65fSdD185k1OpuyvBJcX3AX6aGDGL3UBkAF1BKo
+ 4CmoEwBaxtumzmuCt1QA0LVCo/F+hixyj4LScDfRctR1eC5eDZ6Bep5+2kBpTglOTgxEeR41CvJe9FJK
+ cBlpv+A1noI6AVAV/AfUeU3wFgoAuk5oWO9p0pwY/VmwabsMI3dvhL6JWa3NLuVBLK4vKoWgqD2jtwAy
+ 12TqJ/BKT0GdAFAD/0V1XhO8hQKAGv3+Iq0P2GumEFYuu/Hub9/AwNS0Vmf4+M9Q3NtKf4tNGL00fPhD
+ 0qJe9TadAPgX6NR5zfCWCQDqfruNtI/Bju2XIx3NBh1Fv+XToWdkpN7QWoRYIMbdTX6IPEXpSZMXvXTn
+ p0bBqRXzfAl0AkAOnTqvNbxFAoC69q4gbR6URj9qaachucyN4B66TI2B2/SPanW2EpEY5z/3RmY4TUQi
+ 9xSkcz1A2izIEpKw8J8VADp1vvrwlggAutu/C9niYf4u/CALwpkGpe+/mOz+lzBgrSmc+w6o1VnnxWXh
+ 0jfPUJLJDEyiWYe+Ie0PyASCAv8ZAaBT52sOb4EAkBv9aFqvZoz+MFi33IZGvZoh9HBXogxQ+k1ueefD
+ wHwvxhwaDcsmjWt19sn34nFtQQFEZZ0YvfQI8D9Q1oLhJPR2CgCdOl+reAsEAE1oQpNt9GD0ZcGs4Q8Y
+ unUm6jdrhyuzZyPJn8YCuDOuKUeD1jsxZPPHMLGxq9VPEHk6CHfWUXdkJmtBjYJ0zoqcgm+FANCp83UL
+ RACs53Bwp7bnoQnEhalGeRfmzJcUZ9CU3jKjH4cr0G/Y6ai489QOEsceMv/74rRMg9D9ZwVPL02ARGgp
+ fz9H3ySV1+a9YFGP2aNq95NIpFz/DeGSqLPNIBHLGQoxuLwD5Pk0xXxrd5KaQafO61AdEArKEHBuLe5f
+ 2EDWiDKoztC4HhwHLkCc/TtEoeQp+m2E6eggjsPt40sg5MvD8Tmwde4KG8+ZeGLYhgqPWvs8PFEpHJ8e
+ RvL9P5Sfh2coNe89e5ddx76znm8fLqn7AkCnzutQA5CIRQi7fRg3Ds+ESFj2j9etHdtC6L4QhfXZ6Q5b
+ S5JgnHgLj332QSx84XlLFn0rt/dR0nIsko1r96dqWZoA22dH8SxQmay5VfdxyG798bGcMsGHdU4A6NR5
+ HWoDiRE+uLRvKgqyYl95jX374cjv+CXKTR1Y/T2lz5ETehzRQWcUfVyePjoOno1E277INag9c4CJpBi9
+ DTLgc2gaBGWyfCGGJvUxYeFlXEks/aDWBYBOndehtlGUl4oT64ciK5myezIDuaGJJWwbd0JK9F2F+szl
+ GcDB9QOktvsSEp7S7d9AwoenQQoeea1GdvITxRhGZtboNHwRgs17QcSt+TABOcxEBWiWcAqPb+2hdVwq
+ +rqPWICYhsN8alYA6NR5HeoYSgoycfXgV2T3Pgv5wtXTN0bnQTNg2+YdPL25A7GPLkEqlcXU6BuawtZ9
+ GlKbT4CUq6cYx1hSij76Kbh7fCGKcpMV/WaWDmg9YilCjDpDzK29fc0pNwgFt34kc5PVE2ng1B7SfmuK
+ qlUA6NR5HeoyRIJy+J9ZhQeXNpFdXqDob+M+CcZtRuEhzwVdy0ORemcP0uOCFK+b1XeEce95yLL3ZI3X
+ UJwBl5InuHduDQTlRS96OXB0cYd5j2mIMq69cglWwkwYBv6CtCdXK55T7eS9b09plwXQqfM6vCmQSqWI
+ un8C1w59jfLinBe9HLIztkOHUctxR+AAIdcABuIydBOG49G5FSgtzFS837pJNwjdZv7DKNhWFAvD5DsI
+ vbFLoTVUGAWJUClp9i6SjZupOEPto1vOVQSfpqkMyHbM4eGdT7ZVQQDo1Hkd3lDQxZ+V+BgnNg5HcX6q
+ op+nZ4h+kzbAz4AsbsaZ3URchE4lwQg+t4qxs5Mdv81A5HWdhXITtlGwBycOOUF/4XmIl+LMTY2Cncix
+ Is7uHeQb2NbK53bjP0b46UUoK5bVcO3Q5zPVBYBOndfhbUFhTjIu7f0MCU9YXrEVaODYjqj3c5Bk0YnV
+ by9IgV3SVYT57lccF6jAaOg6EaltP4eEpwwE1Jfy0UcvGY8urEF2srJAkpGpFTqOWIJQs+4Q8IxR0zAr
+ ioPpvfXIiJfVEXFq5flqAaBT53V4GyHkl+Lmn3Pw2PcA2ZxFL72mSaeRKGr3CXJN2XVRW5dHQhB2HLGh
+ tBqXTHDoG5rBts8spDR5l6j6SichU6I1ePAS4H9iCUry0xT9Fg2c4TJ0CR4adyQj8FCTsCpPguXj3yqM
+ mvK5KASAw7Rb+kIpZxz5WCNIp1pVYXXQgYn9vr40J11gbc+jMqQiAbfw6uLRwrSQEWT1v9jMOGKOvnGO
+ VFhKy3or1gPXrmOwpN/KFrBwYhVL1Qs/cl0ceqiFtCzPWXG9nlEex+2bEmn7iUy/e3CyI2P1wv4IFsZ6
+ jyJqg0JF4JpYP+d0+Sxb3PaDnjX5+W2FaWjw7G9E3P2r4rmBkbnsA5h2i2tp3CXhzNR+fatew0yH/zzq
+ aDAQ9cmlGXvpr9+S0X8LTfqGIsl/MCQipkWvGA27emHY9nHgGSg1X0FxIa4v2IbUIOpPr/Tw0TeJwqCN
+ RnDs7sy6a/TF4/BZQSPxvgYzfJhneA6DNzaAk3ufmvoC7EXpsIk5jTC/g7IvhKcPjvXnvpYcjvTx1L59
+ qzeXuQ7/GdRRAUDz5f1NGnOTi0G9Jj9i1N4f8cwrDYG7bIlmwLToZaPjx77oPvM9cLhKp/6SzDSc/ug3
+ lOfTEt3yXIBimNjcx9g/OsHYWpkeTCISImDzakSc6E+e9YNSyyiDSYPdGH1wIszsG9bEF2AnpALgJMJv
+ H654ztM3AqfeN6E/feXeaVGN/it0eKtRBwUAzZNHk2Ewifs8smAXYMTOubBsKhMK/uvvIuIkfczUECLg
+ Pi8b7Seyd+qMRw9wbX4IEQJTwMwOZNvBD0M2ucKovgnr+sszZyL5Ho3H787oLUOD1jswdNtnMLZqgGqG
+ DT8FVlF/4ukD2b/G2KwBODZf+ETr6DsdtIk6JgBoLn9aPJMmx5Qv1FLS1mPwz65E/VeG7fILy3BtXgzS
+ Q6kQUO74Bua+5NoG5EjAJv0jT5/GnXVUrR/JuD4PrUY/Q5+lPVjXFibH4Orc7ciPo/n6mTxgFFoMvYn+
+ q7+p7i/CsjQRFiE7kRjhXfGcMh5UAAiJANCr4tg66KBAHRIA9HdNq+RsBjun3zF0/F8MesxcworXLUzO
+ w/nP41GWwyz5RSEgavopvH/kXSIMGOq9UIA7P23B0/M0/bZyE+XqpcJjYTZav9eRNZvMsEAy/nFyzFgF
+ Zc4+CTi8QLjPjUW7CRNRjSH6pgXRMLy9ErlpTyueN+04FJxFf0pVqiGmgw6qoo4IALqwx5L2G5SFPCiu
+ otk7lzFw3VbW1aXZxbg0Ixh5MX1fOaJ9lz+IJjAGhhbmrH6vacuQHkKPAs6M3nCM+NUSDq4sZgDPr/wF
+ v9XFEAsmk2dybyPqLfQ3hm5tikYe1cYMDJQ+gc+hLyEWyXKD9hy1WCcAdNA+6ogA6AZZ9V5msYwEWLda
+ jSGbV8DUlr0wbyy6jThvumPLhQVdF9SXl6kdJ5FdOhS9FrCz/RQkxODKnNMoTKJqvPLsb9HoAYZuaY56
+ TaxZ19/duBZPjneALOmoHAKYOxzAkC0DUb+ZS3V8IS7PDyL61q6Kx9QAOPyL/ToBoIP2UQcEAF2El0mj
+ 6bHlKn4B0a5nY/zfC2HZtA3r6vBjDxCwuSlZ8zaM3ghyOvibqOvfQ2ZHkIFn8ASe32fDZThbU0gNeoCL
+ XweTMSg9KPfwKSNawwOM2tOH3Fup2guK8nBt/hKkPVxInjH9bTJg03Y/xhxazLpeC3Dmx6HEbwOy4mVB
+ TeZWThg374JOAOigfdSyAKAW/E2kTWH0lVZU7x2wuiOa9B3Dujr+VgyuL6S+vUyhEIvGnn8TTWExzn7q
+ jawI6gnLLPpxHaMPNIVtB7bx/On5Y7izrj4konfAFAIuI4LR53t3cPWVrn+Conyc/t88FKVQe4AjY5R0
+ NB/8J/oun6nNWoMOCeeQ5btVkbqMnv/HzfPSCQAdtI9aFABUXf+WNLqomDTcb+gypQCu0+exrs6NziCq
+ exJKMlwZvWWwarGdLP4PYdbQCXmxWbg6Jx5FqW6s91o2PUOucYeFkz2r32/NNjw9RzWPbozeRPReXIw2
+ Y9mOdukht3F1rjcExXPJM7ldga5HX7jPy0X7iWO18aU0E8ZDeH8nkiJ9XvRwMHTqXnTq/7lOAOigfdSi
+ ABgCWTpv5o76GI16/YKBP26GgZkF6+qTk24QIUB9A+Q7LQ0O+BXv/TEQNm2UizXxTgKuzKZbJ5MGLIBT
+ zwsYvoNdDag8P5dcuw2Z4VTYKO9nWC+MCAwr2HdyZF0fdvQgAjZRq9xXjF4xDMyPY/DGZnBwZdOJasJa
+ mIWO4lj4/PmtIvahvp0Lxi+4hPr2LXQCQAftoxYEAD0vtyLNB0z3XCCS7NDLMeHUEXKeVxrzROVC+Cz3
+ Q5x3PyhVdeqeexn9lpMtc9DIf9wh8tRD+G90gFTM3PHz0Pq9G+i9aCw4PKV6X56XjTOfbEdxeiUhYBGA
+ sX+2JZoFK74AD7avxqPfqRZCBZjcZiGEvskOvH90PMwdnKABzMRF8DTKxJ1j8xlZijjoN3E9ug+fV+Hc
+ qBMAOmgdtSAA6AKhzj7DGH3ZMLb6key6E2HTrjvr6ke/h5JF1wDsohn30eGjMPSc/fkr73Lrh7t4fqWy
+ p+Aj9FtRQs75vVjXpgbewdV5zyEqow5IciOiAA27PSBz6k4Wt9KwKCovJceMRUgN+hJs1iIf9p1/w+BN
+ XxDhUQ9qgCOV4B2j5IqUZomRtxT9lnYt8PEyf5jWk/ki6QSADlpHDQsA6t1HjX5fgV2wcxlZmO3JwpzA
+ ujr5XgxuLhaQczfT6FcIB7ctGLR+DlG9LV55p7LcElyeFYScp2wGwKj+NQzd2gw2bdlGwUe//0UEDWUW
+ BjN684mgiSKChs33F6fF4+zkjeQe1H7BpA2fou34G/BYqJanYHdeMkqfnKuI/JMnNaX5DPt/+DO6DFSe
+ NnQCQAetowYFAFW7aRzLUig96+iv/QRcpyehyxRKsynptKLUPJwYHwGxoBejP4+o5Fsx/vh30DN6fZaO
+ koxCnP0sHKVZdAHL1XUpTBqcxJjDA2Bqy1i8ZG3d3bQFT/6mNQTbK+/JSSYCIA8dPuzAGjsz7B6uzDkL
+ fsEysIyYnLtw+zoRnSdPVOVL0U++m9zTtMjp9klZ+q+KEcgJiC78AR9tBk9PKSd1AkAHraOGBABdfANB
+ Fzvb088HTu5/Y9gv1ONFufjL80qISh5IFlkfKBeuAIb1/sSQTR1h18lV1RsjOSAW1+YLiCBpzegtgWMP
+ Lwz++T0iSJT0nbC0GFe+3YL0UOqSrLQf6Bk/wbBtFrDvwo7CfXruT/itoQbHqVBqNCJw9U+Rz9QEDq7/
+ 7imYHRlknOijh2dencuKshTdzu0HYdgX+2Fhzb6dTgDooHXUkACgi+8oaZ0ZfYmwcFqJkbtXwNSO/Uv3
+ W3ObLC6mpx+FF3ovlqLN2Hdff7tKeLjvIYL30tBhplEwlWgdgUT7GM26tjCZqPefHgW/cDaUmooY5o73
+ MOZgF1bkIA0fvv3jcrKAae4CZgRiGdFUfsXo/R+9svCoRCTAqUmfcEVleyTFGYrPaWJhh4mLr1ekAudU
+ 8i/SCQAdtI4aEAB04f0Jdnx9EVlIszFi52xYubBV64f7ghC8jwgEqXzh0N/8E7JYfeD61dcaFfCTSqRk
+ ofoToUIFkJmin8MNg8eiAiJUerOuTw0KwPWF4RAUfQale7GEaAB3iAbSHQbmSkcjqViESzNmk/dQgyRT
+ wBXBtv1uDN36BdFcLFnjC0uLcGvZQiT4Ugcohc+CaT17DJmyGy7d2DJJMV2dANBB26hmAUDVa5py7FOw
+ w3u34J31rdF0wPusq1MexJLFVE5WFdMJJxEObn9i+PaF4PA0j4SNOnOWCAHqysvOIGpg5k3UdUfYdmjF
+ 6o848Tf8N1AjI5PuyyXC4jnRRNhMRWFSNK7M2YGCBHqQZ+YKiETLkT7ou3w66/rgPZvx8DeqSSgsfLTA
+ icf7K9B92FxwX/ExdQJAB62jGgUANfpNJm07lKo0xd9oNyECvRasZF1NjX4XvopAcRrT6EdUafvtGLln
+ EswdNM+ClfEoANfm30B5PuX6TSq9KkC9xqcx5tBIsrMrtQMaPuy7ajOeXxlPnjVX9HP1ktFnaT5cRrRn
+ jZIechde07zIo+VQuiJLiJZxF55L0tBq9PiKngS/8/Be+hCisvlQaCMctOv9P7zzv60wMn118m6dANBB
+ 6yACYD05at7R5phSiZhT5L+1e/nTy7PIWVdB1XGNrcL02o4NEHSeMgVcfeU2xy/gc28ueSZJeUC9917s
+ thwxz679VUmvBW2lDdo4azyZ0qxcg3ubTgji/CaSRf0Kfp4j4rUcfkfca4E79E2VRkGJQKTvv+G4MPrK
+ YIj5ip2dY1QvXjpokwXsO1kxPzbRMg7Bf6OU3IdmE5JrPBIiNI5g6LbWMLOzwMlJa8nrNOfBCwaCI3Vo
+ 0ZNDC4Aamvy7+4BOAOjwRiAz4RG8fv2YlWff3KoRPD/agtsl9VHEY9P3Ts+PIuvefvDLCiqe00o4TTsO
+ AbfzJ3hu0FytezNhKC2HBzcRIedWIC8jWtFvailL68dKAW7dGDa9ZyDGtj9rjPrCbLgUBuGh14+sUuQN
+ O41GbofPwTdmhxfgzrpViDxNYwtGMHoFMHfcD0Pzx8iOWkCeK0oOcU1tCz9a6GXh0Jx9qngZdAJAhzoP
+ QXkJzmx9DwlPvBXltgyN61VU8XkobYQsPRvW9XZZ91B8ay1KCtIVfTT9VZMBcxBsRIkAzSNteyIGGfcP
+ IS7smqLqD60k3GP0D4hNS0Tand2KhBsUNs5dYej+LZLN2HFAjvwENEi8KqtP8OIz6RmYwN7tIyS3nca+
+ aXk+zUT8HdJDvyPPGjNeyQCNHmTbIApNe86I+ObrbT2ZeUxfBZ0A0KFOg19WBL/jS/Dwxi7FgqPJLNyG
+ zUOBTVdEchuzrrfIfQyDB9uRnRSq6KOaQrvh3+GBUVdIOJrb/NqJnoMbex1hfoeUc9EzhNvIRUix7Ixk
+ nh2cwnYhJfgEo9goB007j0BOu89QaMKcqxTthM9RFLgfiRG3FONVVB/uMxupjUeyqg9XxBec+vA7lGav
+ AZt6ZH1dpC1p8NnVXlMHDn4fKkAnAHSos5BIxAi+uh23Ty6FkF/yopeD9p6fwLT1cNwHu9CmcUkKLB/t
+ RtqTK4o+Kixcx6xAhFlXFOlpXsnOQZQG5/yHCLy0UTEX6l3XpucH4LV+F2E82VxMipNg/mgPMiKust7f
+ st90JDcejVJDdnIg1/JQJPrtIkecEEUfrdij12s2cu082JNIDfTG9YUBEBTTkGezSlOkHpDHSZtq84XP
+ H1P69h2vyufSCQAd6iziwq7j8r6pipr2FDZOHdB17Gr4lFiDzzViXd8kfCeSg45BLCyveE4XaKd+nyOl
+ 0TBkGTiodW8maHHQXtwE3D1ONuDCDEW/fVNXtBw0F3ckTVmaRb2cUPACNiE3LUrRR+sCNu0/E5EN2YGG
+ xqIidBVGIPDUEgjKCpWfs7kHylxnoNiiUsLusL/2495WKskq5wrwJ+0T0mKJADiuEwA6vLGg1XvzM2Lw
+ 9/ohKMiKg9yfncax9564HldKbCHkKA3rHIkAjZIuIfnmRqXqzeGiacdh0O/0IZ4ZttR4LgaScnjwEhF6
+ fiXy0p8p+uvbt0TXUUvhK20BEadyyUwp7NN8UOC3CWUMgWFiYQunQUsQXb8npMw6gqJ8dCy8j6ALPyky
+ 9lCjpUP7IcjsOhdCgxeWfH5BDry+XIi8GGoLYOYNjCWNLniqRkh1AkCHNxpFuSm4euArxIReUPTRHdT9
+ /VV4ymuMVD12IR2bVG/w7+1EYU6ioo/uzvYeXyLUuLPK930ZekqeISPwD8Q9Vh4rqAGy57i1CNNrgVw9
+ 61e+1zH6L2TfP6hgIuTz4rhNR1o9dsbwxsJEmMVeRJT/H4roParBOLpPQVrLjyDm6Ivh/f1cxN+iLn0D
+ GG/Nh8z5h/pdVFgTdQJAhzcWYpEQPscW4uH1XazdvNfo75FXvwMi9dg1a+sVREHvwTbkvEh2SUGLXrpO
+ 2IhgvTbg80zUuT0LbSSJ0Ht+CRH+fyos+1yeQUUyjRQrNyQZ/LsfkQE/F7aRh5EceITV7+w6DvmtP0K+
+ MTvPR9vycJSGHEF8+HVFn5GZNUQdPhGLJPoHcX8DXeDMSkR0Uj+TRh2ghPL36ASADm8kqNHv4fWduH1i
+ KQTlRRV9VBVu0XUUbLt/grsiB1ZJbX1BPuyCNiA54qbCim5gbAHXkd8h2MIDfK7mi99emIqWZVG4e3qF
+ gqunO7KL63sw6TAOoVwqiF5PJxqWpcMqaAvSnvoo5kiLcrb0nIrYph9AoKe05XGlIriJovD08tqKI5Ai
+ lNfAPFsq5l+EWDAJyuQiVBjQcmfUIFjIvKdOAOjwxkEqkSAh4hbO/jIe/NI8Rb9Tqz5oN3g2rpazd1s9
+ QSEcnh9Fov9vij66sNr2mYqcRkOQZqhRFq0K1BPloos0DvdPLkVZcbaiv1Gbfmjs8Tn8Oa3UGq9+Xhik
+ d39GfmqEcv4GJnAZNB/P7AdBzDBm6kkE6MEPQajXGpYfQ+WvCzRxKEC9A5Mrv6gTADrUKvb7+tJgnUB1
+ 3sOP9WlYfHfbl9KyPKWOr2eUa9hm9DlBu0kjpeaOLG8f7oNfoiVhxxwgESpKdXHNGz6C65ciSYsR3dS4
+ 9T9gEPzrX8KI0x7S8nxnxlzyDdqOvSTo+MkIGFurlZ6LghN6MF76cH99iPmK93L0jXM43b5KlnT4kBVM
+ xMmLS+X4LveWZEWOAzsduRyppFFbQDDkagIDOgGgQ61Cg2Ag6hP/O9hRcsXQN12A4TumwrY9O1lH2JEQ
+ PNhuB4lIzu3R33As2k88hx7fzgRXT1/lOzNBY/Ef7FhPxvckQ3qCGbFnaLESY/+aDzN7zQKIxAIRrs69
+ hJT7tKqQ8uzAM3gIz+/5cBnuzro+9sZV3FxMKYRPKo1EVRKq9h/FSxY/hU4A6FCrUFMA0B2O5vSjGXPk
+ C7eMHLh3ot9KB7QY+iHr6vSQRHhNo5Zvphk9CXYdD+Ld/cuqNPGn50/Ab3UmeURDbeWLvwz6JnsxcF1r
+ NOo1ROOxSzLTcHXO78h5Nhfs3IU0O9BVjNrbAg1aK4MUHv62E8F7KN/P/PzU6EcNfhshS2H+UugEgA61
+ CjUEALXo0R2OHhmYFrsTaPN+GHp/t4p1dVFKHi7NjEBhEtNFrrwiU87wHaNRr3Gz19/yFaD5+K7Nv4ay
+ XLpAmV52R+E6vQhdpkzTdOgK3Fi0EXHedPdv/ZJXhbBqcRojdw+DYT0LJPlfws0lkRCWTmd8L3SdniON
+ JgnJ+bdb6QSADrUKFQUAVYNpskxayINpsXsAp56HMWjDerIzKheisFSAK98GID2UqspKS7ie8QEM3doV
+ Dbtqfu6nZbpOTlxCdmlaB1BeuIOui1C4jDgJzyU/EFXdSKOxpRIxQg4cwMN9ncljVyjVf7qDMwMTSuDc
+ 3wuuX3XB+c9/IXNaTfrkocF0LtStcDhogdNXqP5y6ASADrUKFQUAjdM/BnYe/CRYOv+AEbvWwsSGUUGH
+ /EZ9Vvoj+iJV++Vxv5QGu4W+y/LQcpRKP/aXQlBcQM7aK5B8j6bdZvrdPicq+Ta8+9sG8Axfny34VYi/
+ Rf33qTmfZvSVHytoaq8UZIZTFZ+Z348u7vWQZTlm+i7HQ7bz31TlljoBoEOtQgUBQBfxX5AV8pAT+wXg
+ 6i3HqH0TyeJgZ759eu4R/NZQlzumphCOliNvou/yb6s02Qc7NuPRYbrwmca5AhhbbcTwnROJat5e47Fz
+ oyNwZc5NlGTQ44PSd7l+87sYtL4VuXcE4n2oVsAUMIVgVhOiRxyZ0e8gGM4+/wadANChVvEaAUBpO2qs
+ o2dtuQosBFf/F/SaZ03O/pNZV6cGJZGzeS6EJUyqLBP2XfZj6JYZ0Dc1h6Z4duFv3FlXALGAJupUpuDm
+ GW7BwLW0krDmRj+aDvzcZ1uQF0vddOUUphT6JsFEq2gCKxcb8AvLcH5qEPLj3cE+DihGIe0XyFKClah4
+ Z50A0KF28S8CgO72VNX+ETJBQEHd446h48ex6PHtUtbVBYk5uDj9GTmbMymyclg02kaOCR/BzF5zb5/s
+ qBCyQE9CIlrCmAs9l5+F+9wctJ/0pcZji/ll8P5hG1H/aeFQJW3IM4hD/1V8NB2oNATmRmfiyuwk8hkr
+ 2zDoEecyadT7r1id2+sEgA61ilcIAKpe09xYh8BcFLR6r4Pbzgqjn4GZMtW1VCyB15e+yHhEjwNyFZks
+ UM4fGLW3Hew7vz7f1atQmp2GSzPWIS+GGv2YZ/BAsjjPkN1/JTg8zXwJKB4d/oOo9zT7Rx8ojxWZ6PBR
+ InrOZvs05MVG4OqcSyhKnV9pFBrZN7ni+1ETOgGgQ63iFQLAmTQa3kdzY8kXRQI5ay/F+0d/Jn+VC1Ei
+ EuP+Nn+EH+sKJSUnJYvSBz1mppOFNEnjyYkF5bjx3TIk3qb8OjNUMIGo5VsxcvcPMLSw0nR4cqb3xq1l
+ GRCV0ZqEcvuGEI09A4hg6Qk9Y2ZR0BJ4TZuF7MgZ5FkXxiiU5qNGQ2/INCS1oBMAOtQqXiIAaPzubtKY
+ FXjyYWS5BoN/HgO7TuwiGuHHwhCwiRrCmjB6H6Ht+NvwWDijSpO7u3EdnhynC59ZSbiIHCdWY9gvU2DZ
+ tLWmQ5Pd/CnOTbkMYQnl7+VGPxEZMwCj97uxin9IhHz4rPgOMddohpCBzFFImwWZp59Yk2noBIAOtYpK
+ AoCq0utIowtXvijoD/tn9F7sgDZj/8d6c1pwPK4vLAa/kGl9L4B9lx0YvPFrGNbTPK9X7I1T8P4+C1LJ
+ Z4y5UO+6HRi6tSMaeQzSeGxBUQEufrOD7ObU6KdMEqBvGooRO21h046dkij82B4i5Oi9p4Md3ruFNFoM
+ RKTSfV8CnQDQoVbBEABUBaYVfKirr/x8T1Xaa2g7zhfuc1eAq6+kx/gFZTg58QE5o1NPP7lVvAQGZtsw
+ /sRUmDSwU2MabOQ8C8PFr38n96CutHLvOlpk4xK6TIlBt2kzNSoRVjGKSAi/1VsRfYmm6aLeiLIjDlcv
+ Dp5L+Gg5iq1VJAfcwI3FV4imsIo1F1mhU2okzVH53i+BTgDoUKt4IQBOQ2YEOwWlRxuFP9nND2DU3v2s
+ N/ELSsnOfw9pD5nZbkTkPH4U76xvDgfXXhpPqDg9EZe+2YqCxMVQUnIUd9Bi6FX0X726Sh84aPchhOyn
+ fvyejN5sdP08Ft2+ZBsrCxKicG7qJvJ5aXZfZq3Cu6R9QFpKVb9/nQDQoVbxQgDQCh7UeYXp1JMCi0Zr
+ ibo9G/UasxP1+W+4h4gT1CFHXi2H/i6vwX1eMdpPVCnF9StxeeY8JN+jhkOmBT4DNm1/wuBNC4lm0VDT
+ oZF45yZuLMqBWEB3f7nWUo5GvQKJ4OoJPSMlm0ALeNKin5lh9IzP9GugMf108QfgNW6+qkAnAHSoVezz
+ Ova/3L8n0QVBjX5yS3gZUfcXYviOiWjYlZ3v+um5x0QA1CeLiEkPJhHV+Qh6fzcbPANDFW/NRoUf/v5N
+ CN5LF9s7jLkUkjGXY9yxGUQgaV4mqCglCeemHEFZLl3QcqpSAjP7uxhzqAuMrRW5Cioq/vpv+AGRp+ln
+ pz798uMGTRhIKcAD0MDi/zLoBIAOtQahoAy/LOxySZT9dDCYOyKHtwd9ltZDy5GTWW/IeJyC81NpCC6T
+ BkuBTbt9ZBGtqNJkoi+ehs8KmlOcLlA59VgOfZN9GLCmORp7Dtd47NJs6sCzFzlPZ4MZPWhsHYKhW+zR
+ oA1bqwg9uAOBu+ham8nopUY/evyg/v8aG/0qQycAdKgV0Jx+Ef5/4eLeKeVkx2NGz51Eq9GhRACsYb2B
+ hvdemR2B/Hh2eK+5w15yTBgGy6YuKt34Zch6Eoir8y6hLGcO2L71x9FtWg66fjFd06ErcHPJJsReHwpZ
+ UJMcsei/SogWw9g5w1LuX8e1BT4QlS0kz+QZgSSQZfKl88jV4r9BJwB0qB0kRd3GxT2TUZAVy+wOh12n
+ XzBk808sBxvq6Xd5lh9SHvQAU33m8H4nO2grOLm7q3FrNiQiAY6//zWKUqlrsTPjlWdw7r8b/VeuYoUa
+ qwWyXsKPHca9rS7kiEHnKFflC9Hug3C4z+lJPoOSTSjNSsWZTxeQvxvADjV+AlkAUry2/w86AaBDjSM3
+ PRpntryH7JQnzO5kmDsuxuj9G4lqrKxnRxf/7XV3ydmfns3lwTyUkrsDj0XJaDP2QzVuzYawpBA3v/8e
+ Sf402IiZQzyWaBTrMe7oTrJANS8QmODnh2vz4smjj6Fc/CVo1CsYQ7f1YV1bnkeOCXMWE22E7vxMrYCW
+ Fab0aEB1/C/qlAD4+95t9G5VD05WRsgvFcH/aQGGd9ZcuOsgg1fIXbRzNIVYIkVESilGd9OcJasqykvy
+ K0p4RQefU1S6BZdXou/Q7YSo6zRXqV0nVkgt5/nlROntH40gKrdV9OmbJvLajQsRuc0YXZW56D055iUJ
+ O2IlKUpTHiu4vFJ9p55nRa7Te0qtW2mcNYiTF5PEu7clVJQSOITs/gqXXo5dxyhp/9WNyNHFlHm9/qMD
+ h8URZ1wkxenKfw6HV27YrO8ui74LfTl6Ri81+pEVKZaCE5e9r28UNECdEQASPMWiUY1hYawUuCLy0f68
+ k46Vp+PxsUefKoyuXVx+FIAp/Rqil0s9WJjwkJTDx+XQXPwdkIGPe9edeV4MDcDaCU0xpJMVuByZXYt+
+ pxdCsrHiZDxGda1ZQSAm2va98z/h7rm1rIq43QbPhLiRB0K57PVmVhQL0+CdyIj2U/TRXP7dxqxCiHEn
+ lPM01MwJWogSYZF6B49u7mKU6ObAdehs5Nn1RIyB5hnDOFIJPMqDEHJhDUry0xT9ds7dUNxjIUos2GN3
+ QhJ4ib5kLrsZRUX04TrkW/Qetwr6Bq/PMXLAxzeMz9GfVbjPw0edudYJAWBi+ByLRzd55evXw3Lx2e4o
+ fNa3b3XcXi2k5odh+6cuZM68f7wWRXbXT3ZHYkiHnhqMrF1cIov/3PwORJt6OSuWkF2O0ZvCMKpLzQgB
+ mss/1HsPbh1doKzey+GildtY2HSbhDsiduluw/Is2DzaieTHFxV9evrGcH33e4Rb9ECxnqU6t2fBSpSN
+ zoIoViVhWsijWadhsHSbjGBpY43H1pMKKwp2hJ1diuL8VEW/hW0L6PeejxxrdiRvY2EyWoqTKr4X+eKn
+ c2np+h5GTv+DfGbVWc0Dvr4ijoTzQeb+vqdVfU+tC4Bbkfdxa2ln6PP+3bNy5qFoWJq01fbt1UJwXBDO
+ zusAA71XzzUqtRTD1j+qdY2lp0s6RnSx/tdrvB5m48Fzzf1aVAUt4Jn89A4u/PoxqyafTaOO6Dp6OXzK
+ bMDnKnc5WsDT6elhpN3/g1Vpp437RBS2eA/JBpovUDNxIXrqpeDusfkoLcxU9NM6fK3emQPfijqar6/i
+ 8yq0KY9A6cM/kPCEZuSSLRdjcxvU6/EF0pu+x7rWWpSDbvqZFZWEmcLCoYU7hk87AGsH9WONiBDIA1fa
+ ImtPf5XYgloXANbmsZg97PXp0x/EFMIr2FqFEasPgztmwbP163eexcdiocdVryKMNnGBnPmD1rqCx/33
+ HzK1CXT7PqjatYDi/HSc2vwu0mNpTT7ZT8jEwg79P9qM23xbFPLY36ljyjVk+2wEvzRf0efUsjcse0xF
+ uJHmWbco+nJjEH1zK1Kf31P00Uq87uPX4Z7EGSV6FhqP7SRIRL2EK4jwO0g0HjlVz0Hj3tOQ4jIJYj3W
+ sR/DTVIRevEnMhelfY/W9xs7+zScWnmCw9FMEB3yvz0j49c+O1W5ttYFQK+W6RjW+fULW0R+rJ0WBWKs
+ m4cKo2ofpwP98Xi922sXFcXtqHxce2yjwqjVg1JBJDZ93EKlaz/eGYGmNp1UulYTlBRk4uqBLxEdfFbR
+ Rwty9p6wDs94jZFcqXpvg3Q/CAK2ozA7XtFn7dgWTd+ZjyCDDlWaS088R+b93xH7+LKiT9/QFJ4TN1bU
+ 78vVa6Dx2BbCXLTJ9UPQpZ9ZqrxT59FI6fQtJHpKDYdHjgl9DTMQ47PjhaYgg6FJfQz+bBfa9JhA3qtZ
+ rBHFAV+f/Vn7+n+uyrW1LgBcm6dhdDfVvvjp+5+igXnVdgBNkVP8BLumqFY7XiCSoN3CB5jY01Ol67UN
+ VdR/OapTAEjEIvgd/x5BV7exFoXrkFkob9gTYTx29V6LoucwfLANWbHK3Zkuii5jViDEqBP4PFO17s9E
+ c3LOtkzxRSjD0MbTM0SnAdNQ4NQfMTzNivhUzFFcgq78xwg5uwLlJUrN26ZpD5R3n40iC7Yw7iCJg3Ha
+ g4rvRV7em86lG/le+oxfSx5rnmCI4oCP78Gs3/pNUeXaWhcA+nrRWDbWWaVrT9zLxONER5Wu1TY6Nk7B
+ +J62Kl9PjZZOVlXbsTTB77f9ELbBjcWm/BvclgZhaEftU6303B91/wTZ/b9iFfBs3KY/WgyYBV++HcRc
+ ZcIbnrAUjo+3IynkjEJ9puW13UbMR6RVHxQaaL47Wwmz0EWaAL+j85QGSIKmHYbAtsdk3Oe0oKWFNR7f
+ jR+GuBs/s/waLKybwMB9FrId2IZrJ2EqWkmScfvvRYqqxhQtur6LoVP3wrSe5lHMchzw9p6VdWDgdlWu
+ rXUBEBAdiBvfd1bp2qxCAbosCcJnfWqWDTjo54uQH11hY2Gg8nt+v52O6DTNdxVNEZESglNzVNOSnqeX
+ 4rCf2rUrXwu50e/M1rGsirkNm/dAlxGLcanMkbXgeMJiOD0/hoTbe6Aoc02Nfp6foqDJcKQYNVF3CgqY
+ CgvgzkvA3eOLUVqYwZpLy3dmw1dStcXfviwc+Q8OkM+rpCoNTSxh3Xc+Up2GsMa2EOXB0ygLPn/NZVTz
+ 5cC+aTe8P/c8zOpX3SC739e3sCzYuUXJQ+csVa6vdQFAMX1QMRzqq0Z3DP3pEdyauap0rbYQFBeMy4s6
+ qvWe5Bw+9tzUnKfWFHaWcZgxWLUEuPu8U5GYrfniehVy057h0t4pSIn2V/SZWjaEx4SfECy0Q44+ezdv
+ GHcG+ff2oqxI/pvloEm7ATDp+gkijdupcedKkErQjxONpze2IS32gaKbWuV7TfwZ98VOKNbTXAA68RNh
+ EXMWUQFHlaq8vhEadv8fUlpPhpSn/E0bikvR3yQbD8+tQmZiqKLf3KpRBd3XqHUfjY1+chzw9ZVwIP04
+ c1//o6q+p04IgDaOyfjQQzXVZ4NXIorKNI/K1ATmxjFYOEp96qnf6hB4ttI8Ia0mmOSRj7aOqp2VJ21/
+ ghZ2qmlfqkIk5OPi7k/xNPCUQpWn59t+E9cjWq8JEg3YWlGD7GAI/H9GYUa0oo8Kiw6jVyNIvy1EXNW1
+ rsrohgQUBP2OmNCLirlQo1/v91fhkWFb5Oprbqg1E+ahfVEggs6vgUhQquh37DAM2Z1ngm/MPi72JlpI
+ VvCxiu+FCib5XOj30nngV+ByeWrdvzLIzv+cIxbPJKr/FXXeVycEQFpBGH77QjXOMzCmEOdrmA4c7ZoD
+ 12bq00OrTsdDKNI8SE1dUOefoLXdVNpJSvniCkOlNv0VaHiv/6kVCLyyhWXc6tj/C0icB+ARzfDNmJtp
+ QQzKLs3JlBSlKlcLz7BAv+Uwb6HHd6PB1dPYFM6N9w3hPjqULsoIo1F4sptyuCI9uw4+ks6fWUsa9+6i
+ 6dgoyyvRD9p1Q/jUazAkIoV5n2PRKFE6YI0FbNuxeE29Z17eiDglFGWGD1bMBRyxvmNXL/OBK724hmYa
+ h/dypNJy8p0+z8q3CcWJdm9mVuDj9+8gfL0b9FX4f1PuumMN0oHq0H+VUdN0YJkwEj9/pBr9R70r/SKr
+ bnCSg4b3RgYcw7WD01nGLRfX99DQdRL8JGz3V8OyTDSIOIiU4BPMbj7MGu7DkM3vwNpF84y7WZEhuDL7
+ DMpy5kEZUktxGl2mpMDt65maDl0B7x+24PllmhSUaWxJQN/lJWg1iu2tlhrsi8uzLkDMp3UF5IKBBkF4
+ kUYt9Xmq3LK6UCcEAMWwztno1VK181hN0oHq0H+VUdN0oLtLOoarSP8t+TsWPI72nJVSn9/Hhd2fIC/9
+ maKvvp0LeoxfB78ya5Ty2FW5GkUdRPr9wxDyFYVs6O51BIM3NYFzX82/MIlIhJOTpiM/7jvyjHlWjEcj
+ D1rGazUMzDT39ok49Rf81zsSNZ6qTsoCnq1GP4bnYneW1lKanY5zU+ehKOUnsAucRJJG3QKfau0foCHq
+ jAAwMniO78eoZpCqSTqwY5MUjO+hOv1XGTVFB6pL//VcFoxB7bUTs1CQnYBTP49CVjJN7Sf7iZhZOqDf
+ x1vhU2rNNrSRs7hj4kVk3d4GQVmhopeo5/fRc/YztJ/4CXmsmTWM1ti7tXwZ4m/RUl1UaiuLipg7rMGE
+ UzvB09fcqJB09y6uzImCVDwZysVfBsfugRj2S2/W4i8vyMXVuYuQ8YhmGGL+AOIgq+Ljp+JdqxV1RgDU
+ RTpQRv+5wcZCc8eMmqIDI1NCcLIW6L/ykjxcPTAdUQ9OKIxbNGKvx6glSDJrjXg9NiNhlXkfkoAtyM94
+ zuyOQLNBV/HOujlVmkzw3l2k0UQiExm9RTC23oohm4bCtr2bxmPnxT4jx4rLKEqlwkWZwcjSOQBDt7aG
+ hRO7BoHv6qUvchgwFxd1QqA1D/6AhoU8tI06IwAo6hodqAn9Vxk1RQfaW8bhmxqm/6in3/0LG+B/ZhUj
+ pBbo8s434Dj3wUMum60xLYqD2cNdyHh6S9nJ4fFh1WITWUSfw9RGc1Urwe8ivJc+J1oAc4HS3+sO9Fvh
+ hJYj39N4bIozny5D1hNaupv5JT/Cu/ttYN+JXcjjqdch+K3JI5oCLfzBqFWIX0mjR5NSVW5ZE6hTAqCu
+ 0YGa0n+VURN0YE3TfzS8N8zvELyPzFMG7XC4aNZxKDlqT4WfkByTOcrjiD4/D3Y0vPfReYWmQMN7yeI5
+ L/L4rgvZQTVXkwoSY3By4i8QC2jSTPn5nu6w3ug2LRRdps4Fl6cZzybi83Hnpy145kUzDyl/DDyDZHgs
+ zCNn/w4sR6LUYH9cmnEEEuFGKAt50LnQWoe0slGRyveuAdQpAaAOHRgUW4hzQdVLB452zYVrM81LystR
+ 3XRgTdN/1NOPGv3ObZ+AotwkRT8N7+02ejm8y+wg4Cm1ZK6oHI7PjyA14ADEwvKKvoqY9+7jEW3lES5x
+ 6qm5RbckKw3X5v2ErAhayMOe8UownHoexfAdP1fpyw07ehIBm6hkVdKJtBpP2/Ex6L2ILdXzE+gxYTMK
+ k2h+QaamcJ80WmIsskpzqQbUKQFQl+jAqtB/lVHddGBN039Feak4v/0DJD+jnn7y8F5beH6wHoFiB+Tq
+ sQWzQ8o15PluZrkFV4T3un2GcNMqBiJ5L12K51eGoHKlnXqN12H4zm9h3lBzFS4l8C5uLIoGv5Du/kpD
+ UMOuPhi0oQeMLNmpes5/MRXpIXShMwuYUppvHGk+0FIuf22iTgkAirpCB1aF/quM6qYD3VumY7gKIdUU
+ VaX/yopzcf3wDETe+5ulyvee8CPiDJyRoM/W5K0zAiC69wsKGJ5+9WyaoeWwxQg26AAJV8Ocm/QMErz3
+ F4QcaEYe06q58l2jFIb1VmLEro/RoJXm9EtJVgZOjP8NgmKay19+thLBpEEAxh1zZS1+sYCPgM0rEHGS
+ /oOHgl3Ig/oiHEIdMfpVRp0TAGrRgfcz8TiheujAqtJ/lTF5dyQaWVXNoPgyUPovfIMbzGuA/qNGv9un
+ liPw8maFKk9z13Ue8CUkTfpWxNQzYVYYC5PALciMYSS8MLVC51E/IMS0a5XCe5F45xpRtx9BVshDWb2X
+ wz2MAWut0XyQ5iXCyvPzcG3BDrKbU4chpVefocUTsvObwcGV/QONOPUH7qyjJbtoRl+5rYFaRWlSDmr0
+ E2r+QasXdU4A1AU6UBv0X2VUFx1YU/Qf3XCfBZ/Fld++YMW8N247AC36fQNfgQPEXOX3pScsRsOwX5H8
+ 8BQrvLfL4FmIsxuAXIMqCNe82ChcnvUbitOXgV3I4yraTQiBx8LvqvSl3lm/HREn6G7O/CEmwn1eETpM
+ YkcnpYfewbX5p4nQoHNhugBTTz/KAqS+9n61iDonACjUoQNp/j3XptqlA7VB/1VGddGBNUH/UaNfWswD
+ nP1lPMvoZ9u4M7q9uxQ3yhpCyIh844rK4BhzHCl3ditiAjgcHlq5T0Jp81FINK4Ce0MdbC58tQq50VQ1
+ d2a88hiNPY/gnZ9WQM/QSMPRySh/HsH97XaQimnlYbkBqATtJ4agx7e9wNNnePrlZODUpHkoy11Lnsm/
+ WLpGIkijx5J4zT9ozaBOCoDapgO1Rf9VRnXQgR965JPvq3rpv7z057i09zMkP7uj6KNGv94TNyJYaIuc
+ SlF1DePPoeDeHkbSTQ6cWvVGvR6f44lRFcJ7JSIhbn6/DHE3KafP/CIzUb/5jxi+YxFMbTQPqk8LeQCv
+ aWFkDX8CpdGvDHadHmDUHk+Wpx+/KB/XFy5EauDXYGsKVEJSQ6A3tFC9t7pRJwVAbdOB6tB/9BiiaqIQ
+ bdOBlx4FIGhN9dJ/NJf/pT2fVXj6MWPePd9fhXijFoivlKHXOicEIv+fUZCudHM3t3JC2xE/INiwQ5XC
+ exF2ZDcCNlNPP2Z57RKyMH/C6INjYdNG8wi/orRkXPz6DxQmUc1CaeAztb2PEb+6wLKJFev6e1vXEG3B
+ mTyiDIGy6g+wBLKzf500+lVGnRQAtUkHng7yx+OfVKP/hCIJlp+Mx48TVSsioW06sLrpP5GgHPcvbkTA
+ ubWsghXtPT+FvssQBFOtl6P8HxkXJaBe8BakM+hBY7MG6DxyMYJMu5NjwusLXLwS8T5Xye4fCjGfWtXl
+ i18EnsFB9F5cD61GTdB4bEFxEa7M2Y70kKnkmfJL0jcNw+Cf68PRjX3Gijh5EHc35UAi/BZKTYEaOraQ
+ thIyQfBGoE4KAAp16MCvDzyFtZl26EB16D9aumz6gWcIXecKrgoCQ9t0YHXSf9ToF3n/eEVGX0bQTkXu
+ Oqce/4OPmG3xNyzLgk3EQSQHH1f0UaNfp6FzkWjTGzkG9irf+x/IiQ7HpW+OkLM2tbLLDW30t3gBnT59
+ jh4zqxZD4LNiC55deAfsoJ1k9Fmai9Zj2MagjLB78PriCDmOrAI7vPcqZNpAQZXmUsOoswKgtuhAdei/
+ NWfiwRe64P0eeejcRDUDn7bowN/v+FVoSdVF/6XGPCCq/2TkpCqd1yxtm6Pn+J9wu8z6H/nzGz09jIz7
+ h5S5AIhmQNNbl7iMRqJxFY49ovIynP98PrKjqGrOHCgWTj13YOC65TA01zyy6en54/BdRQN5qNFPTuEV
+ wmVEOPotd2dFJpZkppBjwhLkx1OXY+bZh2YDpQFI4Zp/0NpBnRUA6tCB2eQc3lkLdGAF/bfODTbmqtF/
+ A9aEwqOlG+qbxWLucNUoPm3RgZGpITg5u3rov5KCDJzcNOofhTz6fbQJd8ptUajPOA5LRHBIvYkc303g
+ K+hBDuyadoNdn1kI028FqabprkT8ctz+cRWiL1JPui5QWuVTydl8LcYdWwtDC81rhKUGB+HK7GCIymgO
+ ffkkBbDvfB9Dt/WAganSYEFDja8vXITke9SfnylJU0ijR4dreAOMfpVRZwUARU3TgerQfyl5fOy+Ltv1
+ QxMewmuBak5nSTnl2Huz6vEF1UX/0fDe67/PQsTdI8rwXiNzuI1chDSL9oitFN5bP4sIiYDNrEQgVg1b
+ ocXA2Xhgonn0bQUe7t+DoF/pl/wRo7cYxlZbydl8EOw69tB47PyEWFyacQbFadSKrzROWDQKwPDt/wzv
+ vb1uGSJPUQrjA0YvjeqjzkKH8YYY/SqjTguAmqYD1aH/aNXip6mynfwQ0Rwe/eQGKzPVNAdt0IHVQf9R
+ T78Hl8guf3qFwtOPosvA6eA690Uwj21wNC2Kh1nIr8iIUla30TMwQbcxKxFu2gUl+ppvzkj0v4qbiyNe
+ hPfKo+qoRNqDPj/YoPXocVX6As9NWYGMxzQlF/MfHo5Re+uhYVe2ihZ9+Qh8licTgTiDMRdKiewnbS4o
+ VfiGok4LgJqmA8e45qKbivTf1L1RcLBU7vpdm6biPTfVLPy03LmoCnQgLU8euMZVpXT2qtJ/1NmH+vff
+ ILu/Ij03Occ3auUJl4Hfwo9vz6LweAKinYXvQkrIGRY92GXwt4hu0AcFhlUIOCpKyza4v/m0IP72JHLE
+ kP9DpBxjqwhe50+fiNqOHwuegWZBBGKBSC/8iJc4eH9PqaiMWiZl36K+SS6n+4x8advxzZhfLCfzSbR+
+ 2O/XBLE+UyEVK/IMcE0aPKw3aOVmfbt2hepPQnsg/zaxFJy47H19ozR5f50WADVJB6pL/9FF9QHDmp9f
+ GoHtk1Vb1H5R+bheBTpQ2/QfXfwZ8SEVBTyL81IU/TZOHdB97CpcLbGFqLKnX+wJpNymnn6Cij4a3tvC
+ dSxEbcYjzrApNIWpqBA9ecm4f4JdMde2SRe0HzIf3qhaHkOX0ieQhJ9ATOgFRR8tP2bdaxpSm7HXQT1R
+ LnoaZCHgxGJWVWM7524Y+dXvaOBUu9WqmTjg4xvG5+jPKtzn4aPO++q0AKBQjw58BmszzTzN1KX/rjxi
+ F7c4F3y3xuhAbdN/RbkpFQk9EyNoph5leK/HuLUIlToiS5/NitgnX0OR/y+M6jaAo4sHrHp8hjCTqiUa
+ 8ZA8RZL/b0iMVGYNohVze76/BiHcZijQ11zLc+AnwSrpGiJ89ysEF0WjXlOR5vIhRIbs39lQwyQ8ub4V
+ SVG+ij5a9WfMrBNo0nZAlQp4VgcO+PqKOBLOB5n7+55W9T11XgAYGUTj+zHOKl1bFTpQHfpv9Zl4CIT/
+ 3O1rgg6U0X/dYW6smmX9dfQfv6wIN/+cjXC/w0QTkNmxKH/fe9wqpJi0QIy+M+t6q6xgSB/8gjxGHTya
+ ALTduysQrN+OpSmoBakEnSVxKAs/hWeBp5VFRcixotd7K/DMpA0yDDSnemkBT9eiAAR5rSOf+QVVT444
+ jq37I7P7dxAaKm1+HKkIvfRSkRX4J6IfnmcUFTGD57jV6DZ4BvmONAxjrmYQIZAHrrRF1p7+uapcX+cF
+ QE3QgZT+C13nhgYq038h8Gj5TyNeTdCB2qT/aC5//9MrK7z9mOG9HTwng9dyKB6CzRyYFCfCInAz0qOV
+ MQE0vLfLqKUINnWDoAqefo0FiXDMC8b9CxsVuzMVRG09PoLYZSQieZrnMDQUkcUvjkLg8QUspybrJt0g
+ 6v4tCuqzVfk2wlhY5T+B/9nVCiakIpLxnenoP2kDeHpVcGeuARzyvz0j49c+O1W5ts4LAAr16MDHcG3a
+ Ta3x1aL/cvnYfePlu3xN0IH2lvH4ZrBqO+G/0X/U04+WzLqw+9N/VO916f8NbgmcWMk69ASFsI/Yj5Sg
+ v1nhvR3f+Rop9gORZah5DI6VMBsdxbEIOLlEmV+QwLnDYNh3/wT3eJrXCKHoUhaKNP89SI8NVPTRmnxG
+ 7jOQ5TiQda2DMBWtJUm4e2oZyotzFP3NO4/A4M92w8JaNeq1NnHA12d/1r7+n6ty7RshAFo7JuMjVenA
+ C4koKlWPDrQwjsECDei/yqgJOlAb9J/c6Hd+5yQWf09VXFqj3pQsjpKSQqIhiCq0BIlYXJH7PyHouLIO
+ HlGfW7q9D2HLMYgz0dwwpycRoC83BiFea5CbpgwgokVFOo9eDn9xE801C/I5W/KfQfj4KOIeXWLt5o4D
+ 5iG58UhWAU99STmGmWbh9rGFyFNkMOKgno0zJiy6SubUosoFPGsCB3x8D2b91m+KKte+EQKguulAdei/
+ KXui4Fj/1bt8ddKB2qL/CrLicW7HRKTF3Ffre1KCA4cWPdDA4xs8Nmyj4RhkIUqE6M2NR/SNLazqvdQA
+ 2WvCT7grcUapnuZFfGz4KXBKuYpQ770sm4JjtwlI7DiLda2huAz9TXMQfGYZspIeK/ppJOPQz39Ds45D
+ NJ5HTeOAt/esrAMDt6v0Hb0JAqA66UB16D9qvW9fif6rjOqkA7VF/z258ycu7ZvKsoSrAwvrxmgzbDGC
+ DDtBzNP8PNxBFAPJ0wuICDjKqt7rOnw+Eiy7IVXfQeOxzYW5aFccgqCzKyASKv107NsOQUHn6SgzY6vy
+ PaQxKH16pSLVuZwJoU5NfcavQbfBM+us0a8y9vv6FpYFO7coeeicpcr1b4QAoKguOjCn5Al2faYa/Xfn
+ aT6uPvr3Bas2HbjgASa6q0YHaov+8/5rXkVeP01Ad1DXd3/Ao3q9UK6nuUtzI0EinAoe44HXOmVREXKs
+ oKHG0uaD8URfc0cpqll054fiycUfWRmMrJ06QtjjWxRaszMRtxEnoF52CAIv/az0gCRzoR6QfSf8CEMT
+ zbWQmsQBX18JB9KPM/f1P6rqe94YAVBddGCnJikYV0X6rzLGds9FF2fVFoeqdKA26b8/V3ogJfrui2cc
+ cqTgVpTt5nCYj7myxuWSc3+ZwtvPooEzJH2Xo9ha84S79YU56Cx6hrunfmAVFWnafhBse36G+xzVtJyX
+ gpzzu5U/RsKtrchOVgbnmdazh1n/Jciw7cW63EaYia7cZPgcWaCgB2n6ssZt+2HsnLMwMKr+qk7aANn5
+ n3PE4plE9b+izvveGAGgFh1YJETnxYGvpQO1Rf9VRnXQgdqi/4T8Uuyc6aSw/NO8foJGniiUGlBR8GLR
+ c2SPyeLnkucWideRESuzF9CQYHGfH1BkpVn+BWpo60PO/Q/PrWQY2siPy8A0Q7/deG9Bp8ljYGCmMZ/I
+ jb/1EPe2cCWFaR2px66sU6+M2+rdZInnErb0Ls7INYw8foof9vf7EJUrQhw5huYppt2/3GPUemSCpvOo
+ KXCk0nLyT3uelW8TihPt1K478MYIAApt04HB8cG4tLDq9F9lVAcdqC36Lz3uIf5Y0VOxo1t1nYiiLjMg
+ 5L06j2bzkPWICTxR8Zha58WeS1Fopb7HJUcqRi+y+BN8dsiKikgVv9dsGNVfjff/WgRTW80P/pnhj3F5
+ lh/4hTQbr/zQLkaD1v4YvsONnctfKMSN7+YiwZfmFxzAGIVWL/mCtPOog4U8tI03SgCoQwduvJCIwtfQ
+ gRYmMVgwsur0X2WoSwf2XRWCPq3/XbPQVvTfw+u7cP33mYrF5zJyFaIdhv/reM1DfiIC4GTFY2uHNhD1
+ XowCS/X94DsJn0H07DKe+P+h7KTFQQ3NN2LwzwNh39ld7UHlKExJwoUvj6A4nZr35QtdCrOG9zBydxtY
+ OLJDE/03LMeT45TCYFYSpgYA+v4DeEPDe9XFGyUA1KMDi3AuyOpfr9Em/VcZatGBp+IhEr/atqAt+o+G
+ +9Jov5Cbv8o6iHrfe+ofuMP9dx6/adAaxD08W/HY2rEtxB7fIV9NAdBYmAz77AcIubaNHENkKfPoWZtr
+ 2fimuP2kTLQZO0mtAVkfTCTCpZnrkRr4McB0X+REkp3fCE492NFJsTdP4cYimrqb5hdkhvdSyUTzA/BV
+ ue3bgDdKAGiTDjwT5F+xS2uL/quM/NIn2D5ZNXbhdXSgtug/muzjzLZxSIzwrnhOveG4o3a/NnS38b1l
+ SHx8qeKxJgLARFQID04c7hz/ThlqDA4aNnNDtk33v4XtPxwDnoFmQQTUpTFo906EHKAGnw5QZA3iZKDb
+ F8noNo19Dsx5FoaL32xGed42KIuK0N+1H2SJR1JUvfXbgDdKAFBoiw7MLXmCnVqk/yrjbDARMOvcVKID
+ +VTA/AsdqC36Ly8jBn+t6q2I4qOefM87zoXkNQE8Tv5LkPzkWsVjdQWAsagIHvopuHd8ETvUuFFHdBzx
+ HW5Kqlh/MeLUOdxZRx+NZvQWotXoMPT9gS39i9PJMeGr5ShMXg6WpgBaYoxqIHWuem91440TAOrQgSfv
+ Z+LRK+jA6qD/KkMbdGAF/behO8yNqk7/JUb44Oi6gS/O/xz0HrsC96wGvTZXv4PfAqRGycJzGzi2g8hj
+ kcoCoJckCqn3DiM+/LqijwYQ9Xh/DR7zmiFPv4FK47wU6aFBuDrvEfgFNE+f/ENIYNvhDoZscoWxlYni
+ Wur/fHnW10gOoOnD+zNGodwfTfN1Hf8Bo19lvHECQBt0oLr0X/81IeitAv1XGfVNYzF3RNXoQG1G/wVe
+ 3grvv2QZtKmXm13/+UhpPJKV2/9lsLs1GxkvIgBlAoBqAK9xASY/lQ7SRIgjzyLq3jEF60D98N1HL0Gc
+ eSekGlYhOaqwrAwnJvyI4jT6geTGHik5StzD+BNsox9d/CEHNiDoV7ob0MUu/8dTox8t60VViP+E0a8y
+ 3jgBQFFVOrC66L/KCEkIxoUFqt3nVXSg1qL/yL/u3PYJePpAZs2nMfwNBi9DvOXrE6na3JyBrJh7FY8b
+ OLWHqNei1woAJ34imhQ9RsC5Hxnhvfpo7T4JnNaj8YSreXgv+IUFuL5oM1IDqRFP6aZnYBaFgesM0Mid
+ Xanl2YXj8FlBHfzXMHqpRNoDmSFQM5/otwBvpACoKh1YXfRfZWiDDtQW/UcNgEd/HIjMhJCK5zTdl8OQ
+ H/CI9/qqRtbXvkJOfFDFYyoAxOQIkFfv1QKAhvd2EMfi/qmlrErCTdq9A4eekxFQxfBeBGzZh7C/qFrE
+ pA1T0H1mNjp/yvbzzQx/gKtzj6Isl5bsYhpyqMfcNMhq+f1n8UYKgKrSgWPcctGtafXQf5VRFTpQm8k/
+ MxJCcWrTuwrf+Ibth6Oo+zwU673eoGp15QvkJsoEB02JZWDXDkKOPqQ0VFgiIn+lkEjFFVoGVf2puUKv
+ NJPlh0+j6nqMX487IkeU8zR0r6Xjx173gs9KKcT8EVDm8hej6QA/9FvZG/rGSmlLec/j709CYTIt18U0
+ WtCqpf1Io4k068RvurbwRgoAtenA7wIx1lVmEK5u+q8yqkIHlgsjsVFLyT8j7x3HxT2fKoJduoxcihCH
+ MSqNXe/iZBSkaF70pqKS8AcbcFvsjDK9KvjWZ0U+wZn/3SCPvoHS048PKxd/jDs6gHWtoLgQN5fMRdJd
+ mrefqRXQTKM0WcZlzSfy9uCNFAAUmtKBatF/ZEFerWIxz6rQgdpM/nn75DLcpSmuCHh6hmgyci1ibfup
+ NHZVBAAN7+065FukWnVHkkEVsukUpSYTVf5P5D6nnnpK676pXTCGbnGCdUu29AvctQkhB6iaN43RS+OC
+ l5G2FbJinv95vLECQFM6sCbov8rQhA7UJv1X8R38PLIiBRgFjegT9luNMivVknk0ebACCYw02urAqWVv
+ WHl8jcf6VeT7r8z5EYm3qQWfadCJwqANBkT9Zxsy4n3OwvuHRxCVLQBTWACHSKOsQf7rbvdfwRsrADSh
+ AylorH4Dc9WSWGhK/1WGpWks5qlIBx72S8fz9EaISg3BCS3Rf2KREDtnOKCsOLviuXP7QSju/BWyTVSz
+ xPcWPEKUz68Q0QhCRaiwMmRY0cflkWO6BNnJTxQJPtC4NzBkC1QyZLwMNB9ZwKadeHKcqviML4STBfe5
+ CWg/kW0kyYuNxIkP1pOjPd3l5VQg5fdpzfKhkJXz0uEF3lgBQKEuHUh/J6rSf8m5fOzRkP6rDE3owIb1
+ 4/H1oKrTfxTZKZE4sLijYlE6uX6Agg6fo0i/vkrjUzgXh1ckBqULn/siT4DiL1n4PNLoX1szE/gc/EKZ
+ ULOJp0wAaIrnVy/D+3uqulNPP2X13qYDwsjuX8nTL4MeE5Yh5ylV850Zr9Ac5pNJC9J8Im8n3mgBoC4d
+ SPeJ+TVA/1UGpQNDf3KDtRp04O7PW6KNg3Zq/0XcPQqvXz9WRAA6DVyA5OYfqDS2uugijELUidkKbYPT
+ pA+kQzTLPoTsp09wedZNlOVMh9J5B6jf/DaG7+gCUxu2hL7x3beIvUF3+WGMXpoHnIb3UgeI/5yn3+vw
+ RgsAdejA4NiiijCRmqL/KqOLcyrGdlfNoLiX7Ohf9HfQCv1HY2Vu/jUXwVe3vejhoMfk/bj///bOBCqK
+ K23DbzU7gmIQXNCIgoK4RIxbJLKoqEmME2NMTEb/RGOcfxI1x4nxGGNiMs4kMctvMprFEdHsLqMmLhl1
+ HEOL+4Z7RNkiINAgqywNdPd/b7U0i0pXQ0PZ1d9zTh+6mrrd1VD3ra/ue+/3OVtelEQKD2gvIXHLfFME
+ IPhHwDD2E8vfqDQ3Bz/PjMHNrFfZVk1HN8DN+xgmxgSjXbc6M/3Ylzy28j2c+5av+nsOtWXEueWxAMYJ
+ PzTodwdsWgAstQM5rWX/NcQSO5DXHpTynTjm7D9tWZGYATj1nDFTlJtHB3R96gtcdTY/Aagp9C8/j6tb
+ XzNNAFL1iIQ++mPL3kRXqcXeBSuQfpgv0Km9t1E5XkX0RwK7rajvjabF7WD787TCb6D+8t4NMFp+djvT
+ zxw2LQAcS+xAqVjD/msItwP5+gMpAmQJ5uy/4rxr2PD+GFP6rftDRiH9oWX18uFbk35lZ5G07XWTADj0
+ iIIu+iPL3uR0zGqc/GoQe8bnKdf8wTQY+MI1DJ1Tf+5yQcol7HrlY5TlcpWpO+OLL17gi4TSWuSLKgSb
+ FwBL7ECpLNuaxqKA5tt/DbHEDpSKOfsv8+oRfL8s/NYAoIDhjy/CCd/Hm5XOuzFCShOQvG2hKeegY89R
+ qB7zofQ3SNyxCweWadkBT0Jt5y9F4CMJiFw6gkUBtaFR2Y0c7Jj9Bop+51f+uv8wvqyXZ/o5J/lz7RSb
+ FwBL7ECpRC1LwMMWVuyRgiV2oBTM2X+chH1fYu/6l8XnPKV330cX47zvWBiElslz36fkNFJ+XmjK9usU
+ GI2qUe9Laivk/paiOrz8ii7n4hh2Y19zgHqhy5DLhtHvBcCtjuWjr9I5J6yNqb60dbi+PL92pp/KodQt
+ eMInHg/NOSk4ON1z56u1YT1SZ4CQmrcm4nJT2tu8AHAssQPNYU37ryGW2IFS4IOF6XmNe/n/jnkJ5+Ji
+ xOd8Sm67UW8iy1da0ZSmEFx8EqnbF5kEwLnXWFRGvWe2nZOuAkPLT+LU9mX1avJ1ChyBomELUd6m/izC
+ wfgdlVf+jQvxX5uWGvMZjsMmLETYpLdtppCHtYiNU5/XCk7ziteExVnSThECYIkdaA5r2n8NsdQONIc5
+ +4+X/v7x71HISTslbrfv1Btdxr+Di87NnJXXCL2LjuP37W+Ycuy79B4PbeTfGm3jpCvH4OrLOLvtTZQV
+ a0yvt/frB8OwV1HYIbTe/r2qUtG5LAnxm98yzW0QVI4YED4Do6atgLOrNPtUacSq1dWCXnhGszZiq9Q2
+ ihAAS+xAc8xYfRldrWj/NcQSO7AxzNl/HOMKwMdRkp8hbvOSXgP+sAyHVMEwqKRNMbaUXoXHcG3HYpMA
+ tA0YCc8BTxtXCt5aeFdzEvFJfnqDHm30pai6uqdOsRJjIY82I+ZC061+TT7fqhwMQIZYVKRWLAR07zsK
+ j85ex75jy4i3rcBEoAAqQ2Du6qh8KfsrQgAssQMboyXsv4ZYYgc2hjn7j5OcsEusAFxZUSJu8yy8PQaM
+ g+fgFyTlAWgKgQVHkb7zzdoIwN0Lnu39WKe/derUOYX4al1efZjX7isr0rBfGZPy8MQhfiNfRmbPp6B3
+ rE3l76CvxCNtNDi6ZUn9qj9enTFlwS74dh9oE9V7W5r1h+Ln5HwZ/rmUfRUhABxr2IHxlwux18r2X0Os
+ ZQcu3pDC3qPxdN5Ht38A9SaeB6POv01QYVD0HOR3fhhpLtYXgYD8w0jftQSV5cVNai+W7h40CZn957LO
+ X1usxEmnRYSbBr/t+Uh0Nmq+k3vbjoh+fhWChk6mzn+LWHXc2tw1UbOk7KsYAbCGHfjXrWmoagH7ryHW
+ sAPN2X+cbZ9OxpWTt98OOrl4YPCERbjqGYo8Z+uMndQQVHQCaXwQ8FYEYCkdAkeifMirKPX0r/f6YH0S
+ dKnq2poGDEcnN4Q9uRRDH33N7gb9GiM2Tr0uNyZyppR9FSMA1rADW8r+a4hXm2S89pi0NQl3Qor9x/ny
+ VX8U37hzebu23t0x+ImliBP6QK+yzqCk+L4VWez+ZCGKs5qWYTtg9HwkB/yx/mvV6ehUfBEndi433c7w
+ +/6+YdMwevqncPO4z/IPUjCx+/fPy40dvVLKvooRAE5z7MCWtP8a0lw7UIr9x2cAfvWXANMoOS8Cyq/K
+ Rbmpt/YQcF/n3ug7YSmOGPzNpga3hDGqK7h8fAsqyorg4Ogs3tM7sIeTs5u4zR/8OV/sUJR1GRnnd5vu
+ /4MfWYzL3Z40vZdX1Q2EueZi/3fza4uKsNsYXlTkqQU74e7ZjLTiCmStWl1cfso/sPS0f66U/RUlAM2x
+ A7+Nz8YVCVV6rUFz7UBz9h8n8cRW/PSPKaYVgIMmvg1Pz/Y4uu3d2pLcjF4PPgG3fpNxzkVachBr43Z5
+ E7SHVpi8/JDHluCSnzFVmUd1ER52z8fRTYtQqEk2teH1CfmIf5fAYbIc871KrFqtF2CYplkT9aPUNooS
+ gObYgS1t/zVkoP91TG6CHSjF/uOW28EtS3H4J+6/G/9lA6euQoWrD9rlncaxXR+ZhIFPnukX+RKKuo1G
+ mlPrW2iulzag8shntQIw4W1c6jJRfB7lkIb0Y98g6fR20/7Obm0xbsZXCB7+tJh/gDDCrvxJgk43l4X+
+ uy1ppygBaKodyO0/3qmmtqD915Cm2oFS7L/KipvY+eV0XD1lLOjJ8/INmfENjuq6YrhDOnKOrkPK2dqw
+ m3eqh55YitOu/VHi1Mr302e+1uL4KkemSGJvdgj+w0HdyMVhjld27DZc2OShu3F1RM3vWOhf7dR16DbP
+ yMW7Va5taXkveMl1QwW7lUrKLfQ5g819Lc53oCgB4DTFDmwN+68hTbUDpdh/xTfSsenD8biReUnc9us1
+ Apnhn/DFAOL2WKdUXNy7ot7EG1cPbzFt9wmhJ8oc26LVSFhXjhOf8wMzDuP7DY1Fv2f9sGc+r2D6DmpL
+ ffMQYTN78NFtu6ne29IoTgCaYge2lv3XkElD8zHIQjtQiv3HZwB+924YqiuN6e9Cx7yCM/7TYLg12t+u
+ Oh9DHa7jyObFuFl43dSuS+BwdA//M4449kWrkbCu4pYAGK/ybt7z4eBciptZvGRXXVXmOf1eYI+k1js4
+ 5aM4AWiKHRi5LAEjW8H+a4ildqBU++/CwW+x66v/EZ/zEfiRUz9EvNtD0KtqvfKOldfRz5COAxsWokpb
+ anxRUKHngEfg+eAfcdYh0GzNQKuQsE7LBIAfWM0NPR+44IMAdW0Sbl3wHGY8p989fw7aEooTAI4ldmBr
+ 2n8NsdQOlGL/cfaun4OEfcaZoG6ePvCMfAOazrcPGvbRXYN7hhpn9q82FQzhghE65mVoOoUj3aUZ9fsk
+ /xHWVTEB4J2/Rm34UsC6xRB4YoEX2eNnUE4/q6NIAbDEDmxN+68h629VKfaWWKVYiv2nq67EhvejkZF4
+ QNz26hiIjtFvI9H9zuW8w1hErTm9EVdPbjO9xmcKDnvyXVx0CUGBcwuPjdwuAHXh9/o8oeBSUE6/FkGR
+ AmCJHTjjq8voel/r2X8NkWoHSrH/OIWaFGz8YKzJN/fsPhzaMR+h0sHtjvvzpbgRztdx7pcPTIVDOXym
+ YOjEJTisCkbVXdpahYRYHU58wTt/w9FQfrX/gT14JaCCljsA+0aRAvDjkXgcfncQfNs2Prstu7ASYe+c
+ xnMjWs/+u+0Yii5gzUtBZvfbcToPx5M6m90v5dwebF811TTZJyB8NpKDZzfapk11MUa65ODghgW4WZBp
+ et3n/gfQO/o1HBF61xs/sBYqfRUMB/6eZriyk99r1BUAfp7xnH48w2+G1T+YMKFIAeBkFpxDzOxgqO6y
+ QkyvN4ipv7t5t0x6bKl8HX8AuxcNQEgjJcCrdAZM+PAchgYMNvt+p/asxH+/m2/y+MOe+wyHPMxnAOpS
+ lYXeFYk4/NNfTSv5+PLhwAcnwqX/M7jgJK1IqRR6VKXDqzIHmb9fQO6Jb1IM2uKGyxK5Ck1mD57p12bO
+ OVtEsQLAuV54HsufDUCHBvfYucVVWPhDEgv95e38Ney/dAwb5/ZFV+/bBy6rWedf8H0SPF1DJL3XrtUv
+ iGmyONzbdxn7Poo6DJLUtl91CpwzDyHhP5+b1hCIg4LjXoXGZzjSXfwt/m4O7CrvrCtjIqZDdLtSaK6d
+ wbWLvNZHKipKC0xWZR14Iou/sMe3oEG/FkfRAsDZeDQe0f3vu3WFNeBiRpk4m66mAu+9wpbjhzBnnB8m
+ hHozYXJBcYUOhxKLsHJPBob0NH/lr2HN68HIz0oUn3fuORSlwxag2FP6uv/hSEbBmc3iWoKa6cLOrp4Y
+ MvFNXHJ/QPKgoINeC7/yVDiV5aCHhxOSz/6CjMT4WsvxzvD8/e+yB08jTIN+rYDiBcAWWadWY0ZEhMXt
+ yktuYNWcLtDrjHUw+gyfihtBz0LjIq3GIMeFXa3DXXOQ8NM7yMu8aHqdVxQOnfgWDgnBqG6kpkCPymtw
+ L8tAdvpFtNdmsyv+WZTcSDfdkjQCVxs+0+8VGK1AohUgAVAQaRf2iQ5AzW1zp7A/Ia/P8xYv9XWvLkGE
+ cwYObnrDlE+Qj9HxlFsB0a/jGHqKg4J8EM+JXemr9XqMa1eC68knkHFpHyoK0lFxM19M9XU3+PiCo7Mr
+ vzXIRXXFFvYSrz9+DMbOT+dZK0ECoBD4CsAjP7+H+H8tMb3Wd8oKXGzftFsdv6rrCNQm48i2pfXSe/Ue
+ Mhlt+k1CrpZFC+U58G/jgKSEnci4ctA0mejuCHBt0x7tO/VCJ/9B8O8/Fuqsiun5G5/9Tu6/n71CAqAQ
+ qisr8MuamfjtiHEpOM+tF/6/GxBX1fTMQyFVyXDPOopTe/5hCuF5cZGAgY+JCT35vIFiHiEYGh+r4wOJ
+ PHroFhSOzgFD0JF1fi/fnuJy3li1ekrumsh/yf33s1dIABTCzYIsbPm/ichOPSlud/DrC+3YFU1e3qvS
+ V4uj98Nd85C452NkpRyv81turd79VODhPc/6496uI3oNmoiA0Anw7hwEN88OcHJxr7cvCYC8kAAoBM21
+ c/hhWbgpGeeAyFk4HzgLBgsn8HRhob+hogRttNno6qJHyplfWHh/yDSweHcEuHl4s/A+EJ16DkHPAeNx
+ f0iUMfVXI5AAyAsJgEK4cmIbtn3G584YxCtw18i5SA98TvKKPn9tGhyL0+BRno2bmivITjmJm4VZMDce
+ xzMKieF9cLiYp69Tj8Fo16E7+1hpn0sCIC8kAApBvelNHN1urMHHi3G4RSxGYbdRd9xXMFTDgYX4Onbv
+ Pt7jBlJ/OwBN0mFUFWWirCSv0cE8Li48BTcvxhE05ElxPMCrYwDcPX1uC++lQAIgLyQACoAPyG1cPg7X
+ Lu0Xt718A+A9ZgmSPeovcupceR06bTHaVuTAz7kKySy8z2ThvVmPnkURvIN7+fYwJg0JGSWO4Ds6Nb8g
+ KwmAvJAAKICSgutiEdCC7Cvitlf3wXCMegd5zp3EbX9tKlCQAq9KDUqyE8UBvbJinjXaTHjv5IqO3UNx
+ f58I8b6+MwvvPb27WbUCDwmAvJAAKICMxIPY+umTprz5fg8+g8wH5mF8m2wknd+PG2nHUV2cJXZ6XXUj
+ 6fTYlV6lcoTnfV0RPGyKWEfQy6eHWKiTT9ppCZgALGd6clDuv6GtwnqkzgAhNW9NxOWmtCcBUABn9v8T
+ e9e/YlrAc3+fKHEW3vUkPrHuzv8ynvSja+/6qwT5YF5g6AQxzKdSW7ZFbJz6vFZwmle8JizOknYkAAqA
+ d/6EfV9Y1MbbLwSzll+0qA1xb8OiqWpBLzyjWRuxVWobEgAFsG5xqLjM9s4ILLKvX0CjJwvtRz61DB39
+ Q+U+dMLKMBEogMoQmLs6Kl/K/iQACmD5dIe7Tsf16TYAM98/K/chEq3I+kPxc3K+DP9cyr4kAArgi3nd
+ 6qzaMxIwcII4MYdPxw0d/Se5D5FoRWLVcWtz10TNkrIvCYACOP2fL3Bg02LTNGBO9POfY1D0y3IfGiED
+ sXHqdbkxkTOl7EsCQBAKI3b//nm5saNXStmXBIAgFMRatbq4/JR/YOlp/1wp+5MAEIRCiFWr9QIM0zRr
+ on6U2oYEgCAUALvyJwk63VwW+u+2pB0JACEr7MRdxX6ckPs4bBXBYKiAICTlFvqcwea+FqdRJwEgZIUW
+ A8kLCQAhKyQA8kICQMgKCYC8kAAQskICIC8kAISskADICwkAISskAPJCAkDICgmAvJAAELJCAiAvJACE
+ rJAAyAsJACErJADyQgJAyAoJgLyQABCyQgIgLyQAhKyQAMgLCQAhKyQA8kICQMgKCYC8kAAQskICIC8k
+ AISskADICwkAISskAPJCAkDICgmAvJAAELJCAiAvJACErDABWC4IOCj3cdgregMWvRgRESZlXxIAgrBj
+ SAAIwo4hASAIO4YEgCDsGBIAgrBjBJ+X4m7OjIhoI/eBEATRusSq1SVCh1lxB1+MlGYZEAShHJgAxAs+
+ s3+dNjM88lu5D4YgiNYlRv3rNIE/8ZkVt3FmZMTTch8QQRCtw7oDcZs1Bb5TRQHwe2WfU6XW8S0ImD8z
+ IsJD7oMjCKJlWKtWlwowfKxzdftb/srh1ULdX/q8qPYwqAwj2IshegEBgh7BgoA+7FddmDAITfxMws5g
+ J9kq9uOE3MdB1MEAHevA2SqD4WjO2qjSmpcldWqP6cc83FzLg9jTQL0g9BEMhmCmIr1Z82AmDG5yfzfi
+ 3oIWA9kOzbuqT7mo8vXS3G+AEAhj1NCLogaCBMB2aLEOSlGD/UICYDu0/hWaogbFQwJgO9xTnY2iBmVA
+ AmA73FMCcFcoarApSABsB5vvOBQ13HuQANgONi8Ad4WiBtkgAbAd7LITUNTQspAA2A52KQB3haIGq0AC
+ YDvQCS0RihqkQwJgO5AANBeKGm6DBMB2sLuTszWx16iBBMB2IAGQA4VHDSQAtoNNn2hKRAlRAwmA7UAC
+ YCN0nL7HQefi0p095ZFC73s5XwMTgElMAH6S+zgI89wzJw3RdHxf+G87vaNDEBODIBY1BLKoIUjOqCE2
+ 7tcHcmNGnZP770KYhwRAwcgRNbCrf2Ku4NEH/xxM9SZsABIAO6Ve1AAhSMWiBgiGYHZKBDJhcG3Ke7LO
+ rzcYVI/mxYTvkfv7EdIgASDq08ChYJfxEHaS8EHJICYMne/WLDZOXcxuO/6siYn6Qe6vQEiHBICQTN2o
+ QZvlFeTSqaA7O4MMej0SyhN6fF922l8j9zESlkECQBB2DAkAQdgxJAAEYceQABCEHUMCQBB2zP8D1UoI
+ LGPYsrUAAAAASUVORK5CYIIoAAAAMAAAAGAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCXhMFyVMQAwAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/YxQN1Hk1K+CFSVLmi1J57ZBYofGWYsj3m2rq645W
+ wsNkDQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAADCYhAX2306PuOHSmXrjlWM7ZJbtPGWYtv6n2/1/aJ0//6jdv/+o3b//qN2
+ //6jdv/+o3b/+6Bw9L9kFAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw2ER
+ AclqHAzbgD8q44dKUuqNVHnskVmg8JNeyPOYZO7+o3X//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b/+6Bw9L9kFAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGQUA8hqHhrcfTw+6I1U
+ ZeqPVo3uklu08ZZh2vidbPb+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b/+6Bw9b9kFBa/ZBMMv2QTDL9kEwy/ZBMMv2QT
+ DL9kEwy/ZBMMv2QTDL9kEwy/ZBMMv2QTDL9kEwy/ZBMMv2QTDL9kEwy/ZBMMv2QTDL9kEwy/YxUD65BY
+ xvugcfv+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//ugcPX7oHD1+6Bw
+ 9fugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw
+ 9fugcPXqjlXF/qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //ugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw
+ 9PugcPT7oHD0+6Bw9P6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b/+6Bw9b9lFRS/ZRUKv2UVCr9lFQq/ZRUKv2UVCr9lFQq/ZRUKv2UVCr9lFQq/ZRUKv2UV
+ Cr9lFQq/ZRUKv2UVCr9lFQq/ZRUKv2UVFPecavX+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b/+6Bw9L9kFAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b/+6Bw9L9kFAoAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv2QUC/ecavT+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b/+6Bw9b9kFBa/ZBMMv2QT
+ DL9kEwy/ZBMMv2QTDL9kEwy/ZBMMv2QTDL9kEwy/ZBMMv2QTDL9kEwy/ZBMMv2QUDMZeDQMAAAAAv2QU
+ C/ecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2/9qMZv/4n3P//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //ugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw
+ 9euNV8LJUhEDv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2/zAfFv87JRr/h1Y+/9eKZP/7oXX//qN2
+ //6jdv/+o3b//qN2//ugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw
+ 9PugcPT7oHD0+6Bw9OuQWMG/ZhUDv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2/2RALv+oVwr/hEUK
+ /0EjCv8xHxX/d0w3/8mBXf/7oXX/+6Bw9b9lFRS/ZRUKv2UVCr9lFQq/ZRUKv2UVCr9lFQq/ZRUKv2UV
+ Cr9lFQq/ZRUKv2UVCr9lFQq/ZRUKv2UVCcBkFAIAAAAAv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//2idP/+o3X//qN2
+ /5ZgRv+PSgj/y2UA/8llAv9MKxD/XzQO/0QlC/8uHRT/c0gy+C4YBDMAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv2QUC/ecavT+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//yidP/x18X/8dfF//yidP/+o3b//qN2//6jdv/+o3b//KN1
+ //Ldzv/04NP//KFz/8yDX/9lNAf/y2UA/3dBEf9cMw//y2UA/8tlAP/AYQb/gkMJ/gUCAO0AAAArAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv2QU
+ C/ecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//iuh//5+fj/+fn4//iuhv/+o3b//qN2
+ //6jdv/+o3b/9quC//n5+f/5+fn/962F//Sccf9IKQ//mlEO/z8kDv/FZAT/y2UA/8tlAP/LZQD/xWIA
+ /xgMAOgHAwDKSycHGb9kEwy/ZBMMv2QTDL9kEwy/ZBMMv2QTDL9kEwy/ZBMMv2QTDL9kEwy/ZBMMv2QU
+ DMZeDQMAAAAAv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//bFqv/5+fn/+fn5
+ //bFqv/+o3b//qN2//6jdv/+o3b/9cWp//n5+f/5+fn/9cSp//6jdv9GLB//MR0O/7heB//LZQD/y2UA
+ /8BhA/9pNgX/ajcH/zUdB/6RTQ/9UDIi+Pedb/X7oHD1+6Bw9fugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw
+ 9fugcPX7oHD1+6Bw9euNV8LJUhEDv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //Xf0f/5+fn/+fn5//Xf0P/+o3b//qN2//6jdv/+o3b/8tzM//n5+f/5+fn/9N7P//6jdv9vRzP/kUwM
+ /8tlAP/LZQD/y2UA/6pXB/84HQT/e0AI/0EjCf6HRQX+bjwR/n5QOv76n3D0+6Bw9PugcPT7oHD0+6Bw
+ 9PugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw9OuQWMG/ZhUDv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b/+aV4//j18v/49vX/+Pb1//j18v/5pHj//qN2//6jdv/4o3X/+Pf1//j29P/59/b/+PXz
+ //ikd/+laUz/hEQI/8tlAP/LZQD/y2UA/6xYCf9ZLQD/y2UA/7pdAPUiEADom00A8C4XANokEwRZv2UV
+ Cr9lFQq/ZRUKv2UVCr9lFQq/ZRUKv2UVCr9lFQq/ZRUKv2UVCcBkFAIAAAAAv2QUC/ecavT+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b/97mY//n5+f/y28v/8tvL//n5+f/2uZf//qN2//6jdv/1uJX/+fn5
+ //Xe0P/z3c7/+fn5//e6mP/ajGX/WS4H/8tlAP+eUAb/LxsK/y0aDP9HJgj/y2UA/8tlAP+iUQDtIBAA
+ 66FQAOkSCQDXAAAAJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv2QU
+ C/ecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b/9tK+//n5+f/1xKj/9cWp//n5+f/10r7//qN2
+ //6jdv/00bz/+fn5//bFqf/1xKj/+fn5//TRu//8onX/QiYS/8tlAP+KRgT/bzkG/69XAf9NKw7/hUcQ
+ /8tlAP/LZQD/gEAA5jUaAO+VSgDiBAIAxwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/9o3X/9evk//n5+f/2q4L/9quC
+ //n5+f/16+P//aN1//uic//16uL/+fn4//iuhv/3rYT/+fn5//Xq4v/9o3b/UzQk/7ldBP+HRQb/f0EG
+ /8tlAP/DYwX/Nh8N/ZNJAOjLZQD/y2UA/lksAORaLQDydToA3AIBAKllNQoPv2QTDL9kEwy/ZBMMv2QT
+ DL9kEwy/ZBMMv2QUDMZeDQMAAAAAv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/3rIT/+fn5
+ //Xr4//8o3X//KN1//Xr4//5+fn/9qyD//ashP/5+fj/9evi//yidP/8oXP/9ezk//n5+f/2rIP/h1Y+
+ /w8JBP8eEgr/UywK/8tlAP/LZQD/sVsK/zEdDv67YAj/y2UA/8hkAf5IJwv+ikYF/ms6Ef5/UDf2+6Bw
+ 9fugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw9euNV8LJUhEDv2QUC/ecavT+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/2xqr/+fn5//PPuf/+o3b//qN2//PPuf/5+fn/9cWq//XFqf/5+fn/9dK9//6jdv/+o3b/9NC6
+ //n5+f/2xqv/959z/0ctIP+fVA7/UisG/4BDDP/LZQD/y2UA/5ZPDv8/JA7+xmQC/ctlAP/CYgX/MhwK
+ /qVUBv5IKA/9sHBR/PugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw9OuQWMG/ZhUDv2QUC/ecavT+o3b//6R3
+ //+kd///pHf//6R3//+kd//139H/+vr6//W4lf//pHf//6R3//W4lf/6+vr/9d7Q//Tdzv/6+vr/9rmW
+ //+kd///pHf/9riW//r6+v/z3c7//6R3/+SSav83Ihb/sFsL/zkfCP+gUwn/y2UA/8tlAP9YLADdRiMA
+ 3slkAP3LZQD/oFAA7SMRAOyjUQDqFwsA2DcdBTG/ZRUKv2UVCr9lFQq/ZRUKv2UVCcBkFAIAAAAAv2QU
+ C/ecavT+o3b//6R3//+kd///pHf//6R3//mleP/49fL/+PXy//ijdv//pHf//6R3//ijdv/49fL/+ff2
+ //j29P/49/X/+qR3//+kd///pHf/+aV5//j18v/49/X/+aR2//+kd//Fflz/PiQQ/61ZCP8wGwn/ul8G
+ /8tlAP/HYwD6MhkA3G02AN7LZQD/y2UA/30+AOU3GwDvk0kA4gQCAMUAAAAPAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAv2QUC/ecavT+o3b//6R3//+kd///pHf//6R3//a5mP/6+vr/9N3P//+kd///pHf//6R3
+ //+kd//03c//+vr6//r6+v/z3c3//6R3//+kd///pHf//qN1//Tez//6+vr/9biV//+kd//+o3b/mWJH
+ /1szEf+ZTgb/PCEK/sJhAPnLZQD/uFwA8hsNAN6SSQDly2UA/8tlAP9WKwDiWy0A8XI5ANoAAACnAAAA
+ AgAAAAAAAAAAAAAAAAAAAAAAAAAAv2QUC/ecavT+o3b//6R3//+kd///pHf//6R3//TRvP/6+vr/9MOn
+ //+kd///pHf//6R3//+kd//0w6f/+vr6//r6+v/2xqr//6R3//+kd///pHf//6R3//TDp//6+vr/9dK9
+ //+kd//+o3b//aN2/2pEMf+ARRH/djwF/0cjAOTKZQD+y2UA/59PAOgXCwDgsVgA8MtlAP/HYwD7NBkA
+ 5YJBAPJMJQDZBQIAfL5jEwy/ZBMMv2QUDMZeDQMAAAAAv2QUC/ecavT+o3b//6R3//+kd///pHf//aR3
+ //br4//6+vr/9quC//+kd///pHf//6R3//+kd//2q4L/+vr6//n5+f/2rIT//6R3//+kd///pHf//6R3
+ //ethf/5+fj/9evj//yidP/+o3b//qN2//aecv9FLB//oFQO/1ApBv6CRAz/y2UA/8tlAP+UTg3+QSQN
+ /sdkA//LZQD/vmAE/jMcCv6mVAb9RygQ/bBvTfX7oHD1+6Bw9euNV8LJUhEDv2QUC/ecavT+o3b//6R3
+ //+kd///pHf//aR3//Tg0//x3s///KJ0//+kd///pHf//6R3//+kd//8onT/89nI//HWw//9o3b//6R3
+ //+kd///pHf//6R3//yidP/z3c7/8tzN//yidP/+o3b//qN2//6jdv/kk2r/NiEV/65aCv02HQf+olMJ
+ /spkAP/KZAD/cDwP/mE1D/7JZAD+ymQA/6xYCP8xGgf+sVsK/jcgEv3ViGH5+6Bw9OuQWMG/ZhUDv2QU
+ C/ecavT+o3b//6R3//+kd///pHf//6R3//uidP/8onT//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd//8onT//KJ0//+kd//+o3b//qN2//6jdv/+o3b/wXtZ
+ /SQSAN2gTwDtIA8A6q5XAPHKZAD/xWIA+jIZAN5uNwDfymQA/8pkAP98PgDmORwA8JFIAOIQCAHJWy8J
+ F8BkFAIAAAAAv2QUC/ecavT+o3b//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd//+o3b//qN2
+ //6jdv/+o3b/+qBw9B8QA3M9HgDYjUYA8ioVAOXBYAD4ymQA/7ZaAPEaDADelEoA5cpkAP/KZAD/UykA
+ 4l4uAPFvNwDZAAAApQAAAAIAAAAAv2QUC/ecavT+o3b//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd//+o3b//qN2//6jdv/+o3b/+6Bw9H1BDQsAAACYYzEA2Go1APFHIwDiymQA/spkAP+eTgDoFgsA
+ 3q9XAO7KZAD/xWIA+jIZAOR7PQDwEAcA6gAAAHwAAAAAv2QUC/ecavT+o3b//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd//+o3b//qN2//6jdv/+o3b/+6Bw9b9kFBZjNAkUDwgBw4lEAOFDIQDxcDgA
+ 5cpkAP/KZAD/ej0A4CoVAN/CYAD5ymQA/7NZAPIKBQDxYzEA5xkMAOAAAABKv2QUC/ecavT+o3b//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd//+o3b//qN2//6jdv/+o3b//qN2//ugcPX7oHD13o5l
+ +TYgE/2xWwv+NBwH/qRUCf/KZAD/ymQA/206D/5kNg/+ymQA/3g9Bf9RKwj+m1AK/jMaBPgQCADWNhsF
+ LvecavT+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd//+o3b//qN2//6jdv/+o3b//qN2
+ //ugcPT7oHD0+6Bw9L14VPQ+IxD9rFcH/TAbCf64XQX+ymQA/8hkAv9JKA79YjUO/zUcB/6tWQn+LxoJ
+ /qVTAvIbDQDhDAYAzOuVZ/f+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd//+o3b//qN2
+ //6jdv/+o3b/+6Bw9b9lFRS/ZRUKv2UVCr9lFQoHAwBsQCAA24tFAPEsFgDmwmAA+cpkAP+dTgDsDgcA
+ 855PAOwmEwDnlEkA8TUaANxpNADlbzcA21s6Kf78onX//qN2//6jdv/+o3b//qR2//6kdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd//+o3b//qN2//6jdv/+o3b/+6Bw9L9kFAoAAAAAAAAAAAAAAAAAAAABAAAAmmYyANlnMwDxSiQA
+ 48FgAPsqFQDwjEYA7T8fAOJzOQDyWSwA2kIhAOTIYwD9yWQA/mQ3EP6bY0j//qN1//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd//+o3b//qN2//6jdv/+o3b/+6Bw9L9kFAoAAAAAAAAAAAAAAAAAAAAAAAAA
+ CgIBAL2KRADgQSAA8CAPAOppNADsZDIA4k0mAPGAPwDfIxEA5b9fAPjKZAD/ymQA/8NiA/9FKhv/64xU
+ xv6jdf7+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd//+o3b//qN2//6jdv/+o3b/+6Bw9b9kFBa/ZBMMv2QT
+ DL9kEwy/ZBMMv2QTDD8hBioTCQDVVSoA5kIhAO6LRQDnLRYA75tNAOcXCwDkrFUA8cpkAP/KZAD/ymQA
+ /8pkAP9BJAz/v2UWBNd7OCXkiEtf75Nem/CUX9X8oXL+/qN2//6jdv/+o3b//qN2//6jdv/+o3b//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd//+o3b//qN2//6jdv/+o3b//qN2
+ //ugcPX7oHD1+6Bw9fugcPX7oHD1+6Bw9fugcPW9eVb8FQ0I/6hXDf4uGQj+rlkI/jYfDf6cUAj+ymQA
+ /8pkAP/KZAD/ymQA/8pkAP9BJRH/AAAAAAAAAAAAAAAAAAAAAAAAAADCZBAS3oNETOqOVIfxlWHC95xq
+ 8v6jdv/+o3b//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd//+o3b//qN2
+ //6jdv/+o3b//qN2//ugcPT7oHD0+6Bw9PugcPT7oHD0+6Bw9PugcPT7oHD0i1g89BUNCP6aTgX9Ui0P
+ /ntAC/7KZAD/ymQA/8pkAP/KZAD/ymQA/59RCP5DJQ7KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAwWQRC9t/Pjjni1Jz7pJbrvWaZ+X9onP+/6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd//+o3b//qN2//6jdv/+o3b/+6Bw9b9lFRS/ZRUKv2UVCr9lFQq/ZRUKv2UVCr9lFQq/ZRUKe0EN
+ CwEAAJ0oFADYQSAA5slkAP3LZQD/y2UA/8tlAP/LZQD/tloA+RcLAN4AAAAeAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBkEwTVeTMl6Y1VYOyRWZrwlV/V/KFz
+ /v+kd///pHf//6R3//+kd//+o3b//qN2//6jdv/+o3b/+6Bw9L9kFAoAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAsAAADIhkMA3MtlAP/LZQD/y2UA/8tlAP/HYwD9MBcA7AAAAEEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAwGQTE9t/PUzskVmH7pNdwveca/L+o3b//qN2//6jdv/+o3b/+6Bw9L9kFAoAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeDgYA06xWAOvLZQD/y2UA/8tlAP9TKQDwAAAA
+ bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMFnFgvYfDo46YtSdPCTX670l2Tk65BY
+ wb9kFQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyQRAN6xWADxw2EA
+ +GUyAOUBAACdAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAADHVxIEvmQUAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAFMDAQDUCAQA4gAAAJcAAAAJAAAAAAAAAAAAAAAA////z///AAD///AH//8AAP/8AAf//wAA/AAA
+ B///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/+AAAAAAAB//4AAAAAAAAAAgA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAf/+AAAAAAAA//4AAAAAAAAAAgAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAgAAAAAAAA/+AAAAAAAAB/4AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgA
+ AAAAAAAB+AAAAAAAAAD4AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAA
+ AAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAB4AAAAAAAAAAAAAA
+ AAAAAAAAAAAA+AAAAAAAAAD/gAAAAAAAAP/4AAf4AQAA///AB/wDAAD///wH/gMAAP///8//BwAAKAAA
+ ACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL5iFQHRcysd54pRRNx6PCMAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAwWMTCtt9OzDqjlVX75RefvKXY6bzmGXN+J1s8/+kd///pHf/85hk
+ pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AMRhEAHRcysc5IhMRO2RWWvwlF6S9JhlufaaaOD8oXL+/6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd//0mWaqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AO2SW5X0mGTN+J1s8/+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//mebuP0mWar9Jlmq/SZZqv0mWar9Jlmq/SZZqv0mWar9Jlmq/SZZqv0mWar9Jlm
+ q/SZZqvskVmS/6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf/+Z5u4vSZZqn0mWap9JlmqfSZZqn0mWap9JlmqfSZZqn0mWap9Jlm
+ qfSZZqn0mWap9Zpoxv+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd//0mWaqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAADqj1ZV/6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//SZZqoAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOqPVlX/pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf/+aB0//GbcP//pHf//6R3//+kd///pHf/+Z5u4/SZZqv0mWar9Jlm
+ q/SZZqv0mWar9Jlmq/SZZqv0mWar9Jlmq/OXZKjcej0j6o9WVf+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd//RhmH/QCUQ/3dMNf+zc1P/959z//+kd//5nm7i9Jlm
+ qfSZZqn0mWap9JlmqfSZZqn0mWap9JlmqfSZZqn0mWap9Jlmptp/PSLqj1ZV/6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//qN1//qgdP9yPAr/xmQC/10yDP9MKxD/bEQu
+ /5JbPLoAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOqPVlX/pHf//6R3
+ //+kd///pHf//6R3//+kd//1zrf/9c63//+kd///pHf//6R3//e1kP/27eb//KR2/3hGIf+vWQf/ZjcO
+ /8tlAP/GZAL/azYE/gAAAIYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6o9W
+ Vf+kd///pHf//6R3//+kd///pHf//aN2//fw6//38Ov//aN2//+kd///pHf/99K+//r6+v/4tZL/g1I5
+ /1cwDv/HZAL/zGYA/5pOBP9iMgP+XTEK8YBQM7L0mWar9Jlmq/SZZqv0mWar9Jlmq/SZZqv0mWar85dk
+ qNx6PSPqj1ZV/6R3//+kd///pHf//6R3//+kd//5so3/+vr6//r6+v/5so3//6R3//6jdf/26+P/+vr6
+ //fOuP+na07/pVQH/8xmAP/MZgD/Wi8H/5JLBv9UKwP2ZzcN9bt2UMv0mWap9JlmqfSZZqn0mWap9Jlm
+ qfSZZqn0mWam2n89IuqPVlX/pHf//6R3//+kd///pHf//6R3//fKsf/26+P/9uvj//fKsf//pHf/+a2F
+ //r6+v/03s//9ufd/92OZ/+GRAX/t1wC/2Q0B/9MKAn/y2UA/5dLAPBhMADsLRYAxgAAABEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAA6o9WVf+kd///pHf//6R3//+kd///pHf/9uPX//fSvf/30r3/9uPX
+ //+kd//3xqv/9/Dr//e0kP/5+fn/+Kh+/3E9D/+gUQP/i0cE/4lHCf+CQwn7zGYA/3I5AOp2OgDrFQoA
+ qAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADqj1ZV/6R3//+kd///pHf//6R3//qnfP/5+Pj/+LmX
+ //i5l//5+Pj/+qd8//Xez//31sT//KN2//jz8P/4wqX/Yz0m/0QkCP+ERAb/zGYA/2w5C/miUwb9y2UA
+ /10wBfaGRAb2WTciwfSZZqv0mWar9Jlmq/SZZqvzl2So3Ho9I+qPVlX/pHf//6R3//+kd///pHf/+b+g
+ //j29P/6pHf/+qR3//j29P/1v6H/+Pb0//m+n///pHf/9trK//bby//djmf/aDoU/2EzCP+yWgX/ymUB
+ /1QtCve1WgH3x2QC/1AqBvh6Pwj1lF5B2vSZZqn0mWap9JlmqfSZZqbafz0i6o9WVf+kd///pHf//6R3
+ //+kd//318T/9d3P//+kd///pHf/9d7P//bu5//5+Pj/+qd8//+kd//3waT/+PTw//ykdv+5d1b/fEIO
+ /1UtCf/EYgL/uVwA9T0eAN7EYgD5slgA9U0mAO1LJQDXAAAALAAAAAAAAAAAAAAAAAAAAADqj1ZV/6R3
+ //+kd///pHf//aN2//fw6//3xqr//6R3//+kd//3xqr/+vr6//bj1///pHf//6R3//mpfv/5+fn/+LWS
+ //+kd/+QXEL/i0kL/1gtBvfKZQD+oFAA708nAN/LZQD/lUoA8GIxAOwsFQDEAAAAEAAAAAAAAAAAAAAA
+ AOqPVlX/pHf//6R3//+kd//5so3/+vr6//ithP//pHf//6R3//ithP/6+vr/98qx//+kd///pHf//6R3
+ //bn3f/3zrf//6R3//6jdv9uRS7/iUcJ/3M7BvnLZQD/h0UG94BCB/jLZQD/ej4F930/A/VHKRXR8Zdk
+ q/OXZKjcej0j6o9WVf+kd///pHf//6R3//uthf/0zbb//qN1//+kd///pHf//qN1//jLsv/6qoH//6R3
+ //+kd///pHf/97yb//e7m///pHf//6R3//Occf9eOB39bzgE9ZJKBPjLZQD/aTcK955PA/fKZAD/XzEH
+ +IlGCPpyRzDk9Jlmptp/PSLqj1ZV/6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3/754UclDIQDTUigA7KpVAPTGYgD7Px8A
+ 3rJZAPTCYAD6RSIA6mg0AOEAAABQAAAAAOqPVlX/pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf/9JlmqgAAAEhjMQDfRSIA
+ 679fAPm3WwD1PR4A3sRhAPqvVwD1RiMA7RQJAN4AAAAr6o9WVf+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd//5nm7j9Jlm
+ q3hLM+OHRgj5Wi8H+cpkAP+kUgP3YzQK98ViAf9LJwX6czsG8xoNAMylZDxl/6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //mebuL0mWap85hmqUgqF82AQQT1cjoF9stlAP+HRQf5OR8H+oVEBvhmNAX4QCAA4UorFtz8onX//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf/9JlmqgAAAAAAAAAAAAAADCcTAL9mMwDrjUYA73Q5APR0OQDrSSQA7FYrAOCUSgDxn1AE
+ 945bQf/8oXL9/6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd//0mWaqAAAAAAAAAAAAAAAAAAAAJUUiANRHIwDuXy8A7EcjAOlvNwDlbjcA
+ 6stlAP/LZQD/bTsQ/+SGS0XvlF2L9JlmxvugcPj/pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//mebuP0mWar9Jlmq/SZZqv0mWarnmRE2DkeBvRkNAf3iEYI
+ /FctBfLKZAD/y2UA/8tlAP9uOgv/AAAAAAAAAAAAAAAAwmQQCOKHSj3vk1138pdjsveca+z/pHf//6R3
+ //+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf/+Z5u4vSZZqn0mWap9JlmqfSZZqn0mWapXDkk
+ vVotA+5OKgn5xWMC/8tlAP/LZQD/vV4A/EAjC7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwWMW
+ Adl9OinqjlVk85hln/SZZtn+o3X+/6R3//+kd///pHf//6R3//+kd//0mWaqAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAABAAAAqpdLAOrMZgD/zGYA/8lkAP48HgDWAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMxxKBbojVJQ75Rei/SZZsb7oHD5/6R3//SZZqcAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAANKBQAwMNhAPnLZQD/Xi8A6QAAADEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMZeDwjkhEo82n89
+ IgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlJhMAyDcbANwAAABQAAAAAAAAAAD//h///4Af
+ /8AAH/8AAAAAAAAAAAAAH/wAAB/8AAAAAAAAAAAAAA/8AAAP/AAAAAAAAAAAAAAB/AAAAPwAAAAAAAAA
+ AAAAADwAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAYAAAAHAAAAAAA4AAAAP4AHwD/8B+B//8f
+ wygAAAAYAAAAMAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAzXEqDuSJTjPvk15a75JcbcNkDQEAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIaBoD4YZJH+yQWEbxlWFu9JlmlfaaaLz4nGvj/aJ0
+ /f+kd///pHf//aJz+sBlFQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuk1149ppo
+ qPebatD6n2/0/6R3//+jd///o3f//6N3//+jd///o3f//6N3//+jd///pHf//aJ1/PGWYoP0mWaA9Jlm
+ gPSZZoD0mWaA9JlmgPSZZoD0mWaA9JlmgO6TXHL/pHf//6N3//+kd///pHf//6R3//+jd///o3f//qN3
+ //+jd///o3f//qN3//+jd///pHf//aJ1/PKXY4H1mmd/9Zpnf/WaZ3/1mmd/9Zpnf/WaZ3/1mmd/8phk
+ gfyhc/z/pHf//6R3//+kd///pHf//6R3//+kd///pHf//qR2//+kd///pHf//qR2//+kd///pHf//aJz
+ +sBlFQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGUVBfugcPr/o3f//6N3//+jd///pHf//6R3
+ //+jd///o3f//6N3//+jd//1nnL//aJ2//+jd///pHf//aJ1/PGWYoP0mWaA9JlmgPSZZoD0mWaA9Jlm
+ gPSZZoDuklxxwmAUBvugcPr/pHf//6N3//+kd///pHf//6R3//+jd///o3f//qN3//+jd/+kaUz/e0Yb
+ /5FbPv/PhWD//aJ1/PKXY4H1mmd/9Zpnf/WaZ3/1mmd/9Zpnf/WaZ3/vlF9wwGUVBvugcPr/pHf//6R3
+ //+kd//+o3b/+L2e//6jdv//pHf//qN2//jBo//XimP/o1IE/3pBDP+OSQb/eEIV/Q4GAFMAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAwGUVBfugcPr/o3f//6N3//+jd//7r4f/+fn5//uvh///o3f/+q6G
+ //n5+f/4rIX/VzET/6JTBv/JZAD/mU0D/zoeBuuaYD6E9JlmgPSZZoD0mWaA9JlmgPSZZoDuklxxwmAU
+ BvugcPr/pHf//6N3//+kd//5x6z/+fj3//nHrP//o3f/+Mar//n49//5x6z/ilAl/8xmAP+7XwT/djwD
+ /2k1A/ZtPBPxxXxTk/WaZ3/1mmd/9Zpnf/WaZ3/vlF9wwGUVBvugcPr/pHf//6R3//+kd//44NL/89C6
+ //jg0v//pHf/99/R//XRvP/339L/nGE9/7BYAv9fMQf/eT8J/8FgAPpeLwDqNRoAqgAAAAQAAAAAAAAA
+ AAAAAAAAAAAAwGUVBfugcPr/o3f//6N3//ymef/38u7/+ad8//fy7v/5p3z/9/Lt//qnfP/38u7/s3ZX
+ /1svBv+aTgT/nVEH/5NLBfmuVwD4aDUE8lczGav0mWaA9JlmgPSZZoDuklxxwmAUBvugcPr+o3b//qN2
+ //q7mv/33tD//qN2//ff0P/10bz/+N/S//6jdv/339H/+LmZ/4BNLP9vOgn/wWEC/35BB/aoVAD2mE0D
+ +m04BfSIVTi+9Jlmf/SZZn/vlF5wwGUVBvugcPr+o3b//qN2//jTv//4xqv//qN2//nGq//5+Pf/+ces
+ //6jdv/5xqz/+NO///CacP94RBz/cDoI/8hkAPxcLgDjvV4A+HU6AO1aLQDcAgAALgAAAAAAAAAAv2QV
+ BfugcPr+o3b//qR3//fs5f/6rYX//6R3//qthf/5+fn/+q6H//6jdv/6rob/9+zk//6jdv/XimT/d0AR
+ /3k9BPjAYAD5ZzUG88llAP5qNgP1VSwG1NKDVoDuklxxwmAUBvugcPr+o3b//qR3//fAov/+o3b//qN2
+ //6jdv/4vZ7//qN2//6jdv/+o3b/97+h//6jdv//pHf/tnVU/mo2BPGPRwL2sloD/nM6A+7DYQL/ZjQE
+ 9Ww/Henbh1ZzwGUVBvugcPr+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv//o3f//aJz+isWAXxhMADop1MA9o5GAO6JRADsq1UA9l8vAOgFAgCDpFYSBfugcPr+o3b//6N3
+ //6jdv//pHf//6R3//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv//pHf//aJ1/N6KWoVsPx7nZjQE
+ 9cFgAv93PAPvr1gD/WIxA/hSKgPvHQ4CVvugcPr+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2
+ //6jdv/+o3b//qN2//6jdv//pHf//aJ1/PGWYoHXhll/UisG0Gg1A/XIYwD9Vi0H92o2BPRnNAPwQCAA
+ 29CFX/3+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv//pHf//aJz
+ +sBlFQUAAAAAAAAAKVgrANpbLQDuYTAA62AvAOlgLwDnymQA/oJJHf/vk1179ptpvvqfcPT/pHf//6R3
+ //6jdv/+o3b//qN2//6jdv/+o3b//qN2//6jdv//pHf//aJ1/PGWYoP0mWaA9JlmgIxYOrxVLAX0ZTME
+ 9GEyBfLDYQD7y2UA/4VFB/8AAAAAAAAAAMJkEAXliU018ZVgcPWaZ6r4nW3k/qN2//6jdv/+o3b//qN2
+ //6jdv//pHf//aJ1/PGWYoH0mWZ/9Jlmf/SZZn88JRenVSwF7rZcAv7LZQD/xWIA/U0oBrEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAC/ZBMB4YZJIe+UXVz0mWaX95xr0v2idPz/pHf//aJz+r9lFQUAAAAAAAAA
+ AAAAAAAAAAADLxcApsRiAPrLZQD/Wi0A0QAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAANN4MhHtkFpJ7pFca79lFQEAAAAAAAAAAAAAAAAAAAAAAAAAET0eAL5PJwDWAgAA
+ KgAAAAD/wf9B4AH/QQAAAEEAAABBAAH8QQAAAEEAAABBAAH8QQAAAEEAAABBAAA8QQAAAEEAAABBAAAM
+ QQAAAEEAAABBAAAAQQAAAEEAAABBAAEAQQAAAEHAAABB/AHAQf/h4UEoAAAAEAAAACAAAAABACAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMFjEwPkh0si8ZVhSfWaZ3D4nWyY7pJc
+ MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPGVYFj3m2qE+J1sq/mebtL8oHL3/6R3//+kd///pHf//6R3
+ //abaY70mWZW9JlmVvSZZlb0mWZW9JlmVvCVYE//pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3
+ //+kd//2m2mN9JlmVPSZZlT0mWZU9JlmVPSZZlT6n2/G/6R3//+kd///pHf//6R3//+kd///pHf/+qB0
+ //+kd///pHf/9ptpjvSZZlb0mWZW9JlmVvSZZlbukVwz+Z5uqv+kd///pHf//6R3//+kd///pHf//qN2
+ /59iPP+TVSb/q2xK/9GEWZL0mWZU9JlmVPSZZlT0mWZU75ReMvmebqr/pHf//6R3//rBo//6waP//6R3
+ //fby/+8fFj/jUkJ/75fAf9QKQTdt3JLV/SZZlb0mWZW9JlmVu6RXDP5nm6q/6R3//+kd//42Mf/+NjH
+ //2mev/37+n/3KyS/6tXA/91PAb/kkkC+Wo8FtzfjF5Z9JlmVPSZZlTvlF4y+Z5uqv+kd//9pHj/99rJ
+ //fayf/5vJv/+Met//jWw/9uPBD/mU4F/5dNBvyEQgHyUy0MmPSZZlb0mWZW7pFcM/mebqr/pHf/+7eU
+ //rHrP/6x6z/9+fd//yrgv/328r/v3hS/3k/Cf+nVAP6n1AA83I6A/SFUC6h9JlmVO+UXjL5nm6q/6R3
+ //rQuv/7rof/+66H//jo3///pHf/+suz//uzjf+iYzz/h0UF+5BIAfGrVgH5YjEC54lUNGPukVwz+Z5u
+ qv+kd//7sIr//qN2//6jdv/8r4j//6R3//2qgP/9qYD//KJ1/3JBG+SWSwH2g0ID8qdUAflqOQ7qm2A9
+ Rvmebqr/pHf//6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd//Pg1mgajkO6aZTAfmCQQPygkEB
+ 9zEZArLrlWiu/6R3//+kd///pHf//6R3//+kd///pHf//6R3//+kd///pHf/9ptpjYtWN2BhMQLllUoB
+ 918wA/JkMgHrnV409PecarP7oHHv/6R3//+kd///pHf//6R3//+kd///pHf//6R3//abaY70mWZWiFIw
+ n1EpA/FlMwPvs1kA+pxQBv8AAAAAwmQQAuqPVi30mWZo+J1ro/qfb93+o3b//6R3//+kd//2m2mN9Jlm
+ VPSZZlQ9IgyWnk8D+MtlAP9lMwOoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4IVGGfKXY1T3m2uP7pRd
+ MgAAAAAAAAAAAAAAA1UqAKpmMwDFAAAADPA/rEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACs
+ QQAArEEAAKxBAACsQQAArEEAAKxBgACsQfwwrEE=
+
+
+
\ No newline at end of file
diff --git a/Client/Helper/FileHelper.cs b/Client/Helper/FileHelper.cs
index 6ecd9941..f02b01cf 100644
--- a/Client/Helper/FileHelper.cs
+++ b/Client/Helper/FileHelper.cs
@@ -22,5 +22,15 @@ namespace OnDoc.Helper
}
}
+
+ public Stream GenerateStreamFromString(string s)
+ {
+ var stream = new MemoryStream();
+ var writer = new StreamWriter(stream);
+ writer.Write(s);
+ writer.Flush();
+ stream.Position = 0;
+ return stream;
+ }
}
}
diff --git a/Client/bin/Debug/Database.dll b/Client/bin/Debug/Database.dll
index c33079f1..38908311 100644
Binary files a/Client/bin/Debug/Database.dll and b/Client/bin/Debug/Database.dll differ
diff --git a/Client/bin/Debug/Database.pdb b/Client/bin/Debug/Database.pdb
index ad0c5226..b1f3a73e 100644
Binary files a/Client/bin/Debug/Database.pdb and b/Client/bin/Debug/Database.pdb differ
diff --git a/Client/bin/Debug/Helper.dll b/Client/bin/Debug/Helper.dll
index 821177c5..26b96769 100644
Binary files a/Client/bin/Debug/Helper.dll and b/Client/bin/Debug/Helper.dll differ
diff --git a/Client/bin/Debug/Helper.pdb b/Client/bin/Debug/Helper.pdb
index 3ad377e2..c67ed204 100644
Binary files a/Client/bin/Debug/Helper.pdb and b/Client/bin/Debug/Helper.pdb differ
diff --git a/Client/bin/Debug/Model.dll b/Client/bin/Debug/Model.dll
index 4b694900..10381a11 100644
Binary files a/Client/bin/Debug/Model.dll and b/Client/bin/Debug/Model.dll differ
diff --git a/Client/bin/Debug/Model.pdb b/Client/bin/Debug/Model.pdb
index df130a02..16123dcf 100644
Binary files a/Client/bin/Debug/Model.pdb and b/Client/bin/Debug/Model.pdb differ
diff --git a/Client/bin/Debug/OnDoc.exe b/Client/bin/Debug/OnDoc.exe
index d9181940..fa9d274c 100644
Binary files a/Client/bin/Debug/OnDoc.exe and b/Client/bin/Debug/OnDoc.exe differ
diff --git a/Client/bin/Debug/OnDoc.pdb b/Client/bin/Debug/OnDoc.pdb
index 1b30fc52..6f82e2a6 100644
Binary files a/Client/bin/Debug/OnDoc.pdb and b/Client/bin/Debug/OnDoc.pdb differ
diff --git a/Client/bin/Debug/de-DE/OnDoc.resources.dll b/Client/bin/Debug/de-DE/OnDoc.resources.dll
index 5c7305c8..93744ffc 100644
Binary files a/Client/bin/Debug/de-DE/OnDoc.resources.dll and b/Client/bin/Debug/de-DE/OnDoc.resources.dll differ
diff --git a/Client/obj/Debug/Client.csproj.AssemblyReference.cache b/Client/obj/Debug/Client.csproj.AssemblyReference.cache
index f760fe7d..a8423d7c 100644
Binary files a/Client/obj/Debug/Client.csproj.AssemblyReference.cache and b/Client/obj/Debug/Client.csproj.AssemblyReference.cache differ
diff --git a/Client/obj/Debug/Client.csproj.CoreCompileInputs.cache b/Client/obj/Debug/Client.csproj.CoreCompileInputs.cache
index 0454be4f..5a224631 100644
--- a/Client/obj/Debug/Client.csproj.CoreCompileInputs.cache
+++ b/Client/obj/Debug/Client.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-6d19ef59527180b68da16e17ca121e889b7ca8f0078a8a13a54a1a1868f81e50
+814802d754b2128b3f6dad2b8544b2a517e2d5ae467a7e6b9ae6acd890a15d4b
diff --git a/Client/obj/Debug/Client.csproj.FileListAbsolute.txt b/Client/obj/Debug/Client.csproj.FileListAbsolute.txt
index 371b438a..2493e6a2 100644
--- a/Client/obj/Debug/Client.csproj.FileListAbsolute.txt
+++ b/Client/obj/Debug/Client.csproj.FileListAbsolute.txt
@@ -247,3 +247,4 @@ E:\Software-Projekte\OnDoc\OnDoc\Client\obj\Debug\de-DE\OnDoc.resources.dll
E:\Software-Projekte\OnDoc\OnDoc\Client\obj\Debug\Client.csproj.Up2Date
E:\Software-Projekte\OnDoc\OnDoc\Client\obj\Debug\OnDoc.exe
E:\Software-Projekte\OnDoc\OnDoc\Client\obj\Debug\OnDoc.pdb
+E:\Software-Projekte\OnDoc\OnDoc\Client\obj\Debug\OnDoc.DocMgmt.SerienbriefBearbeitung.resources
diff --git a/Client/obj/Debug/Client.csproj.GenerateResource.cache b/Client/obj/Debug/Client.csproj.GenerateResource.cache
index 4bd9dcef..13ca0099 100644
Binary files a/Client/obj/Debug/Client.csproj.GenerateResource.cache and b/Client/obj/Debug/Client.csproj.GenerateResource.cache differ
diff --git a/Client/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/Client/obj/Debug/DesignTimeResolveAssemblyReferences.cache
index eecb9dce..81f1ef39 100644
Binary files a/Client/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/Client/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/Client/obj/Debug/OnDoc.DocMgmt.SerienbriefBearbeitung.resources b/Client/obj/Debug/OnDoc.DocMgmt.SerienbriefBearbeitung.resources
new file mode 100644
index 00000000..f5cea509
Binary files /dev/null and b/Client/obj/Debug/OnDoc.DocMgmt.SerienbriefBearbeitung.resources differ
diff --git a/Client/obj/Debug/OnDoc.exe b/Client/obj/Debug/OnDoc.exe
index d9181940..fa9d274c 100644
Binary files a/Client/obj/Debug/OnDoc.exe and b/Client/obj/Debug/OnDoc.exe differ
diff --git a/Client/obj/Debug/OnDoc.pdb b/Client/obj/Debug/OnDoc.pdb
index 1b30fc52..6f82e2a6 100644
Binary files a/Client/obj/Debug/OnDoc.pdb and b/Client/obj/Debug/OnDoc.pdb differ
diff --git a/Client/obj/Debug/de-DE/OnDoc.resources.dll b/Client/obj/Debug/de-DE/OnDoc.resources.dll
index 5c7305c8..93744ffc 100644
Binary files a/Client/obj/Debug/de-DE/OnDoc.resources.dll and b/Client/obj/Debug/de-DE/OnDoc.resources.dll differ
diff --git a/DOCGEN/bin/Debug/Database.dll b/DOCGEN/bin/Debug/Database.dll
index c33079f1..38908311 100644
Binary files a/DOCGEN/bin/Debug/Database.dll and b/DOCGEN/bin/Debug/Database.dll differ
diff --git a/DOCGEN/bin/Debug/Database.pdb b/DOCGEN/bin/Debug/Database.pdb
index ad0c5226..b1f3a73e 100644
Binary files a/DOCGEN/bin/Debug/Database.pdb and b/DOCGEN/bin/Debug/Database.pdb differ
diff --git a/DOCGEN/bin/Debug/Helper.dll b/DOCGEN/bin/Debug/Helper.dll
index 821177c5..26b96769 100644
Binary files a/DOCGEN/bin/Debug/Helper.dll and b/DOCGEN/bin/Debug/Helper.dll differ
diff --git a/DOCGEN/bin/Debug/Helper.pdb b/DOCGEN/bin/Debug/Helper.pdb
index 3ad377e2..c67ed204 100644
Binary files a/DOCGEN/bin/Debug/Helper.pdb and b/DOCGEN/bin/Debug/Helper.pdb differ
diff --git a/DOCGEN/bin/Debug/Model.dll b/DOCGEN/bin/Debug/Model.dll
index 4b694900..10381a11 100644
Binary files a/DOCGEN/bin/Debug/Model.dll and b/DOCGEN/bin/Debug/Model.dll differ
diff --git a/DOCGEN/bin/Debug/Model.pdb b/DOCGEN/bin/Debug/Model.pdb
index df130a02..16123dcf 100644
Binary files a/DOCGEN/bin/Debug/Model.pdb and b/DOCGEN/bin/Debug/Model.pdb differ
diff --git a/DOCGEN/obj/Debug/DocGen.csproj.AssemblyReference.cache b/DOCGEN/obj/Debug/DocGen.csproj.AssemblyReference.cache
index 20d5709b..ed711486 100644
Binary files a/DOCGEN/obj/Debug/DocGen.csproj.AssemblyReference.cache and b/DOCGEN/obj/Debug/DocGen.csproj.AssemblyReference.cache differ
diff --git a/Database/DB/clsEdex_sb_serienbrief.cs b/Database/DB/clsEdex_sb_serienbrief.cs
new file mode 100644
index 00000000..5a812dab
--- /dev/null
+++ b/Database/DB/clsEdex_sb_serienbrief.cs
@@ -0,0 +1,765 @@
+using System;
+using System.Data;
+using System.Data.SqlTypes;
+using System.Data.SqlClient;
+
+namespace edoka_dms
+{
+ public class clsEdex_sb_serienbrief : clsDBInteractionBase
+ {
+ #region Class Member Declarations
+ private SqlBoolean m_bAktiv;
+ private SqlDateTime m_daMutiert_am, m_daDokumentdatum, m_daArchivdatum, m_daTermin, m_daErstellt_am;
+ private SqlInt32 m_iBestaetigt, m_iGedruckt, m_iErstellt, m_iInBearbeitung, m_iFehlerhaft, m_iTreewidth, m_iWindowheight, m_iWindowwidth, m_iDokumenttypnr, m_iStatus, m_iSerienbriefnr, m_iAusgeloest, m_iTeam, m_iUnterschriftrechts, m_iUnterschriftlinks, m_iZustaendig, m_iPostzustellung, m_iVerantwortlich, m_iMutierer, m_iBldossier;
+ private SqlString m_sBemerkung, m_sBezeichnung;
+ #endregion
+
+
+ public clsEdex_sb_serienbrief()
+ {
+ // Nothing for now.
+ }
+
+
+ public override bool Insert()
+ {
+ SqlCommand scmCmdToExecute = new SqlCommand();
+ scmCmdToExecute.CommandText = "dbo.[pr_edex_sb_serienbrief_Insert]";
+ scmCmdToExecute.CommandType = CommandType.StoredProcedure;
+
+ // Use base class' connection object
+ scmCmdToExecute.Connection = m_scoMainConnection;
+
+ try
+ {
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@sbezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iverantwortlich", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlich));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ipostzustellung", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iPostzustellung));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@dadokumentdatum", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daDokumentdatum));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@izustaendig", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iZustaendig));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iunterschriftlinks", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iUnterschriftlinks));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iunterschriftrechts", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iUnterschriftrechts));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iteam", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iTeam));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@daarchivdatum", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daArchivdatum));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@datermin", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daTermin));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@sbemerkung", SqlDbType.VarChar, 1024, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_sBemerkung));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@daerstellt_am", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daErstellt_am));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@damutiert_am", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daMutiert_am));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@imutierer", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iMutierer));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_bAktiv));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@istatus", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iStatus));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@idokumenttypnr", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iDokumenttypnr));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iwindowwidth", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iWindowwidth));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iwindowheight", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iWindowheight));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@itreewidth", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iTreewidth));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ifehlerhaft", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iFehlerhaft));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iinBearbeitung", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iInBearbeitung));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ierstellt", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iErstellt));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@igedruckt", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iGedruckt));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ibestaetigt", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iBestaetigt));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iausgeloest", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iAusgeloest));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ibldossier", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iBldossier));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iserienbriefnr", SqlDbType.Int, 4, ParameterDirection.Output, true, 10, 0, "", DataRowVersion.Proposed, m_iSerienbriefnr));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, true, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode));
+
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Open connection.
+ m_scoMainConnection.Open();
+ }
+ else
+ {
+ if(m_cpMainConnectionProvider.bIsTransactionPending)
+ {
+ scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction;
+ }
+ }
+
+ // Execute query.
+ m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery();
+ m_iSerienbriefnr = Convert.ToInt32(scmCmdToExecute.Parameters["@iserienbriefnr"].Value.ToString());
+ m_iErrorCode = Convert.ToInt32(scmCmdToExecute.Parameters["@iErrorCode"].Value.ToString());
+
+ if(m_iErrorCode != (int)LLBLError.AllOk)
+ {
+ // Throw error.
+ throw new Exception("Stored Procedure 'pr_edex_sb_serienbrief_Insert' reported the ErrorCode: " + m_iErrorCode);
+ }
+
+ return true;
+ }
+ catch(Exception ex)
+ {
+ // some error occured. Bubble it to caller and encapsulate Exception object
+ throw new Exception("clsEdex_sb_serienbrief::Insert::Error occured.", ex);
+ }
+ finally
+ {
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Close connection.
+ m_scoMainConnection.Close();
+ }
+ scmCmdToExecute.Dispose();
+ }
+ }
+
+
+ public override bool Update()
+ {
+ SqlCommand scmCmdToExecute = new SqlCommand();
+ scmCmdToExecute.CommandText = "dbo.[pr_edex_sb_serienbrief_Update]";
+ scmCmdToExecute.CommandType = CommandType.StoredProcedure;
+
+ // Use base class' connection object
+ scmCmdToExecute.Connection = m_scoMainConnection;
+
+ try
+ {
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iserienbriefnr", SqlDbType.Int, 4, ParameterDirection.Input, false, 10, 0, "", DataRowVersion.Proposed, m_iSerienbriefnr));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@sbezeichnung", SqlDbType.VarChar, 255, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_sBezeichnung));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iverantwortlich", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iVerantwortlich));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ipostzustellung", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iPostzustellung));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@dadokumentdatum", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daDokumentdatum));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@izustaendig", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iZustaendig));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iunterschriftlinks", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iUnterschriftlinks));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iunterschriftrechts", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iUnterschriftrechts));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iteam", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iTeam));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@daarchivdatum", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daArchivdatum));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@datermin", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daTermin));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@sbemerkung", SqlDbType.VarChar, 1024, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_sBemerkung));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@daerstellt_am", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daErstellt_am));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@damutiert_am", SqlDbType.DateTime, 8, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_daMutiert_am));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@imutierer", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iMutierer));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@baktiv", SqlDbType.Bit, 1, ParameterDirection.Input, true, 0, 0, "", DataRowVersion.Proposed, m_bAktiv));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@istatus", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iStatus));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@idokumenttypnr", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iDokumenttypnr));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iwindowwidth", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iWindowwidth));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iwindowheight", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iWindowheight));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@itreewidth", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iTreewidth));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ifehlerhaft", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iFehlerhaft));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iinBearbeitung", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iInBearbeitung));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ierstellt", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iErstellt));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@igedruckt", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iGedruckt));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ibestaetigt", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iBestaetigt));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iausgeloest", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iAusgeloest));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@ibldossier", SqlDbType.Int, 4, ParameterDirection.Input, true, 10, 0, "", DataRowVersion.Proposed, m_iBldossier));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, true, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode));
+
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Open connection.
+ m_scoMainConnection.Open();
+ }
+ else
+ {
+ if(m_cpMainConnectionProvider.bIsTransactionPending)
+ {
+ scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction;
+ }
+ }
+
+ // Execute query.
+ m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery();
+ m_iErrorCode = Convert.ToInt32(scmCmdToExecute.Parameters["@iErrorCode"].Value.ToString());
+
+ if(m_iErrorCode != (int)LLBLError.AllOk)
+ {
+ // Throw error.
+ throw new Exception("Stored Procedure 'pr_edex_sb_serienbrief_Update' reported the ErrorCode: " + m_iErrorCode);
+ }
+
+ return true;
+ }
+ catch(Exception ex)
+ {
+ // some error occured. Bubble it to caller and encapsulate Exception object
+ throw new Exception("clsEdex_sb_serienbrief::Update::Error occured.", ex);
+ }
+ finally
+ {
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Close connection.
+ m_scoMainConnection.Close();
+ }
+ scmCmdToExecute.Dispose();
+ }
+ }
+
+
+ public override bool Delete()
+ {
+ SqlCommand scmCmdToExecute = new SqlCommand();
+ scmCmdToExecute.CommandText = "dbo.[pr_edex_sb_serienbrief_Delete]";
+ scmCmdToExecute.CommandType = CommandType.StoredProcedure;
+
+ // Use base class' connection object
+ scmCmdToExecute.Connection = m_scoMainConnection;
+
+ try
+ {
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iserienbriefnr", SqlDbType.Int, 4, ParameterDirection.Input, false, 10, 0, "", DataRowVersion.Proposed, m_iSerienbriefnr));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, true, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode));
+
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Open connection.
+ m_scoMainConnection.Open();
+ }
+ else
+ {
+ if(m_cpMainConnectionProvider.bIsTransactionPending)
+ {
+ scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction;
+ }
+ }
+
+ // Execute query.
+ m_iRowsAffected = scmCmdToExecute.ExecuteNonQuery();
+ m_iErrorCode = (Int32)scmCmdToExecute.Parameters["@iErrorCode"].Value;
+
+ if(m_iErrorCode != (int)LLBLError.AllOk)
+ {
+ // Throw error.
+ throw new Exception("Stored Procedure 'pr_edex_sb_serienbrief_Delete' reported the ErrorCode: " + m_iErrorCode);
+ }
+
+ return true;
+ }
+ catch(Exception ex)
+ {
+ // some error occured. Bubble it to caller and encapsulate Exception object
+ throw new Exception("clsEdex_sb_serienbrief::Delete::Error occured.", ex);
+ }
+ finally
+ {
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Close connection.
+ m_scoMainConnection.Close();
+ }
+ scmCmdToExecute.Dispose();
+ }
+ }
+
+
+ public override DataTable SelectOne()
+ {
+ SqlCommand scmCmdToExecute = new SqlCommand();
+ scmCmdToExecute.CommandText = "dbo.[pr_edex_sb_serienbrief_SelectOne]";
+ scmCmdToExecute.CommandType = CommandType.StoredProcedure;
+ DataTable dtToReturn = new DataTable("edex_sb_serienbrief");
+ SqlDataAdapter sdaAdapter = new SqlDataAdapter(scmCmdToExecute);
+
+ // Use base class' connection object
+ scmCmdToExecute.Connection = m_scoMainConnection;
+
+ try
+ {
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iserienbriefnr", SqlDbType.Int, 4, ParameterDirection.Input, false, 10, 0, "", DataRowVersion.Proposed, m_iSerienbriefnr));
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, true, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode));
+
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Open connection.
+ m_scoMainConnection.Open();
+ }
+ else
+ {
+ if(m_cpMainConnectionProvider.bIsTransactionPending)
+ {
+ scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction;
+ }
+ }
+
+ // Execute query.
+ sdaAdapter.Fill(dtToReturn);
+ m_iErrorCode = Convert.ToInt32(scmCmdToExecute.Parameters["@iErrorCode"].Value.ToString());
+
+ if(m_iErrorCode != (int)LLBLError.AllOk)
+ {
+ // Throw error.
+ throw new Exception("Stored Procedure 'pr_edex_sb_serienbrief_SelectOne' reported the ErrorCode: " + m_iErrorCode);
+ }
+
+ if(dtToReturn.Rows.Count > 0)
+ {
+ m_iSerienbriefnr = (Int32)dtToReturn.Rows[0]["serienbriefnr"];
+ m_sBezeichnung = dtToReturn.Rows[0]["bezeichnung"] == System.DBNull.Value ? SqlString.Null : (string)dtToReturn.Rows[0]["bezeichnung"];
+ m_iVerantwortlich = dtToReturn.Rows[0]["verantwortlich"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["verantwortlich"];
+ m_iPostzustellung = dtToReturn.Rows[0]["postzustellung"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["postzustellung"];
+ m_daDokumentdatum = dtToReturn.Rows[0]["dokumentdatum"] == System.DBNull.Value ? SqlDateTime.Null : (DateTime)dtToReturn.Rows[0]["dokumentdatum"];
+ m_iZustaendig = dtToReturn.Rows[0]["zustaendig"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["zustaendig"];
+ m_iUnterschriftlinks = dtToReturn.Rows[0]["unterschriftlinks"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["unterschriftlinks"];
+ m_iUnterschriftrechts = dtToReturn.Rows[0]["unterschriftrechts"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["unterschriftrechts"];
+ m_iTeam = dtToReturn.Rows[0]["team"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["team"];
+ m_daArchivdatum = dtToReturn.Rows[0]["archivdatum"] == System.DBNull.Value ? SqlDateTime.Null : (DateTime)dtToReturn.Rows[0]["archivdatum"];
+ m_daTermin = dtToReturn.Rows[0]["termin"] == System.DBNull.Value ? SqlDateTime.Null : (DateTime)dtToReturn.Rows[0]["termin"];
+ m_sBemerkung = dtToReturn.Rows[0]["bemerkung"] == System.DBNull.Value ? SqlString.Null : (string)dtToReturn.Rows[0]["bemerkung"];
+ m_daErstellt_am = dtToReturn.Rows[0]["erstellt_am"] == System.DBNull.Value ? SqlDateTime.Null : (DateTime)dtToReturn.Rows[0]["erstellt_am"];
+ m_daMutiert_am = dtToReturn.Rows[0]["mutiert_am"] == System.DBNull.Value ? SqlDateTime.Null : (DateTime)dtToReturn.Rows[0]["mutiert_am"];
+ m_iMutierer = dtToReturn.Rows[0]["mutierer"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["mutierer"];
+ m_bAktiv = dtToReturn.Rows[0]["aktiv"] == System.DBNull.Value ? SqlBoolean.Null : (bool)dtToReturn.Rows[0]["aktiv"];
+ m_iStatus = dtToReturn.Rows[0]["status"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["status"];
+ m_iDokumenttypnr = dtToReturn.Rows[0]["dokumenttypnr"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["dokumenttypnr"];
+ m_iWindowwidth = dtToReturn.Rows[0]["windowwidth"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["windowwidth"];
+ m_iWindowheight = dtToReturn.Rows[0]["windowheight"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["windowheight"];
+ m_iTreewidth = dtToReturn.Rows[0]["treewidth"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["treewidth"];
+ m_iFehlerhaft = dtToReturn.Rows[0]["fehlerhaft"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["fehlerhaft"];
+ m_iInBearbeitung = dtToReturn.Rows[0]["inBearbeitung"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["inBearbeitung"];
+ m_iErstellt = dtToReturn.Rows[0]["erstellt"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["erstellt"];
+ m_iGedruckt = dtToReturn.Rows[0]["gedruckt"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["gedruckt"];
+ m_iBestaetigt = dtToReturn.Rows[0]["bestaetigt"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["bestaetigt"];
+ m_iAusgeloest = dtToReturn.Rows[0]["ausgeloest"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["ausgeloest"];
+ m_iBldossier = dtToReturn.Rows[0]["bldossier"] == System.DBNull.Value ? SqlInt32.Null : (Int32)dtToReturn.Rows[0]["bldossier"];
+ }
+ return dtToReturn;
+ }
+ catch(Exception ex)
+ {
+ // some error occured. Bubble it to caller and encapsulate Exception object
+ throw new Exception("clsEdex_sb_serienbrief::SelectOne::Error occured.", ex);
+ }
+ finally
+ {
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Close connection.
+ m_scoMainConnection.Close();
+ }
+ scmCmdToExecute.Dispose();
+ sdaAdapter.Dispose();
+ }
+ }
+
+
+ public override DataTable SelectAll()
+ {
+ SqlCommand scmCmdToExecute = new SqlCommand();
+ scmCmdToExecute.CommandText = "dbo.[pr_edex_sb_serienbrief_SelectAll]";
+ scmCmdToExecute.CommandType = CommandType.StoredProcedure;
+ DataTable dtToReturn = new DataTable("edex_sb_serienbrief");
+ SqlDataAdapter sdaAdapter = new SqlDataAdapter(scmCmdToExecute);
+
+ // Use base class' connection object
+ scmCmdToExecute.Connection = m_scoMainConnection;
+
+ try
+ {
+ scmCmdToExecute.Parameters.Add(new SqlParameter("@iErrorCode", SqlDbType.Int, 4, ParameterDirection.Output, true, 10, 0, "", DataRowVersion.Proposed, m_iErrorCode));
+
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Open connection.
+ m_scoMainConnection.Open();
+ }
+ else
+ {
+ if(m_cpMainConnectionProvider.bIsTransactionPending)
+ {
+ scmCmdToExecute.Transaction = m_cpMainConnectionProvider.stCurrentTransaction;
+ }
+ }
+
+ // Execute query.
+ sdaAdapter.Fill(dtToReturn);
+ m_iErrorCode = (Int32)scmCmdToExecute.Parameters["@iErrorCode"].Value;
+
+ if(m_iErrorCode != (int)LLBLError.AllOk)
+ {
+ // Throw error.
+ throw new Exception("Stored Procedure 'pr_edex_sb_serienbrief_SelectAll' reported the ErrorCode: " + m_iErrorCode);
+ }
+
+ return dtToReturn;
+ }
+ catch(Exception ex)
+ {
+ // some error occured. Bubble it to caller and encapsulate Exception object
+ throw new Exception("clsEdex_sb_serienbrief::SelectAll::Error occured.", ex);
+ }
+ finally
+ {
+ if(m_bMainConnectionIsCreatedLocal)
+ {
+ // Close connection.
+ m_scoMainConnection.Close();
+ }
+ scmCmdToExecute.Dispose();
+ sdaAdapter.Dispose();
+ }
+ }
+
+
+ #region Class Property Declarations
+ public SqlInt32 iSerienbriefnr
+ {
+ get
+ {
+ return m_iSerienbriefnr;
+ }
+ set
+ {
+ SqlInt32 iSerienbriefnrTmp = (SqlInt32)value;
+ if(iSerienbriefnrTmp.IsNull)
+ {
+ throw new ArgumentOutOfRangeException("iSerienbriefnr", "iSerienbriefnr can't be NULL");
+ }
+ m_iSerienbriefnr = value;
+ }
+ }
+
+
+ public SqlString sBezeichnung
+ {
+ get
+ {
+ return m_sBezeichnung;
+ }
+ set
+ {
+ m_sBezeichnung = value;
+ }
+ }
+
+
+ public SqlInt32 iVerantwortlich
+ {
+ get
+ {
+ return m_iVerantwortlich;
+ }
+ set
+ {
+ m_iVerantwortlich = value;
+ }
+ }
+
+
+ public SqlInt32 iPostzustellung
+ {
+ get
+ {
+ return m_iPostzustellung;
+ }
+ set
+ {
+ m_iPostzustellung = value;
+ }
+ }
+
+
+ public SqlDateTime daDokumentdatum
+ {
+ get
+ {
+ return m_daDokumentdatum;
+ }
+ set
+ {
+ m_daDokumentdatum = value;
+ }
+ }
+
+
+ public SqlInt32 iZustaendig
+ {
+ get
+ {
+ return m_iZustaendig;
+ }
+ set
+ {
+ m_iZustaendig = value;
+ }
+ }
+
+
+ public SqlInt32 iUnterschriftlinks
+ {
+ get
+ {
+ return m_iUnterschriftlinks;
+ }
+ set
+ {
+ m_iUnterschriftlinks = value;
+ }
+ }
+
+
+ public SqlInt32 iUnterschriftrechts
+ {
+ get
+ {
+ return m_iUnterschriftrechts;
+ }
+ set
+ {
+ m_iUnterschriftrechts = value;
+ }
+ }
+
+
+ public SqlInt32 iTeam
+ {
+ get
+ {
+ return m_iTeam;
+ }
+ set
+ {
+ m_iTeam = value;
+ }
+ }
+
+
+ public SqlDateTime daArchivdatum
+ {
+ get
+ {
+ return m_daArchivdatum;
+ }
+ set
+ {
+ m_daArchivdatum = value;
+ }
+ }
+
+
+ public SqlDateTime daTermin
+ {
+ get
+ {
+ return m_daTermin;
+ }
+ set
+ {
+ m_daTermin = value;
+ }
+ }
+
+
+ public SqlString sBemerkung
+ {
+ get
+ {
+ return m_sBemerkung;
+ }
+ set
+ {
+ m_sBemerkung = value;
+ }
+ }
+
+
+ public SqlDateTime daErstellt_am
+ {
+ get
+ {
+ return m_daErstellt_am;
+ }
+ set
+ {
+ m_daErstellt_am = value;
+ }
+ }
+
+
+ public SqlDateTime daMutiert_am
+ {
+ get
+ {
+ return m_daMutiert_am;
+ }
+ set
+ {
+ m_daMutiert_am = value;
+ }
+ }
+
+
+ public SqlInt32 iMutierer
+ {
+ get
+ {
+ return m_iMutierer;
+ }
+ set
+ {
+ m_iMutierer = value;
+ }
+ }
+
+
+ public SqlBoolean bAktiv
+ {
+ get
+ {
+ return m_bAktiv;
+ }
+ set
+ {
+ m_bAktiv = value;
+ }
+ }
+
+
+ public SqlInt32 iStatus
+ {
+ get
+ {
+ return m_iStatus;
+ }
+ set
+ {
+ m_iStatus = value;
+ }
+ }
+
+
+ public SqlInt32 iDokumenttypnr
+ {
+ get
+ {
+ return m_iDokumenttypnr;
+ }
+ set
+ {
+ m_iDokumenttypnr = value;
+ }
+ }
+
+
+ public SqlInt32 iWindowwidth
+ {
+ get
+ {
+ return m_iWindowwidth;
+ }
+ set
+ {
+ m_iWindowwidth = value;
+ }
+ }
+
+
+ public SqlInt32 iWindowheight
+ {
+ get
+ {
+ return m_iWindowheight;
+ }
+ set
+ {
+ m_iWindowheight = value;
+ }
+ }
+
+
+ public SqlInt32 iTreewidth
+ {
+ get
+ {
+ return m_iTreewidth;
+ }
+ set
+ {
+ m_iTreewidth = value;
+ }
+ }
+
+
+ public SqlInt32 iFehlerhaft
+ {
+ get
+ {
+ return m_iFehlerhaft;
+ }
+ set
+ {
+ m_iFehlerhaft = value;
+ }
+ }
+
+
+ public SqlInt32 iInBearbeitung
+ {
+ get
+ {
+ return m_iInBearbeitung;
+ }
+ set
+ {
+ m_iInBearbeitung = value;
+ }
+ }
+
+
+ public SqlInt32 iErstellt
+ {
+ get
+ {
+ return m_iErstellt;
+ }
+ set
+ {
+ m_iErstellt = value;
+ }
+ }
+
+
+ public SqlInt32 iGedruckt
+ {
+ get
+ {
+ return m_iGedruckt;
+ }
+ set
+ {
+ m_iGedruckt = value;
+ }
+ }
+
+
+ public SqlInt32 iBestaetigt
+ {
+ get
+ {
+ return m_iBestaetigt;
+ }
+ set
+ {
+ m_iBestaetigt = value;
+ }
+ }
+
+
+ public SqlInt32 iAusgeloest
+ {
+ get
+ {
+ return m_iAusgeloest;
+ }
+ set
+ {
+ m_iAusgeloest = value;
+ }
+ }
+
+
+ public SqlInt32 iBldossier
+ {
+ get
+ {
+ return m_iBldossier;
+ }
+ set
+ {
+ m_iBldossier = value;
+ }
+ }
+ #endregion
+ }
+}
diff --git a/Database/Database.csproj b/Database/Database.csproj
index eb225438..2fac5169 100644
--- a/Database/Database.csproj
+++ b/Database/Database.csproj
@@ -60,6 +60,7 @@
+
diff --git a/Database/bin/Debug/Database.dll b/Database/bin/Debug/Database.dll
index c33079f1..38908311 100644
Binary files a/Database/bin/Debug/Database.dll and b/Database/bin/Debug/Database.dll differ
diff --git a/Database/bin/Debug/Database.pdb b/Database/bin/Debug/Database.pdb
index ad0c5226..b1f3a73e 100644
Binary files a/Database/bin/Debug/Database.pdb and b/Database/bin/Debug/Database.pdb differ
diff --git a/Database/bin/Debug/Helper.dll b/Database/bin/Debug/Helper.dll
index 821177c5..26b96769 100644
Binary files a/Database/bin/Debug/Helper.dll and b/Database/bin/Debug/Helper.dll differ
diff --git a/Database/bin/Debug/Helper.pdb b/Database/bin/Debug/Helper.pdb
index 3ad377e2..c67ed204 100644
Binary files a/Database/bin/Debug/Helper.pdb and b/Database/bin/Debug/Helper.pdb differ
diff --git a/Database/bin/Debug/Model.dll b/Database/bin/Debug/Model.dll
index 4b694900..10381a11 100644
Binary files a/Database/bin/Debug/Model.dll and b/Database/bin/Debug/Model.dll differ
diff --git a/Database/bin/Debug/Model.pdb b/Database/bin/Debug/Model.pdb
index df130a02..16123dcf 100644
Binary files a/Database/bin/Debug/Model.pdb and b/Database/bin/Debug/Model.pdb differ
diff --git a/Database/db.cs b/Database/db.cs
index f8f6afb4..5a5487fa 100644
--- a/Database/db.cs
+++ b/Database/db.cs
@@ -17,6 +17,7 @@ using System.Runtime.CompilerServices;
+
namespace Database
{
public class DB
@@ -1182,6 +1183,66 @@ namespace Database
}
scmCmdToExecute.Dispose();
}
+
+ public int Save_Serienbrief(serienbrief sb)
+ {
+ clsEdex_sb_serienbrief dbsb = new clsEdex_sb_serienbrief();
+ clsConnectionProvider edoka_conn = new clsConnectionProvider();
+ edoka_conn.sConnectionString = this.connectionstring;
+
+ dbsb.cpMainConnectionProvider = edoka_conn;
+ if (sb.serienbriefnr != 0)
+ {
+ dbsb.iSerienbriefnr = sb.serienbriefnr;
+ dbsb.SelectOne();
+ }
+
+ dbsb.sBezeichnung = sb.bezeichnung;
+ dbsb.iSerienbriefnr = sb.serienbriefnr;
+ dbsb.iVerantwortlich = sb.verantwortlich;
+ dbsb.iPostzustellung = sb.postzustellung;
+ dbsb.daDokumentdatum = sb.dokumentdatum;
+ dbsb.iZustaendig = sb.zustaendig;
+ dbsb.iUnterschriftlinks = sb.unterschriftlinks;
+ dbsb.iUnterschriftrechts = sb.unterschriftrechts;
+ dbsb.iTeam = sb.team;
+ dbsb.daArchivdatum=sb.archivdatum;
+ dbsb.daTermin = sb.termin;
+ dbsb.sBemerkung = sb.bemerkung;
+ dbsb.daErstellt_am = sb.erstellt_am;
+ dbsb.daMutiert_am = sb.mutiert_am;
+ dbsb.iMutierer = sb.mutierer;
+ dbsb.bAktiv = sb.aktiv;
+ dbsb.iStatus = sb.status;
+ dbsb.iDokumenttypnr = sb.dokumenttypnr;
+ dbsb.iWindowwidth = sb.windowwidth;
+ dbsb.iWindowheight = sb.windowwidth;
+ dbsb.iTreewidth = sb.treewidth;
+ dbsb.iInBearbeitung = sb.inBearbeitung;
+ dbsb.iFehlerhaft = sb.fehlerhaft;
+ dbsb.iErstellt = sb.erstellt;
+ dbsb.iGedruckt = sb.gedruckt;
+ dbsb.iBestaetigt = sb.bestaetigt;
+ dbsb.iAusgeloest = sb.ausgeloest;
+ dbsb.iBldossier = sb.bldossier;
+ edoka_conn.OpenConnection();
+ if (sb.serienbriefnr == 0)
+ {
+ dbsb.Insert();
+ sb.serienbriefnr = Convert.ToInt32(dbsb.iSerienbriefnr.ToString());
+ }
+ else
+ {
+ dbsb.Update();
+
+ }
+ edoka_conn.CloseConnection(true);
+
+
+ return sb.serienbriefnr;
+ }
}
+
+
}
diff --git a/Database/obj/Debug/Database.csproj.AssemblyReference.cache b/Database/obj/Debug/Database.csproj.AssemblyReference.cache
index b7da4e52..c982bf92 100644
Binary files a/Database/obj/Debug/Database.csproj.AssemblyReference.cache and b/Database/obj/Debug/Database.csproj.AssemblyReference.cache differ
diff --git a/Database/obj/Debug/Database.csproj.CoreCompileInputs.cache b/Database/obj/Debug/Database.csproj.CoreCompileInputs.cache
index 026af5d3..b8b74c82 100644
--- a/Database/obj/Debug/Database.csproj.CoreCompileInputs.cache
+++ b/Database/obj/Debug/Database.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-219844af4b60f39689eba9c54a9ead08897ab32e2a1ed311a4f3958e327ba450
+ed5653783e13798ca2360f697ff55f1898ab7aa636a114d66b4bb1a604035ce9
diff --git a/Database/obj/Debug/Database.dll b/Database/obj/Debug/Database.dll
index c33079f1..38908311 100644
Binary files a/Database/obj/Debug/Database.dll and b/Database/obj/Debug/Database.dll differ
diff --git a/Database/obj/Debug/Database.pdb b/Database/obj/Debug/Database.pdb
index ad0c5226..b1f3a73e 100644
Binary files a/Database/obj/Debug/Database.pdb and b/Database/obj/Debug/Database.pdb differ
diff --git a/Helper/bin/Debug/Helper.dll b/Helper/bin/Debug/Helper.dll
index 821177c5..26b96769 100644
Binary files a/Helper/bin/Debug/Helper.dll and b/Helper/bin/Debug/Helper.dll differ
diff --git a/Helper/bin/Debug/Helper.pdb b/Helper/bin/Debug/Helper.pdb
index 3ad377e2..c67ed204 100644
Binary files a/Helper/bin/Debug/Helper.pdb and b/Helper/bin/Debug/Helper.pdb differ
diff --git a/Helper/clsFileHelper.cs b/Helper/clsFileHelper.cs
index 9310aa7a..5e05d8c8 100644
--- a/Helper/clsFileHelper.cs
+++ b/Helper/clsFileHelper.cs
@@ -1,6 +1,7 @@
using NLog.LayoutRenderers;
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -37,5 +38,14 @@ namespace Helper
}
}
+ public Stream GenerateStreamFromString(string s)
+ {
+ var stream = new MemoryStream();
+ var writer = new StreamWriter(stream);
+ writer.Write(s);
+ writer.Flush();
+ stream.Position = 0;
+ return stream;
+ }
}
}
diff --git a/Helper/obj/Debug/Helper.dll b/Helper/obj/Debug/Helper.dll
index 821177c5..26b96769 100644
Binary files a/Helper/obj/Debug/Helper.dll and b/Helper/obj/Debug/Helper.dll differ
diff --git a/Helper/obj/Debug/Helper.pdb b/Helper/obj/Debug/Helper.pdb
index 3ad377e2..c67ed204 100644
Binary files a/Helper/obj/Debug/Helper.pdb and b/Helper/obj/Debug/Helper.pdb differ
diff --git a/Model/Model.csproj b/Model/Model.csproj
index f3d5bde1..57c422aa 100644
--- a/Model/Model.csproj
+++ b/Model/Model.csproj
@@ -46,6 +46,7 @@
+
diff --git a/Model/bin/Debug/Model.dll b/Model/bin/Debug/Model.dll
index 4b694900..10381a11 100644
Binary files a/Model/bin/Debug/Model.dll and b/Model/bin/Debug/Model.dll differ
diff --git a/Model/bin/Debug/Model.pdb b/Model/bin/Debug/Model.pdb
index df130a02..16123dcf 100644
Binary files a/Model/bin/Debug/Model.pdb and b/Model/bin/Debug/Model.pdb differ
diff --git a/Model/clsSerienbrief.cs b/Model/clsSerienbrief.cs
new file mode 100644
index 00000000..98d7c154
--- /dev/null
+++ b/Model/clsSerienbrief.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Model
+{
+
+ public class serienbrief
+ {
+ public int serienbriefnr { get; set; } = 0;
+ public string bezeichnung { get; set; } = "";
+ public int verantwortlich { get; set; } = 0;
+ public int postzustellung { get; set; } = 0;
+ public DateTime dokumentdatum { get; set; } = DateTime.Now;
+ public int zustaendig { get; set; } = 0;
+ public int unterschriftlinks { get; set; } = 0;
+ public int unterschriftrechts { get; set; } = 0;
+ public int team { get; set; } = 0;
+ public DateTime archivdatum { get; set; } = DateTime.Now;
+ public DateTime termin { get; set; } = DateTime.Now;
+ public string bemerkung { get; set; } = "";
+ public DateTime erstellt_am { get; set; } = DateTime.Now;
+ public DateTime mutiert_am { get; set; } = DateTime.Now;
+ public int mutierer { get; set; } = 0;
+ public bool aktiv { get; set; } = true;
+ public int status { get; set; } = 0;
+ public int dokumenttypnr { get; set; } = 0;
+ public int windowwidth { get; set; } = 0;
+ public int windowheight { get; set; } = 0;
+ public int treewidth { get; set; } = 0;
+ public int fehlerhaft { get; set; } = 0;
+ public int inBearbeitung { get; set; } = 0;
+ public int erstellt { get; set; } = 0;
+ public int gedruckt { get; set; } = 0;
+ public int bestaetigt { get; set; } = 0;
+ public int ausgeloest { get; set; } = 0;
+ public int bldossier { get; set; } = 0;
+
+
+
+ }
+
+
+}
diff --git a/Model/obj/Debug/Model.csproj.AssemblyReference.cache b/Model/obj/Debug/Model.csproj.AssemblyReference.cache
index 19ab67de..e32cfc63 100644
Binary files a/Model/obj/Debug/Model.csproj.AssemblyReference.cache and b/Model/obj/Debug/Model.csproj.AssemblyReference.cache differ
diff --git a/Model/obj/Debug/Model.csproj.CoreCompileInputs.cache b/Model/obj/Debug/Model.csproj.CoreCompileInputs.cache
index b0aba561..2787a2fb 100644
--- a/Model/obj/Debug/Model.csproj.CoreCompileInputs.cache
+++ b/Model/obj/Debug/Model.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-57ab2ec78deebc61353d3ea8926b1991db41a4c8d288afce107b55baa70cb5fa
+360cbe71b183e2000d2a6e9a40a1eec981199b034a930103ec6ff55518a1d358
diff --git a/Model/obj/Debug/Model.dll b/Model/obj/Debug/Model.dll
index 4b694900..10381a11 100644
Binary files a/Model/obj/Debug/Model.dll and b/Model/obj/Debug/Model.dll differ
diff --git a/Model/obj/Debug/Model.pdb b/Model/obj/Debug/Model.pdb
index df130a02..16123dcf 100644
Binary files a/Model/obj/Debug/Model.pdb and b/Model/obj/Debug/Model.pdb differ